commonplace.net commonplace.net data. the final frontier. infrastructure for heritage institutions – ark pid’s in the digital infrastructure program at the library of the university of amsterdam we have reached a first milestone. in my previous post in the infrastructure for heritage institutions series, &# ;change of course&# ;, i mentioned the coming implementation of ark persistent identifiers for our collection objects. since november , , ark pid&# ;s are available for our university library alma catalogue through the primo user interface. implementation of ark pid&# ;s for the other collection description systems [&# ;] infrastructure for heritage institutions – change of course in july i published the first post about our planning to realise a “coherent and future proof digital infrastructure” for the library of the university of amsterdam. in february i reported on the first results. as frequently happens, since then the conditions have changed, and naturally we had to adapt the direction we are following to achieve our goals. in other words: a change of course, of course. &# ;projects&# ; i will leave aside the [&# ;] infrastructure for heritage institutions – first results in july i published the post&# ;infrastructure for heritage institutions in which i described our planning to realise a&# ;“coherent and future proof digital infrastructure” for the library of the university of amsterdam. time to look back: how far have we come? and time to look forward: what&# ;s in store for the near future? ongoing activities i mentioned three &# ;currently ongoing activities&# ;:&# ; monitoring and advising on infrastructural aspects of new projects maintaining a structured dynamic overview [&# ;] infrastructure for heritage institutions during my vacation i saw this tweet by liber about topics to address, as suggested by the participants of the liber conference in dublin: it shows a word cloud (yes, a word cloud) containing a large number of terms. i list the ones i can read without zooming in (so the most suggested ones, i guess), more or less grouped thematically: open scienceopen dataopen accesslicensingcopyrightslinked open dataopen educationcitizen science scholarly communicationdigital humanities/dhdigital scholarshipresearch assessmentresearch [&# ;] ten years linked open data this post is the english translation of my original article in dutch, published in meta ( - ), the flemish journal for information professionals. ten years after the term “linked data” was introduced by tim berners-lee it appears to be time to take stock of the impact of linked data for libraries and other heritage institutions in the past and in the future. i will do this from a personal historical perspective, as a library technology professional, [&# ;] maps, dictionaries and guidebooks interoperability in heterogeneous library data landscapes libraries have to deal with a highly opaque landscape of heterogeneous data sources, data types, data formats, data flows, data transformations and data redundancies, which i have earlier characterized as a “data maze”. the level and magnitude of this opacity and heterogeneity varies with the amount of content types and the number of services that the library is responsible for. academic and national libraries are possibly dealing with more [&# ;] standard deviations in data modeling, mapping and manipulation or: anything goes. what are we thinking? an impression of elag this year’s elag conference in stockholm was one of many questions. not only the usual questions following each presentation (always elicited in the form of yet another question: “any questions?”). but also philosophical ones (why? what?). and practical ones (what time? where? how? how much?). and there were some answers too, fortunately. this is my rather personal impression of the event. for a [&# ;] analysing library data flows for efficient innovation in my work at the library of the university of amsterdam i am currently taking a step forward by actually taking a step back from a number of forefront activities in discovery, linked open data and integrated research information towards a more hidden, but also more fundamental enterprise in the area of data infrastructure and information architecture. all for a good cause, for in the end a good data infrastructure is essential for delivering high [&# ;] looking for data tricks in libraryland ifla annual world library and information congress lyon &# ; libraries, citizens, societies: confluence for knowledge after attending the ifla library linked data satellite meeting in paris i travelled to lyon for the first three days (august - ) of the ifla annual world library and information congress. this year’s theme “libraries, citizens, societies: confluence for knowledge” was named after the confluence or convergence of the rivers rhône and saône where the city of [&# ;] library linked data happening on august the ifla satellite meeting ‘linked data in libraries: let&# ;s make it happen!’ took place at the national library of france in paris. rurik greenall (who also wrote a very readable conference report) and i had the opportunity to present our paper ‘an unbroken chain: approaches to implementing linked open data in libraries; comparing local, open-source, collaborative and commercial systems’. in this paper we do not go into reasons for libraries to [&# ;] hanging together hanging together the oclc research blog nederlandse ronde tafel sessie over next generation metadata: denk groter dan naco en worldcat met dank aan ellen hartman, oclc, voor het vertalen van de oorspronkelijke engelstalige blogpost. op maart werd een nederlandse ronde tafel discussie georganiseerd als onderdeel van de oclc &# ; the post nederlandse ronde tafel sessie over next generation metadata: denk groter dan naco en worldcat appeared first on hanging together. recognizing bias in research data – and research data management as the covid pandemic grinds on, vaccinations are top of mind. a recent article published in jama network open examined whether vaccination clinical trials over the last decade adequately represented &# ; the post recognizing bias in research data – and research data management appeared first on hanging together. accomplishments and priorities for the oclc research library partnership with well underway, the oclc research library partnership is as active as ever. we are heartened by the positive feedback and engagement our partners have provided in response to &# ; the post accomplishments and priorities for the oclc research library partnership appeared first on hanging together. dutch round table on next generation metadata: think bigger than naco and worldcat as part of the oclc research discussion series on next generation metadata, this blog post reports back from the dutch language round table discussion held on march , . (a dutch &# ; the post dutch round table on next generation metadata: think bigger than naco and worldcat appeared first on hanging together. third english round table on next generation metadata: investing in the utility of authorities and identifiers thanks to george bingham, uk account manager at oclc, for contributing this post as part of the metadata series blog posts.  as part of the oclc research discussion series on next generation metadata, this blog post reports back &# ; the post third english round table on next generation metadata: investing in the utility of authorities and identifiers appeared first on hanging together. mesa redonda sobre metadatos de próxima generación en español: la gestión de las identidades de los investigadores es lo más importante muchas gracias a francesc garcía grimau, oclc, por la traducción de esta entrada de blog, que originalmente estaba en inglés. como parte de la serie de debates de oclc research &# ; the post mesa redonda sobre metadatos de próxima generación en español: la gestión de las identidades de los investigadores es lo más importante appeared first on hanging together. making strategic choices about library collaboration in rdm academic libraries are responding to a host of disruptions – emerging technologies, changing user expectations, evolving research and learning practices, economic pressures, and of course, the covid- pandemic. while these &# ; the post making strategic choices about library collaboration in rdm appeared first on hanging together. spanish round table on next generation metadata: managing researcher identities is top of mind as part of the oclc research discussion series on next generation metadata, this blog post reports back from the spanish language round table discussion held on march , . (a spanish &# ; the post spanish round table on next generation metadata: managing researcher identities is top of mind appeared first on hanging together. table ronde française sur les métadonnées de nouvelle génération: le défi consiste à gérer de concert de multiples échelles merci à arnaud delivet, oclc, pour la traduction de l&# ;article original en anglais. cet article de blog revient sur la table ronde en français organisée par le département recherche d&# ;oclc &# ; the post table ronde française sur les métadonnées de nouvelle génération: le défi consiste à gérer de concert de multiples échelles appeared first on hanging together. deutschsprachige gesprächsrunde zu metadaten der nächsten generation: formate, kontexte und lücken vielen dank an petra löffel, oclc, für die Übersetzung dieses im original englischsprachigen blogposts. im rahmen der diskussionsserie zu metadaten der nächsten generation berichtet dieser blogpost von der deutschen gesprächsrunde &# ; the post deutschsprachige gesprächsrunde zu metadaten der nächsten generation: formate, kontexte und lücken appeared first on hanging together. free range librarian free range librarian k.g. schneider's blog on librarianship, writing, and everything else (dis)association i have been reflecting on the future of a national association i belong to that has struggled with relevancy and with closing the distance between itself and its members, has distinct factions that differ on fundamental matters of values, faces declining national and chapter membership, needs to catch up on the technology curve, has sometimes [&# ;] i have measured out my life in doodle polls you know that song? the one you really liked the first time you heard it? and even the fifth or fifteenth? but now your skin crawls when you hear it? that&# ;s me and doodle. in the last three months i have filled out at least a dozen doodle polls for various meetings outside my organization. [&# ;] memento dmv this morning i spent minutes in the appointment line at the santa rosa dmv to get my license renewed and converted to real id, but was told i was “too early” to renew my license, which expires in september, so i have to return after i receive my renewal notice. i could have converted [&# ;] an old-skool blog post i get up early these days and get stuff done &# ; banking and other elder-care tasks for my mother, leftover work from the previous day, association or service work. a lot of this is writing, but it&# ;s not writing. i have a half-dozen unfinished blog posts in wordpress, and even more in my mind. i [&# ;] keeping council editorial note: over half of this post was composed in july . at the time, this post could have been seen as politically neutral (where ala is the political landscape i&# ;m referring to) but tilted toward change and reform. since then, events have transpired. i revised this post in november, but at the time hesitated [&# ;] what burns away we are among the lucky ones. we did not lose our home. we did not spend day after day evacuated, waiting to learn the fate of where we live. we never lost power or internet. we had three or four days where we were mildly inconvenienced because pg&# ;e wisely turned off gas to many neighborhoods, [&# ;] neutrality is anything but &# ;we watch people dragged away and sucker-punched at rallies as they clumsily try to be an early-warning system for what they fear lies ahead.&# ; &# ; unwittingly prophetic me, march, . sometime after last november, i realized something very strange was happening with my clothes. my slacks had suddenly shrunk, even if i hadn&# ;t washed them. after [&# ;] mpow in the here and now i have coined a few biblioneologisms in my day, but the one that has had the longest legs is mpow (my place of work), a convenient, mildly-masking shorthand for one&# ;s institution. for the last four years i haven&# ;t had the bandwidth to coin neologisms, let alone write about mpow*. this silence could be misconstrued. i [&# ;] questions i have been asked about doctoral programs about six months ago i was visiting another institution when someone said to me, &# ;oh, i used to read your blog, back in the day.&# ; ah yes, back in the day, that pleistocene era when i wasn&# ;t working on a phd while holding down a big job and dealing with the rest of life&# ;s shenanigans. [&# ;] a scholar’s pool of tears, part : the pre in preprint means not done yet note, for two more days, january and , you (as in all of you) have free access to my article, to be real: antecedents and consequences of sexual identity disclosure by academic library directors. then it drops behind a paywall and sits there for a year. when i wrote part of this blog [&# ;] what i learned today… what i learned today… taking a break i&# ;m sure those of you who are still reading have noticed that i haven&# ;t been updating this site much in the past few years. i was sharing my links with you all but now delicious has started adding ads to that. i&# ;m going to rethink how i can use this site effectively going forward. for [&# ;] bookmarks for may , today i found the following resources and bookmarked them on delicious. start a fire grow and expand your audience by recommending your content within any link you share digest powered by rss digest bookmarks for april , today i found the following resources and bookmarked them on delicious. mattermost mattermost is an open source, self-hosted slack-alternative mblock program your app, arduino projects and robots by dragging &# ; dropping fidus writer fidus writer is an online collaborative editor especially made for academics who need to use citations and/or formulas. beek social network for [&# ;] bookmarks for february , today i found the following resources and bookmarked them on delicious. connfa open source ios &# ; android app for conferences &# ; events paperless scan, index, and archive all of your paper documents foss serve foss serve promotes student learning via participation in humanitarian free and open source software (foss) projects. disk inventory x disk inventory x is [&# ;] bookmarks for january , today i found the following resources and bookmarked them on delicious. superpowers the open source, extensible, collaborative html d+ d game maker sequel pro sequel pro is a fast, easy-to-use mac database management application for working with mysql databases. digest powered by rss digest bookmarks for december , today i found the following resources and bookmarked them on delicious. open broadcaster software free, open source software for live streaming and recording digest powered by rss digest bookmarks for november , today i found the following resources and bookmarked them on delicious. numfocus foundation numfocus promotes and supports the ongoing research and development of open-source computing tools through educational, community, and public channels. digest powered by rss digest bookmarks for november , today i found the following resources and bookmarked them on delicious. smore smore makes it easy to design beautiful and effective online flyers and newsletters. ninite install and update all your programs at once digest powered by rss digest bookmarks for november , today i found the following resources and bookmarked them on delicious. vim adventures learning vim while playing a game digest powered by rss digest bookmarks for november , today i found the following resources and bookmarked them on delicious. star wars: building a galaxy with code digest powered by rss digest bookmarks for october , today i found the following resources and bookmarked them on delicious. open food facts open food facts gathers information and data on food products from around the world. digest powered by rss digest bookmarks for october , today i found the following resources and bookmarked them on delicious. versionpress wordpress meets git, properly. undo anything (including database changes), clone &# ; merge your sites, maintain efficient backups, all with unmatched simplicity. digest powered by rss digest bookmarks for october , today i found the following resources and bookmarked them on delicious. sogo share your calendars, address books and mails in your community with a completely free and open source solution. let your mozilla thunderbird/lightning, microsoft outlook, android, apple ical/iphone and blackberry users collaborate using a modern platform. gitbook gitbook is a modern publishing toolchain. making [&# ;] bookmarks for october , today i found the following resources and bookmarked them on delicious. discourse discourse is the % open source discussion platform built for the next decade of the internet. it works as a mailing list, a discussion forum, and a long-form chat room digest powered by rss digest bookmarks for september , today i found the following resources and bookmarked them on delicious. zulip a group chat application optimized for software development teams digest powered by rss digest bookmarks for september , today i found the following resources and bookmarked them on delicious. idonethis reply to an evening email reminder with what you did that day. the next day, get a digest with what everyone on the team got done. digest powered by rss digest bookmarks for september , today i found the following resources and bookmarked them on delicious. vector vector is a new, fully open source communication and collaboration tool we’ve developed that’s open, secure and interoperable. based on the concept of rooms and participants, it combines a great user interface with all core functions we need (chat, file transfer, voip and [&# ;] bookmarks for september , today i found the following resources and bookmarked them on delicious. roundcube free and open source webmail software bolt bolt is an open source content management tool, which strives to be as simple and straightforward as possible. it is quick to set up, easy to configure, uses elegant templates, and above all: it’s a joy [&# ;] bookmarks for september , today i found the following resources and bookmarked them on delicious. madeye madeye is a collaborative web editor backed by your filesystem. digest powered by rss digest bookmarks for september , today i found the following resources and bookmarked them on delicious. gimlet your library&# ;s questions and answers put to their best use. know when your desk will be busy. everyone on your staff can find answers to difficult questions. digest powered by rss digest bookmarks for september , today i found the following resources and bookmarked them on delicious. thimble by mozilla thimble is an online code editor that makes it easy to create and publish your own web pages while learning html, css &# ; javascript. google coder a simple way to make web stuff on raspberry pi digest powered by rss digest bookmarks for august , today i found the following resources and bookmarked them on delicious. mediagoblin mediagoblin is a free software media publishing platform that anyone can run. you can think of it as a decentralized alternative to flickr, youtube, soundcloud, etc. the architecture of open source applications a web whiteboard a web whiteboard is touch-friendly online whiteboard app [&# ;] bookmarks for august , today i found the following resources and bookmarked them on delicious. computer science learning opportunities we have developed a range of resources, programs, scholarships, and grant opportunities to engage students and educators around the world interested in computer science. digest powered by rss digest bookmarks for august , today i found the following resources and bookmarked them on delicious. pydio the mature open source alternative to dropbox and box.net digest powered by rss digest bookmarks for july , today i found the following resources and bookmarked them on delicious. hylafax the world&# ;s most advanced open source fax server digest powered by rss digest the code lib journal the code lib journal editorial resuming our publication schedule managing an institutional repository workflow with gitlab and a folder-based deposit system institutional repositories (ir) exist in a variety of configurations and in various states of development across the country. each organization with an ir has a workflow that can range from explicitly documented and codified sets of software and human workflows, to ad hoc assortments of methods for working with faculty to acquire, process and load items into a repository. the university of north texas (unt) libraries has managed an ir called unt scholarly works for the past decade but has until recently relied on ad hoc workflows. over the past six months, we have worked to improve our processes in a way that is extensible and flexible while also providing a clear workflow for our staff to process submitted and harvested content. our approach makes use of gitlab and its associated tools to track and communicate priorities for a multi-user team processing resources. we paired this web-based management with a folder-based system for moving the deposited resources through a sequential set of processes that are necessary to describe, upload, and preserve the resource. this strategy can be used in a number of different applications and can serve as a set of building blocks that can be configured in different ways. this article will discuss which components of gitlab are used together as tools for tracking deposits from faculty as they move through different steps in the workflow. likewise, the folder-based workflow queue will be presented and described as implemented at unt, and examples for how we have used it in different situations will be presented. customizing alma and primo for home & locker delivery like many ex libris libraries in fall , our library at california state university, northridge (csun) was not physically open to the public during the - academic year, but we wanted to continue to support the research and study needs of our over , university students and , faculty and staff. this article will explain our alma and primo implementation to allow for home mail delivery of physical items, including policy decisions, workflow changes, customization of request forms through labels and delivery skins, customization of alma letters, a python solution to add the “home” address type to patron addresses to make it all work, and will include relevant code samples in python, xsl, css, xml, and json. in spring , we will add the on-site locker delivery option in addition to home delivery, and this article will include new system changes made for that option. ganch: using linked open data for georgia’s natural, cultural and historic organizations’ disaster response in june , the atlanta university center robert w. woodruff library received a lyrasis catalyst fund grant to support the creation of a publicly editable directory of georgia’s natural, cultural and historical organizations (nchs), allowing for quick retrieval of location and contact information for disaster response. by the end of the project, over , entries for nch organizations in georgia were compiled, updated, and uploaded to wikidata, the linked open data database from the wikimedia foundation. these entries included directory contact information and gis coordinates that appear on a map presented on the ganch project website (https://ganch.auctr.edu/), allowing emergency responders to quickly search for nchs by region and county in the event of a disaster. in this article we discuss the design principles, methods, and challenges encountered in building and implementing this tool, including the impact the tool has had on statewide disaster response after implementation. archive this moment d.c.: a case study of participatory collecting during covid- when the covid- pandemic brought life in washington, d.c. to a standstill in march , staff at dc public library began looking for ways to document how this historic event was affecting everyday life. recognizing the value of first-person accounts for historical research, staff launched archive this moment d.c. to preserve the story of daily life in the district during the stay-at-home order. materials were collected from public instagram and twitter posts submitted through the hashtag #archivethismomentdc. in addition to social media, creators also submitted materials using an airtable webform set up for the project and through email. over , digital files were collected. this article will discuss the planning, professional collaboration, promotion, selection, access, and lessons learned from the project; as well as the technical setup, collection strategies, and metadata requirements. in particular, this article will include a discussion of the evolving collection scope of the project and the need for clear ethical guidelines surrounding privacy when collecting materials in real-time. advancing arks in the historical ontology space this paper presents the application of archival resource keys (arks) for persistent identification and resolution of concepts in historical ontologies. our use case is the library of congress subject headings (lcsh), which we have converted to the simple knowledge organization system (skos) format and will use for representing a corpus of historical encyclopedia britannica articles. we report on the steps taken to assign arks in support of the nineteenth-century knowledge project, where we are using the hive vocabulary tool to automatically assign subject metadata from both the lcsh and the contemporary lcsh faceted, topical vocabulary to enable the study of the evolution of knowledge. considered content: a design system for equity, accessibility, and sustainability the university of minnesota libraries developed and applied a principles-based design system to their health sciences library website. with the design system at its center, the revised site was able to achieve accessible, ethical, inclusive, sustainable, responsible, and universal design. the final site was built with elegantly accessible semantic html-focused code on drupal with highly curated and considered content, meeting and exceeding wcag . aa guidance and addressing cognitive and learning considerations through the use of plain language, templated pages for consistent page-level organization, and no hidden content. as a result, the site better supports all users regardless of their abilities, attention level, mental status, reading level, and reliability of their internet connection, all of which are especially critical now as an elevated number of people experience crises, anxieties, and depression. robustifying links to combat reference rot links to web resources frequently break, and linked content can change at unpredictable rates. these dynamics of the web are detrimental when references to web resources provide evidence or supporting information. in this paper, we highlight the significance of reference rot, provide an overview of existing techniques and their characteristics to address it, and introduce our robust links approach, including its web service and underlying api. robustifying links offers a proactive, uniform, and machine-actionable way to combat reference rot. in addition, we discuss our reasoning and approach aimed at keeping the approach functional for the long term. to showcase our approach, we have robustified all links in this article. machine learning based chat analysis the byu library implemented a machine learning-based tool to perform various text analysis tasks on transcripts of chat-based interactions between patrons and librarians. these text analysis tasks included estimating patron satisfaction and classifying queries into various categories such as research/reference, directional, tech/troubleshooting, policy/procedure, and others. an accuracy of % or better was achieved for each category. this paper details the implementation details and explores potential applications for the text analysis tool. always be migrating at the university of california, los angeles, the digital library program is in the midst of a large, multi-faceted migration project. this article presents a narrative of migration and a new mindset for technology and library staff in their ever-changing infrastructure and systems. this article posits that migration from system to system should be integrated into normal activities so that it is not a singular event or major project, but so that it is a process built into the core activities of a unit. editorial: for pandemic times such as this a pandemic changes the world and changes libraries. open source tools for scaling data curation at qdr this paper describes the development of services and tools for scaling data curation services at the qualitative data repository (qdr). through a set of open-source tools, semi-automated workflows, and extensions to the dataverse platform, our team has built services for curators to efficiently and effectively publish collections of qualitatively derived data. the contributions we seek to make in this paper are as follows: . we describe ‘human-in-the-loop’ curation and the tools that facilitate this model at qdr; . we provide an in-depth discussion of the design and implementation of these tools, including applications specific to the dataverse software repository, as well as standalone archiving tools written in r; and . we highlight the role of providing a service layer for data discovery and accessibility of qualitative data. keywords: data curation; open-source; qualitative data from text to map: combing named entity recognition and geographic information systems this tutorial shows readers how to leverage the power of named entity recognition (ner) and geographic information systems (gis) to extract place names from text, geocode them, and create a public-facing map. this process is highly useful across disciplines. for example, it can be used to generate maps from historical primary sources, works of literature set in the real world, and corpora of academic scholarship. in order to lead the reader through this process, the authors work with a article sample of the covid- open research dataset challenge (cord- ) dataset. as of the date of writing, cord- includes , full-text articles with metadata. using this sample, the authors demonstrate how to extract locations from the full-text with the spacy library in python, highlight methods to clean up the extracted data with the pandas library, and finally teach the reader how to create an interactive map of the places using arcgis online. the processes and code are described in a manner that is reusable for any corpus of text using integrated library systems and open data to analyze library cardholders the harrison public library in westchester county, new york operates two library buildings in harrison: the richard e. halperin memorial library building (the library’s main building, located in downtown harrison) and a west harrison branch location. as part of its latest three-year strategic plan, the library sought to use existing resources to improve understanding of its cardholders at both locations. to do so, we needed to link the circulation data in our integrated library system, evergreen, to geographic data and demographic data. we decided to build a geodemographic heatmap that incorporated all three aforementioned types of data. using evergreen, american community survey (acs) data, and google maps, we plotted each cardholder’s residence on a map, added census boundaries (called tracts) and our town’s borders to the map, and produced summary statistics for each tract detailing its demographics and the library card usage of its residents. in this article, we describe how we acquired the necessary data and built the heatmap. we also touch on how we safeguarded the data while building the heatmap, which is an internal tool available only to select authorized staff members. finally, we discuss what we learned from the heatmap and how libraries can use open data to benefit their communities. update oclc holdings without paying additional fees: a patchwork approach accurate oclc holdings are vital for interlibrary loan transactions. however, over time weeding projects, replacing lost or damaged materials, and human error can leave a library with a catalog that is no longer reflected through oclc. while oclc offers reclamation services to bring poorly maintained collections up-to-date, the associated fee may be cost prohibitive for libraries with limited budgets. this article will describe the process used at austin peay state university to identify, isolate, and update holdings using oclc collection manager queries, marcedit, excel, and python. some portions of this process are completed using basic coding; however, troubleshooting techniques will be included for those with limited previous experience. data reuse in linked data projects: a comparison of alma and share-vde bibframe networks this article presents an analysis of the enrichment, transformation, and clustering used by vendors casalini libri/@cult and ex libris for their respective conversions of marc data to bibframe. the analysis considers the source marc data used by alma then the enrichment and transformation of marc data from share-vde partner libraries. the clustering of linked data into a bibframe network is a key outcome of data reuse in linked data projects and fundamental to the improvement of the discovery of library collections on the web and within search systems. collectionbuilder-contentdm: developing a static web ‘skin’ for contentdm-based digital collections unsatisfied with customization options for contentdm, librarians at university of idaho library have been using a modern static web approach to creating digital exhibit websites that sit in front of the digital repository. this "skin" is designed to provide users with new pathways to discover and explore collection content and context. this article describes the concepts behind the approach and how it has developed into an open source, data-driven tool called collectionbuilider-contentdm. the authors outline the design decisions and principles guiding the development of collectionbuilder, and detail how a version is used at the university of idaho library to collaboratively build digital collections and digital scholarship projects. automated collections workflows in gobi: using python to scrape for purchase options the nc state university libraries has developed a tool for querying gobi, our print and ebook ordering vendor platform, to automate monthly collections reports. these reports detail purchase options for missing or long-overdue items, as well as popular items with multiple holds. gobi does not offer an api, forcing staff to conduct manual title-by-title searches that previously took up to hours per month. to make this process more efficient, we wrote a python script that automates title searches and the extraction of key data (price, date of publication, binding type) from gobi. this tool can gather data for hundreds of titles in half an hour or less, freeing up time for other projects. this article will describe the process of creating this script, as well as how it finds and selects data in gobi. it will also discuss how these results are paired with nc state’s holdings data to create reports for collection managers. lastly, the article will examine obstacles that were experienced in the creation of the tool and offer recommendations for other organizations seeking to automate collections workflows. testing remote access to e-resource with codeceptjs at the badische landesbibliothek karlsruhe (blb) we offer a variety of e-resources with different access requirements. on the one hand, there is free access to open access material, no matter where you are. on the other hand, there are e-resources that you can only access when you are in the rooms of the blb. we also offer e-resources that you can access from anywhere, but you must have a library account for authentication to gain access. to test the functionality of these access methods, we have created a project to automatically test the entire process from searching our catalogue, selecting a hit, logging in to the provider's site and checking the results. for this we use the end end testing framework codeceptjs. editorial an abundance of information sharing. leveraging google drive for digital library object storage this article will describe a process at the university of kentucky libraries for utilizing an unlimited google drive for education account for digital library object storage. for a number of recent digital library projects, we have used google drive for both archival file storage and web derivative file storage. as a part of the process, a google drive api script is deployed in order to automate the gathering of of google drive object identifiers. also, a custom omeka plugin was developed to allow for referencing web deliverable files within a web publishing platform via object linking and embedding. for a number of new digital library projects, we have moved toward a small vm approach to digital library management where the vm serves as a web front end but not a storage node. this has necessitated alternative approaches to storing web addressable digital library objects. one option is the use of google drive for storing digital objects. an overview of our approach is included in this article as well as links to open source code we adopted and more open source code we produced. building a library search infrastructure with elasticsearch this article discusses our implementation of an elastic cluster to address our search, search administration and indexing needs, how it integrates in our technology infrastructure, and finally takes a close look at the way that we built a reusable, dynamic search engine that powers our digital repository search. we cover the lessons learned with our early implementations and how to address them to lay the groundwork for a scalable, networked search environment that can also be applied to alternative search engines such as solr. how to use an api management platform to easily build local web apps setting up an api management platform like dreamfactory can open up a lot of possibilities for potential projects within your library. with an automatically generated restful api, the university libraries at virginia tech have been able to create applications for gathering walk-in data and reference questions, public polling apps, feedback systems for service points, data dashboards and more. this article will describe what an api management platform is, why you might want one, and the types of potential projects that can quickly be put together by your local web developer. git and gitlab in library website change management workflows library websites can benefit from a separate development environment and a robust change management workflow, especially when there are multiple authors. this article details how the oakland university william beaumont school of medicine library use git and gitlab in a change management workflow with a serverless development environment for their website development team. git tracks changes to the code, allowing changes to be made and tested in a separate branch before being merged back into the website. gitlab adds features such as issue tracking and discussion threads to git to facilitate communication and planning. adoption of these tools and this workflow have dramatically improved the organization and efficiency of the ouwb medical library web development team, and it is the hope of the authors that by sharing our experience with them others may benefit as well. experimenting with a machine generated annotations pipeline the ucla library reorganized its software developers into focused subteams with one, the labs team, dedicated to conducting experiments. in this article we describe our first attempt at conducting a software development experiment, in which we attempted to improve our digital library’s search results with metadata from cloud-based image tagging services. we explore the findings and discuss the lessons learned from our first attempt at running an experiment. leveraging the rbms/bsc latin place names file with python to answer the relatively straight-forward question “which rare materials in my library catalog were published in venice?” requires an advanced knowledge of geography, language, orthography, alphabet graphical changes, cataloging standards, transcription practices, and data analysis. the imprint statements of rare materials transcribe place names more faithfully as it appears on the piece itself, such as venetus, or venetiae, rather than a recognizable and contemporary form of place name, such as venice, italy. rare materials catalogers recognize this geographic discoverability and selection issue and solve it with a standardized solution. to add consistency and normalization to imprint locations, rare materials catalogers utilize hierarchical place names to create a special imprint index. however, this normalized and contemporary form of place name is often missing from legacy bibliographic records. this article demonstrates using a traditional rare materials cataloging aid, the rbms/bsc latin place names file, with programming tools, jupyter notebook and python, to retrospectively populate a special imprint index for th-century rare materials. this methodology enriched , machine readable cataloging (marc) bibliographic records with hierarchical place names (marc fields) as part of a small pilot project. this article details a partially automated solution to this geographic discoverability and selection issue; however, a human component is still ultimately required to fully optimize the bibliographic data. tweeting tennessee’s collections: a case study of a digital collections twitterbot implementation this article demonstrates how a twitterbot can be used as an inclusive outreach initiative that breaks down the barriers between the web and the reading room to share materials with the public. these resources include postcards, music manuscripts, photographs, cartoons and any other digitized materials. once in place, twitterbots allow physical materials to converge with the technical and social space of the web. twitterbots are ideal for busy professionals because they allow librarians to make meaningful impressions on users without requiring a large time investment. this article covers the recent implementation of a digital collections bot (@utkdigcollbot) at the university of tennessee, knoxville (utk), and provides documentation and advice on how you might develop a bot to highlight materials at your own institution. building strong user experiences in libguides with bootstrapr and reviewr with nearly fifty subject librarians creating libguides, the libguides management team at notre dame needed a way to both empower guide authors to take advantage of the powerful functionality afforded by the bootstrap framework native to libguides, and to ensure new and extant library guides conformed to brand/identity standards and the best practices of user experience (ux) design. to accomplish this, we developed an online handbook to teach processes and enforce styles; a web app to create twitter bootstrap components for use in guides (bootstrapr); and a web app to radically speed the review and remediation of guides, as well as better communicate our changes to guide authors (reviewr). this article describes our use of these three applications to balance empowering guide authors against usefully constraining them to organizational standards for user experience. we offer all of these tools as foss under an mit license so that others may freely adapt them for use in their own organization. iiif by the numbers the ucla library began work on building a suite of services to support iiif for their digital collections. the services perform image transformations and delivery as well as manifest generation and delivery. the team was unsure about whether they should use local or cloud-based infrastructure for these services, so they conducted some experiments on multiple infrastructure configurations and tested them in scenarios with varying dimensions. trust, but verify: auditing vendor-supplied accessibility claims despite a long-overdue push to improve the accessibility of our libraries’ online presences, much of what we offer to our patrons comes from third party vendors: discovery layers, opacs, subscription databases, and so on. we can’t directly affect the accessibility of the content on these platforms, but rely on vendors to design and test their systems and report on their accessibility through voluntary product accessibility templates (vpats). but vpats are self-reported. what if we want to verify our vendors’ claims? we can’t thoroughly test the accessibility of hundreds of vendor systems, can we? in this paper, we propose a simple methodology for spot-checking vpats. since most websites struggle with the same accessibility issues, spot checking particular success criteria in a library vendor vpat can tip us off to whether the vpat as a whole can be trusted. our methodology combines automated and manual checking, and can be done without any expensive software or complex training. what’s more, we are creating a repository to share vpat audit results with others, so that we needn’t all audit the vpats of all our systems. none none none none none none none none none none none none none none none none none none none none none none none none none dan cohen dan cohen vice provost, dean, and professor at northeastern university when we look back on , what will we see? it is far too early to understand what happened in this historic year of , but not too soon to grasp what we will write that history from: data—really big data, gathered from our devices and ourselves. sometimes a new technology provides an important lens through which a historical event is recorded, viewed, and remembered. [&# ;] more than that “less talk, more&# ;grok.” that was one of our early mottos at&# ;thatcamp, the humanities and technology camp, which started at the roy rosenzweig center for history and new media at george mason university in . it was a riff on “less talk, more rock,” the motto of waaf, the hard rock station in worcester, massachusetts. and [&# ;] humane ingenuity: my new newsletter with the start of this academic year, i&# ;m launching a new newsletter to explore technology that helps rather than hurts human understanding, and human understanding that helps us create better technology. it&# ;s called humane ingenuity, and you can subscribe here. (it&# ;s free, just drop your email address into that link.) subscribers to this blog know [&# ;] engagement is the enemy of serendipity whenever i&# ;m grumpy about an update to a technology i use, i try to perform a self-audit examining why i&# ;m unhappy about this change. it&# ;s a helpful exercise since we are all by nature resistant to even minor alterations to the technologies we use every day (which is why website redesign is now a synonym [&# ;] on the response to my atlantic essay on the decline in the use of print books in universities i was not expecting—but was gratified to see—an enormous response to my latest piece in the atlantic, &# ;the books of college libraries are turning into wallpaper,&# ; on the seemingly inexorable decline in the circulation of print books on campus. i&# ;m not sure that i&# ;ve ever written anything that has generated as much feedback, commentary, and [&# ;] what’s new season wrap-up with the end of the academic year at northeastern university, the library wraps up our what&# ;s new podcast, an interview series with researchers who help us understand, in plainspoken ways, some of the latest discoveries and ideas about our world. this year&# ;s slate of podcasts, like last year&# ;s, was extraordinarily diverse, ranging from the threat [&# ;] when a presidential library is digital i&# ;ve got a new piece over at the atlantic on barack obama&# ;s prospective presidential library, which will be digital rather than physical. this has caused some consternation. we need to realize, however, that the obama library is already largely digital: the vast majority of the record his presidency left behind consists not of evocative handwritten [&# ;] robin sloan’s fusion of technology and humanity when roy rosenzweig and i wrote digital history years ago, we spent a lot of time thinking about the overall tone and approach of the book. it seemed to us that there were, on the one hand, a lot of our colleagues in professional history who were adamantly opposed to the use of digital [&# ;] presidential libraries and the digitization of our lives buried in the recent debates (new york times, chicago tribune, the public historian) about the nature, objectives, and location of the obama presidential center is the inexorable move toward a world in which virtually all of the documentation about our lives is digital. to make this decades-long shift—now almost complete—clear, i made the following infographic [&# ;] kathleen fitzpatrick’s generous thinking generosity and thoughtfulness are not in abundance right now, and so kathleen fitzpatrick&# ;s important new book, generous thinking: a radical approach to saving the university, is wholeheartedly welcome. the generosity kathleen seeks relates to lost virtues, such as listening to others and deconstructing barriers between groups. as such, generous thinking can be helpfully read alongside [&# ;] none none none none none none none none none none none none none none none none none none none none afroimpacto home clube e-book newsletter afroimpacto transformar a vida de pessoas negras causar um afroimpacto quem somos somos a afroimpacto: um hub de desenvolvimento afroempreendedor que realiza ações nos eixos de consultoria, educação empreendedora e programas de desenvolvimento, com o objetivo de reduzir a desigualdade social, econômica e educacional no cenário do empreendedorismo. um "hub", no cenário da inovação, são serviços integrados oferecidos a comunidade empreendedora, conectando pessoas e promovendo oportunidades iguais de desenvolvimento. queremos conectar ecossistemas para impulsionar empreendedores(as) negros(as), e assim, promover seu desenvolvimento sócio-econômico. para cumprir nossa missão, atuamos em diferentes frentes, considerando a linguagem e adaptabilidade do conteúdo empreendedor à realidade de pessoas negras. clube afro o clube afro é um clube de conteúdo afroempreendedor para conectar e fortalecer empreendedores negros. conteúdo semanal sobre afroempreendedorismo e negócios em uma linguagem simplificada exercícios e ferramentas para desenvolver o seu negócio em conjunto com fórum para tirar dúvidas rede de afroempreendedores em diferentes estágios disponíveis h a assinatura do clube é mensal e por um preço acessível! participe e-book empreender é se lançar, inovar, criar soluções, transformar problemas em oportunidades de negócio, e muitas outras características. além disso, possui diversas ramificações, entre elas, o empreendedorismo negro. mas como se define esta modalidade de empreendedorismo? antes de respondermos a essa pergunta, traremos para vocês uma série de dados introdutórios que são necessários para compreender o contexto específico e atual da população negra no cenário brasileiro, que influenciam tanto a forma como estes empreendedores começam a empreender, quanto à perspectiva que empreendem. download faça parte da nossa lista de conteúdo! cadastre-se tudo certinho! agora você faz parte da nossa lista :d contato: contato@afroimpacto.com faça o download grátis! preencha o formulário abaixo para receber o e-book em seu e-mail download enviamos o link do download para seu e-mail! boa leitura :d escuela de fiscales saltar al contenido (presiona la tecla intro) escuela de fiscales participación ciudadana y gobierno abierto sumate como fiscal inicio quienes somos? portales abiertos descargas blog escuela de fiscales participación ciudadana y gobierno abierto inicio quienes somos? portales abiertos descargas blog sumate como fiscal menú inicio > ¡sumate a proyecto yarquen! el cambio climático es una de las grandes amenazas que enfrenta nuestro mundo actualmente, por eso, tenemos que utilizar todos los medios que tenemos a disposición para detenerlo. desde escuela de fiscales, creamos el «proyecto yarquen» que utiliza datos abiertos para el activismo ambiental.  el proyecto yarquen consiste en la creación de una web destinada a organizaciones de la sociedad civil, activistas ambientales, periodismo de datos y personas interesadas en cuestiones ambientales la cual, utilizando una herramienta api actualmente en desarrollo, accede a data sets de portales de transparencia oficial del gobierno nacional, provincial y municipal de argentina, para posteriormente organizarlos en diferentes categorías y con un motor de búsqueda interno permitir un fácil acceso a las personas que no están familiarizados con el uso y trabajo con datos abiertos. una de las grandes dificultades que encuentran usuarios y usuarias de open data en nuestro país consiste en que los data sets se encuentran distribuidos en docenas de portales oficiales diferentes, haciendo muy difícil para las personas que no trabajan habitualmente con open data poder llegar a tener información completa sobre un tema específico. la web de proyecto yarquen pretende eliminar esas barreras, al permitir que toda la información disponible pueda accederse desde un solo lugar, con expresiones de búsqueda simples que arrojen como resultado el conjunto completo de datasets. el portal contará además con una sección que permitirá generar solicitudes de accesos a la información publica, para aquellos casos en que alguna información necesaria no se encuentre disponible en las webs oficiales. contará, además, con una sección especial que permitirá a las organizaciones de la sociedad civil y activistas ambientales registrarse, facilitando la vinculación y el trabajo colaborativo entre ellos. todo esto brindara herramientas útiles a la sociedad civil para trabajar por el cuidado y preservación del medio ambiente de una manera mas efectiva, con mayor conocimiento e información sobre temas específicos. ¿cómo podes ayudar? si sos programador/a, diseñador/a, periodista de datos, activista ambiental, trabajas con datos abiertos o perteneces a una organización o colectivo que luche por la preservación y cuidado del ambiente, o simplemente te preocupa el cambio climatico y queres hacer tu parte ¡te necesitamos! envianos un mail a info@escueladefiscales.com y te contactaremos a la brevedad.   © escuela de fiscales.charity care | desarrollado por rara theme. funciona con wordpress. none none none none none none escuela de fiscales – participación ciudadana y gobierno abierto saltar al contenido (presiona la tecla intro) escuela de fiscales participación ciudadana y gobierno abierto sumate como fiscal inicio quienes somos? portales abiertos descargas blog escuela de fiscales participación ciudadana y gobierno abierto inicio quienes somos? portales abiertos descargas blog sumate como fiscal menú un proyecto argentino preseleccionado para ganar el “net zero challenge”, un concurso internacional que premia el uso de datos abiertos para la acción climática. seguir leyendo! mar del plata celebró el dia de los datos abiertos. seguir leyendo! dia de los datos abiertos mar del plata seguir leyendo! participamos de la creación del primer plan de acción de congreso abierto. seguir leyendo! verifica tus datos en el padrÓn ! seguir leyendo! escuela de fiscales participó de la cumbre virtual de líderes de la alianza para el gobierno abierto (ogp). seguir leyendo! frena la curva! con el fin de hacer nuestro aporte a las medidas para combatir la pandemia del nuevo coronavirus covid- nos sumamos a #frenalacurvaargentina, parte de la red internacional #frenalacurva seguir leyendo! foro federal contra las violencias de género el pasado jueves de febrero, participamos del encuentro convocado en chapadmalal por el ministerio de mujeres, géneros y diversidad de la nación, del que también participaron organizaciones comunitarias, organizaciones de la sociedad civil, referentes de los gobiernos locales y provinciales, legisladoras/es y público en general. seguir leyendo! escuela de fiscales participó del lanzamiento del to plan gobierno abierto en la casa rosada escuela de fiscales, organización que promueve la participación ciudadana y la transparencia institucional y electoral, participó del lanzamiento del to plan nacional de gobierno abierto y de la asunción de la co-presidencia argentina de la alianza global para el gobierno abierto en un evento que se realizó el jueves de septiembre en la casa rosada, de la que también participaron funcionarios de gobierno, embajadores y representantes de más de organizaciones de la sociedad civil que trabajaron en la redacción del plan.  seguir leyendo! conoce nuestras actividades gobierno abiertoparticipa! democracia y eleccionesconoce más! politicas de génerosumate! noticias destacadas un proyecto argentino preseleccionado para ganar el “net zero challenge”, un concurso internacional que premia el uso de datos abiertos para la acción climática. se trata del proyecto yarquen, desarrollado por la organización civil escuela de fiscales, el cual utiliza datos abiertos y tecnología como herramienta para la lucha por el ambiente. un proyecto argentino preseleccionado para ganar el “net zero challenge”, un concurso internacional que premia el uso de datos abiertos para la acción climática. se trata del proyecto yarquen, desarrollado por la organización civil escuela de fiscales, el cual utiliza datos abiertos y tecnología como herramienta para la lucha por el ambiente. mar del plata celebró el dia de los datos abiertos. por to años consecutivo, mar del plata formo parte del calendario internacional de eventos del “open data day”, con un encuentro organizado por escuela de fiscales donde se trabajó sobre ambiente, tecnología, desarrollo sostenible, ecología y activismo ambiental. el sábado de marzo mar del plata volvió a sumarse a los eventos internaciones del open data day, una celebración anual … mar del plata celebró el dia de los datos abiertos. por to años consecutivo, mar del plata formo parte del calendario internacional de eventos del “open data day”, con un encuentro organizado por escuela de fiscales donde se trabajó sobre ambiente, tecnología, desarrollo sostenible, ecología y activismo ambiental. el sábado de marzo mar del plata volvió a sumarse a los eventos internaciones del open data day, una celebración anual … participamos de la creación del primer plan de acción de congreso abierto. la honorable cámara de diputados de la nación inició el camino para la elaboración del primer plan de acción de congreso abierto con el objetivo de construir un parlamento más abierto, transparente y participativo, y escuela de fiscales participó de las mesas de trabajo y co-creación de los compromisos que la hcdn asumirá entre marzo de y julio de … participamos de la creación del primer plan de acción de congreso abierto. la honorable cámara de diputados de la nación inició el camino para la elaboración del primer plan de acción de congreso abierto con el objetivo de construir un parlamento más abierto, transparente y participativo, y escuela de fiscales participó de las mesas de trabajo y co-creación de los compromisos que la hcdn asumirá entre marzo de y julio de … escuela de fiscales participó de la cumbre virtual de líderes de la alianza para el gobierno abierto (ogp). este de septiembre escuela de fiscales participó de la cumbre virtual de líderes de la alianza para el gobierno abierto (ogp), oportunidad en la que se realizó el traspaso de la copresidencia del organismo, que nuestro país ejercía  junto a robin hodess, al gobierno de corea y a maría baron en representación de la sociedad civil. escuela de fiscales participó de la cumbre virtual de líderes de la alianza para el gobierno abierto (ogp). este de septiembre escuela de fiscales participó de la cumbre virtual de líderes de la alianza para el gobierno abierto (ogp), oportunidad en la que se realizó el traspaso de la copresidencia del organismo, que nuestro país ejercía  junto a robin hodess, al gobierno de corea y a maría baron en representación de la sociedad civil. blog un proyecto argentino preseleccionado para ganar el “net zero challenge”, un concurso internacional que premia el uso de datos abiertos para la acción climática. se trata del proyecto yarquen, desarrollado por la organización civil... leer más mar del plata celebró el dia de los datos abiertos. por to años consecutivo, mar del plata formo parte del... leer más dia de los datos abiertos mar del plata escuela de fiscales prepara un evento sobre medio ambiente y... leer más © escuela de fiscales.charity care | desarrollado por rara theme. funciona con wordpress. none none none none none none estándar de datos de contrataciones abiertas (ocds) - conjuntos de datos - datos abiertos del poder judicial de costa rica ir al contenido iniciar sesión registro conjuntos de datos organizaciones grupos acerca de buscar conjuntos de datos inicio organizaciones poder judicial de costa rica estándar de datos de ... estándar de datos de contrataciones abiertas (ocds) seguidores organización poder judicial de costa rica poder judicial de costa rica leer más social twitter facebook licencia creative commons attribution conjunto de datos grupos flujo de actividad estándar de datos de contrataciones abiertas (ocds) estándar de datos de contrataciones abiertas (ocds) datos y recursos estándar de datos de contrataciones abiertas ...zip estándar de datos de contrataciones abiertas (ocds) - masivo explorar más información ir al recurso estándar de datos de contrataciones abiertas ...json estándar de datos de contrataciones abiertas (ocds) - explorar más información ir al recurso estándar de datos de contrataciones abiertas ...json estándar de datos de contrataciones abiertas (ocds) - explorar más información ir al recurso estándar de datos de contrataciones abiertas ...json estándar de datos de contrataciones abiertas (ocds) - explorar más información ir al recurso estándar de datos de contrataciones abiertas ...json estándar de datos de contrataciones abiertas (ocds) - explorar más información ir al recurso información adicional campo valor autor poder judicial mantenedor poder judicial versión . Última actualización enero, , : (utc) creado agosto, , : (utc) lineamiento de publicación de datos abiertos del poder judicial de costa ricasegúnopen contracting data standard (ocds) https://proveeduria.poder-judicial.go.cr/images/documentos/lineamientos_open_contracting_pjcrc_version_final_rev_ju_innovaapv .pdf acerca de datos abiertos del poder judicial de costa rica api ckan ckan association gestionado con ckan idioma español english português (brasil) 日本語 italiano čeština (Česká republika) català français Ελληνικά svenska српски norsk bokmål (norge) slovenčina suomi русский deutsch polski nederlands български 한국어 (대한민국) magyar slovenščina latviešu tiếng việt srpski (latinica) 中文 (简体, 中国) فارسی (ایران) ខ្មែរ english (australia) українська (Україна) नेपाली galego shqip עברית македонски ไทย українська indonesia türkçe español (argentina) hrvatski íslenska dansk (danmark) монгол (Монгол) العربية română português (portugal) lietuvių 中文 (繁體, 台灣) filipino (pilipinas) ir none template name: characters remaining: template description: characters remaining: name: filename: select the destination folder: select a folder report edit test activate deactivate save as template copy delete undelete archive set as in progress form content only unsubscribe form custom some non-required fields on this form are blank. do you wish to save with blank values? loading... join the dlf forum newsletter mailing list! email: * first name * last name * institution title opt-in to join the list dlf forum news please verify that you are not a robot. sign up dlf never shares your information. but we do like to share information with you! none none none none activitypub rocks! don't you miss the days when the web really was the world's greatest decentralized network? before everything got locked down into a handful of walled gardens? so do we. enter activitypub! activitypub is a decentralized social networking protocol based on the activitystreams . data format. activitypub is an official w c recommended standard published by the w c social web working group. it provides a client to server api for creating, updating and deleting content, as well as a federated server to server api for delivering notifications and subscribing to content. sounds exciting? dive in! ==> latest published version <== ==> latest editor's draft <== or, are you a user looking for activitypub software to use? check out this guide for activitypub users (community edited)! ~= hey, implementers! =~we're so stoked to have you implementing activitypub! to make sure activitypub implementations work together, we have: guide for new activitypub implementers -- community edited and unofficial, but useful! a test suite: -- make sure your application works right according to the activitypub standard. implementation reports: -- see the implementation coverage of applications which implemented activitypub during the standardization process. looking to discuss implementing activitypub? you can join the #social irc channel on irc.w .org! see also socialhub, a community-run forum to discuss activitypub developments and ideas, and the social cg, a w c community group to continue the work of advancing the federated social web... including activitypub! -=* activitypub news *=- some (long overdue) site updatesmon january let us meet on socialhub!thu december activitypub reaches w c recommendation status! everybody party!tue march activitypub reaches proposed recommendation status!fri december test suite up, implementation reports page up... let's get more reports in!mon november mastodon launches their activitypub support, and a new cr!sun september new tutorial, new logo!tue may help submit implementation reports!sun april activitypub reaches candidate recommendation status!thu november activitypub.rocks launches!mon november site contents dual licensed under creative commons attribution-sharealike . international and the gnu gpl, version or any later version. activitypub logo by mray, released into public domain under cc . . powered by haunt. none none none none evergreen . . release notes evergreen . . release notes table of contents javascript must be enabled in your browser to display the table of contents. . upgrade notes . . database upgrade procedure the database schema upgrade for evergreen . has more steps than normal. the general procedure, assuming evergreen . . as the starting point, is: run the main . . ⇒ to . schema update script from the evergreen source directory, supplying database connection parameters as needed: psql -f open-ils/src/sql/pg/version-upgrade/ . . - . . -upgrade-db.sql >& | tee . . - . . -upgrade-db.log create and ingest search suggestions: run the following from psql to export the strings to files: \a \t \o title select value from metabib.title_field_entry; \o author select value from metabib.author_field_entry; \o subject select value from metabib.subject_field_entry; \o series select value from metabib.series_field_entry; \o identifier select value from metabib.identifier_field_entry; \o keyword select value from metabib.keyword_field_entry; \o \a \t from the command line, convert the exported words into sql scripts to load into the database. this step assumes that you are at the top of the evergreen source tree. $ ./open-ils/src/support-scripts/symspell-sideload.pl title > title.sql $ ./open-ils/src/support-scripts/symspell-sideload.pl author > author.sql $ ./open-ils/src/support-scripts/symspell-sideload.pl subject > subject.sql $ ./open-ils/src/support-scripts/symspell-sideload.pl series > series.sql $ ,/open-ils/src/support-scripts/symspell-sideload.pl identifier > identifier.sql $ ./open-ils/src/support-scripts/symspell-sideload.pl keyword > keyword.sql back in psql, import the suggestions. this step can take several hours in a large databases, but the \i $file.sql` steps can be run in parallel. alter table search.symspell_dictionary set unlogged; truncate search.symspell_dictionary; \i identifier.sql \i author.sql \i title.sql \i subject.sql \i series.sql \i keyword.sql cluster search.symspell_dictionary using symspell_dictionary_pkey; reindex table search.symspell_dictionary; alter table search.symspell_dictionary set logged; vacuum analyze search.symspell_dictionary; drop table search.symspell_dictionary_partial_title; drop table search.symspell_dictionary_partial_author; drop table search.symspell_dictionary_partial_subject; drop table search.symspell_dictionary_partial_series; drop table search.symspell_dictionary_partial_identifier; drop table search.symspell_dictionary_partial_keyword; (optional) apply the new opt-in setting for overdue and preduce notices. the following query will set the circ.default_overdue_notices_enabled user setting to true (the default value) for all existing users, ensuring they continue to receive overdue/predue emails. insert into actor.usr_setting (usr, name, value) select id, circ.default_overdue_notices_enabled, true from actor.usr; the following query will add the circ.default_overdue_notices_enabled user setting as an opt-in setting for all action triggers that send emails based on a circ being due (unless another opt-in setting is already in use). update action_trigger.event_definition set opt_in_setting = circ.default_overdue_notices_enabled, usr_field = usr where opt_in_setting is null and hook = checkout.due and reactor = sendemail; evergreen admins who wish to use the new setting should run both of the above queries. admins who do not wish to use it, or who are already using a custom opt-in setting of their own, do not need to do anything. perform a vacuum analyze of the following tables using psql: vacuum analyze authority.full_rec; vacuum analyze authority.simple_heading; vacuum analyze metabib.identifier_field_entry; vacuum analyze metabib.combined_identifier_field_entry; vacuum analyze metabib.title_field_entry; vacuum analyze metabib.combined_title_field_entry; vacuum analyze metabib.author_field_entry; vacuum analyze metabib.combined_author_field_entry; vacuum analyze metabib.subject_field_entry; vacuum analyze metabib.combined_subject_field_entry; vacuum analyze metabib.keyword_field_entry; vacuum analyze metabib.combined_keyword_field_entry; vacuum analyze metabib.series_field_entry; vacuum analyze metabib.combined_series_field_entry; vacuum analyze metabib.real_full_rec; . . new seed data . . . new permissions administer geographic location services (admin_geolocation_services) administer library groups (admin_library_groups) manage batch (subscription) hold events (manage_hold_groups) modify patron sso settings (sso_admin) view geographic location services (view_geolocation_services) . . . new global flags block the ability of expired user with the staff_login permission to log into evergreen (auth.block_expired_staff_login) offer use of geographic location services in the public catalog (opac.use_geolocation) . . . new internal flags maximum search result count at which spelling suggestions may be offered (opac.did_you_mean.low_result_threshold) . . . new library settings allow both shibboleth and native opac authentication (opac.login.shib_sso.allow_native) allow renewal request if renewal recipient privileges have expired (circ.renew.expired_patron_allow) enable holdings sort by geographic proximity ('opac.holdings_sort_by_geographic_proximity`) enable shibboleth sso for the opac (opac.login.shib_sso.enable) evergreen sso matchpoint (opac.login.shib_sso.evergreen_matchpoint) geographic location service to use for addresses (opac.geographic_location_service_for_address) keyboard distance score weighting in opac spelling suggestions (search.symspell.keyboard_distance.weight) log out of the shibboleth idp (opac.login.shib_sso.logout) minimum required uses of a spelling suggestions that may be offered (search.symspell.min_suggestion_use_threshold) pg_trgm score weighting in opac spelling suggestions (search.symspell.pg_trgm.weight) randomize group hold order (holds.subscription.randomize) shibboleth sso entity id (opac.login.shib_sso.entityid) shibboleth sso matchpoint (opac.login.shib_sso.shib_matchpoint) show geographic proximity in miles (opac.geographic_proximity_in_miles) soundex score weighting in opac spelling suggestions (search.symspell.soundex.weight) . . . new stock action/trigger event definitions hold group hold placed for patron email notification . new features . . administration . . . single sign on (shibboleth) public catalog integration the evergreen opac can now be used as a service provider (sp) in a single sign on infrastructure. this allows system administrators to connect the evergreen opac to an identity provider (idp). such a scenario offers significant usability improvements to patrons: they can use the same, idp-provided login screen and credentials that they use for other applications (sps). if they have already logged into another participating application, when they arrive at the evergreen opac, they can be logged in without needing to enter any credentials at all. evergreen can be configured to offer a single sign-out service, where logging out of the evergreen opac will also log the user out of all other sps. it can also offer security benefits, if it enables a shibboleth-enabled evergreen installation to move away from insecure autogenerated user passwords (e.g. year of birth or last four digits of a phone number). different org units can use different idps. this development also supports a mix of shibboleth and non-shibboleth libraries. note that only the opac can be integrated with shibboleth at this time; no such support exists for the staff client, self-check, etc. also note that this development does not include automatic provisioning of accounts. at this time, matching accounts must already exist in evergreen for a patron to successfully authenticate into the opac via single sign on. installation installing and configuring shibboleth support is a complex project. in broad strokes, the process includes: installing shibboleth and the shibboleth apache module (apt install libapache -mod-shib on debian and ubuntu) configuring shibboleth, including: setting up a certificate assigning an entity id getting metadata about the idp from the idp (perhaps "locally maintained metadata", where an xml file from the idp is copied into place on your evergreen server) understanding what attributes the idp will provide about your users, and describing them in the attribute-map.xml file. providing your entity id, information about possible bindings, and any other requested information to the idp administrator. much of this information will be available at http://your_evergreen_domain/shibboleth.sso/metadata configuring apache, including: enabling shibboleth authentication in the eg_vhost.conf file (optional) using the new sso_loc apache variable to identify which org unit should be used as the context location when fetching shibboleth-related library settings. as a user with the new sso_admin permission, configure evergreen using the library settings editor, including: enable shibboleth sso for the opac (optional) configure whether you will use sso exclusively, or offer patrons a choice between sso and standard evergreen authentication (optional) configure whether or not you will use single log out (optional) in scenarios where a single evergreen installation is connected to multiple idps, assign org units to the relevant idps, referenced by the idp’s entity id. of the attributes defined in attribute-map.xml, configure which one should be used to match users in the evergreen database. this defaults to uid. for the attribute you chose in the previous step, configure which evergreen field it should match against. options are usrname (default), barcode, and email. this video on the saml protocol can be very helpful for introducing the basic concepts used in the installation and configuration processes. . . architecture . . . block login of expired staff accounts evergreen now has the ability to prevent staff users whose accounts have expired from logging in. this is controlled by the new global flag "auth.block_expired_staff_login", which is not enabled by default. if that flag is turned on, accounts that have the staff_login permission and whose expiration date is in the past are prevented from logging into any evergreen interface, including the staff client, the public catalog, and sip . it should be noted that ordinary patrons are allowed to log into the public catalog if their circulation privileges have expired. this feature prevents expired staff users from logging into the public catalog (and all other evergreen interfaces and apis) outright in order to prevent them from getting into the staff interface anyway by creative use of evergreen’s authentication apis. evergreen admins are advised to check the expiration status of staff accounts before turning on the global flag, as otherwise it is possible to lock staff users out unexpectedly. the following sql query will identify expired but otherwise un-deleted users that would be blocked by turning on the flag: select distinct usrname, expire_date from actor.usr au, permission.usr_has_perm_at_all(id, 'staff_login') where active and not deleted and not barred and expire_date < now() note that this query can take a long time to run in large databases given the general way that it checks for users that have the staff_login permission. replacing the use of permission.usr_has_perm_at_all() with a query on expired users with profiles known to have the staff_login permission will be much faster. . . . migration from gist to gin indexes for full text search evergreen now uses gin indexes for full text search in postgresql. gin indexes offer better performance than gist. for more information on the differences in the two index types, please refer to the postgresql documentation. an upgrade script is provided as part of this migration. if you upgrade normally from a previous release of evergreen, this upgrade script should run as part of the upgrade process. the migration script recommends that you run a vacuum analyze in postgresql on the tables that had the indexes changed. the migration process does not do this for you, so you should do it as soon as is convenient after the upgrade. updating your own indexes if you have added your own full text indexes of type gist, and you wish to migrate them to gin, you may do so. the following query, when run in your evergreen databsase after the migration from gist to gin, will identify the remaining gist indexes in your database: select schemaname, indexname from pg_indexes where indexdef ~* 'gist'; if the above query produces output, you can run the next query to output a sql script to migrate the remaining indexes from gist to gin: select 'drop index ' || schemaname || '.' || indexname || e';\n' || regexp_replace(indexdef, 'gist', 'gin', 'i') || e';\n' || 'vacuum analyze ' || schemaname || '.' || tablename || ';' from pg_indexes where indexdef ~* 'gist'; . . . removal of custom dojo build evergreen had a method of making a custom build of the dojo javascript library. following this procedure could improve the load times for the opac and other interfaces that use dojo. however, very few sites took advantage of this process or even knew of its existence. as a part of the process, an openils_dojo.js file was built and installed along with the other dojo files. evergreen had many references to load this optional file. for the majority of sites that did not use this custom dojo process, this file did not exist. browsers would spend time and resources requesting this nonexistent file. this situation also contributed noise to the apache logs with the errors from these requests. in keeping with the goal of eliminating dojo from evergreen, all references to openils_dojo.js have been removed from the opac and other files. the profile script required to make the custom dojo build has also been removed. . . cataloging . . . czech language records in sample data this release adds czech-language marc records to the sample data set (also known as concerto data set). . . . publisher catalog display includes tag publisher values are now extracted for display from tags or . upgrade notes a partial reingest is required to extract the new publisher data for display. this query may be long-running. with affected_bibs as ( select distinct(bre.id) as id from biblio.record_entry bre join metabib.real_full_rec mrfr on (mrfr.record = bre.id and mrfr.tag = ' ') where not bre.deleted ) select metabib.reingest_metabib_field_entries(id, true, false, true, true) from affected_bibs; . . circulation . . . hold groups this feature allows staff to add multiple users to a named hold group bucket and place title-level holds for a record for that entire set of users. users can be added to such a hold group bucket from either the patron search result interface, via the add to bucket dropdown, or through a dedicated hold group interface available from the circulation menu. adding new patrons to a hold group bucket will require staff have the place_hold permission. holds can be placed for the users in a hold group bucket either directly from the normal staff-place hold interface in the embedded opac, or by supplying the record id within the hold group bucket interface. in the latter case, the list of users for which a hold was attempted but failed to be placed can be downloaded by staff in order to address any placement issues. placing a hold group bucket hold will requires staff have the manage_hold_groups permission, which is new with this development. in the event of a mistaken hold group hold, staff with the manage_hold_groups permission will have the ability to cancel all unfulfilled holds created as part of a hold group event. a link to the title’s hold interface is available from the list of hold group events in the dedicated hold group interface. . . . scan item as missing pieces angular port the scan item as missing pieces interface is now an angular interface. the functionality is the same, but the interface displays more details on the item in question (title/author/callnum) before proceeding with the missing pieces process. . . . opt-in setting for overdue and predue emails the "receive overdue and courtesy emails" user setting permits users to control whether they receive email notifications about overdue items. to use the setting, modify any action trigger event definitions which send emails about overdue items, setting the "opt in setting" to "circ.default_overdue_notices_enabled" and the "user field" to "usr". you can accomplish this by running the following query in your database: update action_trigger.event_definition set opt_in_setting = 'circ.default_overdue_notices_enabled', usr_field = 'usr' where opt_in_setting is null and hook = 'checkout.due' and reactor = 'sendemail'; once this is done, the patron registration screen in the staff client will show a "receive overdue and courtesy emails" checkbox, which will be checked by default. to ensure that existing patrons continue to recieve email notifications, you will need to add the user setting to their accounts, which you can do by running the following query in your database: insert into actor.usr_setting (usr, name, value) select id, 'circ.default_overdue_notices_enabled', 'true' from actor.usr; . . . allow circulation renewal for expired patrons the "allow renewal request if renewal recipient privileges have expired" organizational unit setting can be set to true to permit expired patrons to renew circulations. allowing renewals for expired patrons reduces the number of auto-renewal failures and assumes that a patron with items out eligible for renewals has not been expired for very long and that such patrons are likely to renew their privileges in a timely manner. the setting is referenced based on the current circulation library for the renewal. it takes into account the global flags for "circ: use original circulation library on desk renewal instead of the workstation library" and "circ: use original circulation library on opac renewal instead of user home library." . . opac . . . consistent ordering for carousels carousel ordering is now stable and predictable: newly cataloged item and newest items by shelving location carousels are ordered from most recently cataloged to least recently cataloged. recently returned item carousels is ordered is from most recently returned to least recently returned. top circulated items carousels is ordered is from most circulated to least circulated. manual carousels (as of now, without the ability to adjust the position of items) are in the order they are added to the backing bucket. emptying and refilling the bucket allows reordering. . . . default public catalog to the bootstrap skin the public catalog now defaults to the bootstrap skin rather than the legacy tpac skin. bootstrap is now the default in order to encourage more testing, but users should be aware of the following issues; certain specific functionality is available only in the tpac skin. the tpac skin remains available for use, but current evergreen users should start actively considering migrating to the bootstrap skin. in order to continue to use the tpac skin, comment out the following line in eg_vhost.conf perladdvar oilswebtemplatepath "@localstatedir@/templates-bootstrap" # comment this line out to use the legacy tpac . . . did you mean? single word search suggestions this feature is the first in the series to add native search suggestions to the evergreen search logic. a significant portion of the code is dedicated to infrastructure that will be used in later enhancements to the functionality. overview when searching the public or staff catalog in a single search class (title, author, subject, series, identifier, or keyword) with a single search term users can be presented with alternate search terms. depending on how the instance has been configured, suggestions may be provided for only misspelled words (as defined by existence in the bibliographic corpus), terms that are spelled properly but occur very few times, or on every single-term search. settings the following new library settings control the behavior of the suggestions: maximum search result count at which spelling suggestions may be offered minimum required uses of a spelling suggestions that may be offered maximum number of spelling suggestions that may be offered pg_trgm score weighting in opac spelling suggestions soundex score weighting in opac spelling suggestions qwerty keyboard similarity score weighting in opac spelling suggestions there are also two new internal flags: symspell.prefix_length symspell.max_edit_distance upgrading this feature requires the addition of new perl module dependencies. please run the app server and database server dependency makefiles before applying the database and code updates. at the end of the database upgrade script, the administrator is presented with a set of instructions necessary to precompute the suggestion dictionary based on the current bibliographic database. the first half of this procedure can be started even before the upgrade begins, as soon as the evergreen database is no longer accessible to users that might cause changes to bibliographic records. for very large instances, this dictionary generation can take several hours and needs to be run on a server with significant ram and cpu resources. please look at the upgrade script before beginning an upgrade and plan this dictionary creation as part of the overall upgrade procedure. given a server, such as a database server with g of ram, you should be able to run all six of the shell commands in parallel in screen sessions or with a tool such as gnu parallel. these commands invoke a script that will generate a class-specific sub-set of the dictionary, and can be used to recreate the dictionary if necessary in the future. . . . sort holdings by geographical proximity this functionality integrates rd party geographic lookup services to allow patrons to enter an address on the record details page in the opac and sort the holdings for that record based on proximity of their circulating libraries to the entered address. to support this, latitude and longitude coordinates may be associated with each org unit. care is given to not log or leak patron provided addresses or the context in which they are used. requires the following perl modules: geo::coder::free, geo::coder::google, and geo::coder::osm configuration instructions: register an account with a third party geographic location service and copy the api key. configure the geographic location service (server administration > geographic location service > new geographic location service). enable global flag by navigating to server administration → global flags and locating the opac.use_geolocation flag. (any entry in the value field will be ignored.) enable library setting: enable holdings sort by geographic proximity (set to true). enable library setting: geographic location service to use for addresses (use the value from the name field entered in the geographic location services configuration entry). enable library setting: show geographic proximity in miles (if not set, it will default to kilometers). set the geographic coordinates for each location by navigating to server administration > organizational units. select the org unit, switch to the physical address subtab and either manually enter latitude and longitude values or use the get coordinate button. two new permissions, view_geolocation_services and admin_geolocation_services, control viewing and editing values in the geolocation location services interface. they are added to the system administrator and global administrator permissions groups by default. . . . library groups the library groups search feature revives a longstanding internal concept in evergreen called “lassos,” which allows an administrator to define a group of organizational units for searching outside of the standard organizational unit hierarchy. use case examples include creating a group of law or science libraries within a university consortium, or grouping all school libraries together within a mixed school/public library consortium. searches can be restricted to a particular library group from the library selector in the public catalog basic search page and from the new "where" selector on the advanced search page. restricting catalog searches by library group is available only in the public catalog and "traditional" staff catalog; it is not available in the angular staff catalog. this feature adds a new permission, admin_library_groups, that allows updating library groups and library group maps. this permission is not associated with any profiles by default, and replaces the create_lasso, update_lasso, and delete_lasso permissions. to define new library groups, use the server administration library groups and library group maps pages. an autogen and a reload of apache should be performed after making changes to library groups. . . . easier styling of public catalog logo and cart images evergreen now has ids associated with logos and cart images in the tpac and bootstrap opacs to aid in customization. images are as follows: small evergreen logo in navigation bar is topnav_logo_image the large evergreen logo in the center of the splash page of the tpac is homesearch_main_logo_image the cart icon is cart_icon_image the small logo in the footer is footer_logo_image the bootstrap opac does not have a homesearch logo icon as it is added in the background by css and can be directly styled through the css. . . . easier tpac customization via colors.tt twelve new colors for tpac have been added to the colors.tt file as well as having corresponding changes to the style.css.tt file. these use descriptive rather than abstract names. these changes help avoid situations were unreadable values are placed on top of each other and where different values are wanted for elements that only refernece a single color previously. guidelines are below for setting values that correspond to the previous values used in the colors.tt file. for more diverse customizations the opac should be reviewed before a production load. footer is used for the background color of the footer. it replaces the primary. footer_text sets the text color in the footer and replaces text_invert header sets the background of the header and replaces primary_fade header_text sets the color of text in the header and replaces text_invert header_links_bar sets the background of the links bar that separates the header on the front page of the opac and replaces background_invert header_links_text sets the text on the links bar and replaces text_invert header_links_text_hover set the hover text color on the links bar and replaces primary opac_button sets the background color of the my opac button and replaces control opac_button_text explicitly sets the text color on the my opac button opac_button_hover sets the background color of the my opac button when the mouse is hovering over it and replaces primary opac_button_hover_text sets the text color of the my opac button when the mouse is hovering over it and replaces text invert note that is patch is primarily meant for users who wish to continue using tpac rather than the bootstrap skin for a while; new evergreen users are advised to use the now-default bootstrap skin. . . . configurable read more accordion for opac search and record view (tpac) read more button public catalog record fields (in the tpac skin only) now truncate themselves based on a configurable amount of characters. the full field may be displayed upon hitting a (read more) link, which will then toggle into a (read less) link to re-truncate the field. configuration open-ils/src/templates/opac/parts/config.tt contains two new configuration variables: truncate_contents (default: ) contents_truncate_length (default: ). setting truncate_contents to will disable the read more functionality. the variable contents_truncate_length corresponds to the amount of characters to display before truncating the text. if contents_truncate_length is removed, it will default to . additional configuration for note fields can be made in open-ils/src/templates/opac/parts/record/contents.tt , allowing a trunc_length variable for each individual type of note, which will override contents_truncate_length for that specific type of note. adding read more functionality to further fields to add read more functionality to any additional fields, you may use the macro accordion(), defined in misc_util.tt . it can take three variables: str, trunc_length, and element. str corresponds to the string you want to apply it to, trunc_length (optional) will override contents_truncate_length if supplied, and element (optional) provides an alternative html element to look at for the truncation process (useful in situations such as the authors and cast fields, where each field is processed individually, but needs to be treated as a single field). . . reports . . . reports scheduler improvements previously, the reports scheduler allowed duplicated reports under certain circumstances. a uniqueness constraint now disallows this without adversely affecting the reports process. . miscellaneous the create reservation form in the booking module now includes an option to search for the patron by attributes other than just their barcode. (bug ) the form to add a user to a course now includes an option to search for the patron by attributes other than just their barcode. (bug ) for consistency with the menu action cataloging ⇒ retrieve record by tcn value, the staff catalog numeric search ⇒ tcn search now includes deleted bib records. (bug ) add a new command-line script, overdrive-api-checker.pl, for testing the overdrive api. (bug ) the shelving location groups editor is ported to angular. (bug ) the staff catalog now has the ability to add all search results (up to , titles) to the basket in one fell swoop. (bug ) add all videos as a search format. (bug ) server-side print templates can now have print contexts set. (bug ) add ability to set the print context for a print template to "no-print" to specify, well, that a given receipt should never be printed. (bug ) add check number as an available column to the bill history grids. (bug ) adds a new control to the item table in the tpac public catalog only to specify that only items that are available should be displayed. (bug ) adds warning before deleting bib records with holds (bug ) library scope on (angular) administration pages now defaults to workstation location rather than consortium (bug ) pending users now set last four digits of phone number as password when library setting is enabled (bug ) . acknowledgments the evergreen project would like to acknowledge the following organizations that commissioned developments in this release of evergreen: bc libraries cooperative community library (sunbury) consortium of ohio libraries (cool) evergreen community development initiative evergreen indiana georgia pines linn-benton community college pennsylvania integrated library system (pails) we would also like to thank the following individuals who contributed code, translations, documentation, patches, and tests to this release of evergreen: john amundson zavier banks felicia beaudry jason boyer dan briem andrea buntz neiman christine burns galen charlton garry collum eva cerniňáková dawn dale elizabeth davis jeff davis martha driscoll bill erickson jason etheridge ruth frasur blake graham-henderson katie greenleaf martin rogan hamby elaine hardy kyle huckins angela kilsdonk tiffany little mary llewellyn terran mccanna chauncey montgomery gina monti michele morgan carmen oleskevich jennifer pringle mike risher mike rylander jane sandberg chris sharp ben shum remington steed jason stephenson jennifer weston beth willis we also thank the following organizations whose employees contributed patches: bc libraries cooperative calvin college catalyte cw mars equinox open library initiative georgia public library service kenton county public library king county library system linn-benton community college mobius noble westchester library system we regret any omissions. if a contributor has been inadvertently missed, please open a bug at http://bugs.launchpad.net/evergreen/ with a correction. last updated - - : : edt evergreen . . release notes evergreen . . release notes table of contents javascript must be enabled in your browser to display the table of contents. . upgrade notes . . database upgrade procedure the database schema upgrade for evergreen . has more steps than normal. the general procedure, assuming evergreen . . as the starting point, is: run the main . . ⇒ to . schema update script from the evergreen source directory, supplying database connection parameters as needed: psql -f open-ils/src/sql/pg/version-upgrade/ . . - . . -upgrade-db.sql >& | tee . . - . . -upgrade-db.log create and ingest search suggestions: run the following from psql to export the strings to files: \a \t \o title select value from metabib.title_field_entry; \o author select value from metabib.author_field_entry; \o subject select value from metabib.subject_field_entry; \o series select value from metabib.series_field_entry; \o identifier select value from metabib.identifier_field_entry; \o keyword select value from metabib.keyword_field_entry; \o \a \t from the command line, convert the exported words into sql scripts to load into the database. this step assumes that you are at the top of the evergreen source tree. $ ./open-ils/src/support-scripts/symspell-sideload.pl title > title.sql $ ./open-ils/src/support-scripts/symspell-sideload.pl author > author.sql $ ./open-ils/src/support-scripts/symspell-sideload.pl subject > subject.sql $ ./open-ils/src/support-scripts/symspell-sideload.pl series > series.sql $ ,/open-ils/src/support-scripts/symspell-sideload.pl identifier > identifier.sql $ ./open-ils/src/support-scripts/symspell-sideload.pl keyword > keyword.sql back in psql, import the suggestions. this step can take several hours in a large databases, but the \i $file.sql` steps can be run in parallel. alter table search.symspell_dictionary set unlogged; truncate search.symspell_dictionary; \i identifier.sql \i author.sql \i title.sql \i subject.sql \i series.sql \i keyword.sql cluster search.symspell_dictionary using symspell_dictionary_pkey; reindex table search.symspell_dictionary; alter table search.symspell_dictionary set logged; vacuum analyze search.symspell_dictionary; drop table search.symspell_dictionary_partial_title; drop table search.symspell_dictionary_partial_author; drop table search.symspell_dictionary_partial_subject; drop table search.symspell_dictionary_partial_series; drop table search.symspell_dictionary_partial_identifier; drop table search.symspell_dictionary_partial_keyword; (optional) apply the new opt-in setting for overdue and preduce notices. the following query will set the circ.default_overdue_notices_enabled user setting to true (the default value) for all existing users, ensuring they continue to receive overdue/predue emails. insert into actor.usr_setting (usr, name, value) select id, circ.default_overdue_notices_enabled, true from actor.usr; the following query will add the circ.default_overdue_notices_enabled user setting as an opt-in setting for all action triggers that send emails based on a circ being due (unless another opt-in setting is already in use). update action_trigger.event_definition set opt_in_setting = circ.default_overdue_notices_enabled, usr_field = usr where opt_in_setting is null and hook = checkout.due and reactor = sendemail; evergreen admins who wish to use the new setting should run both of the above queries. admins who do not wish to use it, or who are already using a custom opt-in setting of their own, do not need to do anything. perform a vacuum analyze of the following tables using psql: vacuum analyze authority.full_rec; vacuum analyze authority.simple_heading; vacuum analyze metabib.identifier_field_entry; vacuum analyze metabib.combined_identifier_field_entry; vacuum analyze metabib.title_field_entry; vacuum analyze metabib.combined_title_field_entry; vacuum analyze metabib.author_field_entry; vacuum analyze metabib.combined_author_field_entry; vacuum analyze metabib.subject_field_entry; vacuum analyze metabib.combined_subject_field_entry; vacuum analyze metabib.keyword_field_entry; vacuum analyze metabib.combined_keyword_field_entry; vacuum analyze metabib.series_field_entry; vacuum analyze metabib.combined_series_field_entry; vacuum analyze metabib.real_full_rec; . . new seed data . . . new permissions administer geographic location services (admin_geolocation_services) administer library groups (admin_library_groups) manage batch (subscription) hold events (manage_hold_groups) modify patron sso settings (sso_admin) view geographic location services (view_geolocation_services) . . . new global flags block the ability of expired user with the staff_login permission to log into evergreen (auth.block_expired_staff_login) offer use of geographic location services in the public catalog (opac.use_geolocation) . . . new internal flags maximum search result count at which spelling suggestions may be offered (opac.did_you_mean.low_result_threshold) . . . new library settings allow both shibboleth and native opac authentication (opac.login.shib_sso.allow_native) allow renewal request if renewal recipient privileges have expired (circ.renew.expired_patron_allow) enable holdings sort by geographic proximity ('opac.holdings_sort_by_geographic_proximity`) enable shibboleth sso for the opac (opac.login.shib_sso.enable) evergreen sso matchpoint (opac.login.shib_sso.evergreen_matchpoint) geographic location service to use for addresses (opac.geographic_location_service_for_address) keyboard distance score weighting in opac spelling suggestions (search.symspell.keyboard_distance.weight) log out of the shibboleth idp (opac.login.shib_sso.logout) minimum required uses of a spelling suggestions that may be offered (search.symspell.min_suggestion_use_threshold) pg_trgm score weighting in opac spelling suggestions (search.symspell.pg_trgm.weight) randomize group hold order (holds.subscription.randomize) shibboleth sso entity id (opac.login.shib_sso.entityid) shibboleth sso matchpoint (opac.login.shib_sso.shib_matchpoint) show geographic proximity in miles (opac.geographic_proximity_in_miles) soundex score weighting in opac spelling suggestions (search.symspell.soundex.weight) . . . new stock action/trigger event definitions hold group hold placed for patron email notification . new features . . administration . . . single sign on (shibboleth) public catalog integration the evergreen opac can now be used as a service provider (sp) in a single sign on infrastructure. this allows system administrators to connect the evergreen opac to an identity provider (idp). such a scenario offers significant usability improvements to patrons: they can use the same, idp-provided login screen and credentials that they use for other applications (sps). if they have already logged into another participating application, when they arrive at the evergreen opac, they can be logged in without needing to enter any credentials at all. evergreen can be configured to offer a single sign-out service, where logging out of the evergreen opac will also log the user out of all other sps. it can also offer security benefits, if it enables a shibboleth-enabled evergreen installation to move away from insecure autogenerated user passwords (e.g. year of birth or last four digits of a phone number). different org units can use different idps. this development also supports a mix of shibboleth and non-shibboleth libraries. note that only the opac can be integrated with shibboleth at this time; no such support exists for the staff client, self-check, etc. also note that this development does not include automatic provisioning of accounts. at this time, matching accounts must already exist in evergreen for a patron to successfully authenticate into the opac via single sign on. installation installing and configuring shibboleth support is a complex project. in broad strokes, the process includes: installing shibboleth and the shibboleth apache module (apt install libapache -mod-shib on debian and ubuntu) configuring shibboleth, including: setting up a certificate assigning an entity id getting metadata about the idp from the idp (perhaps "locally maintained metadata", where an xml file from the idp is copied into place on your evergreen server) understanding what attributes the idp will provide about your users, and describing them in the attribute-map.xml file. providing your entity id, information about possible bindings, and any other requested information to the idp administrator. much of this information will be available at http://your_evergreen_domain/shibboleth.sso/metadata configuring apache, including: enabling shibboleth authentication in the eg_vhost.conf file (optional) using the new sso_loc apache variable to identify which org unit should be used as the context location when fetching shibboleth-related library settings. as a user with the new sso_admin permission, configure evergreen using the library settings editor, including: enable shibboleth sso for the opac (optional) configure whether you will use sso exclusively, or offer patrons a choice between sso and standard evergreen authentication (optional) configure whether or not you will use single log out (optional) in scenarios where a single evergreen installation is connected to multiple idps, assign org units to the relevant idps, referenced by the idp’s entity id. of the attributes defined in attribute-map.xml, configure which one should be used to match users in the evergreen database. this defaults to uid. for the attribute you chose in the previous step, configure which evergreen field it should match against. options are usrname (default), barcode, and email. this video on the saml protocol can be very helpful for introducing the basic concepts used in the installation and configuration processes. . . architecture . . . block login of expired staff accounts evergreen now has the ability to prevent staff users whose accounts have expired from logging in. this is controlled by the new global flag "auth.block_expired_staff_login", which is not enabled by default. if that flag is turned on, accounts that have the staff_login permission and whose expiration date is in the past are prevented from logging into any evergreen interface, including the staff client, the public catalog, and sip . it should be noted that ordinary patrons are allowed to log into the public catalog if their circulation privileges have expired. this feature prevents expired staff users from logging into the public catalog (and all other evergreen interfaces and apis) outright in order to prevent them from getting into the staff interface anyway by creative use of evergreen’s authentication apis. evergreen admins are advised to check the expiration status of staff accounts before turning on the global flag, as otherwise it is possible to lock staff users out unexpectedly. the following sql query will identify expired but otherwise un-deleted users that would be blocked by turning on the flag: select distinct usrname, expire_date from actor.usr au, permission.usr_has_perm_at_all(id, 'staff_login') where active and not deleted and not barred and expire_date < now() note that this query can take a long time to run in large databases given the general way that it checks for users that have the staff_login permission. replacing the use of permission.usr_has_perm_at_all() with a query on expired users with profiles known to have the staff_login permission will be much faster. . . . migration from gist to gin indexes for full text search evergreen now uses gin indexes for full text search in postgresql. gin indexes offer better performance than gist. for more information on the differences in the two index types, please refer to the postgresql documentation. an upgrade script is provided as part of this migration. if you upgrade normally from a previous release of evergreen, this upgrade script should run as part of the upgrade process. the migration script recommends that you run a vacuum analyze in postgresql on the tables that had the indexes changed. the migration process does not do this for you, so you should do it as soon as is convenient after the upgrade. updating your own indexes if you have added your own full text indexes of type gist, and you wish to migrate them to gin, you may do so. the following query, when run in your evergreen databsase after the migration from gist to gin, will identify the remaining gist indexes in your database: select schemaname, indexname from pg_indexes where indexdef ~* 'gist'; if the above query produces output, you can run the next query to output a sql script to migrate the remaining indexes from gist to gin: select 'drop index ' || schemaname || '.' || indexname || e';\n' || regexp_replace(indexdef, 'gist', 'gin', 'i') || e';\n' || 'vacuum analyze ' || schemaname || '.' || tablename || ';' from pg_indexes where indexdef ~* 'gist'; . . . removal of custom dojo build evergreen had a method of making a custom build of the dojo javascript library. following this procedure could improve the load times for the opac and other interfaces that use dojo. however, very few sites took advantage of this process or even knew of its existence. as a part of the process, an openils_dojo.js file was built and installed along with the other dojo files. evergreen had many references to load this optional file. for the majority of sites that did not use this custom dojo process, this file did not exist. browsers would spend time and resources requesting this nonexistent file. this situation also contributed noise to the apache logs with the errors from these requests. in keeping with the goal of eliminating dojo from evergreen, all references to openils_dojo.js have been removed from the opac and other files. the profile script required to make the custom dojo build has also been removed. . . cataloging . . . czech language records in sample data this release adds czech-language marc records to the sample data set (also known as concerto data set). . . . publisher catalog display includes tag publisher values are now extracted for display from tags or . upgrade notes a partial reingest is required to extract the new publisher data for display. this query may be long-running. with affected_bibs as ( select distinct(bre.id) as id from biblio.record_entry bre join metabib.real_full_rec mrfr on (mrfr.record = bre.id and mrfr.tag = ' ') where not bre.deleted ) select metabib.reingest_metabib_field_entries(id, true, false, true, true) from affected_bibs; . . circulation . . . hold groups this feature allows staff to add multiple users to a named hold group bucket and place title-level holds for a record for that entire set of users. users can be added to such a hold group bucket from either the patron search result interface, via the add to bucket dropdown, or through a dedicated hold group interface available from the circulation menu. adding new patrons to a hold group bucket will require staff have the place_hold permission. holds can be placed for the users in a hold group bucket either directly from the normal staff-place hold interface in the embedded opac, or by supplying the record id within the hold group bucket interface. in the latter case, the list of users for which a hold was attempted but failed to be placed can be downloaded by staff in order to address any placement issues. placing a hold group bucket hold will requires staff have the manage_hold_groups permission, which is new with this development. in the event of a mistaken hold group hold, staff with the manage_hold_groups permission will have the ability to cancel all unfulfilled holds created as part of a hold group event. a link to the title’s hold interface is available from the list of hold group events in the dedicated hold group interface. . . . scan item as missing pieces angular port the scan item as missing pieces interface is now an angular interface. the functionality is the same, but the interface displays more details on the item in question (title/author/callnum) before proceeding with the missing pieces process. . . . opt-in setting for overdue and predue emails the "receive overdue and courtesy emails" user setting permits users to control whether they receive email notifications about overdue items. to use the setting, modify any action trigger event definitions which send emails about overdue items, setting the "opt in setting" to "circ.default_overdue_notices_enabled" and the "user field" to "usr". you can accomplish this by running the following query in your database: update action_trigger.event_definition set opt_in_setting = 'circ.default_overdue_notices_enabled', usr_field = 'usr' where opt_in_setting is null and hook = 'checkout.due' and reactor = 'sendemail'; once this is done, the patron registration screen in the staff client will show a "receive overdue and courtesy emails" checkbox, which will be checked by default. to ensure that existing patrons continue to recieve email notifications, you will need to add the user setting to their accounts, which you can do by running the following query in your database: insert into actor.usr_setting (usr, name, value) select id, 'circ.default_overdue_notices_enabled', 'true' from actor.usr; . . . allow circulation renewal for expired patrons the "allow renewal request if renewal recipient privileges have expired" organizational unit setting can be set to true to permit expired patrons to renew circulations. allowing renewals for expired patrons reduces the number of auto-renewal failures and assumes that a patron with items out eligible for renewals has not been expired for very long and that such patrons are likely to renew their privileges in a timely manner. the setting is referenced based on the current circulation library for the renewal. it takes into account the global flags for "circ: use original circulation library on desk renewal instead of the workstation library" and "circ: use original circulation library on opac renewal instead of user home library." . . opac . . . consistent ordering for carousels carousel ordering is now stable and predictable: newly cataloged item and newest items by shelving location carousels are ordered from most recently cataloged to least recently cataloged. recently returned item carousels is ordered is from most recently returned to least recently returned. top circulated items carousels is ordered is from most circulated to least circulated. manual carousels (as of now, without the ability to adjust the position of items) are in the order they are added to the backing bucket. emptying and refilling the bucket allows reordering. . . . default public catalog to the bootstrap skin the public catalog now defaults to the bootstrap skin rather than the legacy tpac skin. bootstrap is now the default in order to encourage more testing, but users should be aware of the following issues; certain specific functionality is available only in the tpac skin. the tpac skin remains available for use, but current evergreen users should start actively considering migrating to the bootstrap skin. in order to continue to use the tpac skin, comment out the following line in eg_vhost.conf perladdvar oilswebtemplatepath "@localstatedir@/templates-bootstrap" # comment this line out to use the legacy tpac . . . did you mean? single word search suggestions this feature is the first in the series to add native search suggestions to the evergreen search logic. a significant portion of the code is dedicated to infrastructure that will be used in later enhancements to the functionality. overview when searching the public or staff catalog in a single search class (title, author, subject, series, identifier, or keyword) with a single search term users can be presented with alternate search terms. depending on how the instance has been configured, suggestions may be provided for only misspelled words (as defined by existence in the bibliographic corpus), terms that are spelled properly but occur very few times, or on every single-term search. settings the following new library settings control the behavior of the suggestions: maximum search result count at which spelling suggestions may be offered minimum required uses of a spelling suggestions that may be offered maximum number of spelling suggestions that may be offered pg_trgm score weighting in opac spelling suggestions soundex score weighting in opac spelling suggestions qwerty keyboard similarity score weighting in opac spelling suggestions there are also two new internal flags: symspell.prefix_length symspell.max_edit_distance upgrading this feature requires the addition of new perl module dependencies. please run the app server and database server dependency makefiles before applying the database and code updates. at the end of the database upgrade script, the administrator is presented with a set of instructions necessary to precompute the suggestion dictionary based on the current bibliographic database. the first half of this procedure can be started even before the upgrade begins, as soon as the evergreen database is no longer accessible to users that might cause changes to bibliographic records. for very large instances, this dictionary generation can take several hours and needs to be run on a server with significant ram and cpu resources. please look at the upgrade script before beginning an upgrade and plan this dictionary creation as part of the overall upgrade procedure. given a server, such as a database server with g of ram, you should be able to run all six of the shell commands in parallel in screen sessions or with a tool such as gnu parallel. these commands invoke a script that will generate a class-specific sub-set of the dictionary, and can be used to recreate the dictionary if necessary in the future. . . . sort holdings by geographical proximity this functionality integrates rd party geographic lookup services to allow patrons to enter an address on the record details page in the opac and sort the holdings for that record based on proximity of their circulating libraries to the entered address. to support this, latitude and longitude coordinates may be associated with each org unit. care is given to not log or leak patron provided addresses or the context in which they are used. requires the following perl modules: geo::coder::free, geo::coder::google, and geo::coder::osm configuration instructions: register an account with a third party geographic location service and copy the api key. configure the geographic location service (server administration > geographic location service > new geographic location service). enable global flag by navigating to server administration → global flags and locating the opac.use_geolocation flag. (any entry in the value field will be ignored.) enable library setting: enable holdings sort by geographic proximity (set to true). enable library setting: geographic location service to use for addresses (use the value from the name field entered in the geographic location services configuration entry). enable library setting: show geographic proximity in miles (if not set, it will default to kilometers). set the geographic coordinates for each location by navigating to server administration > organizational units. select the org unit, switch to the physical address subtab and either manually enter latitude and longitude values or use the get coordinate button. two new permissions, view_geolocation_services and admin_geolocation_services, control viewing and editing values in the geolocation location services interface. they are added to the system administrator and global administrator permissions groups by default. . . . library groups the library groups search feature revives a longstanding internal concept in evergreen called “lassos,” which allows an administrator to define a group of organizational units for searching outside of the standard organizational unit hierarchy. use case examples include creating a group of law or science libraries within a university consortium, or grouping all school libraries together within a mixed school/public library consortium. searches can be restricted to a particular library group from the library selector in the public catalog basic search page and from the new "where" selector on the advanced search page. restricting catalog searches by library group is available only in the public catalog and "traditional" staff catalog; it is not available in the angular staff catalog. this feature adds a new permission, admin_library_groups, that allows updating library groups and library group maps. this permission is not associated with any profiles by default, and replaces the create_lasso, update_lasso, and delete_lasso permissions. to define new library groups, use the server administration library groups and library group maps pages. an autogen and a reload of apache should be performed after making changes to library groups. . . . easier styling of public catalog logo and cart images evergreen now has ids associated with logos and cart images in the tpac and bootstrap opacs to aid in customization. images are as follows: small evergreen logo in navigation bar is topnav_logo_image the large evergreen logo in the center of the splash page of the tpac is homesearch_main_logo_image the cart icon is cart_icon_image the small logo in the footer is footer_logo_image the bootstrap opac does not have a homesearch logo icon as it is added in the background by css and can be directly styled through the css. . . . easier tpac customization via colors.tt twelve new colors for tpac have been added to the colors.tt file as well as having corresponding changes to the style.css.tt file. these use descriptive rather than abstract names. these changes help avoid situations were unreadable values are placed on top of each other and where different values are wanted for elements that only refernece a single color previously. guidelines are below for setting values that correspond to the previous values used in the colors.tt file. for more diverse customizations the opac should be reviewed before a production load. footer is used for the background color of the footer. it replaces the primary. footer_text sets the text color in the footer and replaces text_invert header sets the background of the header and replaces primary_fade header_text sets the color of text in the header and replaces text_invert header_links_bar sets the background of the links bar that separates the header on the front page of the opac and replaces background_invert header_links_text sets the text on the links bar and replaces text_invert header_links_text_hover set the hover text color on the links bar and replaces primary opac_button sets the background color of the my opac button and replaces control opac_button_text explicitly sets the text color on the my opac button opac_button_hover sets the background color of the my opac button when the mouse is hovering over it and replaces primary opac_button_hover_text sets the text color of the my opac button when the mouse is hovering over it and replaces text invert note that is patch is primarily meant for users who wish to continue using tpac rather than the bootstrap skin for a while; new evergreen users are advised to use the now-default bootstrap skin. . . . configurable read more accordion for opac search and record view (tpac) read more button public catalog record fields (in the tpac skin only) now truncate themselves based on a configurable amount of characters. the full field may be displayed upon hitting a (read more) link, which will then toggle into a (read less) link to re-truncate the field. configuration open-ils/src/templates/opac/parts/config.tt contains two new configuration variables: truncate_contents (default: ) contents_truncate_length (default: ). setting truncate_contents to will disable the read more functionality. the variable contents_truncate_length corresponds to the amount of characters to display before truncating the text. if contents_truncate_length is removed, it will default to . additional configuration for note fields can be made in open-ils/src/templates/opac/parts/record/contents.tt , allowing a trunc_length variable for each individual type of note, which will override contents_truncate_length for that specific type of note. adding read more functionality to further fields to add read more functionality to any additional fields, you may use the macro accordion(), defined in misc_util.tt . it can take three variables: str, trunc_length, and element. str corresponds to the string you want to apply it to, trunc_length (optional) will override contents_truncate_length if supplied, and element (optional) provides an alternative html element to look at for the truncation process (useful in situations such as the authors and cast fields, where each field is processed individually, but needs to be treated as a single field). . . reports . . . reports scheduler improvements previously, the reports scheduler allowed duplicated reports under certain circumstances. a uniqueness constraint now disallows this without adversely affecting the reports process. . miscellaneous the create reservation form in the booking module now includes an option to search for the patron by attributes other than just their barcode. (bug ) the form to add a user to a course now includes an option to search for the patron by attributes other than just their barcode. (bug ) for consistency with the menu action cataloging ⇒ retrieve record by tcn value, the staff catalog numeric search ⇒ tcn search now includes deleted bib records. (bug ) add a new command-line script, overdrive-api-checker.pl, for testing the overdrive api. (bug ) the shelving location groups editor is ported to angular. (bug ) the staff catalog now has the ability to add all search results (up to , titles) to the basket in one fell swoop. (bug ) add all videos as a search format. (bug ) server-side print templates can now have print contexts set. (bug ) add ability to set the print context for a print template to "no-print" to specify, well, that a given receipt should never be printed. (bug ) add check number as an available column to the bill history grids. (bug ) adds a new control to the item table in the tpac public catalog only to specify that only items that are available should be displayed. (bug ) adds warning before deleting bib records with holds (bug ) library scope on (angular) administration pages now defaults to workstation location rather than consortium (bug ) pending users now set last four digits of phone number as password when library setting is enabled (bug ) . acknowledgments the evergreen project would like to acknowledge the following organizations that commissioned developments in this release of evergreen: bc libraries cooperative community library (sunbury) consortium of ohio libraries (cool) evergreen community development initiative evergreen indiana georgia pines linn-benton community college pennsylvania integrated library system (pails) we would also like to thank the following individuals who contributed code, translations, documentation, patches, and tests to this release of evergreen: john amundson zavier banks felicia beaudry jason boyer dan briem andrea buntz neiman christine burns galen charlton garry collum eva cerniňáková dawn dale elizabeth davis jeff davis martha driscoll bill erickson jason etheridge ruth frasur blake graham-henderson katie greenleaf martin rogan hamby elaine hardy kyle huckins angela kilsdonk tiffany little mary llewellyn terran mccanna chauncey montgomery gina monti michele morgan carmen oleskevich jennifer pringle mike risher mike rylander jane sandberg chris sharp ben shum remington steed jason stephenson jennifer weston beth willis we also thank the following organizations whose employees contributed patches: bc libraries cooperative calvin college catalyte cw mars equinox open library initiative georgia public library service kenton county public library king county library system linn-benton community college mobius noble westchester library system we regret any omissions. if a contributor has been inadvertently missed, please open a bug at http://bugs.launchpad.net/evergreen/ with a correction. last updated - - : : edt none none none none blog.cbeer.info chris beer chris@cbeer.info cbeer _cb_ may , autoscaling aws elastic beanstalk worker tier based on sqs queue length we are deploying a rails application (for the hydra-in-a-box project) to aws elastic beanstalk. elastic beanstalk offers us easy deployment, monitoring, and simple auto-scaling with a built-in dashboard and management interface. our application uses several potentially long-running background jobs to characterize, checksum, and create derivates for uploaded content. since we’re deploying this application within aws, we’re also taking advantage of the simple queue service (sqs), using the active-elastic-job gem to queue and run activejob tasks. elastic beanstalk provides settings for “web server” and “worker” tiers. web servers are provisioned behind a load balancer and handle end-user requests, while workers automatically handle background tasks (via sqs + active-elastic-job). elastic beanstalk provides basic autoscaling based on a variety of metrics collected from the underlying instances (cpu, network, i/o, etc), although, while sufficient for our “web server” tier, we’d like to scale our “worker” tier based on the number of tasks waiting to be run. currently, though, the ability to auto-scale the worker tier based on the underlying queue depth isn’t enable through the elastic beanstak interface. however, as beanstalk merely manages and aggregates other aws resources, we have access to the underlying resources, including the autoscaling group for our environment. we should be able to attach a custom auto-scaling policy to that auto scaling group to scale based on additional alarms. for example, let’s we want to add additional worker nodes if there are more than tasks for more than minutes (and, to save money and resources, also remove worker nodes when there are no tasks available). to create the new policy, we’ll need to: find the appropriate auto-scaling group by finding the auto-scaling group with the elasticbeanstalk:environment-id that matches the worker tier environment id; find the appropriate sqs queue for the worker tier; add auto-scaling policies that add (and remove) instances to the autoscaling group; create a new cloudwatch alarm that measures the sqs queue exceeds our configured depth ( ) that triggers the auto-scaling policy to add additional worker instances whenever the alarm is triggered; and, conversely, create a new cloudwatch alarm that measures the sqs queue hits that trigger the auto-scaling action to removes worker instances whenever the alarm is triggered. and, similarly for scaling back down. even though there are several manual steps, they aren’t too difficult (other than discovering the various resources we’re trying to orchestrate), and using elastic beanstalk is still valuable for the rest of its functionality. but, we’re in the cloud, and really want to automate everything. with a little cloudformation trickery, we can even automate creating the worker tier with the appropriate autoscaling policies. first, knowing that the cloudformation api allows us to pass in an existing sqs queue for the worker tier, let’s create an explicit sqs queue resource for the workers: "defaultqueue" : { "type" : "aws::sqs::queue", } and wire it up to the beanstalk application by setting the aws:elasticbeanstalk:sqsd:workerqueueurl (not shown: sending the worker queue to the web server tier): "workersconfigurationtemplate" : { "type" : "aws::elasticbeanstalk::configurationtemplate", "properties" : { "applicationname" : { "ref" : "aws::stackname" }, "optionsettings" : [ ..., { "namespace": "aws:elasticbeanstalk:sqsd", "optionname": "workerqueueurl", "value": { "ref" : "defaultqueue"} } } } }, "workerenvironment": { "type": "aws::elasticbeanstalk::environment", "properties": { "applicationname": { "ref" : "aws::stackname" }, "description": "worker environment", "environmentname": { "fn::join": ["-", [{ "ref" : "aws::stackname"}, "workers"]] }, "templatename": { "ref": "workersconfigurationtemplate" }, "tier": { "name": "worker", "type": "sqs/http" }, "solutionstackname" : " bit amazon linux . v . . running ruby . (puma)" ... } } using our queue we can describe one of the cloudwatch::alarm resources and start describing a scaling policy: "scaleoutalarm" : { "type": "aws::cloudwatch::alarm", "properties": { "metricname": "approximatenumberofmessagesvisible", "namespace": "aws/sqs", "statistic": "average", "period": " ", "threshold": " ", "comparisonoperator": "greaterthanorequaltothreshold", "dimensions": [ { "name": "queuename", "value": { "fn::getatt" : ["defaultqueue", "queuename"] } } ], "evaluationperiods": " ", "alarmactions": [{ "ref" : "scaleoutpolicy" }] } }, "scaleoutpolicy" : { "type": "aws::autoscaling::scalingpolicy", "properties": { "adjustmenttype": "changeincapacity", "autoscalinggroupname": ????, "scalingadjustment": " ", "cooldown": " " } }, however, to connect the policy to the auto-scaling group, we need to know the name for the autoscaling group. unfortunately, the autoscaling group is abstracted behind the beanstalk environment. to gain access to it, we’ll need to create a custom resource backed by a lambda function to extract the information from the aws apis: "beanstalkstack": { "type": "custom::beanstalkstack", "properties": { "servicetoken": { "fn::getatt" : ["beanstalkstackoutputs", "arn"] }, "environmentname": { "ref": "workerenvironment" } } }, "beanstalkstackoutputs": { "type": "aws::lambda::function", "properties": { "code": { "zipfile": { "fn::join": ["\n", [ "var response = require('cfn-response');", "exports.handler = function(event, context) {", " console.log('request received:\\n', json.stringify(event));", " if (event.requesttype == 'delete') {", " response.send(event, context, response.success);", " return;", " }", " var environmentname = event.resourceproperties.environmentname;", " var responsedata = {};", " if (environmentname) {", " var aws = require('aws-sdk');", " var eb = new aws.elasticbeanstalk();", " eb.describeenvironmentresources({environmentname: environmentname}, function(err, data) {", " if (err) {", " responsedata = { error: 'describeenvironmentresources call failed' };", " console.log(responsedata.error + ':\\n', err);", " response.send(event, context, resource.failed, responsedata);", " } else {", " responsedata = { autoscalinggroupname: data.environmentresources.autoscalinggroups[ ].name };", " response.send(event, context, response.success, responsedata);", " }", " });", " } else {", " responsedata = {error: 'environment name not specified'};", " console.log(responsedata.error);", " response.send(event, context, response.failed, responsedata);", " }", "};" ]]} }, "handler": "index.handler", "runtime": "nodejs", "timeout": " ", "role": { "fn::getatt" : ["lambdaexecutionrole", "arn"] } } } with the custom resource, we can finally get access the autoscaling group name and complete the scaling policy: "scaleoutpolicy" : { "type": "aws::autoscaling::scalingpolicy", "properties": { "adjustmenttype": "changeincapacity", "autoscalinggroupname": { "fn::getatt": [ "beanstalkstack", "autoscalinggroupname" ] }, "scalingadjustment": " ", "cooldown": " " } }, the complete worker tier is part of our cloudformation stack: https://github.com/hybox/aws/blob/master/templates/worker.json mar , ldpath in examples at code lib , i gave a quick lightning talk on ldpath, a declarative domain-specific language for flatting linked data resources to a hash (e.g. for indexing to solr). ldpath can traverse the linked data cloud as easily as working with local resources and can cache remote resources for future access. the ldpath language is also (generally) implementation independent (java, ruby) and relatively easy to implement. the language also lends itself to integration within development environments (e.g. ldpath-angular-demo-app, with context-aware autocompletion and real-time responses). for me, working with the ldpath language and implementation was the first time that linked data moved from being a good idea to being a practical solution to some problems. here is a selection from the viaf record [ ]: <> void:indataset <../data> ; a genont:informationresource, foaf:document ; foaf:primarytopic <../ > . <../ > schema:alternatename "bittman, mark" ; schema:birthdate " - - " ; schema:familyname "bittman" ; schema:givenname "mark" ; schema:name "bittman, mark" ; schema:sameas , ; a schema:person ; rdfs:seealso <../ >, <../ >, <../ >, <../ >, <../ >, <../ > ; foaf:isprimarytopicof . we can use ldpath to extract the person’s name: so far, this is not so different from traditional approaches. but, if we look deeper in the response, we can see other resources, including books by the author. <../ > schema:creator <../ > ; schema:name "how to cook everything : simple recipes for great food" ; a schema:creativework . we can traverse the links to include the titles in our record: ldpath also gives us the ability to write this query using a reverse property selector, e.g: books = foaf:primarytopic / ^schema:creator[rdf:type is schema:creativework] / schema:name :: xsd:string ; the resource links out to some external resources, including a link to dbpedia. here is a selection from record in dbpedia: dbpedia-owl:abstract "mark bittman (born c. ) is an american food journalist, author, and columnist for the new york times."@en, "mark bittman est un auteur et chroniqueur culinaire américain. il a tenu une chronique hebdomadaire pour le the new york times, appelée the minimalist (« le minimaliste »), parue entre le septembre et le janvier . bittman continue d'écrire pour le new york times magazine, et participe à la section opinion du journal. il tient également un blog."@fr ; dbpedia-owl:birthdate " + : "^^ ; dbpprop:name "bittman, mark"@en ; dbpprop:shortdescription "american journalist, food writer"@en ; dc:description "american journalist, food writer", "american journalist, food writer"@en ; dcterms:subject , , , , , , ; ldpath allows us to transparently traverse that link, allowing us to extract the subjects for viaf record: [ ] if you’re playing along at home, note that, as of this writing, viaf.org fails to correctly implement content negotiation and returns html if it appears anywhere in the accept header, e.g.: curl -h "accept: application/rdf+xml, text/html; q= . " -v http://viaf.org/viaf/ / will return a text/html response. this may cause trouble for your linked data clients. mar , building a pivotal tracker irc bot with sinatra and cinch we're using pivotal tracker on the fedora futures project. we also have an irc channel where the tech team hangs out most of the day, and let each other know what we're working on, which tickets we're taking, and give each other feedback on those tickets. in order to document this, we try to put most of our the discussion in the tickets for future reference (although we are logging the irc channel, it's not nearly as easy to look up decisions there). because we're (lazy) developers, we wanted updates in pivotal to get surfaced in the irc channel. there was a (neglected) irc bot, pivotal-tracker-irc-bot, but it was designed to push and pull data from pivotal based on commands in irc (and, seems fairly abandoned). so, naturally, we built our own integration: pivotal-irc. this was my first time using cinch to build a bot, and it was a surprisingly pleasant and straightforward experience: bot = cinch::bot.new do configure do |c| c.nick = $nick c.server = $irc_server c.channels = [$channel] end end # launch the bot in a separate thread, because we're using this one for the webapp. thread.new { bot.start } and we have a really tiny sinatra app that can parse the pivotal webhooks payload and funnel it into the channel: post '/' do message = pivotal::webhookmessage.new request.body.read bot.channel_list.first.msg("#{message.description} #{message.story_url}") end it turns out we also send links to pivotal tickets not infrequently, and building two-way communication (using the pivotal rest api, and the handy pivotal-tracker gem) was also easy. cinch exposes a handy dsl that parses messages using regular expressions and capturing groups: bot.on :message, /story\/show\/([ - ]+)/ do |m, ticket_id| story = project.stories.find(ticket_id) m.reply "#{story.story_type}: #{story.name} (#{story.current_state}) / owner: #{story.owned_by}" end mar , real-time statistics with graphite, statsd, and gdash we have a graphite-based stack of real-time visualization tools, including the data aggregator statsd. these tools let us easily record real-time data from arbitrary services with mimimal fuss. we present some curated graphs through gdash, a simple sinatra front-end. for example, we record the time it takes for solr to respond to queries from our searchworks catalog, using this simple bash script: tail -f /var/log/tomcat /catalina.out | ruby solr_stats.rb (we rotate these logs through truncation; you can also use `tail -f --retry` for logs that are moved away when rotated) and the ruby script that does the actual parsing: require 'statsd.rb' statsd = statsd.new(..., ) # listen to stdin while str = gets if str =~ /qtime=([^ ]+)/ # extract the qtime ms = $ .to_i # record it, based on our hostname statsd.timing("#{env['hostname'].gsub('.', '-')}.solr.qtime", ms) end end from this data, we can start asking qustions like: is our load-balancer configured optimally? (hint: not quite; for a variety of reasons, we've sacrificed some marginal performance benefit for this non-invasive, simpler load-blaance configuration. why are our the th-percentile query times creeping up? (time in ms) (answers to these questions and more in a future post, i'm sure.) we also use this setup to monitor other services, e.g.: what's happening in our fedora instance (and, which services are using the repository)? note the red line ("warn_ ") in the top graph. it marks the point where our (asynchronous) indexing system is unable to keep up with demand, and updates may appear at a delay. given time (and sufficient data, of course), this also gives us the ability to forecast and plan for issues: is our solr query time getting worse? (ganglia can perform some basic manipulation, including taking integrals and derivatives) what is the rate of growth of our indexing backlog, and, can we process it in a reasonable timeframe, or should we scale the indexer service? given our rate of disk usage, are we on track to run out of disk space this month? this week? if we build graphs to monitor those conditions, we can add nagios alerts to trigger service alerts. gdash helpfully exposes a rest endpoint that lets us know if a service has those warn or critical thresholds. we currently have a home-grown system monitoring system that we're tempted to fold into here as well. i've been evaluating diamond, which seems to do a pretty good job of collecting granular system statistics (cpu, ram, io, disk space, etc). mar , icemelt: a stand-in for integration tests against aws glacier one of the threads we've been pursuing as part of the fedora futures project is integration with asynchronous and/or very slow storage. we've taken on aws glacier as a prime, generally accessable example. uploading content is slow, but can be done synchronously in one api request: post /:account_id/vaults/:vault_id/archives x-amz-archive-description: description ...request body (aka your content)... where things get radically different is when requesting content back. first, you let glacier know you'd like to retrieve your content: post /:account_id/vaults/:vault_id/jobs http/ . { "type": "archive-retrieval", "archiveid": string, [...] } then, you wait. and wait. and wait some more; from the documentation: most amazon glacier jobs take about four hours to complete. you must wait until the job output is ready for you to download. if you have either set a notification configuration on the vault identifying an amazon simple notification service (amazon sns) topic or specified an amazon sns topic when you initiated a job, amazon glacier sends a message to that topic after it completes the job. [emphasis added] icemelt if you're iterating on some code, waiting hours to get your content back isn't realistic. so, we wrote a quick sinatra app called icemelt in order to mock the glacier rest api (and, perhaps taking less time to code than retrieving content from glacier ). we've tested it using the ruby fog client, as well as the official aws java sdk, and it actually works! your content gets stored locally, and the delay for retrieving content is configurable (default: seconds). configuring the official sdk looks something like this: propertiescredentials credentials = new propertiescredentials( testicemeltglaciermock.class .getresourceasstream("awscredentials.properties")); amazonglacierclient client = new amazonglacierclient(credentials); client.setendpoint("http://localhost: /"); and for fog, something like: fog::aws::glacier.new :aws_access_key_id => '', :aws_secret_access_key => '', :scheme => 'http', :host => 'localhost', :port => ' ' right now, icemelt skips a lot of unnecessary work (e.g. checking hmac digests for authentication, validating hashes, etc), but, as always, patches are very welcome. next » none none none none none none none none none none none none none none none none none the digital librarian http://digitallibrarian.org information. organization. access. mon, jun : : + en-us hourly https://wordpress.org/?v= . . libraries and the state of the internet http://digitallibrarian.org/?p= http://digitallibrarian.org/?p= #respond mon, jun : : + http://digitallibrarian.org/?p= libraries and the state of the internet read more &# ;

]]>
mary meeker presented her internet trends report earlier this month. if you want a better understanding of how tech and the tech industry is evolving, you should watch her talk and read her slides.

this year&# ;s talk was fairly time constrained, and she did not go into as much detail as she has in years past. that being said, there is still an enormous amount of value in the data she presents and the trends she identifies via that data.

some interesting takeaways:

  • the growth in total number of internet users worldwide is slowing (the year-to-year growth rate is flat; overall growth is around % new years per year)
  • however, growth in india is still accelerating, and india is now the # global user market (behind china; usa is rd)
  • similarly, there is a slowdown in the growth of the number of smartphone users and number of smartphones being shipped worldwide (still growing, but at a slower rate)
  • android continues to demonstrate growth in marketshare; android devices are continuing to be less costly by a significant margin than apple devices.
  • overall, there are opportunities for businesses that innovate / increase efficiency / lower prices / create jobs
  • advertising continues to demonstrate strong growth; advertising efficacy still has a ways to go (internet advertising is effective and can be even more so)
  • internet as distribution channel continues to grow in use and importance
  •  brand recognition is increasingly important
  • visual communication channel usage is increasing &# ; generation z relies more on communicating with images than with text
  • messaging is becoming a core communication channel for business interactions in addition to social interactions
  • voice on mobile rapidly rising as important user interface &# ; lots of activity around this
  • data as platform &# ; important!

so, what kind of take-aways might be most useful to consider in the library context? some top-of-head thoughts:

  • in the larger context of the internet, libraries need to be more aggressive in marketing their brand and brand value. we are, by nature, fairly passive, especially compared to our commercial competition, and a failure to better leverage the opportunity for brand exposure leaves the door open to commercial competitors.
  • integration of library services and content through messaging channels will become more important, especially with younger users. (integration may actually be too weak a term; understanding how to use messaging inherently within the digital lifestyles of our users is critical)
  • voice &# ; are any libraries doing anything with voice? integration with amazon&# ;s alexa voice search? how do we fit into the voice as platform paradigm?

one parting thought, that i&# ;ll try to tease out in a follow-up post: libraries need to look very seriously at the importance of personalized, customized curation of collections for users, something that might actually be antithetical to the way we currently approach collection development. think apple music, but for books, articles, and other content provided by libraries. it feels like we are doing this in slices and pieces, but that we have not yet established a unifying platform that integrates with the larger internet ecosystem.

]]>
http://digitallibrarian.org/?feed=rss &# ;p=
meaningful web metrics http://digitallibrarian.org/?p= http://digitallibrarian.org/?p= #respond sun, jan : : + http://digitallibrarian.org/?p= meaningful web metrics read more &# ;

]]>
this article from wired magazine is a must-read if you are interested in more impactful metrics for your library&# ;s web site. at mpoe, we are scaling up our need for in-house web product expertise, but regardless of how much we invest in terms of staffing, it is likely that the amount of requested web support will always exceed the amount of resourcing we have for that support. leveraging meaningful impact metrics can help us understand the value we get from the investment we make in our web presence, and more importantly help us define what types of impact we want to achieve through that investment. this is no easy feat, but it is good to see that others in the information ecosystem are looking at the same challenges.

]]>
http://digitallibrarian.org/?feed=rss &# ;p=
site migrated http://digitallibrarian.org/?p= http://digitallibrarian.org/?p= #respond mon, oct : : + http://digitallibrarian.org/?p= site migrated read more &# ;

]]>
just a quick note &# ; digitallibrarian.org has been migrated to a new server. you may see a few quirks here and there, but things should be mostly in good shape. if you notice anything major, send me a challah. really. a nice bread. or just an email. your choice. 🙂

]]>
http://digitallibrarian.org/?feed=rss &# ;p=
the new ipad http://digitallibrarian.org/?p= http://digitallibrarian.org/?p= #comments sun, mar : : + http://digitallibrarian.org/?p= the new ipad read more &# ;

]]>
i decided that it was time to upgrade my original ipad, so i pre-ordered a new ipad, which arrived this past friday. after a few days, here are my initial thoughts / observations:

  • compared to the original ipad, the new ipad is a huge improvement. much zipper, feels lighter (compared to the original), and of course the display is fantastic.
  • i&# ;ve just briefly tried the dictation feature, and though i haven&# ;t used it extensively yet, the accuracy seems pretty darned good. i wonder if a future update will support siri?
  • the beauty of the display cannot be understated &# ; crisp, clear (especially for someone with aging eyes)
  • i purchased a -gb model with lte, but i have not tried the cell network yet. i did see g show up, so i&# ;m hoping that tucson indeed has the newer network.
  • not really new, but going from the original ipad to the new ipad, i really like the smart cover approach. ditto with the form factor.
  • again, not specific to the new model, the ability to access my music, videos, and apps via icloud means that i can utilize the storage on the ipad more effectively.
  • all-in-all, i can see myself using the new ipad consistently for a variety of tasks, not just for consuming information. point-in-fact, this post was written with the new ipad.

    ]]>
    http://digitallibrarian.org/?feed=rss &# ;p=
    rd sits meeting &# ; geneva http://digitallibrarian.org/?p= http://digitallibrarian.org/?p= #respond wed, aug : : + http://digitallibrarian.org/?p= rd sits meeting &# ; geneva read more &# ;

    ]]>
    back in june i attend the rd sits (scholarly infrastructure technical summit) meeting, held in conjunction with the oai workshop and sponsored by jisc and the digital library federation. this meeting, held in lovely geneva, switzerland, brought together library technologists and technology leaders from north america, europe, australia, and asia for the purpose of exploring common technology and technology-related issues that crossed our geographic boundaries.

    this is the first sits meeting that i attended &# ; prior to this meeting, there were two other sits meetings (one in london and one in california). as this sits meeting was attached to the oai conference, it brought together a group of stakeholders who&# ;s roles in their organizations spanned from technology implementors to technology strategists and decision makers. from having chatted with some of the folks who had attended previous sits meetings, the attendees at those meetings tended to weigh heavily on the technology implementer / developer side, while this particular instance of sits had a broader range of discussion that, while centered on technology, also incorporated much of the context to which technology was being applied. for me, that actually made this a more intriguing and productive discussion, as i think that while there are certainly a great variety of strictly technical issues with which we grapple, what often gets lost when talking semantic web, linked data, digital preservation, etc. is the context and focus of the purpose of deploying said technology. so, with that particular piece of context, i&# ;ll describe some of the conversation that occurred at this particular sits event.

    due to the schedule of oai , this sits meeting was held in two parts &# ; the afternoon of june, and the morning of june. for the first session, the group met in one of the lecture rooms at the conference venue, and this worked out quite nicely. sits uses an open agenda / open meeting format, which allows the attendees to basically nominate and elect the topics of discussion for the meeting. after initial introductions, we began proposing topics. i tried to capture as best i could all of the topics that were proposed, though i might have missed one or two:

    * stable links for linked data vs. stable bitstreams for preservation
    * authority hubs / clustered ids / researcher ids / orcid in dspace
    * effective synchronization of digital resources
    * consistency and usage of usage data
    * digital preservation architecture &# ; integration of tape-based storage and other storage anvironments (external to the library)
    * integration between repositories and media delivery (i.e. streaming) &# ; particularly to access control enforcement
    * nano publications and object granularity
    * pairing storage with different types of applications
    * linking research data to scholarly publications to faculty assessment
    * well-behaved document
    * research impacts and outputs
    * linked open data: from vision to deployment
    * relationship between open linked data and open research data
    * name disambiguation

    following process, we took the above brainstormed list and proceeded to vote on which topic to begin discussion. the first topic chosen was researcher identities, which began with discussion around orcid, a project that currently has reasonable mindshare behind it. while there are a lot of backers of orcid, it is not clear whether the approach of a singular researcher id is a feasible approach, though i believe we&# ;ll discover the answer based on the success (or not) of the project. in general, i think that most of the attendees will be paying attention to orcid, but that also a wait and see approach is likely as there are many, many issues around researcher ids that still need to be worked through.

    the next topic was the assessment of research impacts and outputs. this particular topic was not particularly technically focused, but did bring about some interesting discussion about the impact of assessment activities, both positive and negative.

    the next topic, linking research data to scholarly publications to faculty assessment, was a natural progression from the previous topic, and much of the discussion revolved around how to support such relationships. i must admit that while i think this topic is important, i didn&# ;t feel that the discussion really resolved any of the potential issues with supporting researchers in linking data to publications (and then capturing this data for assessment purposes). what is clear is that the concept of publishing data, especially open data, is one that is not necessarily as straight-forward as one would hope when you get into the details, such as where to publish data, how to credit such publication, how is the data maintained, etc. there is a lot of work to be done here.

    next to be discussed was the preservation of data and software. it was brought up that the sustainability and preservation of data, especially open data, was somewhat analogous to the sustainability and preservation of software, in that both required a certain number of active tasks in order to ensure that both data and software were continually usable. it is also clear that much data requires the proper software in order to be usable, and therefore the issues of software and data sustainability and preservation are in my senses interwoven.

    the group then moved to a brief discussion of the harvesting and use of usage data. efforts such as counter and popirus were mentioned. the ability to track data in a way that balances anonymity and privacy vs. added value back to the user was discussed &# ; the fact that usage data can be leveraged to provide better services back to users was a key consideration.

    the next discussion topic was influenced by the oai workshop. the issue of the synchronisation of resources was discussed, and during oai , there was a breakout session that looked at the future of oai-pmh, both in terms of .x sustainability as well as work that might end up with the result of oai-pmh . . interestingly, there was some discussion of even the need for data synchronization with the advent of linked data; i can see why this would come up, but i personally believe that linked data isn&# ;t at the point where other methods for ensuring synchronized data aren&# ;t necessary (nor may it ever be).

    speaking of linked data, the concept arose in many of the sits discussions, though the group did not officially address it until late in the agenda. i must admit that i&# ;ve yet to drink the linked data lemonade, in the sense that i really don&# ;t see it being the silver bullet that many of its proponents make it out to be, but i do see it as one approach for enabling extended use of data and resources. in the discussion, one of the challenges of the linked data approach that was discussed was the need to map between ontologies.

    at this point, it was getting a bit late into the meeting, but we did talk about two more topics: one was very pragmatic, while the other was a bit more future-thinking (though there might be some disagreement on that). the first was a discussion about how organizationally digital preservation architectures were being supported &# ; were they being supported by central it, by the library it, or otherwise? it seemed that (not surprisingly) a lot depended upon the specific organization, and that perhaps more coordination could be undertaken through efforts such as pasig. the second discussion was on the topic of &# ;nano-publications&# ;, which the group defined as &# ;things that simply tell you what is being asserted (e.g. europe is a continent)&# ;. i must admit i got a bit lost about the importance and purpose of nano-publications, but again, it was close to the end of the meeting.

    btw, as i&# ;m finishing this an email just came through with the official notes from the sits meeting, which can be accessed at http://eprints.ecs.soton.ac.uk/ /

    ]]>
    http://digitallibrarian.org/?feed=rss &# ;p=
    david lewis&# ; presentation on collections futures http://digitallibrarian.org/?p= http://digitallibrarian.org/?p= #comments wed, mar : : + http://digitallibrarian.org/?p= david lewis&# ; presentation on collections futures read more &# ;

    ]]>
    peter murray (aka the disruptive library technology jester) has provided an audio-overlay of david lewis&# ; slideshare of his plenary at the last june&# ;s rlg annual partners meeting. if you are at all interested in understanding the future of academic libraries, you should take an hour of your time and listen to this presentation. of particular note, because david says it almost in passing, is that academic libraries are moving away from being collectors of information to being provisioners of information &# ; the difference being that instead of purchasing everything that might be used, academic libraries instead are moving to ensuring that there is a path for provisioning access to materials that actually requested for use by their users. again, well worth an hour of your time.

    ]]>
    http://digitallibrarian.org/?feed=rss &# ;p=
    librarians are *the* search experts&# ; http://digitallibrarian.org/?p= http://digitallibrarian.org/?p= #respond thu, aug : : + http://digitallibrarian.org/?p= &# ;so i wonder how many librarians know all of the tips and tricks for using google that are mentioned here?

    ]]>
    http://digitallibrarian.org/?feed=rss &# ;p=
    what do we want from discovery? maybe it&# ;s to save the time of the user&# ;. http://digitallibrarian.org/?p= http://digitallibrarian.org/?p= #comments wed, aug : : + http://digitallibrarian.org/?p= what do we want from discovery? maybe it&# ;s to save the time of the user&# ;. read more &# ;

    ]]>
    just a quick thought on discovery tools &# ; the major newish discovery services being vended to libraries (worldcat local, summon, ebsco discovery service, etc.) all have their strengths, their complexity, their middle-of-the-road politician trying to be everything to everybody features. one question i have asked and not yet had a good answer to is &# ;how does your tool save the time of the user?&# ;. for me, that&# ;s the most important feature of any discovery tool.

    show me data or study results that prove your tool saves the time of the user as compared to other vended tools (and google and google scholar), and you have a clear advantage, at least in what i am considering when choosing to implement a discovery tool.

    ]]>
    http://digitallibrarian.org/?feed=rss &# ;p=
    putting a library in starbucks http://digitallibrarian.org/?p= http://digitallibrarian.org/?p= #respond thu, aug : : + http://digitallibrarian.org/?p= putting a library in starbucks read more &# ;

    ]]>
    it is not uncommon to find a coffee shop in a library these days. turn that concept around, though &# ; would you expect a library inside a starbucks? or maybe that&# ;s the wrong question &# ; how would you react to having a library inside a starbucks? well, that concept shuffling its way towards reality, as starbucks is now experimenting with offering premium (i.e. non-free) content to users while they are on the free wireless that starbucks provides. in fact, starbucks actually has a collection development policy for their content &# ; they are providing content in the following areas, which they call channels: news, entertainment, wellness, business &# ; careers and my neighborhood. they even call their offerings &# ;curated content&# ;.

    obviously, this isn&# ;t the equivalent of putting the full contents of a library into a coffee shop, but it is worth our time to pay attention to how this new service approach from starbucks evolves. starbucks isn&# ;t giving away content for free just to get customers in the door; they are looking at how they might monetize this service through upsell techniques. the business models and agreements are going to have impact on how libraries do business, and we need to pay attention to how starbucks brokers agreements with content providers. eric hellman&# ;s current favorite term, monopsony, comes to mind here &# ; though in reality starbucks isn&# ;t buying anything, as no money is actually changing hands, at least to start. content providers are happy to allow starbucks to provide limited access (i.e. limited by geographic location / network access) to content for free in order to promote their content and provide a discovery to delivery path that will allow users to extend their use of the content for a price.

    this begs the question &# ; should libraries look at upsell opportunities, especially if it means we can reduce our licensing costs? at the very least, the idea is worth exploring.

    source: yahoo news

    ]]>
    http://digitallibrarian.org/?feed=rss &# ;p=
    week of ipad http://digitallibrarian.org/?p= http://digitallibrarian.org/?p= #comments wed, apr : : + http://digitallibrarian.org/?p= week of ipad read more &# ;

    ]]>
    it has been a little over a week since my ipad was delivered, and in that time i have had the opportunity to try it out at home, at work, and on the road. in fact, i&# ;m currently typing this entry on it from the hotel restaurant at the cni spring task force meeting. i feel that i have used it enough now to provide some of my insights and thoughts about the ipad, how i am using it, and what i think of it.

    so, how best to describe the ipad? fun. convenient. fun again. the ipad is more than the sum of its parts; much like the iphone, it provides an overall experience, one that is enjoyable and yes, efficient. browsing is great fun; i have only run into one site where because of the lack of flash support was completely inaccessible (a local restaurant site). a number of sites that i regularly peruse have some flash aspect that is not available via the ipad, but typically this isn&# ;t a big loss. for example, if there is an engadget article that contains video, i won&# ;t get the video. however, the ny times, espn, and other major sites are already supporting html embedded video, and i expect to see a strong push towards html and away from flash. in the grand scheme of things, most of the sites i browse are text and image based, and have no issues.

    likewise for email and calendaring &# ; both work like a charm. email on the ipad is easy, fun, and much better than on the iphone. the keyboard, when in landscape mode, is actually much better than i expected, and very suitable for email replies (not to mention blog posts). i&# ;d go as far to say that the usability of the onscreen keyboard (when the ipad is in landscape mode) is as good or better than a typical net book keyboard. also, an unintended bonus is that typing on the keyboard is pretty much silent; this is somewhat noticeable during conference sessions where a dozen or so attendees are typing their notes and the clack of their keyboards starts to add up.

    so, how am i using my ipad? well, on this trip, i have used it to read (one novel and a bunch of work-related articles), do email, listen to music, watch videos, stream some netflix, browse the web, draft a policy document for my place of employment, diagram a repository architecture, and take notes during conference sessions. could i do all of this on a laptop? sure. could i do all of this on a laptop without plugging in at any point in the day? possibly, with the right laptop or net book. but here&# ;s the thing &# ; at the conference, instead of lugging my laptop bag around with me, my ipad replaced the laptop, my notepad, and everything else i would have dragged around in my bag. i literally only took my ipad, which is actually smaller than a standard paper notebook, and honestly i didn&# ;t miss a beat. quickly jot down a note? easy. sketch out an idea? ditto. it&# ;s all just right there, all the functionality, in a so-much-more convenient form factor.

    is the ipad perfect? by no means &# ; the desktop interface is optimized for the iphone / itouch, and feels a bit inefficient for the larger ipad. because of the current lack of multitasking (something that apple has already announced will be available in the next version of the os), i can&# ;t keep an im client running in the background. there is no inherent folder system, so saving files outside of applications is more complex then it should be. fingerprints show up much more than i expected, though they wipe away fairly easily with a cloth. the weight ( . lbs) is just enough to make you need to shift how you hold the ipad after a period of time.

    again, here&# ;s the thing: the ipad doesn&# ;t need to be perfect, it needs to be niche. is it niche? ask my laptop bag.

    ]]>
    http://digitallibrarian.org/?feed=rss &# ;p=
    equinox open library initiative skip to content facebook-f twitter linkedin-in vimeo about our team newsroom events history ethics disclosures products evergreen koha fulfillment coral services consulting migration development hosting & support training & education learn equinoxedu tips & tricks conference presentations collaborate communities partnerships grants we provide connect sales support donate social media × about our team newsroom events history ethics disclosures products evergreen koha fulfillment coral services consulting migration development hosting & support training & education learn equinoxedu tips & tricks conference presentations collaborate communities partnerships grants we provide connect sales support donate social media about our team newsroom events history ethics disclosures products evergreen koha koha on demand koha dedicated hosting fulfillment coral subjectsplus services consulting workflow and advanced ils consultation data services web design it consultation migration development hosting & support sequoia training & education learn equinoxedu tips & tricks conference presentations resource library collaborate communities evergreen koha coral equinox grants connect sales support donate contact us × about our team newsroom events history ethics disclosures products evergreen koha koha on demand koha dedicated hosting fulfillment coral subjectsplus services consulting workflow and advanced ils consultation data services web design it consultation migration development hosting & support sequoia training & education learn equinoxedu tips & tricks conference presentations resource library collaborate communities evergreen koha coral equinox grants connect sales support donate contact us about our team newsroom events history ethics disclosures products evergreen koha fulfillment coral services consulting migration development hosting & support training & education learn equinoxedu tips & tricks conference presentations collaborate communities partnerships grants we provide connect sales support donate social media × about our team newsroom events history ethics disclosures products evergreen koha fulfillment coral services consulting migration development hosting & support training & education learn equinoxedu tips & tricks conference presentations collaborate communities partnerships grants we provide connect sales support donate social media equinox provides innovative open source software for libraries of all types. extraordinary service. exceptional value. as a (c)( ) nonprofit corporation, equinox supports library automation by investing in open source software and providing technology services for libraries. products services ask us how » about equinox » news & events press release equinox open library initiative awards center for khmer studies the equinox open source grant learn more » press release equinox open library initiative awards vermont jazz center the equinox open source grant learn more » press release equinox launches new website featuring open source library products, services, and education learn more » products & services koha is the first free and open source library automation package. equinox’s team includes some of koha’s core developers. learn more evergreen is a unique and powerful open source ils designed to support large, dispersed, and multi-tiered library networks. learn more equinox provides ongoing educational opportunities through equinoxedu, including live webinars, workshops, and online resources. learn more fulfillment is an open source interlibrary loan management system. fulfillment can be used alongside or in connection with any integrated library system. learn more coral is an open source electronic resources management system. its interoperable modules allow libraries to streamline their management of electronic resources. learn more customized for your library consulting migration development hosting & support training & education why choose equinox? equinox is different from most ils providers. as a non-profit organization, our guiding principle is to provide a transparent, open software development process, and we release all code developed to publicly available repositories. equinox is experienced with serving libraries of all types in the united states and internationally. we’ve supported and migrated libraries of all sizes, from single library sites to full statewide implementations. equinox is technically proficient, with skilled project managers, software developers, and data services staff ready to assist you. we’ve helped libraries automating for the first time and those migrating from legacy ils systems. equinox knows libraries. more than fifty percent of our team are professional librarians with direct experience working in academic, government, public and special libraries. we understand the context and ecosystem of library software. sign up today for news & updates! please enable javascript in your browser to complete this form. email * name *first last i'd like to hear more about: koha evergreen equinoxedu other please describe: submit working with equinox has been like night and day. it's amazing to have a system so accessible to our patrons and easy to use. it has super-charged our library lending power! brooke matsonexecutive director, spark central equinox open library initiative hosts evergreen for the sclends library consortium. their technical support has been both prompt, responsive, and professional in reacting to our support requests during covid- . they have been a valuable consortium partner in meeting the needs of the member libraries and their patrons. chris yatessouth carolina state library working with equinox was great! they were able to migrate our entire consortium with no down time during working hours. the equinox team went the extra mile in helping missouri evergreen. colleen knightmissouri evergreen previous next twitter equinox olifollow equinox oli@equinoxoli· h our latest: "equinox open library initiative awards vermont jazz center the equinox open source grant." read more: https://bit.ly/ xjclft #equinoxgrant #grant #opensource #kohails #oss @vtjazz reply on twitter retweet on twitter like on twitter twitter retweet on twitterequinox oli retweeted newswire@inewswire· apr equinox open library initiative celebrates years as a small business delivering 'extraordinary service. exceptional value' to libraries worldwide: https://www.newswire.com/news/equinox-launches-new-website-featuring-open-source-library-products- reply on twitter retweet on twitter like on twitter twitter equinox oli@equinoxoli· apr equinoxedu : spotlight on the @evergreenils booking module registration is open! save your spot for april , - pm edt. free & open: https://bit.ly/ ahwbgl reply on twitter retweet on twitter like on twitter twitter equinox oli@equinoxoli· apr #icymi - @evergreenils . . is here! congrats to the community! #evgils #oss #opensource evergreen ils@evergreenilsevergreen . . released! new features include saml, hold groups, boostrap opac, "did you mean?" and much, much more, read about it here: https://evergreen-ils.org/evergreen- - - -released/ #evgils reply on twitter retweet on twitter like on twitter twitter equinox oli@equinoxoli· apr our latest: "equinox launches new website featuring open source library products, services, and education." read more: https://www.equinoxoli.org/equinox-launches-new-website-featuring-open-source-library-products-services-and-education/ #libraries #services #consulting #interlibraryloan #opensource #training #tech #evgils #kohails #oss reply on twitter retweet on twitter like on twitter twitter events open source twitter chat with guest moderator becky yoose #chatopens event join us on twitter with the hashtag #chatopens as we discuss cybersecurity with becky yoose of ldh consulting services. read more open source twitter chat with rogan hamby #chatopens event / / join us on twitter @equinoxoli and the #chatopens hashtag from - pm edt as we discuss all things #opensource & libraries. moderated by rogan hamby, data and project analyst for read more equinoxedu: spotlight on evergreen . event / / join us for an equinoxedu: spotlight session on new features in the evergreen ils! in this live webinar we will highlight some of the newest features in version . read more equinox open library initiative equinox open library initiative inc. is a (c) corporation devoted to the support of open source software for public libraries, academic libraries, school libraries, and special libraries. as the successor to equinox software, inc., equinox provides exceptional service and technical expertise delivered by experienced librarians and technical staff. equinox offers affordable, customized consulting services, software development, hosting, training, and technology support for libraries of all sizes and types. connect please enable javascript in your browser to complete this form. email submit facebook-f twitter linkedin-in vimeo contact us info@equinoxoli.org .open.ils ( . . ) + . . . po box norcross, ga copyright © – equinox open library initiative. all rights reserved. privacy policy  |   terms of use  |   equinox library services canada  |   site map skip to content open toolbar accessibility tools increase text decrease text grayscale high contrast negative contrast light background links underline readable font reset none archivesblogs | a syndicated collection of blogs by and for archivists archivesblogs a syndicated collection of blogs by and for archivists search main menu skip to primary content skip to secondary content home about post navigation ← older posts meet ike posted on september , from aotus “i come from the very heart of america.” – dwight eisenhower, june , at a time when the world fought to overcome tyranny, he helped lead the course to victory as the supreme allied commander in europe. when our nation needed a leader, he upheld the torch of liberty as our th president. as a new memorial is unveiled, now is the time for us to meet dwight david eisenhower. eisenhower memorial statue and sculptures, photo by the dwight d. eisenhower memorial commission an opportunity to get to know this man can be found at the newly unveiled eisenhower memorial in washington, dc, and the all-new exhibits in the eisenhower presidential library and museum in abilene, kansas. each site in its own way tells the story of a humble man who grew up in small-town america and became the leader of the free world. the eisenhower presidential library and museum is a -acre campus which includes several buildings where visitors can interact with the life of this president. starting with the boyhood home, guests discover the early years of eisenhower as he avidly read history books, played sports, and learned lessons of faith and leadership. the library building houses the documents of his administration. with more than million pages and , images, researchers can explore the career of a +-year public servant. the , square feet of all-new exhibits located in the museum building is where visitors get to meet ike and mamie again…for the first time. using nara’s holdings, guests gain insight into the life and times of president eisenhower. finally, visitors can be reflective in the place of meditation where eisenhower rests beside his first-born son, doud, and his beloved wife mamie. a true encapsulation of his life. eisenhower presidential library and museum, abilene, kansas the updated gallery spaces were opened in . the exhibition includes many historic objects from our holdings which highlight eisenhower’s career through the military years and into the white house. showcased items include ike’s west point letterman’s sweater, the d-day planning table, soviet lunasphere, and letters related to the crisis at little rock. several new films and interactives have been added throughout the exhibit including a d-day film using newly digitized footage from the archives. eisenhower presidential library and museum, abilene, kansas in addition to facts and quotes, visitors will leave with an understanding of how his experiences made ike the perfect candidate for supreme allied commander of the allied expeditionary force in europe and the th president of the united states. the eisenhower memorial, which opened to the public on september , is located at an important historical corridor in washington, dc. the -acre urban memorial park is surrounded by four buildings housing institutions that were formed during the eisenhower administration and was designed by award-winning architect, frank gehry. in , the national archives hosted frank gehry and his collaborator, theater artist robert wilson in a discussion about the creation of the eisenhower national memorial.  as part of the creative process, gehry’s team visited the eisenhower presidential library and drew inspiration from the campus. they also used the holdings of the eisenhower presidential library to form the plans for the memorial itself. this also led to the development of online educational programs which will have a continued life through the eisenhower foundation. visitors to both sites will learn lasting lessons from president eisenhower’s life of public service. eisenhower memorial, photo by the dwight d. eisenhower memorial commission link to post | language: english the first post / phone-in: richard hake sitting-in for brian lehrer posted on september , from nypr archives & preservation on september , , the late richard hake sat-in for brian lehrer at columbia university’s new studios at wkcr.  just one week after the attack on the world trade center, wnyc was broadcasting on fm at reduced power from the empire state building and over wnye ( . fm). richard spoke with new york times columnist paul krugman on airport security, author james fallows on the airline industry, robert roach jr. of the international association of machinists, and security expert and former new york city police commissioner william bratton as well as wnyc listeners. link to post | language: english capturing virtual fsu posted on september , from illuminations when the world of fsu changed in march , the website for fsu was used as one of the primary communication tools to let students, faculty, and staff know what was going on. new webpages created specifically to share information and news popped up all over fsu.edu and we had no idea how long those pages would exist (ah, the hopeful days of march) so heritage & university archives wanted to be sure to capture those pages quickly and often as they changed and morphed into new online resources for the fsu community. screenshot of a capture of the main fsu news feed regarding coronavirus. captured march , . while fsu has had an archive-it account for a while, we hadn’t fully implemented its use yet. archive-it is a web archiving service that captures and preserves content on websites as well as allowing us to provide metadata and a public interface to viewing the collected webpages. covid- fast-tracked me on figuring out archive-it and how we could best use it to capture these unique webpages documenting fsu’s response to the pandemic. i worked to configure crawls of websites to capture the data we needed, set up a schedule that would be sufficient to capture changes but also not overwhelm our data allowance, and describe the sites being captured. it took me a few tries but we’ve successfully been capturing a set of covid related fsu urls since march. one of the challenges of this work was some of the webpages had functionality that the web crawling just wouldn’t capture. this was due to some interactive widgets on pages or potentially some css choices the crawler didn’t like. i decided the content was the most important thing to capture in this case, more so than making sure the webpage looked exactly like the original. a good example of this is the international programs alerts page. we’re capturing this to track information about our study abroad programs but what archive-it displays is quite different from the current site in terms of design. the content is all there though. on the left is how archive-it displays a capture of the international programs alerts page. on the right is how the site actually looks. while the content is the same, the formatting and design is not as the pandemic dragged on and it became clear that fall would be a unique semester, i added the online orientation site and the fall site to my collection line-up. the fall page, once used to track the re-opening plan recently morphed into the stay healthy fsu site where the community can look for current information and resources but also see the original re-opening document. we’ll continue crawling and archiving these pages in our fsu coronavirus archive for future researchers until they are retired and the university community returns to “normal” operations – whatever that might look like when we get there! link to post | language: english welcome to the new clintonlibrary.gov! posted on september , from aotus the national archives’ presidential libraries and museums preserve and provide access to the records of presidential administrations. in support of this mission, we developed an ongoing program to modernize the technologies and designs that support the user experience of our presidential library websites. through this program, we have updated the websites of the hoover, truman, eisenhower and nixon presidential libraries.  recently we launched an updated website for the william j. clinton presidential library & museum. the website, which received more than , visitors over the past year, now improves access to the clinton presidential library holdings by providing better performance, improving accessibility, and delivering a mobile-friendly experience. the updated website’s platform and design, based in the drupal web content management framework, enables the clinton presidential library staff to make increasing amounts of resources available online—especially while working remotely during the covid- crisis. to achieve this website redesign, staff from the national archives’ office of innovation, with both web development and user experience expertise, collaborated with staff from the clinton presidential library to define goals for the new website. our user experience team first launched the project by interviewing staff of the clinton presidential library to determine the necessary improvements for the updated website to facilitate their work. next, the user experience team researched the library’s customers—researchers, students, educators, and the general public—by analyzing user analytics, heatmaps, recordings of real users navigating the site, and top search referrals. based on the data collected, the user experience team produced wireframes and moodboards that informed the final site design. the team also refined the website’s information architecture to improve the user experience and meet the clinton library staff’s needs.  throughout the project, the team used agile project management development processes to deliver iterative changes focused on constant improvement. to be agile, specific goals were outlined, defined, and distributed among team members for mutual agreement. work on website designs and features was broken into development “sprints”—two-week periods to complete defined amounts of work. at the end of each development sprint, the resulting designs and features were demonstrated to the clinton presidential library staff stakeholders for feedback which helped further refine the website. the project to update the clinton presidential library and museum website was guided by the national archives’ strategic goals—to make access happen, connect with customers, maximize nara’s value to the nation, and build our future through our people. by understanding the needs of the clinton library’s online users and staff, and leveraging the in-house expertise of our web development and user experience staff, the national archives is providing an improved website experience for all visitors. please visit the site, and let us know what you think! link to post | language: english the road to edinburgh (part ) posted on september , from culture on campus “inevitably, official thoughts early turned to the time when scotland would be granted the honour of acting as hosts. thought was soon turned into action and resulted in scotland pursuing the opportunity to be host to the games more relentlessly than any other country has.” from foreword to the official history of the ixth commonwealth games ( ) in our last blog post we left the campaigners working to bring the commonwealth games to edinburgh reflecting on the loss of the games to kingston, jamaica. the original plan of action sketched out by willie carmichael in had factored in a renewed campaign for if the initial approach to host the games proved unsuccessful. the choice of host cities for the games were made at the bi-annual general assemblies of the commonwealth games federation. the campaign to choose the host for began at a meeting held in tokyo in (to coincide with the olympics), with the final vote taking place at the kingston games. in the edinburgh campaign presented a document to the federation restating its desire to be host city for the games in . entitled ‘scotland invites’ it laid out scotland’s case: “we are founder members of the federation; we have taken part in each games since the inception in ; and we are the only one of six countries who have taken part in every games, who have not yet had the honour of celebrating the games.” from scotland invites, british empire and commonwealth games council for scotland ( ) documents supporting edinburgh’s bid to host the commonwealth games presented to meetings of the general assembly of the commonwealth games federation at tokyo in and kingston in (ref. wc/ / / ) edinburgh faced a rival bid from christchurch, new zealand, the competition between the two cities recorded in a series of press cutting files collected by willie carmichael. reports in the scottish press presented edinburgh as the favourites for , with christchurch using their bid as a rehearsal for a more serious campaign to host the competition. however, the new zealanders rejected this assessment, arguing that it was the turn of a country in the southern hemisphere to host the games. the games brought the final frantic round of lobbying and promotion for the rival bids as members of the commonwealth games federation gathered in kingston. the british empire and commonwealth games council for scotland presented a bid document entitled ‘scotland ’ which included detailed information on the venues and facilities to be provided for the competition along with a broader description of the city of edinburgh. artists impression of the new meadowbank athletics stadium, edinburgh (ref. wc/ / / / ) at the general assembly of the commonwealth games federation held in kingston, jamaica, on august the vote took place to decide the host of the games. edinburgh was chosen as host city by votes to . the edinburgh campaign team kept a souvenir of this important event. at the end of the meeting they collected together the evidence of their success and put it in an envelope marked ‘ballot cards – which recorded votes for scotland at kingston .’ the voting cards and envelope now sit in an administrative file which forms part of the commonwealth games scotland archive. voting card recording vote for scotland to host the commonwealth games (ref. cg/ / / / / ) link to post | language: english new ancient texts research guide posted on september , from illuminations “what are the oldest books you have?” is a common question posed to special collections & archives staff at strozier library. in fact, the oldest materials in the collection are not books at all but cuneiform tablets ranging in date from to bce ( - years old). these cuneiform tablets, along with papyrus fragments and ostraka comprise the ancient texts collection in special collections & archives. in an effort to enhance remote research opportunities for students to engage with the oldest materials housed in strozier library, a research guide to ancient texts at fsu libraries has been created by special collections & archives staff. ancient texts research guide the ancient texts at fsu libraries research guide provides links to finding aids with collections information, high-resolution photos of the objects in the digital library, and links to articles or books about the collections. research guides can be accessed through the tile, “research guides,” on the library’s main page. special collections & archives currently has research guides published that share information and resources on specific collections or subjects that can be accessed remotely. while direct access to physical collections is unavailable at this time due to covid- , we hope to resume in-person research when it is safe to do so, and special collections & archives is still available to assist you remotely with research and instruction. please get in touch with us via email at: lib-specialcollections@fsu.edu. for a full list of our remote services, please visit our services page. link to post | language: english ssci members embrace need for declassification reform, discuss pidb recommendations at senate hearing posted on september , from transforming classification the board would like to thank acting chairman marco rubio (r-fl), vice chairman mark warner (d-va), and members of the senate select committee on intelligence (ssci) for their invitation to testify yesterday (september , ) at the open hearing on “declassification policy and prospects for reform.”    at the hearing, pidb member john tierney responded to questions from committee members about recommendations in the pidb’s may report to the president. he stressed the need for modernizing information security systems and the critical importance of sustained leadership through a senior-level executive agent (ea) to oversee and implement meaningful reform. in addition to congressman tierney, greg koch, the acting director of information management in the office of the director of national intelligence (odni), testified in response to the ssci’s concerns about the urgent need to improve how the executive branch classifies and declassifies national security information. much of the discussion focused on the pidb recommendation that the president designate the odni as the ea to coordinate the application of information technology, including artificial intelligence and machine learning, to modernize classification and declassification across the executive branch. senator jerry moran (r-ks), and senator ron wyden (d-or), who is a member of the ssci, joined the hearing to discuss the bill they are cosponsoring to modernize declassification. their proposed “declassification reform act of ” aligns with the pidb report recommendations, including the recommendation to designate the odni as the ea for coordinating the required reforms. the board would like to thank senators moran and wyden for their continued support and attention to this crucial issue. modernizing the classification and declassification system is important for our st century national security and it is important for transparency and our democracy. video of the entire hearing is available to view at the ssci’s website, and from c-span.  the transcript of prepared testimony submitted to the ssci by mr. tierney is posted on the pidb website. link to post | language: english be connected, keep a stir diary posted on september , from culture on campus the new semester approaches and it’s going to be a bit different from what we’re used to here at the university of stirling. to help you with your mental health and wellbeing this semester, we’ve teamed up with the chaplaincy to provide students new and returning with a diary where you can keep your thoughts and feelings, process your new environment, record your joys and capture what the university was like for you in this unprecedented time. diaries will be stationed at the welcome lounges from th september and we encourage students to take one for their personal use. please be considerate of others and only take one diary each. inside each diary is a qr code which will take you to our project page where you can learn more about the project and where we will be creating an online resource for you to explore the amazing diaries that we keep in archives and special collections. we will be updating this page throughout semester with information from the archives and events for you to join. keep an eye out for #stirdiary on social media for all the updates! at the end of semester, you are able to donate your diary to the archive where it will sit with the university’s institutional records and form a truthful and creative account of what student life was like in . you absolutely don’t have to donate your diary if you don’t want to, the diary belongs to you and you can keep it, throw it away, donate it or anything else (wreck it?) as you like. if you would like to take part in the project but you have missed the welcome lounges, don’t worry! contact rosie on archives@stir.ac.uk or janet on janet.foggie @stir.ac.uk welcome to the university of stirling – pick a colour! link to post | language: english pidb member john tierney to support modernizing classification and declassification before the senate select committee on intelligence, tomorrow at : p.m., live on c-span posted on september , from transforming classification pidb member john tierney will testify at an open hearing on declassification policy and the prospects for reform, to be held by the senate select committee on intelligence (ssci) tomorrow, wednesday, september , , from : - : p.m. est. the hearing will be shown on the ssci’s website, and televised live on c-span.  ssci members senators ron wyden (d-or) and jerry moran (r-ks) have cosponsored the proposed “declassification reform act of ,” which aligns with recommendations of the pidb’s latest report to the president, a vision for the digital age: modernization of the u.s, national security classification and declassification system (may ). in an opinion-editorial appearing today on the website just security, senators wyden and moran present their case for legislative reform to address the challenges of outmoded systems for classification and declassification. at the hearing tomorrow, mr. tierney will discuss how the pidb recommendations present a vision for a uniform, integrated, and modernized security classification system that appropriately defends national security interests, instills confidence in the american people, and maintains sustainability in the digital environment. mr. greg koch, acting director of the information management office for the office of the director of national intelligence, will also testify at the hearing. the pidb welcomes the opportunity to speak before the ssci and looks forward to discussing the need for reform with the senators. after the hearing, the pidb will post a copy of mr. tierney’s prepared testimony on its website and on this blog. link to post | language: english wiki loves monuments – digital skills and exploring stirling posted on september , from culture on campus every year the wikimedia foundation runs wiki loves monuments – the world’s largest photo competition. throughout september there is a push to take good quality images of listed buildings and monuments and add them to wiki commons where they will be openly licensed and available for use across the world – they may end up featuring on wikipedia pages, on google, in research and presentations worldwide and will be entered into the uk competition where there are prizes to be had! below you’ll see a map covered in red and blue pins. these represent all of the listed buildings and monuments that are covered by the wiki loves monuments competition, blue pins are places that already have a photograph and red pins have no photograph at all. the aim of the campaign is to turn as many red pins blue as possible, greatly enhancing the amazing bank of open knowledge across the wikimedia platforms. the university of stirling sits within the black circle. the two big clusters of red pins on the map are stirling and bridge of allan – right on your doorstep! we encourage you to explore your local area. knowing your surroundings, finding hidden gems and learning about the history of the area will all help stirling feel like home to you, whether you’re a first year or returning student. look at all those red dots! of course, this year we must be cautious and safe while taking part in this campaign and you should follow social distancing rules and all government coronavirus guidelines, such as wearing facemasks where appropriate, while you are out taking photographs. we encourage you to walk to locations you wish to photograph, or use the nextbikes which are situated on campus and in stirling rather than take excessive public transport purely for the purposes of this project. walking and cycling will help you to get a better sense of where everything is in relation to where you live and keeping active is beneficial to your mental health and wellbeing. here are your nextbike points on campus where you can pick up a bike to use we hope you’ll join us for this campaign – we have a session planned for - pm on thursday th september on teams where we’ll tell you more about wiki loves monuments and show you how to upload your images. sign up to the session on eventbrite. if you cannot make our own university of stirling session then wikimedia uk have their own training session on the st september which you can join. please note that if you want your photographs to be considered for the competition prizes then they must be submitted before midnight on the th september. photographs in general can be added at any time so you can carry on exploring for as long as you like! finally, just to add a little incentive, this year we’re having a friendly competition between the university of stirling and the university of st andrews students to see who can make the most edits so come along to a training session, pick up some brilliant digital skills and let’s paint the town green! link to post | language: english what’s the tea? posted on september , from illuminations katie mccormick, associate dean (she/her/hers) for this post, i interviewed kate mccormick in order to get a better understanding of the dynamics of special collections & archives. katie is one of the associate deans and has been with sca for about nine years now (here’s a video of katie discussing some of our collections on c-span in !). as a vital part of the library, and our leader in special collections & archives, i wanted to get her opinion on how the division has progressed thus far and how they plan to continue to do so in regards to diversity and inclusion.  how would you describe fsu sca when you first started? “…people didn’t feel comfortable communicating [with each other]… there was one person who really wrote for the blog, and maybe it would happen once every couple of months. when i came on board, my general sense was that we were a department and a group of people with a lot of really great ideas and some fantastic materials, who had come a long way from where things has been, but who hadn’t gotten to a place to be able to organize to change more or to really work more as a team… we were definitely valued as (mostly) the fancy crown jewel group. really all that mattered was the stuff… it didn’t matter what we were doing with it.” how do you feel the lapse in communication affected diversity and inclusion? “while i don’t have any direct evidence that it excluded people or helped create an environment that was exclusive, i do know that even with our staff at the time, there were times where it contributed to hostilities, frustrations, an  environment where people didn’t feel able to speak or be comfortable in…everybody just wanted to be comfortable with the people who were just like them that it definitely created some potentially hostile environments. looking back, i recognize what a poor job we did, as a workplace and a community truly being inclusive, and not just in ways that are immediately visible.” how diverse was sca when you started?  “in special collections there was minimal diversity, certainly less than we have now… [for the libraries as a whole] as you go up in classification and pay, the diversity decreases. that was certainly true when i got here and that remains true.” how would you rank sca’s diversity and inclusion when you first started? “…squarely a , possibly in some arenas a . not nothing, but i feel like no one was really thinking of it.” and how would you describe it now? “maybe we’re approaching a , i feel like there’s been progress, but there’s still a long way to go in my opinion.” what are some ways we can start addressing these issues? what are some tangible ways you are planning to enact? “for me, some of the first places [is] forming the inclusive research services task force in special collections, pulling together a group to look at descriptive practices and applications, and what we’re doing with creating coordinated processing workflows. putting these issues on the table from the beginning is really important… right now because we’re primarily in an online environment, i think we have some time to negotiate and change our practices so when we are re-open to the public and people are physically coming in to the spaces, we have new forms, new trainings, people have gone through training that gives them a better sense of identity, communication, diversity.” after my conversation with katie, i feel optimistic about the direction we are heading in. knowing how open special collections & archives is about taking critique and trying to put it into action brought me comfort. i’m excited to see how these concerns are addressed and how the department will be putting dynamic inclusivity, one of florida state university’s core values, at the forefront of their practice. i would like to give a big thank you to katie mccormick for taking the time to do this post with me and for having these conversations! link to post | language: english friday art blog: terry frost posted on september , from culture on campus black and red on blue (screenprint, a/p, ) born in leamington spa, warwickshire, in , terry frost kbe ra did not become an artist until he was in his s. during world war ii, he served in france, the middle east and greece, before joining the commandos. while in crete in june he was captured and sent to various prisoner of war camps. as a prisoner at stalag  in bavaria, he met adrian heath who encouraged him to paint. after the war he attended camberwell school of art and the st. ives school of art and painted his first abstract work in . in he moved to newlyn and worked as an assistant to the sculptor barbara hepworth. he was joined there by roger hilton, where they began a collaboration in collage and construction techniques. in he put on his first exhibition in the usa, in new york, and there he met many of the american abstract expressionists, including marc rothko who became a great friend. terry frost’s career included teaching at the bath academy of art, serving as gregory fellow at the university of leeds, and also teaching at the cyprus college of art. he later became the artist in residence and professor of painting at the department of fine art of the university of reading. orange dusk (lithograph, / , ) frost was renowned for his use of the cornish light, colour and shape. he became a leading exponent of abstract art and a recognised figure of the british art establishment. these two prints were purchased in the early days of the art collection at the beginning of the s. terry frost married kathleen clarke in and they had six children, two of whom became artists, (and another, stephen frost, a comedian). his grandson luke frost, also an artist, is shown here, speaking about his grandfather. link to post | language: english pidb sets next virtual public meeting for october , posted on september , from transforming classification the public interest declassification board (pidb) has scheduled its next virtual public meeting for wednesday, october , , from : to : p.m.  at the meeting, pidb members will discuss their priorities for improving classification and declassification in the next months. they will also introduce former congressman trey gowdy, who was appointed on august , , to a three-year term on the pidb. a full agenda, as well as information on how to pre-register, and how to submit questions and comments to the pidb prior to the virtual meeting, will be posted soon to transforming classification. the pidb looks forward to your participation in continuing our public discussion of priorities for modernizing the classification system going forward. link to post | language: english digital collections updates posted on september , from unc greensboro digital collections so as we start a new academic year, we thought this would be a good time for an update on what we’ve been working on recently. digital collections migration: after more than a year’s delay, the migration of our collections into a new and more user-friendly (and mobile-friendly) platform driven by the islandora open-source content management system is in the home stretch. this has been a major undertaking and has given us the opportunity to reassess how our collections work. we hope to be live with the new platform in november. , items (over , digital images) have already been migrated. - projects: we’ve made significant progress on most of this year’s projects (see link for project descriptions), though many of these are currently not yet online pending our migration to the islandora platform: grant-funded projects: temple emanuel project: we are working with the public history department and a graduate student in that program. several hundred items have already been digitized and more work is being done. we are also exploring grant options with the temple to digitize more material. people not property: nc slave deeds project: we are in the final year of this project funded by the national archives and hope to have it online as part of the digital library on american slavery late next year. we are also exploring additional funding options to continue this work. women who answered the call: this project was funded by a clir recordings at risk grant. the fragile cassettes have been digitized and we are midway through the process of getting them online in the new platform. library-funded projects: poetas sin fronteras: poets without borders, the scrapbooks of dr. ramiro lagos: these items have been digitized and will go online when the new platform launches. north carolina runaway slaves ads project, phase : work continues on this ongoing project and over ads are now online. this second phase has involved both locating and digitizing/transcribing the ads, and we will soon triple the number of ads done in phase one. we are also working on tighter integration of this project into the digital library on american slavery. pride! of the community: this ongoing project stemmed from an neh grant two years ago and is growing to include numerous new oral history interviews and (just added) a project to digitize and display ads from lgbtq+ bars and other businesses in the triad during the s and s. we are also working with two public history students on contextual and interpretive projects based on the digital collection. faculty-involved projects: black lives matter collections: this is a community-based initiative to document the black lives matter movement and recent demonstrations and artwork in the area. faculty: dr. tara green (african america and diaspora studies);  stacey krim, erin lawrimore, dr. rhonda jones, david gwynn (university libraries). civil rights oral histories: this has become multiple projects. we are working with several faculty members in the media studies department to make these transcribed interviews available online. november is the target. faculty: matt barr, jenida chase, hassan pitts, and michael frierson (media studies); richard cox, erin lawrimore, david gwynn (university libraries). oral contraceptive ads: working with a faculty member and a student on this project, which may be online by the end of the year. faculty: dr. heather adams (english); david gwynn and richard cox (university libraries). well-crafted nc: work is ongoing and we are in the second year of a uncg p grant, working with a faculty member in eth bryan school and a brewer based in asheboro. faculty: erin lawrimore, richard cox, david gwynn (university libraries), dr. erick byrd (marketing, entrepreneurship, hospitality, and tourism) new projects taken on during the pandemic: city of greensboro scrapbooks: huge collection of scrapbooks from the greensboro urban development department dating back to the s. these items have been digitized and will go online when the new platform launches. negro health week pamphlets: s- s pamphlets published by the state of north carolina. these items are currently being digitized and will go online when the new platform launches. clara booth byrd collection: manuscript collection. these items are currently being digitized and will go online when the new platform launches. north carolina speaker ban collection: manuscript collection. these items are currently being digitized and will go online when the new platform launches. mary dail dixon papers: manuscript collection. these items are currently being digitized and will go online when the new platform launches. ruth wade hunter collection: manuscript collection. these items are currently being digitized and will go online when the new platform launches. projects on hold pending the pandemic: junior league of greensboro: much of this has already been digitized and will go online when the new platform launches. uncg graduate school bulletins: much of this has already been digitized and will go online when the new platform launches.  david gwynn (digitization coordinator, me) offers kudos to erica rau and kathy howard (digitization and metadata technicians); callie coward (special collections cataloging & digital projects library technician); charley birkner (technology support technician); and dr. brian robinson (fellow for digital curation and scholarship) for their great work in very surreal circumstances over the past six months. link to post | language: english correction: creative fellowship call for proposals posted on september , from notes for bibliophiles we have an update to our last post! we’re still accepting proposals for our creative fellowship… but we’ve decided to postpone both the fellowship and our annual exhibition & program series by six months due to the coronavirus. the annual exhibition will now open on october , (which is months away, but we’re still hard at work planning!). the new due date for fellowship proposals is april , . we’ve adjusted the timeline and due dates in the call for proposals accordingly. link to post | language: english on this day in the florida flambeau, friday, september , posted on september , from illuminations today in , a disgruntled reader sent in this letter to the editor of the flambeau. in it, the reader describes the outcome of a trial and the potential effects that outcome will have on the city of tallahassee. florida flambeau, september , it is such a beautifully written letter that i still can’t tell whether or not it’s satire. do you think the author is being serious or sarcastic? leave a comment below telling us what you think! link to post | language: english hartgrove, meriwether, and mattingly posted on september , from the consecrated eminence the past few months have been a challenging time for archivists everywhere as we adjust to doing our work remotely. fortunately, the materials available in amherst college digital collections enable us to continue doing much of our work. back in february, i posted about five black students from the s and s — black men of amherst, -  — and now we’re moving into the early th century. a small clue in the olio has revealed another black student that was not included in harold wade’s black men of amherst. robert sinclair hartgrove (ac ) was known to wade, as was robert mattingly (ac ), but we did not know about robert henry meriwether. these three appear to be the first black students to attend amherst in the twentieth century. robert sinclair hartgrove, class of the text next to hartgrove’s picture in the yearbook gives us a tiny glimpse into his time at amherst. the same yearbook shows hartgrove not just jollying the players, but playing second base for the freshman baseball team during the season. freshman baseball team, the reference to meriwether sent me to the amherst college biographical record, where i found robert henry meriwether listed as a member of the class of . a little digging into the college catalogs revealed that he belongs with the class of . college catalog, - hartgrove and meriwether are both listed as members of the freshman class in the - catalog. the catalog also notes that they were both from washington, dc and the biographical record indicates that they both prepped at howard university before coming to amherst. we find meriwether’s name in the catalog for - , but he did not “pull through” as the olio hopes hartgrove will; meriwether returned to howard university where he earned his llb in . hartgrove also became a lawyer, earning his jb from boston university in and spending most of his career in jersey city, nj. robert nicholas mattingly, class of mattingly was born in louisville, ky in and prepped for amherst at the m street school in washington, dc, which changed its name in to the dunbar school. matt randolph (ac ) wrote “remembering dunbar: amherst college and african-american education in washington, dc” for the book amherst in the world, which includes more details of mattingly’s life. the amherst college archives and special collections reading room is closed to on-site researchers. however, many of our regular services are available remotely, with some modifications. please read our services during covid- page for more information. contact us at archives@amherst.edu. link to post | language: english democratizing access to our records posted on september , from aotus the national archives has a big, hairy audacious strategic goal to provide public access to million digital copies of our records through our online catalog by fy . when we first announced this goal in , we had less than a million digital copies in the catalog and getting to million sounded to some like a fairy tale. the goal received a variety of reactions from people across the archival profession, our colleagues and our staff. some were excited to work on the effort and wanted particular sets of records to be first in line to scan. some laughed out loud at the sheer impossibility of it. some were angry and said it was a waste of time and money. others were fearful that digitizing the records could take their jobs away. we moved ahead. staff researched emerging technologies and tested them through pilots in order to increase our efficiency. we set up a room at our facilities in college park to transfer our digital copies from individual hard drives to new technology from amazon, known as snowballs. we worked on developing new partnership projects in order to get more records digitized. we streamlined the work in our internal digitization labs and we piloted digitization projects with staff in order to find new ways to get digital copies into the catalog. by , we had million in the catalog. we persisted. in , we added more digital objects, with their metadata, to the catalog in a single year than we had for the preceding decade of the project. late in , we surpassed a major milestone by having more than million digital copies of our records in the catalog. and yes, it has strained our technology. the catalog has developed growing pains, which we continue to monitor and mitigate. we also created new finding aids that focus on digital copies of our records that are now available online: see our record group explorer and our presidential library explorer. so now, anyone with a smart phone or access to a computer with wifi, can view at least some of the permanent records of the u.s. federal government without having to book a trip to washington, d.c. or one of our other facilities around the country. the descriptions of over % of our records are also available through the catalog, so even if you can’t see it immediately, you can know what records exist. and that is convenient for the millions of visitors we get each year to our website, even more so during the pandemic. national archives identifier we are well on our way to million digital copies in the catalog by fy . and yet, with over billion pages of records in our holdings, we know, we have only just begun. link to post | language: english lola hayes and “tone pictures of the negro in music” posted on august , from nypr archives & preservation lola wilson hayes ( - ) was a highly-regarded african-american mezzo-soprano, wnyc producer, and later, much sought after vocal teacher and coach. a boston native, hayes was a music graduate of radcliffe college and studied voice with frank bibb at baltimore’s peabody conservatory. she taught briefly at a black vocational boarding school in new jersey known as the ‘tuskeegee of the north'[ ] before embarking on a recital and show career which took her to europe and around the united states. during world war ii, she also made frequent appearances at the american theatre wing of the stage door canteen of new york and entertained troops at uso clubs and hospitals. headline from the new york age, august , , pg. . (wnyc archive collections) hayes also made time to produce a short but notable run of wnyc programs, which she hosted and performed on the home front. her november and december broadcasts were part of a rotating half-hour time slot designated for known recitalists. she shared the late weekday afternoon slot with sopranos marjorie hamill, pina la corte, jean carlton, elaine malbin, and the hungarian pianist arpád sándor. hayes’ series, tone pictures of the negro in music, sought to highlight african-american composers and was frequently referred to as the negro in music. the following outline of and broadcasts was pieced together from the wnyc masterwork bulletin program guide and period newspaper radio listings. details on the programs are sparse. we know that hayes’ last broadcast in featured the pianist william duncan allen ( - ) performing they led my lord away by roland hayes and good lord done been here by hall johnson, and a porgy and bess medley by george gershwin. excerpt from “behind the mike,” november/december , wnyc masterwork bulletin. (wnyc archive collections) the show was scheduled again in august as a -minute late tuesday afternoon program and in november that year as a half-hour wednesday evening broadcast. the august programs began with an interview of soprano abbie mitchell ( - ), the widow of composer and choral director will marion cook ( - ). the composer and arranger hall johnson ( - ) was her studio guest the following week. the third tuesday of the month featured pianist jonathan brice performing “songs of young contemporary negro composers,” and the august shows concluded with selections from porgy and bess and cameron jones. the november broadcasts focused on the work of william grant still, “the art songs, spirituals and street cries” of william lawrence, as well as the songs and spirituals of william rhodes, lyric soprano lillian evanti, and baritone harry t. burleigh. hayes also spent airtime on the work of neo-romantic composer and violinist clarence cameron white. the november th program considered “the musical setting of poems by langston hughes and reportedly included the bard himself. “langston hughes was guest of honor and punctuated his interview with a reading from his opera troubled island.”[ ] this was not the first time the poet’s work was the subject of hayes’ broadcast. below is a rare copy of her script from a program airing eight months earlier when she sat in for the regularly scheduled host, soprano marjorie hamill. the script for tone pictures of the negro in music hosted by lola hayes on march , . (image used with permission of van vecten trust and courtesy of the carl van vechten papers relating to african american arts and letters. james weldon johnson collection in the yale collection in the yale collection of american literature, beinecke rare book and manuscript library)[ ] it is unfortunate, but it appears there are no recordings of lola hayes’ wnyc program. we can’t say if that’s because they weren’t recorded or, if they were, the lacquer discs have not survived. we do know that world war ii-era transcription discs, in general, are less likely to have survived since most of them were cut on coated glass, rather than aluminum, to save vital metals for the war effort. after the war, hayes focused on voice teaching and coaching. her students included well-known performers like dorothy rudd moore, hilda harris, raoul abdul-rahim, carol brice, nadine brewer, elinor harper, lucia hawkins, and margaret tynes. she was the first african-american president of the new york singing teachers association (nysta), serving in that post from - . in her later years, she devoted much of her time to the lola wilson hayes vocal artists award, which gave substantial financial aid to young professional singers worldwide.[ ]  ___________________________________________________________ [ ] the manual training and industrial school for colored youth in bordentown, new jersey [ ] “the listening room,” the people’s voice, december , , pg. . the newspaper noted that the broadcast included hall johnson’s mother to son, cecil cohen’s death of an old seaman and florence price’s song to a dark virgin, all presumably sung by host, lola hayes.  troubled island is an opera set in haiti in . it was composed by william grant still with a libretto by langston hughes and verna arvey. [ ] page two of the script notes langston hughes’ grandmother was married to a veteran of the harper’s ferry raid led by abolitionist john brown. indeed, hughes’ grandmother’s first husband was lewis sheridan leary, who was one of brown’s raiders at harper’s ferry. for more on the story please see: a shawl from harper’s ferry. [ ] abdul, raoul, “winners of the lola hayes vocal scholarship and awards,” the new york amsterdam news, february , , pg. . special thanks to valeria martinez for research assistance.   link to post | language: english the road to edinburgh posted on august , from culture on campus on the th anniversary of the edinburgh commonwealth games newly catalogued collections trace the long road to the first games held in scotland. a handwritten note dated th april sits on the top of a file marked ‘scotland for host’. the document forms part of a series of files recording the planning, organisation and operation of the edinburgh commonwealth games, the first to be held in scotland. written by willie carmichael, a key figure in scotland’s games history, the note sets out his plans to secure the commonwealth games for scotland. he begins by noting that scotland’s intention to host the games was made at a meeting of commonwealth games federations at the melbourne olympic games. carmichael then proceeds to lay out the steps required to make scotland’s case to be the host of the games in or . willie carmichael the steps which carmichael traced out in his note can be followed through the official records and personal papers relating to the games held in the university archives. the recently catalogued administrative papers of commonwealth games scotland for the period provide a detailed account of the long process of planning for this major event, recording in particular the close collaboration with edinburgh corporation which was an essential element in securing the games for scotland (with major new venues being required for the city to host the event). further details and perspectives on the road to the games can be found in the personal papers of figures associated with commonwealth games scotland also held in the university archives including sir peter heatly and willie carmichael himself. the choice of host city for the games was to be made at a meeting held at the games in perth, australia. the first target on carmichael’s plan, the edinburgh campaign put forward its application as host city at a federation meeting held in rome in . a series of press cutting files collected by carmichael trace the campaigns progress from this initial declaration of intent through to the final decision made in perth. documents supporting edinburgh’s bid to host the commonwealth games presented to meetings of the commonwealth games federation in rome ( ) and perth ( ), part of the willie carmichael archive. edinburgh faced competition both within scotland, with the press reporting a rival bid from glasgow, and across the commonwealth, with other nations including jamaica, india and southern rhodesia expressing an interest in hosting the competition. when it came to the final decision in three cities remained in contention: edinburgh, kingston in jamaica, and salisbury in southern rhodesia. the first round of voting saw salisbury eliminated. in the subsequent head-to-head vote kingston was selected as host city for the games by the narrowest of margins ( votes to ). as carmichael had sketched out in his plan if edinburgh failed in its attempt to host the games it would have another opportunity to make its case to hold the event. carmichael and his colleagues travelled to kingston in confident of securing the support required to bring the games to scotland in . in our next blog we’ll look at how they succeeded in making the case for edinburgh. ‘scotland invites’, title page to document supporting edinburgh’s bid to host the commonwealth games (willie carmichael archive). link to post | language: english friday art blog: kate downie posted on august , from culture on campus nanbei by kate downie (oil on canvas, ) during a series of visits to china a few years ago, kate downie was brought into contact with traditional ink painting techniques, and also with the china of today. there she encountered the contrasts and meeting points between the epic industrial and epic romantic landscapes: the motorways, rivers, cityscapes and geology – all of which she absorbed and reflected on in a series of oil and ink paintings. as kate creates studies for her paintings in situ, she is very much immersed in the landscapes that she is responding to and reflecting on. the artwork shown above, ‘nanbei’, which was purchased by the art collection in , tackles similar themes to downie’s scottish based work, reflecting both her interest in the urban landscape and also the edges where land meets water. here we encounter both aspects within a new setting – an industrial chinese landscape set by the edge of a vast river. downie is also obsessed with bridges. as well as the bridge that appears in this image, seemingly supported by trees that follow its line, the space depicted forms an unseen bridge between two worlds and two extremes, between epic natural and epic industrial forms. in this imagined landscape, north meets south (nanbei literally means north south) and mountains meet skyscrapers; here both natural and industrial structures dominate the landscape. this juxtaposition is one of the aspects of china that impressed the artist and inspired the resulting work. after purchasing this work by kate downie, the art collection invited her to be one of three exhibiting artists in its exhibition ‘reflections of the east’ in (the other two artists were fanny lam christie and emma scott smith). all artists had links to china, and ‘nanbei’ was central to the display of works in the crush hall that kate had entitled ‘shared vision’. temple bridge (monoprint, ) kate downie studied fine art at gray’s school of art, aberdeen and has held artists’ residencies in the usa and europe. she has exhibited widely and has also taught and directed major art projects. in kate downie travelled to beijing and shanghai to work with ink painting masters and she has since returned there several times, slowly building a lasting relationship with chinese culture. on a recent visit she learned how to carve seals from soapstone, and these red stamps can now be seen on all of her work, including on her print ‘temple bridge’ above, which was purchased by the collection at the end of the exhibition. kate downie recently gave an interesting online talk about her work and life in lockdown. it was organised by the scottish gallery in edinburgh which is currently holding an exhibition entitled ‘modern masters women‘ featuring many women artists. watch kate downie’s talk below: link to post | language: english telling untold stories through the emmett till archives posted on august , from illuminations detail of a newspaper clipping from the joseph tobias papers, mss - friday august th marks the th anniversary of the abduction and murder of emmett till. till’s murder is regarded as a significant catalyst for the mid-century african-american civil rights movement. calls for justice for till still drive national conversations about racism and oppression in the united states. in , florida state university (fsu) libraries special collections & archives established the emmett till archives in collaboration with emmett till scholar davis houck, filmmaker keith beauchamp, and author devery anderson. since then, we have continued to build robust research collections of primary and secondary sources related to the life, murder, and commemoration of emmett till. we invite researchers from around the world, from any age group, to explore these collections and ask questions. it is through research and exploration of original, primary resources that till’s story can be best understood and that truth can be shared. “mamie had a little boy…”, from the wright family interview, keith beauchamp audiovisual recordings, mss - fsu special collections & archives. as noted in our emmett till birthday post this year, an interview with emmett till’s family, conducted by civil rights filmmaker keith beauchamp in , is now available through the fsu digital library in two parts. willie wright, thelma wright edwards, and wilma wright edwards were kind enough to share their perspectives with beauchamp and in a panel presentation at the fsu libraries heritage museum that spring. soon after this writing, original audio and video files from the interview will be also be available to any visitor, researcher, or aspiring documentary filmmaker through the fsu digital library. emmett till, december . image from the davis houck papers a presentation by a till scholar in led to renewed contact with and a valuable donation from fsu alum steve whitaker, who in a way was the earliest contributor to emmett till research at fsu. his seminal master’s thesis, completed right here at florida state university, is still the earliest known scholarly work on the kidnapping and murder of till, and was influential on many subsequent retellings of the story. the till archives recently received a few personal items from whitaker documenting life in mid-century mississippi, as well as a small library of books on till, mississippi law, and other topics that can give researchers valuable context for his thesis and the larger till story. in the future, the newly-founded emmett till lecture and archives fund will ensure further opportunities to commemorate till through events and collection development. fsu libraries will continue to partner with till’s family, the emmett till memory project, emmett till interpretive center, the emmett till project, the fsu civil rights institute, and other institutions and private donors to collect, preserve and provide access to the ongoing story of emmett till. sources and further reading fsu libraries. emmett till archives research guide. https://guides.lib.fsu.edu/till wright family interview, keith beauchamp audiovisual recordings, mss - , special collections & archives, florida state university, tallahassee, florida. interview part i: http://purl.flvc.org/fsu/fd/fsu_mss - _bd_ interview part ii: http://purl.flvc.org/fsu/fd/fsu_mss - _bd_ link to post | language: english former congressman trey gowdy appointed to the pidb posted on august , from transforming classification on august , , house minority leader kevin mccarthy (r-ca) appointed former congressman harold w. “trey” gowdy, iii as a member of the public interest declassification board. mr. gowdy served four terms in congress, representing his hometown of spartansburg in south carolina’s th congressional district. the board members and staff welcome mr. gowdy and look forward to working with him in continuing efforts to modernize and improve how the federal government classifies and declassifies sensitive information. mr. gowdy was appointed by the minority leader mccarthy on august , . he is serving his first three-year term on the board. his appointment was announced on august , in the congressional record https://www.congress.gov/ /crec/ / / /crec- - - -house.pdf link to post | language: english tracey sterne posted on august , from nypr archives & preservation in november of , an item appeared in the new york times -and it seemed all of us in new york (and elsewhere) who were interested in music, radio, and culture in general, saw it:  “teresa sterne,” it read, “who in years helped build the nonesuch record label into one of the most distinguished and innovative in the recording industry, will be named director of music programming at wnyc radio next month.” the piece went on to promise that ms. sterne, under wnyc’s management, would be creating “new kinds of programming -including some innovative approaches to new music and a series of live music programs.”  this was incredible news. sterne, by this time, was a true cultural legend. she was known not only for those years she’d spent building nonesuch, a remarkably smart, serious, and daring record label —but also for how it had all ended, with her sudden dismissal from that label by elektra, its parent company (whose own parent company was warner communications), two years earlier. the widely publicized outrage over her termination from nonesuch included passionate letters of protest from the likes of leonard bernstein, elliott carter, aaron copland —only the alphabetical beginning of a long list of notable musicians, critics and journalists who saw her firing as a sharp blow to excellence and diversity in music. but the dismissal stood.  by coincidence, only three weeks before the news of her hiring broke, i had applied for a job as a part-time music-host at wnyc. steve post, a colleague whom i’d met while doing some producing and on-air work at new york’s decidedly non-profit pacifica station, wbai, had come over from there to wnyc, a year before, to do the weekday morning music and news program. “fishko,” he said to me, “they need someone on the weekends -and i think they want a woman.” my day job of longstanding was as a freelance film editor, but i wanted to keep my hand in the radio world. weekends would be perfect. in two interviews with executives at wnyc, i had failed to impress. but now i could feel hopeful about making a connection to ms. sterne, who was a music person, as was i.  soon after her tenure began, i threw together a sample tape and got it to her through a contact on the inside. and she said, simply: yeah, let’s give her a chance. and so it began.  tracey—the name she was called by all friends and colleagues — seemed, immediately, to be a fascinating, controversial character: she was uniquely qualified to do the work at hand, but at the same time she was a fish out of water. she was un-corporate, not inclined to be polite to the young executives upstairs, and not at all enamored of current trends or audience research. for this we dearly loved her, those of us on the air. she cared how the station sounded, how the music connected, how the information about the music surrounded it. her preoccupations seemed, even then, to be of the old school. but she was also fiercely modern in her attitude toward the music, unafraid to mix styles and periods, admiring of new music, up on every instrumentalist and conductor and composer, young, old, avant-garde, traditional. and she had her own emphatic and impeccable taste. always the best, that was her motto —whatever it is, if it’s great, or even just extremely good, it will distinguish itself and find its audience, she felt.  tracey sterne, age , rehearsing for a tchaikovsky concerto performance at wnyc in march . (finkelstein/wnyc archive collections) she had developed her ear and her convictions, as it turned out, as a musician, having been a piano prodigy who performed at madison square garden at age . she went on to a debut with the new york philharmonic, gave concerts at lewisohn stadium and the brooklyn museum, and so on. i could relate. though my gifts were not nearly at her level, i, too, had been a dedicated, early pianist and i, too, had looked later for other ways to use what i’d learned at the piano keyboard. and our birthdays were on the same date in march. so, despite being at least a couple of decades apart in age, we bonded.  tracey’s tenure at wnyc was fruitful, though not long. as she had at nonesuch, she embraced ambitious and adventurous music programming. she encouraged some of the on-air personalities to express themselves about the music, to “personalize” the air, to some degree. that was also happening in special programs launched shortly before she arrived as part of a new music initiative, with john schaefer and tim page presenting a range of music way beyond the standard classical fare. and because of tracey’s deep history and contacts in the new york music business, she forged partnerships with music institutions and found ways to work live performances by individual musicians and chamber groups into the programming. she helped me carve out a segment on air for something we called great collaborations, a simple and very flexible idea of hers that spread out to every area of music and made a nice framework for some observations about musical style and history. she loved to talk (sometimes to a fault) and brainstorm about ways to enliven the idea of classical music on the radio, not something all that many people were thinking about, then.  but management found her difficult, slow and entirely too perfectionistic. she found management difficult, slow and entirely too superficial. and after a short time, maybe a year, she packed up her sneakers —essential for navigating the unforgiving marble floors in that old place— and left the long, dusty hallways of the municipal building.  after that, i occasionally visited tracey’s house in brooklyn for events which i can only refer to as “musicales.” her residence was on the upper west side, but this family house was treated as a country place, she’d go on the weekends. she’d have people over, they’d play piano, and sing, and it might be william bolcom and joan morris, or some other notables, spending a musical and social afternoon. later, she and i produced a big, new york concert together for the th birthday of domenico scarlatti –which exact date fell on a saturday in . “scarlatti saturday,” we called it, with endless phone-calling, musician-wrangling and fundraising needed for months to get it off the ground.  the concert itself, much of which was also broadcast on wnyc, went on for many hours, with appearances by some of the finest pianists and harpsichordists in town and out, lines all up and down broadway to get into symphony space.  throughout, tracey was her incorruptible self — and a brilliant organizer, writer, thinker, planner, and impossibly driven producing-partner.  i should make clear, however, that for all her knowledge and perfectionistic, obsessive behavior, she was never the cliche of the driven, lonely careerist -or whatever other cliche you might want to choose. she was a warm, haimish person with friends all over the world, friends made mostly through music. a case in point: the “scarlatti saturday” event was produced by the two of us on a shoestring. and tracey, being tracey, she insisted that we provide full musical and performance information in printed programs, offered free to all audience members, and of course accurate to the last comma. how to assure this? she quite naturally charmed and befriended the printer — who wound up practically donating the costly programs to the event. by the time we were finished she was making him batches of her famous rum balls and he was giving us additional, corrected pages —at no extra charge. it was not a calculated maneuver -it was just how she did things.  you just had to love and respect her for the life force, the intelligence, the excellence and even the temperament she displayed at every turn. sometimes even now, after her death many years ago at from als, i still feel tracey sterne’s high standards hanging over me —in the friendliest possible way. ___________________________________________ sara fishko hosts wnyc’s culture series, fishko files. link to post | language: english heroes work here posted on august , from aotus the national archives is home to an abundance of remarkable records that chronicle and celebrate the rich history of our nation. it is a privilege to be archivist of the united states—to be the custodian of our most treasured documents and the head of an agency with such a unique and rewarding mission. but it is my greatest privilege to work with such an accomplished and dedicated staff—the real treasures of the national archives go home at night. today i want to recognize and thank the mission-essential staff of nara’s national personnel records center (nprc). like all nara offices, the nprc closed in late march to protect its workforce and patrons from the spread of the pandemic and comply with local government movement orders. while modern military records are available electronically and can be referenced remotely, the majority of nprc’s holdings and reference activity involve paper records that can be accessed only by on-site staff. furthermore, these records are often needed to support veterans and their families with urgent matters such as medical emergencies, homeless veterans seeking shelter, and funeral services for deceased veterans. concerned about the impact a disruption in service would have on veterans and their families, over staff voluntarily set aside concerns for their personal welfare and regularly reported to the office throughout the period of closure to respond to these types of urgent requests. these exceptional staff were pioneers in the development of alternative work processes to incorporate social distancing and other protective measures to ensure a safe work environment while providing this critical service. national personnel records center (nprc) building in st. louis the center is now in phase one of a gradual re-opening, allowing for additional on-site staff.  the same group that stepped up during the period of closure continues to report to the office and are now joined by additional staff volunteers, enabling them to also respond to requests supporting employment opportunities and home loan guaranty benefits. there are now over staff supporting on-site reference services on a rotational basis. together they have responded to over , requests since the facility closed in late march. more than half of these requests supported funeral honors for deceased veterans. with each passing day we are a day closer to the pandemic being behind us. though it may seem far off, there will come a time when covid- is no longer the threat that it is today, and the pandemic of will be discussed in the context of history. when that time comes, the mission essential staff of nprc will be able to look back with pride and know that during this unprecedented crisis, when their country most needed them, they looked beyond their personal well-being to serve others in the best way they were able. as archivist of the united states, i applaud you for your commitment to the important work of the national archives, and as a navy veteran whose service records are held at nprc, i thank you for your unwavering support to america’s veterans. link to post | language: english contribute to the fsu community covid project posted on august , from illuminations masks sign, contributed by lorraine mon, view this item in the digital library here students, faculty, and alumni! heritage & university archives is collecting stories and experiences from the fsu community during covid- . university life during a pandemic will be studied by future scholars. during this pandemic, we have received requests surrounding the flu pandemic. unfortunately, not many documents describing these experiences survive in the archive.  to create a rich record of life in these unique times we are asking the fsu community to contribute their thoughts, experiences, plans, and photographs to the archive. working from home, contributed by shaundra lee, view this time in the digital library here how did covid- affect your summer? tell us about your plans for fall. how did covid- change your plans for classes? upload photographs of your dorm rooms or your work from home set ups. if you’d like to see examples of what people have already contributed, please see the collection on diginole. you can add your story to the project here. link to post | language: english creative fellowship – call for proposals posted on august , from notes for bibliophiles ppl is now accepting proposals for our creative fellowship! we’re looking for an artist working in illustration or two-dimensional artwork to create new work related to the theme of our exhibition, tomboys. view the full call for proposals, including application instructions, here. the application deadline is october , april , *. *this deadline has shifted since we originally posted this call for proposals! the fellowship, and the exhibition & program series, have both been shifted forward by six months due to the coronavirus. updated deadlines and timeline in the call for proposals! link to post | language: english friday art blog: still life in the collection posted on august , from culture on campus welcome to our new regular blog slot, the ‘friday art blog’. we look forward to your continued company over the next weeks and months. you can return to the art collection website here, and search our entire permanent collection here. pears by jack knox (oil on board, ) this week we are taking a look at some of the still life works of art in the permanent collection. ‘still life’ (or ‘nature morte’ as it is also widely known) refers to the depiction of mostly inanimate subject matter. it has been a part of art from the very earliest days, from thousands of years ago in ancient egypt, found also on the walls in st century pompeii, and featured in illuminated medieval manuscripts. during the renaissance, when it began to gain recognition as a genre in its own right, it was adapted for religious purposes. dutch golden age artists in particular, in the early th century, depicted objects which had a symbolic significance. the still life became a moralising meditation on the brevity of life. and the vanity of the acquisition of possessions. but, with urbanization and the rise of a middle class with money to spend, it also became fashionable simply as a celebration of those possessions – in paintings of rare flowers or sumptuous food-laden table tops with expensive silverware and the best china. the still life has remained a popular feature through many modern art movements. artists might use it as an exercise in technique (much cheaper than a live model), as a study in colour, form, or light and shade, or as a meditation in order to express a deeper mood. or indeed all of these. the works collected by the university of stirling art collection over the past fifty years reflect its continuing popularity amongst artists and art connoisseurs alike. bouteille et fruits by henri hayden (lilthograph, / , ) in the modern era the still life featured in the post impressionist art of van gogh, cezanne and picasso. henri hayden trained in warsaw, but moved to paris in where cezanne and cubism were influences. from he rejected this aesthetic and developed a more figurative manner, but later in life there were signs of a return to a sub-cubist mannerism in his work, and as a result the landscapes and still lifes of his last years became both more simplified and more definitely composed than the previous period, with an elegant calligraphy. they combine a new richness of colour with lyrical melancholy. meditation and purity of vision mark the painter’s last years. black lace by anne redpath (gouache, ) anne redpath is best known for her still lifes and interiors, often with added textural interest, and also with the slightly forward-tilted table top, of which this painting is a good example. although this work is largely monochrome it retains the fascination the artist had in fabric and textiles – the depiction of the lace is enhanced by the restrained palette. untitled still life by euan heng (linocut, / , ) while euan heng’s work is contemporary in practice his imagery is not always contemporary in origin. he has long been influenced by italian iconography, medieval paintings and frescoes. origin of a rose by ceri richards (lithograph, / , ) in ceri richards’ work there is a constant recurrence of visual symbols and motifs always associated with the mythic cycles of nature and life. these symbols include rock formations, plant forms, sun, moon and seed-pods, leaf and flower. these themes refer to the cycle of human life and its transience within the landscape of earth. still life, summer by elizabeth blackadder (oil on canvas, ) this is a typical example of one of elizabeth blackadder’s ‘flattened’ still life paintings, with no perspective. works such as this retain the form of the table, with the top raised to give the fullest view. broken cast by david donaldson (oil on canvas , ) david donaldson was well known for his still lifes and landscape paintings as well as literary, biblical and allegorical subjects. flowers for fanny by william mactaggart oil on board, william mactaggart typically painted landscapes, seascapes and still lifes featuring vases of flowers. these flowers, for his wife, fanny aavatsmark, are unusual for not being poppies, his most commonly painted flower. cake by fiona watson (digital print, / , ) we end this blog post with one of the most popular still lifes in the collection. this depiction of scottish classic the tunnock’s teacake is a modern take on the still life. it is a firm favourite whenever it is on display. image by julie howden link to post | language: english solar energy: a brief look back posted on august , from illuminations in the early ’s the united states was in the midst of an energy crisis. massive oil shortages and high prices made it clear that alternative ideas for energy production were needed and solar power was a clear front runner. the origins of the solar cell in the united states date back to inventor charles fritz in the ’s, and the first attempts at harvesting solar energy for homes, to the late ’s. in , the state of florida put it’s name in the ring to become the host of the national solar energy research institute. site proposal for the national solar energy research institute. claude pepper papers s. b. f. with potential build sites in miami and cape canaveral, the latter possessing the added benefit of proximity to nasa, the florida solar energy task force, led by robert nabors and endorsed by representative pepper, felt confident. the state made it to the final rounds of the search before the final location of golden, colorado was settled upon, which would open in . around this same time however ( ), the florida solar energy center was established at the university of central florida. the claude pepper papers contain a wealth of information on florida’s efforts in the solar energy arena from the onset of the energy crisis, to the late ’s. carbon copy of correspondence between claude pepper and robert l. nabors regarding the cape canaveral proposed site for the national solar research institute. claude pepper papers s. b. f. earlier this year, “tallahassee solar ii”, a new solar energy farm, began operating in florida’s capitol city.  located near the tallahassee international airport, it provides electricity for more than , homes in the leon county area. with the steady gains that the state of florida continues to make in the area of solar energy expansion, it gets closer to fully realizing its nickname, “the sunshine state.” link to post | language: english (c)istory lesson posted on august , from illuminations our next submission is from rachel duke, our rare books librarian, who has been with special collections for two years. this project was primarily geared towards full-time faculty and staff, so i chose to highlight her contribution to see what a full-time faculty’s experience would be like looking through the catalog. frontispiece and title page, salome, . image from https://collection.cooperhewitt.org/objects/ / the item she chose was salome, originally written in french by oscar wilde, then translated into english, as her object. while this book does not explicitly identify as a “queer text,” wilde has become canonized in queer historical literature. in the first edition of the book, there is even a dedication to his lover, lord alfred bruce douglas, who helped with the translation. while there are documented historical examples of what we would refer to today as “queerness,” (queer meaning non-straight) there is still no demarcation of his queerness anywhere in the catalog record. although the author is not necessarily unpacking his own queer experiences in the text, “both [salome’s] author and its legacy participate strongly in queer history” as duke states in her submission.  oscar wilde and lord alfred bruce douglas even though wilde was in a queer relationship with lord alfred bruce douglas, and has been accepted into the queer canon, why doesn’t his catalog record reflect that history? well, a few factors come into play. one of the main ones is an aversion to retroactively labeling historical figures. since we cannot confirm which modern label would fit wilde, we can’t necessarily outright label him as gay. how would a queer researcher like me go about finding authors and artists from the past who are connected with queer history? it is important to acknowledge lgbtq+ erasure when discussing this topic. since the lgbtq+ community has historically been marginalized, documentation of queerness is hard to come by because: people did not collect, and even actively erased, queer and trans histories. lgbtq+ history has been passed down primarily as an oral tradition.  historically, we cannot confirm which labels people would have identified with. language and social conventions change over time. so while we view and know someone to be queer, since it is not in official documentation we have no “proof.” on the other hand, in some cultures, gay relations were socially acceptable. for example, in the middle ages, there was a legislatively approved form of same-sex marriage, known as affrèrement. this example is clearly labeled as *gay* in related library-based description because it was codified that way in the historical record. by contrast, shakespeare’s sonnets, which (arguably) use queer motifs and themes, are not labeled as “queer” or “gay.” does queer content mean we retroactively label the author queer? does the implication of queerness mean we should make the text discoverable under queer search terms? cartoon depicting oscar wilde’s visit to san francisco. by george frederick keller – the wasp, march , . personally, i see both sides. as someone who is queer, i would not want a random person trying to retroactively label me as something i don’t identify with. on the other hand, as a queer researcher, i find it vital to have access to that information. although they might not have been seen as queer in their time period, their experiences speak to queer history. identities and people will change, which is completely normal, but as a group that has experienced erasure of their history, it is important to acknowledge all examples of historical queerness as a proof that lgbtq+ individuals have existed throughout time. how do we responsibly and ethically go about making historical queerness discoverable in our finding aids and catalogs? click here to see some more historical figures you might not have known were lgbtq+. link to post | language: english post navigation ← older posts about archivesblogs archivesblogs syndicates content from weblogs about archives and archival issues and then makes the content available in a central location in a variety of formats.more info.   languages deutsch english español français italiano nederlands nihongo (日本語) العربية syndicated blogs ????????? blog? a lively experiment a repository for bottled monsters a view to hugh academic health center archives adventures in records management african american studies at beinecke library annotations: the neh preservation project aotus archaeology archives oxford archivagando archival science / ??? ??????? archivalia archiveros españoles en la función pública (aefp) archives and auteurs archives and special collections archives d’assy archives forum archives gig archives hub blog archives outside archives, records and artefacts archivesinfo archivesnext archivistica e dintorni archivium sancti iacobi archivólogo – blog de archivo – lic. carmen marín archivónomo.bit arkivformidling around the d authenticity beaver archivist blog bloggers@brooklynmuseum » libraries & archives bogdan's archival blog — blog de arhivist born digital archives (aims project) brandeis special collections spotlight calames – le blog consultores documentales cultural compass culture on campus daily searchivist de digitale archivaris depotdrengen digital library of georgia digitization discontents dub collections endangered archives blog ephemeral archives f&m archives & special collections fil d'ariane frei – geschichtspuls fresh pickin's futurearch, or the future of archives… hanging together helen morgan historical notes illuminations in the mailbox inside the chs inside the gates keeping time l’affaire makropoulos l’archivista la tribune des archives livejournal archivists lsu libraries special collections blog m.e. grenander department of special collections and archives mit libraries news » archives + mit history modern books and manuscripts mudd manuscript library blog national union of women teachers nc miscellany nccdhistory new archivist new york state archives news and events news – litwin books & library juice press notes for bibliophiles o arquivista old things with stories open beelden order from chaos out of the box out of the box pacific northwest features paulingblog peeling back the bark poetry at beinecke library posts on mark a. matienzo practical archivist practical e-records presbyterian research ratilburg readyresources reclamation & representation records management futurewatch records mgmt & archiving richard b. russell library for political research and studies room cabinet of curiosities sdsu special collections: new acquisitions, events, and highlights from our collections special collections blog special collections – the university of chicago library news special collections – uga libraries news & events special collections – utc library spellbound blog stacked five high state library of massachusetts state records office of western australia the anarchivist the autry blog the back table the butler center for arkansas studies the charleston archive the consecrated eminence the devil's tale the last campaign the legacy center the posterity project the quantum archivist the top shelf the visible archive touchable archives transforming classification trinity university special collections and archives twin cities archives round table unc greensboro digital collections vault vpro radio archief webarchivists webarchivists (fr) what the fonds? what's cool at hoole what’s on the th floor? wnyc archives & preservation you ought to be ashamed proudly powered by wordpress none none none none none disruptive library technology jester disruptive library technology jester we're disrupted, we're librarians, and we're not going to take it anymore more thoughts on pre-recording conference talks over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion about recording talks to fill in gaps—positive and negative—about the concept, and i was not disappointed. i’m particularly thankful to lisa janicke hinchliffe and andromeda yelton along with jason griffey, junior tidal, and edward lim junhao for generously sharing their thoughts. daniel s and kate deibel also commented on the code lib slack team. i added to the previous article’s bullet points and am expanding on some of the issues here. i’m inviting everyone mentioned to let me know if i’m mischaracterizing their thoughts, and i will correct this post if i hear from them. (i haven’t found a good comments system to hook into this static site blog.) pre-recorded talks limit presentation format lisa janicke hinchliffe made this point early in the feedback: @datag for me downside is it forces every session into being a lecture. for two decades cfps have emphasized how will this season be engaging/not just a talking head? i was required to turn workshops into talks this year. even tho tech can do more. not at all best pedagogy for learning— lisa janicke hinchliffe (@lisalibrarian) april , jason described the “flipped classroom” model that he had in mind as the nisoplus program was being developed. the flipped classroom model is one where students do the work of reading material and watching lectures, then come to the interactive time with the instructors ready with questions and comments about the material. rather than the instructor lecturing during class time, the class time becomes a discussion about the material. for nisoplus, “the recording is the material the speaker and attendees are discussing” during the live zoom meetings. in the previous post, i described how the speaker could respond in text chat while the recording replay is beneficial. lisa went on to say: @datag q+a is useful but isn't an interactive session. to me, interactive = participants are co-creating the session, not watching then commenting on it.— lisa janicke hinchliffe (@lisalibrarian) april , she described an example: the ssp preconference she ran at chs. i’m paraphrasing her tweets in this paragraph. the preconference had a short keynote and an “oprah-style” panel discussion (not pre-prepared talks). this was done live; nothing was recorded. after the panel, people worked in small groups using zoom and a set of google slides to guide the group work. the small groups reported their discussions back to all participants. andromeda points out (paraphrasing twitter-speak): “presenters will need much more— and more specialized—skills to pull it off, and it takes a lot more work.” and lisa adds: “just so there is no confusion … i don’t think being online makes it harder to do interactive. it’s the pre-recording. interactive means participants co-create the session. a pause to chat isn’t going to shape what comes next on the recording.” increased technical burden on speakers and organizers @thatandromeda @datag totally agree on this. i had to pre-record a conference presentation recently and it was a terrible experience, logistically. i feel like it forces presenters to become video/sound editors, which is obviously another thing to worry about on top of content and accessibility.— junior tidal (@juniortidal) april , andromeda also agreed with this: “i will say one of the things i appreciated about niso is that @griffey did all the video editing, so i was not forced to learn how that works.” she continued, “everyone has different requirements for prerecording, and in [code lib’s] case they were extensive and kept changing.” and later added: “part of the challenge is that every conference has its own tech stack/requirements. if as a presenter i have to learn that for every conference, it’s not reducing my workload.” it is hard not to agree with this; a high-quality (stylistically and technically) recording is not easy to do with today’s tools. this is also a technical burden for meeting organizers. the presenters will put a lot of work into talks—including making sure the recordings look good; whatever playback mechanism is used has to honor the fidelity of that recording. for instance, presenters who have gone through the effort to ensure the accessibility of the presentation color scheme want the conference platform to display the talk “as i created it.” the previous post noted that recorded talks also allow for the creation of better, non-real-time transcriptions. lisa points out that presenters will want to review that transcription for accuracy, which jason noted adds to the length of time needed before the start of a conference to complete the preparations. increased logistical burden on presenters @thatandromeda @datag @griffey even if prep is no more than the time it would take to deliver live (which has yet to be case for me and i'm good at this stuff), it is still double the time if you are expected to also show up live to watch along with everyone else.— lisa janicke hinchliffe (@lisalibrarian) april , this is a consideration i hadn’t thought through—that presenters have to devote more clock time to the presentation because first they have to record it and then they have to watch it. (or, as andromeda added, “significantly more than twice the time for some people, if they are recording a bunch in order to get it right and/or doing editing.”) no. audience. reaction. @datag @griffey ) no. audience. reaction. i give a joke and no one laughs. was it funny? was it not funny? talks are a *performance* and a *relationship*; i'm getting energy off the audience, i'm switching stuff on the fly to meet their vibe. prerecorded/webinar is dead. feels like i'm bombing.— andromeda yelton (@thatandromeda) april , wow, yes. i imagine it would take a bit of imagination to get in the right mindset to give a talk to a small camera instead of an audience. i wonder how stand-up comedians are dealing with this as they try to put on virtual shows. andromeda summed this up: @datag @griffey oh and i mean ) i don't get tenure or anything for speaking at conferences and goodness knows i don't get paid. so the entire benefit to me is that i enjoy doing the talk and connect to people around it. prerecorded talk + f f conf removes one of these; online removes both.— andromeda yelton (@thatandromeda) april , also in this heading could be “no speaker reaction”—or the inability for subsequent speakers at a conference to build on something that someone said earlier. in the code lib slack team, daniel s noted: “one thing comes to mind on the pre-recording [is] the issue that prerecorded talks lose the ‘conversation’ aspect where some later talks at a conference will address or comment on earlier talks.” kate deibel added: “exactly. talks don’t get to spontaneously build off of each other or from other conversations that happen at the conference.” currency of information lisa points out that pre-recording talks before en event means there is a delay between the recording and the playback. in the example she pointed out, there was a talk at rluk that pre-recorded would have been about the university of california working on an open access deal with elsevier; live, it was able to be “the deal we announced earlier this week”. conclusions? near the end of the discussion, lisa added: @datag @griffey @thatandromeda i also recommend going forward that the details re what is required of presenters be in the cfp. it was one thing for conferences that pivoted (huge effort!) but if you write the cfp since the pivot it should say if pre-record, platform used, etc.— lisa janicke hinchliffe (@lisalibrarian) april , …and andromeda added: “strong agree here. i understand that this year everyone was making it up as they went along, but going forward it’d be great to know that in advance.” that means conferences will need to take these needs into account well before the call for proposals (cfp) is published. a conference that is thinking now about pre-recording their talks must work through these issues and set expectations with presenters early. as i hoped, the twiter replies tempered my eagerness for the all-recorded style with some real-world experience. there could be possibilities here, but adapting face-to-face meetings to a world with less travel won’t be simple and will take significant thought beyond the issues of technology platforms. edward lim junhao summarized this nicely: “i favor unpacking what makes up our prof conferences. i’m interested in recreating that shared experience, the networking, & the serendipity of learning sth you didn’t know. i feel in-person conferences now have to offer more in order to justify people traveling to attend them.” related, andromeda said: “also, for a conf that ultimately puts its talks online, it’s critical that it have something beyond content delivery during the actual conference to make it worth registering rather than just waiting for youtube. realtime interaction with the speaker is a pretty solid option.” if you have something to add, reach out to me on twitter. given enough responses, i’ll create another summary. let’s keep talking about what that looks like and sharing discoveries with each other. the tree of tweets it was a great discussion, and i think i pulled in the major ideas in the summary above. with some guidance from ed summers, i’m going to embed the twitter threads below using treeverse by paul butler. we might be stretching the boundaries of what is possible, so no guarantees that this will be viewable for the long term. should all conference talks be pre-recorded? the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and conference organizers. should all talks be pre-recorded, even when we are back face-to-face? note! after i posted a link to this article on twitter, there was a great response of thoughtful comments. i've included new bullet points below and summarized the responses in another blog post. as an entirely virtual conference, i think we can call code lib a success. success ≠ perfect, of course, and last week the conference coordinating team got together on a zoom call for a debriefing session. we had a lengthy discussion about what we learned and what we wanted to take forward to the conference, which we’re anticipating will be something with a face-to-face component. that last sentence was tough to compose: “…will be face-to-face”? “…will be both face-to-face and virtual”? (or another fully virtual event?) truth be told, i don’t think we know yet. i think we know with some certainty that the covid pandemic will become much more manageable by this time next year—at least in north america and europe. (code lib draws from primarily north american library technologists with a few guests from other parts of the world.) i’m hearing from higher education institutions, though, that travel is going to be severely curtailed…if not for health risk reasons, then because budgets have been slashed. so one has to wonder what a conference will look like next year. i’ve been to two online conferences this year: nisoplus and code lib. both meetings recorded talks in advance and started playback of the recordings at a fixed point in time. this was beneficial for a couple of reasons. for organizers and presenters, pre-recording allowed technical glitches to be worked through without the pressure of a live event happening. technology is not nearly perfect enough or ubiquitously spread to count on it working in real-time. nisoplus also used the recordings to get transcribed text for the videos. (code lib used live transcriptions on the synchronous playback.) attendees and presenters benefited from pre-recording because the presenters could be in the text chat channel to answer questions and provide insights. having the presenter free during the playback offers new possibilities for making talks more engaging: responding in real-time to polls, getting forehand knowledge of topics for subsequent real-time question/answer sessions, and so forth. the synchronous playback time meant that there was a point when (almost) everyone was together watching the same talk—just as in face-to-face sessions. during the code lib conference coordinating debrief call, i asked the question: “if we saw so many benefits to pre-recording talks, do we want to pre-record them all next year?” in addition to the reasons above, pre-recorded talks benefit those who are not comfortable speaking english or are first-time presenters. (they have a chance to re-do their talk as many times as they need in a much less stressful environment.) “live” demos are much smoother because a recording can be restarted if something goes wrong. each year, at least one presenter needs to use their own machine (custom software, local development environment, etc.), and swapping out presenter computers in real-time is risky. and it is undoubtedly easier to impose time requirements with recorded sessions. so why not pre-record all of the talks? i get it—it would be different to sit in a ballroom watching a recording play on big screens at the front of the room while the podium is empty. but is it so different as to dramatically change the experience of watching a speaker at a podium? in many respects, we had a dry-run of this during code lib . it was at the early stages of the coming lockdowns when institutions started barring employee travel, and we had to bring in many presenters remotely. i wrote a blog post describing the setup we used for remote presenters, and at the end, i said: i had a few people comment that they were taken aback when they realized that there was no one standing at the podium during the presentation. some attendees, at least, quickly adjusted to this format. for those with the means and privilege of traveling, there can still be face-to-face discussions in the hall, over meals, and social activities. for those that can’t travel (due to risks of traveling, family/personal responsibilities, or budget cuts), the attendee experience is a little more level—everyone is watching the same playback and in the same text backchannels during the talk. i can imagine a conference tool capable of segmenting chat sessions during the talk playback to “tables” where you and close colleagues can exchange ideas and then promote the best ones to a conference-wide chat room. something like that would be beneficial as attendance grows for events with an online component, and it would be a new form of engagement that isn’t practical now. there are undoubtedly reasons not to pre-record all session talks (beyond the feels-weird-to-stare-at-an-unoccupied-ballroom-podium reasons). during the debriefing session, one person brought up that having all pre-recorded talks erodes the justification for in-person attendance. i can see a manager saying, “all of the talks are online…just watch it from your desk. even your own presentation is pre-recorded, so there is no need for you to fly to the meeting.” that’s legitimate. so if you like bullet points, here’s how it lays out. pre-recording all talks is better for: accessibility: better transcriptions for recorded audio versus real-time transcription (and probably at a lower cost, too) engagement: the speaker can be in the text chat during playback, and there could be new options for backchannel discussions better quality: speakers can re-record their talk as many times as needed closer equality: in-person attendees are having much the same experience during the talk as remote attendees downsides for pre-recording all talks: feels weird: yeah, it would be different erodes justification: indeed a problem, especially for those for whom giving a speech is the only path to getting the networking benefits of face-to-face interaction limits presentation format: it forces every session into being a lecture. for two decades cfps have emphasized how will this season be engaging/not just a talking head? (lisa janicke hinchliffe) increased technical burden on speaker and organizers: conference organizers asking presenters to do their own pre-recording is a barrier (junior tidal), and organizers have added new requirements for themselves no audience feedback: pre-recording forces the presenter into an unnatural state relative to the audience (andromeda yelton) currency of information: pre-recording talks before en event naturally introduces a delay between the recording and the playback. (lisa janicke hinchliffe) i’m curious to hear of other reasons, for and against. reach out to me on twitter if you have some. the covid- pandemic has changed our society and will undoubtedly transform it in ways that we can’t even anticipate. is the way that we hold professional conferences one of them? can we just pause for a moment and consider the decades of work and layers of technology that make a modern teleconference call happen? for you younger folks, there was a time when one couldn’t assume the network to be there. as in: the operating system on your computer couldn’t be counted on to have a network stack built into it. in the earliest years of my career, we were tickled pink to have macintoshes at the forefront of connectivity through gatorboxes. go read the first paragraph of that wikipedia article on gatorboxes…tcp/ip was tunneled through localtalk running over phonenet on unshielded twisted pairs no faster than about kbit/second. (and we loved it!) now the network is expected; needing to know about tcp/ip is pushed so far down the stack as to be forgotten…assumed. sure, the software on top now is buggy and bloated—is my zoom client working? has zoom’s service gone down?—but the network…we take that for granted. &# ; user behavior access controls at a library proxy server are okay earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. what had riled up the people i follow on twitter was the first presentation: “security collaboration for library resource access” by cory roach, the chief information security officer at the university of utah. many of the tweets and articles linked in tweets were about a proposal for a new round of privacy-invading technology coming from content providers as a condition of libraries subscribing to publisher content. one of the voices that i trust was urging caution: i highly recommend you listen to the talk, which was given by a university cio, and judge if this is a correct representation. fwiw, i attended the event and it is not what i took away.— lisa janicke hinchliffe (@lisalibrarian) november , as near as i can tell, much of the debate traces back to this article: scientific publishers propose installing spyware in university libraries to protect copyrights - coda story https://t.co/rtcokiukbf— open access tracking project (@oatp) november , the article describes cory’s presentation this way: one speaker proposed a novel tactic publishers could take to protect their intellectual property rights against data theft: introducing spyware into the proxy servers academic libraries use to allow access to their online services, such as publishers’ databases. the “spyware” moniker is quite scary. it is what made me want to seek out the recording from the webinar and hear the context around that proposal. my understanding (after watching the presentation) is that the proposal is not nearly as concerning. although there is one problematic area—the correlation of patron identity with requested urls—overall, what is described is a sound and common practice for securing web applications. to the extent that it is necessary to determine a user’s identity before allowing access to licensed content (an unfortunate necessity because of the state of scholarly publishing), this is an acceptable proposal. (through the university communications office, corey published a statement about the reaction to his talk.) in case you didn’t know, a web proxy server ensures the patron is part of the community of licensed users, and the publisher trusts requests that come through the web proxy server. the point of cory’s presentation is that the username/password checking at the web proxy server is a weak form of access control that is subject to four problems: phishing (sending email to tricking a user into giving up their username/password) social engineering (non-email ways of tricking a user into giving up their username/password) credential reuse (systems that are vulnerable because the user used the same password in more than one place) hactivism (users that intentionally give out their username/password so others can access resources) right after listing these four problems, cory says: “but anyway we look at it, we can safely say that this is primarily a people problem and the technology alone is not going to solve that problem. technology can help us take reasonable precautions… so long as the business model involves allowing access to the data that we’re providing and also trying to protect that same data, we’re unlikely to stop theft entirely.” his proposal is to place “reasonable precautions” in the web proxy server as it relates to the campus identity management system. this is a slide from his presentation: slide from presentation by cory roach i find this layout (and lack of labels) somewhat confusing, so i re-imagined the diagram as this: revised 'modern library design' the core of cory’s presentation is to add predictive analytics and per-user blocking automation to the analysis of the log files from the web proxy server and the identity management server. by doing so, the university can react quicker to compromised usernames and passwords. in fact, it could probably do so more quicker than the publisher could do with its own log analysis and reporting back to the university. where cory runs into trouble is this slide: slide from presentation by cory roach in this part of the presentation, cory describes the kinds of patron-identifying data that the university could-or-would collect and analyze to further the security effort. in search engine optimization, these sorts of data points are called “signals” and are used to improve the relevance of search results; perhaps there is an equivalent term in access control technology. but for now, i’ll just call them “signals”. there are some problems in gathering these signals—most notably the correlation between user identity and “urls requested”. in the presentation, he says: “you can also move over to behavioral stuff. so it could be, you know, why is a pharmacy major suddenly looking up a lot of material on astrophysics or why is a medical professional and a hospital suddenly interested in internal combustion. things that just don’t line up and we can identify fishy behavior.” it is core to the library ethos that we make our best effort to not track what a user is interested in—to not build a profile of a user’s research unless they have explicitly opted into such data collection. as librarians, we need to gracefully describe this professional ethos and work that into the design of the systems used on campus (and at the publishers). still, there is much to be said for using some of the other signals to analyze whether a particular request is from an authorized community member. for instance, cory says: “we commonly see this user coming in from the us and today it’s coming in from botswana. you know, has there been enough time that they could have traveled from the us to botswana and actually be there? have they ever access resources from that country before is there residents on record in that country?” the best part of what cory is proposing is that the signals’ storage and processing is at the university and not at the publisher. i’m not sure if cory knew this, but a recent version of ezproxy added a usagelimit directive that builds in some of these capabilities. it can set per-user limits based on the number of page requests or the amount of downloaded information over a specified interval. one wonders if somewhere in oclc’s development queue is the ability to detect ip addresses from multiple networks (geographic detection) and browser differences across a specified interval. still, pushing this up to the university’s identity provider allows for a campus-wide view of the signals…not just the ones coming through the library. also, in designing the system, there needs to be clarity about how the signals are analyzed and used. i think cory knew this as well: “we do have to be careful about not building bias into the algorithms.” yeah, the need for this technology sucks. although it was the tweet to the coda story about the presentation that blew up, the thread of the story goes through techdirt to a tangential paragraph from netzpolitik in an article about germany’s licensing struggle with elsevier. with this heritage, any review of the webinar’s ideas are automatically tainted by the disdain the library community in general has towards elsevier. it is reality—an unfortunate reality, in my opinion—that the traditional scholarly journal model has publishers exerting strong copyright protection on research and ideas behind paywalls. (wouldn’t it be better if we poured the anti-piracy effort into improving scholarly communication tools in an open access world? yes, but that isn’t the world we live in.) almost every library deals with this friction by employing a web proxy server as an agent between the patron and the publisher’s content. the netzpolitik article says: …but relies on spyware in the fight against „cybercrime“ of course, sci-hub and other shadow libraries are a thorn in elsevier’s side. since they have existed, libraries at universities and research institutions have been much less susceptible to blackmail. their staff can continue their research even without a contract with elsevier. instead of offering transparent open access contracts with fair conditions, however, elsevier has adopted a different strategy in the fight against shadow libraries. these are to be fought as „cybercrime“, if necessary also with technological means. within the framework of the „scholarly networks security initiative (snsi)“, which was founded together with other large publishers, elsevier is campaigning for libraries to be upgraded with security technology. in a snsi webinar entitled „cybersecurity landscape – protecting the scholarly infrastructure“*, hosted by two high-ranking elsevier managers, one speaker recommended that publishers develop their own proxy or a proxy plug-in for libraries to access more (usage) data („develop or subsidize a low cost proxy or a plug-in to existing proxies“). with the help of an „analysis engine“, not only could the location of access be better narrowed down, but biometric data (e.g. typing speed) or conspicuous usage patterns (e.g. a pharmacy student suddenly interested in astrophysics) could also be recorded. any doubts that this software could also be used—if not primarily—against shadow libraries were dispelled by the next speaker. an ex-fbi analyst and it security consultant spoke about the security risks associated with the use of sci-hub. the other commentary that i saw was along similar lines: [is the snsi the new prism? bjoern.brembs.blog](http://bjoern.brembs.net/ / /is-the-snsi-the-new-prism/) [academics band together with publishers because access to research is a cybercrime chorasimilarity](https://chorasimilarity.wordpress.com/ / / /academics-band-together-with-publishers-because-access-to-research-is-a-cybercrime/) [whois behind snsi & getftr? motley marginalia](https://csulb.edu/~ggardner/ / / /snsi-getftr/) let’s face it: any friction beyond follow-link-to-see-pdf is more friction than a researcher deserves. i doubt we would design a scholarly communication system this way were we to start from scratch. but the system is built on centuries of evolving practice, organizations, and companies. it really would be a better world if we didn’t have to spend time and money on scholarly publisher paywalls. and i’m grateful for the open access efforts that are pivoting scholarly communications into an open-to-all paradigm. that doesn’t negate the need to provide better options for content that must exist behind a paywall. so what is this snsi thing? the webinar where cory presented was the first mention i’d seen of a new group called the scholarly networks security initiative (snsi). snsi is the latest in a series of publisher-driven initiatives to reduce the paywall’s friction for paying users or library patrons coming from licensing institutions. getftr (my thoughts) and seamless access (my thoughts). (disclosure: i’m serving on two working groups for seamless access that are focused on making it possible for libraries to sensibly and sanely integrate the goals of seamless access into campus technology and licensing contracts.) interestingly, while the seamless access initiative is driven by a desire to eliminate web proxy servers, this snsi presentation upgrades a library’s web proxy server and makes it a more central tool between the patron and the content. one might argue that all access on campus should come through the proxy server to benefit from this kind of access control approach. it kinda makes one wonder about the coordination of these efforts. still, snsi is on my radar now, and i think it will be interesting to see what the next events and publications are from this group. as a cog in the election system: reflections on my role as a precinct election official i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democracy. it is a journal entry about how it felt to be a citizen doing what i could do to make other citizens’ voices be heard. it needed to be written down before the memories and emotions are erased by time and naps. yesterday i was a precinct election officer (peo—a poll worker) for franklin county—home of columbus, ohio. it was my third election as a peo. the first was last november, and the second was the election aborted by the onset of the coronavirus in march. (not sure that second one counts.) it was my first as a voting location manager (vlm), so i felt the stakes were high to get it right. would there be protests at the polling location? would i have to deal with people wearing candidate t-shirts and hats or not wearing masks? would there be a crash of election observers, whether official (scrutinizing our every move) or unofficial (that i would have to remove)? it turns out the answer to all three questions was “no”—and it was a fantastic day of civic engagement by peos and voters. there were well-engineered processes and policies, happy and patient enthusiasm, and good fortune along the way. this story is going to turn out okay, but it could have been much worse. because of the complexity of the election day voting process, last year franklin county started allowing peos to do some early setup on monday evenings. the early setup started at o’clock. i was so anxious to get it right that the day before i took the printout of the polling room dimensions from my vlm packet, scanned it into omnigraffle on my computer, and designed a to-scale diagram of what i thought the best layout would be. the real thing only vaguely looked like this, but it got us started. what i imagined our polling place would look like we could set up tables, unpack equipment, hang signs, and other tasks that don’t involve turning on machines or breaking open packets of ballots. one of the early setup tasks was updating the voters’ roster on the electronic poll pads. as happened around the country, there was a lot of early voting activity in franklin county, so the update file must have been massive. the electronic poll pads couldn’t handle the update; they hung at step -of- for over an hour. i called the board of elections and got ahold of someone in the equipment warehouse. we tried some of the simple troubleshooting steps, and he gave me his cell phone number to call back if it wasn’t resolved. by : , everything was done except for the poll pad updates, and the other peos were wandering around. i think it was o’clock when i said everyone could go home while the two voting location deputies and i tried to get the poll pads working. i called the equipment warehouse and we hung out on the phone for hours…retrying the updates based on the advice of the technicians called in to troubleshoot. i even “went rogue” towards the end. i searched the web for the messages on the screen to see if anyone else had seen the same problem with the poll pads. the electronic poll pad is an ipad with a single, dedicated application, so i even tried some ipad reset options to clear the device cache and perform a hard reboot. nothing worked—still stuck at step -of- . the election office people sent us home at o’clock. even on the way out the door, i tried a rogue option: i hooked a portable battery to one of the electronic polling pads to see if the update would complete overnight and be ready for us the next day. it didn’t, and it wasn’t. text from board of elections polling locations in ohio open at : in the morning, and peos must report to their sites by : . so i was up at : for a quick shower and packing up stuff for the day. early in the setup process, the board of elections sent a text that the electronic poll pads were not going to be used and to break out the “bumper packets” to determine a voter’s eligibility to vote. at some point, someone told me what “bumper” stood for. i can’t remember, but i can imagine it is back-up-something-something. “never had to use that,” the trainers told me, but it is there in case something goes wrong. well, it is the year , so was something going to go wrong? fortunately, the roster judges and one of the voting location deputies tore into the bumper packet and got up to speed on how to use it. it is an old fashioned process: the voter states their name and address, the peo compares that with the details on the paper ledger, and then asks the voter to sign beside their name. with an actual pen…old fashioned, right? the roster judges had the process down to a science. they kept the queue of verified voters full waiting to use the ballot marker machines. the roster judges were one of my highlights of the day. and boy did the voters come. by the time our polling location opened at : in the morning, they were wrapped around two sides of the building. we were moving them quickly through the process: three roster tables for checking in, eight ballot-marking machines, and one ballot counter. at our peak capacity, i think we were doing to voters an hour. as good as we were doing, the line never seemed to end. the franklin county board of elections received a grant to cover the costs of two greeters outside that helped keep the line orderly. they did their job with a welcoming smile, as did our inside greeter that offered masks and a squirt of hand sanitizer. still, the voters kept back-filling that line, and we didn’t see a break until : . the peos serving as machine judges were excellent. this was the first time that many voters had seen the new ballot equipment that franklin county put in place last year. i like this new equipment: the ballot marker prints your choices on a card that it spits out. you can see and verify your choices on the card before you slide it into a separate ballot counter. that is reassuring for me, and i think for most voters, too. but it is new, and it takes a few extra moments to explain. the machine judges got the voters comfortable with the new process. and some of the best parts of the day were when they announced to the room that a first-time voter had just put their card into the ballot counter. we would all pause and cheer. the third group of peos at our location were the paper table judges. they handle all of the exceptions. someone wants to vote with a pre-printed paper ballot rather than using a machine? to the paper table! the roster shows that someone requested an absentee ballot? that voter needs to vote a “provisional” ballot that will be counted at the board of elections office if the absentee ballot isn’t received in the mail. the paper table judges explain that with kindness and grace. in the wrong location? the paper table judges would find the correct place. the two paper table peos clearly had experience helping voters with the nuances of election processes. rounding out the team were two voting location deputies (vld). by law, a polling location can’t have a vld and a voting location manager (vlm) of the same political party. that is part of the checks and balances built into the system. one vld had been a vlm at this location, and she had a wealth of history and wisdom about running a smooth polling location. for the other vld, this was his first experience as a precinct election officer, and he jumped in with both feet to do the visible and not-so-visible things that made for a smooth operation. he reminded me a bit of myself a year ago. my first peo position was as a voting location deputy last november. the pair handled a challenging curbside voter situation where it wasn’t entirely clear if one of the voters in the car was sick. i’d be so lucky to work with them again. the last two hours of the open polls yesterday were dreadfully dull. after the excitement of the morning, we may have averaged a voter every minutes for those last two hours. everyone was ready to pack it in early and go home. (polls in ohio close at : , so counting the hour early for setup and the half an hour for tear down, this was going to be a to hour day.) over the last hour, i gave the peos little tasks to do. at one point, i said they could collect the barcode scanners attached to the ballot markers. we weren’t using them anyway because the electronic poll pads were not functional. then, in stages (as it became evident that there was no final rush of voters), they could pack up one or two machines and put away tables. our second to last voter was someone in medical scrubs that just got off their shift. i scared our last voter because she walked up to the roster table at : : . thirty seconds later, i called out that the polls are closed (as i think a vlm is required to do), and she looked at me startled. (she got to vote, of course; that’s the rule.) she was our last voter; voters in our precinct that day. then our team packed everything up as efficiently as they had worked all day. we had put away the equipment and signs, done our final counts, closed out the ballot counter, and sealed the ballot bin. at : , we were done and waving goodbye to our host facility’s office manager. one of the vld rode along with me to the board of elections to drop off the ballots, and she told me of a shortcut to get there. we were among the first reporting results for franklin county. i was home again by a quarter of —exhausted but proud. i’m so happy that i had something to do yesterday. after weeks of concern and anxiety for how the election was going to turn out, it was a welcome bit of activity to ensure the election was held safely and that voters got to have their say. it was certainly more productive than continually reloading news and election results pages. the anxiety of being put in charge of a polling location was set at ease, too. i’m proud of our polling place team and that the voters in our charge seemed pleased and confident about the process. maybe you will find inspiration here. if you voted, hopefully it felt good (whether or not the result turned out as you wanted). if you voted for the first time, congratulations and welcome to the club (be on the look-out for the next voting opportunity…likely in the spring). if being a poll worker sounded like fun, get in touch with your local board of elections (here is information about being a poll worker in franklin county). democracy is participatory. you’ve got to tune in and show up to make it happen. certificate of appreciation running an all-online conference with zoom [post removed] this is an article draft that was accidentally published. i hope to work on a final version soon. if you really want to see it, i saved a copy on the internet archive wayback machine. with gratitude for the niso ann marie cunningham service award during the inaugural niso plus meeting at the end of february, i was surprised and proud to receive the ann marie cunningham service award. todd carpenter, niso’s executive director, let me know by tweet as i was not able to attend the conference. pictured in that tweet is my co-recipient, christine stohn, who serves niso with me as the co-chair of the information delivery and interchange topic committee. this got me thinking about what niso has meant to me. as i think back on it, my activity in niso spans at least four employers and many hours of standard working group meetings, committee meetings, presentations, and ballot reviews. niso ann marie cunningham service award i did not know ms cunningham, the award’s namesake. my first job started when she was the nfais executive director in the early s, and i hadn’t been active in the profession yet. i read her brief biography on the niso website: the ann marie cunningham service award was established in to honor nfais members who routinely went above and beyond the normal call of duty to serve the organization. it is named after ann marie cunningham who, while working with abstracting and information services such as biological abstracts and the institute for scientific information (both now part of niso-member clarivate analytics), worked tirelessly as an dedicated nfais volunteer. she ultimately served as the nfais executive director from to when she died unexpectedly. niso is pleased to continue to present this award to honor a niso volunteer who has shown the same sort of commitment to serving our organization. as i searched the internet for her name, i came across the proceedings of the nfais meeting, in which ms cunningham wrote the introduction with wendy wicks. these first sentences from some of the paragraphs of that introduction are as true today as they were then: in an era of rapidly expanding network access, time and distance no longer separate people from information. much has been said about the global promise of the internet and the emerging concept of linking information highways, to some people, “free” ways. what many in the networking community, however, seem to take for granted is the availability of vital information flowing on these high-speed links. i wonder what ms cunningham of would think of the information landscape today? hypertext linking has certainly taken off, if not taken over, the networked information landscape. how that interconnectedness has improved with the adaptation of print-oriented standards and the creation of new standards that match the native capabilities of the network. in just one corner of that space, we have the adoption of pdf as a faithful print replica and html as a common tool for displaying information. in another corner, marc has morphed into a communication format that far exceeds its original purpose of encoding catalog cards; we have an explosion of purpose-built metadata schemas and always the challenge of finding common ground in tools like dublin core and schema.org. we’ve seen several generations of tools and protocols for encoding, distributing, and combining data in new ways to reach users. and still we strive to make it better…to more easily deliver a paper to its reader—a dataset to its next experimenter—an idea to be built upon by the next generation. it is that communal effort to make a better common space for ideas that drives me forward. to work in a community at the intersection of libraries, publishers, and service providers is an exciting and fulfilling place to be. i’m grateful to my employers that have given me the ability to participate while bringing the benefits of that connectedness to my organizations. i was not able to be at niso plus to accept the award in person, but i was so happy to be handed it by jason griffey of niso about a week later during the code lib conference in pittsburgh. what made that even more special was to learn that jason created it on his own d printer. thank you to the new nfais-joined-with-niso community for honoring me with this service award. tethering a ubiquity network to a mobile hotspot i saw it happen. the cable-chewing device the contractor in the neighbor’s back yard with the ditch witch trencher burying a cable. i was working outside at the patio table and just about to go into a zoom meeting. then the internet dropped out. suddenly, and with a wrenching feeling in my gut, i remembered where the feed line was buried between the house and the cable company’s pedestal in the right-of-way between the properties. yup, he had just cut it. to be fair, the utility locator service did not mark the my cable’s location, and he was working for a different cable provider than the one we use. (there are three providers in our neighborhood.) it did mean, though, that our broadband internet would be out until my provider could come and run another line. it took an hour of moping about the situation to figure out a solution, then another couple of hours to put it in place: an iphone tethered to a raspberry pi that acted as a network bridge to my home network’s unifi security gateway p. network diagram with tethered iphone a few years ago i was tired of dealing with spotty consumer internet routers and upgraded the house to unifi gear from ubiquity. rob pickering, a college comrade, had written about his experience with the gear and i was impressed. it wasn’t a cheap upgrade, but it was well worth it. (especially now with four people in the household working and schooling from home during the covid- outbreak.) the unifi security gateway has three network ports, and i was using two: one for the uplink to my cable internet provider (wan) and one for the local area network (lan) in the house. the third port can be configured as another wan uplink or as another lan port. and you can tell the security gateway to use the second wan as a failover for the first wan (or as load balancing the first wan). so that is straight forward enough, but do i get the personal hotspot on the iphone to the second wan port? that is where the raspberry pi comes in. the raspberry pi is a small computer with usb, ethernet, hdmi, and audio ports. the version i had laying around is a raspberry pi —an older model, but plenty powerful enough to be the network bridge between the iphone and the home network. the toughest part was bootstrapping the operating system packages onto the pi with only the iphone personal hotspot as the network. that is what i’m documenting here for future reference. bootstrapping the raspberry pi the raspberry pi runs its own operating system called raspbian (a debian/linux derivative) as well as more mainstream operating systems. i chose to use the ubuntu server for raspberry pi instead of raspbian because i’m more familiar with ubuntu. i tethered my macbook pro to the iphone to download the ubuntu . . lts image and follow the instructions for copying that disk image to the pi’s microsd card. that allows me to boot the pi with ubuntu and a basic set of operating system packages. the challenge: getting the required networking packages onto the pi it would have been really nice to plug the iphone into the pi with a usb-lightning cable and have it find the tethered network. that doesn’t work, though. ubuntu needs at least the usbmuxd package in order to see the tethered iphone as a network device. that package isn’t a part of the disk image download. and of course i can’t plug my pi into the home network to download it (see first paragraph of this post). my only choice was to tether the pi to the iphone over wifi with a usb network adapter. and that was a bit of ubuntu voodoo. fortunately, i found instructions on configuring ubuntu to use a wpa-protected wireless network (like the one that the iphone personal hotspot is providing). in brief: sudo -i cd /root wpa_passphrase my_ssid my_ssid_passphrase > wpa.conf screen -q wpa_supplicant -dwext -iwlan -c/root/wpa.conf <control-a> c dhclient -r dhclient wlan explanation of lines: use sudo to get a root shell change directory to root’s home use the wpa_passphrase command to create a wpa.conf file. replace my_ssid with the wireless network name provided by the iphone (your iphone’s name) and my_ssid_passphrase with the wireless network passphrase (see the “wi-fi password” field in settings -> personal hotspot). start the screen program (quietly) so we can have multiple pseudo terminals. run the wpa_supplicant command to connect to the iphone wifi hotspot. we run this the foreground so we can see the status/error messages; this program must continue running to stay connected to the wifi network. use the screen hotkey to create a new pseudo terminal. this is control-a followed by a letter c. use dhclient to clear out any dhcp network parameters use dhclient to get an ip address from the iphone over the wireless network. now i was at the point where i could install ubuntu packages. (i ran ping www.google.com to verify network connectivity.) to install the usbmuxd and network bridge packages (and their prerequisites): apt-get install usbmuxd bridge-utils if your experience is like mine, you’ll get an error back: couldn't get lock /var/lib/dpkg/lock-frontend the ubuntu pi machine is now on the network, and the automatic process to install security updates is running. that locks the ubuntu package registry until it finishes. that took about minutes for me. (i imagine this varies based on the capacity of your tethered network and the number of security updates that need to be downloaded.) i monitored the progress of the automated process with the htop command and tried the apt-get command when it finished. if you are following along, now would be a good time to skip ahead to configuring the unifi security gateway if you haven’t already set that up. turning the raspberry pi into a network bridge with all of the software packages installed, i restarted the pi to complete the update: shutdown -r now while it was rebooting, i pulled out the usb wireless adapter from the pi and plugged in the iphone’s usb cable. the pi now saw the iphone as eth , but the network did not start until i went to the iphone to say that i “trust” the computer that it is plugged into. when i did that, i ran these commands on the ubuntu pi: dhclient eth brctl addbr iphonetether brctl addif iphonetether eth eth brctl stp iphonetether on ifconfig iphonetether up explanation of lines: get an ip address from the iphone over the usb interface add a network bridge (the iphonetether is an arbitrary string; some instructions simply use br for the zero-ith bridge) add the two ethernet interfaces to the network bridge turn on the spanning tree protocol (i don’t think this is actually necessary, but it does no harm) bring up the bridge interface the bridge is now live! thanks to amitkumar pal for the hints about using the pi as a network bridge. more details about the bridge networking software is on the debian wiki. note! i'm using a hardwired keyboard/monitor to set up the raspbery pi. i've heard from someone that was using ssh to run these commands, and the ssh connection would break off at brctl addif iphonetecther eth eth configuring the unifi security gateway i have a unifi cloud key, so i could change the configuration of the unifi network with a browser. (you’ll need to know the ip address of the cloud key; hopefully you have that somewhere.) i connected to my cloud key at https:// . . . : / and clicked through the self-signed certificate warning. first i set up a second wide area network (wan—your uplink to the internet) for the iphone personal hotspot: settings -> internet -> wan networks. select “create a new network”: network name: backup wan ipv connection type: use dhcp ipv connection types: use dhcpv dns server: . . . and . . . (cloudflare’s dns servers) load balancing: failover only the last selection is key…i wanted the gateway to only use this wan interfaces as a backup to the main broadband interface. if the broadband comes back up, i want to stop using the tethered iphone! second, assign the backup wan to the lan /wan port on the security gateway (devices -> gateway -> ports -> configure interfaces): port wan /lan network: wan speed/duplex: autonegotiate apply the changes to provision the security gateway. after about seconds, the security gateway failed over from “wan iface eth ” (my broadband connection) to “wan iface eth ” (my tethered iphone through the pi bridge). these showed up as alerts in the unifi interface. performance and results so i’m pretty happy with this setup. the family has been running simultaneous zoom calls and web browsing on the home network, and the performance has been mostly normal. web pages do take a little longer to load, but whatever zoom is using to dynamically adjust its bandwidth usage is doing quite well. this is chewing through the mobile data quota pretty fast, so it isn’t something i want to do every day. knowing that this is possible, though, is a big relief. as a bonus, the iphone is staying charged via the amp power coming through the pi. managing remote conference presenters with zoom bringing remote presenters into a face-to-face conference is challenging and fraught with peril. in this post, i describe a scheme using zoom that had in-person attendees forgetting that the presenter was remote! the code lib conference was this week, and with the covid- pandemic breaking through many individuals and institutions made decisions to not travel to pittsburgh for the meeting. we had an unprecedented nine presentations that were brought into the conference via zoom. i was chairing the livestream committee for the conference (as i have done for several years—skipping last year), so it made the most sense for me to arrange a scheme for remote presenters. with the help of the on-site a/v contractor, we were able to pull this off with minimal requirements for the remote presenter. list of requirements zoom pro accounts pc/mac with video output, as if you were connecting an external monitor (the “receiving zoom” computer) pc/mac (the “coordinator zoom” computer) usb audio interface hardwired network connection for the receiving zoom computer (recommended) the pro-level zoom accounts were required because we needed to run a group call for longer than minutes (to include setup time). and two were needed: one for the coordinator zoom machine and one for the dedicated receiving zoom machine. it would have been possible to consolidate the two zoom pro accounts and the two pc/mac machines into one, but we had back-to-back presenters at code lib, and i wanted to be able to help one remote presenter get ready while another was presenting. in addition to this equipment, the a/v contractor was indispensable in making the connection work. we fed the remote presenter’s video and audio from the receiving zoom computer to the contractor’s a/v switch through hdmi, and the contractor put the video on the ballroom projectors and audio through the ballroom speakers. the contractor gave us a selective audio feed of the program audio minus the remote presenter’s audio (so they wouldn’t hear themselves come back through the zoom meeting). this becomes a little clearer in the diagram below. physical connections and setup this diagram shows the physical connections between machines. the audio mixer and video switch were provided and run by the a/v contractor. the receiving zoom machine was the one that is connected to the a/v contractor’s video switch via an hdmi cable coming off the computer’s external monitor connection. in the receiving zoom computer’s control panel, we set the external monitor to mirror what was on the main monitor. the audio and video from the computer (i.e., the zoom call) went out the hdmi cable to the a/v contractor’s video switch. the a/v contractor took the audio from the receiving zoom computer through the video switch and added it to the audio mixer as an input channel. from there, the audio was sent out to the ballroom speakers the same way audio from the podium microphone was amplified to the audience. we asked the a/v contractor to create an audio mix that includes all of the audio sources except the receiving zoom computer (e.g., in-room microphones) and plugged that into the usb audio interface. that way, the remote presenter could hear the sounds from the ballroom—ambient laughter, questions from the audience, etc.—in their zoom call. (note that it was important to remove the remote presenter’s own speaking voice from this audio mix; there was a significant, distracting delay between the time the presenter spoke and the audio was returned to them through the zoom call.) we used a hardwired network connection to the internet, and i would recommend that—particularly with tech-heavy conferences that might overflow the venue wi-fi. (you don’t want your remote presenter’s zoom to have to compete with what attendees are doing.) be aware that the hardwired network connection will cost more from the venue, and may take some time to get functioning since this doesn’t seem to be something that hotels often do. in the zoom meeting, we unmuted the microphone and selected the usb audio interface as the microphone input. as the zoom meeting was connected, we made the meeting window full-screen so the remote presenter’s face and/or presentation were at the maximum size on the ballroom projectors. setting up the zoom meetings the two zoom accounts came from the open library foundation. (thank you!) as mentioned in the requirements section above, these were pro-level accounts. the two accounts were olf_host @openlibraryfoundation.org and olf_host @openlibraryfoundation.org. the olf_host account was used for the receiving zoom computer, and the olf_host account was used for the coordinator zoom computer. the zoom meeting edit page looked like this: this is for the “code lib remote presenter a” meeting with the primary host as olf_host @openlibraryfoundation.org. note these settings: a recurring meeting that ran from : am to : pm each day of the conference. enable join before host is checked in case the remote presenter got on the meeting before i did. record the meeting automatically in the cloud to use as a backup in case something goes wrong. alternative hosts is olf_host @openlibraryfoundation.org the “code lib remote presenter b” meeting was exactly the same except the primary host was olf_host , and olf_host was added as an alternative host. the meetings were set up with each other as the alternative host so that the coordinator zoom computer could start the meeting, seamlessly hand it off to the receiving zoom computer, then disconnect. preparing the remote presenter remote presenters were given this information: code lib will be using zoom for remote presenters. in addition to the software, having the proper audio setup is vital for a successful presentation. microphone: the best option is a headset or earbuds so a microphone is close to your mouth. built-in laptop microphones are okay, but using them will make it harder for the audience to hear you. speaker: a headset or earbuds are required. do not use your computer’s built-in speakers. the echo cancellation software is designed for small rooms and cannot handle the delay caused by large ballrooms. you can test your setup with a test zoom call. be sure your microphone and speakers are set correctly in zoom. also, try sharing your screen on the test call so you understand how to start and stop screen sharing. the audience will see everything on your screen, so quit/disable/turn-off notifications that come from chat programs, email clients, and similar tools. plan to connect to the zoom meeting minutes before your talk to work out any connection or setup issues. at the -minute mark before the remote presentation, i went to the ballroom lobby and connected to the designated zoom meeting for the remote presenter using the coordinator zoom computer. i used this checklist with each presenter: check presenter’s microphone level and sound quality (make sure headset/earbud microphone is being used!) check presenter’s speakers and ensure there is no echo test screen-sharing (start and stop) with presenter remind presenter to turn off notifications from chat programs, email clients, etc. remind the presenter that they need to keep track of their own time; there is no way for us to give them cues about timing other than interrupting them when their time is up the critical item was making sure the audio worked (that their computer was set to use the headset/earbud microphone and audio output). the result was excellent sound quality for the audience. when the remote presenter was set on the zoom meeting, i returned to the a/v table and asked a livestream helper to connect the receiving zoom to the remote presenter’s zoom meeting. at this point, the remote presenter can hear the audio in the ballroom of the speaker before them coming through the receiving zoom computer. now i would lock the zoom meeting to prevent others from joining and interrupting the presenter (from the zoom participants panel, select more then lock meeting). i hung out on the remote presenter’s meeting on the coordinator zoom computer in case they had any last-minute questions. as the speaker in the ballroom was finishing up, i wished the remote presenter well and disconnected the coordinator zoom computer from the meeting. (i always selected leave meeting rather than end meeting for all so that the zoom meeting continued with the remote presenter and the receiving zoom computer.) as the remote presenter was being introduced—and the speaker would know because they could hear it in their zoom meeting—the a/v contractor switched the video source for the ballroom projectors to the receiving zoom computer and unmuted the receiving zoom computer’s channel on the audio mixer. at this point, the remote speaker is off-and-running! last thoughts this worked really well. surprisingly well. so well that i had a few people comment that they were taken aback when they realized that there was no one standing at the podium during the presentation. i’m glad i had set up the two zoom meetings. we had two cases where remote presenters were back-to-back. i was able to get the first remote presenter set up and ready on one zoom meeting while preparing the second remote presenter on the other zoom meeting. the most stressful part was at the point when we disconnected the first presenter’s zoom meeting and quickly connected to the second presenter’s zoom meeting. this was slightly awkward for the second remote presenter because they didn’t hear their full introduction as it happened and had to jump right into their presentation. this could be solved by setting up a second receiving zoom computer, but this added complexity seemed to be too much for the benefit gained. i would definitely recommend making this setup a part of the typical a/v preparations for future code lib conferences. we don’t know when an individual’s circumstances (much less a worldwide pandemic) might cause a last-minute request for a remote presentation capability, and the overhead of the setup is pretty minimal. what is known about getftr at the end of in early december , a group of publishers announced get-full-text-research, or getftr for short. there was a heck of a response on social media, and the response was—on the whole—not positive from my librarian-dominated corner of twitter. for my early take on getftr, see my december rd blog post “publishers going-it-alone (for now?) with getftr.” as that post title suggests, i took the five founding getftr publishers to task on their take-it-or-leave-it approach. i think that is still a problem. to get you caught up, here is a list of other commentary. roger schonfeld’s december rd “publishers announce a major new service to plug leakage” piece in the scholarly kitchen tweet from herbert van de sompel, the lead author of the openurl spec, on solving the appropriate copy problem december th post “get to fulltext ourselves, not getftr.” on the open access button blog twitter thread on december th between @cshillum and @lisalibrarian on the positioning of getftr in relation to link resolvers and an unanswered question about how getftr aligns with library interests twitter thread started by @tac_niso on december th looking for more information with a link to an stm association presentation added by @aarontay a tree of tweets starting from @mrgunn’s [i don’t trust publishers to decide] is the crux of the whole thing. in particular, threads of that tweet that include jason griffey of niso saying he knew nothing about getftr and bernhard mittermaier’s point about hidden motivations behind getftr twitter thread started by @aarontay on december th saying “getftr is bad for researchers/readers and librarians. it only benefits publishers, change my mind.” lisa janicke hinchliffe’s december th “why are librarians concerned about getftr?” in the scholarly kitchen and take note of the follow-up discussion in the comments twitter thread between @alison_mudditt and @lisalibrarian clarifying plos is not on the advisory board with some @tac_niso as well. ian mulvany’s december th “thoughts on getftr” on scholcommsprod getftr’s december th “updating the community” post on their website the spanish federation of associations of archivists, librarians, archaeologists, museologists and documentalists (anabad)’s december th “getftr: new publishers service to speed up access to research articles” (original in spanish, google translate to english) december th news entry from econtent pro with the title “what getftr means for journal article access” which i’ll only quarrel with this sentence: “thus, getftr is a service where academic articles are found and provided to you at absolutely no cost.” no—if you are in academia the cost is born by your library even if you don’t see it. but this seems like a third party service that isn’t directly related to publishers or libraries, so perhaps they can be forgiven for not getting that nuance. wiley’s chemistry views news post on december th titled simply “get full text research (getftr)” is perhaps only notable for the sentence “growing leakage has steadily eroded the ability of the publishers to monetize the value they create.” if you are looking for a short list of what to look at, i recommend these posts. getftr’s community update on december —after the two posts i list below—an “updating the community” web page was posted to the getftr website. from a public relations perspective, it was…interesting. we are committed to being open and transparent this section goes on to say, “if the community feels we need to add librarians to our advisory group we will certainly do so and we will explore ways to ensure we engage with as many of our librarian stakeholders as possible.” if the getftr leadership didn’t get the indication between december and december that librarians feel strongly about being at the table, then i don’t know what will. and it isn’t about being on the advisory group; it is about being seen and appreciated as important stakeholders in the research discovery process. i’m not sure who the “community” is in this section, but it is clear that librarians are—at best—an afterthought. that is not the kind of “open and transparent” that is welcoming. later on in the questions about library link resolvers section is this sentence: we have, or are planning to, consult with existing library advisory boards that participating publishers have, as this enables us to gather views from a significant number of librarians from all over the globe, at a range of different institutions. as i said in my previous post, i don’t know why getftr is not engaging in existing cross-community (publisher/technology-supplier/library) organizations to have this discussion. it feels intentional, which colors the perception of what the publishers are trying to accomplish. to be honest, i don’t think the publishers are using getftr to drive a wedge between library technology service providers (who are needed to make getftr a reality for libraries) and libraries themselves. but i can see how that interpretation could be made. understandably, we have been asked about privacy. i punted on privacy in my previous post, so let’s talk about it here. it remains to be seen what is included in the getftr api request between the browser and the publisher site. sure, it needs to include the doi and a token that identifies the patron’s institution. we can inspect that api request to ensure nothing else is included. but the fact that the design of getftr has the browser making the call to the publisher site means that the publisher site knows the ip address of the patron’s browser, and the ip address can be considered personally identifiable information. this issue could be fixed by having the link resolver or the discovery layer software make the api request, and according to the questions about library link resolvers section of the community update, this may be under consideration. so, yes, an auditable privacy policy and implementation is key for for getftr. getftr is fully committed to supporting third-party aggregators this is good to hear. i would love to see more information published about this, including how discipline-specific repositories and institutional repositories can have their holdings represented in getftr responses. my take-a-ways in the second to last paragraph: “researchers should have easy, seamless pathways to research, on whatever platform they are using, wherever they are.” that is a statement that i think every library could sign onto. this updating the community is a good start, but the project has dug a deep hole of trust and it hasn’t reached level ground yet. lisa janicke hinchliffe’s “why are librarians concerned about getftr?” posted on december th in the scholarly kitchen, lisa outlines a series of concerns from a librarian perspective. i agree with some of these; others are not an issue in my opinion. librarian concern: the connection to seamless access many librarians have expressed a concern about how patron information can leak to the publisher through ill-considered settings at an institution’s identity provider. seamless access can ease access control because it leverages a campus’ single sign-on solution—something that a library patron is likely to be familiar with. if the institution’s identity provider is overly permissive in the attributes about a patron that get transmitted to the publisher, then there is a serious risk of tying a user’s research activity to their identity and the bad things that come from that (patrons self-censoring their research paths, commoditization of patron activity, etc.). i’m serving on a seamless access task force that is addressing this issue, and i think there are technical, policy, and education solutions to this concern. in particular, i think some sort of intermediate display of the attributes being transmitted to the publisher is most appropriate. librarian concern: the limited user base enabled as lisa points out, the population of institutions that can take advantage of seamless access, a prerequisite for getftr, is very small and weighted heavily towards well-resourced institutions. to the extent that projects like seamless access (spurred on by a desire to have getftr-like functionality) helps with the adoption of saml-based infrastructure like shibboleth, then the whole academic community benefits from a shared authentication/identity layer that can be assumed to exist. librarian concern: the insertion of new stumbling blocks of the issues lisa mentioned here, i’m not concerned about users being redirected to their campus single sign-on system in multiple browsers on multiple machines. this is something we should be training users about—there is a single website to put your username/password into for whatever you are accessing at the institution. that a user might already be logged into the institution single sign-on system in the course of doing other school work and never see a logon screen is an attractive benefit to this system. that said, it would be useful for an api call from a library’s discovery layer to a publisher’s getftr endpoint to be able to say, “this is my user. trust me when i say that they are from this institution.” if that were possible, then the seamless access where-are-you-from service could be bypassed for the getftr purpose of determining whether a user’s institution has access to an article on the publisher’s site. it would sure be nice if librarians were involved in the specification of the underlying protocols early on so these use cases could be offered. update lisa reached out on twitter to say (in part): “issue is getftr doesn’t redirect and sa doesnt when you are ipauthenticated. hence user ends up w mishmash of experience.” i went back to read her scholarly kitchen post and realized i did not fully understand her point. if getftr is relying on a seamless access token to know which institution a user is coming from, then that token must get into the user’s browser. the details we have seen about getftr don’t address how that seamless access institution token is put in the user’s browser if the user has not been to the seamless access select-your-institution portal. one such case is when the user is coming from an ip-address-authenticated computer on a campus network. do the getftr indicators appear even when the seamless access institution token is not stored in the browser? if at the publisher site the getftr response also uses the institution ip address table to determine entitlements, what does a user see when they have neither the seamless access institution token nor the institution ip address? and, to lisa’s point, how does one explain this disparity to users? is the situation better if the getftr determination is made in the link resolver rather than in the user browser? librarian concern: exclusion from advisory committee see previous paragraph. that librarians are not at the table offering use cases and technical advice means that the developers are likely closing off options that meet library needs. addressing those needs would ease the acceptance of the getftr project as mutually beneficial. so an emphatic “agree!” with lisa on her points in this section. publishers—what were you thinking? librarian concern: getftr replacing the library link resolver libraries and library technology companies are making significant investments in tools that ease the path from discovery to delivery. would the library’s link resolver benefit from a real-time api call to a publisher’s service that determines the direct url to a specific doi? oh, yes—that would be mighty beneficial. the library could put that link right at the top of a series of options that include a link to a version of the article in a green open access repository, redirection to a content aggregator, one-click access to an interlibrary-loan form, or even an option where the library purchases a copy of the article on behalf of the patron. (more likely, the link resolver would take the patron right to the article url supplied by getftr, but the library link resolver needs to be in the loop to be able to offer the other options.) my take-a-ways the patron is affiliated with the institution, and the institution (through the library) is subscribing to services from the publisher. the institution’s library knows best what options are available to the patron (see above section). want to know why librarians are concerned? because they are inserting themselves as the arbiter of access to content, whether it is in the patron’s best interest or not. it is also useful to reinforce lisa’s closing paragraph: whether getftr will act to remediate these concerns remains to be seen. in some cases, i would expect that they will. in others, they may not. publishers’ interests are not always aligned with library interests and they may accept a fraying relationship with the library community as the price to pay to pursue their strategic goals. ian mulvany’s “thoughts on getftr” ian’s entire post from december th in scholcommsprod is worth reading. i think it is an insightful look at the technology and its implications. here are some specific comments: clarifying the relation between seamlessaccess and getftr there are a couple of things that i disagree with: ok, so what is the difference, for the user, between seamlessaccess and getftr? i think that the difference is the following - with seamless access you the user have to log in to the publisher site. with getftr if you are providing pages that contain dois (like on a discovery service) to your researchers, you can give them links they can click on that have been setup to get those users direct access to the content. that means as a researcher, so long as the discovery service has you as an authenticated user, you don’t need to even think about logins, or publisher access credentials. to the best of my understanding, this is incorrect. with seamlessaccess, the user is not “logging into the publisher site.” if the publisher site doesn’t know who a user is, the user is bounced back to their institution’s single sign-on service to authenticate. if the publisher site doesn’t know where a user is from, it invokes the seamlessaccess where-are-you-from service to learn which institution’s single sign-on service is appropriate for the user. if a user follows a getftr-supplied link to a publisher site but the user doesn’t have the necessary authentication token from the institution’s single sign-on service, then they will be bounced back for the username/password and redirected to the publisher’s site. getftr signaling that an institution is entitled to view an article does not mean the user can get it without proving that they are a member of the institution. what does this mean for green open access a key point that ian raises is this: one example of how this could suck, lets imagine that there is a very usable green oa version of an article, but the publisher wants to push me to using some “e-reader limited functionality version” that requires an account registration, or god forbid a browser exertion, or desktop app. if the publisher shows only this limited utility version, and not the green version, well that sucks. oh, yeah…that does suck, and it is because the library—not the publisher of record—is better positioned to know what is best for a particular user. will getftr be adopted? ian asks, “will google scholar implement this, will other discovery services do so?” i do wonder if getftr is big enough to attract the attention of google scholar and microsoft research. my gut tells me “no”: i don’t think google and microsoft are going to add getftr buttons to their search results screens unless they are paid a lot. as for google scholar, it is more likely that google would build something like getftr to get the analytics rather than rely on a publisher’s version. i’m even more doubtful that the companies pushing getftr can convince discovery layers makers to embed getftr into their software. since the two widely adopted discovery layers (in north america, at least) are also aggregators of journal content, i don’t see the discovery-layer/aggregator companies devaluing their product by actively pushing users off their site. my take-a-ways it is also useful to reinforce ian’s closing paragraph: i have two other recommendations for the getftr team. both relate to building trust. first up, don’t list orgs as being on an advisory board, when they are not. secondly it would be great to learn about the team behind the creation of the service. at the moment its all very anonymous. where do we stand? wow, i didn’t set out to write , words on this topic. at the start i was just taking some time to review everything that happened since this was announced at the start of december and see what sense i could make of it. it turned into a literature review of sort. while getftr has some powerful backers, it also has some pretty big blockers: can getftr help spur adoption of seamless access enough to convince big and small institutions to invest in identity provider infrastructure and single sign-on systems? will getftr grab the interest of google, google scholar, and microsoft research (where admittedly a lot of article discovery is already happening)? will developers of discovery layers and link resolvers prioritize getftr implementation in their services? will libraries find enough value in getftr to enable it in their discovery layers and link resolvers? would libraries argue against getftr in learning management systems, faculty profile systems, and other campus systems if its own services cannot be included in getftr displays? i don’t know, but i think it is up to the principles behind getftr to make more inclusive decisions. the next steps is theirs. publishers going-it-alone (for now?) with getftr in early december , a group of publishers announced get-full-text-research, or getftr for short. i read about this first in roger schonfeld’s “publishers announce a major new service to plug leakage” piece in the scholarly kitchen via jeff pooley’s twitter thread and blog post. details about how this works are thin, so i’m leaning heavily on roger’s description. i’m not as negative about this as jeff, and i’m probably a little more opinionated than roger. this is an interesting move by publishers, and—as the title of this post suggests—i am critical of the publisher’s “go-it-alone” approach. first, some disclosure might be in order. my background has me thinking of this in the context of how it impacts libraries and library consortia. for the past four years, i’ve been co-chair of the niso information discovery and interchange topic committee (and its predecessor, the “discovery to delivery” topic committee), so this is squarely in what i’ve been thinking about in the broader library-publisher professional space. i also traced the early development of ra and more recently am volunteering on the seamlessaccess entity category and attribute bundles working group; that’ll become more important a little further down this post. i was nodding along with roger’s narrative until i stopped short here: the five major publishing houses that are the driving forces behind getftr are not pursuing this initiative through one of the major industry collaborative bodies. all five are leading members of the stm association, niso, orcid, crossref, and chorus, to name several major industry groups. but rather than working through one of these existing groups, the houses plan instead to launch a new legal entity.  while [vice president of product strategy & partnerships for wiley todd] toler and [senior director, technology strategy & partnerships for the american chemical society ralph] youngen were too politic to go deeply into the details of why this might be, it is clear that the leadership of the large houses have felt a major sense of mismatch between their business priorities on the one hand and the capabilities of these existing industry bodies. at recent industry events, publishing house ceos have voiced extensive concerns about the lack of cooperation-driven innovation in the sector. for example, judy verses from wiley spoke to this issue in spring , and several executives did so at frankfurt this fall. in both cases, long standing members of the scholarly publishing sector questioned if these executives perhaps did not realize the extensive collaborations driven through crossref and orcid, among others. it is now clear to me that the issue is not a lack of knowledge but rather a concern at the executive level about the perceived inability of existing collaborative vehicles to enable the new strategic directions that publishers feel they must pursue.  this is the publishers going-it-alone. to see roger describe it, they are going to create this web service that allows publishers to determine the appropriate copy for a patron and do it without input from the libraries. librarians will just be expected to put this web service widget into their discovery services to get “colored buttons indicating that the link will take [patrons] to the version of record, an alternative pathway, or (presumably in rare cases) no access at all.” (let’s set aside for the moment the privacy implications of having a fourth-party web service recording all of the individual articles that come up in a patron’s search results.) librarians will not get to decide the “alternative pathway” that is appropriate for the patron: “some publishers might choose to provide access to a preprint or a read-only version, perhaps in some cases on some kind of metered basis.” (roger goes on to say that he “expect[s] publishers will typically enable some alternative version for their content, in which case the vast majority of scholarly content will be freely available through publishers even if it is not open access in terms of licensing.” i’m not so confident.) no, thank you. if publishers want to engage in technical work to enable libraries and others to build web services that determine the direct link to an article based on a doi, then great. libraries can build a tool that consumes that information as well as takes into account information about preprint services, open access versions, interlibrary loan and other methods of access. but to ask libraries to accept this publisher-controlled access button in their discovery layers, their learning management systems, their scholarly profile services, and their other tools? that sounds destined for disappointment. i am only somewhat encouraged by the fact that ra started out as a small, isolated collaboration of publishers before they brought in niso and invited libraries to join the discussion. did it mean that it slowed down deployment of ra ? undoubtedly yes. did persnickety librarians demand transparent discussions and decisions about privacy-related concerns like what attributes the publisher would get about the patron in the shibboleth-powered backchannel? yes, but because the patrons weren’t there to advocate for themselves. will it likely mean wider adoption? i’d like to think so. have publishers learned that forcing these kinds of technologies onto users without consultation is a bad idea? at the moment it would appear not. some of what publishers are seeking with getftr can be implemented with straight-up openurl or—at the very least—limited-scope additions to openurl (the z . open standard!). so that they didn’t start with openurl, a robust existing standard, is both concerning and annoying. i’ll be watching and listening for points of engagement, so i remain hopeful. a few words about jeff pooley’s five-step “laughably creaky and friction-filled effort” that is seamlessaccess. many of the steps jeff describes are invisible and well-established technical protocols. what jeff fails to take into account is the very visible and friction-filled effect of patrons accessing content beyond the boundaries of campus-recognized internet network addresses. those patrons get stopped at step two with a “pay $ please” message. i’m all for removing that barrier entirely by making all published content “open access”. it is folly to think, though, that researchers and readers can enforce an open access business model on all publishers, so solutions like seamlessaccess will have a place. (which is to say nothing of the benefit of inter-institutional resource collaboration opened up by a more widely deployed shibboleth infrastructure powered by seamlessaccess.) none none the digital librarian – information. organization. access. ↓ skip to main content the digital librarian information. organization. access. main navigation menu home about libraries and the state of the internet by jaf posted on june , posted in digital libraries no comments mary meeker presented her internet trends report earlier this month. if you want a better understanding of how tech and the tech industry is evolving, you should watch her talk and read her slides. this year’s talk was fairly … libraries and the state of the internet read more » meaningful web metrics by jaf posted on january , posted in web metrics no comments this article from wired magazine is a must-read if you are interested in more impactful metrics for your library’s web site. at mpoe, we are scaling up our need for in-house web product expertise, but regardless of how much we … meaningful web metrics read more » site migrated by jaf posted on october , posted in blog no comments just a quick note – digitallibrarian.org has been migrated to a new server. you may see a few quirks here and there, but things should be mostly in good shape. if you notice anything major, send me a challah. really. … site migrated read more » the new ipad by jaf posted on march , posted in apple, hardware, ipad comment i decided that it was time to upgrade my original ipad, so i pre-ordered a new ipad, which arrived this past friday. after a few days, here are my initial thoughts / observations: compared to the original ipad, the new … the new ipad read more » rd sits meeting – geneva by jaf posted on august , posted in conferences, digital libraries, uncategorized, workshops no comments back in june i attend the rd sits (scholarly infrastructure technical summit) meeting, held in conjunction with the oai workshop and sponsored by jisc and the digital library federation. this meeting, held in lovely geneva, switzerland, brought together library technologists … rd sits meeting – geneva read more » tagged with: digital libraries, dlf, sits david lewis’ presentation on collections futures by jaf posted on march , posted in ebooks, librarianship comment peter murray (aka the disruptive library technology jester) has provided an audio-overlay of david lewis’ slideshare of his plenary at the last june’s rlg annual partners meeting. if you are at all interested in understanding the future of academic libraries, … david lewis’ presentation on collections futures read more » tagged with: collections, future, provisioning librarians are *the* search experts… by jaf posted on august , posted in librarianship no comments …so i wonder how many librarians know all of the tips and tricks for using google that are mentioned here? what do we want from discovery? maybe it’s to save the time of the user…. by jaf posted on august , posted in uncategorized comment just a quick thought on discovery tools – the major newish discovery services being vended to libraries (worldcat local, summon, ebsco discovery service, etc.) all have their strengths, their complexity, their middle-of-the-road politician trying to be everything to everybody features. … what do we want from discovery? maybe it’s to save the time of the user…. read more » putting a library in starbucks by jaf posted on august , posted in digital libraries, librarianship no comments it is not uncommon to find a coffee shop in a library these days. turn that concept around, though – would you expect a library inside a starbucks? or maybe that’s the wrong question – how would you react to … putting a library in starbucks read more » tagged with: coffee, digital library, library, monopsony, starbucks, upsell week of ipad by jaf posted on april , posted in apple, ebooks, hardware, ipad comment it has been a little over a week since my ipad was delivered, and in that time i have had the opportunity to try it out at home, at work, and on the road. in fact, i’m currently typing this … week of ipad read more » tagged with: apple, digital lifestyle, ipad, mobile, tablet posts navigation next © | powered by responsive theme none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none none homosaurus vocabulary site homosaurus.org toggle navigation home vocabulary search releases about contact welcome to the homosaurus! the homosaurus is an international linked data vocabulary of lesbian, gay, bisexual, transgender, and queer (lgbtq) terms. this vocabulary is intended to function as a companion to broad subject term vocabularies, such as the library of congress subject headings. libraries, archives, museums, and other institutions are encouraged to use the homosaurus to support lgbtq research by enhancing the discoverability of their lgbtq resources. if you are using the homosaurus, we want to hear from you! please contact us to let us know how you are using this vocabulary and share any feedback you might have. homosaurus.org is a linked data service maintained by the digital transgender archive loading... free range librarian › k.g. schneider's blog on librarianship, writing, and everything else free range librarian k.g. schneider's blog on librarianship, writing, and everything else skip to content about free range librarian comment guidelines writing: clips & samples (dis)association monday, may , walking two roses to their new home, where they would be planted in the front yard. i have been reflecting on the future of a national association i belong to that has struggled with relevancy and with closing the distance between itself and its members, has distinct factions that differ on fundamental matters of values, faces declining national and chapter membership, needs to catch up on the technology curve, has sometimes problematic vendor relationships, struggles with member demographics and diversity,  and has an uneven and sometimes conflicting national message and an awkward at best relationship with modern communications; but represents something important that i believe in and has a spark of vitality that is the secret to its future. i am not, in fact, writing about the american library association, but the american rose society.  most readers of free range librarian associate me with libraries, but the rose connection may be less visible. i’ve grown roses in nine places i’ve lived in the last thirty-plus years, starting with roses planted in front of a rental house in clovis, new mexico, when i was stationed at cannon air force base in the s, and continuing in pots or slices of garden plots as i moved around the world and later, the united states. basically, if i had an outdoor spot to grow in, i grew roses, either in-ground or in pots, whether it was a slice of sunny backyard in wayne, new jersey, a tiny front garden area in point richmond, california, a sunny interior patio in our fake eichler rental in palo alto, or a windy, none-too-sunny, and cold (but still much-appreciated) deck in our rental in san francisco. when sandy and i bought our sweet little house in santa rosa, part of the move involved rolling large garden pots on my radio flyer from our rental two blocks away. some of you know i’m an association geek, an avocation that has waxed as the years have progressed. i join associations because i’m from a generation where that’s done, but another centripetal pull for staying and being involved is that associations, on their own, have always interested me. it’s highly likely that a long time ago, probably when i was stationed in new mexico and, later, germany (the two duty stations where i had the ability to grow roses), that i was a member of the american rose society for two or three years. i infer this because i accumulated, then later recycled, their house magazine, american rose, and i also have vague memories of receiving the annual publication, handbook for selecting roses. early this year i joined the redwood empire rose society and a few weeks after that joined the american rose society. i joined the local society because i was eager to plant roses in our new home’s garden and thought this would be a way to tap local expertise, and was won over by the society’s programming, a range of monthly educational events that ranged from how to sharpen pruning shears to the habits and benefits of bees (a program where the audience puffed with pride, because roses--if grown without toxic chemical intervention–are highly beneficial bee-attracting pollen plants). i joined the national society less out of need than because i was curious about what ars had to offer to people like me who are rose-lovers but average gardeners, and i was also inquisitive about how the society had (or had not) repositioned itself over the years. my own practices around rose gardening have gradually changed, reflecting broader societal trends. thirty years ago, i was an unwitting cog in the agricultural-industrial rose complex. i planted roses that appealed to my senses — attractive, repeat-blooming, and fragrant — and then managed their ability to grow and produce flowers not only through providing the two things all roses need to grow– sun and water — but also through liberal applications of synthetic food and toxic pest and disease products. the roses i purchased were bred for the most part with little regard for their ability to thrive without toxic intervention or for their suitability for specific regions. garden by garden, my behavior changed. i slowly adopted a “thrive or die” mantra. if a rose could not exist without toxic chemical interventions, then it did not belong in my garden, and i would, in rosarian parlance, “shovel-prune” it and replace it with a rose that could succeed with sun, water, good organic food and amendments, and an occasional but not over-fussy attention. eventually, as i moved toward organic gardening and became more familiar with sustainability in general, i absorbed the message that roses are plants, and the soil they grow in is like the food i put in my body: it influences their health. so i had the garden soil tested this winter while i was moving and replacing plants, digging holes that were close to two feet wide and deep. based on the test results, i adjusted the soil accordingly: i used organic soil sulphur to lower the ph, dug in slow-release nitrogen in the form of feathermeal, and bathed the plants in a weak solution of organic liquid manganese. as i now do every spring, when it warmed up a bit i also resumed my monthly treatment of fish fertilizer, and this year, based on local rose advice, in a folksier vein dressed all the bushes with organic worm castings and alfalfa, both known to have good fertilizing capabilities. alfalfa also has a lot of trace nutrients we know less about but appear to be important. princesse charlene de monaco, hybrid tea rose bred by meilland guess what? science is real! nearly all of the rose bushes are measurably larger and more vigorous. carding mill, a david austin rose, went from a medium shrub to a flowering giant. new roses i planted this spring, such as grand dame and pinkerbelle, are growing much more vigorously than last year’s new plantings. some of this is due to the long, gloomy, wet winter, which gave roses opportunities to snake their long roots deeper into the good soil we have in sonoma county; my friends are reporting great spring flushes this year. but roses planted even in the last six weeks, such as princesse charlene de monaco and sheila’s perfume, are taking off like a rocket, so it’s not just the rain or the variety. (you do not need to do all this to grow roses that will please you and your garden visitors, including bees and other beneficial insects. i enjoy the process. the key thing is that nearly all of my roses are highly rated for disease resistance and nearly all are reported to grow well in our region.) science–under attack in our national conversations–is also an area of conflict within the ars. presidents of the ars have three-year terms, and the previous president, pat shanley, was an advocate of sustainable rose growing. she spoke and wrote about the value of organic gardening, and championed selecting varieties that do not require toxic intervention to thrive. the theme of the american rose annual was “roses are for everyone,” and this annual is a fascinating look at the sustainable-gardening wing of the ars. most of the articles emphasized the value of what paul zimmerman, a rose evangelist, calls “garden roses,” flowers that everyday people like you and me can grow and enjoy. the message in this annual is reinforced by recent books by longtime rose advocates and ars members, such as peter kukielski’s roses without chemicals and zimmerman’s everyday roses, books i highly recommend for library collections as well as personal use. (roses without chemicals is a book i use when i wake up at odd hours worried about things, because it is beautifully written and photographed and the roses are listed alphabetically.) now the ars has a new president, bob martin, a longtime exhibitor, who in editorials has promoted chemical intervention for roses. “and yes virginia we do spray our roses,” he wrote in the march/april “first word” editorial in american rose, the house organ of the ars. “as does nearly every serious rose exhibitor and those who want their rose bushes to sustainably produce the most beautiful blooms [emphasis mine].” american rose does not appear to publish letters to the editor. there is no section listed for letters that i can find in any recent issue, and the masthead only lists a street address for “member and subscription correspondence.” otherwise, i would write a short letter protesting the misuse of the term “sustainably,” as well as the general direction of this editorial. i am a rose amateur, and make no bones about it. but i know that equating chemical spraying with sustainability is, hands-down, fake news. it’s one thing to soak roses in toxins and call it a “health maintenance” program, as he does in this article. that’s close to the line but not over it, since he’s from the exhibitors’ wing of ars. but it’s just plain junk science to claim that there is anything connected to sustainability about this approach. i also can’t imagine that this “toxins forever” message is attracting new ars members or encouraging them to renew. it feels disconnected from what motivates average gardeners like me to grow roses today (to enjoy them in their gardens) and from how they want to grow them today (in a manner that honors the earth). frankly, one of the happiest moments in my garden last year was not from personal enjoyment of the flowers or even the compliments of neighbors and passers-by, but when i saw bees doing barrel-rolls in the stamens of my roses, knowing that i was helping, not hurting, their survival. the vast majority of people buying and planting roses these days have no idea there is a single-plant society dedicated to this plant, or even less that this society believes it understands their motivations for and interest in roses. my environmental scan of the literature and the quantities of roses provided by garden stores makes me suspect that many people buy roses based on a mix of personal recommendations, marketing guidance (what the vendors are promoting), and what they remember from their family gardens. (i would love to learn there had been market research in this area; vendors may have taken this up.) for average gardeners, their memories include roses such as peace and mr. lincoln, which were bred in the middle of the last century, when the focus was not on disease resistance but on producing the hourglass hybrid tea shape that became the de facto standard for exhibiting. we can get sentimental about roses from the late th century, but many of these varieties also helped perpetuate the idea that roses are hard to grow, despite the many varieties that grew just fine for thousands of years (or in the case of excellenz von schubert, which i planted this year, years and counting). market persuasion continues today; vendors tempt buyers through savvy marketing plans such as the downton abbey rose series from weeks or david austin’s persistent messaging about “english” roses. note — i own a lovely rose from the downton abbey line, violet’s pride, that is quite the garden champ, and have three david austin roses (carding mill, munstead wood, and gentle hermione). i’m just noting market behavior. it is well-documented in rose literature that the rose that seems to have shaken the ars to the core is the knockout series, which introduced maintenance-free roses to a generation short on time and patience and increasingly invested in sustainable practices throughout their lives, including their gardens. again, smart marketing was part of the formula, because there always have been sustainable roses, and ome companies, such as kordes, moved to disease-resistant hybridizing decades ago. but the knockout roses were promoted as an amazing breakthrough. (it may help to know that new varieties of roses have -year patents during which propagation is only legally through license. i don’t begrudge hybridizers their income, given how much work–sometimes thousands of seedlings–goes into producing a single good rose, but this does factor into how and why roses are marketed.) you don’t need a certificate as a master gardener or membership in a rose society to grow knockout roses or newer competitors such as the oso easy line. you don’t really need to know anything about roses at all, other than roses grow in sun, not shade, and appreciate water. you also don’t need to spray knockout roses with powerful fungicides to prevent blackspot and mildew. regardless of the public’s reaction to easy-to-grow roses, the rose world’s reception of the knockout rose by the rose world was mixed, to use an understatement. though the knockout rose was the ars members’ choice rose, rumblings abounded, and knockout was even blamed in popular literature as a vector for the rose rosette virus (rrv), though this was later debunked. fifty years ago rrv was observed in a number of rose varieties, long before the knockout rose appeared. (this mite-spread virus was promulgated in the united states to control a pest rose, rosa multiflora, that was itself introduced without realizing what havoc it would wreak.) again, i’m no scientist, but i would think the appearance of rrv in “domesticated” roses was inevitable, regardless of which rose variety was first identified by name as carrying this disease. rose hybridizing is now catching up with the public’s interests and the wider need for roses with strong disease resistance. rose companies prominently tout disease resistance and many new varieties can be grown toxin-free. i selected princesse charlene de monaco in part because it medaled as best hybrid tea in the biltmore international rose trials, for which roses must perform well in terms of vigor and disease resistance as well as aesthetic qualities. there were companies such as kordes who walked this walk before it was fashionable, but in typical change-adoption fashion, other vendors are adapting their own practices, because the market is demanding it. but association leadership is driven by different goals than that for for-profit companies. a colleague of mine, after sharing his support for my successful run for ala executive board, commented that it takes expertise to run a $ million organization–skills not everyone has in equal abundance. my further reflection is that the kind of leadership we need at any one time is also unique to that moment, though–with absolutely no aspersions on our current crop of excellent leaders in ala–historically, we have not always selected leadership for either general expertise or current needs, an issue hardly unique to ars or ala. so i watch the ars seesaw. as just one more example, recently i read an article within the same ars email newsletter touting the value of lacewings for insect management, followed by an article about the value of chemical interventions that i know are toxic to beneficial insects. these aren’t just contradictory ideas; they are contradictory values, contradictory messages, and contradictory branding. and these conflicting messages are evident even before we look at the relationship between the national association and local societies (organized differently than ala chapters but with the similar intent). if i could deduce the current priorities for ars from its magazine, website, and email newsletters, it would be the renovation of the ars garden in shreveport. the plan to update the -year-old “national rosarium” makes sense, if you like rose gardens, but it sounds more like a call to the passionate few than the general public. it’s hard to infer other priorities when website sections such as “cyber rosarian” invite members to ask questions that then go unanswered for over a year. the section called “endorsed products” is its own conflicted mix of chemical interventions, artificial fertilizers, and organic rose food. the website section on rose preservation–a goal embedded in the ars mission statement, “the american rose society exists to promote the culture, preservation and appreciation of the rose”–is a blank page with a note it is under construction. a section with videos by paul zimmerman is useful, but the rose recommendations by district are incomplete, and also raise the issue that ars districts are organized geopolitically, not by climate. a rose suited for the long dry summers of sonoma county may not do as well in maui. the ars “modern roses” database has value, listing over , cultivars. but if i want insight into a specific rose, i use helpmefind.com, which despite its generic name and rustic interface is the de facto go-to site for rose information, questions, and discussion, often in the context of region, climate, and approaches to sustainability. i pay a small annual fee for premium access, in part to get hmf’s extra goodies (advanced search, and access to lineage information) but primarily because this site gives me value and i want to support their work. though i couldn’t find data on the ars website for membership numbers in national, district, or local societies, i intuit membership overall is declining. it is in our local society, where despite great programming in a region where many people grow roses, i am one of the younger members. again, there are larger forces at work with association membership, but pointing to those forces and then doing business as usual is a recipe for slow death. interestingly, the local rose society is aware of its challenges and interested in what it might mean to reposition itself for survival. most recently, we founded a facebook group that anyone could join (look for redwood empire rose society). but the society doesn’t have very much time, and a facebook group isn’t the magic bullet. to loop back to ala for a moment: i can remember when the response to concerns about membership decline were that the library field was contracting as a whole and association membership was also less popular in general. but these days, ala is invested in moving past these facts and asking, what then? ala is willing to change to survive. and i believe that is why ala will be around years from now, assuming we continue to support human life on this continent. as i ponder all this, deep in my association geekiness, i’m left with these questions: if the ars can’t save itself, who will be there for the roses? will the ad hoc, de facto green-garden rosarians form a new society, will they simply soldier on as a loose federation, or will the vendors determine the future of roses? have rose societies begun talking about strategic redirection, consolidation, and other new approaches? does the ars see itself as a change leader? where does the ars see itself in years? am i just a naive member in the field, totally missing the point, or is there something to what i’m observing, outside the palace walls? i’ve been writing this off and on for months. it’s memorial day and it’s now light enough outside to wander into our front yard, pruners and deadheading bucket in hand, iphone in my pocket so i can share what bloomed while i slept. over time i changed how i grow roses, but not why i grow roses. somewhere in there is an insight, but it’s time to garden. bookmark to: filed in uncategorized | | comments off on (dis)association i have measured out my life in doodle polls wednesday, april , you know that song? the one you really liked the first time you heard it? and even the fifth or fifteenth? but now your skin crawls when you hear it? that’s me and doodle. in the last three months i have filled out at least a dozen doodle polls for various meetings outside my organization. i complete these polls at work, where my two-monitor setup means i can review my outlook calendar while scrolling through a doodle poll with dozens of date and time options. i don’t like to inflict doodle polls on our library admin because she has her hands full enough, including managing my real calendar. i have largely given up on earmarking dates on my calendar for these polls, and i just wait for the inevitable scheduling conflicts that come up. some of these polls have so many options i would have absolutely no time left on my calendar for work meetings, many of which need to be made on fairly short notice. not only that, i gird my loins for the inevitable “we can’t find a date, we’re doodling again” messages that mean once again, i’m going to spend minutes checking my calendar against a doodle poll. i understand the allure of doodle; when i first “met” doodle, i was in love. at last, a way to pick meeting dates without long, painful email threads! but we’re now deep into the tragedy of the doodle commons, with no relief in sight. here are some doodle ideas–you may have your own to toss in. first, when possible, before doodling, i ask for blackout dates. that narrows the available date/time combos and helps reduce the “we gotta doodle again” scenarios. second, if your poll requires more than a little right-scrolling, reconsider how many options you’re providing. a poll with options might as well be asking me to block out april. and i can’t do that. third, i have taken exactly one poll where the pollster chose to suppress other people’s responses, and i hope to never see that again. there is a whole gaming side to doodling in which early respondents get to drive the dates that are selected, and suppressing other’s responses eliminates that capability. plus i want to know who has and hasn’t responded, and yes, i may further game things when i have that information. also, if you don’t have to doodle, just say no. bookmark to: filed in uncategorized | | comments ( ) memento dmv saturday, march , this morning i spent minutes in the appointment line at the santa rosa dmv to get my license renewed and converted to real id, but was told i was “too early” to renew my license, which expires in september, so i have to return after i receive my renewal notice. i could have converted to real id today, but i would still need to return to renew my license, at least as it was explained to me, and i do hope that was correct. cc by . , https://wellcomecollection.org/works/m wh kmc but–speaking as a librarian, and therefore from a profession steeped in resource management–i predict chaos in if dmv doesn’t rethink their workflow. we’re months out from october , the point at which people will not be able to board domestic flights if they don’t have a real id or a valid passport, or another (and far less common) substitute. then again, california dmv is already in chaos. their longtime leader retired, the replacement lasted days, and their new leader has been there ca. days. last year featured the license renewal debacle, which i suspect impacted the man standing behind me. he said he was there to apply for his license again because he never received the one he applied for last fall. and california dmv is one of states that still needs a real id extension because it didn’t have it together on time. indeed, i was on the appointment line, and nearly everyone in that line was on their second visit to dmv for the task they were trying to accomplish, and not for lack of preparation on their part. some of that was due to various dmv crises, and some of it is baked into dmv processes. based on how their current policies were explained to me today at window , i should never have been on that line in the first place; somewhere, in the online appointment process, the dmv should have prevented me from completing that task. i needlessly took up staff time at dmv. but the bigger problem is a system that gets in its own way, like libraries that lock book drops during the day to force users to enter the libraries to return books. with me standing there at window with my online appointment, my license, and my four types of id, the smart thing to do would be to complete the process and get me out of the pipeline of real id applicants–or any other dmv activity. but that didn’t happen. and i suspect i’m just one drop in a big, and overflowing, bucket. i suppose an adroit side move is to ensure your passport is current, but i hope we don’t reach the point where we need a passport to travel in our own country. bookmark to: filed in uncategorized | | comments off on memento dmv an old-skool blog post friday, march , i get up early these days and get stuff done — banking and other elder-care tasks for my mother, leftover work from the previous day, association or service work. a lot of this is writing, but it’s not writing. i have a half-dozen unfinished blog posts in wordpress, and even more in my mind. i map them out and they are huge topics, so then i don’t write them. but looking back at the early days of this blog — years ago! — i didn’t write long posts. i still wrote long-form for other media, but my blog posts were very much in the moment. so this is an old-skool post designed to ease me back in the writing habit. i’ll strive for twice a week, which is double the output of the original blogger, samuel johnson. i’ll post for minutes and move on to other things. i am an association nerd, and i spend a lot of time thinking about associations of all kinds, particularly the american library association, the american homebrewers association, the american rose society, the redwood empire rose society, the local library advisory boards, my church, and our neighborhood association. serving on the ala steering committee on organizational effectiveness, i’m reminded of a few indelible truths. one is that during the change management process you need to continuously monitor the temperature of the association you’re trying to change and in the words of one management pundit, keep fiddling with the thermostat. an association didn’t get that big or bureaucratic overnight, and it’s not going to get agile overnight, either. another is that the same people show up in each association, and–more interesting to me–stereotypes are not at play in determining who the change agents are. i had a great reminder of that years ago, when i served as the library director for one of those tiny barbie dream libraries in upstate new york, and i led the migration from a card catalog to a shared system in a consortium. too many people assumed that the library staff–like so many employees in these libraries, all female, and nearly all older women married to retired spouses–would be resistant to this change. in fact, they loved this change. they were fully on board with the relearning process and they were delighted and proud that they were now part of a larger system where they could not only request books from other libraries but sometimes even lend books as well from our wee collection. there were changes they and the trustees resisted, and that was a good lesson too, but the truism of older women resisting technology was dashed against the rocks of reality. my minutes are up. i am going in early today because i need to print things, not because i am an older woman who fears technology but because our home printer isn’t working and i can’t trust that i’ll have seatback room on my flight to chicago to open my laptop and read the ala executive board manual electronically, let alone annotate it or mark it up. i still remember the time i was on a flight, using my rpod (red pen of death, a fine-point red-ink sharpie) to revise an essay, and the passenger next to me turned toward me wide-eyed and whispered, “are you a teacher?” such is the power of rpod, an objective correlative that can immediately evoke the fear of correction from decades ago. bookmark to: filed in american liberry ass'n, association nerd | | comments ( ) keeping council saturday, january , editorial note: over half of this post was composed in july . at the time, this post could have been seen as politically neutral (where ala is the political landscape i’m referring to) but tilted toward change and reform. since then, events have transpired. i revised this post in november, but at the time hesitated to post it because events were still transpiring. today, in january , i believe even more strongly in what i write here, but take note that the post didn’t have a hidden agenda when i wrote it, and, except where noted, it still reflects my thoughts from last july, regardless of ensuing events. my agendas tend to be fairly straightforward. — kgs   original post, in which councilors are urged to council edits in noted with bolding. as of july , i am back on ala council for my fifth (non-consecutive) term since joining the american library association in . in june i attended council orientation, and though it was excellent–the whole idea that councilors would benefit from an introduction to the process is a beneficial concept that emerged over the last two decades–it did make me reflect on what i would add if there had been a follow-on conversation with sitting councilors called “sharing the wisdom.” i was particularly alerted to that by comments during orientation which pointed up a traditional view of the council process where ala’s largest governing body is largely inactive for over days a year, only rousing when we prepare to meet face to face. take or leave what i say here, or boldly contradict me, but it does come from an abundance of experience. you are a councilor year-round most newly-elected councilors “take their seats” immediately after the annual conference following their election — a factoid with significance. council, as a body, struggles with being a year-round entity that takes action twice a year during highly-condensed meetings during a conference with many other things happening. i have written about this before, in a dryly wonky post from that also addresses council’s composition and the role of chapters. i proposed that council meet four times a year, in a solstice-and-equinox model. two of those meetings (the “solstice” meetings) could  be online. (as far back as i was hinting around about the overhead and carbon footprint of midwinter.) i doubt midwinter will go to an online format even within the next decade–it’s a moneymaker for ala, if less so than before, and ala’s change cycle is glacial–but the proposal was intended to get people thinking about how council does, and doesn’t, operate. in lieu of any serious reconsideration of council, here are some thoughts. first, think of yourself as a year-round councilor, even if you do not represent a constituency such as a state chapter or a division that meets and takes action outside of ala. have at least a passing familiarity with the ala policy manual. bookmark it and be prepared to reference it. get familiar with ala’s financial model through the videos that explain things such as the operating agreement. read and learn about ala. share news. read the reports shared on the list, and post your thoughts and your questions. think critically about what you’re reading. it’s possible to love your association, believe with your heart that it has a bright future, and still raise your eyebrows about pat responses to budget questions, reassurances that membership figures and publishing revenue will rebound, and glib responses about the value of units such as the planning and budget assembly. come to council prepared. read everything you can in advance, speak with other councilors, and apply solid reflection, and research if needed, before you finish packing for your trip. preparation requires an awareness that you will be deluged with reading just as you are struggling to button up work at your library and preparing to be away for nearly a week, so skimming is essential. i focus on issues where i know i can share expertise, and provide input when i can. also, i am proud we do memorial resolutions and other commemorations but i don’t dwell on them in advance unless i have helped write them or had close familiarity with the people involved. fee, fie, foe, forum coming prepared to council is one of those values council has struggled with. looking at the council list for the week prior to annual , the only conversation was a discussion about the relocation of the council forum meeting room from one hotel to another, complete with an inquiry asking if ala could rent a special bus to tote councilors to and from the forum hotel. council forum is an informal convening that has taken place for decades to enable council to discuss resolutions and other actions outside of the strictures of parliamentary procedure. it meets three times during ala, in the evening, and though it is optional, i agree with the councilor who noted that important work happens at this informal gathering. i am conflicted about forum. it allows substantive discussion about key resolutions to happen outside of the constrictive frameworks of parliamentary procedure. forum is also well-run, with volunteer councilors managing the conversation. but forum also appears to have morphed into a substitute for reading and conversation in advance. it also means that councilors have to block out yet more time to do “the work of the association,” which in turn takes us away from other opportunities during the few days we are together as an association. i don’t say this to whine about the sacrifice of giving up dinners and networking with ala colleagues, though those experiences are important to me, but rather to point out that forum as a necessary-but-optional council activity takes a silo–that brobdingnabian body that is ala council–and further silos it. that can’t be good for ala. as councilors, we benefit from cross-pollination with the work of the association. resolved: to tread lightly with resolutions new councilors, and i was one of them once, are eager to solve ala’s problems by submitting resolutions. indeed, there are new councilors who see resolutions as the work of council, and there have been round tables and other units that clearly saw their work as generating reams of lightly-edited, poorly-written resolutions just prior to and during the conference. there are at least three questions to ask before submitting a resolution (other than memorial and other commemorative resolutions): can the resolution itself help solve a problem? has it been coordinated with the units and people involved in the issue it addresses? is it clear and well-written? there are other questions worth considering, such as, if the issue this resolution proposed to address cropped up a month after council met, would you still push it online with your council colleagues, or ask the ala executive board to address it? which is another way to ask, is it important? tread lightly with twitter overall, since coming through the stress of living through the santa rosa fires, i’m feeling weary, and perhaps wary, of social media. though i appreciate the occasional microbursts taking on idiots insulting libraries and so on, right now much of social media feels at once small and overwrought. if i seem quieter on social media, that’s true. (but i have had more conversations with neighbors and area residents during and after the fires than i have since we moved to santa rosa in early , and those convos are the real thing.) more problematically, as useful as twitter can be for following real-world issues–including ala–twitter also serves as a place where people go to avoid the heavy lifting involved with crucial conversations. i find i like #alacouncil twitter best when it is gently riffing on itself or amplifying action that the larger ala body would benefit hearing about. [the following, to the end of this post, is all new content] i like #alacouncil twitter least when it is used as a substitute for authentic conversation, used to insult other councilors, or otherwise undermining the discourse taking place in the meatware world. twitter is also particularly good at the unthinking pile-on, and many people have  vulnerabilities in this area that are easily exploited. sometimes those pile-ons hit me close to home, as happened a little over a year ago. other times these pile-ons serve only to amuse the minx in me, such as when a famous author (™) recently scolded me for “trafficking in respectability politics” because i was recommending a list of books written by writers from what our fearless leader calls “s–thole countries.” guilty as charged! indeed, i have conducted two studies where a major theme was “do i look too gay?” i basically have a ph.d. in respectability politics. and like all writers–including famous author (™)–i traffic in them. i chuckled and walked on by. walking on by, on twitter, takes different forms. as an administrator, i practice a certain pleasant-but-not-sugary facial expression that stays on my face regardless of what’s going on in my head. i’m not denying my emotions, which would be the sugary face; i’m managing them. it’s a kind of discipline that also helps me fjord difficult conversations, in which the discipline of managing my face also helps me manage my brain. the equivalent of my admin face for me for #alacouncil twitter is to exercise the mute button. i have found it invaluable. people don’t know they are muted (or unmuted). if only real life had mute buttons–can you imagine how much better some meetings would be if you could click a button and the person speaking would be silenced, unaware that you couldn’t hear them? everyone wins. but that aside, i have yet to encounter a situation on twitter when–for me–muting was the wrong call. it’s as if you stepped off the elevator and got away from that person smacking gum. another car will be along momentarily. my last thought on this post has to do with adding the term “sitting” before councilors in the first part of this post. when i was not on council i tried very hard not to be “that” former councilor who is always kibitizing behind scene, sending councilors messages about how things should be and how, in the s, ala did something bad and therefore we can never vote online because nobody knows how to find ala connect and it’s all a nefarious plot hatched by the ala president, his dimwitted sycophants, and the executive board, and why can’t my division have more representation because after all we’re the -pound gorilla (ok, i just got political, but you’ll note i left out anything about what should or should not be required for a very special job). yes, once in a while i sent a note if i thought it was helpful, the way some of my very ala-astute friends will whisper in my ear about policy and process i may be unfamiliar with. michael golrick, a very connected ala friend of mine, must have a third brain hemisphere devoted to the ala policy manual and bylaws. and during a time when i was asking a lot of questions about the ala budget (boiling down to one question: who do you think you’re fooling?), i was humbled by the pantheon of ala luminaries whispering in my ear, providing encouragement as well as crucial guidance and information. but when i am no longer part of something, i am mindful that things can and should change and move on, and that i may not have enough information to inform that change. we don’t go to ala in horse-and-buggies any more, but we conduct business as if we do, and when we try to change that, the fainting couches are rolled out and the smelling salts waved around as if we had, say, attempted to change the ala motto, which is, i regret to inform you, “the best reading, for the largest number, at the least cost”–and yes, attempts to change that have been defeated. my perennial question is, if you were starting an association today, how would it function? if the answer is “as it did in ” (when that motto was adopted), perhaps your advice on a current situation is less salient than you fancy. you may succeed at what you’re doing, but that doesn’t make you right. and with that, i go off to courthouse square today to make exactly that point about events writ much, much larger, and of greater significance, than our fair association. but i believe how we govern makes a difference, and i believe in libraries and library workers, and i believe in ala. especially today. bookmark to: filed in american liberry ass'n, librarianship | | comments ( ) what burns away thursday, november , we are among the lucky ones. we did not lose our home. we did not spend day after day evacuated, waiting to learn the fate of where we live. we never lost power or internet. we had three or four days where we were mildly inconvenienced because pg&e wisely turned off gas to many neighborhoods, but we showered at the ymca and cooked on an electric range we had been planning to upgrade to gas later this fall (and just did, but thank you, humble frigidaire electric range, for being there to let me cook out my anxiety). we kept our go-bags near the car, and then we kept our go-bags in the car, and then, when it seemed safe, we took them out again. that, and ten days of indoor living and wearing masks when we went out, was all we went through. but we all bear witness. the foreshadowing it began with a five-year drought that crippled forests and baked plains, followed by an soaking-wet winter and a lush  spring that crowded the hillsides with greenery. summer temperatures hit records several times, and the hills dried out as they always do right before autumn, but this time unusually crowded with parched foliage and growth. the air in santa rosa was hot and dry that weekend, an absence of humidity you could snap between your fingers. in the southwest section of the city, where we live, nothing seemed unusual. like many homes in santa rosa our home does not have air conditioning, so for comfort’s sake i grilled our dinner, our -foot backyard fence buffering any hint of the winds gathering speed northeast of us. we watched tv and went to bed early. less than an hour later one of several major fires would be born just miles east of where we slept. reports vary, but accounts agree it was windy that sunday night, with windspeeds ranging between and miles per hour, and a gust northwest of santa rosa reaching nearly miles per hour. if the diablo winds were not consistently hurricane-strength, they were exceptionally fast, hot, and dry, and they meant business. a time-lapse map of calls shows the first reports of downed power lines and transformers coming in around pm.  the tubbs fire was named for a road that is named for a th-century winemaker who lived in a house in  calistoga that burned to the ground in an eerily similar fire in . in three hours this fire sped miles southwest, growing in size and intent as it gorged on hundreds and then thousands of homes in its way, breaching city limits and expeditiously laying waste to homes in the fountaingrove district before it tore through the journey’s end mobile home park, then reared back on its haunches and leapt across a six-lane divided section of highway , whereupon it gobbled up big-box stores and fast food restaurants flanking cleveland avenue, a business road parallel to the highway.  its swollen belly, fat with miles of fuel, dragged over the area and took out buildings in the  the random manner of fires. kohl’s and kmart were totaled and trader joe’s was badly damaged, while across the street from kmart, joann fabrics was untouched. the fire demolished one mexican restaurant, hopscotched over another, and feasted on a gun shop before turning its ravenous maw toward the quiet middle-class neighborhood of coffey park, making short work of thousands more homes. santa rosa proper is itself only square miles, approximately miles north-south and miles east-west, including the long tail of homes flanking the annadel mountains. by the time kohl’s was collapsing, the “wildfire” was less than miles from our home. i woke up around am, which i tend to do a lot anyway. i walked outside and smelled smoke, saw people outside their homes looking around, and went on twitter and facebook. there i learned of a local fire, forgotten by most in the larger conflagration, but duly noted in brief by the press democrat: a large historic home at th and pierson burned to the ground, possibly from  a downed transformer, and the fire licked the edge of the santa rosa creek trail for another feet. others in the west end have reported the same experience of reading about the th street house fire on social media and struggling to reconcile the reports of this fire with reports of panic and flight from areas north of us and videos of walls of flame. at am i received a call that the university had activated its emergency operations center and i asked if i should report in. i showered and dressed, packed a change of clothes in a tote bag, threw my bag of important documents in my purse, and drove south on my usual route to work, petaluma hill road. the hills east of the road flickered with fire, the road itself was packed with fleeing drivers, and halfway to campus i braked at mph when a massive buck sprang inches in front of my car, not running in that “oops, is this a road?” way deer usually cross lanes of traffic but yawing too and fro, its eyes wide. i still wonder, was it hurt or dying. as i drove onto campus i thought, the cleaning crew. i parked at the library and walked through the building, already permeated with smoky air. i walked as quietly as i could, so that if they were anywhere in the building i would hear them. as i walked through the silent building i wondered, is this the last time i will see these books? these computers? the new chairs i’m so proud of? i then went to the eoc and found the cleaning crew had been accounted for, which was a relief. at least there was food and beer a few hours later i went home. we had a good amount of food in the house, but like many of us who were part of this disaster but not immediately affected by it, i decided to stock up. the entire santa rosa marketplace– costco and trader joe’s, target–on santa rosa avenue was closed, and oliver’s had a line outside of people waiting to get in. i went to the “g&g safeway”–the one that took over a down-at-the-heels family market known as g&g and turned it into a spiffy market with a wine bar, no less–and it was without power, but open for business and, thanks to a backup system, able to take atm cards. i had emergency cash on me but was loathe to use it until i had to. sweating through an n mask i donned to protect my lungs, i wheeled my cart through the dark store, selecting items that would provide protein and carbs if we had to stuff them in our go-bags, but also fresh fruit and vegetables, dairy and eggs–things i thought we might not see for a while, depending on how the disaster panned out. (note, we do already have emergency food, water, and other supplies.) the cold case for beer was off-limits–safeway was trying to retain the cold in its freezer and fridge cases in case it could save the food–but there was a pile of cases of lagunitas lil sumpin sumpin on sale, so that with a couple of bottles of local wine went home with me too. and with one wild interlude, for most of the rest of the time we stayed indoors with the windows closed.  i sent out email updates and made phone calls, kept my phone charged and read every nexil alert, and people at work checked in with one another. my little green library emergency contact card stayed in my back pocket the entire time. we watched tv and listened to the radio, including extraordinary local coverage by ksro, the little station that could; patrolled newspapers and social media; and rooted for sheriff rob, particularly after his swift smack-down of a bogus, breitbart-fueled report that an undocumented person had started the fires. our home was unoccupied for a long time before we moved in this september, possibly up to a decade, while it was slowly but carefully upgraded. the electric range was apparently an early purchase; it was a line long discontinued by frigidaire, with humble electric coils. but it had been unused until we arrived, and was in perfect condition. if an electric range could express gratitude for finally being useful, this one did. i used it to cook homey meals: pork loin crusted with smithfield bacon; green chili cornbread; and my sui generis meatloaf, so named because every time i make it, i grind and add meat scraps from the freezer for a portion of the meat mixture. (it would be several weeks before i felt comfortable grilling again.) we cooked. we stirred. we sauteed. we waited. on wednesday, we had to run an errand. to be truthful, it was an amazon delivery purchased that saturday, when the world was normal, and sent to an amazon locker at the capacious whole foods at coddington mall, a good place to send a package until the mall closes down because the northeast section of the city is out of power and threatened by a massive wildfire. by wednesday, whole foods had reopened, and after picking up my silly little order–a gadget that holds soda cans in the fridge–we drove past russian river brewing company and saw it was doing business, so we had salad and beer for lunch, because it’s a luxury to have beer at lunch and the fires were raging and it’s so hard to get seating there nights and weekends, when i have time to go there, but there we were. we asked our waiter how he was doing, and he said he was fine but he motioned to the table across from ours, where a family was enjoying pizza and beer, and he said they had lost their homes. there were many people striving for routine during the fires, and to my surprise, even the city planning office returned correspondence regarding some work we have planned for our new home, offering helpful advice on the permitting process required for minor improvements for homes in historic districts. because it turns out developers and engineers could serenely ignore local codes and build entire neighborhoods in santa rosa in areas known to be vulnerable to wildfire; but to replace bare dirt with a little white wooden picket fence, or to restore front windows from s-style plate glass to double-hung wooden windows with mullions–projects intended to reinstate our house to its historic accuracy, and to make it more welcoming–requires a written justification of the project, accompanying photos, “proposed elevations (with landscape plan if you are significantly altering landscape) ( copies),” five copies of a paper form, a neighborhood context and vicinity map provided by the city, and a check for $ , followed by “ - weeks” before a decision is issued. the net result of this process is like the codes about not building on ridges, though much less dangerous; most people ignore the permitting process, so that the historic set piece that is presumably the goal is instead rife with anachronisms. and of course, first i had to bone up on the residential building code and the historic district guidelines, which contradict one another on key points, and because the permitting process is poorly documented i have an email traffic thread rivaling in word count byron’s letters to his lovers. but the planning people are very pleasant, and we all seemed to take comfort in plodding through the administrivia of city bureaucracy as if we were not all sheltering in place, masks over our noses and mouths, go-bags in our cars, while fires raged just miles from their office and our home. the wild interlude, or, i have waited my entire career for this moment regarding the wild interlude, the first thing to know about my library career is that nearly everywhere i have gone where i have had the say-so to make things happen, i have implemented key management. that mishmosh of keys in  a drawer, the source of so much strife and arguments, becomes an orderly key locker with numbered labels. it doesn’t happen overnight, because keys are control and control is political and politics are what we tussle about in libraries because we don’t have that much money, but it happens. sometimes i even succeed in convincing people to sign keys out so we know who has them. other times i convince people to buy a locker with a keypad so we sidestep the question of where the key to the key locker is kept. but mostly, i leave behind the lockers, and, i hope, an appreciation for lockers. i realize it’s not quite as impressive as founding the library of alexandria, and it’s not what people bring up when i am introduced as a keynote speaker, and i have never had anyone ask for a tour of my key lockers nor have i ever been solicited to write a peer-reviewed article on key lockers. however unheralded, it’s a skill. my memory insists it was tuesday, but the calendar says it was late monday night when i received a call that the police could not access a door to an area of the library where we had high-value items. it would turn out that this was a rogue lock, installed sometime soon after the library opened in , that unlike others did not have a master registered with the campus, an issue we have since rectified. but in any event, the powers that be had the tremendous good fortune to contact the person who has been waiting her entire working life to prove beyond doubt that key lockers are important. after a brief internal conversation with myself, i silently nixed the idea of offering to walk someone through finding the key. i said i knew where the key was, and i could be there in twenty minutes to find it. i wasn’t entirely sure this was the case, because as obsessed as i am with key lockers, this year i have been preoccupied with things such as my deanly duties, my doctoral degree completion, national association work, our home purchase and household move, and the selection of geegaws like our new gas range (double oven! center griddle!). this means i had not spend a lot of time perusing this key locker’s manifest. so there was an outside chance i would have to find the other key, located somewhere in an another department, which would require a few more phone calls. i was also in that liminal state between sleep and waking; i had been asleep for two hours after being up since am, and i would have agreed to do just about anything. within minutes i was dressed and again driving down petaluma hill road, still busy with fleeing cars.  the mountain ridges to the east of the road roiled with flames, and i gripped the steering wheel, watching for more animals bolting from fire. once in the library, now sour with smoke, i ran up the stairs into my office suite and to the key locker, praying hard that the key i sought was in it. my hands shook. there it was, its location neatly labeled by the key czarina who with exquisite care had overseen the organization of the key locker. the me who lives in the here-and-now profusely thanked past me for my legacy of key management, with a grateful nod to the key czarina as well. what a joy it is to be able to count on people! items were packed up, and off they rolled. after a brief check-in at the eoc, home i went, to a night of “fire sleep”–waking every minutes to sniff the air and ask, is fire approaching?–a type of sleep i would have for the next ten days, and occasionally even now. how we speak to one another in the here and now every time sandy and i interact with people, we ask, how are you. not, hey, how are ya, where the expected answer is “fine, thanks” even if you were just turned down for a mortgage or your mother died. but no, really, how are you. like, fire-how-are-you. and people usually tell you, because everyone has a story. answers range from: i’m ok, i live in petaluma or sebastopol or bodega bay (in soco terms, far from the fire), to i’m ok but i opened my home to family/friends/people who evacuated or lost their homes; or, i’m ok but we evacuated for a week; or, as the guy from home depot said, i’m ok and so is my wife, my daughter, and our cats, but we lost our home. sometimes they tell you and they change the subject, and sometimes they stop and tell you the whole story: when they first smelled smoke, how they evacuated, how they learned they did or did not lose their home. sometimes they have before-and-after photos they show you. sometimes they slip it in between other things, like our cat sitter, who mentioned that she lost her apartment in fountaingrove and her cat died in the fire but in a couple of weeks she would have a home and she’d be happy to cat-sit for us. now, post-fire, we live in that tritest of phrases, a new normal. the library opened that first half-day back, because i work with people who like me believe that during disasters libraries should be the first buildings open and the last to close. i am proud to report the library also housed nomacares, a resource center for those at our university affected by the fire. that first friday back we held our library operations meeting, and we shared our stories, and that was hard but good. but we also resumed regular activity, and soon the study tables and study rooms were full of students, meetings were convened, work was resumed, and the gears of life turned. but the gears turned forward, not back. because there is no way back. i am a city mouse, and part of moving to santa rosa was our decision to live in a highly citified section, which turned out to be a lucky call. but my mental model of city life has been forever twisted by this fire. i drive on just four miles north of our home, and there is the unavoidable evidence of a fire boldly leaping into an unsuspecting city. i go to the fabric store, and i pass twisted blackened trees and a gun store totaled that first night. i drive to and from work with denuded hills to my east a constant reminder. but that’s as it should be. even if we sometimes need respite from those reminders–people talk about taking new routes so they won’t see scorched hills and devastated neighborhoods–we cannot afford to forget. sandy and i have moved around the country in our years together, and we have seen clues everywhere that things are changing and we need to take heed. people like to lapse into the old normal, but it is not in our best interests to do so. all of our stories are different. but we share a collective loss of innocence, and we can never return to where we were. we can only move forward, changed by the fire, changed forever. bookmark to: filed in santa rosa living | | comments off on what burns away neutrality is anything but saturday, august , “we watch people dragged away and sucker-punched at rallies as they clumsily try to be an early-warning system for what they fear lies ahead.” — unwittingly prophetic me, march, . sheet cake photo by flickr user glane . cc by . sometime after last november, i realized something very strange was happening with my clothes. my slacks had suddenly shrunk, even if i hadn’t washed them. after months of struggling to keep myself buttoned into my clothes, i gave up and purchased slacks and jeans one size larger. i call them my t***p pants. this post is about two things. it is about the lessons librarians are learning in this frightening era about the nuances and qualifications shadowing our deepest core values–an era so scary that quite a few of us, as tina fey observed, have acquired t***p pants. and it’s also some advice, take it or leave it, on how to “be” in this era. i suspect many librarians have had the same thoughts i have been sharing with a close circle of colleagues. most librarians take pride in our commitment to free speech. we see ourselves as open to all viewpoints. but in today’s new normal, we have seen that even we have limits. this week, the acrl board of directors put out a statement condemning the violence in charlottesville. that was the easy part. the board then stated, “acrl is unwavering in its long-standing commitment to free exchange of different viewpoints, but what happened in charlottesville was not that; instead, it was terrorism masquerading as free expression.” you can look at what happened in charlottesville and say there was violence “from many sides,” some of it committed by “very fine people” who just happen to be nazis surrounded by their own private militia of heavily-armed white nationalists. or you can look at charlottesville and see terrorism masquerading as free expression, where triumphant hordes descended upon a small university town under the guise of protecting some lame-ass statue of an american traitor, erected sixty years after the end of the civil war, not coincidentally during a very busy era for the klan. decent people know the real reason the nazis were in charlottesville: to tell us they are empowered and emboldened by our highest elected leader. there is no middle ground. you can’t look at charlottesville and see everyday people innocently exercising first amendment rights. as i and many others have argued for some time now, libraries are not neutral.  barbara fister argues, “we stand for both intellectual freedom and against bigotry and hate, which means some freedoms are not countenanced.” she goes on to observe, “we don’t have all the answers, but some answers are wrong.” it goes to say that if some answers are wrong, so are some actions. in these extraordinary times, i found myself for the first time ever thinking the aclu had gone too far; that there is a difference between an unpopular stand, and a stand that is morally unjustifiable. so i was relieved when the national aclu concurred with its three northern california chapters that “if white supremacists march into our towns armed to the teeth and with the intent to harm people, they are not engaging in activity protected by the united states constitution. the first amendment should never be used as a shield or sword to justify violence.” but i was also sad, because once again, our innocence has been punctured and our values qualified. every asterisk we put after “free speech” is painful. it may be necessary and important pain, but it is painful all the same. many librarians are big-hearted people who like to think that our doors are open to everyone and that all viewpoints are welcome, and that enough good ideas, applied frequently, will change people. and that is actually very true, in many cases, and if i didn’t think it was true i would conclude i was in the wrong profession. but we can’t change people who don’t want to be changed. listen to this edition of the daily, a podcast from the new york times, where american fascists plan their activities. these are not people who are open to reason. as david lankes wrote, “there are times when a community must face the fact that parts of that community are simply antithetical to the ultimate mission of a library.” we urgently need to be as one voice as a profession around these issues. i was around for–was part of–the “filtering wars” of the s, when libraries grappled with the implications of the internet bringing all kinds of content into libraries, which also challenged our core values. when you’re hand-selecting the materials you share with your users, you can pretend you’re open to all points of view. the internet challenged that pretense, and we struggled and fought, and were sometimes divided by opportunistic outsiders. we are fortunate to have strong ala leadership this year. the ala board and president came up swinging on tuesday with an excellent presser that stated unequivocally that “the vile and racist actions and messages of the white supremacist and neo-nazi groups in charlottesville are in stark opposition to the ala’s core values,” a statement that (in the tradition of ensuring chapters speak first) followed a strong statement from our virginia state association.  arl also chimed in with a stemwinder of a statement.  i’m sure we’ll see more. but ala’s statement also describes the mammoth horns of the library dilemma. as i wrote colleagues, “my problem is i want to say i believe in free speech and yet every cell in my body resists the idea that we publicly support white supremacy by giving it space in our meeting rooms.” if you are in a library institution that has very little likelihood of exposure to this or similar crises, the answers can seem easy, and our work appears done. but for more vulnerable libraries, it is crucial that we are ready to speak with one voice, and that we be there for those libraries when they need us. how we get there is the big question. i opened this post with an anecdote about my t***p pants, and i’ll wrap it up with a concern. it is so easy on social media to leap in to condemn, criticize, and pick apart ideas. take this white guy, in an internet rag, the week after the election, chastising people for not doing enough.  you know what’s not enough? sitting on twitter bitching about other people not doing enough. this week, siva vaidhyanathan posted a spirited defense of a tina fey skit where she addressed the stress and anxiety of these political times.  siva is in the center of the storm, which gives him the authority to state an opinion about a sketch about charlottesville. i thought fey’s skit was insightful on many fronts. it addressed the humming anxiety women have felt since last november (if not earlier). it was–repeatedly–slyly critical of inaction: “love is love, colin.” it even had a ru paul joke. a lot of people thought it was funny, but then the usual critics came out to call it naive, racist, un-funny, un-woke, advocating passivity, whatever. we are in volatile times, and there are provocateurs from outside, but also from inside. think. breathe. step away from the keyboard. take a walk. get to know the mute button in twitter and the unfollow feature in facebook. pull yourself together and think about what you’re reading, and what you’re planning to say. interrogate your thinking, your motives, your reactions. i’ve read posts by librarians deriding their peers for creating subject guides on charlottesville, saying instead we should be punching nazis. get a grip. first off, in real life, that scenario is unlikely to transpire. you, buried in that back cubicle in that library department, behind three layers of doors, are not encountering a nazi any time soon, and if you did, i recommend fleeing, because that wackdoodle is likely accompanied by a trigger-happy militiaman carrying a loaded gun. (there is an entire discussion to be had about whether violence to violence is the politically astute response, but that’s for another day.) second, most librarians understand that their everyday responses to what is going on in the world are not in and of themselves going to defeat the rise of fascism in america. but we are information specialists and it’s totally wonderful and cool to respond to our modern crisis with information, and we need to be supportive and not go immediately into how we are all failing the world. give people a positive framework for more action, not scoldings for not doing enough. in any volatile situation, we need to slow the eff down and ask how we’re being manipulated and to what end; that is a lesson the aclu just learned the hard way. my colleague michael stephens is known for saying, “speak with a human voice.” i love his advice, and i would add, make it the best human voice you have. we need one another, more than we know.   bookmark to: filed in intellectual freedom, librarianship | | comments ( ) mpow in the here and now sunday, april , sometimes we have monsters and ufos, but for the most part it’s a great place to work i have coined a few biblioneologisms in my day, but the one that has had the longest legs is mpow (my place of work), a convenient, mildly-masking shorthand for one’s institution. for the last four years i haven’t had the bandwidth to coin neologisms, let alone write about mpow*. this silence could be misconstrued. i love what i do, and i love where i am. i work with a great team on a beautiful campus for a university that is undergoing a lot of good change. we are just wrapping up the first phase of a visioning project to help our large, well-lit building serve its communities well for the decades to come. we’re getting ready to join the other csu libraries on onesearch, our first-ever unified library management system. we have brought on some great hires, thrown some great events (the last one featured four black panthers talking about their life work — wow!). with a new dean (me) and a changing workforce, we are developing our own personality. it’s all good… and getting better the library was doing well when i arrived, so my job was to revitalize and switch it up. as noted in one of the few posts about mpow, the libraries in my system were undergoing their own reassessment, and that has absorbed a fair amount of our attention, but we continue to move forward. sometimes it’s the little things. you may recall i am unreasonably proud of the automated table of contents i generated for my dissertation, and i also feel that way about mpow’s slatwall book displays, which in ten areas beautifully market new materials in spaces once occupied by prison-industry bookcases or ugly carpet and unused phones (what were the phones for? perhaps we will never know). the slatwall was a small project that was a combination of expertise i brought from other libraries, good teamwork at mpow, and knowing folks. the central problem was answered quickly by an email to a colleague in my doctoral program (hi, cindy!) who manages public libraries where i saw the displays i thought would be a good fit. the team selected the locations, a staff member with an eye for design recommended the color, everyone loves it, and the books fly off the shelves. if there is any complaining, it is that we need more slatwall. installed slatwall needs to wait until we know if we are moving/removing walls as part of our building improvements. a bigger holdup is that we need to hire an access services manager, and really, anything related to collections needs the insight of a collections librarian. people… who need people… but we had failed searches for both these positions… in the case of collections, twice. *cue mournful music* we have filled other positions with great people now doing great things, and are on track to fill more positions, but these two, replacing people who have retired, are frustrating us. the access services position is a managerial role, and the collections librarian is a tenure-track position. both offer a lot of opportunity. we are relaunching both searches very soon (i’ll post a brief update when that happens), and here’s my pitch. if you think you might qualify for either position, please apply. give yourself the benefit of the doubt. if you know someone who would be a good fit for either position, ask them to apply. i recently mentored someone who was worried about applying to a position. “will that library hold it against me if i am not qualified?” the answer is of course not!  (and if they do, well, you dodged that bullet!) i have watched far too many people self-select out of positions they were qualified for (hrrrrmmmm particularly one gender…). qualification means expertise + capacity + potential. we expect this to be a bit of a stretch to you. if a job is really good, most days will have a “fake it til you make it” quality. this is also not a “sink or swim” institution. if it ever was, those days are in the dim past, long before i arrived. the climate is positive. people do great things and we do our best to support them. i see our collective responsibility as an organization as to help one another succeed. never mind me and my preoccupation with slatwall (think of it as something to keep the dean busy and happy, like a baby with a binky). we are a great team, a great library, on a great campus, and we’re a change-friendly group with a minimum of organizational issues, and i mean it. i have worked enough places to put my hand on a bible and swear to that. it has typical organizational challenges, and it’s a work in progress… as are we all. the area is crazily expensive, but it’s also really beautiful and so convenient for any lifestyle. you like city? we got city. you like suburb, or ocean, or mountain, or lake? we got that! anyway, that’s where i am with mpow: i’m happy enough, and confident enough, to use this blog post to beg you oh please help us fill these positions. the people who join us will be glad you did. ### *   sidebar: the real hilarity of coining neologisms is that quite often someone, generally of a gender i do not identify with, will heatedly object to the term, as happened in when i coined the term biblioblogosphere. then, as i noted in that post from , others will defend it. that leads me to believe that creating new words is the linguistic version of lifting one’s hind leg on a tree. bookmark to: filed in uncategorized | | comments ( ) questions i have been asked about doctoral programs wednesday, march , about six months ago i was visiting another institution when someone said to me, “oh, i used to read your blog, back in the day.” ah yes, back in the day, that pleistocene era when i wasn’t working on a phd while holding down a big job and dealing with the rest of life’s shenanigans. so now the phd is done–i watched my committee sign the signature page, two copies of it, even, before we broke out the champers and celebrated–and here i am again. not blogging every day, as i did once upon a time, but still freer to put virtual pen to electronic paper as the spirit moves me. i have a lot to catch up on–for example, i understand there was an election last fall, and i hear it may not have gone my way–but the first order of business is to address the questions i have had from library folk interested in doctoral programs. note that my advice is not directed at librarians whose goal is to become faculty in lis programs. dropping back in one popular question comes from people who had dropped out of doctoral programs. could they ever be accepted into a program again? i’m proof there is a patron saint for second chances. i spent one semester in a doctoral program in and dropped out for a variety of reasons–wrong time, wrong place, too many life events happening. at the time, i felt that dropping out was the academic equivalent of you’ll never eat lunch in this town again, but part of higher education is a series of head games, and that was one of them. the second time around, i had a much clearer idea of what i wanted from a program and what kind of program would work for me, and i had the confluence of good timing and good luck. the advice tom galvin gave me in , when sandy and i were living in albany and when tom–a longtime ala activist and former ala exec director–was teaching at suny albany, still seems sound: you can drop out of one program and still find your path back to a doctorate, just don’t drop out of two programs. i also have friends who suffered through a semester or two, then decided it wasn’t for them. when i started the program, i remember thinking “i need this ph.d. because i could never get a job at, for example, x without it.” then i watched as someone quite accomplished, with no interest in ever pursuing even a second masters, was hired at x. there is no shame in deciding the cost/benefit analysis isn’t there for you–though i learned, through this experience, that i was in the program for other, more sustainable reasons. selecting your program i am also asked what program to attend. to that my answer is, unless you are very young and can afford to go into, and hopefully out of, significant amounts of debt, pick the program that is most affordable and allows you to continue working as a professional (though if you are at a point in life when you can afford to take a couple years off and get ‘er done, more power to you). that could be a degree offered by your institution or in cooperation with another institution, or otherwise at least partially subsidized. i remember pointing out to an astonished colleague that the ed.d. he earned for free (plus many saturdays of sweat equity) was easily worth $ , , based on the tuition rate at his institution. speaking of which, i get asked about ph.d. versus ed.d. this can be a touchy question. my take: follow the most practical and affordable path available to you that gets you the degree you will be satisfied with and that will be the most useful to you in your career. but whether ed.d. or ph.d., it’s still more letters after your name than you had before you started. where does it hurt? what’s the hardest part of a doctoral program? for me, that was a two-way tie between the semester coursework and the comprehensive exams. the semester work was challenging because it couldn’t be set aside or compartmentalized. the five-day intensives were really seven days for me as i had to fly from the left coast to boston. the coursework had deadlines that couldn’t be put aside during inevitable crises. the second semester was the hardest, for so many reasons, not the least of which is that once i had burned off the initial adrenaline, the finish line seemed impossibly far away; meanwhile, the tedium of balancing school and work was settling in, and i was floundering in alien subjects i was struggling to learn long-distance. don’t get me wrong, the coursework was often excellent: managing in a political environment, strategic finance, human resources, and other very practical and interesting topics. but it was a bucket o’ work, and when i called a colleague with a question about chair manufacturers (as one does) and heard she was mired in her second semester, i immediately informed her this too shall pass. ah, the comprehensive exams. i would say i shall remember them always, except they destroyed so much of my frontal lobe, that will not be possible. the comps required memorizing piles of citations–authors and years, with salient points–to regurgitate during two four-hour closed-book tests.  i told myself afterwards that the comps helped me synthesize major concepts in grand theory, which is a dubious claim but at least made me feel better about the ordeal. a number of students in my program helped me with comps. my favorite memory is of colleague gary shaffer, who called me from what sounded like a windswept city corner to offer his advice. i kept hearing this crinkling sound. the crinkling became louder. “always have your cards with you,” gary said. he had brought a sound prop: the bag of index cards he used to constantly drill himself. i committed myself to continuous study until done, helped by partnering with my colleague chuck in long-distance comps prep. we didn’t study together, but we compared timelines and kept one another apprised of our progress. you can survive a doctoral program without a study buddy, but whew, is it easier if you have one. comps were an area where i started with old tech–good old paper index cards–and then asked myself, is this how it’s done these days? after research, i moved on to electronic flashcards through quizlet. when i wasn’t flipping through text cards on my phone, ipad, or computer, i was listening to the cards on my phone during my run or while driving around running errands. writing != not writing so about that dissertation. it was a humongous amount of work, but the qualifying paper that preceded it and the coursework and instruction in producing dissertation-quality research gave me the research design skills i needed to pull it off. once i had the data gathered, it was just a lot of writing. this, i can do. not everyone can. writing is two things (well, writing is many things, but we’ll stick with two for now): it is a skill, and it is a discipline. if you do not have those two things, writing will be a third thing: impossible. here is my method. it’s simple. you schedule yourself, you show up, and you write. you do not talk about how you are going to write, unless you are actually going to write. you do not tweet that you are writing (because then you are tweeting, not writing). you do not do other things and feel guilty because you are not writing. (if you do other things, embrace them fully.) i would write write write write write, at the same chair at the same desk (really, a costco folding table) facing the same wall with the same prompts secured to the wall with painter’s tape that on warm days would loosen, requiring me to crawl under my “desk” to retrieve the scattered papers, which on many days was pretty much my only form of exercise. then i would write write write write write some more, on weekends, holiday breaks, and the occasional “dissercation day,” as i referred to vacation days set aside for this purpose. dissercation days had the added value that  i was very conscious i was using vacation time to write, so i didn’t procrastinate–though in general i find procrastinating at my desk a poor use of time; if i’m going to procrastinate, let me at least get some fresh air. people will advise you when and how to write. a couple weekends ago i was rereading stephen king’s on writing–now that i can read real books again–in which king recommends writing every day. if that works for you, great. what worked for me was using weekends, holidays, or vacation days; writing early in the day, often starting as early as am; taking a short exercise break or powering through until mid-afternoon; and then stopping no later than pm, many times more like pm if i hadn’t stopped by then. when i tried to write on weekday mornings, work would distract me. not actual tasks, but the thought of work. it would creep into my brain and then i would feel the urgent need to see if the building consultant had replied to my email or if i had the agenda ready for the program and marketing meeting. it also takes me about an hour to get into a writing groove, so by the time the words were flowing it was time to get ready for work. as for evenings, a friend of mine observed that i’m a lark, not an owl. the muse flees me by mid-afternoon. (this also meant i saved the more chore-like tasks of writing for the afternoon.) the key is to find your own groove and stick to it. if your groove isn’t working, maybe it’s not your groove after all. do not take off too much time between writing sessions. i had to do that a couple of times for six to eight weeks each time, during life events such as household moves and so on, and it took some revisiting to reacquaint myself with my writing (which was stephen king’s main, and excellent, point in his recommendation to write daily). even when i was writing on a regular basis i often spent at least an hour at the start of the weekend rereading my writing from page to ensure that my most recent writing had a coherent flow of reasoning and narrative and that the writing for that day would be its logical descendant. another universal piece of advice is to turn off the technology. i see people tweeting “i’m writing my dissertation right now” and i think, no you aren’t. i used a mac app called howler timer to give me writing sieges of , , , or minutes, depending on my degree of focus for that day, during which all interruptions–email, facebook, twitter, etc.–were turned off. twitter and facebook became snack breaks, though i timed those snacks as well. i had favorite pandora stations to keep me company and drown out ambient noise, and many, many cups of herbal tea. technology will save us all a few technical notes about technology and doctoral programs. with the exception of the constant allure of social networks and work email, it’s a good thing. i used kahn academy and online flash cards to study for the math portion of the gre.  as noted earlier, i used quizlet for my comps, in part because this very inexpensive program not only allowed me to create digital flashcards but also read them aloud to me on my iphone while i exercised or ran errands. i conducted interviews using facetime with an inexpensive plug-in, call recorder, that effortlessly produced digital recordings, from which the audio files could be easily split out. i then emailed the audio files to valerie, my transcriptionist, who lives several thousand miles away but always felt as if she were in the next room, swiftly and flawlessly producing transcripts. i used dedoose, a cloud-based analytical product, to mark up the narratives, and with the justifiable paranoia of any doctoral student, exported the output to multiple secure online locations. i dimly recall life before such technology, but cannot fathom operating in such a world again, or how much longer some of the tasks would have taken.  i spent some solid coin on things like paying a transcriptionist, but when i watch friends struggling to transcribe their own recordings, i have no regrets. there are parts of my dissertation i am exceptionally proud of, but i admit particular pride for my automatically-generated table of contents, just one of many skills i learned through youtube (spoiler alert: the challenge is not marking up the text, it’s changing the styles to match your requirements. word could really use a style set called just times roman please). and of course, there were various library catalogs and databases, and hundreds of e-journals to plumb, activity i accomplished as far away from your typical “library discovery layer” as possible. you can take google scholar away from me when you pry it from my cold, dead hands. i also plowed through a lot of print books, and many times had to do backflips to get the book in that format. journal articles work great in e-format (though i do have a leaning paper pillar of printed journal articles left over from comps review and classes). books, not so much. i needed to have five to fifteen books simultaneously open during a writing session, something ebooks are lame at.  i don’t get romantic about the smell of paper blah blah blah, but when i’m writing, i need my tools in the most immediately accessible format possible, and for me that is digital for articles and paper for books. nothing succeeds like success your cohort can be very important,  and indeed i remember all of them with fondness but one with particular gratitude. nevertheless, you alone will cross the finish line. i was unnerved when one member of our cohort dropped out after the first semester, but i shouldn’t have been. doctoral student attrition happens throughout the academy, no less so in libraryland. like the military, or marriage, you really have no idea what it’s like until you’re in it, and it’s not for everyone. it should be noted that the program i graduated from has graduated, or will graduate, nearly all of the students who made it past the first two semesters, which in turn is most of the people who entered the program in its short but glorious life–another question you should investigate while looking at programs. it turned out that for a variety of reasons that made sense, the cohort i was in was the last for this particular doctoral program. that added a certain pressure since each class was the last one to ever be offered, but it also encouraged me to keep my eyes on the prize. i also, very significantly, had a very supportive committee, and most critically, i fully believed they wanted me to succeed. i also had a very supportive spouse, with whom i racked up an infinity of backlogged honey-dos and i-owe-you-for-this promises. regarding success and failure, at the beginning of the program, i asked if anyone had ever failed out of the program. the answer was no, everyone who left self-selected. i later asked the same question regarding comps: had anyone failed comps? the answer was that a student or two had retaken a section of comps in order to pass, but no one had completely failed (and you got one do-over if that happened). these were crucial questions for me. it also helped me to reflect on students who had bigger jobs, or were also raising kids, or otherwise were generally worse off than me in the distraction department. if so-and-so, with the big ivy league job, or so-and-so, with the tiny infant, could do it, couldn’t i? (there is a fallacy inherent here that more prestigious schools are harder to administer, but it is a fallacy that comforted me many a day.) onward i am asked what i will “do” with my ph.d. in higher education, a doctorate is the expected degree for administrators, and indeed, the news of my successful doctoral defense was met with comments such as “welcome to the club.” so, mission accomplished. also, i have a job i love, but having better marketability is never a bad idea, particularly in a political moment that can best be described as volatile and unpredictable. i can consult. i can teach (yes, i already could teach, but now more fancy-pants). i could make a reservation at a swanky bistro under the name dr. oatmeal and only half of that would be a fabrication. the world is my oyster! frankly, i did not enter the program with the idea that i would gain skills and develop the ability to conduct doctoral-quality research (i was really shooting for the fancy six-sided tam), but that happened and i am pondering what to do with this expertise. i already have the joy of being pedantic, if only quietly to myself. don’t tell me you are writing a “case study” unless it has the elements of a case study not to mention the components of any true research design. otherwise it’s just anecdata. and of course, when it comes to owning the area of lgtbq leadership in higher education, i am totally m.c. hammer: u can’t touch this! i would not mind being part of the solution for addressing the dubious quality of so much lis “research.” libraryland needs more programs such as the institute for research design in librarianship to address the sorry fact that basic knowledge of the fundamentals of producing industry-appropriate research is in most cases not required for a masters degree in library science, which at least for academic librarianship, given the student learning objectives we claim to support, is absurd. i also want to write a book, probably continuing the work i have been doing with documenting the working experiences of lgbtq librarians. but first i need to sort and purge my home office, revisit places such as hogwarts and narnia, and catch up on some of those honey-dos and i-owe-you-for-this promises. and buy a six-sided tam. bookmark to: filed in uncategorized | | comments ( ) a scholar’s pool of tears, part : the pre in preprint means not done yet tuesday, january , note, for two more days, january and , you (as in all of you) have free access to my article, to be real: antecedents and consequences of sexual identity disclosure by academic library directors. then it drops behind a paywall and sits there for a year. when i wrote part of this blog post in late september, i had keen ambitions of concluding this two-part series by discussing “the intricacies of navigating the liminal world of oa that is not born oa; the oa advocacy happening in my world; and the implications of the publishing environment scholars now work in.” since then, the world, and my priorities have changed. my goals are to prevent nuclear winter and lead our library to its first significant building upgrades since it opened close to years ago. but at some point i said on twitter, in response to a conversation about posting preprints, that i would explain why i won’t post a preprint of to be real. and the answer is very simple: because what qualifies as a preprint for elsevier is a draft of the final product that presents my writing before i incorporated significant stylistic guidance from the second reviewer, and that’s not a version of the article i want people to read. in the pre-elsevier draft, as noted before, my research is present, but it is overshadowed by clumsy style decisions that reviewer presented far more politely than the following summary suggests: quotations that were too brief; rushing into the next thought without adequately closing out the previous thought; failure to loop back to link the literature review to the discussion; overlooking a chance to address the underlying meaning of this research; and a boggy conclusion. a crucial piece of advice from reviewer was to use pseudonyms or labels to make the participants more real. all of this advice led to a final product, the one i have chosen to show the world. that’s really all there is to it. it would be better for the world if my article were in an open access publication, but regardless of where it is published, i as the author choose to share what i know is my best work, not my work in progress. the oa world–all sides of it, including those arguing against oa–has some loud, confident voices with plenty of “shoulds,” such as the guy (and so many loud oa voices are male) who on a discussion list excoriated an author who was selling self-published books on amazon by saying “people who value open access should praise those scholars who do and scorn those scholars who don’t.” there’s an encouraging appproach! then there are the loud voices announcing the death of oa when a journal’s submissions drop, followed by the people who declare all repositories are potemkin villages, and let’s not forget the fellow who curates a directory of predatory oa journals that is routinely cited as an example of what’s wrong with scholarly publishing. i keep saying, the scholarly-industrial complex is broken. i’m beyond proud that the council of library deans for the california state university–my peers–voted to encourage and advocate for open access publishing in the csu system. i’m also excited that my library has its first scholarly communications librarian who is going to bat on open access and open educational resources and all other things open–a position that in consultation with the library faculty i prioritized as our first hire in a series of retirement/moving-on faculty hires. but none of that translates to sharing work i consider unfinished. we need to fix things in scholarly publishing and there is no easy, or single, path. and there are many other things happening in the world right now. i respect every author’s decision about what they will share with the world and when and how they will share it. as for my decision–you have it here. bookmark to: filed in uncategorized | | comments off on a scholar’s pool of tears, part : the pre in preprint means not done yet ‹ older posts search for: recto and verso about free range librarian comment guidelines writing: clips & samples you were saying… k.g. schneider on i have measured out my life in doodle polls thomas dowling on i have measured out my life in doodle polls chad on i have measured out my life in doodle polls dale mcneill on i have measured out my life in doodle polls walter underwood on an old-skool blog post recent posts (dis)association i have measured out my life in doodle polls memento dmv an old-skool blog post keeping council browse by month browse by month select month may  ( ) april  ( ) march  ( ) january  ( ) november  ( ) august  ( ) april  ( ) march  ( ) january  ( ) november  ( ) september  ( ) june  ( ) march  ( ) january  ( ) september  ( ) august  ( ) july  ( ) april  ( ) march  ( ) january  ( ) october  ( ) september  ( ) august  ( ) june  ( ) april  ( ) february  ( ) january  ( ) december  ( ) october  ( ) august  ( ) july  ( ) june  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) july  ( ) categories categoriesselect category american liberry ass’n annual lists another library blog association nerd bad entry titles best of frl blog problems blogging blogging and ethics blogging and rss blogher blogs and journalism blogs worth reading book reviews business . california dreamin’ car shopping cats who blog cla shenanigans conferences congrunts cooking creative nonfiction cuba customer service digital divide issues digital preservation ebooks essays from the mp ethics evergreen ils family values five minute reviews flickr fun flori-duh friends frl blogroll additions frl penalty box frl spotlight reviews gardening whatnots gay rights gender and librarianship get a grip get real! god’s grammar google gormangate hire edukayshun homebrewing homosexual agenda hot tech intellectual freedom intellectual property ipukarea katrina and libraries kudos and woo-hoos lastentries leadership lgbt librarianship librarian wisdom librarianship library . library journal librewians lies damn lies life linkalicious lita councilor memes mfa-o-rama military life movable type movie reviews mpow mpow wishlist must-read blogs nasig paper next gen catalog online learning onomies open access open data open source software our world people sitings podcasts politics postalicious prayer circle product reviews reading recipes recto and verso regency zombies regular issues religion rss-alicious santa rosa living search search standards schmandards tagging talks and tours tallahassee dining tallahassee living tanstaafl test entries the big o this and that top tech trends travel schmavel treo time twitterprose two minutes hate uncategorized upcoming gigs uppity wimmin vast stupidity war no more wogrofubico women wordpress writing writing for the web ye olde tech tags ala a mile down bacabi bush castro cil cloud tests cnf creative nonfiction crowdvine david vann defragcon defragcon defrag defragcon defragcon defrag shootingonesownfoot defragcon defragcon defrag digital preservation email environment essays flaming homophobia gay gay rights glbt harvey milk homebrew hybrid iasummit iasummit idjits journals keating lockss mccain mea culpas mullets naked emperors obama ready fire aim san francisco silly tags swift tag clouds tagging vala-caval wogrofubico writing scribbly stuff log in entries feed comments feed wordpress.org © k.g. schneider ¶ thanks, wordpress. ¶ veryplaintxt theme by scott allan wallick. ¶ it's nice xhtml & css. futurearch, or the future of archives... monday, september this blog is no longer being updated but you will find posts on some of our digital archives work here: http://blogs.bodleian.ox.ac.uk/archivesandmanuscripts/category/activity/digital-archives/  posted by susan thomas at : no comments: thursday, october born digital: guidance for donors, dealers, and archival repositories today clir published a report which is designed to provide guidance on the acquisition of archives in a digital world. the report provides recommendations for donors and dealers, and for repository staff, based on the experiences of archivists and curators at ten repositories in the uk and us, including the bodleian. you can read it here: http://www.clir.org/pubs/reports/pub posted by susan thomas at : no comments: labels: acquisitions, dealers, donors, guidance, scoping, sensitivity review, transfers thursday, january digital preservation: what i wish i knew before i started the digital preservation coalition (dpc) and archives and records association event ‘digital preservation: what i wish i knew before i started, ’ took place at birkbeck college, london on january . a half-day conference, it brought together a group of leading specialists in the filed to discuss the challenges of digital collection. william kilbride kicked off events with his presentation ‘what’s the problem with digital preservation’. he looked at the traditional -or in his words "bleak"- approach that is too often characterised by data loss. william suggested we need to create new approaches, such as understanding the actual potential and value of output; data loss is not the issue if there is no practical case for keeping or digitising material. some key challenges facing digital archivists were also outlined and it was argued that impediments such as obsolescence issues and storage media failure are a problem bigger than one institution, and collaboration across the profession is paramount. helen hockx-yu discussed how the british library is collaborating with other institutions to archive websites of historical and cultural importance through the uk web archive. interestingly, web archiving at the british library is now a distinct business unit with a team of eight people. like william, helen also emphasised how useful it is to share experiences and work together, both internally and externally. next, dave thompson, digital curator at the wellcome library stepped up with a lively presentation entitled ‘so you want to go digital’. for dave, it is “not all glamour, metadata and preservation events”, which he illustrated with an example of his diary for the week. he then looked at the planning side of digital preservation, arguing that if digital preservation is going to work, not only are we required to be creative, but we need to be sure what we are doing is sustainable. dave highlighted some key lessons from his career thus far: .     we must be willing to embrace change .     data preservation is not solely an exercise in technology but requires engagement with data and consumers. .     little things we do everyday in the workplace are essential to efficient digital preservation, including backup, planning, it infrastructure, maintenance and virus checking. .     it needs to be easy to do and within our control, otherwise the end product is not preservation. .     continued training is essential so we can make the right decisions in appraisal, arrangement, context, description and preservation. .     we must understand copyright access. patricia sleeman, digital archivist at university of london computer centre then highlighted a selection of practical skills that should underpin how we move forward with digital preservation. for instance, she stressed that information without context is meaningless and has little value without the appropriate metadata. like the other speakers, she suggested planning is paramount, and before we start a project we must look forward and learn about how we will finish it. as such, project management is an essential tool, including the ability to understand budgets. adrian brown from the parliamentary archives continued with his presentation 'a day in the life of a digital archivist'. his talk was a real eye-opener on just how busy and varied the role is. a typical day for adrian might involve talking to information owners about possible transfers, ingesting and cataloguing new records into the digital repository, web archiving, providing demos to various groups, drafting preservation policies and developing future requirements such as building software, software testing and preservation planning. no room to be bored here! like dave thompson, adrian noted that while there are more routine tasks such as answering emails and endless meetings, the rewards from being involved in a new and emerging discipline far outweigh the more mundane moments. we then heard from simon rooks from the bbc multi-media archive who described the varied roles at his work (i think some of the audience were feeling quite envious here!). in keeping with the theme of the day, simon reflected on his career path. originally trained as a librarian, he argued that he would have benefited immensely as a digital archivist if he had learnt the key functions of an archivist’s role early on. he emphasised how the same archival principles (intake, appraisal and selection, cataloguing, access etc.) underpin our practices, whether records are paper or digital, and whether we are in archives or records management. these basic functions help to manage many of the issues concerning digital content. simon added that the oais functional model is an approach that has encouraged multi-disciplinary team-work amongst those working at the bbc. after some coffee there followed a q&a session, which proved lively and engaging. a lot of ground was covered including how appropriate it is to distinguish 'digital archivists' from 'archivists'. we also looked at issues of cost modelling and it was suggested that while we need to articulate budgets better, we should perhaps be less obsessed with costs and focus on the actual benefits and return of investment from projects. there was then some debate about what students should expect from undertaking the professional course. most agreed that it is simply not enough to have the professional qualification, and continually acquiring new skill sets is essential. a highly enjoyable afternoon then, with some thought-provoking presentations, which were less about the techie side of digital preservation, and more a valuable lesson on the planning and strategies involved in managing digital assets. communications, continued learning and project planning were central themes of the day, and importantly, that we should be seeking to build something that will have value and worth. posted by anonymous at : no comments: tuesday, november transcribe at the archive i do worry from time to time that textual analogue records will come to suffer from their lack of searchability when compared with their born-digital peers. for those records that have been digitised, crowd-sourcing transcription could be an answer. a rather neat example of just that is the archive platform from the national archives of australia. arhive is a pilot from naa's labs which allows anyone to contribute to the transcription of records. to get started they have chosen a selection of records from their brisbane office which are 'known to be popular'. not too many of them just yet, but at this stage i guess they're just trying to prove the concept works. all the items have been ocr-ed, and users can choose to improve or overwrite the results from the ocr process. there are lots of nice features here, including the ability to choose documents by a difficulty rating (easy, medium or hard) or by type (a description of the series by the looks of it). the competitive may be inspired by the presence of a leader board, while the more collaborative may appreciate the ability to do as much as you can, and leave the transcription for someone else to finish up later. you can register for access to some features, but you don't have to either. very nice. posted by susan thomas at : no comments: labels: crowdsourcing, searchability, transcription friday, october atlas of digital damages an atlas of digital damage has been created on flickr, which will provide a handy resource for illustrating where digital preservation has failed. perhaps 'failed' is a little strong. in some cases the imperfection may be an acceptable trade off. a nice, and useful, idea. contribute here. posted by susan thomas at : no comments: labels: corruption, damage saturday, october dayofdigitalarchives yesterday was day of digital archives ! (and yes, i'm a little late posting...) this 'day' was initiated last year to encourage those working with digital archives to use social media to raise awareness of digital archives: "by collectively documenting what we do, we will be answering questions like: what are digital archives? who uses them? how are they created and managed? why are they important?" . so in that spirit, here is a whizz through my week. coincidentally not only does this week include the day of digital archives but it's also the week that the digital preservation coalition (or dpc) celebrated its th birthday. on monday afternoon i went to the reception at the house of lords to celebrate that landmark anniversary. a lovely event, during which the shortlist for the three digital preservation awards was announced. it's great to see three award categories this time around, including one that takes a longer view: 'the most outstanding contribution to digital preservation in the last decade'. that's quite an accolade. on the train journey home from the awards i found some quiet time to review a guidance document on the subject of acquiring born-digital materials. there is something about being on a train that puts my brain in the right mode for this kind of work. nearing its final form, this guidance is the result of a collaboration between colleagues from a handful of archive repositories. the document will be out for further review before too long, and if we've been successful in our work it should prove helpful to creators, donors, dealers and repositories. part of tuesday i spent reviewing oral history guidance drafted by a colleague to support the efforts of oxford medical alumni in recording interviews with significant figures in the world of oxford medicine. oral histories come to us in both analogue and digital formats these days, and we try to digitise the former as and when we can. the development of the guidance is in the context of our saving oxford medicine initiative to capture important sources for the recent history of medicine in oxford. one of the core activities of this initiative is survey work, and it is notable that many archives surveyed include plenty of digital material. web archiving is another element of the 'capturing' work that the saving oxford medicine team has been doing, and you can see what has been archived to-date via archive-it, our web archiving service provider. much of wednesday morning was given over to a meeting of our building committee, which had very little to do with digital archives! in the afternoon, however, we were pleased to welcome visitors from mit - nancy mcgovern and kari smith. i find visits like these are one of the most important ways of sharing information, experiences and know-how, and as always i got a lot out of it. i hope nancy and kari did too! that same afternoon, colleagues returned from a trip to london to collect another tranche of a personal archive. i'm not sure if this instalment contains much in the way of digital material, but previous ones have included hundreds of floppies and optical media, some zip discs and two hard disks. also arriving on wednesday, some digital library records courtesy of our newly retired executive secretary; these supplement materials uploaded to beam (our digital archives repository) last week. on thursday, i found some time to work with developer carl wilson on our spruce-funded project. becky nielsen (our recent trainee, now studying at glasgow) kicked off this short project with carl, following on from her collaboration with peter may at a spruce mashup in glasgow. i'm picking up some of the latter stages of testing and feedback work now becky's started her studies. the development process has been an agile one with lots of chat and testing. i've found this very productive - it's motivating to see things evolving, and to be able to provide feedback early and often. for now you can see what's going on at github here, but this link will likely change once we settle on a name that's more useful than 'spruce-beam' (doesn't tell you much, does it?! something to do with trees...) one of the primary aims of this tool is to facilitate collection analysis, so we know better what our holdings are in terms of format and content. we expect that it will be useful to others, and there will be more info. on it available soon. friday was more spruce work with carl, among other things. also a few meetings today - one around funding and service models for digital archiving, and a meeting of the bodleian's elegal deposit group (where my special interest is web archiving). the curious can read more about e-legal deposit at the dcms website.  one fun thing that came out of the day was that the saving oxford medicine team decided to participate in a women in science wikipedia editathon. this will be hosted by the radcliffe science library on october as part of a series of 'engage' events on social media organised by the bodleian and the university's computing services. it's fascinating to contemplate how the range and content of wikipedia articles change over time, something a web archive would facilitate perhaps.  for more on working with digital archives, go take a look at the great posts at the day of digital archives blog! posted by susan thomas at : no comments: labels: acquisition, collection analysis, dayofdigarc, doda , dpc, mashup, spruce, webarchiving friday, june sprucing up the tikafileidentifier as it's international archives day tomorrow, i thought it would be nice to quickly share some news of a project we are working on, which should help us (and others!) to carry out digital preservation work a little bit more efficiently. following the spruce mashup i attended in april, we are very pleased to be one of the organizations granted a spruce project funding award, which will allow us to 'spruce' up the tikafileidentifier tool. (paul has written more about these funding awards on the opf site.) tikafileidentifier is the tool which was developed at the mashup to address a problem several of us were having extracting metadata from batches of files, in our case within iso images. due to the nature of the mashup event the tool is still a bit rough around the edges, and this funding will allow us to improve on it. we aim to create a user interface and a simpler install process, and carry out performance improvements. plus, if resources allow, we hope to scope some further functionality improvements. this is really great news, as with the improvements that this funding allows us to make, the tikafileidentifier will provide us with better metadata for our digital files more efficiently than our current system of manually checking each file in a disk image. hopefully the simpler user interface and other improvements means that other repositories will want to make use of it as well; i certainly think it will be very useful! posted by rebecca nielsen at : no comments: labels: metadata, spruce, tikafileidentifier friday, april spruce mashup: th- th april earlier this week i attended a day mashup event in glasgow, organised as part of the spruce project.  spruce aims to enable higher education institutions to address preservation gaps and articulate the business case of digital preservation, and the mashup serves as a way to bring practitioners and developers together to work on these problems. practitioners took along a collection which they were having issues with, and were paired off with a developer who could work on a tool to provide a solution.  day after some short presentations on the purpose of spruce and the aims of the mashup, the practitioners presented some lightning talks on our collections and problems. these included dealing with email attachments, preserving content off facebook, software emulation, black areas in scanned images, and identifying file formats with incorrect extensions, amongst others. i took along some disk images, as we find it very time-consuming to find out date ranges, file types and content of the files in the disk image, and we wanted a more efficient way to get this metadata. more information on the collections and issues presented can be found at the wiki. after a short break for coffee (and excellent cakes and biscuits) we were sorted into small groups of collection owners and developers to discuss our issues in more detail. in my group this led to conversations about natural language processing, and the possibilities of using predefined subjects to identify files as being about a particular topic, which we thought could be really helpful, but somewhat impossible to create in a couple of days! we were then allocated our developers. as there were a few of us with problems with file identification, we were assigned to the same developer, peter may from the bl. the day ended with a short presentation from william kilbride on the value of digital collections and neil beagrie's benefits framework. day the developers were packed off to another room to work on coding, while we collection owners started to look into the business case for digital preservation. we used beagrie’s framework to consider the three dimensions of benefits (direct or indirect, near- or long-term, and internal or external), as they apply to our institutions. when we reported back, it was interesting to see how different organisations benefit in different ways. we also looked at various stakeholders and how important or influential they are to digital preservation. write ups of these sessions are also available at the wiki.   the developers came back at several points throughout the day to share their progress with us, and by lunchtime the first solution had been found! the first steps to solving our problem were being made; peter had found a program, apache tika, which can parse a file and extract metadata (it can also identify the content type of files with incorrect extensions), and had written a script so that it could work through a directory of files, and output the information into a csv spreadsheet. this was a really promising start, especially due to the amount of metadata that could potentially be extracted (provided it exists within the file), and the ability to identify file types with incorrect extensions. day we had another catch up with the developers and their overnight progress. peter had written a script that took the information from the csv file and summarised it into one row, so that it fits into the spreadsheets we use at beam. unfortunately, mounting the iso image to check it with apache tika was slightly more complicated than anticipated, so our disk images couldn't be checked this way without further work. while the developers set about finalizing their solutions, we continued to work on the business case, doing a skills gap analysis to consider whether our institutions had the skills and resources to carry out digital preservation. reporting back, we had a very interesting discussion on skills gaps within the broader archives sector, and the need to provide digital preservation training to students as well as existing professionals. we then had to prepare an ‘elevator pitch’ for those occasions when we find ourselves in a lift with senior management, which neatly brought together all the things we had discussed, as we had to explain the specific benefits of digital preservation to our institution and our goals in about a minute.  to wrap up the developers presented their solutions, which solved many of the problems we had arrived with. a last minute breakthrough in mounting iso images using  wincdemu and running scripts on them meant that we are able to use the tika script on our disk images. however, because we were so short on time, there are still some small problems that need addressing. i'm really happy with our solution, and i was very impressed by all the developers and how much they were able to get done in such a short space of time. i felt that this event was a very useful way to get thinking about the business case for what we do, and to get to see what other people within the sector are doing and what problems they are facing. it was also really helpful as a non-techie to get to talk with developers and get an idea of what it is possible to build tools to do (and get them made!). i would definitely recommend this type of event – in fact, i’d love to go along again if i get the opportunity! posted by rebecca nielsen at : comments: monday, march media recognition: dv part dvcam (encoding) type: digital videotape cassette encoding introduced: active: yes, but few new camcorders are being produced. cessation: - capacity: minutes (large), minutes (minidv). compatibility: dvcam is an enhancement of the widely adopted dv format, and uses the same encoding. cassettes recorded in dvcam format can be played back in dvcam vtrs (video tape recorders), newer dv vtrs (made after the introduction of dvcam), and dvcpro vtrs, as long as the correct settings are specified (this resamples the signal to : : ). dvcam can also be played back in compatible hdv players. users: professional / industrial. file systems: - common manufacturers: sony, ikegami. dvcam is sony’s enhancement of the dv format for the professional market. dvcam uses the same encoding as dv, although it records ‘locked’ rather than ‘unlocked’ audio. it also differs from dv as it has a track width of microns and a tape speed of . mm/sec to make it more robust. any dv cassette can contain dvcam format video, but some are sold with dvcam branding on them. recognition dvcam labelled cassettes come in large ( . x x . mm) or minidv ( x x . mm) sizes. tape width is ¼”. large cassettes are used in editing and recording decks, while the smaller cassettes are used in camcorders. they are marked with the dvcam logo, usually in the upper-right hand corner.  hdv (encoding) type: digital videotape cassette encoding introduced: active: yes, although industry experts do not expect many new hdv products. cessation: - capacity: hour (minidv), up to . hours (large) compatibility: video is recorded in the popular mpeg- video format. files can be transferred to computers without loss of quality using an ieee connection. there are two types of hdv, hdv p and hdv , which are not cross-compatible. hdv can be played back in hdv vtrs. these are often able to support other formats such as dv and dvcam. users: amateur/professional file systems: - common manufacturers: format developed by jvc, sony, canon and sharp. unlike the other dv enhancements, hdv uses mpeg- compression rather than dv encoding. any dv cassette can contain hdv format video, but some are sold with hdv branding on them.  there are two different types of hdv: hdv p (hd , made by jvc) and hdv (hd , made by sony and canon). hdv devices are not generally compatible with hdv p devices. the type of hdv used is not always identified on the cassette itself, as it depends on the camcorder used rather than the cassette. recognition  hdv is a tape only format which can be recorded on normal dv cassettes. some minidv cassettes with lower dropout rates are indicated as being for hdv, either with text or the hdv logo. these are not essential for recording hdv video.  posted by rebecca nielsen at : no comments: labels: digital video, dvcam, hdv, media recoginition, video media recognition: dv part dv (encoding) type: digital videotape cassette encoding introduced: active: yes, but tapeless formats such as mpeg- , mpeg- and mpeg- are becoming more popular. cessation: - capacity: minidv cassettes can hold up to / minutes sp/lp. medium cassette size can hold up to . / . hrs sp/lp. files sizes can be up to gb per minutes of recording. compatibility: dv format is widely adopted. cassettes recorded in the dv format can be played back on dvcam, dvcpro and hdv replay devices. however, lp recordings cannot be played back in these machines. users: dv is aimed at a consumer market – may also be used by ‘prosumer’ film makers. file systems: - common manufacturers: a consortium of over manufacturers including sony, panasonic, jvc, canon, and sharp. dv has a track width of microns and a tape speed of . mm/sec. it can be found on any type of dv cassette, regardless of branding, although most commonly it is the format used on minidv cassettes.  recognition dv cassettes are usually found in the small size, known as minidv. medium size ( . × . × . mm) dv cassettes are also available, although these are not as popular as minidv. dv cassettes are labelled with the dv logo. dvcpro (encoding) type: digital videotape cassette encoding introduced: (dvcpro), (dvcpro ), (dvcpro hd) active: yes, but few new camcorders are being produced. cessation: - capacity: minutes (large), minutes (medium). compatibility: dvcpro is an enhancement of the widely adopted dv format, and uses the same encoding. cassettes recorded in dvcpro format can be played back only in dvcpro video tape recorders (vtrs) and some dvcam vtrs. users: professional / industrial; designed for electronic news gathering file systems: - common manufacturers: panasonic, also philips, ikegami and hitachi. dvcpro is panasonic’s enhancement of the dv format, which is aimed at a professional market. dvcpro uses the same encoding as dv, but it features ‘locked’ audio, and uses : : sampling instead of : : . it has an micron track width, and a tape speed of . mm/sec which makes it more robust. dvcpro uses metal particle (mp) tape rather than metal evaporate( me) to improve durability. dvcpro and dvcpro hd are further developments of dvcpro, which use the equivalent of or dv codecs in parallel to increase the video data rate. any dv cassette can contain dvcpro format video, but some are sold with dvcpro branding on them. recognition dvcpro branded cassettes come in medium ( . × . × . mm) or large ( × × . mm) cassette sizes. the medium size is for use in camcorders, and the large size in editing and recording decks. dvcpro and dvcpro hd branded cassettes are extra-large cassettes ( x x . mm). tape width is ¼”. dvcpro labelled cassettes have different coloured tape doors depending on their type; dvcpro has a yellow tape door, dvcpro has a blue tape door, and dvcpro hd has a red tape door. images of dvcpro cassettes are available at the panasonic website. posted by rebecca nielsen at : no comments: labels: digital video, dv, dvcpro, media recoginition, video media recognition: dv part dv can be used to refer to both a digital tape format, and a codec for digital video. dv tape usually carries video encoded with the dv codec, although it can hold any type of data. the dv format was developed in the mid s by a consortium of video manufacturers, including sony, jvc and panasonic, and quickly became the de facto standard for home video production after introduction in . videos are recorded in .dv or .dif formats, or wrapped in an avi, quicktime or mxf container. these can be easily transferred to a computer with no loss of data over an ieee (fire wire) connection. dv tape is ¼ inch ( . mm) wide. dv cassettes come in four different sizes: small, also known as minidv ( x x . mm), medium ( . × . × . mm), large ( . x x . mm), and extra-large ( x x . mm). minidv is the most popular cassette size. dv cassettes can be encoded with one of four formats; dv, dvcam, dvcpro, or hdv. dv is the original encoding, and is used in consumer devices. dvcpro and dvcam were developed by panasonic and sony respectively as an enhancement of dv, and are aimed at a professional market. the basic encoding algorithm is the same as with dv, but a higher track width ( and microns versus dv’s micron track width) and faster tape speed means that these formats are more robust and better suited to professional users. hdv is a high-definition variant, aimed at professionals and consumers, which uses mpeg- compression rather than the dv format. depending on the recording device, any of the four dv encodings can be recorded on any size dv cassette. however, due to different recording speeds, the formats are not always backwards compatible. a cassette recorded in an enhanced format, such as hdv, dvcam or dvcpro, will not play back on a standard dv player. also, as they are supported by different companies, there are some issues with playing back a dvcpro cassette on dvcam equipment, and vice versa. although all dv cassette sizes can record any format of dv, some are marketed specifically as being of a certain type; e.g. dvcam. the guide below looks at some of the most common varieties of dv cassette that might be encountered, and the encodings that may be used with them. it is important to remember that any type of encoding may be found on any kind of cassette, depending on what system the video was recorded on. minidv (cassette) type: digital videotape cassette introduced: active: yes, but is being replaced in popularity by hard disk and flash memory recording. at the international consumer electronics show no camcorders were presented which record on tape. cessation: - capacity: up to minutes sp / minutes lp, depending on the tape used; / minutes sp/lp is standard. this can also depend on the encoding used (see further entries). files sizes can be up to gb per minutes of recording. compatibility: dv file format is widely adopted. requires fire wire (ieee ) port for best transfer. users: consumer and ‘prosumer’ film makers, some professionals. file systems: - common manufacturers: a consortium of over manufacturers including sony, panasonic, jvc, canon, and sharp minidv refers to the size of the cassette; as noted above, it can come with any encoding. as a consumer format they generally use dv encoding. dvcam and hdv cassettes also come in minidv size. minidv is the most popular dv cassette, and is used for consumer and semi-professional (‘prosumer’) recordings due to its high quality. recognition these cassettes are the small cassette size, measuring x x . mm. tape width is ¼”. they carry the minidv logo, as seen below: posted by rebecca nielsen at : no comments: labels: digital video, dv, media recoginition, minidv, video monday, january digital preservation: what i wish i knew before i started tuesday th january, last week i attended a student conference, hosted by the digital preservation coalition, on what digital preservation professionals wished they had known before they started. the event covered a great deal of the challenges faced by those involved in digital preservation, and the skills required to deal with these challenges. the similarities between traditional archiving and digital preservation were highlighted at the beginning of the afternoon, when sarah higgins translated terms from the oais model into more traditional ‘archive speak’. dave thompson also emphasized this connection, arguing that digital data “is just a new kind of paper”, and that trained archivists already have - % of the skills needed for digital preservation. digital preservation was shown to be a human rather than a technical challenge. adrian brown argued that much of the preservation process (the "boring stuff") can be automated. dave thompson stated that many of the technical issues of digital preservation, such as migration, have been solved, and that the challenge we now face is to retain the context and significance of the data. the point made throughout the afternoon was that you don’t need to be a computer expert in order to carry out effective digital preservation. the urgency of intervention was another key lesson for the afternoon. as william kilbride put it; digital preservation won’t do itself, won’t go away, and we shouldn't wait for perfection before we begin to act. access to data in the future is not guaranteed without input now, and digital data is particularly intolerant to gaps in preservation. andrew fetherstone added to this argument, noting that doing something is (usually) better than doing nothing, and that even if you are not in a position to carry out the whole preservation process, it is better to follow the guidelines as far as you can, rather than wait and create a backlog. the scale of digital preservation was another point illustrated throughout the afternoon. william kilbride suggested that the days of manual processing are over, due to the sheer amount of digital data being created (estimated to reach zb by !). he argued that the ability to process this data is more important to the future of digital preservation than the risks of obsolescence. the impossibility of preserving all of this data was illustrated by helen hockx-yu, who offered the statistic the the uk web archive and national archives web archive combined have archived less than % of uk websites. adrian brown also pointed out that as we move towards dynamic, individualised content on the web, we must decide exactly what the information is that we are trying to preserve. during the q&a session, it was argued that the scale of digital data means that we have to accept that we can’t preserve everything, that not everything needs to be preserved, and that there will be data loss. the importance of collaboration was another theme which was repeated by many speakers. collaboration between institutions on a local, national and even international level was encouraged, as by sharing solutions to problems and implementing common standards we can make the task of digital preservation easier. this is only a selection of the points covered in a very engaging afternoon of discussion. overall, the event showed that, despite the scale of the task, digital preservation needn't be a frightening prospect, as archivists already have many of the necessary skills. the dpc have uploaded the slides used during the event, and the event was also live-tweeted, using the hashtag #dpc_wiwik, if you are interested in finding out more. posted by rebecca nielsen at : comment: labels: http://www.blogger.com/img/blank.gif tuesday, october what is ‘the future of the past of the web’? ‘the future of the past of the web’, digital preservation coalition workshop british library, october chrissie webb and liz mccarthy in his keynote address to this event – organised by the digital preservation coalition , the joint information systems committee and the british library – herbert van der sompel described the purpose of web archiving as combating the internet’s ‘perpetual now’. stressing the importance to researchers of establishing the ‘temporal context’ of publications and information, he explained how the framework of his memento project uses a ‘ timegate’ implemented via web plugins to show what a resource was like at a particular date in the past. there is a danger, however, that not enough is being archived to provide the temporal context; for instance, although dois provide stable documents, the resources they link to may disappear (‘link rot’). the memento project firefox plugin uses a sliding timeline (here, just below the google search box) to let users choose an archived date a session on using web archives picked up on the theme of web continuity in a presentation by the national archives on the uk government web archive, where a redirection solution using open source software helps tackle the problems that occur when content is moved or removed and broken links result. current projects are looking at secure web archiving, capturing internal (e.g. intranet) sources, social media capture and a semantic search tool that helps to tag ‘unstructured’ material. in a presentation that reinforced the reason for the day’s ‘use and impact’ theme, eric meyer of the oxford internet institute wondered whether web archives were in danger of becoming the ‘dusty archives’ of the future, contrasting their lack of use with the mass digitisation of older records to make them accessible. is this due to a lack of engagement with researchers, their lack of confidence with the material or the lingering feeling that a url is not a ‘real’ source? archivists need to interrupt the momentum of ‘learned’ academic behaviour, engaging researchers with new online material and developing archival resources in ways that are relevant to real research – for instance, by helping set up mechanisms for researchers to trigger archiving activity around events or interests, or making more use of server logs to help them understand use of content and web traffic. one of the themes of the second session on emerging trends was the shift from a ‘page by page’ approach to the concept of ‘data mining’ and large scale data analysis. some of the work being done in this area is key to addressing the concerns of eric meyer’s presentation; it has meant working with researchers to determine what kinds and sources of data they could really use in their work. representatives of the uk web archive and the internet archive described their innovations in this field, including visualisation and interactive tools. archiving social networks was also a major theme, and wim peters outlined the challenges of the arcomem project, a collaboration between sheffield and hanover universities that is tackling the problems of archiving ‘community memory’ through the social web, confronting extremely diverse and volatile content of varying quality for which future demand is uncertain. richard davis of the university of london computer centre spoke about the blogforever project, a multi-partner initiative to preserve blogs, while mark williamson of hanzo archives spoke about web archiving from a commercial perspective, noting that companies are very interested in preserving the research opportunities online information offers. the final panel session raised the issue of the changing face of the internet, as blogs replace personal websites and social media rather than discrete pages are used to create records of events. the notion of ‘web pages’ may eventually disappear, and web archivists must be prepared to manage the dispersed data that will take (and is taking) their place. other points discussed included the need for advocacy and better articulation of the demand for web archiving (proposed campaign: ‘preserve!: are you saving your digital stuff?’), duplication and deduplication of content, the use of automated selection for archiving and the question of standards. posted by lizrosemccarthy at : no comments: labels: future of the past of the web, webarchives, workshop older posts home subscribe to: posts (atom) what's the futurearch blog? a place for sharing items of interest to those curating hybrid archives & manuscripts. legacy computer bits wanted! at bodleian electronic archives and manuscripts (beam) we are always on the lookout for older computers, disk drives, technical manuals and software that can help us recover digital archives. if you have any such stuff that you would be willing to donate, please contact susan.thomas@bodleian.ox.ac.uk. examples of items in our wish list include: an apple mac macintosh classic ii computer, a wang pc / series, as well as myriad legacy operating system and word-processing software. handy links bodleian electronic archives & manuscripts (beam) bodleian library digital preservation coalition oxford university label cloud n umd ( ) access ( ) accession ( ) accessioning ( ) adapter ( ) advisory board ( ) agents ( ) agrippa ( ) amatino manucci ( ) analysis ( ) appraisal ( ) arch enemy ( ) archival dates ( ) archival interfaces ( ) archiving habits ( ) ata ( ) audio ( ) authority control ( ) autogenerated metadata ( ) autumn ( ) bbc ( ) beam architecture ( ) blu-ray ( ) buzz ( ) cais ( ) case studies ( ) cd ( ) cerp ( ) chat ( ) community ( ) content model ( ) copyright review ( ) corruption ( ) creator curation ( ) cunning plan ( ) d-link ( ) dams ( ) data capture ( ) data extraction ( ) data recovery ( ) dead media ( ) desktop ( ) development ( ) dge- t ( ) digital archaeology ( ) digital legacy ( ) digital preservation ( ) digitallivesconference ( ) disk imaging ( ) disks ( ) documents ( ) dundee ( ) dvd ( ) eac ( ) ead ( ) electronic records ( ) email ( ) emcap ( ) emulation ( ) emulators ( ) esata ( ) estate planning ( ) etdf ( ) facebook ( ) faceted browser ( ) file carving ( ) file format recognition ( ) file format specifications ( ) file signatures ( ) film ( ) finding aids ( ) firewire ( ) flash media ( ) floppy disks ( ) forensics ( ) formats ( ) friday post ( ) funny ( ) futurearch ( ) gaip ( ) geocities ( ) gigabit ( ) gmail ( ) google ( ) googledocs ( ) graduate traineeship ( ) hard drive ( ) highslide ( ) holidays ( ) hybrid archives ( ) hybridity ( ) hypertext exhibitions writers ( ) images ( ) indexing ( ) ingest ( ) interfaces ( ) interoperability ( ) intrallect ( ) ipaper ( ) ipr ( ) ipres ( ) ips ( ) island of unscalable complexity ( ) iso ( ) java ( ) javascript ( ) jif ( ) jisc ( ) job ( ) kryoflux ( ) lightboxes ( ) linked data ( ) literary ( ) markup ( ) may ( ) media ( ) media recoginition ( ) metadata ( ) microsoft ( ) microsoft works ( ) migration tools ( ) moon landings ( ) multitouch ( ) music blogs ( ) namespaces ( ) never say never ( ) normalisation ( ) object characteristics ( ) obsolescence ( ) odd ( ) office documents ( ) online data stores ( ) open source ( ) open source development ( ) open source software ( ) optical media ( ) osswatch ( ) pci ( ) planets ( ) planets testbed ( ) plato ( ) preservation planning ( ) preservation policy ( ) preservation tools ( ) projects ( ) pst ( ) repositories ( ) researchers ( ) saa ( ) sas ( ) sata ( ) scat ( ) scholars ( ) scooters ( ) scribd ( ) scsi ( ) semantic ( ) seminars ( ) significant properties ( ) snow ( ) software ( ) solr ( ) sound ( ) steganography ( ) storage ( ) tag clouds ( ) tags ( ) technical metadata ( ) transfer bagit verify ( ) twapperkeeper ( ) tweets ( ) usb ( ) use cases ( ) users ( ) validation ( ) value ( ) video ( ) vintage computers ( ) weavers ( ) webarchives ( ) workshop ( ) xena ( ) xml ( ) xmp ( ) zip disks ( ) blog archive ▼  ( ) ▼  september ( ) this blog is no longer being updated ►  ( ) ►  october ( ) ►  january ( ) ►  ( ) ►  november ( ) ►  october ( ) ►  june ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) subscribe to futurearch posts atom posts all comments atom all comments beamtweet loading... my blog list the signal: digital preservation joining by the people: an interview with abby shelton archivesblogs meet ike digital archiving at the university of york latest booking system in google sheets (working!) archivesnext now available: “a very correct idea of our school”: a photographic history of the carlisle indian industrial school practical e-records hello world! born digital archives practical first steps mgolson@stanford.edu's blog keep - keeping emulation environments portable digital curation blog thoughts before "the future of the past of the web" archives hub blog open planets foundation uk web archive technology watch digital lives bits bytes & archives branker's blog dpc rss news feed loading... about me susan thomas view my complete profile coyle's information coyle's information comments on the digital age, which, as we all know, is . monday, march , digitization wars, redux  (nb: ianal)   because this is long, you can download it as a pdf here. from to the book world (authors, publishers, libraries, and booksellers) was involved in the complex and legally fraught activities around google’s book digitization project. once known as “google book search,” the company claimed that it was digitizing books to be able to provide search services across the print corpus, much as it provides search capabilities over texts and other media that are hosted throughout the internet.  both the us authors guild and the association of american publishers sued google (both separately and together) for violation of copyright. these suits took a number of turns including proposals for settlements that were arcane in their complexity and that ultimately failed. finally, in the legal question was decided: digitizing to create an index is fair use as long as only minor portions of the original text are shown to users in the form of context-specific snippets.  we now have another question about book digitization: can books be digitized for the purpose of substituting remote lending in the place of the lending of a physical copy? this has been referred to as “controlled digital lending (cdl),” a term developed by the internet archive for its online book lending services. the archive has considerable experience with both digitization and providing online access to materials in various formats, and its open library site has been providing digital downloads of out of copyright books for more than a decade. controlled digital lending applies solely to works that are presumed to be in copyright.  controlled digital lending works like this: the archive obtains and retains a physical copy of a book. the book is digitized and added to the open library catalog of works. users can borrow the book for a limited time ( weeks) after which the book “returns” to the open library. while the book is checked out to a user no other user can borrow that “copy.” the digital copy is linked one-to-one with a physical copy, so if more than one copy of the physical book is owned then there is one digital loan available for each physical copy.  the archive is not alone in experimenting with lending of digitized copies: some libraries have partnered with the archive’s digitization and lending service to provide digital lending for library-owned materials. in the case of the archive the physical books are not available for lending. physical libraries that are experimenting with cdl face the added step of making sure that the physical book is removed from circulation while the digitized book is on loan, and reversing that on return of the digital book.  although cdl has an air of legality due to limiting lending to one user at a time, authors and publishers associations had raised objections to the practice. [nwu] however, in march of the archive took a daring step that pushed their version of the cdl into litigation: using the closing of many physical libraries due to the covid pandemic as its rationale, the archive renamed its lending service the national emergency library [nel] and eliminated the one-to-one link between physical and digital copies. ironically this meant that the archive was then actually doing what the book industry had accused it of (either out of misunderstanding or as an exaggeration of the threat posed): it was making and lending digital copies beyond its physical holdings. the archive stated that the national emergency library would last only until june of , presumably because by then the covid danger would have passed and libraries would have re-opened. in june the archive’s book lending service returned to the one-to-one model. also in june a suit was filed by four publishers (hachette, harpercollins, penguin random house, and wiley) in the us district court of the southern district of new york. [suit]  the controlled digital lending, like the google books project, holds many interesting questions about the nature of “digital vs physical,” not only in a legal sense but in a sense of what it means to read and to be a reader today. the lawsuit not only does not further our understanding of this fascinating question; it sinks immediately into hyperbole, fear-mongering, and either mis-information or mis-direction. that is, admittedly, the nature of a lawsuit. what follows here is not that analysis but gives a few of the questions that are foremost in my mind.  apples and oranges   each of the players in this drama has admirable reasons for their actions. the publishers explain in their suit that they are acting in support of authors, in particular to protect the income of authors so that they may continue to write. the authors’ guild provides some data on author income, and by their estimate the average full-time author earns less than $ , per year, putting them at poverty level.[aghard] (if that average includes the earnings of highly paid best selling authors, then the actual earnings of many authors is quite a bit less than that.)  the internet archive is motivated to provide democratic access to the content of books to anyone who needs or wants it. even before the pandemic caused many libraries to close the collection housed at the archive contained some works that are available only in a few research libraries. this is because many of the books were digitized during the google books project which digitized books from a small number of very large research libraries whose collections differ significantly from those of the public libraries available to most citizens.  where the pronouncements of both parties fail is in making a false equivalence between some authors and all authors, and between some books and all books, and the result is that this is a lawsuit pitting apples against oranges. we saw in the lawsuits against google that some academic authors, who may gain status based on their publications but very little if any income, did not see themselves as among those harmed by the book digitization project. notably the authors in this current suit, as listed in the bibliography of pirated books in the appendix to the lawsuit, are ones whose works would be characterized best as “popular” and “commercial,” not academic: james patterson, j. d. salinger, malcolm gladwell, toni morrison, laura ingalls wilder, and others. not only do the living authors here earn above the poverty level, all of them provide significant revenue for the publishers themselves. and all of the books listed are in print and available in the marketplace. no mention is made of out-of-print books, no academic publishers seem to be involved.  on the part of the archive, they state that their digitized books fill an educational purpose, and that their collection includes books that are not available in digital format from publishers: “ while overdrive, hoopla, and other streaming services provide patrons access to latest best sellers and popular titles,  the long tail of reading and research materials available deep within a library’s print collection are often not available through these large commercial services.  what this means is that when libraries face closures in times of crisis, patrons are left with access to only a fraction of the materials that the library holds in its collection.”[cdl-blog] this is undoubtedly true for some of the digitized books, but the main thesis of the lawsuit points out that the archive has digitized and is also lending current popular titles. the list of books included in the appendix of the lawsuit shows that there are in-copyright and most likely in-print books of a popular reading nature that have been part of the cdl. these titles are available in print and may also be available as ebooks from the publishers. thus while the publishers are arguing that current, popular books should not be digitized and loaned (apples), the archive is arguing that they are providing access to items not available elsewhere, and for educational purposes (oranges).  the law  the suit states that publishers are not questioning copyright law, only violations of the law. “for the avoidance of doubt, this lawsuit is not about the occasional transmission of a title under appropriately limited circumstances, nor about anything permissioned or in the public domain. on the contrary, it is about ia’s purposeful collection of truckloads of in-copyright books to scan, reproduce, and then distribute digital bootleg versions online.” ([suit] page ). this brings up a whole range of legal issues in regard to distributing digital copies of copyrighted works. there have been lengthy arguments about whether copyright law could permit first sale rights for digital items, and the answer has generally been no; some copyright holders have made the argument that since transfer of a digital file is necessarily the making of a copy there can be no first sale rights for those files. [ stsale] [ag ] some ebook systems, such as the kindle, have allowed time-limited person-to-person lending for some ebooks. this is governed by license terms between amazon and the publishers, not by the first sale rights of the analog world.  section of the copyright law does allow libraries and archives to make a limited number of copies the first point of section states that libraries can make a single copy of a work as long as ) it is not for commercial advantage, ) the collection is open to the public and ) the reproduction includes the copyright notice from the original. this sounds to be what the archive is doing. however, the next two sections (b and c) provide limitations on that first section that appear to put the archive in legal jeopardy: section “b” clarifies that copies may be made for preservation or security; section “c” states that the copies can be made if the original item is deteriorating and a replacement can no longer be purchased. neither of these applies to the archive’s lending.   in addition to its lending program, the archive provides downloads of scanned books in daisy format for those who are certified as visually impaired by the national library service for the blind and physically handicapped in the us. this is covered in a of the copyright law, title , which allows the distribution of copyrighted works in accessible formats. this service could possibly be cited as a justification of the scanning of in-copyright works at the archive, although without mitigating the complaints about lending those copies to others. this is a laudable service of the archive if scans are usable by the visually impaired, but the daisy-compatible files are based on the ocr’d text, which can be quite dirty. without data on downloads under this program it is hard to know the extent to which this program benefits visually impaired readers.   lending  most likely as part of the strategy of the lawsuit, very little mention is made of “lending.” instead the suit uses terms like “download” and “distribution” which imply that the user of the archive’s service is given a permanent copy of the book “with just a few clicks, any internet-connected user can download complete digital copies of in-copyright books from defendant.” ([suit] page ). “... distributing the resulting illegal bootleg copies for free over the internet to individuals worldwide.” ([suit] page ). publishers were reluctant to allow the creation of ebooks for many years until they saw that drm would protect the digital copies. it then was another couple of years before they could feel confident about lending - and by lending i mean lending by libraries. it appears that overdrive, the main library lending platform for ebooks, worked closely with publishers to gain their trust. the lawsuit questions whether the lending technology created by the archive can be trusted. “...plaintiffs have legitimate fears regarding the security of their works both as stored by ia on its servers” ([suit] page ). in essence, the suit accuses ia of a lack of transparency about its lending operation. of course, any collaboration between ia and publishers around the technology is not possible because the two are entirely at odds and the publishers would reasonably not cooperate with folks they see as engaged in piracy of their property.  even if the archive’s lending technology were proven to be secure, lending alone is not the issue: the archive copied the publishers’ books without permission prior to lending. in other words, they were lending content that they neither owned (in digital form) nor had licensed for digital distribution. libraries pay, and pay dearly, for the ebook lending service that they provide to their users. the restrictions on ebooks may seem to be a money-grab on the part of publishers, but from their point of view it is a revenue stream that cdl threatens.  is it about the money? “... ia rakes in money from its infringing services…” ([suit] page ). (note: publishers earn, ia “rakes in”) “moreover, while defendant promotes its non-profit status, it is in fact a highly commercial enterprise with millions of dollars of annual revenues, including financial schemes that provide funding for ia’s infringing activities. ([suit] page ). these arguments directly address section (a)( ) of title , section : “( ) the reproduction or distribution is made without any purpose of direct or indirect commercial advantage”.  at various points in the suit there are references to the archive’s income, both for its scanning services and donations, as well as an unveiled show of envy at the over $ million that brewster kahle and his wife have in their jointly owned foundation. this is an attempt to show that the archive derives “direct or indirect commercial advantage” from cdl. non-profit organizations do indeed have income, otherwise they could not function, and “non-profit” does not mean a lack of a revenue stream, it means returning revenue to the organization instead of taking it as profit. the argument relating to income is weakened by the fact that the archive is not charging for the books it lends. however, much depends on how the courts will interpret “indirect commercial advantage.” the suit argues that the archive benefits generally from the scanned books because this enhances the archive’s reputation which possibly results in more donations. there is a section in the suit relating to the “sponsor a book” program where someone can donate a specific amount to the archive to digitize a book. how many of us have not gotten a solicitation from a non-profit that makes statements like: “$ will feed a child for a day; $ will buy seed for a farmer, etc.”? the attempt to correlate free use of materials with income may be hard to prove.  reading  decades ago, when the service questia was just being launched (questia ceased operation december , ), questia sales people assured a group of us that their books were for “research, not reading.” google used a similar argument to support its scanning operation, something like “search, not reading.” the court decision in google’s case decided that google’s scanning was fair use (and transformative) because the books were not available for reading, as google was not presenting the full text of the book to its audience.[suit-g]  the archive has taken the opposite approach, a “books are for reading” view. beginning with public domain books, many from the google books project, and then with in-copyright books, the archive has promoted reading. it developed its own in-browser reading software to facilitate reading of the books online. [reader] (*see note below) although the publishers sued google for its scanning, they lost due to the “search, not reading” aspect of that project. the archive has been very clear about its support of reading, which takes the google justification off the table.  “moreover, ia’s massive book digitization business has no new purpose that is fundamentally different than that of the publishers: both distribute entire books for reading.” ([suit] page ).   however, the archive's statistics on loaned books shows that a large proportion of the books are used for minutes or less.  “patrons may be using the checked-out book for fact checking or research, but we suspect a large number of people are browsing the book in a way similar to browsing library shelves.” [ia ]   in its article on the cdl, the center for democracy and technology notes that “the majority of books borrowed through nel were used for less than minutes, suggesting that cdl’s primary use is for fact-checking and research, a purpose that courts deem favorable in a finding of fair use.” [cdt] the complication is that the same service seems to be used both for reading of entire books and as a place to browse or to check individual facts (the facts themselves cannot be copyrighted). these may involve different sets of books, once again making it difficult to characterize the entire set of digitized books under a single legal claim.  the publishers claim that the archive is competing with them using pirated versions of their own products. that leads us to the question of whether the archive’s books, presented for reading, are effectively substitutes for those of the publishers. although the archive offers actual copies, those copies that are significantly inferior to the original. however, the question of quality did not change the judgment in the lawsuit against copying of texts by kinko’s [kinkos], which produced mediocre photocopies from printed and bound publications. it seems unlikely that the quality differential will serve to absolve the archive from copyright infringement even though the poor quality of some of the books interferes with their readability.  digital is different publishers have found a way to monetize digital versions, in spite of some risks, by taking advantage of the ability to control digital files with technology and by licensing, not selling, those files to individuals and to libraries. it’s a “new product” that gets around first sale because, as it is argued, every transfer of a digital file makes a copy, and it is the making of copies that is covered by copyright law. [ stsale]  the upshot of this is that because a digital resource is licensed, not sold, the right to pass along, lend, or re-sell a copy (as per title section ) does not apply even though technology solutions that would delete the sender’s copy as the file safely reaches the recipient are not only plausible but have been developed. [resale]  “like other copyright sectors that license education technology or entertainment software, publishers either license ebooks to consumers or sell them pursuant to special agreements or terms.” ([suit] page ) “when an ebook customer obtains access to the title in a digital format, there are set terms that determine what the user can or cannot do with the underlying file.”([suit] page ) this control goes beyond the copyright holder’s rights in law: drm can exercise controls over the actual use of a file, limiting it to specific formats or devices, allowing or not allowing text-to-speech capabilities, even limiting copying to the clipboard. publishers and libraries  the suit claims that publishers and libraries have reached an agreement, an equilibrium. “to plaintiffs, libraries are not just customers but allies in a shared mission to make books available to those who have a desire to read, including, especially, those who lack the financial means to purchase their own copies.” ([suit] page ). in the suit, publishers contrast the archive’s operation with the relationship that publishers have with libraries. in contrast with the archive’s lending program, libraries are the “good guys.” “... the publishers have established independent and distinct distribution models for ebooks, including a market for lending ebooks through libraries, which are governed by different terms and expectations than print books.”([suit] page ). these “different terms” include charging much higher prices to libraries for ebooks, limiting the number of times an ebook can be loaned. [pricing ] [pricing ] “legitimate libraries, on the other hand, license ebooks from publishers for limited periods of time or a limited number of loans; or at much higher prices than the ebooks available for individual purchase.” [agol] the equilibrium of which publishers speak looks less equal from the library side of the equation: library literature is replete with stories about the avarice of publishers in relation to library lending of ebooks. some authors/publishers even speak out against library lending of physical books, claiming that this cuts into sales. (this same argument has been made for physical books.) “if, as macmillan has determined, % of ebook reads are occurring through libraries and that percentage is only growing, it means that we are training readers to read ebooks for free through libraries instead of buying them. with author earnings down to new lows, we cannot tolerate ever-decreasing book sales that result in even lower author earnings.” [agliblend][ag ] the ease of access to digital books has become a boon for book sales, and ebook sales are now rising while hard copy sales fall. this economic factor is a motivator for any of those engaged with the book market. the archive’s cdl is a direct affront to the revenue stream that publishers have carved out for specific digital products. there are indications that the ease of borrowing of ebooks - not even needing to go to the physical library to borrow a book - is seen as a threat by publishers. this has already played out in other media, from music to movies.  it would be hard to argue that access to the archive’s digitized books is merely a substitute for library access. many people do not have actual physical library access to the books that the archive lends, especially those digitized from the collections of academic libraries. this is particularly true when you consider that the archive’s materials are available to anyone in the world with access to the internet. if you don’t have an economic interest in book sales, and especially if you are an educator or researcher, this expanded access could feel long overdue.  we need numbers  we really do not know much about the uses of the archive’s book collection. the lawsuit cites some statistics of “views” to show that the infringement has taken place, but the page in question does not explain what is meant by a “view”. archive pages for downloadable files of metadata records also report “views” which most likely reflect views of that web page, since there is nothing viewable other than the page itself. open library book pages give “currently reading” and “have read” stats, but these are tags that users can manually add to the page for the work. to compound things, the books cited in the suit have been removed from the lending service (and are identified in the archive as being in the collection “litigation works)  although numbers may not affect the legality of the controlled digital lending, the social impact of the archive’s contribution to reading and research would be clearer if we had this information. although the archive has provided a small number of testimonials, a proof of use in educational settings would bolster the claims of social benefit which in turn could strengthen a fair use defense.  notes (*) the nwu has a slide show [nwu ] that explains what it calls controlled digital lending at the archive. unfortunately this document conflates the archive's book reader with cdl and therefore muddies the water. it muddies it because it does not distinguish between sending files to dedicated devices (which is what kindle is) or dedicated software like what libraries use via software like libby, and the archive's use of a web-based reader. it is not beyond reason to suppose that the archive's reader software does not fully secure loaned items. the nwu claims that files are left in the browser cache that represent all book pages viewed: "there’s no attempt whatsoever to restrict how long any user retains these images". (i cannot reproduce this. in my minor experiments those files disappear at the end of the lending period, but this requires more concerted study.) however, this is not a fault of cdl but a fault of the reader software. the reader is software that works within a browser window. in general, electronic files that require secure and limited use are not used within browsers, which are general purpose programs. conflating the archive's reader software with controlled digital lending will only hinder understanding. already cdl has multiple components: digitization of in-copyright materials lending of digital copies of in-copyright materials that are owned by the library in a -to- relation to physical copies we can add # , the leakage of page copies via the browser cache, but i maintain that poorly functioning software does not automatically moot points and . i would prefer that we take each point on its own in order to get a clear idea of the issues. the nwu slides also refer to the archive's api which allows linking to individual pages within books. this is an interesting legal area because it may be determined to be fair use regardless of the legality of the underlying copy. this becomes yet another issue to be discussed by the legal teams, but it is separate from the question of controlled digital lending. let's stay focused.   citations [ stsale] https://abovethelaw.com/ / /a-digital-take-on-the-first-sale-doctrine/  [ag ]https://www.authorsguild.org/industry-advocacy/reselling-a-digital-file-infringes-copyright/  [ag ] https://www.authorsguild.org/industry-advocacy/authors-guild-survey-shows-drastic- -percent-decline-in-authors-earnings-in-last-decade/  [aghard] https://www.authorsguild.org/the-writing-life/why-is-it-so-goddamned-hard-to-make-a-living-as-a-writer-today/ [aglibend] https://www.authorsguild.org/industry-advocacy/macmillan-announces-new-library-lending-terms-for-ebooks/ [agol] https://www.authorsguild.org/industry-advocacy/update-open-library/  [cdl-blog] https://blog.archive.org/ / / /controlled-digital-lending-and-open-libraries-helping-libraries-and-readers-in-times-of-crisis/  [cdt] https://cdt.org/insights/up-next-controlled-digital-lendings-first-legal-battle-as-publishers-take-on-the-internet-archive/  [kinkos] https://law.justia.com/cases/federal/district-courts/fsupp/ / / [nel] http://blog.archive.org/national-emergency-library/ [nwu] "appeal from the victims of controlled digital lending (cdl)". (retrieved - - )  [nwu ] "what is the internet archive doing with our books?" https://nwu.org/wp-content/uploads/ / /nwu-internet-archive-webinar- apr .pdf [pricing ] https://www.authorsguild.org/industry-advocacy/e-book-library-pricing-the-game-changes-again/  [pricing ] https://americanlibrariesmagazine.org/blogs/e-content/ebook-pricing-wars-publishers-perspective/  [reader] bookreader  [resale] https://www.hollywoodreporter.com/thr-esq/appeals-court-weighs-resale-digital-files-   [suit] https://www.courtlistener.com/recap/gov.uscourts.nysd. /gov.uscourts.nysd. . . .pdf  [suit-g] https://cases.justia.com/federal/appellate-courts/ca / - / - - - - .pdf?ts= posted by karen coyle at : am no comments: labels: ebooks books digitization internet archive open library controlled digital lending thursday, june , women designing those of us in the library community are generally aware of our premier "designing woman," the so-called "mother of marc," henriette avram. avram designed the machine reading cataloging record in the mid- 's, a record format that is still being used today. marc was way ahead of its time using variable length data fields and a unique character set that was sufficient for most european languages, all thanks to avram's vision and skill. i'd like to introduce you here to some of the designing women of the university of california library automation project, the project that created one of the first online catalogs in the beginning of the 's, melvyl. briefly, melvyl was a union catalog that combined data from the libraries of the nine (at that time) university of california campuses. it was first brought up as a test system in and went "live" to the campuses in . work on the catalog began in or around , and various designs were put forward and tested. key designers were linda gallaher-brown, who had one of the first masters degrees in computer science from ucla, and kathy klemperer, who like many of us was a librarian turned systems designer. we were struggling with how to create a functional relational database of bibliographic data (as defined by the marc record) with computing resources that today would seem laughable but were "cutting edge" for that time. i remember linda remarking that during one of her school terms she returned to her studies to learn that the newer generation of computers would have this thing called an "operating system" and she thought "why would you need one?" by the time of this photo she had come to appreciate what an operating system could do for you. the one we used at the time was ibm's os / . kathy klemperer was the creator of the database design diagrams that were so distinctive we called them "klemperer-grams." here's one from : melvyl database design klemperer-gram, drawn and lettered by hand, not only did these describe a workable database design, they were impressively beautiful. note that this not only predates the proposed rda "database scenario" for a relational bibliographic design by years, it provides a more detailed and most likely a more accurate such design. rda "scenario " data design, in the early days of the catalog we had a separate file and interface for the cataloged serials based on a statewide project (including the california state universities). although it was possible to catalog serials in the marc format, the systems that had the detailed information about which issues the libraries held was stored in serials control databases that were separate from the library catalog, and many serials were represented by crusty cards that had been created decades before library automation. the group below developed and managed the calls (california academic library list of serials). four of those pictured were programmers, two were serials data specialists, and four had library degrees. obviously, these are overlapping sets. the project heads were barbara radke (right) and theresa montgomery (front, second from right). at one point while i was still working on the melvyl project, but probably around the very late 's or early 's, i gathered up some organization charts that had been issued over the years and quickly calculated that during its history the project the technical staff that had created this early marvel had varied from / to / female. i did some talks at various conferences in which i called melvyl a system "created by women." at my retirement in i said the same thing in front of the entire current staff, and it was not well-received by all. in that audience was one well-known member of the profession who later declared that he felt women needed more mentoring in technology because he had always worked primarily with men, even though he had indeed worked in an organization with a predominantly female technical staff, and another colleague who was incredulous when i stated once that women are not a minority, but over % of the world's population. he just couldn't believe it. while outright discrimination and harassment of women are issues that need to be addressed, the invisibility of women in the eyes of their colleagues and institutions is horribly damaging. there are many interesting projects, not the least the wikipedia women in red, that aim to show that there is no lack of accomplished women in the world, it's the acknowledgment of their accomplishments that falls short. in the library profession we have many women whose stories are worth telling. please, let's make sure that future generations know that they have foremothers to look to for inspiration. posted by karen coyle at : am comment: labels: library catalogs, library history, open data, women and technology monday, may , i've been trying to capture what i remember about the early days of library automation. mostly my memory is about fun discoveries in my particular area (processing marc records into the online catalog). i did run into an offprint of some articles in ital from (*) which provide very specific information about the technical environment, and i thought some folks might find that interesting. this refers to the university of california melvyl union catalog, which at the time had about , records. operating system: ibm / programming language: pl/i cpu: megabytes of memory storage: disk drives, ~ gigabytes dbms: adabas the disk drives were each about the size of an industrial washing machine. in fact, we referred to the room that held them as "the laundromat." telecommunications was a big deal because there was no telecommunications network linking the libraries of the university of california. there wasn't even one connecting the campuses at all. the article talks about the various possibilities, from an x. network to the new tcp/ip protocol that allows "internetwork communication." the first network was a set of dedicated lines leased from the phone company that could transmit characters per second (character = byte) to about ascii terminals at each campus over a baud line. there was a hope to be able to double the number of terminals. in the speculation about the future, there was doubt that it would be possible to open up the library system to folks outside of the uc campuses, much less internationally. (melvyl was one of the early libraries to be open access worldwide over the internet, just a few years later.) it was also thought that libraries would charge other libraries to view their catalogs, kind of like an inter-library loan. and for anyone who has an interest in z . , one section of the article by david shaughnessy and clifford lynch on telecommunications outlines a need for catalog-to-catalog communication which sounds very much like the first glimmer of that protocol. ----- (*) various authors in a special edition: ( ). in-depth: university of california melvyl. information technology and libraries, ( ) i wish i could give a better citation but my offprint does not have page numbers and i can't find this indexed anywhere. (cue here the usual irony that libraries are terrible at preserving their own story.) posted by karen coyle at : am no comments: labels: library catalogs, library history monday, april , ceci n'est pas une bibliothèque on march , , the internet archive announced that it would "suspend waitlists for the . million (and growing) books in our lending library," a service they then named the national emergency library. these books were previously available for lending on a one-to-one basis with the physical book owned by the archive, and as with physical books users would have to wait for the book to be returned before they could borrow it. worded as a suspension of waitlists due to the closure of schools and libraries caused by the presence of the coronavirus- , this announcement essentially eliminated the one-to-one nature of the archive's controlled digital lending program. publishers were already making threatening noises about the digital lending when it adhered to lending limitations, and surely will be even more incensed about this unrestricted lending. i am not going to comment on the legality of the internet archive's lending practices. legal minds, perhaps motivated by future lawsuits, will weigh in on that. i do, however, have much to say on the use of the term "library" for this set of books. it's a topic worthy of a lengthy treatment, but i'll give only a brief account here. library … bibliothÈque … bibliotek the roots “libr…” and “biblio…” both come down to us from ancient words for trees and tree bark. it is presumed that said bark was the surface for early writings. “libr…”, from the latin word liber meaning “book,” in many languages is a prefix that indicates a bookseller’s shop, while in english it has come to mean a collection of books and from that also the room or building where books are kept. “biblio…” derives instead from the greek biblion (one book) and biblia (books, plural). we get the word bible through the greek root, which leaked into old latin and meant the book. therefore it is no wonder that in the minds of many people, books = library.  in fact, most libraries are large collections of books, but that does not mean that every large collection of books is a library. amazon has a large number of books, but is not a library; it is a store where books are sold. google has quite a few books in its "book search" and even allows you to view portions of the books without payment, but it is also not a library, it's a search engine. the internet archive, amazon, and google all have catalogs of metadata for the books they are offering, some of it taken from actual library catalogs, but a catalog does not make a quantity of books into a library. after all, home depot has a catalog, walmart has a catalog; in essence, any business with an inventory has a catalog. "...most libraries are large collections of books, but that does not mean that every large collection of books is a library." the library test first, i want to note that the internet archive has met the state of california test to be defined as a library, and this has made it possible for the archive to apply for library-related grants for some of its projects. that is a good thing because it has surely strengthened the archive and its activities. however, it must be said that the state of california requirements are pretty minimal, and seem to be limited to a non-profit organization making materials available to the general public without discrimination. there doesn't seem to be a distinction between "library" and "archive" in the state legal code, although librarians and archivists would not generally consider them easily lumped together as equivalent services. the collection the archive's blog post says "the internet archive currently lends about as many as a us library that serves a population of about , ." as a comparison, i found in the statistics gathered by the california state library those of the benicia public library in benicia california. benicia is a city with a population of , ; the library has about , books. well, you might say, that's not as good as over one million books at the internet archive. but, here's the thing: those are not , random books, they are books chosen to be, as far as the librarians could know, the best books for that small city. if benicia residents were, for example, primarily chinese-speaking, the library would surely have many books in chinese. if the city had a large number of young families then the children's section would get particular attention. the users of the internet archive's books are a self-selected (and currently un-defined) set of internet users. equally difficult to define is the collection that is available to them: this library brings together all the books from phillips academy andover and marygrove college, and much of trent university’s collections, along with over a million other books donated from other libraries to readers worldwide that are locked out of their libraries. each of these is (or was, in the case of marygrove, which has closed) a collection tailored to the didactic needs of that institution. how one translates that, if one can, to the larger internet population is unknown. that a collection has served a specific set of users does not mean that it can serve all users equally well. then there is that other million books, which are a complete black box. library science i've argued before against dumping a large and undistinguished set of books on a populace, regardless of the good intentions of those doing so. why not give the library users of a small city these one million books? the main reason is the ability of the library to fulfill the laws of library science: books are for use. every reader his or her book. every book its reader. save the time of the reader. the library is a growing organism. [ ] the online collection of the internet archive nicely fulfills laws and : the digital books are designed for use, and the library can grow somewhat indefinitely. the other three laws are unfortunately hindered by the somewhat haphazard nature of the set of books, combined with the lack of user services. of the goals of librarianship, matching readers to books is the most difficult. let's start with law , "every book its reader." when you follow the url to the national emergency library, you see something like this: the lack of cover art is not the problem here. look at what books you find: two meeting reports, one journal publication, and a book about hand surgery, all from . scroll down for a bit and you will find it hard to locate items that are less obscure than this, although undoubtedly there are some good reads in this collection. these are not the books whose readers will likely be found in our hypothetical small city. these are books that even some higher education institutions would probably choose not to have in their collections. while these make the total number of available books large, they may not make the total number of useful books large. winnowing this set to one or more (probably more) wheat-filled collections could greatly increase the usability of this set of books. "while these make the total number of available books large, they may not make the total number of useful books large." a large "anything goes" set of documents is a real challenge for laws and : every reader his or her book, and save the time of the reader. the more chaff you have the harder it is for a library user to find the wheat they are seeking. the larger the collection the more of the burden is placed on the user to formulate a targeted search query and to have the background to know which items to skip over. the larger the retrieved set, the less likely that any user will scroll through the entire display to find the best book for their purposes. this is the case for any large library catalog, but these libraries have built their collection around a particular set of goals. those goals matter. goals are developed to address a number of factors, like: what are the topics of interest to my readers and my institution? how representative must my collection be in each topic area? what are the essential works in each topic area? what depth of coverage is needed for each topic? [ ] if we assume (and we absolutely must assume this) that the user entering the library is seeking information that he or she lacks, then we cannot expect users to approach the library as an expert in the topic being researched. although anyone can type in a simple query, fewer can assess the validity and the scope of the results. a search on "california history" in the national emergency library yields some interesting-looking books, but are these the best books on the topic? are any key titles missing? these are the questions that librarians answer when developing collections. the creation of a well-rounded collection is a difficult task. there are actual measurements that can be run against library collections to determine if they have the coverage that can be expected compared to similar libraries. i don't know if any such statistical packages can look beyond quantitative measures to judge the quality of the collection; the ones i'm aware of look at call number ranges, not individual titles.  there library service the archive's own documentation states that "the internet archive focuses on preservation and providing access to digital cultural artifacts. for assistance with research or appraisal, you are bound to find the information you seek elsewhere on the internet." after which it advises people to get help through their local public library. helping users find materials suited to their need is a key service provided by libraries. when i began working in libraries in the dark ages of the 's, users generally entered the library and went directly to the reference desk to state the question that brought them to the institution. this changed when catalogs went online and were searchable by keyword, but prior to then the catalog in a public library was primarily a tool for librarians to use when helping patrons. still, libraries have real or virtual reference desks because users are not expected to have the knowledge of libraries or of topics that would allow them to function entirely on their own. and while this is true for libraries it is also true, perhaps even more so, for archives whose collections can be difficult to navigate without specialized information. admitting that you give no help to users seeking materials makes the use of the term "library" ... unfortunate. what is to be done? there are undoubtedly a lot of useful materials among the digital books at the internet archive. however, someone needing materials has no idea whether they can expect to find what they need in this amalgamation. the burden of determining whether the archive's collection might suit their needs is left entirely up to the members of this very fuzzy set called "internet users." that the collection lends at the rate of a public library serving a population of , shows that it is most likely under-utilized. because the nature of the collection is unknown one can't approach, say, a teacher of middle-school biology and say: "they've got what you need." yet the archive cannot implement a policy to complete areas of the collection unless it knows what it has as compared to known needs. "... these warehouses of potentially readable text will remain under-utilized until we can discover a way to make them useful in the ways that libraries have proved to be useful." i wish i could say that a solution would be simple - but it would not. for example, it would be great to extract from this collection works that are commonly held in specific topic areas in small, medium and large libraries. the statistical packages that analyze library holdings all are, afaik, proprietary. (if anyone knows of an open source package that does this, please shout it out!) if would also be great to be able to connect library collections of analog books to their digital equivalents. that too is more complex than one would expect, and would have to be much simpler to be offered openly. [ ] while some organizations move forward with digitizing books and other hard copy materials, these warehouses of potentially readable text will remain under-utilized until we can discover a way to make them useful in the ways that libraries have proved to be useful. this will mean taking seriously what modern librarianship has developed over its circa centuries, and in particular those laws that give us a philosophy to guide our vision of service to the users of libraries. ----- [ ] even if you are familiar with the laws you may not know that ranganathan was not as succinct as this short list may imply. the book in which he introduces these concepts is over pages long, with extended definitions and many homey anecdotes and stories. [ ] a search on "collection development policy" will yield many pages of policies that you can peruse. to make this a "one click" here are a few *non-representative* policies that you can take a peek at: hennepin county (public) lansing community college (community college) stanford university, science library (research library) [ ] dan scott and i did a project of this nature with a bay area public library and it took a huge amount of human intervention to determine whether the items matched were really "equivalent". that's a discussion for another time, but, man, books are more complicated than they appear. posted by karen coyle at : am no comments: labels: books, digital libraries, openlibrary monday, february , use the leader, luke! if you learned the marc format "on the job" or in some other library context you may have learned that the record is structured as fields with -digit tags, each with two numeric indicators, and that subfields have a subfield indicator (often shown as "$" because it is a non-printable character) and a single character subfield code (a-z, - ). that is all true for the marc records that libraries create and process, but the machine readable cataloging standard (z . or iso ) has other possibilities that we are not using. our "marc" (currently marc ) is a single selection from among those possibilities, in essence an application profile of the marc standard. the key to the possibilities afforded by marc is in the marc leader, and in particular in two positions that our systems generally ignore because they always contain the same values in our data: leader byte -- indicator count leader byte -- subfield code length in marc records, leader byte is always " " meaning that fields have -byte indicators, and leader byte is always because the subfield code is always two characters in length. that was a decision made early on in the life of marc records in libraries, and it's easy to forget that there were other options that were not taken. let's take a short look at the possibilities the record format affords beyond our choice. both of these leader positions are single bytes that can take values from to . an application could use the marc record format and have zero indicators. it isn't hard to imagine an application that has no need of indicators or that has determined to make use of subfields in their stead. as an example, the provenance of vocabulary data for thesauri like lcsh or the art and architecture thesaurus could always be coded in a subfield rather than in an indicator: $a religion and science $ lcsh another common use of indicators in marc is to give a byte count for the non-filing initial articles on title strings. istead of using an indicator value for this some libraries outside of the us developed a non-printing code to make the beginning and end of the non-filing portion. i'll use backslashes to represent these codes in this example: $a \the \birds of north america i am not saying that all indicators in marc should or even could be eliminated, but that we shouldn't assume that our current practice is the only way to code data. in the other direction, what if you could have more than two indicators? the marc record would allow you have have as many as nine. in addition, there is nothing to say that each byte in the indicator has to be a separate data element; you could have nine indicator positions that were defined as two data elements ( + ), or some other number ( + + ). expanding the number of indicators, or beginning with a larger number, could have prevented the split in provenance codes for subject vocabularies between one indicator value and the overflow subfield, $ , when the number exceeded the capability of a single numerical byte. having three or four bytes for those codes in the indicator and expanding the values to include a-z would have been enough to include the full list of authorities for the data in the indicators. (although i would still prefer putting them all in $ using the mnemonic codes for ease of input.) in the first university of california union catalog in the early 's we expanded the marc indicators to hold an additional two bytes (or was it four?) so that we could record, for each marc field, which library had contributed it. our union catalog record was a composite marc record with fields from any and all of the over libraries across the university of california system that contributed to the union catalog as dozen or so separate record feeds from oclc and rlin. we treated the added indicator bytes as sets of bits, turning on bits to represent the catalog feeds from the libraries. if two or more libraries submitted exactly the same marc field we stored the field once and turned on a bit for each separate library feed. if a library submitted a field for a record that was new to the record, we added the field and turned on the appropriate bit. when we created a user display we selected fields from only one of the libraries. (the rules for that selection process were something of a secret so as not to hurt anyone's feelings, but there was a "best" record for display.) it was a multi-library marc record, made possible by the ability to use more than two indicators. now on to the subfield code. the rule for marc is that there is a single subfield code and that is a lower case a-z and - . the numeric codes have special meaning and do not vary by field; the alphabetic codes aare a bit more flexible. that gives use possible subfields per tag, plus the pre-defined numeric ones. the marc standard has chosen to limit the alphabetic subfield codes to lower case characters. as the fields reached the limits of the available subfield codes (and many did over time) you might think that the easiest solution would be to allow upper case letters as subfield codes. although the subfield code limitation was reached decades ago for some fields i can personally attest to the fact that suggesting the expansion of subfield codes to upper case letters was met with horrified glares at the marc standards meeting. while clearly in the range of a-z seemed ample, that has not be the case for nearly half of the life-span of marc. the marc leader allows one to define up to characters total for subfield codes. the value in this leader position includes the subfield delimiter so this means that you can have a subfield delimiter and up to characters to encode a subfield. even expanding from a-z to aa-zz provides vastly more possibilities, and allow upper case as well give you a dizzying array of choices. the other thing to mention is that there is no prescription that field tags must be numeric. they are limited to three characters in the marc standard, but those could be a-z, a-z, - , not just - , greatly expanding the possibilities for adding new tags. in fact, if you have been in the position to view internal systems records in your vendor system you may have been able to see that non-numeric tags have been used for internal system purposes, like noting who made each edit, whether functions like automated authority control have been performed on the record, etc. many of the "violations" of the marc rules listed here have been exploited internally -- and since early days of library systems. there are other modifiable leader values, in particular the one that determines the maximum length of a field, leader . marc has leader set at " " meaning that fields cannot be longer than . that could be longer, although the record size itself is set at only bytes, so a record cannot be longer than . however, one could limit fields to (leader value set at " ") for an application that does less pre-composing of data compared to marc and therefore comfortably fits within a shorter field length.  the reason that has been given, over time, why none of these changes were made was always: it's too late, we can't change our systems now. this is, as caesar might have said, cacas tauri. systems have been able to absorb some pretty intense changes to the record format and its contents, and a change like adding more subfield codes would not be impossible. the problem is not really with the marc record but with our inability (or refusal) to plan and execute the changes needed to evolve our systems. we could sit down today and develop a plan and a timeline. if you are skeptical, here's an example of how one could manage a change in length to the subfield codes: a marc record is retrieved for editing read the leader of the marc record if the value is " " and you need to add a new subfield that uses the subfield code plus two characters, convert all of the subfield codes in the record: $a becomes $aa, $b becomes $ba, etc. $ becomes $ , $ becomes $ , etc. leader code is changed to " " (alternatively, convert all records opened for editing) a marc record is retrieved for display read the leader of the marc record if the value is " " use the internal table of subfield codes for records with the value " " if the value is " " use the internal table of subfield codes for records with the value " " sounds impossible? we moved from aacr to aacr , and now from aacr to rda without going back and converting all of our records to the new content.  we have added new fields to our records, such as the , , for rda values, without converting all of the earlier records in our files to have these fields. the same with new subfields, like $ , which has only been added in recent years. our files have been using mixed record types for at least a couple of generations -- generations of systems and generations of catalogers. alas, the time to make these kinds of changes this was many years ago. would it be worth doing today? that depends on whether we anticipate a change to bibframe (or some other data format) in the near future. changes do continue to be made to the marc record; perhaps it would have a longer future if we could broach the subject of fixing some of the errors that were introduced in the past, in particular those that arose because of the limitations of marc that could be rectified with an expansion of that record standard. that may also help us not carry over some of the problems in marc that are caused by these limitations to a new record format that does not need to be limited in these ways. epilogue although the marc  record was incredibly advanced compared to other data formats of its time (the mid- 's), it has some limitations that cannot be overcome within the standard itself. one obvious one is the limitation of the record length to bytes. another is the fact that there are only two levels of nesting of data: the field and the subfield. there are times when a sub-subfield would be useful, such as when adding information that relates to only one subfield, not the entire field (provenance, external url link). i can't advocate for continuing the data format that is often called "binary marc" simply because it has limitations that require work-arounds. marcxml, as defined as a standard, gets around the field and record length limitations, but it is not allowed to vary from the marc limitations on field and subfield coding. it would be incredibly logical to move to a "non-binary" record format (xml, json, etc.) beginning with the existing marc and  to allow expansions where needed. it is the stubborn adherence to the iso format really has limited library data, and it is all the more puzzling because other solutions that can keep the data itself intact have been available for many decades. posted by karen coyle at : am no comments: labels: marc tuesday, january , pamflets i was always a bit confused about the inclusion of "pamflets" in the subtitle of the decimal system, such as this title page from the edition: did libraries at the time collect numerous pamphlets? for them to be the second-named type of material after books was especially puzzling. i may have discovered an answer to my puzzlement, if not the answer, in andrea costadoro's work: a "pamphlet" in was not (necessarily) what i had in mind, which was a flimsy publication of the type given out by businesses, tourist destinations, or public health offices. in the 's it appears that a pamphlet was a literary type, not a physical format. costadoro says: "it has been a matter of discussion what books should be considered pamphlets and what not. if this appellation is intended merely to refer to the size of the book, the question can be scarecely worth considering ; but if it is meant to refer to the nature of a work, it may be considered to be of the same class and to stand in the same connexion with the word treatise as the words tract ; hints ; remarks ; &c, when these terms are descriptive of the nature of the books to which they are affixed." (p. ) to be on the shelves of libraries, and cataloged, it is possible that these pamphlets were indeed bound, perhaps by the library itself.  the library of congress genre list today has a cross-reference from "pamphlet" to "tract (ephemera)". while costadoro's definition doesn't give any particular subject content to the type of work, lc's definition says that these are often issued by religious or political groups for proselytizing. so these are pamphlets in the sense of the political pamphlets of our revolutionary war. today they would be blog posts, or articles in buzzfeed or slate or any one of hundreds of online sites that post such content. churches i have visited often have short publications available near the entrance, and there is always the watchtower, distributed by jehovah's witnesses at key locations throughout the world, and which is something between a pamphlet (in the modern sense) and a journal issue. these are probably not gathered in most libraries today. in dewey's time the printing (and collecting by libraries) of sermons was quite common. in a world where many people either were not literate or did not have access to much reading material, the sunday sermon was a "long form" work, read by a pastor who was probably not as eloquent as the published "stars" of the sunday gatherings. some sermons were brought together into collections and published, others were published (and seemingly bound) on their own.  dewey is often criticized for the bias in his classification, but what you find in the early editions serves as a brief overview of the printed materials that the us (and mostly east coast) culture of that time valued.  what now puzzles me is what took the place of these tracts between the time of dewey and the web. i can find archives of political and cultural pamphlets in various countries and they all seem to end around the 's- 's, although some specific collections, such as the samizdat publications in the soviet union, exist in other time periods. of course the other question now is: how many of today's tracts and treatises will survive if they are not published in book form? posted by karen coyle at : pm no comments: labels: classification, library history saturday, november , the work the word "work" generally means something brought about by human effort, and at times implies that this effort involves some level of creativity. we talk about "works of art" referring to paintings hanging on walls. the "works" of beethoven are a large number of musical pieces that we may have heard. the "works" of shakespeare are plays, in printed form but also performed. in these statements the "work" encompasses the whole of the thing referred to, from the intellectual content to the final presentation. this is not the same use of the term as is found in the library reference model (lrm). if you are unfamiliar with the lrm, it is the successor to frbr (which i am assuming you have heard of) and it includes the basic concepts of work, expression, manifestation and item that were first introduced in that previous study. "work," as used in the lrm is a concept designed for use in library cataloging data. it is narrower than the common use of the term illustrated in the previous paragraph and is defined thus: class: work definition: an abstract notion of an artistic or intellectual creation. in this definition the term only includes the idea of a non-corporeal conceptual entity, not the totality that would be implied in the phrase "the works of shakespeare." that totality is described when the work is realized through an lrm-defined "expression" which in turn is produced in an lrm-defined "manifestation" with an lrm-defined "item" as its instance.* these four entities are generally referred to as a group with the acronym wemi. because many in the library world are very familiar with the lrm definition of work, we have to use caution when using the word outside the specific lrm environment. in particular, we must not impose the lrm definition on uses of the work that are not intending that meaning. one should expect that the use of the lrm definition of work would be rarely found in any conversation that is not about the library cataloging model for which it was defined. however, it is harder to distinguish uses within the library world where one might expect the use to be adherent to the lrm. to show this, i want to propose a particular use case. let's say that a very large bibliographic database has many records of bibliographic description. the use case is that it is deemed to be easier for users to navigate that large database if they could get search results that cluster works rather than getting long lists of similar or nearly identical bibliographic items. logically the cluster looks like this: in data design, it will have a form something like this: this is a great idea, and it does appear to have a similarity to the lrm definition of work: it is gathering those bibliographic entries that are judged to represent the same intellectual content. however, there are reasons why the lrm-defined work could not be used in this instance. the first is that there is only one wemi relationship for work, and that is from lrm work to lrm expression. clearly the bibliographic records in this large library catalog are not lrm expressions; they are full bibliographic descriptions including, potentially, all of the entities defined in the lrm. to this you might say: but there is expression data in the bibliographic record, so we can think of this work as linking to the expression data in that record. that leads us to the second reason: the entities of wemi are defined as being disjoint. that means that no single "thing" can be more than one of those entities; nothing can be simultaneously a work and an expression, or any other combination of wemi entities. so if the only link we have available in the model is from work to expression, unless we can somehow convince ourselves that the bibliographic record only represents the expression (which it clearly does not since it has data elements from at least three of the lrm entities) any such link will violate the rule of disjointness. therefore, the work in our library system can have much in common with the conceptual definition of the lrm work, but it is not the same work entity as is defined in that model. this brings me back to my earlier blog post with a proposal for a generalized definition of wemi-like entities for created works.  the wemi concepts are useful in practice, but the lrm model has some constraints that prevent some desirable uses of those entities. providing unconstrained entities would expand the utility of the wemi concepts both within the library community, as evidenced by the use case here, and in the non-library communities that i highlight in that previous blog post and in a slide presentation. to be clear, "unconstrained" refers not only to the removal of the disjointness between entities, but also to allow the creation of links between the wemi entities and non-wemi entities, something that is not anticipated in the lrm. the work cluster of bibliographic records would need a general relationship, perhaps, as in the case of viaf, linked through a shared cluster identifier and an entity type identifying the cluster as representing an unconstrained work. ---- * the other terms are defined in the lrm as: class: expression definition: a realization of a single work usually in a physical form. class: manifestation definition: the physical embodiment of one or more expressions. class: item definition: an exemplar of a single manifestation. posted by karen coyle at : am no comments: labels: frbr, library catalogs, lrm, metadata older posts home subscribe to: posts (atom) copyright coyle's information by karen coyle is licensed under a creative commons attribution-noncommercial . united states license. karen karen coyle where i'll be dc , ottawa, sep - what i'm reading paper, m. kurlansky the coming of the third reich, r. j. evans a room of ones own, v. woolf blog archive ▼  ( ) ▼  march ( ) digitization wars, redux ►  ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  november ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  november ( ) ►  august ( ) ►  ( ) ►  october ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  february ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  may ( ) ►  april ( ) ►  january ( ) ►  ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  february ( ) ►  ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) labels library catalogs ( ) googlebooks ( ) frbr ( ) cataloging ( ) linked data ( ) rda ( ) rdf ( ) oclc ( ) marc ( ) copyright ( ) metadata ( ) digital libraries ( ) women and technology ( ) semantic web ( ) digitization ( ) books ( ) intellectual freedom ( ) bibframe ( ) open access ( ) women technology ( ) standards ( ) classification ( ) internet ( ) google ( ) rda dcmi ( ) classification lcsh ( ) ebooks ( ) kosovo ( ) dcmi ( ) er models ( ) openlibrary ( ) authority control ( ) libraries ( ) skyriver ( ) wish list ( ) identifiers ( ) library history ( ) open data ( ) reading ( ) schema.org ( ) search ( ) vocabularies ( ) wikipedia ( ) knowledge organization ( ) privacy ( ) women ( ) drm ( ) foaf ( ) lrm ( ) rfid ( ) shacl ( ) application profiles ( ) ebooks books digitization internet archive open library controlled digital lending ( ) lcsh intell ( ) linux ( ) names ( ) politics ( ) about me karen coyle berkeley, ca, united states librarian, techie, social commentator, once called "public intellectual" by someone who couldn't think of a better title. view my complete profile simple theme. theme images by gaffera. powered by blogger. none metadata matters metadata matters it's all about the services it’s not just me that’s getting old having just celebrated (?) another birthday at the tail end of , the topics of age and change have been even more on my mind than usual. and then two events converged. first i had a chat with ted fons in a hallway at midwinter, and he asked about using an older article i’d published [&# ;] denying the non-english speaking world not long ago i encountered the analysis of bibframe published by rob sanderson with contributions by a group of well-known librarians. it’s a pretty impressive document&# ;well organized and clearly referenced. but in fact there’s also a significant amount of personal opinion in it, the nature of which is somewhat masked by the references to others [&# ;] review of: draft principles for evaluating metadata standards metadata standards is a huge topic and evaluation a difficult task, one i’ve been involved in for quite a while. so i was pretty excited when i saw the link for &# ;draft principles for evaluating metadata standards&# ;, but after reading it? not so much. if we’re talking about “principles” in the sense of ‘stating-the-obvious-as-a-first-step’, well, [&# ;] the jane-athons continue! the jane-athon series is alive, well, and expanding its original vision. i wrote about the first ‘official’ jane-athon earlier this year, after the first event at midwinter . since then the excitement generated at the first one has spawned others: the ag-athon in the uk in may , sponsored by cilip the maurice dance in [&# ;] separating ideology, politics and utility those of you who pay attention to politics (no matter where you are) are very likely to be shaking your head over candidates, results or policy. it’s a never ending source of frustration and/or entertainment here in the u.s., and i’ve noticed that the commentators seem to be focusing in on issues of ideology and [&# ;] semantic versioning and vocabularies a decade ago, when the open metadata registry (omr) was just being developed as the nsdl registry, the vocabulary world was a very different place than it is today. at that point we were tightly focussed on skos (not fully cooked at that point, but jon was on the wg that was developing it, so [&# ;] five star vocabulary use most of us in the library and cultural heritage communities interested in metadata are well aware of tim berners-lee’s five star ratings for linked open data (in fact, some of us actually have the mug). the five star rating for lod, intended to encourage us to follow five basic rules for linked data is useful, [&# ;] what do we mean when we talk about ‘meaning’? over the past weekend i participated in a twitter conversation on the topic of meaning, data, transformation and packaging. the conversation is too long to repost here, but looking from july - for @metadata_maven should pick most of it up. aside from my usual frustration at the message limitations in twitter, there seemed to be [&# ;] fresh from ala, what’s new? in the old days, when i was on marbi as liaison for aall, i used to write a fairly detailed report, and after that wrote it up for my cornell colleagues. the gist of those reports was to describe what happened, and if there might be implications to consider from the decisions. i don’t propose [&# ;] what’s up with this jane-athon stuff? the rda development team started talking about developing training for the ‘new’ rda, with a focus on the vocabularies, in the fall of . we had some notion of what we didn’t want to do: we didn’t want yet another ‘sage on the stage’ event, we wanted to re-purpose the ‘hackathon’ model from a software [&# ;] rapid communications rapid communications rapid, but irregular, communications from the frontiers of library technology mac os vs emacs: getting on the right (exec) path finding isbns in the the digits of π software upgrades and the parable of the windows using qr codes in the library a manifesto for the library i'm a shover and maker! lita tears down the walls a (half) year in books the desk set drinking game july book a month challenge: independence june book a month challenge: knowledge anthony hope and the triumph of the public domain may book a month challenge: mother eric s. raymond on proprietary ilss one big library unconference in toronto april book a month challenge: beauty thinking about dates on to-do list web sites the most important programming language i've learned building systems that support librarians book a month challenge for march: craft social aggregators on keeping a reading journal bam challenge: heart where the users are my top technology trends slides ptsefton.com ptsefton.com what did you do in the lockdowns pt? part - music videos post looks too long? don't want to read? here's the summary. last year gail mcglinn* and i did the lockdown home-recording thing. we put out at least one song video per week for a year (and counting - we're up to over weeks). searchable, sortable website here. we learned … fair data management; it's a lifestyle not a lifecycle i have been working with my colleague marco la rosa on summary diagrams that capture some important aspects of research data management, and include the fair data principles; that data should be findable, accessible, interoperable and reusable. but first, here's a rant about some modeling and diagramming styles and trends … research data management looking outward from it this is a presentation that i gave on wednesday the nd of december at the aero (australian eresearch organizations) council meeting at the request of the chair dr carina kemp). carina asked: it would be really interesting to find out what is happening in the research data management space … redundant. thursday december was my last day at uts as the eresearch support manager. the position was declared to be redundant under the "voluntary separation program". i guess the corporate maths works for uts and it works for me. thanks covid- . this is the third redundancy for me, and … an open, composable standards–based research eresearch platform: arkisto this is a talk delivered in recorded format by peter sefton, nick thieberger, marco la rosa and mike lynch at eresearch australasia . also posted on the uts eresearch website. ' title=' ' border=' ' width=' %'/> research data from all disciplines has interest and value that extends beyond funding cycles and must continue to be managed … you won't believe this shocking semantic web trick i use to avoid publishing my own ontologies! will i end up going to hell for this? [update - as soon as this went live i spotted an error in the final example and fixed it]. in this post i describe a disgusting, filthy, but possibly beautiful hack* i devised to get around a common problem in data description using semantic web techniques, specifically json-ld and schema.org … eresearch australasia trip report by mike lynch and peter sefton i'm re-posting / self-archiving this from the uts eresearch blog. mike lynch and peter sefton attended the eresearch australasia conference in brisbane from - october , where we presented a few things - and a pre-conference summit on the st held by the australian research … fair simple scalable static research data repository this presentation was given by peter sefton & michael lynch at the eresearch australasia conference in brisbane, on the th of october . welcome - we’re going to share this presentation. peter/petie will talk through the two major standards we’re building on, and mike will talk about the … meet ro-crate by peter sefton this presentation was given by peter sefton at the eresearch australasia conference in brisbane, on the th of october . ' title='meet ro-crate ' border=' ' width=' %'/> this presentation is part of a series of talks delivered here at eresearch australasia - so it won’t go back over all of the detail already … datacrate - a progress report on packaging research data for distribution via your repository ' title='datacrate: a progress report on packaging research data for distribution via your repository peter sefton university of technology sydney ' border=' ' width=' %'/> this is a talk that i delivered at open repositories in hamburg germany, reporting on developments in the datacrate specification for research data description and packaging. the big news is that datacrate is now part of a broader international effort known as ro-crate. i spent several hours at the … equinox open library initiative skip to content facebook-f twitter linkedin-in vimeo about our team newsroom events history ethics disclosures products evergreen koha fulfillment coral services consulting migration development hosting & support training & education learn equinoxedu tips & tricks conference presentations collaborate communities partnerships grants we provide connect sales support donate social media × about our team newsroom events history ethics disclosures products evergreen koha fulfillment coral services consulting migration development hosting & support training & education learn equinoxedu tips & tricks conference presentations collaborate communities partnerships grants we provide connect sales support donate social media about our team newsroom events history ethics disclosures products evergreen koha koha on demand koha dedicated hosting fulfillment coral subjectsplus services consulting workflow and advanced ils consultation data services web design it consultation migration development hosting & support sequoia training & education learn equinoxedu tips & tricks conference presentations resource library collaborate communities evergreen koha coral equinox grants connect sales support donate contact us × about our team newsroom events history ethics disclosures products evergreen koha koha on demand koha dedicated hosting fulfillment coral subjectsplus services consulting workflow and advanced ils consultation data services web design it consultation migration development hosting & support sequoia training & education learn equinoxedu tips & tricks conference presentations resource library collaborate communities evergreen koha coral equinox grants connect sales support donate contact us about our team newsroom events history ethics disclosures products evergreen koha fulfillment coral services consulting migration development hosting & support training & education learn equinoxedu tips & tricks conference presentations collaborate communities partnerships grants we provide connect sales support donate social media × about our team newsroom events history ethics disclosures products evergreen koha fulfillment coral services consulting migration development hosting & support training & education learn equinoxedu tips & tricks conference presentations collaborate communities partnerships grants we provide connect sales support donate social media equinox provides innovative open source software for libraries of all types. extraordinary service. exceptional value. as a (c)( ) nonprofit corporation, equinox supports library automation by investing in open source software and providing technology services for libraries. products services ask us how » about equinox » news & events press release equinox open library initiative awards center for khmer studies the equinox open source grant learn more » press release equinox open library initiative awards vermont jazz center the equinox open source grant learn more » press release equinox launches new website featuring open source library products, services, and education learn more » products & services koha is the first free and open source library automation package. equinox’s team includes some of koha’s core developers. learn more evergreen is a unique and powerful open source ils designed to support large, dispersed, and multi-tiered library networks. learn more equinox provides ongoing educational opportunities through equinoxedu, including live webinars, workshops, and online resources. learn more fulfillment is an open source interlibrary loan management system. fulfillment can be used alongside or in connection with any integrated library system. learn more coral is an open source electronic resources management system. its interoperable modules allow libraries to streamline their management of electronic resources. learn more customized for your library consulting migration development hosting & support training & education why choose equinox? equinox is different from most ils providers. as a non-profit organization, our guiding principle is to provide a transparent, open software development process, and we release all code developed to publicly available repositories. equinox is experienced with serving libraries of all types in the united states and internationally. we’ve supported and migrated libraries of all sizes, from single library sites to full statewide implementations. equinox is technically proficient, with skilled project managers, software developers, and data services staff ready to assist you. we’ve helped libraries automating for the first time and those migrating from legacy ils systems. equinox knows libraries. more than fifty percent of our team are professional librarians with direct experience working in academic, government, public and special libraries. we understand the context and ecosystem of library software. sign up today for news & updates! please enable javascript in your browser to complete this form. email * name *first last i'd like to hear more about: koha evergreen equinoxedu other please describe: submit working with equinox has been like night and day. it's amazing to have a system so accessible to our patrons and easy to use. it has super-charged our library lending power! brooke matsonexecutive director, spark central equinox open library initiative hosts evergreen for the sclends library consortium. their technical support has been both prompt, responsive, and professional in reacting to our support requests during covid- . they have been a valuable consortium partner in meeting the needs of the member libraries and their patrons. chris yatessouth carolina state library working with equinox was great! they were able to migrate our entire consortium with no down time during working hours. the equinox team went the extra mile in helping missouri evergreen. colleen knightmissouri evergreen previous next twitter equinox olifollow equinox oli@equinoxoli· h our latest: "equinox open library initiative awards vermont jazz center the equinox open source grant." read more: https://bit.ly/ xjclft #equinoxgrant #grant #opensource #kohails #oss @vtjazz reply on twitter retweet on twitter like on twitter twitter retweet on twitterequinox oli retweeted newswire@inewswire· apr equinox open library initiative celebrates years as a small business delivering 'extraordinary service. exceptional value' to libraries worldwide: https://www.newswire.com/news/equinox-launches-new-website-featuring-open-source-library-products- reply on twitter retweet on twitter like on twitter twitter equinox oli@equinoxoli· apr equinoxedu : spotlight on the @evergreenils booking module registration is open! save your spot for april , - pm edt. free & open: https://bit.ly/ ahwbgl reply on twitter retweet on twitter like on twitter twitter equinox oli@equinoxoli· apr #icymi - @evergreenils . . is here! congrats to the community! #evgils #oss #opensource evergreen ils@evergreenilsevergreen . . released! new features include saml, hold groups, boostrap opac, "did you mean?" and much, much more, read about it here: https://evergreen-ils.org/evergreen- - - -released/ #evgils reply on twitter retweet on twitter like on twitter twitter equinox oli@equinoxoli· apr our latest: "equinox launches new website featuring open source library products, services, and education." read more: https://www.equinoxoli.org/equinox-launches-new-website-featuring-open-source-library-products-services-and-education/ #libraries #services #consulting #interlibraryloan #opensource #training #tech #evgils #kohails #oss reply on twitter retweet on twitter like on twitter twitter events open source twitter chat with guest moderator becky yoose #chatopens event join us on twitter with the hashtag #chatopens as we discuss cybersecurity with becky yoose of ldh consulting services. read more open source twitter chat with rogan hamby #chatopens event / / join us on twitter @equinoxoli and the #chatopens hashtag from - pm edt as we discuss all things #opensource & libraries. moderated by rogan hamby, data and project analyst for read more equinoxedu: spotlight on evergreen . event / / join us for an equinoxedu: spotlight session on new features in the evergreen ils! in this live webinar we will highlight some of the newest features in version . read more equinox open library initiative equinox open library initiative inc. is a (c) corporation devoted to the support of open source software for public libraries, academic libraries, school libraries, and special libraries. as the successor to equinox software, inc., equinox provides exceptional service and technical expertise delivered by experienced librarians and technical staff. equinox offers affordable, customized consulting services, software development, hosting, training, and technology support for libraries of all sizes and types. connect please enable javascript in your browser to complete this form. email submit facebook-f twitter linkedin-in vimeo contact us info@equinoxoli.org .open.ils ( . . ) + . . . po box norcross, ga copyright © – equinox open library initiative. all rights reserved. privacy policy  |   terms of use  |   equinox library services canada  |   site map skip to content open toolbar accessibility tools increase text decrease text grayscale high contrast negative contrast light background links underline readable font reset fair data management; it's a lifestyle not a lifecycle - ptsefton.com toggle navigation ptsefton.com home cv archives fair data management; it's a lifestyle not a lifecycle date wed april i have been working with my colleague marco la rosa on summary diagrams that capture some important aspects of research data management, and include the fair data principles; that data should be findable, accessible, interoperable and reusable. but first, here's a rant about some modeling and diagramming styles and trends that i do not like. i took part in a fun twitter thread recently kicked off by fiona tweedie. fiona tweedie @fctweedie so my current bugbear is university processes that seem to forget that the actual work of higher ed is doing research and/ or teaching. this "research lifecycle" diagram from @uw is a stunning example: in this tweet dr tweedie has called out yet another research lifecycle diagram that leaves out the process of you know, actually doing research. this process-elision happened more than once when i was working as an eresearch manager - management would get in the consultants to look at research systems, talk to the research office and graduate school and come up with a "journey map" of administrative processes that either didn't mention the actual doing research or represented it as a tiny segment, never mind that it's, you know, the main thing researchers do when they're being researchers rather than teachers or administrators. at least the consultants would usually produce a 'journey map' that got you from point a to point b using chevrons to >> indicate progress and didn't insist that everything was a 'lifecycle'. something like: plan / propose >> setup >> manage / do research >> closeout but all too commonly processes are represented using the tired old metaphor of a lifecycle. reminder: a lifecycle is a biological process; how organisms come into existence, reproduce and die via various means including producing seeds, splitting themselves in two, um, making love, laying eggs and so on. it's really stretching the metaphor to talk about research in this way - maybe the research outputs in the uw "closeout" phase are eggs that hatch into new bouncing baby proposals? regrettably, arranging things in circles and using the "lifecycle" metaphor is very common - see this google image search for "research lifecycle": i wonder if the diagramming tools that are available to people are part of the issue - microsoft word, for example can build cycles and other diagrams out of a bullet list. (i thought it would be amusing to draw the uw diagram from above as a set cogs but this happened - you can only have cogs in a word diagram.) research data management as a cycle now that i've got that off my chest let's look at research data management. here's a diagram which is in fairly wide use, from the university of california. (this image has a cc-by logo which means i can use it if i attribute it - but i'm not % clear on the original source of the diagram - it seems to be from uc somewhere.) marco used this one in some presentations we gave. i thought we could do better. the good part of this diagram is that it shows research data management as a cyclical, recurring activity - which for fair data it needs to be. what i don't like: i think it is trying to show a project (ie grant) level view of research with data management happening in one spot on the journey. typically researchers do research all the time (or in between teaching or when they can get time on equipment) not at a particular point in some administrative "journey map". we often hear feedback that their research is a lifetime activity and does not happen the way administrators and it think it does. "archive" is shown as a single-step pre-publication. this is a terrible message; if we are to start really doing fair data then data need to be described and made findable and accessible asap. the big so-called lifecycle is (to me) very contrived and looks like a librarian view of the world with data searching as a stand-alone process before research data management planning. not clear whether publication means articles or data. "data search / reuse" is a type of "collection", and why is it happening before data management planning? "re-collection" is also a kind of collection, so we can probably collapse all those together (the findable and accessible in fair). it’s not clear whether publication means articles or data or both. most research uses some kind of data storage but very often not directly; people might be interacting with a lab notebook system or a data repository - at uts we arrived at the concept of "workspaces" to capture this. the "minimum viable fair diagram" marco and i have a sketch of a new diagram that attempts to address these issues and addresses what needs to be in place for broad-scale fair data practice. two of the fair principles suggest services that need to be in place; ways to find and access data. the i and r in fair are not something that can be encapsulated in a service, as such, rather they imply that data are well described for re-use and interoperation of systems and in reusable formats. as it happens, there is a common infrastructure component which encapsulates finding data and accessing; the repository. repositories are services which hold data and make it discoverable and accessible, with governance that ensures that data does not change without notice and is available for access over agreed time frames - sometimes with detailed access control. repositories may be general purpose or specialized around a particular type of data: gene sequences, maps, code, microscope images etc. they may also be ad-hoc - at a lab level they could be a well laid out, well managed file system. some well-funded disciplines have established global or national repositories and workflows for some or all of their data, notably physics and astronomy, bioinformatics, geophysical sciences, climate and marine science. some of these may not be thought of by their community as repositories - but according to our functional definition they are repositories, even if they are "just" vast shared file systems or databases where everyone knows what's what and data managers keep stuff organized. also, some institutions have institutional data repositories but it is by no means common practice across the whole of the research sector that data find their way into any of these repositories. remember: data storage is not all files-on-disks. researchers use a very wide range of tools which may make data inaccessible outside of the tool. examples include: cloud-based research (lab) notebook systems in which data is deposited alongside narrative activity logs; large shared virtual laboratories where data are uploaded; secure eresearch platforms (serps) which allow access only via virtualized desktops with severely constrained data ingress and egress; survey tools; content management systems; digital asset management systems; email (yes, it's true some folks use email as project archives!); to custom-made code for a single experiment. our general term for all of the infrastructures that researchers use for rdm day to day including general purpose storage is “workspaces”. many, if not most workspaces do not have high levels of governance, and data may be technically or legally inaccessible over the long term. they should not be considered as suitable archives or repositories - hence our emphasis on making sure that data can be described and deposited into general purpose, standards-driven repository services. the following is a snapshot of the core parts of an idealised fair data service. it shows the activities that researchers undertake, acquiring data from observations, instruments and by reuse, conducting analysis and data description in a working environment, and depositing results into one or more repositories. we wanted it to show: that infrastructure services are required for research data management - researchers don't just "archive" their data without support - they and those who will reuse data need repository services in some form. that research is conducted using workspace environments - more infrastructure. we (by which i mean marco) will make this prettier soon. and yes, there is a legitimate cycle in this diagram it's the find -> access -> reuse -> describe -> deposit cycle that's inherent in the fair lifestyle. things that might still be missing: some kind of rubbish bin - to show that workspaces are ephemeral and working data that doesn't make the cut may be culled, and that some data is held only for a time. what do you think's missing? thoughts anyone? comments below or take it up on twitter with @ptsefton. (i have reworked parts of a document that marco and i have been working on with guido aben for this document, and thanks to recent graduate florence sefton for picking up typos and sense-checking). comments please enable javascript to view the comments powered by disqus. comments powered by disqus categories arkisto platform data packaging standards datacrate datacrate, repositories, eresearch eresearch file data capture housekeeping how to jiscpub misc music repositories research data management scholarlyhtml word processing links work play twitter: @ptsefton photos © peter (petie) sefton · powered by pelican-bootstrap , pelican, bootstrap back to top ted lawless ted lawless work notebook datasette hosting costs i've been hosting a datasette (https://baseballdb.lawlesst.net, aka baseballdb) of historical baseball data for a few years and the last year or so it has been hosted on google cloud run i thought i would share my hosting costs for as a point of reference for others who might be interested in running a datasette but aren't sure how much it may cost. the total hosting cost on google cloud run for for the baseballdb was $ . , or a monthly average of about $ . usd the monthly bill did vary a fair amount from as high as $ in may to as low as $ in march since i did no deployments during this time or updates to the site, i assume the variation in costs is related to the amount queries the datasette was serving i don't have a good sense of how many total queries per month this instance is serving since i'm not using google analytics or similar. google does report that it is subtracting $ . in credits for the year but i don't expect those credits/promotions to expire anytime soon since my projected costs for is $ . this cost information is somewhat incomplete without knowing the number of queries served per month but it is a benchmark connecting python's rdflib to aws neptune i've written previously about using python's rdflib to connect to various triple stores for a current project, i'm using amazon neptune as a triple store and the rdflib sparqlstore implemenation did not work out of the box i thought i would share my solution. the problem neptune returns ntriples by default and rdflib, by default in version . . , is expecting construct queries to return rdf/xml the solution is to override rdflib's sparqlstore to explictly request rdf/xml from neptune via http content negotiation. once this is in place, you can query and update neptune via sparql with rdflib the same way that you would other triple stores. code if you are interested in working with neptune using rdflib, here's a "neptunestore" and "neptuneupdatestore" implementation that you can use. usable sample researcher profile data i've published a small set of web harvesting scripts to fetch information about researchers and their activities from the nih intramural research program website. on various projects i've been involved with, it has been difficult to acquire usable sample, or test data, about researchers and their activities you either need access to a hr system and a research information system (for the activities) or create mock data mock, or fake data, doesn't work well when you want to start integrating information across systems or develop tools to find new publications it's hard to build a publication harvesting tool without real author names and research interests. to that end, the scripts i've published crawl the nih intramural research program website and pull out profile information for the thousand or so researchers that are members of the program, including a name, email, photo, short biography research interests, and the pubmed ids for selected publications. a second script harvests the organizational structure of the program both types of data are outputted to a simple json structure that then can be mapped to your destination system exploring years of the new yorker fiction podcast with wikidata note: the online datasette that supported the sample queries below is no longer available the raw data is at: https://github.com/lawlesst/new-yorker-fiction-podcast-data. the new yorker fiction podcast recently celebrated its ten year anniversary for those of you not familiar, this is a monthly podcast hosted by new yorker fiction editor deborah treisman where a writer who has published a short story in the new yorker selects a favorite story from the magazine's archive and reads and discusses it on the podcast with treissman. i've been a regular listener to the podcast since it started in and thought it would be fun to look a little deeper at who has been invited to read and what authors they selected to read and discuss. the new yorker posts all episodes of the fiction podcast on their website in nice clean, browseable html pages i wrote a python script to step through the pages and pull out the basic details about each episode: title url summary date published writer reader the reader and the writer for each story is embedded in the title so a bit of text processing was required to cleanly identify each reader and writer i also had to manually reconcile a few episodes that didn't follow the same pattern as the others. all code used here and harvested data is available on github. matching to wikidata i then took each of the writers and readers and matched them to wikidata using the searchentities api. with the wikidata id, i'm able to retrieve many attributes each reader and writer by querying the wikidata sparql endpoint, such as gender, date of birth, awards received, library of congress identifier, etc. publishing with datasette i saved this harvested data to two csv files - episodes.csv and people.csv - and then built a sqlite database to publish with datasette using the built-in integration with zeit now now publishing complete lahman baseball database with datasette summary: the datasette api available at https://baseballdb.lawlesst.net now contains the full lahman baseball database. in a previous post, i described how i'm using datasette to publish a subset of the lahman baseball database at that time, i only published three of the tables available in the database i've since expanded that datasette api to include the complete baseball database. the process for this was quite straightforward i ran the mysql dump lahman helpfully provides through this mysql sqlite tool to provide an import file for sqlite importing into sqlite for publishing with datasette was as simple as: $ ./mysql sqlite lahman .sql | sqlite baseball.db the complete sqlite version of the lahman database is megabytes. querying with the full database now loaded, there are many more interesting queries that can be run publishing the lahman baseball database with datasette summary: publishing the lahman baseball database with datasette api available at https://baseballdb.lawlesst.net. for those of us interested in open data, an exciting new tool was released this month it's by simon willison and called datasette datasette allows you to very quickly convert csv files to a sqlite database and publish on the web with an api head over to simon's site for more details sparql to pandas dataframes update: see this python module for converting sparql query results into pandas dataframes. using pandas to explore data sparql pandas is a python based power tool for munging and analyzing data while working with data from sparql endpoints, you may prefer to explore and analyze it with pandas given its full feature set, strong documentation and large community of users. the code below is an example of issuing a query to the wikidata sparql endpoint and loading the data into a pandas dataframe and running basic operations on the returned data. this is a modified version of code from su labs here we remove the types returned by the sparql endpoint since they add noise and we will prefer to handle datatypes with pandas. {% notebook sparql_dataframe.ipynb %} with a few lines of code, we can connect data stored in sparql endpoints with pandas, the powerful python data munging and analysis library. see the su labs tutorial for more examples. you can also download the examples from this post as a jupyter notebook. querying wikidata to identify globally famous baseball players earlier this year i had the pleasure of attending a lecture by cesar hidalgo of mit's media lab one of the projects hidalgo discussed was pantheon pantheon is a website and dataset that ranks "globally famous individuals" based on a metric the team created called the historical popularity index (hpi) a key component of hpi is the number of wikipedia pages an individual has in in various languages for a complete description of the project, see: yu, a python etl and json-ld i've written an extension to petl, a python etl library, that applies json-ld contexts to data tables for transformation into rdf. the problem converting existing data to rdf, such as for vivo, often involves taking tabular data exported from a system of record, transforming or augmenting it in some way, and then mapping it to rdf for ingest into the platform the w c maintains an extensive list of tools designed to map tabular data to rdf. general purpose csv to rdf tools, however, almost always require some advanced preparation or cleaning of the data this means that developers and data wranglers often have to write custom code this code can quickly become verbose and difficult to maintain using an etl toolkit can help with this. etl with python one such etl tool that i'm having good results with is petl, python etl orgref data as rdf summary: notes on mapping orgref to dbpedia and publishing with linked data fragments . this past fall, data salon, a uk-based data services company, released an open dataset about academic and research organizations called orgref the data is available as a csv and contains basic information about over , organizations. orgref was created with publishers in mind, and so its main focus is on institutions involved with academic content: universities, colleges, schools, hospitals, government agencies and companies involved in research. this announcement caught our attention at my place of work because we are compiling information about educational organizations in multiple systems, including a vivo instance, and are looking for manageable ways to consume linked data that will enrich or augment our local systems since the orgref data has been curated and focuses on a useful subset of data that we are interested in, it seemed to be a good candidate for investigation, even it isn't published as rdf due to it's size, it is also easier to work with than attempting to consume and process something like viaf or dbpedia itself. process we downloaded the orgref csv dataset and used the ever helpful csvkit tool to get handle on what data elements exist. $ csvstat --unique orgref.csv name: none rapid communications skip to main | skip to sidebar rapid communications rapid, but irregular, communications from the frontiers of library technology wednesday, april , mac os vs emacs: getting on the right (exec) path one of the minor annoyances about using emacs on mac os is that the path environment variable isn't set properly when you launch emacs from the gui (that is, the way we always do it). this is because the mac os gui doesn't really care about the shell as a way to launch things, but if you are using brew, or other packages that install command line tools, you do. apple has changed the way that the path is set over the years, and the old environment.plist method doesn't actually work anymore, for security reasons. for the past few releases, the official way to properly set up the path is to use the path_helper utility program. but again, that only really works if your shell profile or rc file is run before you launch emacs. so, we need to put a bit of code into emacs' site_start.el file to get things set up for us: (when (file-executable-p "/usr/libexec/path_helper") (let ((path (shell-command-to-string "eval `/usr/libexec/path_helper -s`; echo -n \"$path\""))) (setenv "path" path) (setq exec-path (append (parse-colon-path path) (list exec-directory))))) this code runs the path_helper utility, saves the output into a string, and then uses the string to set both the path environment variable and the emacs exec-path lisp variable, which emacs uses to run subprocesses when it doesn't need to launch a shell. if you are using the brew version of emacs, put this code in /usr/local/share/emacs/site-lisp/site-start.el and restart emacs. posted by david j. fiander at : am no comments: tuesday, january , finding isbns in the the digits of π for some reason, a blog post from about searching for isbns in the first fifty million digits of π suddenly became popular on the net again at the end of last week (mid-january ). the only problem is that geoff, the author, only looks for isbn- s, which all start with the sequence " ". there aren't many occurrences of " " in even the first fifty million digits of π, so it's not hard to check them all to see if they are the beginning of a potential isbn, and then find out if that potential isbn was ever assigned to a book. but he completely ignores all of the isbn- s that might be hidden in π. so, since i already have code to validate isbn checksums and to look up isbns in oclc worldcat, i decided to check for isbn- s myself. i don't have easy access to the first fifty million digits of π, but i did manage to find the first million digits online without too much difficulty. an isbn- is a ten character long string that uniquely identifies a book. an example is " - - - ". the dashes are optional and exist mostly to make it easier for humans, just like the dashes in a phone number. the first character of an isbn- indicate the language in which the book is published: and are for english, is for french, and so on. the last character of the isbn is a "check digit", which is supposed to help systems figure out if the isbn is correct or not. it will catch many common types of errors, like swapping two characters in the isbn: " - - - " is invalid. here are the first one hundred digits of π: . to search for "potential (english) isbn- s", all one needs to do is search for every or in the first , digits of π (there is a " " three digits from the end, but then there aren't enough digits left over to find a full isbn, so we can stop early) and check to see if the ten digit sequence of characters starting with that or has a valid check digit at the end. the sequence " ", highlighted in red, fails the test, because " " is not the correct check digit; but the sequence " " highlighted in green is a potential isbn. there are approximately , zeros and ones in the first million digits of π, but "only" , of them appear at the beginning of a potential isbn- . checking those , potentials against the worldcat bibliographic database results in , valid isbns. the first one is at position , : isbn , for the book the evolution of weapons and warfare by trevor n. dupuy. the last one is at position , : isbn for the book exploring language assessment and testing : language in action by anthony green. here's the full dataset. posted by david j. fiander at : pm comments: saturday, march , software upgrades and the parable of the windows a librarian friend of mine recently expressed some surprise at the fact that a library system would spend almost $ , to upgrade their ils software, when the vendor is known to be hostile to its customers and not actually very good with new development on their products. the short answer is that it's easier to upgrade than to think. especially when an "upgrade" will be seen as easier than a "migration" to a different vendor's system (note: open ils platforms like evergreen and koha may be read as being different vendors for the sake of convenience). in fact, when an ils vendor discontinues support for a product and tells its customers that they have to migrate to another product if they want to continue to purchase support, it is the rare library that will take this opportunity to re-examine all its options and decide to migrate to a different vendor's product. a simple demonstration of this thinking, on a scale that most of us can imagine, is what happened when my partner and i decided that it was time to replace the windows in our house several years ago. there are a couple of things you need to know about replacing the windows in your house, if you've never done this before: most normal folks replace the windows in their house over the course of several years, doing two or three windows every year or two. if one is replacing the huge bay window in the living room, then that might be the only window that one does that year. windows are expensive enough that one can't really afford to do them all at once. windows are fungible. for the most part, one company's windows look exactly like another company's. unless you're working hard at getting a particular colour of flashing on the outside of the window, nobody looking at your house from the sidewalk would notice that the master bedroom window and the livingroom window were made by different companies. like any responsible homeowners, we called several local window places, got quotations from three or four of them for the windows we wanted replaced that year, made our decision about which vendor we were going to use for the first round of window replacements, and placed an order. a month or so later, on a day that the weather was going to be good, a crew from the company arrived, knocked big holes in the front of our house to take out the old windows and install the new ones. a couple of years went by, and we decided it was time to do the next couple of windows, so my partner, who was always far more organized about this sort of thing that me, called three or four window companies and asked them to come out to get quotations for the work. at least one of the vendors declined, and another vendor did come out and give us a quote but he was very surprised that we were going through this process again, because normally, once a householder has gone through the process once, they tend to use the same window company for all the windows, even if several years have passed, or if the type of work is very different from the earlier work (such as replacing the living room bay window after a couple of rounds of replacing bedroom windows). in general, once a decision has been made, people tend to stick with that plan. i think it's a matter of, "well, i made this decision last year, and at the time, this company was good, so they're probably still good," combined, perhaps, with a bit of thinking that changing vendors in mid-stream implies that i didn't make a good decision earlier. and there is, of course, always the thought that it's better to stick with the devil you know that the one you don't. posted by david j. fiander at : pm comments: sunday, january , using qr codes in the library this started out as a set of internal guidelines for the staff at mpow, but some friends expressed interest in it, and it seems to have struck a nerve, so i'm posting it here, so it is easier for people to find and to link to. using qr codes in the library qr codes are new to north american, but have been around for a while in japan, where they originated, and where everybody has a cellphone that can read the codes. they make it simpler to take information from the real world and load it into your phone. as such, they should only be used when the information will be useful for somebody on the go, and shouldn't normally be used if the person accessing the information will probably be on a computer to begin with. do use qr codes: on posters and display projectors to guide users to mobile-friendly websites. to share your contact information on posters, display projectors, or your business card. this makes it simpler for users to add you to their addressbook without having to type it all in. in display cabinets or art exhibits to link to supplementary information about the items on display. don't use qr codes: to record your contact information in your email signature. somebody reading your email can easily copy the information from your signature to their addressbook. to share urls for rich, or full-sized, websites. the only urls you should be sharing via qr codes for are mobile-friendly sites. when using qr codes: make sure to include a human readable url, preferably one that's easy to remember, near the qr code for people without qr code scanners to use. posted by david j. fiander at : pm no comments: monday, april , a manifesto for the library last week john blyberg, kathryn greenhill, and cindi trainor spent some time together thinking about what the library is for and what its future might hold. the result of that deep thinking has now been published on john's blog under the title "the darien statements on the library and librarians." opening with the ringing statement that the purpose of the library is to preserve the integrity of civilization they then provide their own gloss on what this means for individual libraries, and for librarians. there is a lively discussion going on in the comments on john's blog, as well as less thoughtful sniping going on in more "annoying" blogs. i think that this is something that will engender quite a bit of conversation in the month's to come. posted by david j. fiander at : pm no comments: sunday, april , i'm a shover and maker! since only a few people can be named "movers and shakers" by library journal, joshua neff and steven lawson created the "shovers and makers" awards "for the rest of us," under the auspices of the not entirely serious library society of the world. i'm very pleased to report that i have been named a shover and maker (by myself, as are all the winners). the shovers and makers awards are a fun way to share what we've done over the past year or two and they're definitely a lot simpler than writing the annual performance review that hr wants. think of this as practice for writing the speaker's bio for the conference keynote you dream of being invited to give. posted by david j. fiander at : am no comments: sunday, january , lita tears down the walls at ala midwinter , jason griffey and the lita folks took advantage of the conference center's wireless network to provide quick and easy access to the top tech trends panel for those of us that couldn't be there in person. the low-bandwidth option was a coveritlive live-blogging feed of comments from attending that also included photos by cindi trainor, and a feed of twitters from attendees. the high-bandwidth option was a live (and recorded) video stream of the event that jason captured using the webcam built into his laptop. aside from the lita planned events, the fact that we could all sit in meant that there were lots of virtual conversations in chat rooms and other forums that sprung up as people joined in from afar. unfortunately, because my sunday morning is filled with laundry and other domestic pleasures, i wasn't able to join in on the "live" chatter going on in parallel with the video or livebloggin. owing to funding constraints and my own priorities, my participation at ala is limited. i've been to lita forum once, and might go again, but i focus more on the ola other regional events. this virtual option from lita let me get a peek at what's going on and hear what the "big thinkers" at lita have to say. i hope they can keep it up, and will definitely be talking to local folks about how we might be able to emulate lita in our own events. posted by david j. fiander at : pm no comments: older posts home subscribe to: posts (atom) about me david j. fiander i'm a former software developer who's now the web services librarian at a university. the great thing about that job title is that nobody knows what i do. view my complete profile last.fm weekly chart blog archive ▼  ( ) ▼  april ( ) mac os vs emacs: getting on the right (exec) path ►  ( ) ►  january ( ) ►  ( ) ►  march ( ) ►  ( ) ►  january ( ) ►  ( ) ►  april ( ) ►  january ( ) ►  ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  july ( ) ►  june ( ) ►  march ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) this work is licensed under a creative commons attribution-noncommercial-share alike . canada license.   richmond, va city of richmond, virginia welcome last updated: - - click here for updates on the city's preparation for and response to covid- . stay connected emergency preparedness natural gas safety city events calendar data portal interact with grtc pulse here blogs / twitter / facebook / youtube site wide menu: home home, general or common pages accessibility awards to the city contact us city wide calendar employee directory faq forms privacy policy services a to z government leadership mayor richmond city council school board agencies airport commission health district, richmond(vdh-r) public utilities ambulance authority housing and community development public works animal care and control human resources redevelopment and housing assessor of real estate human services retirement system office of the city attorney information technology richmond gas works office of the city auditor office of the inspector general richmond public schools behavioral health authority justice services sheriff budget and strategic planning richmond public library social services circuit court clerk minority business development southside community service center office of the city clerk parks, recreation and special events east district center   community facilities sustainability economic development planning and development review transit authority(rmta) emergency communications( ) police city treasurer emergency management port of richmond voter registrar finance press secretary to the mayor office of community wealth building fire and emergency services procurement services           services a to z more information... highlighted information coronavirus (covid- ) info contact mayor neighbor to neighbor richmond recycles traffic information resort casino development & capital parking information rva impact map traffic tickets city code   improvement projects park search rva transportation planning civic associations employee directory parking tickets sister cities   contact city council open data portal pay taxes slave trail   community gardens multicultural affairs redistricting special events                   services a to z more information... business business animal care and control city clerk employee directory property search annual budget report city council finance department richmond gas works assessor city wide calendar mayor's office rva auditor economic development minority business set up a special event bids and proposals emergency management   development(mbd) start a business board of zoning appeals emergency multicultural affairs taxes online payment budget   communications( ) permits web inquiry   caps employment port of richmond               services a to z more information... visitors visitors th st farmers market census data cultural venues richmond coliseum about richmond center stage employee directory park search altria theatre city council maps (gis) travel and tourism city wide calendar city publication main street station tours careers crime incidents mayor's office visitors centers             services a to z more information... residents residents th st farmers market crime report mayor's office richmond gas works office on aging and departments neighbor to neighbor richmond recycles   persons with disabilities emergency multicultural affairs road repairs altria theater   communications( ) parks information rva animal care and control employee directory public works schools bus system(grtc) fire and emergency police sheriff office caps forms for the city property search social services center stage gis maps and data public health tours city council green city public library traffic conditions city wide calendar justice services public utilities voter registration civic associations leaf collection redistricting community wealth building community gardens main street station refuse collection               services a to z more information... online services online payments admissions, lodging and meals tax gas and water parking violations personal property taxes real estate taxes   interactive maps land use projects map of traffic hazards map to city hall zoning     other services bids and proposals job descriptions property transfer search circuit court case information job search property search committees information library online services rapids employee self service court case information minority business directory real-time traffic crime incident information open data portal resolutions search city events calendar ordinances search rva impact map community gardens parks search rva employee directory parking information video archive fraud and waste reporting permits web inquiry           services a to z more information... click here for updates on the city's preparation for and response to covid- . home home of mobile site complete richmondgov.com site announcements city news government mayor city council human resources finance assessor information business license personal property tax real estate taxes bids and proposals public safety police fire animal control visitors about richmond city events calendar tours family fun landmarks cultural venues museums services traffic conditions property search utility payment plan public works services mayor's participation action and communication team accessibility | privacy policy | contact us | auditor reports issued | foia request e. broad st. | richmond, va | map it | ( ) - hours: monday - friday, a.m. - p.m. mayor levar stoney this is a print version of the webpage. the navigation of the site has been removed through the print css. if you require a printout of the page as it looks in your browser, please use screen capture. keeping citizens informed! planet eric lease morgan planet eric lease morgan reading texts through the use of network graphs the works of horace, bound how to write in a book tei toolbox, or "how a geeky librarian reads horace" cool hack with wget and xmllint my integrated development environment (ide) final blog posting openrefine and the distant reader topic modeling tool – enumerating and visualizing latent themes the distant reader and concordancing with antconc the distant reader workbook wordle and the distant reader the distant reader and a web-based demonstration distant reader “study carrels”: a manifest a distant reader field trip to bloomington what is the distant reader and why should i care? project gutenberg and the distant reader ojs toolbox the distant reader and its five different types of input invitation to hack the distant reader fantastic futures: my take-aways marc catalog charting & graphing with tableau public charting & graphing with tableau public extracting parts-of-speech and named entities with stanford tools extracting parts-of-speech and named entities with stanford tools creating a plain text version of a corpus with tika creating a plain text version of a corpus with tika identifying themes and clustering documents using mallet identifying themes and clustering documents using mallet introduction to the nltk introduction to the nltk using voyant tools to do some “distant reading” using voyant tools to do some “distant reading” project english: an index to english/american literature spanning six centuries using a concordance (antconc) to facilitate searching keywords in context using a concordance (antconc) to facilitate searching keywords in context word clouds with wordle word clouds with wordle an introduction to the nltk: a jupyter notebook an introduction to the nltk: a jupyter notebook what is text mining, and why should i care? what is text mining, and why should i care? lexisnexis hacks freebo@nd and library catalogues how to do text mining in words how to do text mining in words stories: interesting projects i worked on this past year freebo@nd tei json: summarizing the structure of early english poetry and prose synonymizer: using wordnet to create a synonym file for solr tiny road trip: an americana travelogue blueprint for a system surrounding catholic social thought & human rights how not to work during a sabbatical achieving perfection achieving perfection viaf finder viaf finder making stone soup: working together for the advancement of learning and teaching making stone soup: working together for the advancement of learning and teaching protected: simile timeline test editing authorities at the speed of four records per minute editing authorities at the speed of four records per minute failure to communicate failure to communicate using bibframe for bibliographic description using bibframe for bibliographic description xml xml mr. serials continues mr. serials continues re-marcable re-marcable marc, marcxml, and mods marc, marcxml, and mods “sum reflextions” on travel “sum reflextions” on travel what is old is new again what is old is new again painting in tuscany painting in tuscany my water collection predicts the future my water collection predicts the future jstor workset browser early english love was black & white some automated analysis of richard baxter’s works some automated analysis of richard baxter’s works some automated analysis of ralph waldo emerson’s works some automated analysis of henry david thoreau’s works eebo-tcp workset browser developments with eebo boxplots, histograms, and scatter plots. oh, my! hathitrust workset browser on github hathitrust resource center workset browser marrying close and distant reading: a thatcamp project marrying close and distant reading: a thatcamp project text files hands-on text analysis workshop distance.cgi – my first python-based cgi script great books survey great books survey my second python script, dispersion.py my first r script, wordcloud.r my first python script, concordance.py doing what i’m not suppose to do doing what i’m not suppose to do hundredth psalm to the tune of "green sleeves": digital approaches to shakespeare's language of genre publishing lod with a bent toward archivists publishing lod with a bent toward archivists theme from macroanalysis: digital methods and literary history (topics in the digital humanities) fun with koha fun with koha matisse: "jazz" jazz, (henri matisse) context for the creation of jazz lexicons and sentiment analysis – notes to self what’s eric reading? librarians and scholars: partners in digital humanities digital scholarship in the humanities a creative arts the huni virtual laboratory digital collections as research infrastructure fun with elasticsearch and marc fun with elasticsearch and marc visualising data: a travelogue orcid outreach meeting (may & , ) crossref’s text and data mining (tdm) api ranking and extraction of relevant single words in text level statistics of words: finding keywords in literary texts and symbolic sequences corpus stylistics, stylometry, and the styles of henry james narrative framing of consumer sentiment in online restaurant reviews code lib jobs topic linked archival metadata: a guidebook (version . ) trends and gaps in linked data for archives liam guidebook: executive summary rome in three days, an archivists introduction to linked data publishing rome in a day, the archivist on a linked data pilgrimage way four “itineraries” for putting linked data into practice for the archivist italian lectures on semantic web and linked data linked archival metadata: a guidebook the d printing working group is maturing, complete with a shiny new mailing list what is linked data and why should i care? impressed with reload digital humanities and libraries tiny text mining tools three rdf data models for archival collections liam guidebook – a new draft linked data projects of interest to archivists (and other cultural heritage personnel) rdf tools for the archivist semantic web browsers writing a book university of notre dame -d printing working group semantic web application sparql tutorial crossref’s prospect api analyzing search results using jstor’s data for research liam source code: perl poetry liam source code: perl poetry linked data and archival practice: or, there is more than one way to skin a cat. archival linked data use cases beginner’s glossary to linked data rdf serializations curl and content-negotiation questions from a library science student about rdf and linked data paper machines linked archival metadata: a guidebook — a fledgling draft rdf ontologies for archival descriptions simple text analysis with voyant tools liam guidebook tools liam guidebook linked data sites liam guidebook citations publishing archival descriptions as linked data via databases publishing linked data by way of ead files semantic web in libraries liam sparql endpoint liam sparql endpoint initial pile of rdf illustrating rdf transforming marc to rdf tiny list of part-of-speech taggers simple linked data recipe for libraries, museums, and archives oai lod rdf triple stores fun with bibliographic indexes, bibliographic data management software, and z . quick and dirty website analysis ead rdf ead rdf oai lod server oai lod server network detroit and great lakes thatcamp data information literacy @ purdue -d printing in the center for digital scholarship initialized a list of tools in the liam guidebook, plus other stuff guidebook moved to liamproject hathitrust research center perl library what is linked data and why should i care? jane & ade stevenson as well as locah and linking lives linking lives challenges of linked open data linked archival metadata: a guidebook drive by shared data: a travelogue beth plale, yiming sun, and the hathitrust research center jstor tool — a programatic sketch matt sag and copyright catholic pamphlets workflow copyright and the digital humanities digital scholarship grilled cheese lunch editors across campus: a reverse travelogue digital humanities and the liberal arts introduction to text mining welcome! genderizing names editors across the campus visualization and gis ted underwood and “learning what we don’t know about literary history” visualizations and geographic information systems a couple of open access week events new media from the middle ages to the digital age ted underwood dh lunch # so many editors! digital humanities centers lunch and lightning talks inaugural digital humanities working group lunch: meeting notes yet more about hathitrust items inaugural digital humanities lunch granting opportunity visualization tools notre dame digital humanities mailing list serial publications with editors at notre dame exploiting the content of the hathitrust, epilogue exploiting the content of the hathitrust, continued exploiting the content of the hathitrust computational methods in the humanities and sciences patron-driven acquisitions: a symposium lourdes, france e-reading: a colloquium at the university of toronto summarizing the state of the catholic youth literature project summary of the catholic pamphlets project patron-driven acquisitions: a symposium at the university of notre dame value and benefits of text mining hello, world users, narcissism and control – tracking the impact of scholarly publications in the st century digital research data sharing and management from stacks to the web: the transformation of academic library collecting emotional intelligence interim report: interviews with research support professionals research infrastructures in the digital humanities trilug, open source software, and satisfaction trilug, open source software, and satisfaction institutional repositories, open access, and scholarly communication: a study of conflicting paradigms catholic pamphlets digitized field trip to the mansueto library at the university of chicago scholarly publishing presentations tablet-base “reading” big tent digital humanities meeting catholic pamphlets and practice workflow river jordan at yardenit (israel) use & understand: a dpla beta-sprint proposal use & understand: a dpla beta-sprint proposal catholic youth literature project update catholic youth literature project: a beginning pot-luck picnic and mini-disc golf tournament code lib midwest: a travelogue raising awareness of open access publications raising awareness of open access publications poor man’s restoration poor man’s restoration my dpla beta-sprint proposal: the movie my dpla beta-sprint proposal: the movie trip to the internet archive, fort wayne (indiana) draftreportwithtransclusion lld vocabularies and datasets usecasereport digital humanities implementation grants reading revolutions: online digital text and implications for reading in academe report and recommendations of the u.s. rda test coordinating committee: executive summary usability testing of vufind at an academic library the catholic pamphlets project at the university of notre dame dpla beta sprint submission dpla beta sprint submission digging into data using new collaborative infrastructures supporting humanities-based computer science research next-generation library catalogs, or ‘are we there yet?’ next-generation library catalogs, or ‘are we there yet?’ hathitrust: a research library at web scale rapid capture: faster throughput in digitization of special collections fun with rss and the rss aggregator called planet fun with rss and the rss aggregator called planet research data inventory book reviews for web app development book reviews for web app development data management day alex lite (version . ) alex lite (version . ) where in the world is the mail going? where in the world is the mail going? constant chatter at code lib constant chatter at code lib data management & curation groups how “great” are the great books? how “great” are the great books? code lib conference, code lib conference, subject librarian's guide to collaborating on e-science projects skilling up to do data: whose role, whose responsibility, whose career? words, patterns and documents: experiments in machine learning and text analysis vive la différence! text mining gender difference in french literature gender, race, and nationality in black drama, - : mining differences in language use in authors and their characters how to write a data management plan for a national science foundation (nsf) proposal meeting funders’ data policies: blueprint for a research data management service group (rdmsg) data curation at the university of california, san diego: partnerships and networks conducting a data interview e-science and data support services a study of arl member institutions cloud-sourcing research collections: managing print in the mass-digitized library environment advanced scholar research with the knowledge kiosk horizon report, edition making data maximally available managing research data foray’s into parts-of-speech foray’s into parts-of-speech elements of a data management plan kotter's -step change model visualizing co-occurrences with protovis visualizing co-occurrences with protovis mit’s simile timeline widget mit’s simile timeline widget th international data curation conference two more data creator interviews three data webinars implementing open access: policy case studies illustrating idcc illustrating idcc ruler & compass by andrew sutton ruler & compass by andrew sutton text mining charles dickens text mining charles dickens angelfund code lib angelfund code lib crowd sourcing the great books crowd sourcing the great books great books data set great books data set data tsunamis and explosions david dickinson and new testament manuscripts data curation at ecdl ecdl : a travelogue ecdl : a travelogue xforms for libraries, an introduction automatic aggregation of faculty publications from personal web pages dan marmion dan marmion interpreting marc: where’s the bibliographic data? why purchase when you can repurpose? using crosswalks to enhance user access hacking summon editorial introduction – a cataloger’s perspective on the code lib journal managing library it workflow with bugzilla selected internet resources on digital research data curation undiscovered public knowledge undiscovered public knowledge: a ten-year update diddling with data great books data dictionary great books data dictionary data curation in purdue twitter, facebook, delicious, and alex twitter, facebook, delicious, and alex where in the world are windmills, my man friday, and love? where in the world are windmills, my man friday, and love? river teith at doune castle (scotland) river clyde at bothwell castle (scotland) ngrams, concordances, and librarianship ngrams, concordances, and librarianship lingua::en::bigram (version . ) lingua::en::bigram (version . ) lingua::en::bigram (version . ) lingua::en::bigram (version . ) cool uris cool uris hello world! rsync, a really cool utility rsync, a really cool utility social side of science data sharing: distilling past efforts preserving research data retooling libraries for the data challenge university investment in the library, phase ii: an international study of the library's value to the grants process doing ocr against new testament manuscripts steps toward large-scale data integration in the sciences: summary of a workshop wilsworld, wilsworld, digital humanities : a travelogue digital humanities : a travelogue digital repository strategic information gathering project data-enabled science in the mathematical and physical sciences how “great” is this article? how “great” is this article? river thames at windsor castle ala ala principles and good practice for preserving data text mining against ngc lib text mining against ngc lib the next next-generation library catalog the next next-generation library catalog measuring the great books measuring the great books collecting the great books collecting the great books inaugural code lib “midwest” regional meeting inaugural code lib “midwest” regional meeting how “great” are the great books? how “great” are the great books? not really reading not really reading cyberinfrastructure days at the university of notre dame cyberinfrastructure days at the university of notre dame about infomotions image gallery: flickr as cloud computing about infomotions image gallery: flickr as cloud computing shiny new website shiny new website grand river at grand rapids (michigan) counting words counting words open source software and libraries: a current swot analysis great ideas coefficient great ideas coefficient indexing and abstracting my first epub file my first epub file alex catalogue widget alex catalogue widget michael hart in roanoke (indiana) michael hart in roanoke (indiana) preservationists have the most challenging job preservationists have the most challenging job how to make a book (# of ) how to make a book (# of ) good and best open source software good and best open source software valencia and madrid: a travelogue valencia and madrid: a travelogue colloquium on digital humanities and computer science: a travelogue colloquium on digital humanities and computer science: a travelogue park of the pleasant retreat, madrid (spain) mediterranean sea at valencia (spain) a few possibilities for librarianship by alex catalogue collection policy alex catalogue collection policy alex, the movie! alex, the movie! collecting water and putting it on the web (part iii of iii) collecting water and putting it on the web (part iii of iii) collecting water and putting it on the web (part ii of iii) collecting water and putting it on the web (part ii of iii) collecting water and putting it on the web (part i of iii) collecting water and putting it on the web (part i of iii) web-scale discovery services web-scale discovery services how to make a book (# of ) how to make a book (# of ) book review of larry mcmurtry’s books book review of larry mcmurtry’s books browsing the alex catalogue browsing the alex catalogue indexing and searching the alex catalogue indexing and searching the alex catalogue history of science microsoft surface at ball state microsoft surface at ball state what's needed next: a culture of candor frequent term-based text clustering web-scale discovery indexes and "next generation" library catalogs automatic metadata generation automatic metadata generation linked data applications alex on google alex on google top tech trends for ala annual, summer top tech trends for ala annual, summer mass digitization mini-symposium: a reverse travelogue mass digitization mini-symposium: a reverse travelogue atlantic ocean at christ of the abyss statue (key largo, fl) lingua::en::bigram (version . ) lingua::en::bigram (version . ) lingua::concordance (version . ) lingua::concordance (version . ) mississippi river at gateway to the west (st. louis, mo) ead marc ead marc text mining: books and perl modules text mining: books and perl modules interent archive content in “discovery” systems interent archive content in “discovery” systems tfidf in libraries: part iii of iii (for thinkers) tfidf in libraries: part iii of iii (for thinkers) tidal basin at the jefferson memorial (washington, dc) mass digitization and opportunities for librarianship in minutes the decline of books the decline of books implementing user-centered experiences in a networked environment code lib software award: loose ends code lib software award: loose ends tfidf in libraries: part ii of iii (for programmers) tfidf in libraries: part ii of iii (for programmers) ralph waldo emerson’s essays ralph waldo emerson’s essays tfidf in libraries: part i of iii (for librarians) tfidf in libraries: part i of iii (for librarians) statistical interpretation of term specificity and its application in retrieval a day at cil a day at cil quick trip to purdue quick trip to purdue library technology conference, : a travelogue library technology conference, : a travelogue open source software: controlling your computing environment "next-generation" library catalogs mississippi river at st. anthony falls (minneapolis) technology trends and libraries: so many opportunities code lib open source software award code lib open source software award code lib conference, providence (rhode island) code lib conference, providence (rhode island) henry david thoreau’s walden henry david thoreau’s walden eric lease morgan’s top tech trends for ala mid-winter, eric lease morgan’s top tech trends for ala mid-winter, yaac: yet another alex catalogue yaac: yet another alex catalogue isbn numbers isbn numbers fun with webservice::solr, part iii of iii fun with webservice::solr, part iii of iii why you can't find a library book in your search engine fun with webservice::solr, part ii of iii fun with webservice::solr, part ii of iii mr. serials is dead. long live mr. serials mr. serials is dead. long live mr. serials fun with webservice::solr, part i of iii fun with webservice::solr, part i of iii lcsh, skos, and linked data visit to ball state university visit to ball state university a day with ole a day with ole asis&t bulletin on open source software asis&t bulletin on open source software fun with the internet archive fun with the internet archive snow blowing and librarianship snow blowing and librarianship tarzan of the apes tarzan of the apes open source software in libraries: opportunities and expenses worldcat hackathon worldcat hackathon vufind at palinet vufind at palinet next-generation library catalogues: a presentation at libraries australia darling harbor, sydney (australia) lake ontario at hamilton, ontario (canada) lake huron at sarnia (canada) dinner with google dinner with google mylibrary: a digital library framework &amp; toolkit mylibrary: a digital library framework & toolbox mylibrary: a digital library framework & toolbox mbooks, revisited mbooks, revisited wordcloud.pl wordcloud.pl last of the mohicans and services against texts last of the mohicans and services against texts crowd sourcing tei files crowd sourcing tei files metadata and data structures metadata and data structures origami is arscient, and so is librarianship origami is arscient, and so is librarianship on the move with the mobile web on the move with the mobile web tpm — technological protection measures tpm — technological protection measures against the grain is not against the grain is not e-journal archiving solutions e-journal archiving solutions web . and “next-generation” library catalogs web . and “next-generation” library catalogs alex lite: a tiny, standards-compliant, and portable catalogue of electronic texts alex lite: a tiny, standards-compliant, and portable catalogue of electronic texts indexing marc records with marc j and lucene indexing marc records with marc j and lucene encoded archival description (ead) files everywhere encoded archival description (ead) files everywhere extensible catalog (xc): a very transparent approach extensible catalog (xc): a very transparent approach top tech trends for ala (summer ’ ) top tech trends for ala (summer ’ ) google onebox module to search ldap google onebox module to search ldap dlf ils discovery internet task group technical recommendation dlf ils discovery internet task group technical recommendation introduction to the catholic research resources alliance hypernote pro: a text annotating hypercard stack hypernote pro: a text annotating hypercard stack steve cisler steve cisler feather river at paradise, california code lib journal perl module (version . ) open library, the movie! get-mbooks.pl hello, world! cape cod bay at race point next generation data format salto do itiquira open library developer's meeting: one web page for every book ever published atom syndication format getting to know the atom publishing protocol, part : create and edit web resources with the atom publishing protocol atom publishing protocol today's digital information landscape dr. strangelove, or how we learned to live with google next generation library catalogs in fifteen minutes success of open source by steven weber: a book review catalog collectivism: xc and the future of library search headwaters of the missouri river open source software at the montana state university libraries symposium original mylibrary canal surrounding kastellet, copenhagen, denmark sum top tech trends for the summer of lake erie at cedar point amusement park, oh mineral water from puyehue, chile lago paranoa, brazilia (brazil) leading a large group wise crowds with long tails trip to rochester to learn about xc open repositories, : a travelogue unordered list of "top tech trends" whirlwind in windsor surrounding integrated library systems: my symposium notes thinking outside the books: a travel log mylibrary .x and a next generation library catalogue ecdl : a travel log mediterranean sea at alicante (spain) building the "next generation" library catalog institute on scholarly communication: a travel log north channel at laurentian isle, canada american library association annual meeting, joint conference on digital libraries, mississippi river at oak alley plantation rethink the role of the library catalog top tech trends for ala ; "sum" pontifications next generation library catalog what is srw/u? first monday on a tuesday: a travel log ohio valley group of technical services librarian annual meeting being innovative atlantic ocean at the forty steps (newport, ri) mass digitization (again) all things open mass digitization zagreb, croatia: a travel log mylibrary workshop fountain at trg bana jelacica open source software for libraries in minutes library services and in-house software development oai : to cern and back again lake geneva at jet d eau, geneva, switzerland exploiting "light-weight" protocols and open source tools to implement digital library collections and services technical skills of librarianship creating and managing xml with open source software rock run at ralston, pa introduction to web services top technology trends, implementing sru in perl morgan territory regional park, ca iolug spring program short visit to crl agean sea at kos, greece erie canal at fairport, ny so you want a new website iesr/ockham in manchester indiana library federation annual meeting river lune, lancaster, uk my personal tei publishing system atlantic ocean at hay beach, shelter island, ny open access publishing roman bath, bath, uk symposium on open access and digital preservation jimmy carter water, atlanta, ga european conference on digital libraries, puget sound at port orchard, wa ockham in corvallis, or marys peak spring water ogle lake, brown county state park, in natural bridges state park, monterey bay, santa cruz, ca yellowstone river fountain of youth, st. augustine, fl introduction to search/retrieve url service (sru) portal implementation issues and challenges bath creek at bath, nc open source software in libraries really rudimentary catalog mcn annual conference lake mead at hoover dam lita national forum, open source software in libraries: a workshop mylibrary: a copernican revolution in libraries caribbean sea at lime cay, kingston, jamaica gulf of mexico at galveston island state park mill water at mission san jose, san antonio, tx what is information architecture? texas library association annual meeting, building your library's portal salton sea, ca pacific ocean at big sur, ca pacific ocean at la jolla, ca getting started with xml: a workshop usability for the web: designing web sites that work daiad goes to ann arbor ockham@emory (january, ) web services at oclc access , windsor, ontario lake st. claire at windsor, ontario usability in less than minutes european conference on digital libraries making information easier to find with mylibrary roman forum in rome, italy implementing "light-weight reference models" in mylibrary tanana river at fairbanks, alaska mendenhall glacier at juneau, alaska lancaster square, conwy, wales river teifi at cenarth falls, cenarth, wales atlantic ocean at mwnt, wales atlantic ocean at st. justinians, wales atlantic ocean at roch, wales loch lomond american library association annual meeting, atlanta, ga, stone mountain, atlanta, ga st. joesph river at bristol, in ockham in atlanta dlf in chicago isabella river in the boundry waters canoe area wilderness, mn open source software in libraries asis &amp; t information architecture summit: refining the craft baltimore harbor, baltimore, md what is the open archives initiative? ontario library association (ola) annual meeting, reflection pool, university of notre dame, notre dame, in lake michigan at warren dunes state park, in ohio river at point pleasant, oh open source software in libraries amazon river, peru comparing open source indexers smart html pages with php data services for the sciences: a needs assessment summary report of the research data management study group portal webliography gift cultures, librarianship, and open source software development dbms and web delivery review of some ebook technology cap ' sigir ' mylibrary@ncstate marketing through usability catalogs of the future raleigh-worcester-lansing adaptive technologies sometimes the question is more important than the answer networking languaging ' possibilities for proactive library services systems administration requires people skills communication is the key to our success imagine, if only we had... marketing future libraries springboards for stategic planning eric visits savannah different type of distance education indexing, indexing, indexing mylibrary in your library becoming a -pound gorilla access control in libraries we love databases! computer literacy for librarians pointers searching, searching pointers from amtrak to artemia salina unique collections and fahrenheit creating user-friendly electronic information systems tuileries gardens, paris (france) evaluating index morganagus becoming a world wide web server expert see you see a librarian final report learning to use the tools of the trade cataloging digital mediums readability, browsability, searchability plus assistance listwebber ii on being a systems librarian cataloging internet resources: a beginning tennessee library association clarence meets alcuin extending your html on a macintosh using macro languages adding internet resources to our opacs description and evaluation of the mr. serials process gateways and electronic publishing teaching a new dog old tricks wils' world conference : a travel log ala annual conference: a mini-travel log ties that bind: converging communities - a travel log usain annual conference : a travel log internet for anthropologists webedge: a travel log using world wide web and wais technologies introduction to world wide web servers short trip to duke opportunities for technical services staff email.cgi version . . world-wide web and mosaic: an overview for librarians simple html editor (she) version . alcuin, an ncsu libraries guide implementing tcp/ip communications with hypercard day in the life of mr. d. microphone scripts for searching medlars marc reader: a hypercard script to demystify the marc record random musing: hypernote pro caribbiean sea at robins bay, jamaica ptsefton.com toggle navigation ptsefton.com home cv archives - - : what did you do in the lockdowns pt? part - music videos - - : fair data management; it's a lifestyle not a lifecycle - - : research data management looking outward from it - - : redundant. - - : an open, composable standards–based research eresearch platform: arkisto - - : you won't believe this shocking semantic web trick i use to avoid publishing my own ontologies! will i end up going to hell for this? - - : eresearch australasia trip report - - : fair simple scalable static research data repository - - : meet ro-crate - - : datacrate - a progress report on packaging research data for distribution via your repository - - : implementation of a research data repository using the oxford common file layout standard at the university of technology sydney - - : trip report - open repositories - peter sefton looking for more? see the archive. categories arkisto platform data packaging standards datacrate datacrate, repositories, eresearch eresearch file data capture housekeeping how to jiscpub misc music repositories research data management scholarlyhtml word processing links work play twitter: @ptsefton photos © peter (petie) sefton · powered by pelican-bootstrap , pelican, bootstrap back to top none researchcycle_bluewords_highres ted lawless ted lawless i'm ted lawless, an application developer based in ann arbor, mi working in higher education. i post brief articles or technical notes from time to time about working with metadata, web apis and data management tools. see the list below. i've also compiled a list of presentations and projects that i've been involved with. if any of this is of interest to you, please feel free to contact me via email (lawlesst at gmail), github , linkedin, or twitter. posts datasette hosting costs - - connecting python's rdflib to aws neptune - - usable sample researcher profile data - - exploring years of the new yorker fiction podcast with wikidata - - now publishing complete lahman baseball database with datasette - - publishing the lahman baseball database with datasette - - sparql to pandas dataframes - - querying wikidata to identify globally famous baseball players - - python etl and json-ld - - orgref data as rdf - - see a full list of posts or the rss feed. ted lawless, lawlesst at gmail github linkedin twitter none internet alchemy, the blog of ian davis internet alchemy est. · · · · · · · · · · · · ·                      mon, oct , serverless: why microfunctions > microservices this post follows on from a post i wrote a couple of years back called why service architectures should focus on workflows. in that post i attempted to describe the fragility of microservice systems that were simply translating object-oriented patterns to the new paradigm. these systems were migrating domain models and their interactions from in-memory objects to separate networked processes. they were replacing in-process function calls with cross-network rpc calls, adding latency and infrastructure complexity. the goal was scalability and flexibility but, i argued, the entity modelling approach introduced new failure modes. i suggested a solution: instead of carving up the domain by entity, focus on the workflows. if i was writing that post today i would say “focus on the functions” because the future is serverless functions, not microservices. or, more brashly: microfunctions > microservices the industry has moved apace in the last years with a focus on solving the infrastructure challenges caused by running hundreds of intercommunicating microservices. containers have matured and become the de-facto standard for the unit of microservice deployment with management platforms such as kubernetes to orchestrate them and frameworks like grpc for robust interservice communication. the focus still tends to be on interacting entities though: when placing an order the “order service” talks to the “customer service” which reserves items by talking to the “stock service” and the “payment service” which talks to the “payment gateway” after first checking with the “fraud service”. when the order needs to be shipped the “shipping service” asks the “order service” for orders that need to be fulfilled and tells the “stock service” to remove the reservation, then to the “customer service” to locate the customer etc. all of these services are likely to be persisting state in various backend databases. microservices are organized as vertical slices through the domain: the same problems still exist: if the customer service is overwhelmed by the shipping service then the order service can’t take new orders. the container manager will, of course, scale up the number of customer service instances and register them with the appropriate load balancers, discovery servers, monitoring and logging. however, it cannot easily cope with a critical failure in this service, perhaps caused by a repeated bad request that panics the service and prevents multiple dependent services from operating properly. failures and slowdowns in response times are handled within client services through backoff strategies, circuit breakers and retries. the system as a whole increases in complexity but remains fragile. by contrast, in a serverless architecture, the emphasis is on the functions of the system. for this reason serverless is sometimes called faas – functions as a service. systems are decomposed into functions that encapsulate a single task in a single process. instead of each request involving the orchestration of multiple services the request uses an instance of the appropriate function. rather than the domain model being exploded into separate networked processes its entities are provided in code libraries compiled into the function at build time. calls to entity methods are in-process so don’t pay the network latency or reliability taxes. in this paradigm the “place order” function simply calls methods on customer, stock and payment objects, which may then interact with the various backend databases directly. instead of a dozen networked rpc calls, the function relies on - database calls. additionally, if a function is particularly hot it can be scaled directly without affecting the operation of other functions and, crucially, it can fail completely without taking down other functions. (modulo the reliability of databases which affect both styles of architecture identically.) microfunctions are horizontal slices through the domain: the advantages i wrote last time still hold up when translated to serverless terminology: deploying or retiring a function becomes as simple as switching it on or off which leads to greater freedom to experiment. scaling a function is limited to scaling a single type of process horizontally and the costs of doing this can be cleanly evaluated. the system as a whole becomes much more robust. when a function encounters problems it is limited to a single workflow such as issuing invoices. other functions can continue to operate independently. latency, bandwidth use and reliability are all improved because there are fewer network calls. the function still relies on the database and other support systems such as lock servers, but most of the data flow is controlled in-process. the unit of testing and deployment is a single function which reduces the complexity and cost of maintenance. one major advantage that i missed is the potential for extreme cost savings through scale, particularly the scale attainable by running on public shared infrastructure. since all the variability of microservice deployment configurations is abstracted away into a simple request/response interface the microfunctions can be run as isolated shared-nothing processes, billed only for the resources they use in their short lifetime. anyone who has costed for redundant microservices simply for basic resilience will appreciate the potential here. although there are number of cloud providers in this space (aws lambda, google cloud functions, azure functions) serverless is still an emerging paradigm with the problems that come with immaturity. adrian coyler recently summarized an excellent paper and presentation dealing with the challenges of building serverless systems which highlights many of these, including the lack of service level agreements and loose performance guarantees. it seems almost certain though that these will improve as the space matures and overtakes the microservice paradigm. other posts tagged as architecture, distributed-systems, technology, serverless, faas earlier posts gorecipes: fin wed, mar another blog refresh sun, feb why service architectures should focus on workflows mon, mar help me crowdfund my game amberfell mon, nov planet eric lease morgan home alex catalogue serials blog musings planet sandbox writings catholic portal comments on: dh @ notre dame life of a librarian mini-musings musings readings water collection about this planet timeline view january , musings reading texts through the use of network graphs you shall know a word by the company it keeps. --john rupert firth i am finally getting my brain around the process of reading texts through the use of network graphs. words in-and-of themselves do not carry very much meaning; the connotation of words is lost without context; the meaning and connotation of words only really present themselves when words are used in conjunction with other words. that is why, in world of natural language processing, things like ngrams, noun phrases, and grammars are so important. heck, things like topic modelers (such as mallet) and semantic indexers (such as word vec) assume the co-occurrence of words is indicative of meaning. with this in mind, network graphs can be used to literally illustrate the relationship of words. as you may or may not know, network graphs are mathematical models composed of "nodes" and "edges". nodes denote things, and in my world, nodes are usually words or documents. edges denote the relationships -- measurements -- between nodes. in the work i do, these measurements are usually the distances between words or the percentage a given document is about a given topic. once the nodes and edges are manifested in a data structure -- usually some sort of matrix -- they can be computed against and ultimately visualized. this is what i have learned how to do. below is a little python script called "txt graphml.py". given a plain text file, one of two normalization functions, and an integer, the script will output a common network graph data structure called "graphml". the script does its good work through the use of two python modules, textacy and networkx. the first takes a stream of plain text, parses it into words, normalizes them by finding their lemmas or lower casing them, and then calculates the number of times the given word is in proximity to other words. the normalized words are the nodes, and the proximities are the edges. the second module simply takes the output of the former and serializes it into a graphml file. the script is relatively tiny; about % of the code includes comments: #!/usr/bin/env python # txt graphml.py - given the path to a text file, a normalizer, # and the size of window, output a graphml file # eric lease morgan # january , - first cut; because of /dev/stdout, will probably break under windows # configure model = 'en_core_web_sm' # require import networkx as nx import os import spacy import sys import textacy # get input if len( sys.argv ) != : sys.exit( "usage: " + sys.argv[ ] + " " ) file = sys.argv[ ] normalize = sys.argv[ ] window = int( sys.argv[ ] ) # get the text to process text = open( file ).read() # create model and then then use it against the text size = ( os.stat( file ).st_size ) + nlp = spacy.load( model, max_length=size, disable=( 'tagger', 'parser', 'ner', 'textcat' ) ) doc = nlp( text ) # create a graph; the magic happens here g = textacy.spacier.doc_extensions.to_semantic_network( doc, normalize=normalize, nodes='words', edge_weighting='cooc_freq', window_width=window ) # output the graph and done nx.write_graphml( g, '/dev/stdout' ) exit() one can take graphml files and open them in gephi, a program intended to render network graphs and provide a means to interact with them. using gephi is not easy; the use of gephi requires practice, and i have been practicing off and on for the past few years. (geesh!) in any event, i used both txt graphml.py and gephi to "read" a few of my recent blog postings, and i believe the results are somewhat illuminating. i believe the results illustrate the salient word combinations of each posting. files. functions. tools. content. etc. each "reading" is presented below: the tools i use to do my application development the combined use of two tools to create content the process i'm employing to read the works of horace there are many caveats to this whole process. first, the denoting of nodes & edges is not trivial, but txt graphml.py helps. second, like many visualization processes, the difficulty of visualization is directly proportional to the amount of given data; it is not possible to illustrate the relationship of every word to every other word unless a person has a really, really, really big piece of paper. third, like i already said, gephi is not easy to use; gephi has so many bells, whistles, and options that it is easy to get overwhelmed. that said, the linked zip file includes sample data, txt graphml.py, a few graphml files, and a gephi project so you can get give it a whirl, if you so desire. forever and a day we seem to suffering from information overload. through the ages different tools have been employed to overcome this problem. the venerable library catalog is an excellent example. my personal goal is to learn how certain big ideas (love, honor, truth, justice, beauty, etc.) have been manifested over time, but the corpus of content describing these things is... overwhelming. the distant reader is a system designed to address this problem, and i am now on my way to adding network graphs to its toolbox. maybe you can employ similar techniques in the work you do? january , : am january , musings the works of horace, bound the other day i bound the (almost) complete works of horace. for whatever reason, i decided to learn about bit about horace, a roman poet who lived between and bc. to commence upon this goal i downloaded a transcribed version of horace's works from project gutenberg. i marked up the document in tei and transformed the resulting xml into a fo (formatting objects) file, and then used a fo processor (apache fop) to create a pdf file. the pdf file is simple with only a title page, table-of-contents, chapters always starting on the right-hand page, and page numbers. what's really important is the pages' margins. they are wide and thus amenable to lots of annotation. i then duplex printed all pages. four hundred pages (two hundred pages duplex printed) is too large to effectively bind. consequently i divided the works into two parts and bound them. the binding is simple. i started with two boards just less than the size of the paper. i then wrapped the boards with a single large piece of paper, and i covered up the insides with another piece of paper. i then wrapped a book block within the resulting case. finally, i used a japanese stab stitch to hold the whole thing together. repeat for part # . the results are very strong, very portable, and very functional, depicted below: covers binding for better or for worse, i seem to practice and enjoy a wide spectrum of library-esque activities. moreover, sometimes my vocation is also may avocation. geesh! p.s. why are the works (almost) complete? because the gutenberg version does not include something called "carmen saeculare". i guess you get what you pay for. january , : am december , musings how to write in a book there are two files attached to this blog posting, and together they outline and demonstrate how to write in a book. the first file -- a thumbnail of which is displayed below -- is a one-page handout literally illustrating the technique i employ to annotate printed documents, such as books or journal articles. handout from the handout: for the most part, books are containers for data & information, and as such they are not sacred items to be worshiped, but instead things to be actively used. by actively reading (and writing in) books, a person can not only get more out of their reading, but a person can add value to the material as well as enable themselves to review the material quickly... here is a list of possible techniques to use in an active reading process. each assumes you have a pencil or pen, and you "draw" symbols to annote the text:... the symbols listed above are only guidelines. create your own symbols, but use them sparingly. the goal is to bring out the most salient points, identify declarative sentences, add value, and make judgements, but not diagram each & every item. the second file is a journal article, "sexism in the academy" by troy vettese in n+ , issue (https://nplusonemag.com/issue- /essays/sexism-in-the-academy/). the file has been "marked-up" with my personal annotations. give yourself seconds, which is much less time than it would take for you to even print the file. look over the document, and then ask yourself three questions: what problem might the author be addressing? what are some possible solutions to the problem? what does the reader (me, eric) think the most important point is? i'll bet you'll be able to answer the questions in less than two minutes. "reading is fundemental." december , : am december , musings tei toolbox, or "how a geeky librarian reads horace" tldnr; by marking up documents in xml/tei, you create sets of well-structured narrative data, and consequently, this enables you to "read" the documents in new & different ways. horace, not who was horace and what did he write about? to answer this question, i suppose i could do some sort of google search and hope for the best. through an application of my information literacy skills, i suppose i could read an entry about horace in an encyclopedia, of which i have many. one of those encyclopedias could be wikipedia, of which i am a fan. unfortunately, these approaches rely on the judgements of other people, and while other people have more experience & expertise than myself, it is still important for me to make up my own mind. to answer questions -- to educate myself -- i combine the advice of others with personal experience. thus, the sole use of google and/or encyclopedias fail me. to put in another way, in order to answer my question, i ought to read horace's works. for this librarian, obtaining the complete works of horace is a trivial task. search something like project gutenberg, the internet archive, google books, or the hathitrust. download item. read it in its electronic form, or print it and read it in a more traditional manner. gasp! i could even borrow a copy from a library or purchase a copy. in the former case, i am not allowed to write in the item, and in the later case the format may not be amenable to personal annotation. (dont' tell anybody, but i advocate writing in books. i even facilitate workshops on how to systematically do such a thing.) obtaining a copy of horace's works and reading it in a traditional manner is all well and good, but the process is expensive in terms of time, and the process does not easily lend itself to computer assistance. after all, a computer can remember much better than i can. it can process things much faster than i can. and a computer can communicate with other computers much more throughly than i can. thus, this geeky librarian wants to read horace with the help of a computer. this is where the tei toolbox comes in. the tei toolbox is a fledging system of bash, perl, and python scripts used to create and transform text encoding initiative (tei) files into other files, and these other files lend themselves to alternative forms of reading. more specifically, given a tei file, the toolbox can: validated it parse it into smaller blocks such as chapters and paragraphs, and save the results for later use mark-up each word in each sentence in terms of parts-of-speech; "morphadorn" it transform it into plain text, for other computing purposes transform it into html, for online reading transform it into pdf, specifically designed for printing distill its content into a relational (sqlite) database complete with bibliographics, parts-of-speech, and named-entities create a word-embedding (word vec) database create a (solr) full-text index complete with parts-of-speech, named-entities, etc. search the totality of the above in any number of different ways compare & contrast documents in any number of different ways thus, given a valid tei file, i can not only print a version of it amenable to traditional reading (and writing in), but i can also explore & navigate a text for the purposes of scholarly investigation. such is exactly what i am doing with the complete works of horace. my first step was to identify a plain text version of horace's works, and the version at project gutenberg was just fine. next, i marked up the plain text into valid tei using a set of barebones bbedit macros of my own design. this process was tedious and took me about an hour. i then used my toolbox's ./bin/carrel-initialize.sh script to create a tiny file system. i then used the ./bin/carrel-build.sh script to perform most of the actions outlined above. this resulted in a set of platform-independent files saved in a directory named "horace". for example, it includes: tei/xml file; it all starts here pdf file suitable for printing html file complete with metadata and hundreds of navigation links plain text files such as the complete works as a single file, chapters, and paragraphs the relational database file the word embedding file to date, i have printed the pdf file, and i plan to bind it before the week is out. i will then commence upon reading (and writing in) it in the traditional manner. in the meantime, i have used the toolbox to index the whole with solr, and i have queried the resulting index for some of my favorite themes. consequently, i have gotten a jump start on my reading. what i think is really cool (or "kewl"), is how the search results return pointers to the exact locations of the hits in the html file. this means i can view the search results within the context of the whole work, like a concordance on steroids. for example, below are sample queries for "love and war". notice how the results are hyperlinked within the complete work: while you, great lollius, declaim at rome... o thou fountain of bandusia, clearer than... when first greece, her wars being over, b... here are some results for "god and law": there was a certain freedman, who, an old... orpheus, the priest and interpreter of th... o ye elder of the youths, though you are ... and finally, "(man or men) and justice)": what shame or bound can there be to our a... damasippus is mad for purchasing antique ... have you any regard for reputation, which... all of the above only scratches the surface of what is possible with the toolbox, but the essence of the toolbox is this: by marking up a document in tei you transform a narrative text into a set of structured data amenable to computer analysis. from where i sit, the process of marking up a document is a form of close reading. printing a version of the text and reading (and writing in) it lends itself to additional methods of use & understanding. finally, by exploiting derivative versions of the text with a computer, even more methods of understanding present themselves. hopefully, i will share some of those other techniques in future postings. now, i'm off to my workshop to bind the book, all pages of it... "reading is fundemental." december , : am december , musings cool hack with wget and xmllint i'm rather proud of a cool hack i created through the combined use of the venerable utilities wget and xmllint. eye candy by eric a few weeks ago i quit wordpress because it was too expensive, and this necessitated the resurrection of my personal tei publishing system. much to my satisfaction, the system still works quite well, and it is very satisfying when i can easily bring back to life an application which is more than a decade old. the system works like this: ) write content, ) mark-up content in rudimentary tei, ) pour content into database, ) generate valid tei, ) transform tei into html, ) go to step # until satisfied, and finally, ) create rss feed. but since software is never done, the system was lacking. more specifically, when i wrote my publishing system rss feeds did not include content, just metadata. since then an extended element was added to the rss namespace, specifically one called "content". [ ] this namespace allows a publisher to include html in their syndication but with two caveats: ) only the true content of an html file is included in the syndication, meaning nothing from the html head element, and ) no relative urls are allowed because if they were, then all the urls would be broken. ("duh!") consequently, if i wanted my content to be truly syndicated, then would need to enhance my rss feed generator. this is where wget and xmllint make the scene. given a url, wget will... get the content at the other end of the url, and as an added bonus and through the combined use of the -k and -o switches, wget will also tranform all relative urls of a cached html file into absolute urls. [ ] very nice. thus, issue # , above, can be resolved. to resolve issue # , i know that my returned html is well-formed, and consequently i can extract the desired content through the use of an xpath statement. given this xpath statement, xmllint can return the desired content. [ ] for a good time, i can also use xmllint to reformat the output into a nicely formatted hierarchical structure. finally, because both of these utilities support i/o through standard input and standard output, they can be glued together with a few tiny (bash) commands: # configure url="http://infomotions.com/musings/my-ide/" tmp="/tmp/file.html" xpath='/html/body/div/div/div' # do the work content=$( wget -qko "$tmp" "$url"; cat "$tmp" | xmllint --xpath "$xpath" - | xmllint --format - | tail -n + ) very elegant. the final step is/was to tranlate the bash commands into perl code and thus incorporate the hack into my rss generator. "voila!" again, software is never done, and if it were, then it would be called "hardware"; software requires maintenance, and after a while the maintenance can become more expensive than the development. it is very satisfying when maintenance is so inexpensive compared to development. jettisoning wordpress was the right thing for me to do, especially considering the costs -- tiny. december , : am december , musings my integrated development environment (ide) my integrated development environment (ide) consists of three items: ) a terminal application (mac os x terminal), ) a text editor (barebones's bbedit), and ) a file transfer application (panic's transmit). i guess it goes without saying, i do all my work on top of mac os x. mac os x terminal barebones bbedit panic transmit at the very least, i need a terminal application, and mac os x's terminal works just fine. open a connection to my local host, or ssh to a remote host. use the resulting shell to navigate the file system and execute (that sounds so violent) commands. increasingly i write bash scripts to do my work. given a relatively sane linux environment, one would be surprised how much functionality can be harnessed with simple shell scripts. bbedit is my most frequently used application. very rarely do i use some sort of word processor to do any of writing. "religious wars" are fought over text editors, so i won't belabor my points. bbedit will open just about any file, and it will easily open files measured in megabytes in size. its find/replace functions are full-featured. i frequently use its sort function, duplicate line function, remove line breaks function, markup function, and reformat xml and json functions. it also supports the creation macros, knows about my local shell, and can do applescript. bbedit can even be opened from the command line, meaning it can take stdout is input. fun! while bbedit suports sftp, my go to file transfer application is transmit. transmit knows many file transport protocols, not just sftp. for example, instead of using a web browser to navigate a google drive (dumb), i can mount the drive with transmit, and the result is much more responsive. very similar to my terminal, i use it to connect to a remote host, navigate the file system, and then i create, move, rename, and delete files. simple. one of the coolest bits of functionality is the ability to download a text file, have it opened in my editor, and when i save the text file, then it is saved on the remote host. thus, there is little need to know a terminal-based editor like vi, emac, or nano, but i do use vi or nano every once in a while. i have never felt the need for a "real" ide. too much overhead. no need to set any debugging points nor trace the value of a variable. i don't feel the need for a bazillion windows, panes, nor panels. an ide feels too much a shell for my shell. yet another thing to learn and an obfuscation of what is really going on. this is just my style. there are many different ways to cook an omlet, paint a painting, sing a song, etc. the same holds true maintaining computers, running software, and writing programs. to each his^h^h^h their own. december , : am december , mini-musings final blog posting this is probably my final blog posting using the wordpress software, and i hope to pick up posting on infomotions’ musings. wordpress is a significant piece of software, and while its functionality is undeniable, maintaining the software in a constant process. it has become too expensive for me. moreover over, blog software, such as wordpress, was suppose to enable two additional types of functionality that have not really come to fruition. the first is/was syndication. blog software was expected to support things like rss feeds. while blog software does support rss, people to not seem to create/maintain lists of blogs and rss feeds for reading. the idea of rss has not come to fruition in the expected way. similarly, blog were expected to support commenting in the form of academic dialog, but that has not really come to fruition either; blog comments are usually terse and do not really foster discussion. for these reasons, i am foregoing wordpress, and i hope to return to use the of my personal tei publishing process. i feel as if my personal process will be more long-lasting. in order to make this transition, i have used a wordpress plug-in called simply static. install the software, play with the settings, create a static site, review results, and repeat if necessary. the software seems to work pretty well. also, paying the roll of librarian, i have made an effort classify my blog postings while diminishing the number of items in the “miscellaneous” category. by converting my blog to a static site and removing wordpress from my site, i feel as if i am making the infomotions web presence simpler and easier to maintain. sure, i am loosing some functionality, but that loss is smaller than the amount of time, effort, and worry i incur by running software i know too little about. by eric lease morgan at december , : pm date created: - - date updated: - - url: http://infomotions.com/ what did you do in the lockdowns pt? part - music videos - ptsefton.com toggle navigation ptsefton.com home cv archives what did you do in the lockdowns pt? part - music videos date thu april post looks too long? don't want to read? here's the summary. last year gail mcglinn* and i did the lockdown home-recording thing. we put out at least one song video per week for a year (and counting - we're up to over weeks). searchable, sortable website here. we learned some things, got better at performing for the phone camera and our microphones and better at mixing and publishing the result. * disclosure gail's my wife. we got married; she proposed, i accepted. i may i might - is this the world's best marriage proposal acceptance song? (it did win a prize at a ukulele festival for best song) (this post is littered with links to our songs, sorry but there are of them and someone has to link to them.) in the second quarter of gail mcglinn and i went from playing and singing in community music events (jams, gigs, get togethers) at least once a week to being at home every evening, like everyone else. like lots of people we decided to put our efforts into home recording, not streaming cos that would be pointless for people with basically no audience, but we started making videos and releasing them under our band name team happy. by release i mean "put on facebook" and "sometimes remember to upload to youtube". this post is about that experience and what we learned. team happy is the name we use to perform as a duo at open mic events and the odd community or ukulele festival. we were originally called "the narrownecks" in honour of where we live, for one gig, but then we found out there's another group with that name. actually they're much better than us, just go watch them. coming in to we already had a youtube channel and it had a grand total of two videos on it with a handful of views - as in you could count them on your fingers. it's still a sad thing to behold, how many views we have - but it's not about views it's about getting discovered and having our songs performed by, oh i dunno, casey chambers? keith urban? (oh yeah, that would mean we'd need views. bugger.) either that or it's about our personal journey and growth as people. or continuing to contribute to our local music communities in lockdown (which is what gail says it's about.). seriously though, we think i called your name and dry pebbles would go well on someone else's album. dry pebbles, by gail mcglinn - a song written tramping through the bush. i called your name by peter sefton anyway, in late march we got out our recording gear and started. while phone cameras are fine for the quality of video we need, we wanted to do better than phone-camera sound. (here's an example of that sound from one of our first recordings on my song seventeen - it's pretty muddy, like the lighting.) seventeen by peter sefton initial attempts to get good audio involved feeding usb-audio from a sound mixer with a built in audio interface (a yamaha mx ) into the phone itself and recording an audio track with the video - but this is clunky and you only get two tracks even though the mixer has multiple inputs. we soon graduated to using a daw - a digital audio workstation with our mixer, still only two tracks but much less mucking around with the phone. so this is more or less what we ended up with for the first few weeks - we'd record or "track" everything on the computer and then use it again to mix. our first-generation recording rig with annoying recording via a laptop there's a thing you have to do to audio files called mastering which means getting them to a suitable volume level and dynamic range for distribution. without it loud stuff is too quiet and quiet stuff is too quiet, and the music has no punch. this was a complete mystery to me to start with so i paid for online services that use ai to master tracks - kind of but not really making everything louder. at some point i started doing it myself, beginning the long process of learning the mysteries of compression and limiting and saving money. haven't mastered it yet, though. mastering is an actual profession, by the way and i'm not going to reach those heights. in may, we got a new bit of gear, the tascam model an all in one mixer-recorder-interface that lets you track (that is record tracks) without a computer - much easier to deal with. a bit later we got a zoom h portable recorder with built in mics and a couple of extra tracks for instruments so we can do stuff away from home - this got used on our month-long holiday in march . well it was almost a month, but there was a rain event and we came home a bit early. these machines let you capture tracks, including adding new ones without touching the computer which is a big win as far as i am concerned. gail singing closer to fine on the strand in townsville, in north queensland, recorded on the h and (partly) mixed in the car on holidays. after a bit, and depending on the level of lockdown we'd have guests around to visit and when that was happening, we kept our distance at either end of our long lounge room and used a phone camera and microphone at each end. our second-generation recording rig with stand-alone laptop-free tracking this new setup made it much easier to do overdubs - capture more stuff into the model and make videos each time, like on this song of mine they say dancing where i overdubbed guitar and bass over a live track. they say dancing by peter sefton so what did we learn? perfect is the enemy of done. well, we knew that, but if you've decided to release a song every week, even if you're away on a holiday, or there are other things going on then there's no time to obsess over details - you have to get better at getting a useable take quickly or you won't be able to keep going for a year or more. practice may not make perfect, but it's a better investment than new gear, or doing endless takes with the cameras rolling. we got better at picking a song (or deciding to write one or finish one off), playing it for a week or two and then getting the take. simplify! we learned that to get a good performance sometimes it was better for only one of us to play or sing, that fancy parts increased the chance of major errors, meaning yet another take. if in doubt (like my harmony singing that's always in doubt) we're learning to leave it out. nobody likes us! actually we know that's not true, some of the songs get hundreds of plays on facebook but not many people actually click the like button, maybe twenty or so. but then you run into people in the supermarket; they say "love the songs keep it up"! and there are quite a few people who listen every week on fb we just can't tell they're enjoying it. there are complex reasons for this lack of engagement - some people don't like to like things so that (they think) the evil fb can't track them. i think the default auto-play for video might be a factor too - the video starts playing, and that might not be a good time, so people skip forward to something else. it's kind of demoralizing that it is much easier to get likes with pictures of the dog. our spoiled covid-hound, floki - about months old. much more likeable on the socials than our music. youtube definitely doesn't like us. i figured that some of the songs we sang would attract some kind of youtube audience - we often search to see what kinds of covers of songs are out there and thought others might find us the same way, but we get almost no views on that platform. i also thought that adding some text about the gear we used might bring in some views. for example we were pretty early adopters of the tascam model . i had tried to find out what one sounded like in real life before i bought, with no success - and i thought people might drop by to hear us, but i don't think google/youtube is giving us any search-juice at all. our personal favourites our favourite cover we did (and we actually agreee on this - team happy is not an ironic name) was colour my world. we'd just got the tascam and gail was able to double track herself - no mucking around with computers. we had fun that night. colour my world - one of our fave covers to perform and my favourite original? well i'm very proud of all l'amour for you with lots of words and a bi-lingual pun - i wanted to do that on the local community radio just last weekend when we were asked in, but the host richard 'duck' keegan kind of mentioned the aforementioned i called your name so we did that instead along with dry pebbles and seventeen. all l'amour for you the last word on love and metaphors for love? by peter sefton. gail's fave original? i may i might, the song that snagged her the best husband in south katoomba over . m tall. and she likes the tear jerker goodbye mongrel dog i wrote, on which she pays some pumpin' banjo. goodbye mongrel dog - a song that says goodbye to a (deceased) mongrel dog who went by the name of spensa. music-tech stuff and mixing tips for those of you who care, here's a roundup of the main bits of kit that work well. we've reached the point where there's actually nothing on the shopping list - we can do everything for the foreseeable future with what we have. i have mentioned that we track using the tascam model and the zoom h - these are both great. the only drawback of the zoom is that you can't see the screen (and thus the levels) from performance position. it also needed a better wind shield - i bought a dead-cat, shaggy thing to go over the mics that works if the wind is moderate. when i bought the tascam i thought it was going to be all analogue through the mixer stage like their model and model , but no, it's all digital. i don't think this is an issue having used it but it was not something they made all that explicit at launch. there's a digital zoom equivalent (the l ) which is a bit smaller, and has more headphone outputs but at the expense of having to do mode-switching to to access all the functions. i think the tascam will be easier to use for live shows when those start happening again. for video we just use our phones - for a while we had matching pixel xls then a pixel which drowned in a tropical stream. yes they're waterproof, those models, but not when they have tiny cracks in the screen. no more $ phones for me. reaper is bloody marvelous software. it's cheap for non-commercial use, incredibly powerful and extensible. i have not used any other digital audio workstation other than garage band, that comes for free on the apple platform but as far as i can see there's no reason for non-technophobic home producers to pay any more than the reaper fee for something else. our mainstay mics are a slightly battered pair of audio technica at s - we had these for performing live with gail's band u ria - everyone gathered around a condenser mic, bluegrass style. for recording we either put one at either end of the room or mount them vertically in an x/y configuration - ° to get stereo. they're fairly airy and have come to be a big part of our sound. we tried some other cheap things that didn't work very well, and i got a pair of australian rode m pencil condenser mics, not expensive, that i hoped might be easier to mount x/y but we didn't like them for vocals at all, though they're great on stringed instruments. we do have an sm and sm -- gotta love a microphone with a wikipedia page -- which see occasional use as vocal mics if we want a more rock 'n roll sound, or the guest singer is more used to a close-mic. and the sm for guitar amps sometimes. we tend to play our favourite acoustic instruments but when we have bass we use the trace elliot elf amp which has a great compressor and a di output (it can send a signal to the mixer/interface without going via the speaker). sometimes we run the speaker and try not to let it bleed too much into the at s, very occasionally we wear headphones for the first track and go direct so there's no bass bleed. i have done a bit of electric guitar with the boss katana - to me it sounds good in the room that amp, but has not recorded well either via the headphone out or via an sm . i get better results thru the bass amp. i don't have any kind of actual electric guitar tone sorted though i have seen lot of videos about how to achieve the elusive tone. maybe one day. one thing that i wasn't expecting to happen - i dropped the top e of my little made in mexico martin ooo jr guitar to d (you know, like keef) some time early in and it ended up staying there. gives some nice new chord voicings ( ths mostly) and it's the same top strings as a string banjo with some very easy-to-grab chords. have started doing it to ukuleles too, putting them in open c. a note on the bass: playing bass is fun (we knew that before we started) but mixing it so it can be heard on a phone speaker is a real challenge. one approach that helps is using an acoustic bass which out of a lot more high frequency than a solid body electric this also helps because you don't have to have an amp on while you're tracking it live, but you can take a direct input from a pickup (or two) and mic the bass giving you lots of signals with different eq to play with. i gaffa-taped a guitar humbucker into my artist guitars string acoustic and it sounds huge. the basic (ha!) trick i try to use for getting more high frequency for tiny speakers is to create a second track, saturate the signal with distortion and/or saturation effects to boost the upper harmonic content and then cut all the low frequency out and mix that so it can just be heard and imply the fundamental bass frequency in addition to the real bassy bass. helps if you have some bridge pickup or under-saddle pickup in the signal if those are available and if you remember. i also like to add some phaser effect that gives some motion in the upper frequencies - for example my perfect country pop song - too much phaser? probably, but i can hear the bass on my phone and it bounces :). phaser is team happy's favourite effect, nothing says perfect country pop (which is what we are, right?) like a phaser. perfect country pop song - is it perfect or merely sublime? (this one has a cute puppy in it). everything i know about music production is from youtube. everything i know about song writing is from deep in my soul. thank you for reading all the way to the bottom. normal service will resume next week. comments please enable javascript to view the comments powered by disqus. comments powered by disqus categories arkisto platform data packaging standards datacrate datacrate, repositories, eresearch eresearch file data capture housekeeping how to jiscpub misc music repositories research data management scholarlyhtml word processing links work play twitter: @ptsefton photos © peter (petie) sefton · powered by pelican-bootstrap , pelican, bootstrap back to top code lib skip to main content toggle navigation home schedule speakers sponsors general info conduct & safety code for lib code lib march - • online image attributions the conference for people who code for libraries. an annual gathering of technologists from around the world, who largely work for and with libraries, archives, and museums and have a commitment to open technologies. conference recordings view on youtube view the full recordings of the conference from the livestream! presentation slides view the open science foundation repository with slides and materials from the presentations. what comes next? code lib attendees, fill out the post-conference survey! see you next year! thanks to our sponsors! platinum welcome to code lib code lib is everything to me. in the community i feel like my work and knowledge is appreciated, so i feel very comfortable and motivated to volunteer, give talks, teach workshops, participate in conferences, host events. it's a great support network, i've never felt as comfortable as i do in this library group! kim pham university of denver the confluence of technology and libraries drew me to code lib when i was a young librarian straddling the areas of library metadata and technology. after eleven years in the community i am still amazed and humbled by the people i meet in the community and the work they do. there isn't another space that seamlessly combines libraries, technology, and the human aspect quite like code lib in the library world. becky yoose i came away from code lib wanting to invite most of the people i met into my office and ask all of the questions about what everyone is doing and how they’re doing it and how can i do those things and what would they change about their tools; what's better is many of them would gladly help. years on i keep coming back for more because over the years technical excellence isn't the only metric used in this community's continued growth. i have made friends in the code lib community. francis kayiwa princeton university libraries code lib offers the space to be self-aware, outwardly conscious, and vastly creative. the community seems to be expanding and learning without ego, and i feel lucky to have been welcomed into the group with open arms. the conference is a place where one can look holistically at technology alongside thoughtful practitioners, while building lasting friendships. alyssa loera cal poly pomona code lib has been transformative for me. when i first learned of code lib, i was considering leaving libraryland. attending the first code lib conference opened my eyes to the community i never knew i had. code lib continues to humble, to inspire, and to anchor; our collective work is grounded in the cultural heritage mission and in the value of working inclusively in the open for the collective good. here's to another twelve years, code lib---and then some! michael giarlo stanford university i attended code lib on a diversity scholarship and i will always be grateful for that opportunity. it was free of buzzwords, full of welcoming people, and the sessions were interesting and accessible even though i don't work closely with technology or coding. i'm more motivated to explore new areas of technology and librarianship, i've started volunteering with the web committee, and i'm looking forward to attending the conference again! laura chuang attending my first code lib allowed me to explore the potential of technology, while upholding the importance of empathy and community-building. the connections i made at code lib have continued to deepen over the last year, and it has been fantastic to see how we have implemented ideas that were shaped by conversations there. code lib has modeled accountability and care, including publicly standing up against harassment and organizing support for our community. nicky andrews north carolina state university code lib has been a great conference for me as a metadata person interested in gaining computer science skills and insights. presentations and topics are selected by the community. as such, i find a greater portion of presentations at this conference to be interesting, relevant, and educational than at other conferences in which presentations are jury selected. they also offer generous scholarships to underrepresented folks in the code lib community. yay!. sonoe nakasone north carolina state university libraries at code lib, you really get the sense that people are there to share with and learn from one another — to advance their work individually and collectively — and have fun while they’re at it. i left the conference reminded of the widespread passion for libraries as critical features of our society, the passion that draws interesting, creative people to library work, and found i had a renewed sense of purpose in my job. hannah frost stanford university home schedule speakers sponsors general info conduct & safety contact us except where otherwise noted, content on this site is licensed under a creative commons attribution . international license. library user experience community homepage open in app sign inget started practical design thinking for libraries library user experience community guest write ( - we pay!) our slack community followfollowing a library system for the future a library system for the future this is a what-if story. kelly daganfeb , latest alexa, get me the articles (voice interfaces in academia) alexa, get me the articles (voice interfaces in academia) thinking about interfaces has led me down a path of all sorts of exciting/mildly terrifying ways of interacting with our devices — from… kelly daganfeb , accessibility information on library websites accessibility information on library websites an important part of making your library accessible is advertising that your library’s spaces and services are accessible and inclusive. carli spinanov , is autocomplete on your library home page? is autocomplete on your library home page? literature and some testing i’ve done this semester convinces me that autocomplete fundamentally improves the user experience jaci paige wilkinsonaug , writing for the user experience with rebecca blakiston writing for the user experience with rebecca blakiston : | rebecca blakiston — author of books on usability testing and writing with clarity; library journal mover and shaker — talks shop in… michael schofieldaug , write for libux write for libux we should aspire to push the #libweb forward by creating content that sets the bar for the conversation way up there, and i would love your… michael schofieldapr , first look at primo’s new user interface first look at primo’s new user interface impressions of some key innovations of primo’s new ui as well as challenges involved making customizations. ron gilmourfeb , today, i learned about the accessibility tree today, i learned about the accessibility tree if you didn’t think your grip on web accessibility could get any looser. michael schofieldfeb , what users expect what users expect we thought it would be fun to emulate some of our favorite sites in a lightweight concept discovery layer we call libre. trey gordnerjan , critical librarianship in the design of libraries critical librarianship in the design of libraries design decisions position libraries to more deliberately influence the user experience toward advocacy — such as communicating moral or… michael schofieldjan , the non-reader persona the non-reader persona michael schofielddec , iu libraries’ redesign and the descending hero search iu libraries’ redesign and the descending hero search michael schofieldaug , accessible, sort of — #a eh michael schofieldjul , create once, publish everywhere create once, publish everywhere michael schofieldjul , web education must go further than a conference budget michael schofieldmay , blur the line between the website and the building michael schofieldnov , say “ok library” say “ok library” michael schofieldoct , unambitious and incapable men in librarianship unambitious and incapable men in librarianship michael schofieldoct , on the user experience of ebooks on the user experience of ebooks so, when it comes to ebooks i am in the minority: i prefer them to the real thing. the aesthetic or whats-it about the musty trappings of… michael schofieldoct , about library user experience communitylatest storiesarchiveabout mediumtermsprivacy next generation of metadata | oclc welcome recordings metadata is changing. innovations in librarianship are exerting pressure on metadata management practices to evolve as librarians are required to provide metadata for far more resources of various types and to collaborate on institutional or multi-institutional projects with fewer staff. in , karen smith-yoshimura published the report, “transitioning to the next generation of metadata”, which brought together six years of discussions with the oclc research library partners metadata managers focus group that shone a light on the evolution of the next generation of metadata. following this in early the report, “transforming metadata into linked data to improve digital collection discoverability: a contentdm pilot project” was published. this report shares the contentdm linked data pilot project findings, where oclc and five partner institutions investigated methods for—and the feasibility of—transforming metadata into linked data to improve the discoverability and management of digitized cultural materials. during the spring of , oclc research ran a discussion series focused on these two reports where participants were able to share their own experiences, get a better understanding of the topic area, and gain confidence in planning ahead. the series the series consists of three components: opening plenary webinar tuesday february , : (cet) an opening plenary webinar giving an overview of next generation metadata, how and why it is changing, and the impact this could have. oclc speakers in this session include rachel frick (executive director, research library partnership), john chapman (senior product manager, metadata services), annette dortmund (senior product manager), and titia van der werf (senior program officer). interactive round table during the first two weeks of march . eight interactive small round table online discussions exploring how existing initiatives are shaping the landscape of next generation metadata, gaining insights and fresh ideas, and aligning each other’s perspectives into a shared perspective. these sessions followed the same structure, but were based on language. closing plenary webinar tuesday april , : (cet) a closing plenary webinar by oclc and representatives from the round table discussions to bring together what was discussed and to share highlights from the sessions with the wider group. oclc speakers in this session include andrew k. pace (executive director for technical research), rachel frick (executive director, research library partnership), john chapman (senior product manager, metadata services), annette dortmund (senior product manager), and titia van der werf (senior program officer). watch the recordings and read the blog posts recordings and blog posts because what is known must be shared.® + - - - next generation of metadata overview register about oclc home membership products research events about © oclc domestic and international trademarks and/or service marks of oclc, inc. and its affiliates privacy statement cookie notice cookie settings accessibility statement iso certificate internet archive: about ia skip to main content see what's new with book lending at the internet archive a line drawing of the internet archive headquarters building façade. an illustration of a magnifying glass. an illustration of a magnifying glass. an illustration of a horizontal line over an up pointing arrow. upload an illustration of a person's head and chest. sign up | log in an illustration of a computer application window wayback machine an illustration of an open book. books an illustration of two cells of a film strip. video an illustration of an audio speaker. audio an illustration of a . " floppy disk. software an illustration of two photographs. images an illustration of a heart shape donate an illustration of text ellipses. more an icon used to represent a menu that can be toggled by interacting with this icon. about blog projects help donate an illustration of a heart shape contact jobs volunteer people search metadata search text contents search tv news captions search archived websites advanced search sign up for free log in read more server statistics archive statistics job opportunities at the internet archive events news [more] hooniverse: wayback machine allows a peek into defunct detroit automaker websites laughing squid: an amazing collection of pulp magazines going back years is available online at the internet archive far out magazine: over , historic vinyl records are being digitised and made available to stream online for free gigazine: ウェブ上の情報を記録・保存する「インターネット・アーカイブ」の存続をひっそりと脅かしているものとは? actualitte: plongez dans l'art japonais de la fin du xixe siècle grâce à ce magazine numérisé library journal: better world libraries, internet archive partner, acquires better world books open culture: the internet archive is digitizing & preserving over , vinyl records: hear full albums now against the grain: atg newsflash: for the love of literacy–better world books and the internet archive unite to preserve millions of books research information: better world books affiliates with internet archive wired: the internet archive is making wikipedia more reliable about the internet archive the internet archive, a (c)( ) non-profit, is building a digital library of internet sites and other cultural artifacts in digital form. like a paper library, we provide free access to researchers, historians, scholars, the print disabled, and the general public. our mission is to provide universal access to all knowledge. we began in by archiving the internet itself, a medium that was just beginning to grow in use. like newspapers, the content published on the web was ephemeral - but unlike newspapers, no one was saving it. today we have + years of web history accessible through the wayback machine and we work with + library and other partners through our archive-it program to identify important web pages. as our web archive grew, so did our commitment to providing digital versions of other published works. today our archive contains: billion web pages million books and texts million audio recordings (including , live concerts) million videos (including million television news programs) . million images , software programs anyone with a free account can upload media to the internet archive. we work with thousands of partners globally to save copies of their work into special collections. because we are a library, we pay special attention to books. not everyone has access to a public or academic library with a good collection, so to provide universal access we need to provide digital versions of books. we began a program to digitize books in and today we scan , books per day in locations around the world. books published prior to are available for download, and hundreds of thousands of modern books can be borrowed through our open library site. some of our digitized books are only available to people with print disabilities. like the internet, television is also an ephemeral medium. we began archiving television programs in late , and our first public tv project was an archive of tv news surrounding the events of september , . in we began to make selected u.s. television news broadcasts searchable by captions in our tv news archive. this service allows researchers and the public to use television as a citable and sharable reference. the internet archive serves millions of people each day and is one of the top web sites in the world. a single copy of the internet archive library collection occupies + petabytes of server space (and we store at least copies of everything). we are funded through donations, grants, and by providing web archiving and book digitization services for our partners. as with most libraries we value the privacy of our patrons, so we avoid keeping the ip (internet protocol) addresses of our readers and offer our site in https (secure) protocol. you can find information about our projects on our blog (including important announcements), contact us, buy swag in our store, and follow us on twitter and facebook. welcome to the library! recent foundation funding generously provided by:: andrew w. mellon foundation council on library and information resources democracy fund federal communications commission universal service program for schools and libraries (e-rate) institute of museum and library services (imls) knight foundation laura and john arnold foundation national endowment for the humanities, office of digital humanities national science foundation the peter and carmen lucia buck foundation the philadelphia foundation rita allen foundation the internet archive is a member of: american library association (ala) biodiversity heritage library (bhl) boston library consortium (blc) califa council on library and information resources (clir) coalition for networked information (cni) digital library federation (dlf) digital preservation coalition (dpc) digital public library of america (dpla) international federation of library associations and institutions (ifla) international internet preservation consortium (iipc) music library association national digital stewardship alliance (ndsa) reshare open source exile open source exile an open sourcer in exile #christchurchmosqueshootings how would we know when it was time to move from tei/xml to tei/json? whither tei? the next thirty years thoughts on the ndfnz wikipedia panel feedback on nlnz ‘digitalnz concepts api‘ bibframe a wikipedia strategy for the royal society of new zealand prep notes for ndf demonstration metadata vocabularies lodlam nz cares about unexpected advice goodbye 'social-media' world recreational authority control thoughts on "letter about the tei" from martin mueller unit testing framework for xsl transformations? is there a place for readers' collectives in the bright new world of ebooks? howto: deep linking into the nzetc site epubs and quality what librarything metadata can the nzetc reasonable stuff inside it's cc'd epubs? interlinking of collections: the quest continues ebook readers need openurl resolvers thoughts on koha data and data modelling and underlying assumptions learning xslt . part ; finding names legal māori archive why card-based records aren't good enough none internet archive: wayback machine skip to main content see what's new with book lending at the internet archive a line drawing of the internet archive headquarters building façade. an illustration of a magnifying glass. an illustration of a magnifying glass. an illustration of a horizontal line over an up pointing arrow. upload an illustration of a person's head and chest. sign up | log in an illustration of a computer application window wayback machine an illustration of an open book. books an illustration of two cells of a film strip. video an illustration of an audio speaker. audio an illustration of a . " floppy disk. software an illustration of two photographs. images an illustration of a heart shape donate an illustration of text ellipses. more an icon used to represent a menu that can be toggled by interacting with this icon. about blog projects help donate an illustration of a heart shape contact jobs volunteer people search metadata search text contents search tv news captions search archived websites advanced search sign up for free log in explore more than billion web pages saved over time browse history find the wayback machine useful? donate deviantart.com oct , : : cl.cam.ac.uk feb , : : foodnetwork.com oct , : : yahoo.com dec , : : spiegel.com oct , : : imdb.com oct , : : stackoverflow.com oct , : : ubl.com dec , : : bloomberg.com oct , : : reference.com oct , : : feedmag.com dec , : : wikihow.com oct , : : nbcnews.com oct , : : goodreads.com oct , : : obamaforillinois.com nov , : : geocities.com feb , : : amazon.com feb , : : nytimes.com oct , : : bbc.co.uk oct , : : huffingtonpost.com oct , : : reddit.com oct , : : cnet.com oct , : : whitehouse.gov dec , : : aol.com oct , : : yelp.com oct , : : etsy.com jun , : : foxnews.com oct , : : well.com jan , : : w schools.com oct , : : buzzfeed.com oct , : : nasa.gov dec , : : mashable.com oct , : : nfl.com oct , : :   tools wayback machine availability api build your own tools. wordpress broken link checker banish broken links from your blog. handler for webmasters help users get where they were going. subscription service archive-it enables you to capture, manage and search collections of digital content without any technical expertise or hosting facilities. visit archive-it to build and browse the collections. save page now save page capture a web page as it appears now for use as a trusted citation in the future. only available for sites that allow crawlers.   faq | contact us | terms of service (dec , ) dshr's blog: the bitcoin "price" dshr's blog i'm david rosenthal, and this is a place to discuss the work i'm doing in digital preservation. thursday, january , the bitcoin "price" jemima kelly writes no, bitcoin is not “the ninth-most-valuable asset in the world” and its a must-read. below the fold, some commentary. source the "price" of btc in usd has quadrupuled in the last three months, and thus its "market cap" has sparked claims that it is the th most valuable asset in the world. kelly explains the math: just like you would calculate a company’s market capitalisation by multiplying its stock price by the number of shares outstanding, with bitcoin you just multiply its price by its total “supply” of coins (ie, the number of coins that have been mined since the first one was in january ). simples! if you do that sum, you’ll see that you get to a very large number — if you take the all-time-high of $ , and multiply that by the bitcoin supply (roughly . m) you get to just over $ bn. and, if that were accurate and representative and if you could calculate bitcoin’s value in this way, that would place it just below tesla and alibaba in terms of its “market value”. (on wednesday!) then kelly starts her critique, which is quite different from mine in stablecoins: in the context of companies, the “market cap” can be thought of as loosely representing what someone would have to pay to buy out all the shareholders in order to own the company outright (though in practice the shares have often been over- or undervalued by the market, so shareholders are often offered a premium or a discount). companies, of course, have real-world assets with economic value. and there are ways to analyse them to work out whether they are over- or undervalued, such as price-to-earnings ratios, net profit margins, etc. with bitcoin, the whole value proposition rests on the idea of the network. if you took away the coinholders there would be literally nothing there, and so bitcoin’s value would fall to nil. trying to value it by talking about a “market cap” therefore makes no sense at all. secondly, she takes aim at the circulating btc supply: another problem is that although . m bitcoins have indeed been mined, far fewer can actually be said to be “in circulation” in any meaningful way. for a start, it is estimated that about per cent of bitcoins have been lost in various ways, never to be recovered. then there are the so-called “whales” that hold most of the bitcoin, whose dominance of the market has risen in recent months. the top . per cent of bitcoin addresses now control per cent of the supply (including many that haven’t moved any bitcoin for the past half-decade), and more than per cent of the bitcoin supply hasn’t been moved for the past year, according to recent estimates. the small circulating supply means that btc liquidity is an illusion: the idea that you can get out of your bitcoin position at any time and the market will stay intact is frankly a nonsense. and that’s why the bitcoin religion’s “hodl” mantra is so important to be upheld, of course. because if people start to sell, bad things might happen! and they sometimes do. the excellent crypto critic trolly mctrollface (not his real name, if you’re curious) pointed out on twitter that on saturday a sale of just bitcoin resulted in a per cent drop in the price. and there are a lot of "whales' hodl-ing. if one decides to cash out, everyone will get trampled in the rush for the exits: more than , wallets contain over , bitcoin in them. what would happen to the price if just one of those tried to unload their coins on to the market at once? it wouldn’t be pretty, we would wager. what we call the “bitcoin price” is in fact only the price of the very small number of bitcoins that wash around the retail market, and doesn’t represent the price that . m bitcoins would actually be worth, even if they were all actually available. source note that kelly's critique implictly assumes that btc is priced in usd, not in the mysteriously inflatable usdt. the graph shows that the vast majority of the "very small number of bitcoins that wash around the retail market" are traded for, and thus priced in usdt. so the actual number of bitcoins being traded for real money is a small fraction of a very small number. bitfinex & tether have agreed to comply with the new york supreme court and turn over their financial records to the new york attorney general by th january. if they actually do, and the details of what is actually backing the current stock of nearly billion usdt become known, things could get rather dynamic. as tim swanson explains in parasitic stablecoins, the b usd are notionally in a bank account, and the solvency of that account is not guaranteed by any government deposit insurance. so even if there were a bank account containing b usd, if there is a rush for the exits the bank holding that account could well go bankrupt. to give a sense of scale, the btc sale that crashed the "price" by % represents ( / . ) / = hours of mining reward. if miners were cashing out their rewards, they would be selling btc or $ m/day. in the long term, the lack of barriers to entry means that the margins on mining are small. but in the short term, mining capacity can't respond quickly to large changes in the "price". it certainly can't increase four times in three months. source lets assume that three months ago, when btc≈ , usdt, the btc ecosystem was in equilibrium with the mining rewards plus fees slightly more than the cost of mining. while the btc "price" has quadrupled, the hash rate and thus the cost of mining has oscillated between m and m terahash/s. it hasn't increased significantly, so miners only now need to sell about btc or $ m/day to cover their costs. with the price soaring, they have an incentive to hodl their rewards. posted by david. at : am labels: bitcoin comments: david. said... alex pickard was an early buyer of btc, and became a miner in . but the scales have fallen from his eyes, in bitcoin: magic internet money he explains that btc is useless for anything except speculation: "essentially overnight it became “digital gold” with no use other than for people to buy and hodl ... and hope more people would buy and hodl, and increase the price of btc until everyone on earth sells their fiat currency for btc, and then…? well, what exactly happens then, when btc can only handle about , transactions per day and . billion people need to buy goods and services?" and he is skeptical that tether will survive: "if tether continues as a going concern, and if the rising price of btc is linked to usdt issuance, then btc will likely continue to mechanically build a castle to the sky. i have shown how btc price increases usually follow usdt issuance. in late , when roughly billion usdt were redeemed, the price of btc subsequently fell by over %. now, imagine what would happen if tether received a cease-and-desist order, and its bank accounts were seized. today’s digital gold would definitely lose its luster." january , at : am david. said... the saga of someone trying to turn "crypto" into "fiat". january , at : pm david. said... an anonymous bitcoin hodl-er finally figured out the tether scam and realized his winnings. his must-read account is the bit short: inside crypto’s doomsday machine: "the legitimate crypto exchanges, like coinbase and bitstamp, clearly know to stay far away from tether: neither supports tether on their platforms. and the feeling is mutual! because if tether ltd. were ever to allow a large, liquid market between tethers and usd to develop, the fraud would instantly become obvious to everyone as the market-clearing price of tether crashed far below $ . kraken is the biggest usd-banked crypto exchange on which tether and us dollars trade freely against each other. the market in that trading pair on kraken is fairly modest — about $ m worth of daily volume — and tether ltd. surely needs to keep a very close eye on its movements. in fact, whenever someone sells tether for usd on kraken, tether ltd. has no choice but to buy it — to do otherwise would risk letting the peg slip, and unmask the whole charade. my guess is that maintaining the tether peg on kraken represents the single biggest ongoing capital expense of this entire fraud. if the crooks can’t scrape together enough usd to prop up the tether peg on kraken, then it’s game over, and the whole shambles collapses. and that makes it the fraud’s weak point." january , at : am david. said... tether's bank is deltec, in the bahamas. the anonymous bitcoin hodl-er points out that: "bahamas discloses how much foreign currency its domestic banks hold each month." as of the end of september , all bahamian banks in total held about $ . b usd worth of foreign currency. at that time there were about . b usdt in circulation. even if we assume that deltec held all of it, usdt was only % backed by actual money. january , at : am david. said... david gerard's tether printer go brrrrr — cryptocurrency’s substitute dollar problem collects a lot of nuggets about tether, but also this: "usdc loudly touts claims that it’s well-regulated, and implies that it’s audited. but usdc is not audited — accountants grant thornton sign a monthly attestation that centre have told them particular things, and that the paperwork shows the right numbers. an audit would show for sure whether usdc’s reserve was real money, deposited by known actors — and not just a barrel of nails with a thin layer of gold and silver on top supplied by dubious entities. but, y’know, it’s probably fine and you shouldn’t worry." february , at : pm david. said... in addresses are responsible for % of all cryptocurrency money laundering, catalin cimpanu discusses a report from chainalysis: " , addresses received % of all criminally-linked cryptocurrency funds in , a sum estimated at around $ . billion. ... the company believes that the cryptocurrency-related money laundering field is now in a vulnerable position where a few well-orchestrated law enforcement actions against a few cryptocurrency operators could cripple the movement of illicit funds of many criminal groups at the same time. furthermore, additional analysis also revealed that many of the services that play a crucial role in money laundering operations are also second-tier services hosted at larger legitimate operators. in this case, a law enforcement action wouldn't even be necessary, as convincing a larger company to enforce its anti-money-laundering policies would lead to the shutdown of many of today's cryptocurrency money laundering hotspots." february , at : pm david. said... in bitcoin is now worth $ , — and it's ruining the planet faster than ever, eric holthaus points out the inevitable result of the recent spike in btc: "the most recent data, current as of february from the university of cambridge shows that bitcoin is drawing about . gigawatts of electricity, an annualized consumption of terawatt-hours – about a half-percent of the entire world’s total – or about as much as the entire country of pakistan. since most electricity used to mine bitcoin comes from fossil fuels, bitcoin produces a whopping million tons of carbon dioxide annually, about the same amount as switzerland does by simply existing." february , at : pm david. said... in elon musk wants clean power, but tesla's dealing in environmentally dirty bitcoin notes that: "tesla boss elon musk is a poster child of low-carbon technology. yet the electric carmaker's backing of bitcoin this week could turbocharge global use of a currency that's estimated to cause more pollution than a small country every year. tesla revealed on monday it had bought $ . billion of bitcoin and would soon accept it as payment for cars, sending the price of the cryptocurrency though the roof. ... the digital currency is created via high-powered computers, an energy-intensive process that currently often relies on fossil fuels, particularly coal, the dirtiest of them all." but reuters fails to ask where the $ . b that spiked btc's "price" came from. it wasn't musk's money, it was the tesla shareholder's money. and how did they get it? by selling carbon offsets. so musk is taking subsidies intended to reduce carbon emissions and using them to generate carbon emissions. february , at : pm david. said... one flaw in eric holthaus' bitcoin is now worth $ , — and it's ruining the planet faster than ever is that while he writes: "there are decent alternatives to bitcoin for people still convinced by the potential social benefits of cryptocurrencies. ethereum, the world’s number two cryptocurrency, is currently in the process of converting its algorithm from one that’s fundamentally competitive (proof-of-work, like bitcoin uses) to one that’s collaborative (proof-of-stake), a move that will conserve more than % of its electricity use." he fails to point out that (a) ethereum has been trying to move to proof-of-stake for many years without success, and (b) there are a huge number of other proof-of-work cryptocurrencies that, in aggregate, also generate vast carbon emissions. february , at : pm david. said... four posts worth reading inspired by elon musk's pump-and-hodl of bitcoin. first, jamie powell's tesla and bitcoin: the accounting explains how $ . b of btc will further obscure the underlying business model of tesla. of course, if investors actually understood tesla's business model they might not be willing to support a pe of, currently, , . , so the obscurity may be the reason for the hodl. second, izabella kaminska's what does institutional bitcoin mean? looks at the investment strategies hedge funds like blackrock will use as they "dabble in bitcoin". it involves the btc futures market being in contango and is too complex to extract but well worth reading. third, david gerard's number go up with tether — musk and bitcoin set the world on fire points out that musk's $ . b only covers hours of usdt printing: "tether has given up caring about plausible appearances, and is now printing a billion tethers at a time. as i write this, tether states its reserve as $ , , , . of book value. that’s $ . billion — every single dollar of which is backed by … pinky-swears, maybe? tether still won’t reveal what they’re claiming to constitute backing reserves." in bitcoin's 'elon musk pump' rally to $ k was exclusively driven by whales, joseph young writes: "n recent months, so-called “mega whales” sold large amounts of bitcoin between $ , and $ , . orders ranging from $ million to $ million rose significantly across major cryptocurrency exchanges, including binance. but as the price of bitcoin began to consolidate above $ , after the correction from $ , , the buyer demand from whales surged once again. analysts at “material scientist” said that whales have been showing unusually large volume, around $ million in hours. this metric shows that whales are consistently accumulating bitcoin in the aftermath of the news that tesla bought $ . billion worth of btc." february , at : pm david. said... ethereum consumes about . twh/yr - much less than bitcoin's twh/yr, but still significant. it will continue to waste power until the switch to proof-of-stake, underway for the past years, finally concludes. don't hold your breath. february , at : am david. said... the title of jemima kelly's hey citi, your bitcoin report is embarrassingly bad says all that needs to be said, but her whole post is a fun read. march , at : am david. said... jemima kelley takes citi's embarrassing "bitcoin report" to the woodshed again in the many chart crimes of *that* citi bitcoin report: "not only was this “report” actually just a massive bitcoin-shilling exercise, it also contained some really quite embarrassing errors from what is meant to be one of the top banks in the world (and their “premier thought leadership” division at that). the error that was probably most shocking was the apparent failure of the six citi analysts who authored the report to grasp the difference between basis points and percentage points." march , at : am david. said... adam tooze's talking (and reading) about bitcoin is an economist's view of bitcoin: "to paraphrase gramsci, crypto is the morbid symptom of an interregnum, an interregnum in which the gold standard is dead but a fully political money that dares to speak its name has not yet been born. crypto is the libertarian spawn of neoliberalism’s ultimately doomed effort to depoliticize money." tooze quotes izabella kaminska contrasting the backing of "fiat" by the requirement to pay tax with bitcoin: "private “hackers” routinely raise revenue from stealing private information and then demanding cryptocurrency in return. the process is known as a ransom attack. it might not be legal. it might even be classified as extortion or theft. but to the mindset of those who oppose “big government” or claim that “tax is theft”, it doesn’t appear all that different. a more important consideration is which of these entities — the hacker or a government — is more effective at enforcing their form of “tax collection” upon the system. the government, naturally, has force, imprisonment and the law on its side. and yet, in recent decades, that hasn’t been quite enough to guarantee effective tax collection from many types of individuals or corporations. hackers, at a minimum, seem at least comparably effective at extracting funds from rich individuals or multinational organisations. in many cases, they also appear less willing to negotiate or to cut deals." march , at : am david. said... ibm blockchain is a shell of its former self after revenue misses, job cuts: sources by ian allison is the semi-official death-knell for ibm's hyperledger: "ibm has cut its blockchain team down to almost nothing, according to four people familiar with the situation. job losses at ibm (nyse: ibm) escalated as the company failed to meet its revenue targets for the once-fêted technology by % this year, according to one of the sources." david gerard comments: "hyperledger was a perfect ibm project — a potemkin village open source project, where all the work was done in an ibm office somewhere." march , at : pm david. said... ketan joshi's bitcoin is a mouth hungry for fossil fuels is a righteous rant about cryptocurrencies' energy usage: "i think the story of bitcoin isn’t a sideshow to climate; it’s actually a very significant and central force that will play a major role in dragging down the accelerating pace of positive change. this is because it has an energy consumption problem, it has a fossil fuel industry problem, and it has a deep cultural / ideological problem. all three, in symbiotic concert, position bitcoin to stamp out the hard-fought wins of the past two decades, in climate. years of blood, sweat and tears – in activism, in technological development, in policy and regulation – extinguished by a bunch of bros with laser-eye profile pictures." march , at : am david. said... the externalities of cryptocurrencies, and bitcoin in particular, don't just include ruining the climate, but also ruining the lives of vulnerable elderly who have nothing to do with "crypto". mark rober's fascinating video glitterbomb trap catches phone scammer (who gets arrested) reveals that indian phone scammers transfer their ill-gotten gains from stealing the life savings of elderly victims from the us to india using bitcoin. march , at : pm david. said... the subhead of noah smith's bitcoin miners are on a path to self-destruction is: "producing the cryptocurrency is a massive drain on global power and computer chip supplies. another way is needed before countries balk." march , at : am david. said... in before bitfinex and tether, bennett tomlin pulls together the "interesting" backgrounds of the "trustworthy" people behind bitfinex & tether. march , at : pm david. said... david gerard reports that: "coinbase has had to pay a $ . million fine to the cftc for allowing an unnamed employee to wash-trade litecoin on the platform. on some days, the employee’s wash-trading was % of the litecoin/bitcoin trading pair’s volume. coinbase also operated two trading bots, “hedger and replicator,” which often matched each others’ orders, and reported these matches to the market." as he says: "if coinbase — one of the more regulated exchanges — did this, just think what the unregulated exchanges get up to." especially with the "trustworthy" characters running the unregulated exchanges. march , at : pm david. said... martin c. w. walker and winnie mosioma's regulated cryptocurrency exchanges: sign of a maturing market or oxymoron? examines the (mostly lack of) regulation of exchanges and concludes; "in general, cryptocurrencies lack anyone that is genuinely accountable for core processes such as transfers of ownership, trade validation and creation of cryptocurrencies. a concern that can ultimately only be dealt with by acceptance of the situation or outright bans. however, the almost complete lack of regulation of the highly centralised cryptocurrency exchanges should be an easier-to-fill gap. regulated entities relying on prices from “exchanges” for accounting or calculation of the value of futures contracts are clearly putting themselves at significant risk." coinbase just filed for a $ b direct listing despite just having been fine $ . m forwash-tradding litecoin. april , at : pm david. said... izabella kaminska outlines the the risks underlying coinbase's ipo in why coinbase’s stellar earnings are not what they seem. the sub-head is: "it’s easy to be profitable if your real unique selling point is being a beneficiary of regulatory arbitrage." and she concludes: "coinbase may be a hugely profitable business, but it may also be a uniquely risky one relative to regulated trading venues such as the cme or ice, neither of which are allowed to take principal positions to facilitate liquidity on their platforms. instead, they rely on third party liquidity providers. coinbase, however, is not only known to match client transactions on an internalised “offchain” basis (that is, not via the primary blockchain) but also to square-off residual unmatched positions via bilateral relationships in crypto over-the-counter markets, where it happens to have established itself as a prominent market maker. it’s an ironic state of affairs because the netting processes that are at the heart of this system expose coinbase to the very same risks that real-time gross settlement systems (such as bitcoin) were meant to vanquish." april , at : pm david. said... nathan j. robinson hits the nail on the head with why cryptocurrency is a giant fraud: "you may have ignored bitcoin because the evangelists for it are some of the most insufferable people on the planet—and you may also have kicked yourself because if you had listened to the first guy you met who told you about bitcoin way back, you’d be a millionaire today. but now it’s time to understand: is this, as its proponents say, the future of money?" and: "but as is generally the case when someone is trying to sell you something, the whole thing should seem extremely fishy. in fact, much of the cryptocurrency pitch is worse than fishy. it’s downright fraudulent, promising people benefits that they will not get and trying to trick them into believing in and spreading something that will not do them any good. when you examine the actual arguments made for using cryptocurrencies as currency, rather than just being wowed by the complex underlying system and words like “autonomy,” “global,” and “seamless,” the case for their use by most people collapses utterly. many believe in it because they have swallowed libertarian dogmas that do not reflect how the world actually works." robinson carefully dismantles the idea that cryptocurrencies offer "security", "privacy", "convenience", and many of the other arguments for them. tghe whole article is well worth reading. april , at : pm post a comment newer post older post home subscribe to: post comments (atom) blog rules posts and comments are copyright of their respective authors who, by posting or commenting, license their work under a creative commons attribution-share alike . united states license. off-topic or unsuitable comments will be deleted. dshr dshr in anwr recent comments full comments blog archive ▼  ( ) ►  april ( ) ►  march ( ) ►  february ( ) ▼  january ( ) effort balancing and rate limits isp monopolies the bitcoin "price" two million page views! the new oldweb.today ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) lockss system has permission to collect, preserve, and serve this archival unit. simple theme. powered by blogger. thoughts on getftr | scholcommsprod home about categories rss posts thoughts on getftr posted on december, at : utc category: getftr wtfgetftwt access saml publishing libraries what does it do? by using a single sign-on system (like saml, or oauth) a researcher can have their browser remember who they are. today most access to subscription content is done via ip authentication. a university pays a publisher to access the content that the publisher hosts, and the university sends over a list of the ip ranges that cover the university buildings. any researcher on campus just gets access. the big problem is that when you are off campus that doesn’t work any more. if researchers log in to the publisher site via a university authenticated single sign on system, then the browser can remember that the researcher has access to the content, on their behalf. this allows the researcher to get access to the publisher site, even when they are off campus. (it also allows the publisher to have a much better understanding of who is accessing their content). that’s the key idea behind ”seamlessaccess.org”, but there could be concerns about the publisher now knowing who the researcher is. so far, so good, but what does getftr do that’s different. as i understand it, from reading what’s on the getftr site, getftr has an api and when any website that shows a doi on it wants to, that website can send a request to this api with the doi, and if the website has it, it can also send information about the institution from where the request is coming. now rather than the identification of the university being any old identifying string, it needs to be one backed by a single sign on system, like saml. the api will then send some information back that can allow the website to create a ”wayfless url”. that lest the person clicking the link get directly to the content without having to go through the payday. now getftr have said that they don’t need or receive any user specific information, they just need the institutional authentication. ok, so what is the difference, for the user, between seamlessaccess and getftr? i think that the difference is the following - with seamless access you the user have to log in to the publisher site. with getftr if you are providing pages that contain dois (like on a discovery service) to your researchers, you can give them links they can click on that have been setup to get those users direct access to the content. that means as a researcher, so long as the discovery service has you as an authenticated user, you don’t need to even think about logins, or publisher access credentials. on the other hand, the links that you are being presented are now determined by the publisher. if you are on campus, and your institution has access to the publisher site, then the end result should be indistinguishable from just clicking on the doi and getting a redirect to the publisher site (unless the publisher decides to stop supporting ip authentication, and maybe that is a long term goal of this initiative, but who knows ¯_(ツ)_/¯). if you are off campus the experience could be different for paywalled journals, in that if you are logged in to your discovery service you should now get links that will work for you without you needing to log in to specific publisher sites, whereas just clicking on the doi won’t necesscarily get you that access. how about using unpaywall, the open access button, or some other browser extension for finding alternative links for that article that you need (like links to repository versions, for example?). well the good folks behind getftr could also provide those links if they were to wrap around the unpaywall api, for example, but what will happen is that some publishers will have the idea of wanting to provide researchers with some form of bronze version of the article, perhaps through platforms that restrict the ability of the researcher to copy and paste form the text, or to share onwardly, all presumable with the aims of being able to “count” usage while at the same time reducing the surface area from which content can “leak” from the publisher site. in a world in which contracts with university libraries is focussed on data like counter usage, then this is a perfectly reasonable concern from publishers, however the choices that publisher make about how to present “alternative” versions to reachers is going to vary. one example of how this could suck, lets imagine that there is a very usable green oa version of an article, but the publisher wants to push me to using some “e-reader limited functionality version” that requires an account registration, or god forbid a browser exertion, or desktop app. if the publisher shows only this limited utility version, and not the green version, well that sucks. ok, so that’s my understanding of what getftr does (if i’m wrong, then i hope i’ll get corrected quickly. why is it doing that? ok, so, i’ve covered what it does, but why are the big five doing this? weeeeeellllll. it’s not totally clear, but the elephant in the room is sci-hub - the website where everyone in the world can go and get an illegal copy of any research article. that combined with the economic system of value exchange in scholarly publishing, probably gives sufficient motivation for publishers to create this service. i think there are two things that make it possible for sci-hub to be possible. the first is there is a huge fragmentation of publishers in the world, and the user experience of navigating all of these sites, and systems is a pain. there is no one clear unified experience for interacting with the scholarly research, and in the googlified world we live in, that just does not gel with the kind of experience that people want, so to start with sci-hub just provides a better user experience (i’m told, i’ve actually only used sci-hub once, and i found it a pain to use back then). the second thing that makes sci-hub possible is a combination of ip access (no-authentication access) along with weak on-campus security for researcher logins. that allows sci-hub to attack researcher accounts to enable them to scrape all of the content that they put on their servers. a service like getftr kind of targets both of the above. the motivation is probably mostly to try to get the industry on board to try to get beyond ip authentication, and to allow publishers to “count” usage so that the “usage” numbers they present to libraries look higher and allow them to justify either price rises or indeed, just simple renewals of contracts. i have to say, the moving beyond ip authentication is a really good idea for a whole host of security reasons, and it will indeed require a big shift across the whole industry, so if this initiative could be run in a way the builds trust amongst all parties, then that would be no small thing, and should be applauded. what would make this succeed? so, in order for this to work for a cohort of researchers, every place that they look for research will need to be to implement calls to this api, and will need to have information about that researchers authenticated access to their universities. that sounds like a tall order, but there are some services, and pieces of infrastructure, that have wide deployment footprints in the world, so if you can convince them to implement this, then maybe you get to a critical mass. oh, you also need all the publishers to implement this too, and for publishers to do this, then they are going to need to be provided with a very low cost, turn-key solution to be able to implement it. to keep a service like this running, i would expect that you would want to have a small dedicated team (maybe — people), and support a reasonable volume of api queries, with a good response rate. i’d benchmark the cost of running this service to be on the order of a few hundred thousand dollars. with maybe k publishers in the world, then the cost of joining this service should be on the order of a few thousand dollars per year, not withstanding the cost of implementation and integration. that seems like a reasonable ball park. what would make this fail? i’ve not done anything like a full analysis on this, in terms of looking at a lean canvas and trying to tease out the riskiest assumptions around the sustainability of this service, but the one thing that sticks out that could make this fail is lack of researcher adoption. if researchers use different discovery systems, and they don’t see these links everywhere, then they may just fall back to using a behavioural route that works everywhere. (that’s a totally untested hypothesis on my part, and indeed, the very reasonableness of it means that it should be tested). contributing to lack of adoption could be if getftr is complex or costly for institutions and publishers to implement. what would make this irrelevant? if publishing moves to being fully oa then this service is irrelevant. what are the concerns that we might think about with this, and do they hold water? ok, hold on to your hats, this is where we get into tin-foil hat territory. will google scholar implement this, will other discovery services do so? well, that’s a question. i suppose that publishers could coerce gs to implement this by threatening to rescind access to their full text, but would they really want to take the hit to their traffic? i don’t see that as being worth the risk. gs is a small team, if all publishers were implementing this, they might join in, they might not, they have their own effort to try to solve this for users. someone on twitter way saying the the big five could coerce discovery services to implement this through contractual enforcement. if the system is easy enough to implement and truly adds value, then you should not need to enforce implementation, and if it is not/does not, then enforced implementation is not where your key problems are with this service. concern - this could replace crossref this was my first thought when i head about it, and joined up this with some of the comments that were reported from crossref live. the thinking is that is this a way for publishers to provide a routing system independent of the handle system that corssref redirects are based off of? well, yes it does do that, however the entire service depends on dois, so while it could replace some of the existing infrastructure, it as the same time remains dependant on the existing infrastructure. i can appreciate that to move fast sometimes its good to just get on and do things, but i would advocate that if this service were to become a true replacement for ip authentication then it should hand governance over to someone like niso or some other independent body. concern - this could kill green oa as i mentioned earlier, this could enable publishers to decide to provide links to restricted access, but free to read, versions of articles, in place of greenoa. i don’t think this is going to be a big concern for two reasons. the first is that not all publishers will be able to do this, and secondly the motivation to deposit into institutional repositories is not currently driven by usage data from those repositories, but rather from mandates from funders, who are unlikely to be influenced by this service in how they decide to modify their mandates in the future. concern - this could leak proprietary publisher information ok, so i’m not sure how the api is provisioned, but i am assuming that it is provisioned by a single end point. who owns that endpoint and the logged data that this endpoint collects? that endpoint will have information about what resources different publishers have provided to institutions, combined with usage data from those institutions. if i am publisher a and have a journal close to that from publisher b, but that is “lower tier”, then if i could access usage data from publisher b i could modify my sales price. how am i going to be sure that my own usage data does not leak to other publishers signed up to this service? concern - this does no look like the kind of initiative that a publisher who is on a transformative journey to open access would invest in. if i am sitting in the european commission or in jisc i am probably not going to look at this initiative as something that proves publishers are on a journey to becoming open access. i think getftr do need to make clear what the overall benefits to the scholarly ecosystem are with this initiative, because at the moment the information on their faq seems to mostly support the creation of publisher value. concern - this will allow publishers to track users, and behaviourally target them. if the users are now logging in to some service directly, won’t this mean that the publisher can now track that person directly? actually getftr explicitly states that they don’t get any information about the user, and given that this needs to be implemented server side, then there are actually fewer potential security concerns compared to using a browser plugin based solution. what do i think about it all? what are my recommendations? i don’t really know yet. doing anything is hard, doing so in coordination amongst large competitors is even more so, so the team behind this should be recognised for having put tougher a well executed initial proposal for how to move on access management. i think if you are a researcher i would recommend continuing to use a bag of tools to get access to your research. for the interim this will only be a partial solution. if you are a publisher i would recommend calculating cost of implementation, time to implement against expectations around how much additional usage it is going to give you, and how much revenue that is going to translate to. basically i would advocate using a cost of deals analysis on whether to implement this or now. i have two other recommendations for the getftr team. both relate to building trust. first up, don’t list orgs as being on an advisory board, when they are not. secondly it would be great to learn about the team behind the creation of the service. at the moment its all very anonymous. links that i referred to when putting this together. seamless access description - gn - work package - gÉant federated confluence. github - theidentityselector/thiss-js: the identity selector software source. welcome to the identity selector service’s documentation! — the identity selector service . . documentation. publishers going-it-alone (for now?) with getftr | disruptive library technology jester welcome to seamlessaccess.org | sa site https://www.getfulltextresearch.com/faqs/ https://scholarlykitchen.sspnet.org/ / / /why-are-librarians-concerned-about-getftr/ get to fulltext ourselves, not getftr. - openaccessbutton ← newer top older → preliminary inventory of digital collections by jason ronallo preliminary inventory of digital collections by jason ronallo incomplete thoughts on digital libraries. upgrading from ubuntu . to . choosing a path forward for iiif audio and video testing dash and hls streams on linux client-side video tricks for iiif iiif examples # : wellcome library closing in on client-side iiif content search team happy find in: title writers guests clear search all original cover date title original view - - raised by the railroad line open with: facebook | youtube - - seventeen * open with: facebook | youtube - - play a train song open with: facebook | youtube - - chocolate jesus open with: facebook | youtube - - in spite of ourselves open with: facebook | youtube - - teach the dog to drive * open with: facebook | youtube - - bang bang open with: facebook | youtube - - slot machine baby * open with: facebook | youtube - - tear stained eye open with: facebook | youtube - - colour my world open with: facebook | youtube - - san fransisco bay blues open with: facebook | youtube - - when i'm gone open with: facebook | youtube - - all this fucking rain * open with: facebook | youtube - - society open with: facebook | youtube - - certain signs * open with: facebook | youtube - - they say dancing * open with: facebook | youtube - - i called your name * open with: facebook | youtube - - last thing on my mind open with: facebook | youtube - - sea of heartbreak open with: facebook | youtube - - perfect country pop song * open with: facebook | youtube - - poor ned / the ballad of ned kelly open with: facebook | youtube - - nancy spain open with: facebook | youtube - - let your love flow open with: facebook | youtube - - goodbye mongrel dog * open with: facebook | youtube - - old shoes (and picture postcards) open with: facebook | youtube - - dry pebbles * open with: facebook | youtube - - all l'amour for you * open with: facebook | youtube - - get a room * open with: facebook | youtube - - clare island open with: facebook | youtube - - did the stars move for you? * open with: facebook | youtube - - dimming of the day open with: facebook | youtube - - marry you open with: facebook | youtube - - in(di)visible * open with: facebook | youtube - - our sunshine open with: facebook | youtube - - harvest moon open with: facebook | youtube - - brown eyed girl / the lion sleeps tonight open with: facebook | youtube - - sugar man open with: facebook | youtube - - waitin' around to die open with: facebook | youtube - - wildflowers / if i had a boat open with: facebook | youtube - - be careful what you pray for open with: facebook | youtube - - thirteen silver dollars open with: facebook | youtube - - going back to georgia open with: facebook | youtube - - silent night (ish) open with: facebook | youtube - - riptide open with: facebook | youtube - - long black veil open with: facebook | youtube - - until the day i die open with: facebook | youtube - - something open with: facebook | youtube - - long time gone open with: facebook | youtube - - if it's in the groove * open with: facebook | youtube - - if we met in ' * open with: facebook | youtube - - i may i might * open with: facebook | youtube - - gravity open with: facebook | youtube - - restless open with: facebook | youtube - - closer to fine open with: facebook | youtube - - pineapple road * open with: facebook | youtube - - i am right * open with: facebook | youtube - - i'll give you something to smile about * open with: facebook | youtube - - chocolate jesus open with: facebook | youtube - - if you sing * open with: facebook | youtube - - dance me to the end of love open with: facebook | youtube - - deeper water open with: facebook | youtube homosaurus vocabulary site homosaurus.org toggle navigation home vocabulary search releases about contact welcome to the homosaurus! the homosaurus is an international linked data vocabulary of lesbian, gay, bisexual, transgender, and queer (lgbtq) terms. this vocabulary is intended to function as a companion to broad subject term vocabularies, such as the library of congress subject headings. libraries, archives, museums, and other institutions are encouraged to use the homosaurus to support lgbtq research by enhancing the discoverability of their lgbtq resources. if you are using the homosaurus, we want to hear from you! please contact us to let us know how you are using this vocabulary and share any feedback you might have. homosaurus.org is a linked data service maintained by the digital transgender archive loading... scriptio continua scriptio continua thoughts on software development, digital humanities, the ancient world, and whatever else crosses my radar. all original content herein is licensed under a creative commons attribution license. friday, june , reminder in the midst of the ongoing disaster that has befallen the country, i had a reminder recently that healthcare in the usa is still a wreck. when i had my episode of food poisoning (or whatever it was) in michigan recently, my concerned wife took me to an urgent care. we of course had to pay out-of-pocket for service (about $ ), as we were way outside our network (the group of providers who have agreements with our insurance company). i submitted the paperwork to our insurance company when we got home (duke uses aetna), to see if they would reimburse some of that amount. nope. rejected, because we didn't call them first to get approval—not something you think of at a time like that. thank god i waved off the responders when my daughter called them after i first got sick and almost passed out. we might have been out thousands of dollars. and this is with really first-class insurance, mind you. i have great insurance through duke. you can't get much better in this country. people from countries with real healthcare systems find this kind of thing shocking, but it's par for the course here. and our government is actively trying to make it worse. it's just one more bit of dreadful in a sea's worth, but it's worth remembering that the disastrous state of healthcare in the us affects all of us, even the lucky ones with insurance through our jobs. and again, our government is trying its best to make it worse. you can be quite sure it will be worse for everyone. posted by unknown at : am no comments: email thisblogthis!share to twittershare to facebookshare to pinterest monday, may , experiencing technical difficulties i've been struggling with a case of burnout for a while now. it's a common problem in programming, where we have to maintain a fairly high level of creative energy all the time, and unlike my colleagues in academia or the library, i'm not eligible for research leave or sabbaticals. vacation is the only opportunity for recharging my creative batteries, but that's hard too when there are a lot of tasks that can't wait. i have taken the day off to work before, but that just seems stupid. so i grind away, hoping the fog will lift. a few weeks ago, the kids and i joined my wife on a work trip to michigan. it was supposed to be a mini-vacation for us, but i got violently ill after lunch one day—during a umich campus tour. it sucked about as much as it possibly could. my marvelous elder daughter dealt with the situation handily, but of course we ended up missing most of the tour, and i ended up in bed the rest of the day, barring the occasional run to the bathroom. my world narrowed down to a point. i was quite happy to lie there, not thinking. i could have read or watched television, but i didn't want to. trying the occasional sip of gatorade was as much as i felt like. for someone who normally craves input all the time, it was very peaceful. it revealed to me again on how much of a knife-edge my consciousness really is. it would take very little to knock it off the shelf to shatter on the ground. my father has alzheimer's disease, and this has already happened to him. where once there was an acutely perceptive and inquiring mind, there remains only his personality, which seems in his case to be the last thing to go. i try to spend time with him at least once or twice a week, both to take a little pressure off my mother and to check on their general well-being. we take walks. physically, he's in great shape for a man in his s. and there are still flashes of the person he was. he can't really hold a conversation, and will ask the same questions over and over again, my answers slipping away as soon as they're heard, but as we walked the other day, accompanied by loud birdsong, he piped up "we hear you!" to the birds, his sense of humor suddenly back on the surface. we are lucky that my parents have fantastic insurance and a good retirement plan, courtesy of an employer, the episcopal church, that cares about its people beyond the period of their usefulness. burnout is a species of depression, really. it is the same sort of thing as writer's block. your motivation simply falls out from under you. you know what needs to be done, but it's hard to summon the energy to do it. the current political climate doesn't help, as we careen towards the cliff's edge like the last ride of thelma and louise, having (i hope metaphorically, but probably not for many of us) chosen death over a constrained future, for the sake of poking authority in the eye. my children will suffer because the baby boomers have decided to try to take it all with them, because as a society we've fallen in love with death. all we can do really is try to arm the kids against the hard times to come, their country having chosen war, terror, and oppression in preference to the idea that someone undeserving might receive any benefit from society. we gen-xers at least had some opportunity to get a foot on the ladder. their generation will face a much more tightly constrained set of choices, with a much bigger downside if they make the wrong ones. i don't write much about my children online, because we want to keep them as much as possible out of the view of the social media panopticon until they're mature enough to make their own decisions about confronting it. at least they may have a chance to start their lives without the neoliberal machine knowing everything about them. they won't have anything like the support i had, and when we've dismantled our brief gesture towards health care as a human right and insurance decisions are made by ais that know everything about you going back to your childhood, things are going to be quite difficult. a symptom, i think, of my burnout is my addiction to science fiction and urban fantasy novels. they give me a chance to check out from the real world for a while, but i think it's become a real addiction rather than an escape valve. our society rolls ever forward toward what promises to be an actual dystopia with all the trappings: oppressed, perhaps enslaved underclasses, policed by unaccountable quasi-military forces, hyper-wealthy elites living in walled gardens with the latest technology, violent and unpredictable weather, massive unemployment and social unrest, food and water shortages, and ubiquitous surveillance. escapism increasingly seems unwise. some of that future can be averted if we choose not to be selfish and paranoid, to stop oppressing our fellow citizens and to stop demonizing immigrants, to put technology at the service of bettering society and surviving the now-inevitable changes to our climate. but we are not making good choices. massive unemployment is a few technological innovations away. it doesn't have to be a disaster, indeed it could lead to a renaissance, but i think we're too set in our thinking to avoid the disaster scenario. the unemployed are lazy after all, our culture tells us, they must deserve the bad things that have happened to them. our institutions are set up to push them back towards work by curtailing their benefits. but it could never happen to me, could it? and that comes back around to why i try to grind my way through burnout rather than taking time to recover from it. i live in an "at will" state. i could, in theory, be fired because my boss saw an ugly dog on the way in to work. that wouldn't happen, i hasten to say—i work with wonderful, supportive people. but there are no guarantees to be had. people can be relied on, but institutions that have not been explicitly set up to support us cannot, and institutional structures and rules tend to win in the end. best to keep at it and hope the spark comes back. it usually does. posted by unknown at : pm no comments: email thisblogthis!share to twittershare to facebookshare to pinterest monday, february , thank you back in the day, joel spolsky had a very influential tech blog, and one of the pieces he wrote described the kind of software developer he liked to hire, one who was "smart, and gets things done." he later turned it into a book (http://www.amazon.com/smart-gets-things-done-technical/dp/ ). steve yegge, who was also a very influential blogger in the oughties, wrote a followup, in which he tackled the problem of how you find and hire developers who are smarter than you. given the handicaps of human psychology, how do you even recognize what you're looking at? his rubric for identifying these people (flipping spolsky's) was "done, and gets things smart". that is, this legendary " x" developer was the sort who wouldn't just get done the stuff that needed to be done, but would actually anticipate what needed to be done. when you asked them to add a new feature, they'd respond that it was already done, or that they'd just need a few minutes, because they'd built things in such a way that adding your feature that you just thought of would be trivial. they wouldn't just finish projects, they'd make everything better—they'd create code that other developers could easily build upon. essentially, they'd make everyone around them more effective as well. i've been thinking a lot about this over the last few months, as i've worked on finishing a project started by sebastian rahtz: integrating support for the new "pure odd" syntax into the tei stylesheets. the idea is to have a tei syntax for describing the content an element can have, rather than falling back on embedded relaxng. lou burnard has written about it here: https://jtei.revues.org/ . sebastian wrote the xslt stylesheets and the supporting infrastructure which are both the reference implementation for publishing tei and the primary mechanism by which the tei guidelines themselves are published. and they are the basis of tei schema generation as well. so if you use tei at all, you have sebastian to thank. picking up after sebastian's retirement last year has been a tough job. it was immediately obvious to me just how much he had done, and had been doing for the tei all along. when gabriel bodard described to me how the tei council worked, after i was elected for the first time, he said something like: "there'll be a bunch of people arguing about how to implement a feature, or even whether it can be done, and then sebastian will pipe up from the corner and say 'oh, i just did it while you were talking.'" you only have to look at the contributors pages for both the tei and the stylesheets to see that sebastian was indeed operating at a x level. quietly, without making any fuss about it, he's been making the tei work for many years. the contributions of software developers are often easily overlooked. we only notice when things don't work, not when everything goes smoothly, because that's what's supposed to happen, isn't it? even in digital humanities, which you'd expect to be self-aware about this sort of thing, the intellectual contributions of software developers can often be swept under the rug. so i want to go on record, shouting a loud thank you to sebastian for doing so much and for making the tei infrastructure smart. ***** update - - i heard the sad news last night that sebastian passed away yesterday on the ides of march. we are much diminished by his loss. posted by unknown at : pm comment: email thisblogthis!share to twittershare to facebookshare to pinterest friday, october , dh data talk last night i was on a panel organized by duke libraries' digital scholarship group. the panelists each gave some brief remarks and then we had what i thought was a really productive and interesting discussion. the following are my own remarks, with links to my slides (opens a new tab). in my notes, //slide// means click forward (not always to a new slide, maybe just a fragment). this is me, and i work //slide// for this outfit. i'm going to talk just a little about a an old project and a new one, and not really give any details about either, but surface a couple of problems that i hope will be fodder for discussion. //slide// the old project is papyri.info and publishes all kinds of data about ancient documents mostly written in ink on papyrus. the new one, integrating digital epigraphies (ides), is about doing much the same thing for ancient documents mostly incised on stone. if i had to characterize (most of) the work i'm doing right now, i'd say i'm working on detecting and making machine-actionable the scholarly links and networks embedded in a variety of related projects, with data sources including plain text, xml, relational databases, web services, and images. these encompass critical editions of texts (often in large corpora), bibliography, citations in books and articles, images posted on flickr, and databases of texts. you could think of what i'm doing as recognizing patterns and then converting those into actual links; building a scaffold for the digital representation of networks of scholarship. this is hard work. //slide// it's hard because while superficial patterns are easy to detect, //slide// without access to the system of thought underlying those patterns (and computers can't do that yet—maybe never), those patterns are really just proxies kicked up by the underlying system. they don't themselves have meaning, but they're all you have to hold on to. //slide// our brains (with some prior training) are very good at navigating this kind of mess, but digital systems require explicit instructions //slide// —though granted, you can sometimes use machine learning techniques to generate those. when i say i'm working on making scholarly networks machine actionable, i'm talking about encoding as digital relations the graph of references embedded in these books, articles and corpora, and in the metadata of digital images. there are various ways one might do this, and the one we're most deeply into right now is called //slide// rdf. rdf models knowledge as a set of simple statements in the form subject, predicate, object. //slide// so a cites b, for example. rdf is a web technology, so all three of these elements may be uris that you could open in a web browser, //slide// and if you use uris in rdf, then the object of one statement can be the subject of another, and so on. //slide// so you can use it to model logical chains of knowledge. now notice that these statements are axioms. you can't qualify them, at least not in a fine-grained way. so this works great in a closed system (papyri.info), where we get to decide what the facts are; it's going to be much more problematic in ides, where we'll be coordinating data from at least half a dozen partners. partners who may not agree on everything. //slide// what i've got is the same problem from a different angle—i need to model a big pile of opinion but all i have to do it with are facts. part of the solution to these problems has to be about learning how to make the insertion of machine-actionable links and facts (or at least assertions), part of—that is, a side-effect of—the normal processes of resource creation and curation. but it also has to be about building systems that can cope with ambiguity and opinion. posted by unknown at : am no comments: email thisblogthis!share to twittershare to facebookshare to pinterest wednesday, september , outside the tent yesterday was a bad day. i’m chasing a messed-up software problem whose main symptom is the application consuming all available memory and then falling over without leaving a useful stacktrace. steve ramsay quit twitter. a colleague i have huge respect for is leaving a project that’s foundational and is going to be parked because of it (that and the lack of funding). this all sucks. as i said on twitter, it feels like we’ve hit a tipping point. i think dh has moved on and left a bunch of us behind. i have to start this off by saying that i really have nothing to complain about, even if some of this sounds like whining. i love my job, my colleagues, and i’m doing my best to get over being a member of a carolina family working at duke :-). i’m also thinking about these things a lot in the run up to speaking in code. for some time now i’ve been feeling uneasy about how i should present myself and my work. a few years ago, i’d have confidently said i work on digital humanities projects. before that, i was into humanities computing. but now? i’m not sure what i do is really dh any more. i suspect the dh community is no longer interested in the same things as people like me, who write software to enable humanistic inquiry and also like to think (and when possible write and teach) about how that software instantiates ideas about the data involved in humanistic inquiry. on one level, this is fine. time, and academic fashion, marches on. it is a little embarrassing though given that i’m a “senior digital humanities programmer”. moreover, the field of “programming” daily spews forth fresh examples of unbelievable, poisonous, misogyny and seems largely incapable of recognizing what a shitty situation its in because of it. the tech industry is in moral crisis. we live in a dystopian, panoptic geek revenge fantasy infested by absurd beliefs in meritocracy, full of entrenched inequalities, focused on white upper-class problems, inherently hostile to minorities, rife with blatant sexism and generally incapable of reaching anyone beyond early adopter audiences of people just like us. (from https://medium.com/about-work/f ccd a c ) i think communities who fight against this kind of oppression, like #dhpoco, for example, are where dh is going. but while i completely support them and think they’re doing good, important work, i feel a great lack of confidence that i can participate in any meaningful way in those conversations, both because of the professional baggage i bring with me and because they’re doing a different kind of dh. i don’t really see a category for the kinds of things i write about on dhthis or dhnow, for example. if you want to be part of a community that helps define #digitalhumanities please join and promote #dhthis today! http://t.co/vtwjtgqbgr — adeline koh (@adelinekoh) september , this is great stuff, but it’s also not going to be a venue for me wittering on about digital classics or text encoding. it could be my impostor syndrome kicking in, but i really doubt they’re interested. it does seem like a side-effect of the shift toward a more theoretical dh is an environment less welcoming to participation by “staff”. it’s paradoxical that the opening up of dh also comes with a reversion to the old academic hierarchies. i’m constantly amazed at how resilient human insitutions are. if digital humanities isn’t really what i do, and if programmer comes with a load of toxic slime attached to it, perhaps “senior” is all i have left. of course, in programmer terms, “senior” doesn’t really mean “has many years of experience”, it’s code for “actually knows how to program”. you see ads for senior programmers with - years of experience all the time. by that standard, i’m not senior, i’m ancient. job titles are something that come attached to staff, and they are terrible, constricting things. i don’t think that what i and many of my colleagues do has become useless, even if we no longer fit the dh label. it still seems important to do that work. maybe we’re back to doing humanities computing. i do think we’re mostly better off because digital humanities happened, but maybe we have to say goodbye to it as it heads off to new horizons and get back to doing the hard work that needs to be done in a humanities that’s at least more open to digital approaches than it used to be. what i’m left wondering is where the place of the developer (and, for that matter other dh collaborators) is in dh if dh is now the establishment and looks structurally pretty much like the old establishment did. is digital humanities development a commodity? are dh developers interchangeable? should we be? programming in industry is typically regarded as a commodity. programmers are in a weird position, both providers of indispensable value, and held at arm’s length. the problem businesses have is how to harness a resource that is essentially creative and therefore very subject to human inconsistency. it’s hard to find good programmers, and hard to filter for programming talent. programmers get burned out, bored, pissed off, distracted. best to keep a big pool of them and rotate them out when they become unreliable or too expensive or replace them when they leave. comparisons to graduate students and adjunct faculty may not escape the reader, though at least programmers are usually better-compensated. academia has a slightly different programmer problem: it’s really hard to find good dh programmers and staffing up just for a project may be completely impossible. the only solution i see is to treat it as analogous to hiring faculty: you have to identify good people and recruit them and train people you’d want to hire. you also have to give them a fair amount of autonomy—to deal with them as people rather than commodities. what you can’t count on doing is retaining them as contingent labor on soft money. but here we’re back around to the faculty/staff problem: the institutions mostly only deal with tenure-track faculty in this way. libraries seem to be the only academic institutions capable of addressing the problem at all. but they’re also the insitutions most likely to come under financial pressure and they have other things to worry about. it’s not fair to expect them to come riding over the hill. the ideal would situation would be if there existed positions to which experts could be recruited who had sufficient autonomy to deal with faculty on their own level (this essentially means being able to say ‘no’), who might or might not have advanced degrees, who might teach and/or publish, but wouldn’t have either as their primary focus. they might be librarians, or research faculty, or something else we haven’t named yet. all of this would cost money though. what’s the alternative? outsourcing? be prepared to spend all your grant money paying industry rates. grad students? many are very talented and have the right skills, but will they be willing to risk sacrificing the chance of a faculty career by dedicating themselves to your project? will your project be maintainable when they move on? mia ridge, in her twitter feed, reminds me that in england there exist people called “research software engineers”. notes from #rse breakout discussions appearing at https://t.co/pd itlbb t - lots of resonances with #musetech #codespeak — mia (@mia_out) september , there are worse labels, but it sounds like they have exactly the same set of problems i’m talking about here. posted by unknown at : pm comments: email thisblogthis!share to twittershare to facebookshare to pinterest monday, july , missing dh i'm watching the tweets from #dh starting to roll in and feeling kind of sad (and, let's be honest, left out) not to be there. conference attendance has been hard the last few years because i didn't have any travel funding in my old job. so i've tended only to go to conferences close to home or where i could get grant funding to pay for them. it's also quite hard sometimes to decide what conferences to go to. on a self-funded basis, i can manage about one a year. so deciding which one can be hard. i'm a technologist working in a library, on digital humanities projects, with a focus on markup technologies and on ancient studies. so my list is something like: dh jcdl one of many language-focused conferences the tei annual meeting balisage i could also make a case for conferences in my home discipline, classics, but i haven't been to the apa annual meeting in over a decade. now that the digital classics association exists, that might change. i tend to cycle through the list above. last year i went to the tei meeting, the year before, i went to clojure/conj and dh (because a grant paid). the year before that, i went to balisage, which is an absolutely fabulous conference if you're a markup geek like me (seriously, go if you get the chance). dh is a nice compromise though, because you get a bit of everything. it's also attended by a whole bunch of my friends, and people i'd very much like to become friends with. i didn't bother submitting a proposal for this year, because my job situation was very much up in the air at the time, and indeed, i started working at dc just a couple of weeks ago. dh would have been unfeasible for all kinds of reasons, but i'm still bummed out not to be there. have a great time y'all. i'll be following from a distance. posted by unknown at : pm no comments: email thisblogthis!share to twittershare to facebookshare to pinterest wednesday, february , first contact it seems like i've had many versions of this conversation in the last few months, as new projects begin to ramp up: client: i want to do something cool to publish my work. developer: ok. tell me what you'd like to do. client: um. i need you to to tell me what's possible, so i can tell you what i want. developer: we can do pretty much anything. i need you to tell me what you want so i can figure out how to make it. almost every introductory meeting with a client/customer starts out this way. there's a kind of negotiation period where we figure out how to speak each other's language, often by drawing crude pictures. we look at things and decide how to describe them in a way we both understand. we wave our hands in the air and sometimes get annoyed that the other person is being so dense. it's crucially important not to short-circuit this process though. you and your client likely have vastly different understandings of what can be done, how hard it is to do what needs to be done, and even whether it's worth doing. the initial negotiation sets the tone for the rest of the relationship. if you hurry through it, and let things progress while there are still major misunderstandings in the air, bad things will certainly happen. like: client: this isn't what i wanted at all! developer: but i built exactly what you asked for! posted by unknown at : am no comments: email thisblogthis!share to twittershare to facebookshare to pinterest older posts home subscribe to: posts (atom) followers blog archive ▼  ( ) ▼  june ( ) reminder ►  may ( ) ►  ( ) ►  february ( ) ►  ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  february ( ) ►  ( ) ►  april ( ) ►  march ( ) ►  ( ) ►  november ( ) ►  june ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  may ( ) ►  march ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  august ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  may ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  october ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  august ( ) ►  ( ) ►  october ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  ( ) ►  october ( ) about me unknown view my complete profile awesome inc. theme. powered by blogger. open source exile open source exile an open sourcer in exile tuesday, march #christchurchmosqueshootings this post is a personal reflection on the recent events in christchurch. many people have proposed different responses making some very good points. here are my thoughts: racism and bigotry has never been solved by wagging fingers at bigots. it has been solved by empowering the targets and systematically calling out minor acts of racism and bigotry so it becomes de-normalised. there have been lots of great suggestions as to how to empowering the targets in the last couple of days; listen to the targets on how they need to be empowered, not a white guy like me. enact a law that permanently raises the new zealand refugee quota automatically in response to anti-immigrant hate crimes (starting with the christchurch incident). this explicitly and clearly makes anti-immigrant hate crimes’ primary motivation self-defeating. doubling our quote also raises it in line with international norms. ban the commercial trading of firearms, moving their import to the not-for-profit sector (i.e. gun clubs) or to a personal activity. this removes the incentives behind the current gun city advertisements and tempers commercial incentives for importing guns. introduce a systematic buy-back program for weapons (guns, replica swords, etc). make owning a gun an inconvenience, doubly so in urban areas. this likely involves significantly tightening the licencing requirements (restricting types of guns, requiring advanced first aid and similar courses, etc) and random checks on licensees’ secure lockup measures, etc. it may also involve requiring licensees to report shooting trips, shooting range visits, etc, etc. done right, this may even have the side-effect of improving our conservation efforts by getting a better idea of who’s shooting what introduced and native animals gun range licenses should be managed in a similar way to alcohol licenses, with renewals, public notifications etc. update the rules around legal deposit so that when organisations and publishers selectively remove or update content from their websites they are required to notify the national library and that national library can broadcast this taken-down content. this attempts to preserve the public record by amplifying the streisand effect; efforts by public figures to sanitise their pasts without public apology need to be resisted. if we’re orchestrating large-scale take-downs of offensive new zealand content (such as videos of shooters shooting people) from the web, we need to reconcile this with certain statutory duties, such as the requirement that the national library collect and archive new zealand web content. collecting and archiving such offensive material may sound bizarre, but not doing so leaves us open to the kinds of revisionism that appears to fuel this kind of behaviour. if we’re going to continue to have religious education / schooling, it needs to address issues of religious hate rather than being a covert recruitment operation as it appears to be at the moment. we need to ask ourselves whether some of our brands (particularly sports brands) need to change their branding. the most effective way is probably the christchurch city council drafting a bylaw saying that local sports people and teams using it’s facilities must be named after animals with no negative connotations, with a limited year exception for existing teams to meet their contractual obligations. other councils would soon follow and giving a realistic time frame for renaming allows for planning around merchandising, team apparel and so forth. have an explicit fund for public actors (museums, galleries, libraries, academics, tohunga, imams, etc) to generate ‘content’ (everything from peer review papers to museum experiences, from school teaching resources to te ara articles, from poetry competitions to murals) on some of the deeper issues here. there’s a great need for young and old to engage with these issues, now and in the decades to come. find ways to amplify minority / oppressed voices. in theory blogs and social media were meant to be a way that we could find and the media pick up on theses voices in times like these, but across many media outlets this is manifestly not happening. we’re seeing straight white males write that new zealand has no discrimination problems and editors sending those pieces to print. we’re seeing ‘but he was such a nice young man’ stories. it’s no coincidence that the media outlets and pundits that are doing this are largely the same ones who have previously be accused of racism. we need to find ways to fix this, if necessary leveraging advertisers and/or adding conditions to spectrum licenses. we need to seriously reflect on whether an apology is needed in relation to the new zealand police raids, which now stand in a new light. the law of unintended consequences means that there will be side effects. the most obvious two from this list may be increased barriers to recreational gun clubs (including olympic pistol shooting, which is pretty hard to argue isn’t a genuine sport, but which has never really been all that big in new zealand) and the decreased amateur shooting of pest species (deer, pig, etc) on public conservation land (which is a more serious issue). posted by stuart yeates at : no comments: monday, october how would we know when it was time to move from tei/xml to tei/json? this post inspired by tei next by hugh cayless. how would we know when it was time to move from tei/xml to tei/json? if we stand back and think about what it is we (the tei community) need from the format : a common format for storing and communicating texts and augmentations of texts (transcriptions, manuscript description, critical apparatus, authority control, etc, etc.). a body of documentation for shared use and understanding of that format. a method of validating texts in the format as being in the format. a method of transforming texts in the format for computation, display or migration. the ability to reuse the work of other communities so we don't have to build everything for ourselves (unicode, ietf language tags, uris, parsers, validators, outsourcing providers who are tooled up to at least have a conversation about what we're trying to do, etc) [everyone will have their slightly different priorities for a list like this, but i'm sure we can agree that a list of important functionality could be drawn up and expanded to requirements list at a sufficiently granular level so we can assess different potential technologies against those items. ]  if we really want to ponder whether tei/json is the next step after tei/xml we need to compare the two approaches against such as list of requirements. personally i'm confident that tei/xml will come out in front right now. whether javascript has potential to replace xslt as the preferred method for really exciting interfaces to tei/xml docs is a much more open question, in my mind.   that's not to say that the criticisms of xml aren't true (they are) or valid (they are) or worth repeating (they are), but perfection is commonly the enemy of progress. posted by stuart yeates at : comments: sunday, october whither tei? the next thirty years this post is a direct response to some of the organisational issues raised in https://scalablereading.northwestern.edu/?p= i completely agree that we need to significantly broaden the base of the tei. a x campaign is a great idea, but better is a , x goal, or a , x goal. if we can reduce the cost to the normal range of a hardback text, most libraries will have delegated signing authority to individuals in acquisitions and only one person will need to be convinced, rather than a chain of people. but how could we scale , institutions? to scale like that, we to think (a) in terms of scale and (b) in terms of how to make it easy for members to be a part of us. scale ( ) a recent excellent innovation in the the tei community has been the appointment of a social media coordinator. this is a great thing and i’ve certainly learnt about happenings i would not have otherwise been exposed to. but by nature the concept of ‘a social media coordinator’ can’t scale (one person in one time zone with one set of priorities...). if we look at what mature large-scale open projects do for social media (debian, wikimedia, etc), planets are almost always part of the solution. a planet for tei might include (in no particular): x blog feeds from tei-specific projects x blog feeds from tei-using projects (limited to those posts tagged tei) x rss feed for changes to the tei wiki (limited to one / day each) x rss feed for jenkins server (limited to successful build only; limited to one / day each; tweaked to include full context and links) x rss feeds for github repositories not covered by jenkins server (limited to one / day each) x rss feeds for other sundry repositories (limited to one / day each) x blog feeds from tei-people (limited to those posts tagged tei) x rss feeds from tei-people’s zotero bibliographic databases (limited to those bibs tagged tei; limited to one / day each) x rss feed for official tei news x rss feed of edits for the tei article on each language wikipedia (limited to one / day each) x rss feed of announcements from the jtei x rss feed of new papers in the jtei … the diversity of the planet would be incredible compared to current views of the tei community and it’s all generated as a byproduct of what people are already doing. there might be some pressure to improve commit messages in some repos, but that might not be all bad. of course the whole planet is available as an rss feed and there are rss-to-facebook (and twitter, yammer, etc) converters if you wish to do tei in your favourite social media. if the need for a curated facebook feed remains, there is now a diverse constant feed of items to select within. this is a social media approach at scale. scale ( ) there is an annual international conference which is great to attend. there is a perception that engagement in the tei community requires attendance at the said conference. it’s a huge barrier to entry to small projects, particularly those in far-away places (think global south / developing world / etc). the tei community should seriously consider a policy for decision making that explicitly removes assumptions about attendances. something as simple as requiring draft papers intended for submission and agendas to be published and days in advance of meetings and a notice to be posted to tei-l. that would allow for thoughtful global input, scaling community from those who can attend an annual international conference to a wider group of people who care about the tei and have time to contribute. make it easy ( ) libraries (at least the library i work in and libraries i talk to) buy resources based on suggestions and lobbying by faculty but renew resources based largely on usage. if we want , libraries to have tei on automatic renewal we need usage statistics. the players in the field are sushi and counter (sushi is a harvesting system for counter). maybe the tei offers members stats at diverse tei-using sites. it’s not clear to me without deep investigation whether the tei could offer these stats to members at very little on-going cost to us, but it would be a member benefit that all acquisitions librarians, their supervisors and their auditors could understand and use to evaluate their tei membership subscription. i believe that that comparison would be favourable. of course, the tei-using sites generating the traffic are going to want at least some cut of the subs, even if it’s just a discount against their own membership (thus driving the number of participating sites up and the perceived member benefits up) and free support for the stats-generating infrastructure. for the sake of clarity: i’m not suggesting charging for access to content, i’m suggesting charging institutions for access to statistics related to access to the content by their users. make it easy ( ) academics using computers for research, whether or not they think or call the field digital humanities face a relatively large number of policies and rules imposed by their institutions, funders and governments. the tei community can / should be selling itself as he approach to meet these. copyright issues? have some corpora that are available under a cc license. need to prove academic outputs are archivable? here’s the pronom entry (note: i’m currently working on this) management doesn’t think the department as the depth of tei experience to enroll phds in tei-centric work? here’s a map of global tei people to help you find local backups in case staff move on. looking for a tei consultant? a different facet of the same map gives you what you need. you’re a random academic who knows nothing about the tei but assigned a tei-centric paper as part of a national research assessment exercise? here’s an outline of tei’s academic credentials. .... make it easy ( ) librarians love quality marc / marcxml records. many of us have quality marc / marcxml records for our tei-based web content. might this be offered as a member benefit? make it easy ( ) as far as i can tell the tei community makes very little attempt to reach out to academic communities other than ‘literature departments and cognate humanities disciplines’ attracting a more diverse range of skills and academics will increase our community in depth and breadth. outreach could be: something like css zen garden http://www.csszengarden.com/ only backed by tei rather than html a list of ‘hard problems’ that we face that various divergent disciplines might want to set as second or third year projects. each problem would have a brief description of the problem, pointers to things like: transformation for display for documents have five foot levels of footnotes, multiple obscure scripts, non-unicode characters, and so forth. schema / odd auto-generation from a corpus of documents ... engaging with a group like http://software-carpentry.org/ to ubiquify tei training .. end note i'm not advocating that any particular approach is the cure-all for everything that might be ailing the tei community, but the current status-quo is increasingly seeming like benign neglect. we need to change the way we think about tei as a community. posted by stuart yeates at : no comments: tuesday, october thoughts on the ndfnz wikipedia panel last week i was on an ndfnz wikipedia panel with courtney johnston, sara barham and mike dickison. having reflected a little and watched the youtube at https://www.youtube.com/watch?v= b x sqo ua i've got some comments to make (or to repeat, as the case may be). many people, including apparently including courtney, seemed to get the most enjoyment out of writing the ‘body text’ of articles. this is fine, because the body text (the core textual content of the article) is the core of what the encyclopaedia is about. if you can’t be bothered with wikiprojects, categories, infoboxes, common names and wikidata, you’re not alone and there’s no reason you need to delve into them to any extent. if you start an article with body text and references that’s fine; other people will to a greater or less extent do that work for you over time. if you’re starting a non-trivial number of similar articles, get yourself a prototype which does most of the stuff for you (i still use https://en.wikipedia.org/wiki/user:stuartyeates/sandbox/academicbio which i wrote for doing new zealand women academics). if you need a prototype like this, feel free to ask me. if you have a list of things (people, public art works, exhibitions) in some machine readable format (excel, csv, etc) it’s pretty straightforward to turn them into a table like https://en.wikipedia.org/wiki/wikipedia:wikiproject_new_zealand/requested_articles/craft#proposed_artists or https://en.wikipedia.org/wiki/enjoy_public_art_gallery send me your data and what kind of direction you want to take it. if you have a random thing that you think needs a wikipedia article, add to https://en.wikipedia.org/wiki/wikipedia:wikiproject_new_zealand/requested_articles  if you have a hundred things that you think need articles, start a subpage, a la https://en.wikipedia.org/wiki/wikipedia:wikiproject_new_zealand/requested_articles/craft and https://en.wikipedia.org/wiki/wikipedia:wikiproject_new_zealand/requested_articles/new_zealand_academic_biographies both completed projects of mine. sara mentioned that they were thinking of getting subject matter experts to contribute to relevant wikipedia articles. in theory this is a great idea and some famous subject matter experts contributed to britannica, so this is well-established ground. however, there have been some recent wikipedia failures particularly in the sciences. people used to ground-breaking writing may have difficulty switching to a genre where no original ideas are permitted and everything needs to be balanced and referenced. preparing for the event, i created a list of things the awesome dowse team could do as follow-ups to they craft artists work, but we never got to that in the session, so i've listed them here: [[list of public art in lower hutt]] since public art is out of copyright, someone could spend a couple of weeks taking photos of all the public art and creating a table with clickable thumbnail, name, artist, date, notes and gps coordinates. could probably steal some logic from somewhere to make the table convertible to a set of points inside a gps for a tour. publish from their archives a complete list of every exhibition ever held at the dowse since founding. each exhibition is a shout-out to the artists involved and the list can be used to check for potentially missing wikipedia articles. digitise and release photos taken at exhibition openings, capturing the people, fashion and feeling of those era. the hard part of this, of course, is labelling the people. reach out to their broader community to use the dowse blog to publish community-written obituaries and similar content (i.e. encourage the generation of quality secondary sources). engage with your local artists and politicians by taking pictures at dowse events, uploading them to commons and adding them to the subjects’ wikipedia articles—have attending a dowse exhibition opening being the easiest way for locals to get a new wikipedia image. i've not listed the 'digitise the collections' option, since at the end of the day, the value of this (to wikipedia) declines over time (because there are more and more alternative sources) and the price of putting them online declines. i'd much rather people tried new innovative things when they had the agility and leadership that lets them do it, because that's how the community as a whole moves forward. posted by stuart yeates at : no comments: labels: wikipedia thursday, october feedback on nlnz ‘digitalnz concepts api‘ this blog post is feedback on a recent blog post ‘introducing the digitalnz concepts api’ http://digitalnz.org/blog/posts/introducing-the-digitalnz-concepts-api by the national library of new zealand’s digitalnz team. some of the feedback also rests on conversations i've had with various nlnz staffers and other interested parties and a great stack of my own prejudices. i've not actually generated an api key and run the thing, since i'm currently on parental leave. parts of the concepts api look very much like authority control, but authority control is not mentioned in the blog post or the docs that i can find. it may be that there are good reasons for this (such as parallel comms in the pipeline for the authority control community) but there are also potentially very worrying reasons. clarity is needed here when the system goes live. all the urls in examples are http, but the ala’s freedom to read statement requires all practical measures be taken to ensure the confidentiality of the reader’s searching and reading. thus, if the api is to be used for real-time searching, https urls must be an option.  there is insufficient detail of of the identifiers in use. if i'm building a system to interoperate with the concepts api, which identifiers should i be keeping at my end to identify things that the digitalnz end? the clearer this definition is, the more robust this interoperability is likely to be, there’s a very good reason for the highly structured formats of identifiers such as isni and isbn. if nothing else a regexp would be very useful. personally i’d recommend browsing around http://id.loc.gov/ a little and rethinking the url structure too. there needs to be an insanely clear statement on the exact relationship between digitalnz concepts and those authority control systems mapped into viaf. both digitalnz concepts and viaf are semi-automated authority matching systems and if we’re not carefully they’ll end up polluting each other (as for example, dnb already has with gender data).  deep interoperability is going to require large-scale matching of digitalnz concepts with things in a wide variety of glam collections and incorporating identifiers into those collections’ metadata. that doesn't appear possible with the current licensing arrangements. maybe a flat-file dump (csv or json) of all the concepts under a cc license? urls to rights-obsessed partners could be excluded. if non-techies are to understand concepts, http://api.digitalnz.org/concepts/ is going to have to provide human-comprehensible content without an api key (i’m guessing that this is going to happen when it comes out of beta?) mistakes happen (see https://en.wikipedia.org/wiki/wikipedia:viaf/errors for recently found errors in viaf, for example). there needs to be a clear contact point and likely timescale for getting errors fixed.  having said all that, it looks great! posted by stuart yeates at : comments: monday, july bibframe adrian pohl ‏wrote some excellent thoughts about the current state of bibframe at http://www.uebertext.org/ / /name-authority-files-linked-data.html the following started as a direct response but, after limiting myself to where i felt i knew what i was talking about and felt i was being constructive, turned out to be much much narrower in scope. my primary concern in relation to bibframe is interlinking and in particular authority control. my concern is that a number of the players (bibframe, isni, gnd, orcid, wikipedia, etc) define key concepts differently and that without careful consideration and planning we will end up muddying our data with bad mappings. the key concepts in question are those for persons, names, identities, sex and gender (there may be others that i’m not aware of). let me give you an example. in the th century there was a mass creation of male pseudonyms to allow women to publish novels. a very few of these rose to such prominence that the authors outed themselves as women (think currer bell), but the overwhelming majority didn’t. in the late th and early st centuries, entries for the books published were created in computerised catalogue systems and some entries found their way into the gnd. my understanding is that the gnd assigned gender to entries based entirely on the name of the pseudonym (i’ll admit i don’t have a good source for that statement, it may be largely parable). when a new public-edited encyclopedia based on reliable sources called wikipedia arose, the gnd was very successfully cross-linked with wikipedia, with hundreds of thousands of articles were linked to the catalogues of their works. information that was in the gnd was sucked into a portion of wikipedia called wikidata. a problem now arose: there were no reliable sources for the sex information in gnd that had been sucked wikidata by gnd, the main part of wikipedia (which requires strict sources) blocked itself from showing wikidata sex information. a secondary problem was that the gnd sex data was in iso format (male/female/unknown/not applicable) whereas wikipedia talks not about sex but gender and is more than happy for that to include fa'afafine and similar concepts. fortunately, wikidata keeps track of where assertions come from, so the sex info can, in theory, be removed; but while people in wikipedia care passionately about this, no one on the wikidata side of the fence seems to understand what the problem is. stalemate. there were two separate issues here: a mismatch between the person in wikipedia and the pseudonym (i think) in gnd; and a mismatch between a cataloguer-assigned iso value and a free-form self-identified value.  the deeper the interactions between our respective authority control systems become, the more these issues are going to come up, but we need them to come up at the planning and strategy stages of our work, rather than halfway through (or worse, once we think we’ve finished). my proposed solution to this is examples: pick a small number of ‘hard cases’ and map them between as many pairs of these systems as possible. the hard cases should include at least: charlotte brontë (or similar); a contemporary author who has transitioned between genders and published broadly similar work under both identities; a contemporary author who publishes in different genre using different identities; ... the cases should be accompanied by instructions for dealing with existing mistakes found (and errors will be found, see https://en.wikipedia.org/wiki/wikipedia:viaf/errors for some of the errors recently found during he wikipedia/viaf matching). if such an effort gets off the ground, i'll put my hand up to do the wikipedia component (as distinct from the wikidata component). posted by stuart yeates at : comments: labels: bibframe, gnd, linked data, viaf, wikipedia wednesday, june a wikipedia strategy for the royal society of new zealand over the last hours i’ve had a very unsatisfactory conversation with the individual(s) behind the @royalsocietynz twitter account regarding wikipedia. rather than talk about what went wrong, i’d like to suggest a simple strategy that builds the society’s causes in the long term. first up, our resources: we have three wikipedia pages strongly related the society, royal society of new zealand, rutherford medal (royal society of new zealand) and hector memorial medal; we have a twitter account that appears to be widely followed; we have some employee of rsnz with no apparent wikipedia skills wanting to use wikipedia to advance the public-facing causes of the society, which are: “to foster in the new zealand community a culture that supports science, technology, and the humanities, including (without limitation)—the promotion of public awareness, knowledge, and understanding of science, technology, and the humanities; and the advancement of science and technology education: to encourage, promote, and recognise excellence in science, technology, and the humanities” the first thing to notice is that promoting the society is not a cause of the society, so no effort should be expending polishing the royal society of new zealand article (which would also breach wikipedia’s conflict of interest guidelines). the second thing to notice is that the two medal pages contain long lists of recipients, people whose contributions to science and the humanities in new zealand are widely recognised by the society itself. this, to me, suggests a strategy: leverage @royalsocietynz’s followers to improve the coverage of new zealand science and humanities on wikipedia: once a week for a month or two, @royalsocietynz tweets about a medal recipient with a link to their wikipedia biography. in the initial phase recipients are picked with reasonably comprehensive wikipedia pages (possibly taking steps to improve the gender and racial demographic of those covered to meet inclusion targets). by the end of this part followers of @royalsocietynz have been exposed to wikipedia biographies of new zealand people. in the second part, @royalsocietynz still tweets links to the wikipedia pages of recipients, but picks ‘stubs’ (wikipedia pages with little or almost no actual content). tweets could look like ‘hector medal recipient xxx’s biography is looking bare. anyone have secondary sources on them?’ in this part followers of @royalsocietynz are exposed to wikipedia biographies and the fact that secondary sources are needed to improve them. hopefully a proportion of @royalsocietynz’s followers have access to the secondary sources and enough crowdsourcing / generic computer confidence to jump in and improve the article. in the third part, @royalsocietynz picks recipients who don’t yet have a wikipedia biography at all. rather than linking to wikipedia, @royalsocietynz links to an obituary or other biography (ideally two or three) to get us started. in the fourth part @royalsocietynz finds other new zealand related lists and get the by-now highly trained editors to work through them in the same fashion. this strategy has a number of pitfalls for the unwary, including: wikipedia biographies of living people (blps) are strictly policed (primarily due to libel laws); the solution is to try new and experimental things out on the biographies of people who are safely dead. copyright laws prevent cut and pasting content into wikipedia; the solution is to encourage people to rewrite material from a source into an encyclopedic style instead. recentism is a serious flaw in wikipedia (if the society is years old, each of those decades should be approximately equally represented; coverage of recent political machinations or triumphs should not outweigh entire decades); the solution is to identify sources for pre-digital events and promote their use. systematic bias is an on-going problem in wikipedia, just as it is elsewhere; a solution in this case might be to set goals for coverage of women, māori and/or non-science academics; another solution might be for the society to trawl it's records and archives lists of  minorities to publish digitally. everything on wikipedia needs to be based on significant coverage in reliable sources that are independent of the subject; the solution is to start with the sources first. conflict of interest statement: i’m a high-active editor on wikipedia and am a significant contributor to all many of the wikipedia articles linked to from this post. posted by stuart yeates at : no comments: friday, december prep notes for ndf demonstration i didn't really have a presentation for my demonstration at the ndf, but the event team have asked for presentations, so here are the notes for my practice demonstration that i did within the library. the notes served as an advert to attract punters to the demo; as a conversation starter in the actual demo and as a set of bookmarks of the urls i wanted to open. depending on what people are interested in, i'll be doing three things *) demonstrating basic editing, perhaps by creating a page from the requested articles at http://en.wikipedia.org/wiki/wikipedia:wikiproject_new_zealand/requested_articles *) discussing some of the quality control processes i've been involved with (http://en.wikipedia.org/wiki/wikipedia:articles_for_deletion and http://en.wikipedia.org/wiki/new_pages_patrol) *) discussing how wikipedia handles authority control issues using redirects (https://secure.wikimedia.org/wikipedia/en/wiki/wikipedia:redirect ) and disambiguation (https://secure.wikimedia.org/wikipedia/en/wiki/wikipedia:disambiguation ) i'm also open to suggestions of other things to talk about. posted by stuart yeates at : no comments: labels: ndf, wikipedia thursday, december metadata vocabularies lodlam nz cares about at today's lodlam nz, in wellington, i co-hosted a vocabulary schema / interoperability session. i kicked off the session with a list of the metadata schema we care about and counts of how many people in the room cared about it. here are the results: library of congress / naco name authority list māori subject headings library of congress subject headings sonz linnean getty thesauri marsden research subject codes / anzrsc codes scot iwi hapū list australian pictorial thesaurus powerhouse object names thesaurus mesh this straw poll naturally only reflects on the participants who attended this particular session and counting was somewhat haphazard (people were still coming into the room), but is gives a sample of the scope. i don't recall whether the heading was "metadata we care about" or "vocabularies we care about," but it was something very close to that. posted by stuart yeates at : comments: wednesday, november unexpected advice during the ndf today i was in "digital initiatives in māori communities" put on the the talented honiana love and claire hall from the te reo o taranaki charitable trust about their work on he kete kōrero. at the end i asked a question "most of us [the audience] are in institutions with te reo māori holdings or cultural objects of some description. what small thing can we do to help enable our collections for the iwi and hapū source communities? use māori subject headings? the iwi / hapū list? geotagging? ..." quick-as-a-blink the response was "geotagging." if i understood the answer (given mainly by honiana) correctly, the point was that geotagging is much more useful because it's much more likely to be done right in contexts like this. presumably because geotagging lends itself to checking, validation and visualisations that make errors easy to spot in ways that these other metadata forms don't; it's better understood by those processing the documents and processing the data. i think it's fabulous that we're getting feedback from indigenous groups using information systems in indigenous contexts, particularly feedback about previous attempts to cater to their needs. if this is the experience of other indigenous groups, it's really important. posted by stuart yeates at : no comments: labels: māori, metadata, ndf saturday, november goodbye 'social-media' world you may or may not have noticed, but recently a number of 'social media' services have begun looking and working very similarly. facebook is the poster-child, followed by google+ and twitter. their modus operandi is to entice you to interact with family-members, friends and acquaintances and then leverage your interactions to both sell your attention advertisers and entice other members of you social circle to join the service. there are, naturally, a number of shiny baubles you get for participating it the sale of your eyeballs to the highest bidder, but recently i have come to the conclusion that my eyeballs (and those of my friends, loved ones and colleagues) are worth more. i'll be signing off google plus, twitter and facebook shortly. i my return for particular events, particularly those with a critical mass the size of jupiter, but i shall not be using them regularly. i remain serenely confident that all babies born in my extended circle are cute, i do not need to see their pictures. i will continue using other social media as before (email, wikipedia, irc, skype, etc) as usual. my deepest apologies to those who joined at least party on my account. posted by stuart yeates at : no comments: labels: facebook, social network, twitter sunday, november recreational authority control over the last week or two i've been having a bit of a play with ngā Ūpoko tukutuku / the māori subject headings (for the uninitiated, think of the widely used library of congress subject headings, done post-colonial and bi-lingually but in the same technology) the main thing i've been doing is trying to munge the msh into wikipedia (wikipedia being my addiction du jour). my thinking has been to increase the use of msh by taking it, as it were, to where the people are. i've been working with the english language wikipedia, since the māori language wikipedia has fewer pages and sees much less use. my first step was to download the msh in marc xml format (available from the website) and use xsl to transform it into a wikipedia table (warning: large page). when looking at that table, each row is a subject heading, with the first column being the the te reo māori term, the second being permutations of the related terms and the third being the scope notes. i started a discussion about my thoughts (warning: large page) and got a clear green light to create redirects (or 'related terms' in librarian speak) for msh terms which are culturally-specific to māori culture. i'm about % of the way through the terms of the msh and have redirects in the newly created category:redirects from māori language terms. that may sound pretty average, until you remember that institutions are increasingly rolling out tools such as summon, which use wikipedia redirects for auto-completion, taking these mappings to the heart of most māori speakers in higher and further education. i don't have a time-frame for the redirects to appear, but they haven't appeared in otago's summon, whereas redirects i created ~ two years ago have; type 'jack yeates' and pause to see it at work. posted by stuart yeates at : no comments: tuesday, august thoughts on "letter about the tei" from martin mueller thoughts on "letter about the tei" from martin mueller note: i am a member of the tei council, but this message is should be read as personal position at the time of writing, not a council position, nor the position of my employer. reading martin's missive was painful. i should have responded earlier, i think perhaps i was hoping someone else could say what i wanted to say and i could just say "me too." they haven't so i've become the someone else. i don't think that martin's "fairly radical model" is nearly radical enough. i'd like to propose a significantly more radical model as strawman: ) the tei shall maintain a document called the 'the tei principals.' the purpose of the tei is to advance the tei principals. ) institutional membership of the tei is open to groups which publish, collect and/or curate documents in formats released by the tei. institutional membership requires members acknowledge the tei principals and permits the members to be listed at http://www.tei-c.org/activities/projects/ and use the tei logos and branding. ) individual membership of the tei is open to individuals; individual membership requires members acknowledge the tei principals and subscribe to the tei mailing list at http://listserv.brown.edu/?a =tei-l. ) all business of the tei is conducted in public. business which needs be conducted in private (for example employment matters, contract negotiation, etc) shall be considered out of scope for the tei. ) changes to the structure of the tei will be discussed on the tei mailing list and put to a democratic vote with a voting period of at least one month, a two-thirds majority of votes cast is required to pass a motion, which shall be in english. ) groups of members may form for activities from time-to-time, such as members meetings, summer schools, promotions of the tei or collective digitisation efforts, but these groups are not the tei, even if the word 'tei' appears as part of their name. i'll admit that there are a couple of issues not covered here (such as who holds the ipr), but it's only a straw man for discussion. feel free to fire it as necessary. posted by stuart yeates at : comment: thursday, june unit testing framework for xsl transformations? i'm part of the tei community, which maintains an xml standard which is commonly transformed to html for presentation (more rarely pdf). the tei standard is relatively large but relatively well documented, the transformation to html has thus far been largely piecemeal (from a software engineering point of view) and not error free. recently we've come under pressure to introduce significantly more complexity into transformations, both to produce epub (which is wrapped html bundled with media and metadata files) and html (which can represent more of the formal semantics in tei). the software engineer in me sees unit testing the a way to reduce our errors while opening development up to a larger more diverse group of people with a larger more diverse set of features they want to see implemented. the problem is, that i can't seem to find a decent unit testing framework for xslt. does anyone know of one? our requirements are: xslt . ; free to use; runnable on our ubuntu build server; testing the transformation with multiple arguments; etc; we're already using: xsd, rng, dtd and schematron schemas, epubcheck, xmllint, standard html validators, etc. having the framework drive these too would be useful. the kinds of things we want to test include: footnotes appear once and only once footnotes are referenced in the text and there's a back link from the footnote to the appropriate point in the text internal references (tables of contents, indexes, etc) point somewhere language encoding used xml:lang survives from the tei to the html that all the paragraphs in the tei appear at least once in the html that local links work sanity check tables internal links within parallel texts .... any of many languages could be used to represent these tests, but ideally it should have a dom library and be able to run that library across entire directories of files. most of our community speak xml fluently, so leveraging that would be good. posted by stuart yeates at : no comments: wednesday, march is there a place for readers' collectives in the bright new world of ebooks? the transition costs of migrating from the world of books-as-physical-artefacts-of-pulped-tree to the world of books-as-bitstreams are going to be non-trivial. current attempts to drive the change (and by implication apportion those costs to other parties) have largely been driven by publishers, distributors and resellers of physical books in combination with the e-commerce and electronics industries which make and market the physical ebook readers on which ebooks are largely read. the e-commerce and electronics industries appear to see traditional publishing as an industry full of lumbering giants unable to compete with the rapid pace of change in the electronics industry and the associated turbulence in business models, and have moved to poach market-share. by-and-large they've been very successful. amazon and apple have shipped millions of devices billed as 'ebook readers' and pretty much all best-selling books are available on one platform or another. this top tier, however, is the easy stuff. it's not surprising that money can be made from the latest bodice-ripping page-turner, but most of the interesting reading and the majority of the units sold are outside the best-seller list, on the so-called 'long tail.' there's a whole range of books that i'm interested in that don't appear to be on the business plan of any of the current ebook publishers, and i'll miss them if they're not converted: the back catalogue of local poetry. almost nothing ever gets reprinted, even if the original has a tiny print run and the author goes on to have a wonderfully successful career. some gets anthologised and a few authors are big enough to have a posthumous collected works, when their work is no longer cutting edge. some fabulous theses. i'm thinking of things like: http://ir.canterbury.ac.nz/handle/ / , http://victoria.lconz.ac.nz/vwebv/holdingsinfo?bibid= and http://otago.lconz.ac.nz/vwebv/holdingsinfo?bibid= lots of te reo māori material (pick your local indigenous language if you're reading this outside new zealand) local writing by local authors. note that all of these are local content---no foreign mega-corporation is going to regard this as their home-turf. getting these documents from the old world to the new is going to require a local program run by (read funded by) locals. would you pay for these things? i would, if it gave me what i wanted. what is it that readers want? we're all readers, of one kind or another, and we all want a different range of things, but i believe that what readers want / expect out of the digital transition is: to genuinely own books. not to own them until they drop their ereader in the bath and lose everything. not to own them until a company they've never heard of goes bust and turns off a drm server they've never heard of. not to own them until technology moves on and some new format is in use. to own them in a manner which enables them to use them for at least their entire lifetime. to own them in a manner that poses at least a question for their heirs. a choice of quality books. quality in the broadest sense of the word. choice in the broadest sense of the word. universality is a pipe-dream, of course, but with releasing good books faster than i can read them. a quality recommendation service. we all have trusted sources of information about books: friends, acquaintances, librarians or reviewers that history have suggested have similar ideas as us about what a good read is. to get some credit for already having bought the book in pulp-of-murdered-tree work. lots of us have collections of wood-pulp and like to maintain the illusion that in some way that makes us well read. books bought to their attention based on whether they're worth reading, rather than what publishers have excess stock of. since the concept of 'stock' largely vanishes with the transition from print to digital this shouldn't be too much of a problem. confidentially for their reading habits. if you've never come across it, go and read the ala's the freedom to read statement a not-for-profit readers' collective it seems to me that the way to manage the transition from the old world to the new is as a not-for-profit readers' collective. by that i mean a subscription-funded system in which readers sign up for a range of works every year. the works are digitised by the collective (the expensive step, paid for up-front), distributed to the subscribers in open file formats such as epub (very cheap via the internet) and kept in escrow for them (a tiny but perpetual cost, more on this later). authors, of course, need to pay their mortgage, and part of the digitisation would be obtaining the rights to the work. authors of new work would be paid a 'reasonable' sum, based on their statue as authors (i have no idea what the current remuneration of authors is like, so i won't be specific). the collective would acquire (non-exclusive) the rights to digitise the work if not born digital, to edit it, distribute it to collective members and to sell it to non-members internationally (i.e. distribute it through 'conventional' digital book channels). in the case of sale to non-members through conventional digital book channels the author would get a cut. sane and mutually beneficial deals could be worked out with libraries of various sizes. generally speaking, i'd anticipate the rights to digitise and distribute in-copyright but out-of-print poetry would would be fairly cheap; the rights to fabulous old university theses cheaper; and rights to out-of-copyright materials are, of course, free. the cost of rights to new novels / poetry would hugely depend on statue of the author and the quality of the work, which is where the collective would need to either employ a professional editor to make these calls or vote based on sample chapters / poems or some combination of the two. costs of quality digitisation is non-trivial, but costs are much lower in bulk and dropping all the time. depending on the platform in use, members of the collective might be recruited as proof-readers for ocr errors. that leaves the question of how to fund the the escrow. the escrow system stores copies of all the books the collective has digitised for the future use of the collectives' members and is required to give efficacy to the promise that readers really own the books. by being held in escrow, the copies survive the collective going bankrupt, being wound up, or evolving into something completely different, but requires funding. the simplest method of obtaining funding would be to align the collective with another established consumer of local literature and have them underwrite the escrow, a university, major library, or similar. the difference between a not-for-profit readers' collective and an academic press? of hundreds of years, major universities have had academic presses which publish quality content under the universities' auspices. the key difference between the not-for-profit readers' collective i am proposing and an academic press is that the collective would attempt to publish the unpublished and out-of-print books that the members wanted rather than aiming to meet some quality criterion. i acknowledge a popularist bias here, but it's the members who are paying the subscriptions. which links in the book chain do we want to cut out? there are some links in the current book production chain which we need to keep, there are others wouldn't have a serious future in a not-for-profit. certainly there is a role for judgement in which works to purchase with the collective's money. there is a role for editing, both large-scale and copy-editing. there is a role for illustrating works, be it cover images or icons. i don't believe there is a future for roles directly relating to the production, distribution, accounting for, sale, warehousing or pulping of physical books. there may be a role for the marketing books, depending on the business model (i'd like to think that most of the current marketing expense can be replaced by combination of author-driven promotion and word-of-month promotion, but i've been known to dream). clearly there is an evolving techie role too. the role not mentioned above that i'd must like to see cut, of course, is that of the multinational corporation as gatekeeper, holding all the copyrights and clipping tickets (and wings). posted by stuart yeates at : comments: saturday, november howto: deep linking into the nzetc site as the heaving mass of activity that is the mixandmash competition heats up, i have come to realise that i should have better documented a feature of the nzetc site, the ability to extract the tei xml annotated with the ids for deep linking. our content's archival form is tei xml, which we massage for various output formats. there is a link from the top level of every document to the tei for the document, which people are welcome to use in their mashups and remixes. unfortunately, between that tei and our html output is a deep magic that involves moving footnotes, moving page breaks, breaking pages into nicely browsable chunks, floating marginal notes, etc., and this makes it hard to deep link back to the website from anything derived from that tei. there is another form of the tei available which is annotated with whether or not each structural element maps : to an html: nzetc:has-text and what the id of that page is: nzetc:id this annotated xml is found by replacing the 'tei-source' in the url with 'etexts' thus for the laws of england, compiled and translated into the māori language at http://www.nzetc.org/tm/scholarly/tei-gorlaws.html there is the raw tei at http://www.nzetc.org/tei-source/gorlaws.xml and the annotated tei at http://www.nzetc.org/etexts/gorlaws.xml looking in the annotated tei at http://www.nzetc.org/etexts/gorlaws.xml we see for example:
    this means that this div has it's own page (because it has nzetc:has-text="true" and that the id of that page is tei-gorlaws-t -g -t -front -tp (because of the nzetc:id="tei-gorlaws-t -g -t -front -tp "). the id can be plugged into: http://www.nzetc.org/tm/scholarly/.html to get a url for the html. thus the url for this div is http://www.nzetc.org/tm/scholarly/tei-gorlaws-t -g -t -front -tp .html this process should work for both text and figures. happy remixing everyone! posted by stuart yeates at : comment: sunday, november epubs and quality you may have heard news about the release of "bookserver" by the good folks at the internet archive. this is a drm-free epub ecosystem, initially stocked with the prodigious output of google's book scanning project and the internet archive's own book scanning project. to see how the nzetc stacked up against the much larger (and better funded) collection i picked one of our maori language dictionaries. our maori and pacifica dictionaries month-after-month make up the bulk of our top five must used resources, so they're in-demand resources. they're also an appropriate choice because when they were encoded by the nzetc into tei, the decision was made not to use full dictionary encoding, but a cheaper/easier tradeoff which didn't capture the linguistic semantics of the underlying entries, but treated them as typeset text. i was interested in how well this tradeoff was wearing. i did my comparison using the new firefox epub plugin, things will be slightly different if you're reading these epubs on an iphone or kindle. the epub i looked at was a dictionary of the maori language by herbert w. williams. the nzetc has the sixth edition. there are two versions of the work on bookserver. a second edition scanned by google books (original at the new york public library) and a third edition scanned by the internet archive in association with microsoft (original in the university of california library system). all the processing of both works appear to be been done in the u.s. the original print used macrons (nzetc), acutes (google) and breves (internet archive) to mark long vowels. find them here. lets take a look at some entries from each, starting at 'kapukapu': nzetc: kapukapu. . n. sole of the foot. . apparently a synonym for kaunoti, the firestick which was kept steady with the foot. tena ka riro, i runga i nga hanga a taikomako, i te kapukapu, i te kaunoti (m. ). . v.i. curl (as a wave). ka kapukapu mai te ngaru. . gush. . gleam, glisten. katahi ki te huka o huiarau, kapukapu ana tera. kapua, n. . cloud, bank of clouds. e tutakitaki ana nga kapua o te rangi, kei runga te mangoroa e kopae pu ana (p.). . a flinty stone. = kapuarangi. . polyprion oxygeneios, a fish. = hapuku. . an edible species of fungus. . part of the titi pattern of tattooing. kapuarangi, n. a variety of matā, or cutting stone, of inferior quality. = kapua, . kāpuhi, kāpuhipuhi, n. cluster of branches at the top of a tree. kāpui, v.t. . gather up in a bunch. ka kapuitia nga rau o te kiekie, ka herea. . lace up or draw in the mouth of a bag. . earth up crops, or cover up embers with ashes to keep them alight. kāpuipui, v.t. gather up litter, etc. kāpuka, n. griselinia littoralis, a tree. = papauma. kapukiore, n. coprosma australis, a shrub. = kanono. kāpuku = kōpuku, n. gunwale. google books: kapukapu, s. sole of the foot, eldpukdpu, v. to curl* as a wave. ka kapukapu mai te ngaru; the wave curls over. kapunga, v. to take up with both hands held together, kapungatia he kai i te omu; take up food from the oven. (b. c, kapura, s. fire, -' tahuna he kapura ; kindle a fire. kapurangi, s. rubbish; weeds, kara, s. an old man, tena korua ko kara ? how are you and the old man ? kara, s> basaltic stone. he kara te kamaka nei; this stone is kara. karaha, s. a calabash. ♦kardhi, *. glass, internet archive: kapukapu, n. sole of the foot. kapukapu, v. i. . curl (as a wave). ka kapukapu mai te ngaru. . gush. kakapii, small basket for cooked food. kapua, n. cloud; hank of clouds, kapunga, n. palm of the hand. kapunga, \. t. take up in both hands together. kapiira, n. fire. kapiiranga, n. handful. kapuranga, v. t. take up by hand-fuls. kapurangatia nga otaota na e ia. v. i. dawn. ka kapuranga te ata. kapur&ngi, n. rubbish; uveds. i. k&r&, n. old man. tena korua ko kara. ii. k&r&, n. secret plan; conspiracy. kei te whakatakoto kara mo te horo kia patua. k&k&r&, d. scent; smell. k&k&r&, a. savoury; odoriferous. k^ar&, n. a shell-iish. unlike the other two, the nzetc version has accents, bold and italics in the right place. it' the only one with a workable and useful table of contents. it is also edition which has been extensively revised and expanded. google's second edition has many character errors, while the internet archive's third edition has many 'á' mis-recognised as '&.' the google and internet achive versions are also available as pdfs, but of course, without fancy tables of contents these pdfs are pretty challenging to navigate and because they're built from page images, they're huge. it's tempting to say that the nzetc version is better than either of the others, and from a naïve point of it is, but it's more accurate to say that it's different. it's a digitised version of a book revised more than a hundred years after the second edition scanned by google books. people who're interested in the history of the language are likely to pick the edition over the edition nine times out of ten. technical work is currently underway to enable third parties like the internet archive's bookserver to more easily redistribute our epubs. for some semi-arcane reasons it's linked to upcoming new search functionality. posted by stuart yeates at : no comments: labels: library, macrons, maori, nzetc what librarything metadata can the nzetc reasonable stuff inside it's cc'd epubs? this is the second blog following on from an excellent talk about librarything by librarything's tim given the vuw in wellington after his trip to lianza. the nzetc publishes all of it's works as epubs (a file format primarily aimed at mobile devices), which are literally processed crawls of it's website bundled with some metadata. for some of the nzetc works (such as erewhon and the life of captain james cook), librarything has a lot more metadata than the nzetc, becuase many librarything users have the works and have entered metadata for them. bundling as much metadata into the epubs makes sense, because these are commonly designed for offline use---call-back hooks are unlikely to be avaliable. so what kinds of data am i interested in? ) traditional bibliographic metadata. both lt and nzetc have this down really well. ) images. lt has many many cover images, nzetc has images of plates from inside many works too. ) unique identification (isbns, issns, work ids, etc). lt does very well at this, nzetc very poorly ) genre and style information. lt has tags to do fancy statistical analysis on, and does. nzetc has full text to do fancy statistical analysis on, but doesn't. ) intra-document links. lt has work as the smallest unit. nzetc reproduces original document tables of contents and indexes, cross references and annotations. ) inter-document links. lt has none. nzetc captures both 'mentions' and 'cites' relationships between documents. while most current-generation ebook readers, of course, can do nothing with most of this metadata, but i'm looking forward to the day when we have full-fledged openurl resolvers which can do interesting things, primarily picking the best copy (most local / highest quality / most appropiate format / cheapest) of a work to display to a user; and browsing works by genre (librarything does genre very well, via tags). posted by stuart yeates at : comment: labels: epubs, library, librarything, nzetc thursday, october interlinking of collections: the quest continues after an excellent talk today about librarything by librarything's tim, i got enthused to see how librarything stacks up against other libraries for having matches in it's authority control system for entities we (the nzetc) care about. the answer is averagely. for copies of printed books less than a hundred years old (or reprinted in the last hundred years), and their authors, librarything seems to do every well. these are the books likely to be in active circulation in personal libraries, so it stands to reason that these would be well covered. i tried half a dozen books from our nineteenth-century novels collection, and most were missing, erewhon, of course, was well represented. librarything doesn't have the "treaty of waitangi" (a set of manuscripts) but it does have "facsimiles of the treaty of waitangi." it's not clear to me whether these would be merged under their cataloguing rules. coverage of non-core bibliographic entities was lacking. places get a little odd. sydney is "http://www.librarything.com/place/sydney,% new% south% wales,% australia" but wellington is "http://www.librarything.com/place/wellington" and anzac cove appears to be is missing altogether. this doesn't seem like a sane authority control system for places, as far as i can see. people who are the subjects rather than the authors of books didn't come out so well. i couldn't find abel janszoon tasman, pōtatau te wherowhero or charles frederick goldie, all of which are near and dear to our hearts. here is the spreadsheet of how different web-enabled systems map entities we care about. correction: it seems that the correct url for wellington is http://www.librarything.com/place/wellington,% new% zealand which brings sanity back. posted by stuart yeates at : no comments: labels: authority, community building, metadata, semantic web, social network, taxonomy saturday, september ebook readers need openurl resolvers everyone's talking about the next generation of ebook readers having larger reading area, more battery life and more readable screen. i'd give up all of those, however, for an ebook reader that had an internal openurl resolver. openurl is the nifty protocol that libraries use to find the closest copy of a electronic resources and direct patrons to copies that the library might have already licensed from commercial parties. it's all about finding the version of a resource that is most accessible to the user, dynamically. say i've loaded ebooks into my ebook reader: a couple of encyclopedias and dictionaries; a stack of books i was meant to read in school but only skimmed and have been meaning to get back to; current block-busters; guidebooks to the half-dozen countries i'm planning on visiting over the next couple of years; classics i've always meant to read (tolstoy, chaucer, cervantes, plato, descartes, nietzsche); and local writers (baxter, duff, ihimaera, hulme, ...). my ebooks by nietzsche are going to refer to books by descartes and plato; my ebooks by descartes are going to refer to books by plato; my encyclopaedias are going to refer to pretty much everything; most of the works in translation are going to contain terms which i'm going to need help with (help which theencyclopedias and dictionaries can provide). ask yourself, though, whether you'd want to flick between works on the current generation of readers---very painful, since these devices are not designed for efficient navigation between ebooks, but linear reading of them. you can't follow links between them, of course, because on current systems links must point either with the same ebook or out on to the internet---pointing to other ebooks on the same device is verboten. openurl can solve this by catching those urls and making them point to local copies of works (and thus available for free even when the internet is unavailable) where possible while still retaining their until ebook readers have a mechanism like this ebooks will be at most a replacement only for paperback novels---not personal libraries. posted by stuart yeates at : comment: older posts home subscribe to: posts (atom) about me stuart yeates view my complete profile blog archive ▼  ( ) ▼  march ( ) #christchurchmosqueshootings ►  ( ) ►  october ( ) ►  ( ) ►  october ( ) ►  ( ) ►  july ( ) ►  ( ) ►  june ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  august ( ) ►  june ( ) ►  march ( ) ►  ( ) ►  november ( ) ►  ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) shared google reader items simple theme. powered by blogger. dshr's blog: techno-hype part dshr's blog i'm david rosenthal, and this is a place to discuss the work i'm doing in digital preservation. tuesday, november , techno-hype part don't, don't, don't, don't believe the hype! public enemy new technologies are routinely over-hyped because people under-estimate the gap between a technology that works and a technology that is in everyday use by normal people. you have probably figured out that i'm skeptical of the hype surrounding blockchain technology. despite incident-free years spent routinely driving in company with waymo's self-driving cars, i'm also skeptical of the self-driving car hype. below the fold, an explanation. clearly, self-driving cars driven by a trained self-driving car driver in bay area traffic work fine: we've known for several years now that waymo's (previously google's) cars can handle most road conditions without a safety driver intervening. last year, the company reported that its cars could go about , miles on california roads, on average, between human interventions. crashes per m miles waymo's cars are much safer than almost all human drivers: waymo has logged over two million miles on u.s. streets and has only had fault in one accident, making its cars by far the lowest at-fault rate of any driver class on the road— about times lower than our safest demographic of human drivers ( – year-olds) and times lower than new drivers, not to mention the obvious benefits gained from eliminating drunk drivers. however, waymo’s vehicles have a knack for getting hit by human drivers. when we look at total accidents (at fault and not), the waymo accident rate is higher than the accident rate of most experienced drivers ... most of these accidents are fender-benders caused by humans, with no fatalities or serious injuries. the leading theory is that waymo’s vehicles adhere to the letter of traffic law, leading them to brake for things they are legally supposed to brake for (e.g., pedestrians approaching crosswalks). since human drivers are not used to this lawful behavior, it leads to a higher rate of rear-end collisions (where the human driver is at-fault). clearly, this is a technology that works. i would love it if my grand-children never had to learn to drive, but even a decade from now i think they will still need to. but, as google realized some time ago, just being safer on average than most humans almost all the time is not enough for mass public deployment of self-driving cars. back in june, john markoff wrote: three years ago, google’s self-driving car project abruptly shifted from designing a vehicle that would drive autonomously most of the time while occasionally requiring human oversight, to a slow-speed robot without a brake pedal, accelerator or steering wheel. in other words, human driving was no longer permitted. the company made the decision after giving self-driving cars to google employees for their work commutes and recording what the passengers did while the autonomous system did the driving. in-car cameras recorded employees climbing into the back seat, climbing out of an open car window, and even smooching while the car was in motion, according to two former google engineers. “we saw stuff that made us a little nervous,” chris urmson, a roboticist who was then head of the project, said at the time. he later mentioned in a blog post that the company had spotted a number of “silly” actions, including the driver turning around while the car was moving. johnny luu, a spokesman for google’s self-driving car effort, now called waymo, disputed the accounts that went beyond what mr. urmson described, but said behavior like an employee’s rummaging in the back seat for his laptop while the car was moving and other “egregious” acts contributed to shutting down the experiment. gareth corfield at the register adds: google binned its self-driving cars' "take over now, human!" feature because test drivers kept dozing off behind the wheel instead of watching the road, according to reports. "what we found was pretty scary," google waymo's boss john krafcik told reuters reporters during a recent media tour of a waymo testing facility. "it's hard to take over because they have lost contextual awareness." ... since then, said reuters, google waymo has focused on technology that does not require human intervention. timothy b. lee at ars technica writes: waymo cars are designed to never have anyone touch the steering wheel or pedals. so the cars have a greatly simplified four-button user interface for passengers to use. there are buttons to call waymo customer support, lock and unlock the car, pull over and stop the car, and start a ride. but, during a recent show-and-tell with reporters, they weren't allowed to press the "pull over" button: a waymo spokesman tells ars that the "pull over" button does work. however, the event had a tight schedule, and it would have slowed things down too much to let reporters push it. google was right to identify the "hand-off" problem as essentially insoluble, because the human driver would have lost "situational awareness". jean-louis gassée has an appropriately skeptical take on the technology, based on interviews with chris urmson: google’s director of self-driving cars from to late (he had joined the team in ). in a sxsw talk in early , urmson gives a sobering yet helpful vision of the project’s future, summarized by lee gomesin an ieee spectrum article [as always, edits and emphasis mine]: “not only might it take much longer to arrive than the company has ever indicated — as long as years, said urmson — but the early commercial versions might well be limited to certain geographies and weather conditions. self-driving cars are much easier to engineer for sunny weather and wide-open roads, and urmson suggested the cars might be sold for those markets first.” but the problem is actually much worse than either google or urmson say. suppose, for the sake of argument, that self-driving cars three times as good as waymo's are in wide use by normal people. a normal person would encounter a hand-off once in , miles of driving, or less than once a year. driving would be something they'd be asked to do maybe times in their life. even if, when the hand-off happened, the human was not "climbing into the back seat, climbing out of an open car window, and even smooching" and had full "situational awareness", they would be faced with a situation too complex for the car's software. how likely is it that they would have the skills needed to cope, when the last time they did any driving was over a year ago, and on average they've only driven times in their life? current testing of self-driving cars hands-off to drivers with more than a decade of driving experience, well over , miles of it. it bears no relationship to the hand-off problem with a mass deployment of self-driving technology. remember the crash of af ? the aircraft crashed after temporary inconsistencies between the airspeed measurements – likely due to the aircraft's pitot tubes being obstructed by ice crystals – caused the autopilot to disconnect, after which the crew reacted incorrectly and ultimately caused the aircraft to enter an aerodynamic stall, from which it did not recover. this was a hand-off to a crew that was highly trained, but had never before encountered a hand-off during cruise. what this means is that unrestricted mass deployment of self-driving cars requires level autonomy: level _ full automation system capability: the driverless car can operate on any road and in any conditions a human driver could negotiate. • driver involvement: entering a destination. note that waymo is just starting to work with level cars (the link is to a fascinating piece by alexis c. madrigal on waymo's simulation and testing program). there are many other difficulties on the way to mass deployment, outlined by timothy b. lee at ars technica. although waymo is actually testing level cars in the benign environment of phoenix, az: waymo, the autonomous car company from google’s parent company alphabet, has started testing a fleet of self-driving vehicles without any backup drivers on public roads, its chief executive officer said tuesday. the tests, which will include passengers within the next few months, mark an important milestone that brings autonomous vehicle technology closer to operating without any human intervention. but the real difficulty is this. the closer the technology gets to level , the worse the hand-off problem gets, because the human has less experience. incremental progress in deployments doesn't make this problem go away. self-driving taxis in restricted urban areas maybe in the next five years; a replacement for the family car, don't hold your breath. my grand-children will still need to learn to drive. posted by david. at : am labels: techno-hype comments: david. said... cecilia kang's where self-driving cars go to learn looks at the free-for-all testing environment in arizona: "over the past two years, arizona deliberately cultivated a rules-free environment for driverless cars, unlike dozens of other states that have enacted autonomous vehicle regulations over safety, taxes and insurance. arizona took its anything-goes approach while federal regulators delayed formulating an overarching set of self-driving car standards, leaving a gap for states. the federal government is only now poised to create its first law for autonomous vehicles; the law, which echoes arizona’s stance, would let hundreds of thousands of them be deployed within a few years and would restrict states from putting up hurdles for the industry." what could possibly go wrong? november , at : pm mike k said... it seems to me that that there's a "good enough" solution for mass deployment before stage is in production, provided that the "pull over button" works and that in all situations where you invoke concern about a human-driver-takeover, the ai can reliably default to avoiding hitting anything while it decelerates. that is, if the ai realizes it doesn't know how to handle the situation normally, it accepts defeat and comes to stop. (that seems to be the norm during current testing, based on my read of madrigal's waymo article.) if that's the case, humans don't suddenly have to take over a moving vehicle that's already in a boundary situation. instead, having stopped, the ai can then reassess (if the confounding factors have changed) or the human can slowly drive out of proximity. or perhaps such situations become akin to a flat tire is now--some people are capable of recovering on their own, others wait for roadside assistance. coming to a stop on, or even alongside, a highway is far from ideal, i concede, and will lead to more rear-enders as long as humans still drive some percentage of vehicles. but rear end accidents are far less likely to cause fatalities than other types (citation needed,) so that seems like an acceptable trade-off during a transitional period. all that said, i'm cautiously pessimistic about self-driving cars in our lifetimes. i'm more worried about bugs, outages, and hacking preventing widespread implementation. november , at : pm david. said... "how much preparation have federal transportation authorities carried out to meet the challenge of the advent of self-driving cars and trucks? not nearly enough, according to a new -page report by the government accountability office, a congressional watchdog agency." reports paul feldman. and: "the u.s. house of representatives has approved a bill allowing self-driving vehicles to operate on public roadways with minimal government supervision. similar legislation has been ok’d by a senate committee, but is currently stalled by a handful of senators concerned about safety provisions." december , at : am david. said... in increasing order of skepticism, we have first a decade after darpa: our view on the state of the art in self-driving cars by bryan salesky, ceo, argo ai (ford's self-driving effort): "those who think fully self-driving vehicles will be ubiquitous on city streets months from now or even in a few years are not well connected to the state of the art or committed to the safe deployment of the technology." second, after peak hype, self-driving cars enter the trough of disillusionment by aarian marshall at wired using gartner’s “hype cycle” methodology: "volvo’s retreat is just the latest example of a company cooling on optimistic self-driving car predictions. in , google ceo sergey brin said even normies would have access to autonomous vehicles in fewer than five years—nope. those who shelled out an extra $ , for tesla’s enhanced autopilot are no doubt disappointed by its non-appearance, nearly six months after its due date. new ford ceo jim hackett recently moderated expectations for the automaker’s self-driving service, which his predecessor said in would be deployed at scale by . “we are going to be in the market with products in that time frame,” he told the san francisco chronicle. “but the nature of the romanticism by everybody in the media about how this robot works is overextended right now.”" and third wired: self driving car hype crashes into harsh realities by yves smith at naked capitalism, which is the only piece to bring up the hand-off problem: "the fudge is to have a human at ready to take over the car in case it asks for help. first, as one might infer, the human who is suddenly asked to intervene is going to have to quickly asses the situation. the handoff delay means a slower response than if a human had been driving the entire time. second, and even worse, the human suddenly asked to take control might not even see what the emergency need is. third, the car itself might not recognize that it is about to get into trouble." all three pieces are worth reading. december , at : am david. said... more skepticism from christian wolmar: “this is a fantasy that has not been thought through, and is being promoted by technology and auto manufacturers because tech companies have vast amounts of footloose capital they don’t know what to do with, and auto manufacturers are terrified they’re not on board with the new big thing,” he said. “so billions are being spent developing technology that nobody has asked for, that will not be practical, and that will have many damaging effects.” he has an entire book on the topic. january , at : am david. said... tim bradshaw reports: "autonomous vehicles are in danger of being turned into “weapons”, leading governments around the world to block cars operated by foreign companies, the head of baidu’s self-driving car programme has warned. qi lu, chief operating officer at the chinese internet group, said security concerns could become a problem for global carmakers and technology companies, including the us and china. “it has nothing to do with any particular government — it has to do with the very nature of autonomy,” he said on the sidelines of the consumer electronics show last week. “you have an object that is capable of moving by itself. by definition, it is a weapon.” charlie stross figured this out ten years ago. january , at : am david. said... “we will have autonomous cars on the road, i believe within the next months,” [uber ceo khosrowshahi} said. ... for example, phoenix, there will be % of cases where the company may not have everything mapped perfectly, or the weather might not be perfect, or there could be other factors that will mean uber will opt to send a driver. “but in percent of cases, we’ll send an autonomous car,” khosrowshahi said, when everything’s just right, and still the user will be able to choose whether they get an av or a regular car." reports darrell etherington at techcrunch. given that uber loses $ b/yr and khosrowshahi has months to ipo it, you should treat everything he says as pre-ipo hype. january , at : pm david. said... uber and lyft want you banned from using your own self-driving car in urban areas is the title of a piece by ethan baron at siliconbeat. the geometric impossibility of replacing mass transit with fleets of autonomous cars is starting to sink in. february , at : pm david. said... ross marchand at real clear policy looks into waymo's reported numbers: "the company’s headline figures since are certainly encouraging, with “all reported disengagements” dropping from . per thousand miles (ptm) driven to . ptm. broken down by category, however, this four-fold decrease in disengagements appears very uneven. while the rate of technology failures has fallen by more than percent (from . to . ), unsafe driving rates decreased only by percent (from . to . ). ... but the ability of cars to analyze situations on the road and respond has barely shown improvement since the beginning of . in key categories, like “incorrect behavior prediction” and “unwanted maneuver of the vehicle,” waymo vehicles actually did worse in than in ." february , at : am david. said... and also the most cutting-edge cars on the planet require an old-fashioned handwashing: "for example, soap residue or water spots could effectively "blind" an autonomous car. a traditional car wash's heavy brushes could jar the vehicle's sensors, disrupting their calibration and accuracy. even worse, sensors, which can cost over $ , , could be broken. a self-driving vehicle's exterior needs to be cleaned even more frequently than a typical car because the sensors must remain free of obstructions. dirt, dead bugs, bird droppings or water spots can impact the vehicle's ability to drive safely." february , at : am david. said... "[california]’s department of motor vehicles said monday that it was eliminating a requirement for autonomous vehicles to have a person in the driver’s seat to take over in the event of an emergency. ... the new rules also require companies to be able to operate the vehicle remotely ... and communicate with law enforcement and other drivers when something goes wrong." reports daisuke wakabayashi at the nyt. note that these are not level autonomous cars, they are remote-controlled. february , at : pm david. said... "cruise vehicles "can't easily handle two-way residential streets that only have room for one car to pass at a time. that's because cruise cars treat the street as one lane and always prefer to be in the center of a lane, and oncoming traffic causes the cars to stop." other situations that give cruise vehicles trouble: - distinguishing between motorcycles and bicycles - entering tunnels, which can interfere with the cars' gps sensors - u-turns - construction zones" from timothy b. lee's new report highlights limitations of cruise self-driving cars. it is true that gm's cruise is trying to self-drive in san francisco, which isn't an easy place for humans. but they are clearly a long way from waymo's level, even allowing for the easier driving in silicon valley and phoenix. march , at : pm david. said... "while major technology and car companies are teaching cars to drive themselves, phantom auto is working on remote control systems, often referred to as teleoperation, that many see as a necessary safety feature for the autonomous cars of the future. and that future is closer than you might think: california will allow companies to test autonomous vehicles without a safety driver — as long as the car can be operated remotely — starting next month." from john r. quain's when self-driving cars can’t help themselves, who takes the wheel?. so the car is going to call tech support and be told "all our operators are busy driving other cars. you call is important to us, please don't hang up." march , at : am david. said... "police in tempe, arizona, have released dash cam footage showing the final seconds before an uber self-driving vehicle crashed into -year-old pedestrian elaine herzberg. she died at the hospital shortly afterward. ... tempe police also released internal dash cam footage showing the car's driver, rafaela vasquez, in the seconds before the crash. vasquez can be seen looking down toward her lap for almost five seconds before glancing up again. almost immediately after looking up, she gets a look of horror on her face as she realizes the car is about to hit herzberg." writes timothy b. lee at ars technica. in this case the car didn't hand off to the human, but even if it had the result would likely have been the same. march , at : am david. said... timothy b. lee at ars technica has analyzed the video and writes video suggests huge problems with uber’s driverless car program: "the video shows that herzberg crossed several lanes of traffic before reaching the lane where the uber car was driving. you can debate whether a human driver should have been able to stop in time. but what's clear is that the vehicle's lidar and radar sensors—which don't depend on ambient light and had an unobstructed view—should have spotted her in time to stop. on top of that, the video shows that uber's "safety driver" was looking down at her lap for nearly five seconds just before the crash. this suggests that uber was not doing a good job of supervising its safety drivers to make sure they actually do their jobs." march , at : pm david. said... "in a blogpost, tesla said the driver of the sport-utility model x that crashed in mountain view, -year-old apple software engineer wei huang, “had received several visual and one audible hands-on warning earlier in the drive and the driver’s hands were not detected on the wheel for six seconds prior to the collision." reports the guardian. the car tried to hand off to the driver but he didn't respond. march , at : pm david. said... “technology does not eliminate error, but it changes the nature of errors that are made, and it introduces new kinds of errors,” said chesley sullenberger, the former us airways pilot who landed a plane in the hudson river in after its engines were struck by birds and who now sits on a department of transportation advisory committee on automation. “we have to realize that it’s not a panacea.” from the new york times editorial the bright, shiny distraction of self-driving cars. april , at : pm david. said... in the way we regulate self-driving cars is broken—here’s how to fix it timothy b. lee sets out a very pragmatic approach to regulation of self-driving cars. contrast this with the current rush to exempt them from regulations! for example: "anyone can buy a conventional car and perform safety tests on it. academic researchers, government regulators, and other independent experts can take a car apart, measure its emissions, probe it for computer security flaws, and subject it to crash tests. this means that if a car has problems that aren't caught (or are even covered up) by the manufacturer, they're likely to be exposed by someone else. but this kind of independent analysis won't be an option when waymo introduces its driverless car service later this year. waymo's cars won't be for sale at any price, and the company likely won't let customers so much as open the hood. this means that the public will be mostly dependent on waymo itself to provide information about how its cars work." april , at : pm david. said... in people must retain control of autonomous vehicles ashley nunes, bryan reimer and joseph f. coughlin sound a warning against level self-driving vehicles and many strong cautions against rushed deployment of lower levels in two areas: liability: "like other producers, developers of autonomous vehicles are legally liable for damages that stem from the defective design, manufacture and marketing of their products. the potential liability risk is great for driverless cars because complex systems interact in ways that are unexpected." safety: "driverless cars should be treated much like aircraft, in which the involvement of people is required despite such systems being highly automated. current testing of autonomous vehicles abides by this principle. safety drivers are present, even though developers and regulators talk of full automation." april , at : pm david. said... alex roy's the half-life of danger: the truth behind the tesla model x crash is a must-read deep dive into the details of the argument in this post, with specifics about tesla's "autopilot" and cadillac's "supercruise": "as i stated a year ago, the more such systems substitute for human input, the more human skills erode, and the more frequently a 'failure' and/or crash is attributed to the technology rather than human ignorance of it. combine the toxic marriage of human ignorance and skill degradation with an increasing number of such systems on the road, and the number of crashes caused by this interplay is likely to remain constant—or even rise—even if their crash rate declines." april , at : am david. said... a collection of posts about stanford's autonomous car research is here. see, in particular, holly russell's research on the hand-off problem. april , at : am david. said... "all companies testing autonomous vehicles on [california]’s public roads must provide annual reports to the dmv about “disengagements” that occur when a human backup driver has to take over from the robotic system. the dmv told eight companies with testing permits to provide clarification about their reports." from ethan barron's self-driving cars’ shortcomings revealed in dmv reports. the clarifications are interesting, including such things as: "delayed perception of a pedestrian walking into the street" "failed to give way to another vehicle trying to enter a lane" "trouble when other drivers behaved badly. other drivers had failed to yield, run stop signs, drifted out of their own lane and cut in front aggressively" may , at : pm david. said... angie schmidt's how uber’s self-driving system failed to brake and avoid killing elaine herzberg reports on the devastating ntsb report: "the report doesn’t assign culpability for the crash but it points to deficiencies in uber’s self-driving car tests. uber’s vehicle used volvo software to detect external objects. six seconds before striking herzberg, the system detected her but didn’t identify her as a person. the car was traveling at mph. the system determined . seconds before the crash that emergency braking would be needed to avert a collision. but the vehicle did not respond, striking herzberg at mph. ntsb writes: according to uber, emergency braking maneuvers are not enabled while the vehicle is under computer control, to reduce the potential for erratic vehicle behavior. the vehicle operator is relied on to intervene and take action. the system is not designed to alert the operator. amir efrati at the information cites two anonymous sources at uber who say the company “tuned” its emergency brake system to be less sensitive to unidentified objects." people need to be jailed for this kind of irresponsibility. may , at : pm david. said... timothy b. lee's as uber and tesla struggle with driverless cars, waymo moves forward stresses how far ahead waymo is in (mostly) self-driving cars: "so waymo's recently announced car deals— , cars from jaguar land rover, another , from fiat chrysler—are just the latest sign that waymo is assembling all the pieces it will need for a full-scale commercial taxi service in the phoenix area and likely other places not long after that. it would be foolish for waymo to invest so heavily in all this infrastructure if its technology were still years away from being ready for commercial deployment. those rider support workers need customers to talk to. and, of course, waymo needs to get those , jaguar and chrysler vehicles on the road to avoid losing millions of dollars on the investment. throughout all this, waymo has been testing its vehicles at a faster and faster pace. it took waymo six months to go from million testing miles in may to million miles in november. then it took around three months to reach million miles in february, and less than three months to reach million in early may." june , at : pm david. said... timothy b. lee's why emergency braking systems sometimes hit parked cars and lane dividers makes the same point as my post, this time about "driver assistance" systems: "the fundamental issue here is that tendency to treat lane-keeping, adaptive cruise control, and emergency braking as independent systems. as we've seen, today's driver assistance systems have been created in a piecemeal fashion, with each system following a do-no-harm philosophy. they only intervene if they're confident they can prevent an accident—or at least avoid causing one. if they're not sure, they do nothing and let the driver make the decision. the deadly tesla crash in mountain view illustrates how dangerous this kind of system can be." thus: "once a driver-assistance system reaches a certain level of complexity, the assumption that it's safest for the system to do nothing no longer makes sense. complex driver assistance systems can behave in ways that surprise and confuse drivers, leading to deadly accidents if the driver's attention wavers for just a few seconds. at the same time, by handling most situations competently, these systems can lull drivers into a false sense of security and cause them to pay less careful attention to the road." june , at : am david. said... "[drive.ai board member andrew ng] seems to be saying that he is giving up on the promise of self-driving cars seamlessly slotting into the existing infrastructure. now he is saying that every person, every “bystander”, is going to be responsible for changing their behavior to accommodate imperfect self-driving systems. and they are all going to have to be trained! i guess that means all of us. whoa!!!! the great promise of self-driving cars has been that they will eliminate traffic deaths. now [ng] is saying that they will eliminate traffic deaths as long as all humans are trained to change their behavior? what just happened? if changing everyone’s behavior is on the table then let’s change everyone’s behavior today, right now, and eliminate the annual , fatalities on us roads, and the million annual fatalities world-wide. let’s do it today, and save all those lives." from bothersome bystanders and self driving cars, rodney brooks' awesome takedown of andrew ng's truly stupid comments reported in russell brandom's self-driving cars are headed toward an ai roadblock: "there’s growing concern among ai experts that it may be years, if not decades, before self-driving systems can reliably avoid accidents. as self-trained systems grapple with the chaos of the real world, experts like nyu’s gary marcus are bracing for a painful recalibration in expectations, a correction sometimes called “ai winter.” that delay could have disastrous consequences for companies banking on self-driving technology, putting full autonomy out of reach for an entire generation." july , at : pm david. said... "drive.ai plans to license its technology to others, and has struck a deal with lyft, a ride-hailing firm, to operate vehicles in and around san francisco. “i think the autonomous-vehicle industry should be upfront about recognising the limitations of today’s technology,” says mr ng. it is surely better to find pragmatic ways to work around those limitations than pretend they do not exist or promise that solving them will be easy." reports the economist. they describe drive.ai's extremely constrained trial service: "drive.ai, a startup, has deployed seven minivans to transport people within a limited area of the city that includes an office park and a retail area. ... all pick-ups and drop-offs happen at designated stops, to minimise disruption as passengers get on and off. ... the vans are painted a garish orange and clearly labelled as self-driving vehicles. ... screens mounted on the vans’ exteriors let them communicate with pedestrians and other road users, ... similarly, rather than trying to build a vehicle that can navigate roadworks (a notoriously difficult problem, given inconsistent signage), drive.ai has arranged for the city authorities to tell it where any roadworks are each day, so that its vehicles can avoid them. ... drive.ai will limit the service to daylight hours, which makes things simpler and safer. each vehicle will initially have a safety driver, ... if a van gets confused it can stop and call for help: a remote supervisor then advises it how to proceed (rather than driving the vehicle remotely, which would not be safe, says mr ng).: it seems that mr. ng has learned from the response to his comments that it isn't our responsibility to avoid running into his cars. august , at : pm david. said... in even self-driving leader waymo is struggling to reach full autonomy timothy b. lee reports on the "launch" of waymo's "public" "autonomous" taxi service: "in late september, a waymo spokeswoman told ars by email that the phoenix service would be fully driverless and open to members of the public—claims i reported in this article. we now know that waymo one won't be fully driverless; there will be a driver in the driver's seat. and waymo one is open to the public in only the narrowest, most technical sense: initially it will only be available to early riders—the same people who have been participating in waymo's test program for months." even in the benign environment of phoenix, trained self-driving car drivers are still needed: "over the course of october and november, randazzo spent three days observing waymo's cars in action—either by following them on the roads or staking out the company's depot in chandler. he posted his findings in a youtube video. the findings suggest that waymo's vehicles aren't yet ready for fully autonomous operation." december , at : am david. said... paris marx writes in self-driving cars will always be limited. even the industry leader admits it: "even waymo’s ceo, john krafcik, now admits that the self-driving car that can drive in any condition, on any road, without ever needing a human to take control — what’s usually called a “level ” autonomous vehicle — will never exist. at the wall street journal’s d.live conference on november , krafcik said that “autonomy will always have constraints.” it will take decades for self-driving cars to become common on roads, and even then they will not be able to drive in certain conditions, at certain times of the year, or in any weather. in short, sensors on autonomous vehicles don’t work well in snow or rain — and that may never change." january , at : am david. said... christian wolmar's my speech on driverless cars at the transportation research board, washington dc, / / is a must-read debunking of the autonomous car hype by a respected british transport journalist. among his many points: "michael dekort, an aerospace engineer turned whistleblower wrote recently: ‘handover cannot be made safe no matter what monitoring and notification system is used. that is because enough time cannot be provided to regain proper situational awareness in critical scenarios.’" no-one could have predicted ... january , at : am david. said... ashley nunes' the cost of self-driving cars will be the biggest barrier to their adoption tackles the important question of whether, even if they can be made safe, self-driving cars can be affordable: "however, the systems underlying havs, namely sensors, radar, and communication devices, are costly compared to older (less safe) vehicles. this raises questions about the affordability of life-saving technology for those who need it most. while all segments of society are affected by road crashes, the risks are greatest for the poor. these individuals are more likely to die on the road partly because they own older vehicles that lack advanced safety features and have lower crash-test ratings. some people have suggested that the inability to purchase havs outright may be circumvented by offering these vehicles for-hire. this setup, analogous to modern day taxis, distributes operating costs over a large number of consumers making mobility services more affordable. self-driving technology advocates suggest that so-called robotaxis, operated by for-profit businesses, could produce considerable savings for consumers." nunes computes that, even assuming the capital cost of a robotaxi is a mere $ k, the answer is public subsidy: "consumer subsidies will be crucial to realizing the life-saving benefits of this technology. although politically challenging, public revenues already pay for a portion of road crash-related expenditures. in the united states alone, this amounts to $ billion, the equivalent of over $ in added taxes for every household." but to justify the subsidy, they have to be safe. which brings us back to the hand-off problem. march , at : am post a comment newer post older post home subscribe to: post comments (atom) blog rules posts and comments are copyright of their respective authors who, by posting or commenting, license their work under a creative commons attribution-share alike . united states license. off-topic or unsuitable comments will be deleted. dshr dshr in anwr recent comments full comments blog archive ►  ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ▼  ( ) ►  december ( ) ▼  november ( ) intel's "management engine" has web advertising jumped the shark? techno-hype part techno-hype part keynote at pacific neighborhood consortium randall munroe says it all ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) lockss system has permission to collect, preserve, and serve this archival unit. simple theme. powered by blogger. dshr's blog: dogecoin disrupts bitcoin! dshr's blog i'm david rosenthal, and this is a place to discuss the work i'm doing in digital preservation. thursday, april , dogecoin disrupts bitcoin! two topics i've posted about recently, elon musk's cult and the illusory "prices" of cryptocurrencies, just intersected in spectacular fashion. on april the bitcoin "price" peaked at $ . k. early on april , the musk cult saw this tweet from their prophet. immediately, the dogecoin "price" took off like a falcon . a day later, jemima kelley reported that if you believe, they put a dogecoin on the moon. that was to say that: dogecoin — the crypto token that was started as a joke and that is the favourite of elon musk — is having a bit of a moment. and when we say a bit of a moment, we mean that it is on a lunar trajectory (in crypto talk: it is going to da moon). at the time of writing this, it is up over per cent in the past hours — more than tripling in value (for those of you who need help on percentages, it is friday afternoon after all). over the past week it’s up more than per cent (almost seven times higher!). the headlines tell the story — timothy b. lee's dogecoin has risen percent in the last week because why not and joanna ossinger's dogecoin rips in meme-fueled frenzy on pot-smoking holiday. the dogecoin "price" graph kelly posted was almost vertical. the same day, peter schiff, the notorious gold-bug, tweeted: so far in #bitcoin has lost % of its value verses #dogecoin. the market has spoken. dogecoin is eating bitcoin. all the bitcoin pumpers who claim bitcoin is better than gold because its price has risen more than gold's must now concede that dogecoin is better than bitcoin. below the fold i look back at this revolution in crypto-land. i'm writing on april , and the bitcoin "price" is around $ k, about % of its peak on april . in the same period dogecoin's "price" peaked at $ . , and is now around $ . , or % of its $ . "price" on april . there are some reasons for bitcoin's slump apart from people rotating out of btc into doge in response to musk's tweet. nivesh rustgi reports: bitcoin’s hashrate dropped % from all-time highs after an accident in the xinjiang region’s mining industry caused flooding and a gas explosion, leading to deaths with workers trapped since. ... the leading bitcoin mining data centers in the region have closed operations to comply with the fire and safety inspections. the chinese central authority is conducting site inspections “on individual mining operations and related local government agencies,” tweeted dovey wan, partner at primitive crypto. ... the accident has reignited the centralization problems arising from china’s dominance of the bitcoin mining sector, despite global expansion efforts. the drop in the hash rate had the obvious effects. david gerard reports: the bitcoin hash rate dropped from exahashes per second to eh/s. the rate of new blocks slowed. the bitcoin mempool — the backlog of transactions waiting to be processed — has filled. transaction fees peaked at just over $ average on april. the average btc transaction fee is now just short of $ , with a median fee over $ ! the btc blockchain did around k transactions on april , but on april it could only manage k. it is also true that doge had upward momentum before musk's tweet. after being nearly flat for almost a month, it had already doubled since april . kelly quotes david kimberley at freetrade: dogecoin’s rise is a classic example of greater fool theory at play, dogecoin investors are basically betting they’ll be able to cash out by selling to the next person wanting to invest. people are buying the cryptocurrency, not because they think it has any meaningful value, but because they hope others will pile in, push the price up and then they can sell off and make a quick buck. but when everyone is doing this, the bubble eventually has to burst and you’re going to be left short-changed if you don’t get out in time. and it’s almost impossible to say when that’s going to happen. kelly also quotes khadim shubber explaining that this is all just entertainment: bitcoin, and cryptocurrencies in general, are not directly analogous to the fairly mundane practice of buying a lottery ticket, but this part of its appeal is often ignored in favour of more intellectual or high-brow explanations. it has all the hallmarks of a fun game, played out across the planet with few barriers to entry and all the joy and pain that usually accompanies gambling. there’s a single, addictive reward system: the price. the volatility of cryptocurrencies is often highlighted as a failing, but in fact it’s a key part of its appeal. where’s the fun in an asset whose price snoozes along a predictable path? the rollercoaster rise and fall and rise again of the crypto world means that it’s never boring. if it’s down one day (and boy was it down yesterday) well, maybe the next day it’ll be up again. note the importance of volatility. in a must-read interview that new york magazine entitled bidenbucks is beeple is bitcoin prof. george galloway also stressed the importance of volatility: young people want volatility. if you have assets and you’re already rich, you want to take volatility down. you want things to stay the way they are. but young people are willing to take risks because they can afford to lose everything. for the opportunity to double their money, they will risk losing everything. imagine a person who has the least to lose: he’s in solitary confinement in a supermax-security prison. that person wants maximum volatility. he prays for such volatility, that there’s a revolution and they open the prison. people under the age of are fed up. they have less than half of the economic security, as measured by the ratio of wealth to income, that their parents did at their age. their share of overall wealth has crashed. a lot of them are bored. a lot of them have some stimulus money in their pocket. and in the case of gamestop, they did what’s kind of a mob short squeeze. ... i see crypto as a mini-revolution, just like gamestop. the central banks and governments are all conspiring to create more money to keep the shareholder class wealthy. young people think, that’s not good for me, so i’m going to exit the ecosystem and i’m going to create my own currency. this all reinforces my skepticism about the "price" and "market cap" of cryptocurrencies. posted by david. at : am labels: bitcoin comment: david. said... joe weisenthal (@thestalwart) tweeted: "why i love the dogecoin rally so much see all the serious stuff about decentralized finance, or stores of value, or people thirsting for alternatives for the dollar. nobody can talk about it with a straight face when it comes to dogecoin. ... but really, all the crypto talking points go out the window with doge." april , at : pm post a comment older post home subscribe to: post comments (atom) blog rules posts and comments are copyright of their respective authors who, by posting or commenting, license their work under a creative commons attribution-share alike . united states license. off-topic or unsuitable comments will be deleted. dshr dshr in anwr recent comments full comments blog archive ▼  ( ) ▼  april ( ) dogecoin disrupts bitcoin! what is the point? nfts and web archiving cryptocurrency's carbon footprint elon musk: threat or menace? ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) lockss system has permission to collect, preserve, and serve this archival unit. simple theme. powered by blogger. d-lib magazine an electronic publication with a primary focus on digital library research and development. http://www.dlib.org/ d-lib magazine https://doi.org/ . /dlib.magazine d-lib magazine ceased publishing new issues in july . this rss feed will no longer be updated. open knowledge nepal – liberating knowledge for opportunity skip to content toggle navigation home about us our vision our impact our team blog project service training and capacity building specialized technical services research, analysis and writing contact liberating knowledge for opportunities "a world where knowledge creates power for the many, not the few." this is the world we choose. know more we bring together a diverse community, building a network of individuals and organisations, founded on key principles. open knowledge nepal is a non-profit civic tech organization comprised of openness aficionados. we believe that openness of data is powerful in order to have participatory government with civil society, eventually leading to sustainable development. the organization has been involved in research, advocacy, training, workshops and developing tools related to open knowledge. we also provide data services and solutions to various agencies and specialized in solving data related problems through consultation and tools development. our service training and capacity building we work to empower csos, journalists and citizens with the skills they need to use data effectively, through both online and in-person “learning through doing” workshops.... specialized technical services we help people to solve the technical, social and legal challenges of opening up data and are specialized in providing data-driven services and technical expertise.... research, analysis and writing we are one of the open data pioneers of nepal and always ready explore new areas in depth, including developing principles and standards as part of our analysis.... “today we find ourselves in the midst of an open data revolution” recent blog march , open data day : datathon in tulsipur on the occasion of the international open data day (march , ), open knowledge nepal organized a day-long ‘datathon’ in tulsipur dang, where in-total participants joined the event... read more march , registration for women in data virtual conference is now open! while nepal’s first women in data conference was hosted by the data for development (d d) programme on february , with the theme डाटा शक्ति नारी शक्�... read more march , rebuilding community to work on climate and environment data the event summary of this blog post was written by dikpal khatri chhetry. being a community-driven organization, the covid- pandemic was a nightmare for open knowledge nepal. like many org... read more our partner about us email us donate twitter facebook content on this site, made by open knowledge nepal, is licensed under a creative commons attribution . international license. none zbw labs jump to navigation english deutsch main menu news about us news data donation to wikidata, part : country/subject dossiers of the th century press archives - - by joachim neubert the world's largest public newspaper clippings archive comprises lots of material of great interest particularly for authors and readers in the wikiverse. zbw has digitized the material from the first half of the last century, and has put all available metadata under a cc license. more so, we are donating that data to wikidata, by adding or enhancing items and providing ways to access the dossiers (called "folders") and clippings easily from there. pressemappe . jahrhundert wikidata   read more about data donation to wikidata, part : country/subject dossiers of the th century press archives log in or register to post comments building the swib participants map - - by joachim neubert   here we describe the process of building the interactive swib participants map, created by a query to wikidata. the map was intended to support participants of swib to make contacts in the virtual conference space. however, in compliance with gdpr we want to avoid publishing personal details. so we choose to publish a map of institutions, to which the participants are affiliated. (obvious downside: the un-affiliated participants could not be represented on the map). we suppose that the method can be applied to other conferences and other use cases - e.g., the downloaders of scientific software or the institutions subscribed to an academic journal. therefore, we describe the process in some detail. wikidata for authorities linked data   read more about building the swib participants map log in or register to post comments journal map: developing an open environment for accessing and analyzing performance indicators from journals in economics - - by timo borst by franz osorio, timo borst introduction bibliometrics, scientometrics, informetrics and webometrics have been both research topics and practical guidelines for publishing, reading, citing, measuring and acquiring published research for a while (hood ). citation databases and measures had been introduced in the s, becoming benchmarks both for the publishing industry and academic libraries managing their holdings and journal acquisitions that tend to be more selective with a growing number of journals on the one side, budget cuts on the other. due to the open access movement triggering a transformation of traditional publishing models (schimmer ), and in the light of both global and distributed information infrastructures for publishing and communicating on the web that have yielded more diverse practices and communities, this situation has dramatically changed: while bibliometrics of research output in its core understanding still is highly relevant to stakeholders and the scientific community, visibility, influence and impact of scientific results has shifted to locations in the world wide web that are commonly shared and quickly accessible not only by peers, but by the general public (thelwall ). this has several implications for different stakeholders who are referring to metrics in dealing with scientific results:   with the rise of social networks, platforms and their use also by academics and research communities, the term 'metrics' itself has gained a broader meaning: while traditional citation indexes only track citations of literature published in (other) journals, 'mentions', 'reads' and 'tweets', albeit less formal, have become indicators and measures for (scientific) impact. altmetrics has influenced research performance, evaluation and measurement, which formerly had been exclusively associated with traditional bibliometrics. scientists are becoming aware of alternative publishing channels and both the option and need of 'self-advertising' their output. in particular academic libraries are forced to manage their journal subscriptions and holdings in the light of increasing scientific output on the one hand, and stagnating budgets on the other. while editorial products from the publishing industry are exposed to a global competing market requiring a 'brand' strategy, altmetrics may serve as additional scattered indicators for scientific awareness and value. against this background, we took the opportunity to collect, process and display some impact or signal data with respect to literature in economics from different sources, such as 'traditional' citation databases, journal rankings and community platforms resp. altmetrics indicators: citec. the long-standing citation service maintainted by the repec community provided a dump of both working papers (as part of series) and journal articles, the latter with significant information on classic impact factors such as impact factor ( and years) and h-index. rankings of journals in economics including scimago journal rank (sjr) and two german journal rankings, that are regularly released and updated (vhb jourqual, handelsblatt ranking). usage data from altmetric.com that we collected for those articles that could be identified via their digital object identifier. usage data from the scientific community platform and reference manager mendeley.com, in particular the number of saves or bookmarks on an individual paper. requirements a major consideration for this project was finding an open environment in which to implement it. finding an open platform to use served a few purposes. as a member of the "leibniz research association," zbw has a commitment to open science and in part that means making use of open technologies to as great extent as possible (the zbw - open scienc...). this open system should allow direct access to the underlying data so that users are able to use it for their own investigations and purposes. additionally, if possible the user should be able to manipulate the data within the system. the first instance of the project was created in tableau, which offers a variety of means to express data and create interfaces for the user to filter and manipulate data. it also can provide a way to work with the data and create visualizations without programming skills or knowledge. tableau is one of the most popular tools to create and deliver data visualization in particular within academic libraries (murphy ). however, the software is proprietary and has a monthly fee to use and maintain, as well as closing off the data and making only the final visualization available to users. it was able to provide a starting point for how we wanted to the data to appear to the user, but it is in no way open. challenges the first technical challenge was to consolidate the data from the different sources which had varying formats and organizations. broadly speaking, the bibliometric data (citec and journal rankings) existed as a spread sheet with multiple pages, while the altmetrics and mendeley data came from a database dumps with multiple tables that were presented as several csv files. in addition to these different formats, the data needed to be cleaned and gaps filled in. the sources also had very different scopes. the altmetrics and mendeley data covered only journals, the bibliometric data, on the other hand, had more than , journals. transitioning from tableau to an open platform was big challenge. while there are many ways to create data visualizations and present them to users, the decision was made to use r to work with the data and shiny to present it. r is used widely to work with data and to present it (kläre ). the language has lots of support for these kinds of task over many libraries. the primary libraries used were r plotly and r shiny. plotly is a popular library for creating interactive visualizations. without too much work plotly can provide features including information popups while hovering over a chart and on the fly filtering. shiny provides a framework to create a web application to present the data without requiring a lot of work to create html and css. the transition required time spent getting to know r and its libraries, to learn how to create the kinds of charts and filters that would be useful for users. while shiny alleviates the need to create html and css, it does have a specific set of requirements and structures in order to function. the final challenge was in making this project accessible to users such that they would be able to see what we had done, have access to the data, and have an environment in which they could explore the data without needing anything other than what we were providing. in order to achieve this we used binder as the platform. at it's most basic binder makes it possible to share a jupyter notebook stored in a github repository with a url by running the jupyter notebook remotely and providing access through a browser with no requirements placed on the user. additionally, binder is able to run a web application using r and shiny. to move from a locally running instance of r shiny to one that can run in binder, instructions for the runtime environment need to be created and added to the repository. these include information on what version of the language to use,  which packages and libraries to install for the language, and any additional requirements there might be to run everything. solutions given the disparate sources and formats for the data, there was work that needed to be done to prepare it for visualization. the largest dataset, the bibliographic data, had several identifiers for each journal but without journal names. having the journals names is important because in general the names are how users will know the journals. adding the names to the data would allow users to filter on specific journals or pull up two journals for a comparison. providing the names of the journals is also a benefit for anyone who may repurpose the data and saves them from having to look them up. in order to fill this gap, we used metadata available through research papers in economics (repec). repec is an organization that seeks to "enhance the dissemination of research in economics and related sciences". it contains metadata for more than million papers available in different formats. the bibliographic data contained repec handles which we used to look up the journal information as xml and then parse the xml to find the title of the journal.  after writing a small python script to go through the repec data and find the missing names there were only journals whose names were still missing. for the data that originated in an mysql database, the major work that needed to be done was to correct the formatting. the data was provided as csv files but it was not formatted such that it could be used right away. some of the fields had double quotation marks and when the csv file was created those quotes were put into other quotation marks resulting doubled quotation marks which made machine parsing difficult without intervention directly on the files. the work was to go through the files and quickly remove the doubled quotation marks. in addition to that, it was useful for some visualizations to provide a condensed version of the data. the data from the database was at the article level which is useful for some things, but could be time consuming for other actions. for example, the altmetrics data covered only journals but had almost , rows. we could use the python library pandas to go through the all those rows and condense the data down so that there are only rows with the data for each column being the sum of all rows. in this way, there is a dataset that can be used to easily and quickly generate summaries on the journal level. shiny applications require a specific structure and files in order to do the work of creating html without needing to write the full html and css. at it's most basic there are two main parts to the shiny application. the first defines the user interface (ui) of the page. it says what goes where, what kind of elements to include, and how things are labeled. this section defines what the user interacts with by creating inputs and also defining the layout of the output. the second part acts as a server that handles the computations and processing of the data that will be passed on to the ui for display. the two pieces work in tandem, passing information back and forth to create a visualization based on user input. using shiny allowed almost all of the time spent on creating the project to be concentrated on processing the data and creating the visualizations. the only difficulty in creating the frontend was making sure all the pieces of the ui and server were connected correctly. binder provided a solution for hosting the application, making the data available to users, and making it shareable all in an open environment. notebooks and applications hosted with binder are shareable in part because the source is often a repository like github. by passing a github repository to binder, say one that has a jupyter notebook in it, binder will build a docker image to run the notebook and then serve the result to the user without them needing to do anything. out of the box the docker image will contain only the most basic functions. the result is that if a notebook requires a library that isn't standard, it won't be possible to run all of the code in the notebook. in order to address this, binder allows for the inclusion in a repository of certain files that can define what extra elements should be included when building the docker image. this can be very specific such as what version of the language to use and listing various libraries that should be included to ensure that the notebook can be run smoothly. binder also has support for more advanced functionality in the docker images such as creating a postgres database and loading it with data. these kinds of activities require using different hooks that binder looks for during the creation of the docker image to run scripts. results and evaluation the final product has three main sections that divide the data categorically into altmetrics, bibliometrics, and data from mendeley. there are additionally some sections that exist as areas where something new could be tried out and refined without potentially causing issues with the three previously mentioned areas. each section has visualizations that are based on the data available. considering the requirements for the project, the result goes a long way to meeting the requirements. the most apparent area that the journal map succeeds in is its goals is of presenting data that we have collected. the application serves as a dashboard for the data that can be explored by changing filters and journal selections. by presenting the data as a dashboard, the barrier to entry for users to explore the data is low. however, there exists a way to access the data directly and perform new calculations, or create new visualizations. this can be done through the application's access to an r-studio environment. access to r-studio provides two major features. first, it gives direct access to the all the underlying code that creates the dashboard and the data used by it. second, it provides an r terminal so that users can work with the data directly. in r-studio, the user can also modify the existing files and then run them from r-studio to see the results. using binder and r as the backend of the applications allows us to provide users with different ways to access and work with data without any extra requirements on the part of the user. however, anything changed in r-studio won't affect the dashboard view and won't persist between sessions. changes exist only in the current session. all the major pieces of this project were able to be done using open technologies: binder to serve the application, r to write the code, and github to host all the code. using these technologies and leveraging their capabilities allows the project to support the open science paradigm that was part of the impetus for the project. the biggest drawback to the current implementation is that binder is a third party host and so there are certain things that are out of our control. for example, binder can be slow to load. it takes on average + minutes for the docker image to load. there's not much, if anything, we can do to speed that up. the other issue is that if there is an update to the binder source code that breaks something, then the application will be inaccessible until the issue is resolved. outlook and future work the application, in its current state, has parts that are not finalized. as we receive feedback, we will make changes to the application to add or change visualizations. as mentioned previously, there a few sections that were created to test different visualizations independently of the more complete sections, those can be finalized. in the future it may be possible to move from binderhub to a locally created and administered version of binder. there is support and documentation for creating local, self hosted instances of binder. going that direction would give more control, and may make it possible to get the docker image to load more quickly. while the application runs stand-alone, the data that is visualized may also be integrated in other contexts. one option we are already prototyping is integrating the data into our subject portal econbiz, so users would be able to judge the scientific impact of an article in terms of both bibliometric and altmetric indicators.   references william w. hood, concepcion s. wilson. the literature of bibliometrics, scientometrics, and informetrics. scientometrics , – springer science and business media llc, . link r. schimmer. disrupting the subscription journals’ business model for the necessary large-scale transformation to open access. ( ). link mike thelwall, stefanie haustein, vincent larivière, cassidy r. sugimoto. do altmetrics work? twitter and ten other social web services. plos one , e public library of science (plos), . link the zbw - open science future. link sarah anne murphy. data visualization and rapid analytics: applying tableau desktop to support library decision-making. journal of web librarianship , – informa uk limited, . link christina kläre, timo borst. statistic packages and their use in research in economics | edawax - blog of the project ’european data watch extended’. edawax - european data watch extended ( ). link journal map - binder application for displaying and analyzing metrics data about scientific journals read more about journal map: developing an open environment for accessing and analyzing performance indicators from journals in economics log in or register to post comments integrating altmetrics into a subject repository - econstor as a use case - - by wolfgang riese back in the zbw leibniz information center for economics (zbw) teamed up with the göttingen state and university library (sub), the service center of götting library federation (vzg) and gesis leibniz institute for the social sciences in the *metrics project funded by the german research foundation (dfg). the aim of the project was: “… to develop a deeper understanding of *metrics, especially in terms of their general significance and their perception amongst stakeholders.” (*metrics project about). in the practical part of the project the following dspace based repositories of the project partners participated as data sources for online publications and – in the case of econstor – also as implementer for the presentation of the social media signals: econstor - a subject repository for economics and business studies run by the zbw, currently (aug. ) containing round about , downloadable files, goescholar - the publication server of the georg-august-universität göttingen run by the sub göttingen, offering approximately , publicly browsable items so far, ssoar - the “social science open access repository” maintained by gesis, currently containing about , publicly available items. in the work package “technology analysis for the collection and provision of *metrics” of the project an analysis of currently available *metrics technologies and services had been performed. as stated by [wilsdon ], currently suppliers of altmetrics “remain too narrow (mainly considering research products with dois)”, which leads to problems to acquire *metrics data for repositories like econstor with working papers as the main content. as up to now it is unusual – at least in the social sciences and economics – to create dois for this kind of documents. only the resulting final article published in a journal will receive a doi. based on the findings in this work package, a test implementation of the *metrics crawler had been built. the crawler had been actively deployed from early to spring at the vzg. for the aggregation of the *metrics data the crawler had been fed with persistent identifiers and metadata from the aforementioned repositories. at this stage of the project, the project partners still had the expectation, that the persistent identifiers (e.g. handle, urns, …), or their local url counterparts, as used by the repositories could be harnessed to easily identify social media mentions of their documents, e.g. for econstor: handle: “hdl: /…” handle.net resolver url: “http(s)://hdl.handle.net/ /…” econstor landing page url with handle: “http(s)://www.econstor.eu/handle/ /…” econstor bitstream (pdf) url with handle: “http(s)://www.econstor.eu/bitstream/ /…” integrating altmetrics data into econstor read more about integrating altmetrics into a subject repository - econstor as a use case log in or register to post comments th century press archives: data donation to wikidata - - by joachim neubert zbw is donating a large open dataset from the th century press archives to wikidata, in order to make it better accessible to various scientific disciplines such as contemporary, economic and business history, media and information science, to journalists, teachers, students, and the general public. the th century press archives (pm ) is a large public newspaper clippings archive, extracted from more than different sources published in germany and all over the world, covering roughly a full century ( - ). the clippings are organized in thematic folders about persons, companies and institutions, general subjects, and wares. during a project originally funded by the german research foundation (dfg), the material up to has been digitized. , folders with more than two million pages up to are freely accessible online.  the fine-grained thematic access and the public nature of the archives makes it to our best knowledge unique across the world (more information on wikipedia) and an essential research data fund for some of the disciplines mentioned above. the data donation does not only mean that zbw has assigned a cc license to all pm metadata, which makes it compatible with wikidata. (due to intellectual property rights, only the metadata can be licensed by zbw - all legal rights on the press articles themselves remain with their original creators.) the donation also includes investing a substantial amount of working time (during, as planned, two years) devoted to the integration of this data into wikidata. here we want to share our experiences regarding the integration of the persons archive metadata. linked data   open data   read more about th century press archives: data donation to wikidata log in or register to post comments zbw's contribution to "coding da vinci": dossiers about persons and companies from th century press archives - - by joachim neubert at th and th of october, the kick-off for the "kultur-hackathon" coding da vinci is held in mainz, germany, organized this time by glam institutions from the rhein-main area: "for five weeks, devoted fans of culture and hacking alike will prototype, code and design to make open cultural data come alive." new software applications are enabled by free and open data. for the first time, zbw is among the data providers. it contributes the person and company dossiers of the th century press archive. for about a hundred years, the predecessor organizations of zbw in kiel and hamburg had collected press clippings, business reports and other material about a wide range of political, economic and social topics, about persons, organizations, wares, events and general subjects. during a project funded by the german research organization (dfg), the documents published up to (about , million pages) had been digitized and are made publicly accessible with according metadata, until recently solely in the "pressemappe . jahrhundert" (pm ) web application. additionally, the dossiers - for example about mahatma gandhi or the hamburg-bremer afrika linie - can be loaded into a web viewer. as a first step to open up this unique source of data for various communities, zbw has decided to put the complete pm metadata* under a cc-zero license, which allows free reuse in all contexts. for our coding da vinci contribution, we have prepared all person and company dossiers which already contain documents. the dossiers are interlinked among each other. controlled vocabularies (for, e.g., "country", or "field of activity") provide multi-dimensional access to the data. most of the persons and a good share of organizations were linked to gnd identifiers. as a starter, we had mapped dossiers to wikidata according to existing gnd ids. that allows to run queries for pm dossiers completely on wikidata, making use of all the good stuff there. an example query shows the birth places of pm economists on a map, enriched with images from wikimedia commons. the initial mapping was much extended by fantastic semi-automatic and manual mapping efforts by the wikidata community. so currently more than % of the dossiers about - often rather prominent - pm persons are linked not only to wikidata, but also connected to wikipedia pages. that offers great opportunities for mash-ups to further data sources, and we are looking forward to what the "coding da vinci" crowd may make out of these opportunities. technically, the data has been converted from an internal intermediate format to still quite experimental rdf and loaded into a sparql endpoint. there it was enriched with data from wikidata and extracted with a construct query. we have decided to transform it to json-ld for publication (following practices recommended by our hbz colleagues). so developers can use the data as "plain old json", with the plethora of web tools available for this, while linked data enthusiasts can utilize sophisticated semantic web tools by applying the provided json-ld context. in order to make the dataset discoverable and reusable for future research, we published it persistently at zenodo.org. with it, we provide examples and data documentation. a github repository gives you additional code examples and a way to address issues and suggestions. * for the scanned documents, the legal regulations apply - zbw cannot assign licenses here.   pressemappe . jahrhundert linked data   read more about zbw's contribution to "coding da vinci": dossiers about persons and companies from th century press archives log in or register to post comments wikidata as authority linking hub: connecting repec and gnd researcher identifiers - - by joachim neubert in the econbiz portal for publications in economics, we have data from different sources. in some of these sources, most notably zbw's "econis" bibliographical database, authors are disambiguated by identifiers of the integrated authority file (gnd) - in total more than , . data stemming from "research papers in economics" (repec) contains another identifier: repec authors can register themselves in the repec author service (ras), and claim their papers. this data is used for various rankings of authors and, indirectly, of institutions in economics, which provides a big incentive for authors - about , have signed into ras - to keep both their article claims and personal data up-to-date. while gnd is well known and linked to many other authorities, ras had no links to any other researcher identifier system. thus, until recently, the author identifiers were disconnected, which precludes the possibility to display all publications of an author on a portal page. to overcome that limitation, colleagues at zbw have matched a good , authors with ras and gnd ids by their publications (see details here). making that pre-existing mapping maintainable and extensible however would have meant to set up some custom editing interface, would have required storage and operating resources and wouldn't easily have been made publicly accessible. in a previous article, we described the opportunities offered by wikidata. now we made use of it. wikidata for authorities authority control   wikidata   read more about wikidata as authority linking hub: connecting repec and gnd researcher identifiers log in or register to post comments new version of multi-lingual jel classification published in lod - - by joachim neubert the journal of economic literature classification scheme (jel) was created and is maintained by the american economic association. the aea provides this widely used resource freely for scholarly purposes. thanks to andré davids (ku leuven), who has translated the originally english-only labels of the classification to french, spanish and german, we provide a multi-lingual version of jel. it's lastest version (as of - ) is published in the formats rdfa and rdf download files. these formats and translations are provided "as is" and are not authorized by aea. in order to make changes in jel tracable more easily, we have created lists of inserted and removed jel classes in the context of the skos-history project. jel klassifikation für linked open data skos-history linked data   read more about new version of multi-lingual jel classification published in lod log in or register to post comments economists in wikidata: opportunities of authority linking - - by joachim neubert wikidata is a large database, which connects all of the roughly wikipedia projects. besides interlinking all wikipedia pages in different languages about a specific item – e.g., a person -, it also connects to more than different sources of authority information. the linking is achieved by a „authority control“ class of wikidata properties. the values of these properties are identifiers, which unambiguously identify the wikidata item in external, web-accessible databases. the property definitions includes an uri pattern (called „formatter url“). when the identifier value is inserted into the uri pattern, the resulting uri can be used to look up the authoritiy entry. the resulting uri may point to a linked data resource - as it is the case with the gnd id property. this, on the one hand, provides a light-weight and robust mechanism to create links in the web of data. on the other hand, these links can be exploited by every application which is driven by one of the authorities to provide additional data: links to wikipedia pages in multiple languages, images, life data, nationality and affiliations of the according persons, and much more. wikidata item for the indian economist bina agarwal, visualized via the sqid browser wikidata for authorities wikidata   authority control   linked data   read more about economists in wikidata: opportunities of authority linking log in or register to post comments integrating a research data repository with established research practices - - by timo borst authors: timo borst, konstantin ott in recent years, repositories for managing research data have emerged, which are supposed to help researchers to upload, describe, distribute and share their data. to promote and foster the distribution of research data in the light of paradigms like open science and open access, these repositories are normally implemented and hosted as stand-alone applications, meaning that they offer a web interface for manually uploading the data, and a presentation interface for browsing, searching and accessing the data. sometimes, the first component (interface for uploading the data) is substituted or complemented by a submission interface from another application. e.g., in dataverse or in ckan data is submitted from remote third-party applications by means of data deposit apis [ ]. however the upload of data is organized and eventually embedded into a publishing framework (data either as a supplement of a journal article, or as a stand-alone research output subject to review and release as part of a ‘data journal’), it definitely means that this data is supposed to be made publicly available, which is often reflected by policies and guidelines for data deposit. institutional view on research data read more about integrating a research data repository with established research practices log in or register to post comments pages next › last » tags in dbpedia - web taxonomy your browser does not support canvas. application programming interface authority control drupal economics electronic publishing impact factor linked data organizer recommender system repository (publishing) thesaurus wikidata search form search (rdf/xml, turtle, nt)   imprint   privacy powered by drupal none none none in the library with the lead pipe in the library with the lead pipe an open access, peer reviewed journal ethical financial stewardship: one library’s examination of vendors’ business practices by katy divittorio and lorelle gianelli in brief the evaluation of library collections rarely digs into the practices or other business ventures of the companies that create or sell library resources. as financial stewards, academic acquisition librarians are in a unique position to consider the business philosophy and practices of our vendors as they align... read more we need to talk about how we talk about disability: a critical quasi-systematic review by amelia gibson, kristen bowen, and dana hanson in brief this quasi-systematic review uses a critical disability framework to assess definitions of disability, use of critical disability approaches, and hierarchies of credibility in lis research between and . we present quantitative and qualitative findings about trends and gaps in the research, and discuss the... read more culturally responsive community engagement programming and the university library: lessons learned from half a decade of vtditc by craig e. arthur, dr. freddy paige, la’ portia perkins, jasmine weiss, and dr. michael williams (good homie signs’ “hip hop @ vt” mural / ) in brief vtditc: hip hop studies at virginia tech is an award-winning series of experiential learning-focused, culturally responsive community engagement programs. it is deeply rooted in hip hop culture and... read more creating a student-centered alternative to research guides: developing the infrastructure to support novice learners in brief: research and course guides typically feature long lists of resources without the contextual or instructional framework to direct novice researchers through the research process. an investigation of guide usage and user interactions at a large university in the southwestern u.s. revealed a need to reexamine the way research guides can be developed and... read more power and status (and lack thereof) in academe: academic freedom and academic librarians in brief academic librarians do not experience full academic freedom protections, despite the fact that they are expected to exercise independent judgment, be civically engaged, and practice applied scholarship. academic freedom for academic librarians is not widely studied or well understood. to learn more, we conducted a survey which received over responses from academic... read more the library commons: an imagination and an invocation by jennie rose halperin in brief commons theory can provide important interventions within neoliberal managerial information capitalism when applied to the library as an institution. the commons and its associated practices provide a model of abundance, sharing, and cooperation. libraries can and should participate in alternative economic and management models to create an inclusive vision... read more “information has value”: the political economy of information capitalism in brief information capitalism dominates the production and flow of information across the globe. it produces massive information institutions that are as harmful to everyday people as they are powerful. to this point, information literacy (il) educators do not have a theory and pedagogy of information capitalism. this article appraises the current state of political... read more training matters: student employment and learning in academic libraries in brief conceiving of student employment in academic libraries as an educationally purposeful experience requires adopting a learner-centered pedagogical approach to student employee job training. adopting such an approach is triply beneficial: it makes that job training more effective; it identifies training as an opportunity to pursue learning goals that support the growth of students... read more creating a library wide culture and environment to support mlis students of color: the diversity scholars program at oregon state university libraries in brief the work of social justice, equity, and inclusion is not a short-term investment by a limited number of people; instead, it should be a part of every library’s and librarian’s work. at the oregon state university libraries (osul), we felt that in order to create a program dedicated to employing mlis students of... read more it’s not imposter syndrome: resisting self-doubt as normal for library workers in brief library workers, as with other professions, are quick to diagnose ourselves and others with imposter syndrome when we doubt or devalue our everyday work.&# ; however, methods of coping with imposter syndrome have changed little in the forty years since the term was first theorized, and often centre on feel-good fixes which do not... read more none none metadata matters | it's all about the services pagetitle: metadata matters it's all about the services blog about archives log in schnellnavigation: jump to start of page | jump to posts | jump to navigation it’s not just me that’s getting old having just celebrated (?) another birthday at the tail end of , the topics of age and change have been even more on my mind than usual. and then two events converged. first i had a chat with ted fons in a hallway at midwinter, and he asked about using an older article i’d published with karen coyle way back in early (“resource description and access (rda): cataloging rules for the th century”). the second thing was a message from research gate that reported that the article in question was easily the most popular thing i’d ever published. my big worry in terms of having ted use that article was that rda had experienced several sea changes in the nine (!) years since the article was published (jan./feb. ), so i cautioned ted about using it. then i decided i needed to reread the article and see whether i had spoken too soon. the historic rationale holds up very well, but it’s important to note that at the time that article was written, the jsc (now the rsc) was foundering, reluctant to make the needed changes to cut ties to aacr . the quotes from the cc:da illustrate how deep the frustration was at that time. there was a real turning point looming for rda, and i’d like to believe that the article pushed a lot of people to be less conservative and more emboldened to look beyond the cataloger tradition. in april of , a mere few months from when this article came out, ala publishing arranged for the famous “london meeting” that changed the course of rda. gordon dunsire and i were at that meeting–in fact it was the first time we met. i didn’t even know much about him aside from his article in the same dlib issue. as it turns out, the rda article was elevated to the top spot, thus stealing some of his thunder, so he wasn’t very happy with me. the decision made in london to allow dcmi to participate by building the vocabularies was a game changer, and gordon and i were named co-chairs of a task group to manage that process. so as i re-read the article, i realized that the most important bits at the time are probably mostly of historical interest at this point. i think the most important takeaway is that rda has come a very long way since , and in some significant ways is now leading the pack in terms of its model and vocabulary management policies (more about that to come). and i still like the title! …even though it’s no longer a true description of the st century rda. by diane hillmann, february , , : am (utc- ) rda, uncategorized post a comment denying the non-english speaking world not long ago i encountered the analysis of bibframe published by rob sanderson with contributions by a group of well-known librarians. it’s a pretty impressive document–well organized and clearly referenced. but in fact there’s also a significant amount of personal opinion in it, the nature of which is somewhat masked by the references to others holding the same opinion. i have a real concern about some of those points where an assertion of ‘best practices’ are particularly arguable. the one that sticks in my craw particularly shows up in section . . : . . use natural keys in uris references: [manning], [ldbook], [gld-bp], [cooluris] although the client must treat uris as opaque strings, it is good practice to construct uris in a systematic and human readable fashion for both instances and ontology terms. a natural key is one that appears in the information about the resource, such as some unique identifier for the resource, or the label of the property for ontology terms. while the machine does not care about structure, memorability or readability of uris, the developers that write the code do. completely random uris introduce difficult to detect semantic and algorithmic errors in both publication and consumption of the data. analysis: the use of natural keys is a strength of bibframe, compared to similarly scoped efforts in similar communities such as the rda and cidoc-crm vocabularies which use completely opaque numbers such as p (hasrespondent) or e (linguistic entity). rda further misses the target in this area by going on to define multiple uris for each term with language tagged labels in the uri, such as rda:hasrespondent.en mapping to p . this is a different predicate from the numerical version, and using owl:sameas to connect the two just makes everyone’s lives more difficult unnecessarily. in general, labels for the predicates and classes should be provided in the ontology document, along with thorough and understandable descriptions in multiple languages, not in the uri structure. this sounds fine so long as you accept the idea that ‘natural’ means english, because, of course, all developers, no matter their first language, must be fluent enough in english to work with english-only standards and applications. this mis-use of ‘natural’ reminds me of other problematic usages, such as the former practice in the adoption community (of which i have been a part for years) where ‘natural’ was routinely used to refer to birth parents, thus relegating adoptive parents to the ‘un-natural’ realm. so in this case, if ‘natural’ means english, are all other languages inherently un-natural in the world of development? the library world has been dominated by the ‘anglo-american’ notions of standard practice for a very long time, and happily, rda is leading away from that, both in governance and in development of vocabularies and tools. the multilingual strategy adopted by rda is based on the following points: more than a decade of managing vocabularies has convinced us that opaque identifiers are extremely valuable for managing uris, because they need not be changed as labels change (only as definitions change). the kinds of ‘churn’ we saw in the original version of rda ( - ) convinced us that label-based uris were a significant problem (and cost) that became worse as the vocabularies grew over time. we get the argument that opaque uris are often difficult for humans to use–but the tools we’re building (the rda registry as case in point) are intended to give human developers what they want for their tasks (human readable uris, in a variety of languages) but ensure that the uris for properties and values are set up based on what machines need. in this way, changes in the lexical uris (human-readable) can be maintained properly without costly change in the canonical uris that travel with the data content itself. the multiple language translations (and distributed translation management by language communities) also enable humans to build discovery and display mechanisms for users that are speakers of a variety of languages. this has been a particularly important value for national libraries outside the us, but also potentially for libraries in the us meeting the needs of non-english language communities closer to home. it’s too easy for the english-first library development community to insist that uris be readable in english and to turn a blind eye to the degree that this imposes understanding of the english language and anglo-american library culture on the rest of the world. this is not automatically the intellectual gift that the distributors of that culture assume it to be. it shouldn’t be necessary for non-anglo-american catalogers to learn and understand anglo-american language and culture in order to express metadata for a non-anglo audience. this is the rough equivalent of the philadelphia cheese steak vendor who put up a sign reading “this is america. when ordering speak in english”. we understand that for english-speaking developers bibframe.org/vocab/title is initially easier to use than rdaregistry.info/elements/w/p or even (heaven forefend!) “ _ #$a” (in rdf: marc rdf.info/elements/ xx/m _a). that’s why rda provides rdaregistry.info/elements/w/titleofthework.en but also, eventually, rdaregistry.info/elements/w/拥有该作品的标题.ch and rdaregistry.info/elements/w/tienetítulodelaobra.es, et al (you do understand latin of course). these ‘unnatural’ lexical aliases will be provided by the ‘native’ language speakers of their respective national library communities. as one of the many thousands of librarians who ‘speak’ marc to one another–despite our language differences–i am loathe to give up that international language to an english-only world. that seems like a step backwards. by diane hillmann, january , , : pm (utc- ) bibframe, linked data, rda, vocabularies comment (show inline) review of: draft principles for evaluating metadata standards metadata standards is a huge topic and evaluation a difficult task, one i’ve been involved in for quite a while. so i was pretty excited when i saw the link for “draft principles for evaluating metadata standards”, but after reading it? not so much. if we’re talking about “principles” in the sense of ‘stating-the-obvious-as-a-first-step’, well, okay—but i’m still not very excited. i do note that the earlier version link uses the title ‘draft checklist’, and i certainly think that’s a bit more real than ‘draft principles’ for this effort. but even taken as a draft, the text manages to use lots of terms without defining them—not a good thing in an environment where semantics is so important. let’s start with a review of the document itself, then maybe i can suggest some alternative paths forward. first off, i have a problem with the preamble: “these principles are intended for use by libraries, archives and museum (lam) communities for the development, maintenance, governance, selection, use and assessment of metadata standards. they apply to metadata structures (field lists, property definitions, etc.), but can also be used with content standards and value vocabularies”. those tasks (“development, maintenance, governance, selection, use and assessment” are pretty all encompassing, but yet the connection between those tasks and the overall “evaluation” is unclear. and, of course, without definitions, it’s difficult to understand how ‘evaluation’ relates to ‘assessment’ in this context—are they they same thing? moving on to the second part about what kind of metadata standards that might be evaluated, we have a very general term, ‘metadata structures’, with what look to be examples of such structures (field lists, property definitions, etc.). some would argue (including me) that a field list is not a structure without a notion of connections between the fields; and although property definitions may be part of a ‘structure’ (as i understand it, at least), they are not a structure, per se. and what is meant by the term ‘content standards’, and how is that different from ‘metadata structures’? the term ’value vocabularies’ goes by many names, and is not something that can go without a definition. i say this as an author/co-author of a lot of papers that use this term, and we always define it within the context of the paper for just that reason. there are many more places in the text where fuzziness in terminology is a problem (maybe not a problem for a checklist, but certainly for principles). some examples: . what is meant by ’network’? there are many different kinds, and if you mean to refer to the internet, for goodness sakes say so. ‘things’ rather than ‘strings’ is good, but it will take a while to make it happen in legacy data, which we’ll be dealing with for some time, most likely forever. prospectively created data is a bit easier, but still not a cakewalk — if the ‘network’ is the global internet, then “leveraging ‘by-reference’ models” present yet-to-be-solved problems of network latency, caching, provenance, security, persistence, and most importantly: stability. metadata models for both properties and controlled values are an essential part of lam systems and simply saying that metadata is “most efficient when connected with the broader network” doesn’t necessarily make it so. . ‘open’ can mean many things. are we talking specific kinds of licenses, or the lack of a license? what kind of re-use are you talking about? extension? wholesale adoption with namespace substitution? how does semantic mapping fit into this? (in lieu of a definition, see the paper at ( ) below) . this principle seems to imply that “metadata creation” is the sole province of human practitioners and seriously muddies the meaning of the word creation by drawing a distinction between passive system-created metadata and human-created metadata. metadata is metadata and standards apply regardless. what do you mean by ‘benefit user communities’? whose communities? please define what is meant by ‘value’ in this context? how would metadata practitioners ‘dictate the level of description provided based on the situation at hand’? . as an evaluative ‘principle’ this seems overly vague. how would you evaluate a metadata standard’s ability to ‘easily’ support ‘emerging’ research? what is meant by ‘exchange/access methods’ and what do they have to do with metadata standards for new kinds of research? . i agree totally with the sentence “metadata standards are only as valuable and current as their communities of practice,” but the one following makes little sense to me. “ … metadata in lam institutions have been very stable over the last years …” really? it could easily be argued that the reason for that perceived stability is the continual inability of implementers to “be a driving force for change” within a governance model that has at the same time been resistant to change. the existence of the dcmi usage board, marbi, the various boards advising the rda steering committee, all speak to the involvement of ‘implementers’. yet there’s an implication in this ‘principle’ that stability is liable to no longer be the case and that implementers ‘driving’ will somehow make that inevitable lack of stability palatable. i would submit that stability of the standard should be the guiding principle rather than the democracy of its governance. . “extensible, embeddable, and interoperable” sounds good, but each is more complex than this triumvirate seems. interoperability in particular is something that we should all keep in mind, but although admirable, interoperability rarely succeeds in practice because of the practical incompatibility of different models. dc, marc , bibframe, rda, and schema.org are examples of this — despite their ‘modularity’ they generally can’t simply be used as ‘modules’ because of differences in the thinking behind the model and their respective audiences. i would also argue that ‘lite style implementations’ make sense only if ‘lite’ means a dumbed-down core that can be mapped to by more detailed metadata. but stressing the ‘lite implementations’ as a specified part of an overall standard gives too much power to the creator of the standard, rather than the creator of the data. instead we should encourage the use of application profiles, so that the particular choices and usages of the creating entity are well documented, and others can use the data in full or in part according to their needs. i predict that lossy data transfer will be less acceptable in the reality than it is in the abstract, and would suggest that dumb data is more expensive over the longer term (and certainly doesn’t support ‘new research methods’ at all). “incorporation into local systems” really can only be accomplished by building local systems that adhere to their own local metadata model and are able to map that model in/out to more global models. extensible and embeddable are very different from interoperable in that context. . the last section, after the inarguable first sentence, describes what the dcmi ‘dumb-down’ principle defined nearly twenty years ago, and that strategy still makes sense in a lot of situations. but ‘graceful degradation’ and ‘supporting new and unexpected uses’ requires smart data to start with. ‘lite’ implementation choices (as in # above) preclude either of those options, imo, and ‘adding value’ of any kind (much less by using ‘ontological inferencing’) is in no way easily achievable. i intend to be present at the session in boston [ : - : boston conference and exhibition center, ab] and since i’ve asked most of my questions here i intend not to talk much. let’s see how successful i can be at that! it may well be that a document this short and generalized isn’t yet ready to be a useful tool for metadata practitioners (especially without definitions!). that doesn’t mean that the topics that it’s trying to address aren’t important, just that the comprehensive goals in the preamble are not yet being met in this document. there are efforts going on in other arenas–the niso bibliography roadmap work, for instance, that should have an important impact on many of these issues, which suggests that it might be wise for the committee to pause and take another look around. maybe a good glossary would be a important step? dunsire, gordon, et al. “a reconsideration of mapping in a semantic world”, paper presented at international conference on dublin core and metadata applications, the hague, . available at: dcpapers.dublincore.org/pubs/article/view/ / by diane hillmann, december , , : pm (utc- ) ala conferences, systems, vocabularies comment (show inline) the jane-athons continue! the jane-athon series is alive, well, and expanding its original vision. i wrote about the first ‘official’ jane-athon earlier this year, after the first event at midwinter . since then the excitement generated at the first one has spawned others: the ag-athon in the uk in may , sponsored by cilip the maurice dance in new zealand (october , at the national library of new zealand in wellington, focused on maurice gee) the jane-in (at ala san francisco at annual ) the rls-athon (november , , edinburgh, scotland), following the jsc meeting there and focused on robert louis stevenson like good librarians we have an archive of the jane-athon materials, for use by anyone who wants to look at or use the presentations or the data created at the jane-athons we’re still at it: the next jane-athon in the series will be the boston thing-athon at harvard university on january , . looking at the list of topics gives a good idea about how the jane-athons are morphing to a broader focus than that of a creator, while training folks to create data with rimmf. the first three topics (which may change–watch this space) focus not on specific creators, but on moving forward on topics identified of interest to a broader community. * strings vs things. a focus on replacing strings in metadata with uris for things. * institutional repositories, archives and scholarly communication. a focus on issues in relating and linking data in institutional repositories and archives with library catalogs. * rare materials and rda. a continuing discussion on the development of rda and dcrm begun at the jsc meeting and the international seminar on rda and rare materials held in november . for beginners new to rda and rimmf but with an interest in creating data, we offer: * digitization. a focus on how rda relates metadata for digitized resources to the metadata for original resources, and how rimmf can be used to improve the quality of marc records during digitization projects. * undergraduate editions. a focus on issues of multiple editions that have little or no change in content vs. significant changes in content, and how rda accommodates the different scenarios. further on the horizon is a recently approved jane-athon for the aall conference in july , focusing on hugo grotius (inevitably, a hugo-athon, but there’s no link yet). note: the thing-a-thon coming up at ala midwinter is being held on thursday rather than the traditional friday to open the attendance to those who have other commitments on friday. another new wrinkle is the venue–an actual library away from the conference center! whether you’re a cataloger or not-a-cataloger, there will be plenty of activities and discussions that should pique your interest. do yourself a favor and register for a fun and informative day at the thing-athon to begin your midwinter experience! instructions for registering (whether or not you plan to register for mw) can be found on the toolkit blog. by diane hillmann, december , , : am (utc- ) uncategorized post a comment separating ideology, politics and utility those of you who pay attention to politics (no matter where you are) are very likely to be shaking your head over candidates, results or policy. it’s a never ending source of frustration and/or entertainment here in the u.s., and i’ve noticed that the commentators seem to be focusing in on issues of ideology and faith, particularly where it bumps up against politics. the visit of pope francis seemed to be taking everyone’s attention while he was here, but though this event has added some ‘green’ to the discussion, it hasn’t pushed much off the political plate. politics and faith bump up against each other in the metadata world, too. what with traditionalists still thinking in marc tags and aacr , to the technical types rolling their eyes at any mention of marc and trying to push the conversation towards rda, rdf, bibframe, schema.org, etc., there are plenty of metadata politics available to flavor the discussion. the good news for us is that the conflicts and differences we confront in the metadata world are much more amenable to useful solution than the politics crowding our news feeds. i remember well the days when the choice of metadata schema was critical to projects and libraries. unfortunately, we’re all still behaving as if the proliferation of ‘new’ schemas makes the whole business more complicated–that’s because we’re still thinking we need to choose one or another, ignoring the commonality at the core of the new metadata effort. but times have changed, and we don’t all need to use the same schema to be interoperable (just like we don’t all need to speak english or esperanto to communicate). but what we do need to think about is what the needs of our organization are at all stages of the workflow: from creating, publishing, consuming, through integrating our metadata to make it useful in the various efforts in which we engage. one thing we do need to consider as we talk about creating new metadata is whether it will need to work with other data that already exists in our institution. if marc is what we have, then one requirement may be to be able to maintain the level of richness we’ve built up in the past and still move that rich data forward with us. this suggests to me that rda, which rimmf has demonstrated can be losslessly mapped to and from marc, might be the best choice for the creation of new metadata. back in the day, when dublin core was the shiny new thing, the notion of ‘dumb-down’ was hatched, and though not an elegantly named principle, it still works. it says that rich metadata can be mapped fairly easily into a less-rich schema (‘dumbed down’), but once transformed in a lossy way, it can’t easily be ‘smartened up’. but in a world of many publishers of linked data, and many consumers of that data, the notion of transforming rich metadata into any number of other schemas and letting the consumer chose what they want, is fairly straightforward, and does not require firm knowledge (or correct assumptions) of what the consumers actually need. this is a strategy well-tested with oai-pmh which established a floor of simple dublin core but encouraged the provision of any number of other formats as well, including marc. as consumers, libraries and other cultural institutions are also better served by choices. depending on the services they’re trying to support, they can choose what flavor of data meets their needs best, instead of being offered only what the provider assumes they want. this strategy leaves open the possibility of serving marc as one of the choices, allowing those institutions still nursing an aged ils to continue to participate. of course, the consumers of data need to think about how they aggregate and integrate the data they consume, how to improve that data, and how to make their data services coherent. that’s the part of the new create, publish, consume, integrate cycle that scares many librarians, but it shouldn’t–really! so, it’s not about choosing the ‘right’ metadata format, it’s about having a fuller and more expansive notion about sharing data and learning some new skills. let’s kiss the politics goodbye, and get on with it. by diane hillmann, october , , : am (utc- ) linked data, rda, vocabularies comment (show inline) semantic versioning and vocabularies a decade ago, when the open metadata registry (omr) was just being developed as the nsdl registry, the vocabulary world was a very different place than it is today. at that point we were tightly focussed on skos (not fully cooked at that point, but jon was on the wg that was developing it, so we felt pretty secure diving in). but we were thinking about versioning in the open world of rdf even then. the nsdl registry kept careful track of all changes to a vocabulary (who, what, when) and the only way to get data in was through the user interface. we ran an early experiment in making versions based on dynamic, timestamp-based snapshots (we called them ‘time slices’, git calls them ‘commit snapshots’) available for value vocabularies, but this failed to gain any traction. this seemed to be partly because, well, it was a decade ago for one, and while it attempted to solve an open world problem with versioned uris, it created a new set of problems for closed world experimenters. ultimately, we left the versions issue to sit and stew for a bit ( years!). all that started to change in as we started working with rda, and needed to move past value vocabularies into properties and classes, and beyond that into issues around uploading data into the omr. lately, git and github have started taking off and provide a way for us to make some important jumps in functionality that have culminated in the omr/github-based rda registry. sounds easy and intuitive now, but it sure wasn’t at the time, and what most people don’t know is that the omr is still where rda/rdf data originates — it wasn’t supplanted by git/github, but is chugging along in the background. the omr’s rdf cms is still visible and usable by all, but folks managing larger vocabularies now have more options. one important aspect of the use of git and github was the ability to rethink versioning. just about a year ago our paper on this topic (versioning vocabularies in a linked data world, by diane hillmann, gordon dunsire and jon phipps) was presented to the ifla satellite meeting in paris. we used as our model the way software on our various devices and systems is updated–more and more these changes happen without much (if any) interaction with us. in the world of vocabularies defining the properties and values in linked data, most updating is still very manual (if done at all), and the important information about what has changed and when is often hidden behind web pages or downloadable files that provide no machine-understandable connections identifying changes. and just solving the change management issue does little to solve the inevitable ‘vocabulary rot’ that can make published ‘linked data’ less and less meaningful, accurate, and useful over time. building stable change management practices is a very critical missing piece of the linked data publishing puzzle. the problem will grow exponentially as language versions and inter-vocabulary mappings start to show up as well — and it won’t be too long before that happens. please take a look at the paper and join in the conversation! by diane hillmann, september , , : pm (utc- ) rda, tools, vocabularies post a comment five star vocabulary use most of us in the library and cultural heritage communities interested in metadata are well aware of tim berners-lee’s five star ratings for linked open data (in fact, some of us actually have the mug). the five star rating for lod, intended to encourage us to follow five basic rules for linked data is useful, but, as we’ve discussed it over the years, a basic question rises up: what good is linked data without (property) vocabularies? vocabulary manager types like me and my peeps are always thinking like this, and recently we came across solid evidence that we are not alone in the universe. check out: “five stars of linked data vocabulary use”, published last year as part of the semantic web journal. the five authors posit that tbl’s five star linked data is just the precondition to what we really need: vocabularies. they point out that the original star rating says nothing about vocabularies, but that linked data without vocabularies is not useful at all: “just converting a csv file to a set of rdf triples and linking them to another set of triples does not necessarily make the data more (re)usable to humans or machines.” needless to say, we share this viewpoint! i’m not going to steal their thunder and list here all five star categories–you really should read the article (it’s short), but only note that the lowest level is a zero star rating that covers ld with no vocabularies. the five star rating is reserved for vocabularies that are linked to other vocabularies, which is pretty cool, and not easy to accomplish by the original publisher as a soloist. these five star ratings are a terrific start to good practices documentation for vocabularies used in lod, which we’ve had in our minds for some time. stay tuned. by diane hillmann, august , , : pm (utc- ) linked data, vocabularies post a comment what do we mean when we talk about ‘meaning’? over the past weekend i participated in a twitter conversation on the topic of meaning, data, transformation and packaging. the conversation is too long to repost here, but looking from july - for @metadata_maven should pick most of it up. aside from my usual frustration at the message limitations in twitter, there seemed to be a lot of confusion about what exactly we mean about ‘meaning’ and how it gets expressed in data. i had a skype conversation with @jonphipps about it, and thought i could reproduce that here, in a way that could add to the original conversation, perhaps clarifying a few things. [probably good to read the twitter conversation ahead of reading the rest of this.] jon phipps: i think the problem that the people in that conversation are trying to address is that marc has done triple duty as a local and global serialization (format) for storage, supporting indexing and display; a global data interchange format; and a focal point for creating agreement about the rules everyone is expected to follow to populate the data (aacr , rda). if you walk away from that, even if you don’t kill it, nothing else is going to be able to serve that particular set of functions. but that’s the way everyone chooses to discuss bibframe, or schema.org, or any other ‘marc replacement’. diane hillmann: yeah, but how does ‘meaning’ merely expressed on a wiki page help in any way? isn’t the idea to have meaning expressed with the data itself? jon phipps: it depends on whether you see rdf as a meaning transport mechanism or a data transport mechanism. that’s the difference between semantic data and linked data. diane hillmann: it’s both, don’t you think? jon phipps: semantic data is the smart subset of linked data. diane hillmann: nice tagline jon phipps: zepheira, and now dc, seem to be increasingly looking at rdf as merely linked data. i should say a transport mechanism for ‘linked’ data. diane hillmann: it’s easier that way. jon phipps: exactly. basically what they’re saying is that meaning is up to the receiver’s system to determine. dc:title of ‘mr.’ is fine in that world–it even validates according to the ‘new’ ap thinking. it’s all easier for the data producers if they don’t have to care about vocabularies. but the value of rdf is that it’s brilliantly designed to transport knowledge, not just data. rdf data is intended to live in a world where any thing can be described by any thing, and all of those descriptions can be aggregated over time to form a more complete description of the thing being described. knowledge transfer really benefits from semantic web concepts like inferences and entailments and even truthiness (in addition to just validation). if you discount and even reject those concepts in a linked data world than you might as well ship your data around as csv or even sql files and be done with it. one of the things about marc is that it’s incredibly semantically rich (marc rdf.info) and has also been brilliantly designed by a lot of people over a lot of years to convey an equally rich body of bibliographic knowledge. but throwing away even a small portion of that knowledge in pursuit of a far dumber linked data holy grail is a lot like saying that since most people only use a relatively limited number of words (especially when they’re texting) we have no need for a , word, or even a , word, dictionary. marc makes knowledge transfer look relatively easy because the knowledge is embedded in a vocabulary every cataloger learns and speaks fairly fluently. it looks like it’s just a (truly limiting) data format so it’s easy to think that replacing it is just a matter of coming up with a fresh new format, like rdf. but it’s going to be a lot harder than that, which is tacitly acknowledged by the many-faceted effort to permanently dumb-down bibliographic metadata, and it’s one of the reasons why i think bibframe.org, bibfra.me, and schema.org might end up being very destructive, given the way they’re being promoted (be sure to park your marc somewhere). [that’s why we’re so focused on the rda data model (which can actually be semantically richer than marc), why we helped create marc rdf.info, and why we’re working at building out our rdf vocabulary management services.] diane hillmann: this would be a great conversation to record for a podcast 😉 jon phipps: i’m not saying proper vocabulary management is easy. look at us for instance, we haven’t bothered to publish the omr vocabs and only one person has noticed (so far). but they’re in active use in every omr-generated vocab. the point i was making was that we we’re no better, as publishers of theoretically semantic metadata, at making sure the data was ‘meaningful’ by making sure that the vocabs resolved, had definitions, etc. [p.s. we’re now working on publishing our registry vocabularies.] by diane hillmann, july , , : pm (utc- ) linked data, rda, vocabularies comment (show inline) fresh from ala, what’s new? in the old days, when i was on marbi as liaison for aall, i used to write a fairly detailed report, and after that wrote it up for my cornell colleagues. the gist of those reports was to describe what happened, and if there might be implications to consider from the decisions. i don’t propose to do that here, but it does feel as if i’m acting in a familiar ‘reporting’ mode. in an early saturday presentation sponsored by the linked library data ig, we heard about bibframe and vivo. i was very interested to see how vivo has grown (having seen it as an infant), but was puzzled by the suggestion that it or foaf could substitute for the functionality embedded in authority records. for one thing, auth records are about disambiguating names, and not describing people–much as some believe that’s where authority control should be going. even when we stop using text strings as identifiers, we’ll still need that function and should be thinking carefully whether adding other functions makes good sense. later on saturday, at the cataloging norms ig meeting, nancy fallgren spoke on the nlm collaboration with zepheira, gw, (and others) on bibframe lite. they’re now testing the kuali ole cataloging module for use with bf lite, which will include a triple store. an important quote from nancy: “legacy data should not drive development.” so true, but neither should we be starting over, or discarding data, just to simplify data creation, thus losing the ability to respond to the more complex needs in cataloging, which aren’t going away, (a point demonstrated usefully in the recent jane-athons). i was the last speaker on that program, and spoke on the topic of “what can we do about our legacy data?” i was primarily asking questions and discussing options, not providing answers. the one thing i am adamant about is that nobody should be throwing away their marc records. i even came up with a simple rule: “park the marc”. after all, storage is cheap, and nobody really knows how the current situation will settle out. data is easy to dumb down, but not so easy to smarten up, and there may be do-overs in store for some down the road, after the experimentation is done and the tradeoffs clearer. i also attended the bibframe update, and noted that there’s still no open discussion about the ‘classic’ (as in ‘classic coke’) bibframe version used by lc, and the ‘new’ (as in ‘new coke’) bibframe lite version being developed by zepheira, which is apparently the vocabulary they’re using in their projects and training. it seems like it could be a useful discussion, but somebody’s got to start it. it’s not gonna be me. the most interesting part of that update from my point of view was hearing sally mccallum talk about the testing of bibframe by lc’s catalogers. the tool they’re planning on using (in development, i believe) will use rda labels and include rule numbers from the rda toolkit. now, there’s a test i really want to hear about at midwinter! but of course all of that rda ‘testing’ they insisted on several years ago to determine if the rda rules could be applied to marc doesn’t (can’t) apply to bibframe classic so … will there be a new round of much publicized and eagerly anticipated shared institutional testing of this new tool and its assumptions? just askin’. by diane hillmann, july , , : am (utc- ) ala conferences, bibframe, rda, vocabularies post a comment what’s up with this jane-athon stuff? the rda development team started talking about developing training for the ‘new’ rda, with a focus on the vocabularies, in the fall of . we had some notion of what we didn’t want to do: we didn’t want yet another ‘sage on the stage’ event, we wanted to re-purpose the ‘hackathon’ model from a software focus to data creation (including a major hands-on aspect), and we wanted to demonstrate what rda looked like (and could do) in a native rda environment, without reference to marc. this was a tall order. using rimmf for the data creation was a no-brainer: the developers had been using the rda registry to feed new vocabulary elements into their their software (effectively becoming the rda registry’s first client), and were fully committed to frbr. deborah fritz had been training librarians and other on rimmf for years, gathering feedback and building enthusiasm. it was deborah who came up with the jane-athon idea, and the rda development group took it and ran with it. using the jane austen theme was a brilliant part of deborah’s idea. everybody knows about ja, and the number of spin offs, rip-offs and re-tellings of the novels (in many media formats) made her work a natural for examining why rda and frbr make sense. one goal stated everywhere in the marketing materials for our first jane outing was that we wanted people to have fun. all of us have been part of the audience and on the dais for many information sessions, for rda and other issues, and neither position has ever been much fun, useful as the sessions might have been. the same goes for webinars, which, as they’ve developed in library-land tend to be dry, boring, and completely bereft of human interaction. and there was a lot of fun at that first jane-athon–i venture to say that % of the folks in the room left with smiles and thanks. we got an amazing response to our evaluation survey, and the preponderance of responses were expansive, positive, and clearly designed to help the organizers to do better the next time. the various folks from ala publishing who stood at the back and watched the fun were absolutely amazed at the noise, the laughter, and the collaboration in evidence. no small part of the success of jane-athon rested with the team leaders at each table, and the coaches going from table to table helping out with puzzling issues, ensuring that participants were able to create data using rimmf that could be aggregated for examination later in the day. from the beginning we thought of jane as the first of many. in the first flush of success as participants signed up and enthusiasm built, we talked publicly about making it possible to do local jane-athons, but we realized that our small group would have difficulty doing smaller events with less expertise on site to the same standard we set at jane-athon . we had to do a better job in thinking through the local expansion and how to ensure that local participants get the same (or similar) value from the experience before responding to requests. as a step in that direction cilip in the uk is planning an ag-athon on may , which will add much to the collective experience as well as to the data store that began with the first jane-athon and will be an increasingly important factor as we work through the issues of sharing data. the collection and storage of the jane-athon data was envisioned prior to the first event, and the r-balls site was designed as a place to store and share rimmf-based information. though a valuable step towards shareable rda data, rballs have their limits. the data itself can be curated by human experts or available with warts, depending on the needs of the user of the data. for the longer term, rimmf can output rdf statements based on the rball info, and a triple store is in development for experimentation and exploration. there are plans to improve the visualization of this data and demonstrate its use at jane-athon in san francisco, which will include more about rda and linked data, as well as what the created data can be used for, in particular, for new and improved services. so, what are the implications of the first jane-athon’s success for libraries interested in linked data? one of the biggest misunderstandings floating around libraryland in linked data conversations is that it’s necessary to make one and only one choice of format, and eschew all others (kind of like saying that everyone has to speak english to participate in lod). this is not just incorrect, it’s also dangerous. in the marc era, there was truly no choice for libraries–to participate in record sharing they had to use marc. but the technology has changed, and rapidly evolving semantic mapping strategies [see: dcpapers.dublincore.org/pubs/article/view/ ] will enable libraries to use the most appropriate schemas and tools for creating data to be used in their local context, and others for distributing that data to partners, collaborators, or the larger world. another widely circulated meme is that rda/frbr is ‘too complicated’ for what libraries need; we’re encouraged to ‘simplify, simplify’ and assured that we’ll still be able to do what we need. hmm, well, simplification is an attractive idea, until one remembers that the environment we work in, with evolving carriers, versions, and creative ideas for marketing materials to libraries is getting more complex than ever. without the specificity to describe what we have (or have access to), we push the problem out to our users to figure out on their own. libraries have always tried to be smarter than that, and that requires “smart” , not “dumb”, metadata. of course the corollary to the ‘too complicated’ argument lies the notion that a) we’re not smart enough to figure out how to do rda and frbr right, and b) complex means more expensive. i refuse to give space to a), but b) is an important consideration. i urge you to take a look at the jane-athon data and consider the fact that jane austen wrote very few novels, but they’ve been re-published with various editions, versions and commentaries for almost two centuries. once you add the ‘based on’, ‘inspired by’ and the enormous trail created by those trying to use jane’s popularity to sell stuff (“sense and sensibility and sea monsters” is a favorite of mine), you can see the problem. think of a pyramid with a very expansive base, and a very sharp point, and consider that the works that everything at the bottom wants to link to don’t require repeating the description of each novel every time in rda. and we’re not adding notes to descriptions that are based on the outdated notion that the only use for information about the relationship between “sense and sensibility and sea monsters” and jane’s “sense and sensibility” is a human being who looks far enough into the description to read the note. one of the big revelations for most jane-athon participants was to see how well rimmf translated legacy marc records into rda, with links between the wem levels and others to the named agents in the record. it’s very slick, and most importantly, not lossy. consider that rimmf also outputs in both marc and rdf–and you see something of a missing link (if not the golden gate bridge :-). not to say there aren’t issues to be considered with rda as with other options. there are certainly those, and they’ll be discussed at the jane-in in san francisco as well as at the rda forum on the following day, which will focus on current rda upgrades and the future of rda and cataloging. (more detailed information on the forum will be available shortly). don’t miss the fun, take a look at the details and then go ahead and register. and catalogers, try your best to entice your developers to come too. we’ll set up a table for them, and you’ll improve the conversation level at home considerably! by diane hillmann, may , , : am (utc- ) linked data, rda, uncategorized comment (show inline) older articles » schnellnavigation: jump to start of page | jump to posts | jump to navigation syndication rdf articles rss articles atom articles archives february january december october september august july may february december november october september february december july may october august july june may april march december september april march february january october september august july june april march february january november august july may april march february january december november categories ala conferences ( ) bibframe ( ) dublin core ( ) futures ( ) legislative data project ( ) linked data ( ) marc in rdf ( ) meeting reports ( ) presentations ( ) rda ( ) tools ( ) systems ( ) teaching ( ) uncategorized ( ) vocabularies ( ) april s m t w t f s « feb «-»     search search the archive latest comments denying the non-english speaking world   karen coyle what do we mean when we talk about ‘meaning’?   owen stephens why are we waiting for the ils to change?   diane hillmann, dan scott mapping without taggregations   gordon dunsire, kathleen lamantia if we were asked   eddie f. fitzgerald, chuck getting to higher marc branches   gordon dunsire, karen coyle blogroll bibliographic wilderness catalogablog cataloging futures celeripedean coyle’s information go to hellman inkdroid litablog lorcan dempsey’s weblog metadata blog metalogue the frbr blog the registry blog thingology virtual dave … real blog weibel lines linkroll buttons schnellnavigation: jump to start of page | jump to posts | jump to navigation metadata matters is powered by wordpress v . . and binary blue v . . none documenting the now slack documenting the now slack the docnow team and advisory board is using slack as a collaboration space. you are welcome to join us by filling out the form below if you are interested in contributing to the conversation around the ethics of social media archiving, the docnow application, and web archiving practices in general. once you've been invited you can join our slack at: http://docnowteam.slack.com if you have questions or comments that are not answered in a timely manner, or that you would prefer to ask privately please get in touch with the core team at info@docnow.io and we will get back to you. documenting the now is dedicated to a harassment-free experience for everyone. our anti-harassment policy can be found at: https://github.com/docnow/code-of-conduct * required your name * your answer your email address * your answer your interest * your answer submit never submit passwords through google forms. this content is neither created nor endorsed by google. report abuse - terms of service - privacy policy  forms     scriptio continua scriptio continua thoughts on software development, digital humanities, the ancient world, and whatever else crosses my radar. all original content herein is licensed under a creative commons attribution license. reminder experiencing technical difficulties thank you dh data talk outside the tent missing dh first contact you did _what_? form-based xml editing how to apologize a spot of mansplaining tei in other formats; part the second: theory tei in other formats; part the first: html humanities data curation interfaces and models tei is a text modelling language i will never not ever type an angle bracket (or iwnnetaab for short) dh tea leaves that bug bit me #alt-ac careers: digital humanities developer addenda et corrigenda making a new numbers server for papyri.info #apa converting apis object artefact script stomping on innovation killers none d-lib magazine search d-lib:   home | about d-lib | current issue | archive | indexes | calendar | author guidelines | subscribe | contact d-lib   d - l i b   m a g a z i n e issn: - | https://doi.org/ . /dlib.magazine   d-lib magazine suspended publication of new issues in july . corporation for national research initiatives will continue to maintain the d-lib magazine archive, however, suggestions for long-term archiving are welcome, as are thoughts from the community on any alternate usage of the d-lib brand that would benefit the research community that has been served by d-lib's virtual pages over the last two decades. send suggestions to dlib@dlib.org.   d-lib magazine was produced by corporation for national research initiatives. prior to april , the magazine was sponsored by the defense advanced research project agency (darpa) on behalf of the digital libraries initiative under grant no. n - - - , and by the national science foundation (nsf) under grant no. iis- . from through , contributions by subscribers to the d-lib alliance provided financial support for the continued open access publication of d-lib magazine. in particular, d-lib thanks crossref, and hesburgh libraries at university of notre dame for their long-time membership in the d-lib alliance. privacy policy copyright© corporation for national research initiatives d-lib is registered in the u.s. patent and trademark office. none inicio - accesa info@accesa.org eventos inicio nosotros proyectos publicaciones equipo transparencia blog boletín revista sinergias contacto suscríbase accesa centro ciudadano de estudios para una sociedad abierta accesa centro ciudadano de estudios para una sociedad abierta en accesa buscamos mejorar la relación entre el estado y la sociedad, transformando las estructuras del estado a unas más abiertas y transparentes que logren satisfacer las demandas ciudadanas, y promoviendo que la sociedad se involucre activamente en la solución de sus problemas. transparencia promovemos todas las prácticas que facilitan el control ciudadano y la rendición de cuentas claras sobre las decisiones, acciones y asuntos de interés público. acceso a la información fomentamos que se garantice el derecho humano de acceder a toda la información de interés público de forma amplia, libre, igualitaria y sin discriminación alguna. participación ciudadana impulsamos el derecho y deber de la población a integrarse en procesos de deliberación y debate colectivo para incidir en la toma de decisión sobre asuntos de interés público. proyectos trabajamos para mejorar la calidad de la democracia en costa rica. conocé nuestros proyectos revista sinergias sinergias es nuestro proyecto editorial de divulgación, reflexión y análisis sobre apertura gubernamental, participación ciudadana, tecnología cívica,… apoyo a la co-creación del plan de acción de estado abierto - como parte de sus obligaciones por ser miembro de la alianza para un gobierno abierto… construcción colectiva de política y reglamento de participación ciudadana para el cantón de osa desde la perspectiva de gobierno abierto durante el año accesa, con el apoyo y financiamiento de la fundación trust for the… la sociedad abierta es una sociedad humanista, inclusiva, diversa, plural y orientada al bien común, que busca la realización de la libertad y los derechos de todas las personas.  blog   mapeando el desarrollo rural con la apertura de datos marzo, desde hace tres años nuestra organización ha buscado aprovechar la celebración internacional del open data… leer más proceso de co-creación del plan de estado abierto: nuestras reflexiones enero, consideramos que este ha sido el proceso de co-creación más transparente, participativo y riguroso que… leer más la participación ciudadana y el gobierno abierto: ¿antídotos para la crisis de la democracia? diciembre, acciones tendientes hacia la puesta en marcha de políticas de gobierno abierto siguen siendo incipientes… leer más nuestra valoración sobre el diálogo multisectorial diciembre, apoyamos las iniciativas de colaboración y deliberación, pero identificamos errores y falencias en este proceso de… leer más asociación centro ciudadano de estudios para una sociedad abierta inicio nosotros proyectos publicaciones equipo transparencia blog boletín revista sinergias contacto suscríbase none andromeda yelton andromeda yelton i haven’t failed, i’ve just tried a lot of ml approaches that don’t work &# ;let&# ;s blog every friday,&# ; i thought. &# ;it&# ;ll be great. people can see what i&# ;m doing with ml, and it will be a useful practice for me!&# ; and then i went through weeks on end of feeling like i had nothing to report because i was trying approach after approach to this one problem that simply &# ; continue reading i haven&# ;t failed, i&# ;ve just tried a lot of ml approaches that don&# ;t&# ;work &# ; this time: speaking about machine learning no tech blogging this week because most of my time was taken up with telling people about ml instead! one talk for an internal harvard audience, &# ;alice in dataland&# ;, where i explained some of the basics of neural nets and walked people through the stories i found through visualizing hamlet data. one talk for the &# ; continue reading this time: speaking about machine&# ;learning &# ; archival face recognition for fun and nonprofit in , dominique luster gave a super good code lib talk about applying ai to metadata for the charles &# ;teenie&# ; harris collection at the carnegie museum of art &# ; more than , photographs of black life in pittsburgh. they experimented with solutions to various metadata problems, but the one that&# ;s stuck in my head since &# ; continue reading archival face recognition for fun and&# ;nonprofit &# ; sequence models of language: slightly irksome not much ai blogging this week because i have been buried in adulting all week, which hasn&# ;t left much time for machine learning. sadface. however, i&# ;m in the last week of the last deeplearning.ai course! (well. of the deeplearning.ai sequence that existed when i started, anyway. they&# ;ve since added an nlp course and a gans &# ; continue reading sequence models of language: slightly&# ;irksome &# ; adapting coursera’s neural style transfer code to localhost last time, when making cats from the void, i promised that i&# ;d discuss how i adapted the neural style transfer code from coursera&# ;s convolutional neural networks course to run on localhost. here you go! step : first, of course, download (as python) the script. you&# ;ll also need the nst_utils.py file, which you can access via &# ; continue reading adapting coursera&# ;s neural style transfer code to&# ;localhost &# ; dear internet, merry christmas; my robot made you cats from the void recently i learned how neural style transfer works. i wanted to be able to play with it more and gain some insights, so i adapted the coursera notebook code to something that works on localhost (more on that in a later post), found myself a nice historical cat image via dpla, and started mashing it &# ; continue reading dear internet, merry christmas; my robot made you cats from the&# ;void &# ; this week in my ai after visualizing a whole bunch of theses and learning about neural style transfer and flinging myself at t-sne i feel like i should have something meaty this week but they can&# ;t all be those weeks, i guess. still, i&# ;m trying to hold myself to friday ai blogging, so here are some work notes: finished course &# ; continue reading this week in my&# ;ai &# ; though these be matrices, yet there is method in them. when i first trained a neural net on , theses to make hamlet, one of the things i most wanted to do is be able to visualize them. if word vec places documents &# ;near&# ; each other in some kind of inferred conceptual space, we should be able to see some kind of map of them, yes? &# ; continue reading though these be matrices, yet there is method in&# ;them. &# ; of such stuff are (deep)dreams made: convolutional networks and neural style transfer skipped fridai blogging last week because of thanksgiving, but let&# ;s get back on it! top-of-mind today are the firing of ai queen timnit gebru (letter of support here) and a couple of grant applications that i&# ;m actually eligible for (this is rare for me! i typically need things for which i can apply in my &# ; continue reading of such stuff are (deep)dreams made: convolutional networks and neural style&# ;transfer &# ; let’s visualize some hamlet data! or, d and t-sne for the lols. in , i trained a neural net on ~ k graduate theses using the doc vec algorithm, in hopes that doing so would provide a backend that could support novel and delightful discovery mechanisms for unique library content. the result, hamlet, worked better than i hoped; it not only pulls together related works from different departments (thus &# ; continue reading let&# ;s visualize some hamlet data! or, d and t-sne for the&# ;lols. &# ; none viaf viaf virtual international authority file search select field: all fields all headings corporate names geographic names personal names works expressions preferred headings exact heading bibliographic titles select index: all viaf argentina australia belgium (flemish) brazil canada catalunya chile croatia czech denmark (dbc) egypt estonia fast france (bnf) france (sudoc) germany getty (ulan) greece hispánica hungary iceland ireland isni israel italy japan (ndl) japan (nii) korea latvia lebanon lc (naco) lithuania luxembourg morocco netherlands norway (bibsys) norway (national library) iceland perseus poland (national library) poland (nukat) portugal québec rilm rism russia singapore slovakia slovenia spain sweden swiss (national library) swiss (rero) syriac taiwan vatican wikipedia xa xr search terms: viaf: the virtual international authority file the viaf® (virtual international authority file) combines multiple name authority files into a single oclc-hosted name authority service. the goal of the service is to lower the cost and increase the utility of library authority files by matching and linking widely-used authority files and making that information available on the web. learn more . viaf contributors library of congress/naco national library of mexico british library library and archives canada national agricultural library (u.s.) national library of medicine (u.s.) national library of new zealand national library of scotland national library of south africa national library of wales german national library national library of france national library of sweden national library of australia national library of spain national library of portugal national library of brazil central institute for the union catalogue of the italian libraries national library of the czech republic national library of israel israel museum library of alexandria, egypt vatican library swiss national library library and archives canada union list of artist names [getty research institute] nukat center of warsaw university library national széchényi library, hungary rero - library network of western switzerland sudoc [abes], france flemish public libraries national library of russia national library of the netherlands bibsys national library of greece national library of argentina national library of norway dbc (danish bibliographic center) danish agency for culture national diet library, japan nii (japan) national library board, singapore national library of latvia national library of poland national library of catalonia lebanese national library perseus syriac reference portal wikidata isni national library of ireland national and university library in zagreb national central library, taiwan national library and archives of québec national library of korea national library of luxembourg national library of chile national library of morocco xa extended authorities xr extended relationships fast subjects national library of estonia national and university library of iceland (nuli) repertoire international de litterature musicale, inc. (rilm) international inventory of musical sources (rism) nuk/cobiss.si, slovenia national library of lithuania slovak national library search note the search box at the top of this page searches a merged view of viaf derived from the name authority and related bibliographic data of the participating libraries. more information can be found at http://viaf.org/viaf/ © - oclc privacy policy cookie notice cookie settings hosted by oclc about the dataset send us a comment. about viaf none clir + dlf wordpress farm – just another wordpress site skip to content clir + dlf wordpress farm just another wordpress site registration has been disabled. clir + dlf wordpress farm proudly powered by wordpress skip to content open toolbar accessibility tools increase text decrease text grayscale high contrast negative contrast light background links underline readable font reset smartct homepage we're sorry but smartct doesn't work properly without javascript enabled. please enable it to continue. none none none none introducing a new and improved twitter api developer blog back developer blog tips community tools spotlight sign up ‎english (us)‎ ‎日本語‎ ‎english (us)‎ ‎日本語‎ sign up introducing a new and improved twitter api by ian cairns and priyanka shetty thursday, july link copied successfully we planned to launch the new twitter api on july , . but given the security incident we discovered on july , , the timing of our launch no longer made sense or felt right.  we updated this post on august , to include additional details below to support the official launch of the new twitter api. this tweet is unavailable this tweet is unavailable. -------------------------------------------- this tweet is unavailable this tweet is unavailable. your browser does not support the video element. play play pause seek % buffered : current time : duration : toggle mute volume today, we’re introducing the new twitter api. rebuilt from the ground up to deliver new features faster, today’s release includes the first set of new endpoints and features we’re launching so developers can help the world connect to the public conversation happening on twitter.  if you can’t wait to check it out, visit the new developer portal. if you can, then read on for more about what we’re building, what’s new about the twitter api v , what’s launching first, and what’s coming next.  this tweet is unavailable this tweet is unavailable. building in the open and what we've learned this tweet is unavailable this tweet is unavailable. your feedback has been essential in helping us define our vision and roadmap for the new twitter api. from tweets to focus groups, you have shared a ton of feedback with us over the past few years about what you need out of the twitter api and what we can do better. we also learned a lot through twitter developer labs where you’ve been sharing real-time feedback on the new api features we’ve tested in the open.  we’ve always known that our developer ecosystem is diverse, but our api has long taken a one-size-fits-all approach. your feedback helped us see the importance of making the new twitter api more flexible and scalable to fit your needs. with the new api, we are building new elevated access options and new product tracks, so more developers can find options to meet their needs. more on that below.  we also know it’s important to be able to plan ahead, and we want to do a better job of sharing our plans with you in advance. going forward, we’ll share more of what’s coming next on our public roadmap (updates coming soon). we're also sharing a guide to the future of the twitter api for more about what to expect as we roll out the new api. we have a lot planned, and it will evolve and improve as we continue to hear from you.  this tweet is unavailable this tweet is unavailable. twitter api v : what’s new? this tweet is unavailable this tweet is unavailable. a new foundation- the new api is built on a completely new foundation — rebuilt for the first time since — and includes new features so you can get more out of the public conversation. that new foundation allows us to add new functionality faster and better than we’ve done in the past, so expect more new features from twitter to show up in the api. with this new foundation, developers can expect to see: a cleaner api that's easier to use, with new developer features like the ability to specify which fields get returned, or retrieve more tweets from a conversation within the same response  some of the most requested features that were missing from the api, including conversation threading, poll results in tweets, pinned tweets on profiles, spam filtering, and a more powerful stream filtering and search query language  new access levels- with the new twitter api, we’re building multiple access levels to make it easier for developers to get started and to grow what they build. in the past, the twitter api was separated into three different platforms and experiences: standard (free), premium (self-serve paid), and enterprise (custom paid). as a developer's needs expanded, it required tedious migration to each api. in the future, all developers — from academic researchers to makers to businesses — will have options to get elevated access and grow on the same api.  this tweet is unavailable this tweet is unavailable. new product tracks- we love the incredible diversity of developers who use our api. our plan is to introduce new, distinct product tracks to better serve different groups of developers and provide them with the right experience and support for their needs, along with a range of relevant access levels, and appropriate pricing (where applicable). to start, these product tracks will include: standard: available first, this will be the default product track for most developers, including those just getting started, building something for fun, for a good cause, and to learn or teach. we plan to add elevated access to this track in the future. academic research: academic researchers use the twitter api to understand what’s happening in the public conversation. in the future, qualified academic researchers will have a way to get elevated or custom access to relevant endpoints. we’re also providing tools and guides to make it easier to conduct academic research with the twitter api. business: developers build businesses on the twitter api, including our twitter official partners and enterprise data customers. we love that their products help other people and businesses better understand and engage with the conversation on twitter. in the future, this track will include elevated or custom access to relevant endpoints. a new developer portal- to help you get the most out of the new api, we’ve also designed and built a new developer portal. this is where you can get started with our new onboarding wizard, manage apps, understand your api usage and limits, access our new support center, find documentation, and more to come in the future.  with the new twitter api, we hope to enable more:  academic research that helps the world better understand our shared perspectives on important topics such as: people’s attitudes about covid- , the social impact of floods and climate change, or the prevalence of hateful speech and how to address it.  tools that help make twitter better for the people who use it, like: blockparty, tweetdelete, and tokimeki unfollow. bots that share information and make conversations more fun like the: ham: drawings bot, house of lords hansard bot, and emoji mashup bot.  businesses like black swan, spiketrap, and social market analytics who serve innovative use cases such as social prediction of future product trends, ai-powered consumer insights and fintech market intelligence.  twitter official partners such as brandwatch, sprinklr and sprout social who help brands better understand and engage with their industry and customers. and much more, including new things we haven't thought of yet, but that we know you will... this tweet is unavailable this tweet is unavailable. so, what’s launching first? this tweet is unavailable this tweet is unavailable. one of the most common reasons developers use the twitter api is to listen to and analyze the conversation happening on twitter. so, soon we’ll release early access to an initial set of new endpoints for developers to:  stream tweets in real-time or analyze past conversations to help the world understand the public conversations happening on twitter, or help businesses discover customer insights from the conversation measure tweet performance to help people and businesses get better at using twitter listen for important events to help people learn about new things that matter to them on twitter and a whole lot more, with new options to explore tweets from any account all api features we’re releasing first will be available in our new – always free – basic access level. for most developers, basic access will provide everything you need to get started and build something awesome.  eventually, the new api will fully replace the v . standard, premium, and enterprise apis. before that can happen though, we have more to build, which is why we are referring to this phase as early access. it's a chance to get started now and get ahead. unlike twitter developer labs which hosts our experiments, everything in the first release will be fully supported and ready for you to use in production. to see the full list of api functionality and endpoints that are included in today’s release, check out our developer forum post. you can get started on the new api by creating a new project and app today in the new developer portal. you can also connect your new project to existing apps, if you would like. to get started with early access to the new twitter api, visit the new developer portal. if you don’t yet have a developer account, apply to get started. this tweet is unavailable this tweet is unavailable. what's next? this tweet is unavailable this tweet is unavailable. this is just the beginning. we’re sharing our public roadmap to keep you updated on our vision for the api, along with options to share feedback so that we can continue to learn from you along the way and so you can plan for what’s to come. on deck: full support to hide (and unhide) replies, and free elevated access for academic researchers.   developers like you push us and inspire us every day. your creativity and work with our api make twitter better for people & businesses, and make the world a better place. thanks for your partnership on the journey ahead.   this tweet is unavailable this tweet is unavailable. ian cairns ‎@cairns‎ head of product, twitter developer platform priyanka shetty ‎@_priyankashetty‎ product manager, twitter developer platform only on twitter #twitterapi @twitterdev @twitterapi tweet twitter logo icon tags: api data customer success link copied successfully more from tools prototyping in production for rapid user feedback by daniele bernardi on thursday, december a year with twitter developer labs: what we've learned and changed by kyle weiss on thursday, july enabling study of the public conversation in a time of crisis by adam tornes on wednesday, april announcing more functionality to improve customer engagements on twitter by jon cipriano on tuesday, december see what's happening ‎@twitter‎ twitter platform twitter.com status card validator privacy center transparency center twitter, inc. about the company twitter for good company news brand toolkit jobs and internships investors help help center using twitter twitter media ads help center managing your account safety and security rules and policies contact us developer resources developer home documentation forums communities developer blog engineering blog developer terms business resources advertise twitter for business resources and guides twitter for marketers marketing insights brand inspiration twitter data twitter flight school ‎© twitter, inc.‎ cookies privacy terms and conditions by using twitter’s services you agree to our cookies use. we use cookies for purposes including analytics, personalisation, and ads. ok none planet cataloging planet cataloging april , tsll techscans (technical services law librarians) getting to know larissa sullivant . introduce yourself.  my name is larissa sullivant. i am the head of collection services and adjunct lecture in law at the ruth lilly law library, indiana university robert mckinney school of law.  i started my professional career as a slavic cataloger at the university of michigan graduate library, and for the last years i have been a law librarian.  . does your job title actually describe what you do? why/why not?   i think that my job title, head of collection services, reflects my duties accurately, with responsibilities that include bibliographic and statistical analysis of the library’s collection; collection promotion, bibliographic selection, and “weeding”; electronic resources management, acquisitions, cataloging, and serials control; supervision of the technical services staff. i also handle negotiation of contracts and vendor relations and assist our library director in budgeting. i have regular hours at the reference desk, which during the pandemic means handling virtual reference. the last may not seem semantically connected to the job title, but it is an important part of being successful in my position: i need to know what our stakeholders read and research. . what are you reading right now?    as a native russian speaker, i am understandably drawn to that nation’s rich, literary traditions. i am currently re-reading nikolai gogol’s the overcoat and other short stories. each of the stories is a parable of human tragedies and failings: vanity, pettiness, hypocrisy, self-absorption, cruelty towards others, etc. my favorites are the nose and the overcoat. the nose has a decisive element of the absurd: a human-sized, disembodied nose of a privy counselor comes to life, parading around town and acting as a public official. the story is bitingly satirical, a critique of social hierarchies, which is a recurrent theme in gogol’s work. the overcoat concerns an impoverished clerk’s efforts to get a new and decent overcoat, so that his co-workers would stop berating him. in heartbreaking detail, it describes the clerk’s efforts in acquiring an overcoat, his various humiliations, and what happens after he finally gets his new coat.  . if you could work in any library (either a type of library or a specific one), what would it be? why? i am happy where i am: directing the technical services unit at the ruth lilly law library.  i enjoy every aspect of my duties and responsibilities.  my colleagues, both faculty and staff, are well-respected within the library and the law school communities and are wonderful and knowledgeable people. i truly enjoy working with all of them! . you suddenly have a free day at work, what project would you work on?  i think slow days in most work environments are rare. if i suddenly had a free day, i would focus first on organization – getting the paper and information monster under control – since, as all librarians know, organization is the key to everything else.  after that, i would chip away at one of my current projects: a comprehensive inventory of our microform collection, reconciling the online catalog bibliographic data with the physical microfiche and microfilm holdings.  tsll tech scans blog by noreply@blogger.com (lauren seney) at april , : pm planet cataloging is an automatically-generated aggregation of blogs related to cataloging and metadata designed and maintained by jennifer w. baxmeyer and kevin s. clarke. please feel free to email us if you think a blog should be added to or removed from this list. authors: if you would prefer your blog not be included here, we will be glad to remove it. please send an email to let us know. subscribe to planet cataloging! blog roll . : the dewey blog bibliographic wilderness blog of the ohio library council technical services division catalogablog cataloger . cataloging futures cataloging thoughts (stephen denney) celeripedean (jennifer eustis) commonplace.net (lukas koster) coyle's information first thus (james weinheimer) hectic pace international society for knowledge organization (isko) uk local weather (matthew beacom) lorcan dempsey's weblog metadata and more (maureen p. walsh) mashcat metadata matters (diane hillmann) metalibrarian oclc next open metadata registry blog organizing stuff outgoing problem cataloger quick t.s. (dodie gaudet) resource description & access (rda) (salman haider) tsll techscans (technical services law librarians) terry's worklog thingology (librarything's ideas blog) universal decimal classification various librarian-like stuff weibel lines work and expression z . .b (www.jenniferbax.net) catalogingrules (amber billey) mod librarian (tracy guza) last updated: april , : pm all times are utc. powered by: dshr's blog: elon musk: threat or menace? dshr's blog i'm david rosenthal, and this is a place to discuss the work i'm doing in digital preservation. tuesday, april , elon musk: threat or menace? although both tesla and spacex are major engineering achievements, elon musk seems completely unable to understand the concept of externalities, unaccounted-for costs that society bears as a result of these achievements. first, in tesla: carbon offsetting, but in reverse, jaime powell reacted to tesla taking $ . b in carbon offsets which provided the only profit tesla ever made and putting them into bitcoin: looked at differently, a single bitcoin purchase at a price of ~$ , has a carbon footprint of tons, the equivalent of ice cars. tesla’s average selling price in the fourth quarter of ? $ , . we’re not sure about you, but ft alphaville is struggling to square the circle of “buy a tesla with a bitcoin and create the carbon output of internal combustion engine cars” with its legendary environmental ambitions. unless, of course, that was never the point in the first place. below the fold, more externalities musk is ignoring. second, there is musk's obsession with establishing a colony on mars. even assuming spacex can stop their starship second stage exploding on landing, and do the same with the much bigger first stage, the mars colony scheme would have massive environmental impacts. musk envisages a huge fleet of starships ferrying people and supplies to mars for between and years. the climate effects of dumping this much rocket exhaust into the upper atmosphere over such a long period would be significant. the idea that a world suffering the catastrophic effects of climate change could sustain such an expensive program over many decades simply for the benfit of a miniscule fraction of the population is laughable. these externalities are in the future. but there are a more immediate set of externalities. back in i expressed my skepticism about "level " self-driving cars in techno-hype part , stressing that the problem was that to get to level , or as musk calls it "full self-driving", you need to pass through the levels where the software has to hand-off to the human. and the closer you get to level , the harder this problem becomes: suppose, for the sake of argument, that self-driving cars three times as good as waymo's are in wide use by normal people. a normal person would encounter a hand-off once in , miles of driving, or less than once a year. driving would be something they'd be asked to do maybe times in their life. even if, when the hand-off happened, the human was not "climbing into the back seat, climbing out of an open car window, and even smooching" and had full "situational awareness", they would be faced with a situation too complex for the car's software. how likely is it that they would have the skills needed to cope, when the last time they did any driving was over a year ago, and on average they've only driven times in their life? current testing of self-driving cars hands-off to drivers with more than a decade of driving experience, well over , miles of it. it bears no relationship to the hand-off problem with a mass deployment of self-driving technology. mack hogan's tesla's "full self driving" beta is just laughably bad and potentially dangerous starts: a beta version of tesla's "full self driving" autopilot update has begun rolling out to certain users. and man, if you thought "full self driving" was even close to a reality, this video of the system in action will certainly relieve you of that notion. it is perhaps the best comprehensive video at illustrating just how morally dubious, technologically limited, and potentially dangerous autopilot's "full self driving" beta program is. hogan sums up the lesson of the video: tesla's software clearly does a decent job of identifying cars, stop signs, pedestrians, bikes, traffic lights, and other basic obstacles. yet to think this constitutes anything close to "full self-driving" is ludicrous. there's nothing wrong with having limited capabilities, but tesla stands alone in its inability to acknowledge its own shortcomings. hogan goes on to point out the externalities: when technology is immature, the natural reaction is to continue working on it until it's ironed out. tesla has opted against that strategy here, instead choosing to sell software it knows is incomplete, charging a substantial premium, and hoping that those who buy it have the nuanced, advanced understanding of its limitations—and the ability and responsibility to jump in and save it when it inevitably gets baffled. in short, every tesla owner who purchases "full self-driving" is serving as an unpaid safety supervisor, conducting research on tesla's behalf. perhaps more damning, the company takes no responsibility for its actions and leaves it up to driver discretion to decide when and where to test it out. that leads to videos like this, where early adopters carry out uncontrolled tests on city streets, with pedestrians, cyclists, and other drivers unaware that they're part of the experiment. if even one of those tesla drivers slips up, the consequences can be deadly. of course, the drivers are only human so they do slip up: the tesla arrives at an intersection where it has a stop sign and cross traffic doesn't. it proceeds with two cars incoming, the first car narrowly passing the car's front bumper and the trailing car braking to avoid t-boning the model . it is absolutely unbelievable and indefensible that the driver, who is supposed to be monitoring the car to ensure safe operation, did not intervene there. an example of the kinds of problems that can be caused by autonomous vehicles behaving in ways that humans don't expect is reported by timothy b. lee in fender bender in arizona illustrates waymo’s commercialization challenge: a white waymo minivan was traveling westbound in the middle of three westbound lanes on chandler boulevard, in autonomous mode, when it unexpectedly braked for no reason. a waymo backup driver behind the wheel at the time told chandler police that "all of a sudden the vehicle began to stop and gave a code to the effect of 'stop recommended' and came to a sudden stop without warning." a red chevrolet silverado pickup behind the vehicle swerved to the right but clipped its back panel, causing minor damage. nobody was hurt. the tesla in the video made a similar unexpected stop. lee stresses that, unlike tesla's, waymo's responsible test program has resulted in a generally safe product, but not one that is safe enough: waymo has racked up more than million testing miles in arizona, california, and other states. this is far more than any human being will drive in a lifetime. waymo's vehicles have been involved in a relatively small number of crashes. these crashes have been overwhelmingly minor with no fatalities and few if any serious injuries. waymo says that a large majority of those crashes have been the fault of the other driver. so it's very possible that waymo's self-driving software is significantly safer than a human driver. ... the more serious problem for waymo is that the company can't be sure that the idiosyncrasies of its self-driving software won't contribute to a more serious crash in the future. human drivers cause a fatality about once every million miles of driving—far more miles than waymo has tested so far. if waymo scaled up rapidly, it would be taking a risk that an unnoticed flaw in waymo's programming could lead to someone getting killed. i'm a pedestrian, cyclist and driver in an area infested with teslas owned, but potentially not actually being driven, by fanatical early adopters and members of the cult of musk. i'm personally at risk from these people believing that what they paid good money for was "full self driving". when spacex tests starship at their boca chica site they take precautions, including road closures, to ensure innocent bystanders aren't at risk from the rain of debris when things go wrong. tesla, not so much. of course, tesla doesn't tell the regulators that what the cult members paid for was "full self driving"; that might cause legal problems. as timothy b. lee reports, tesla: “full self-driving beta” isn’t designed for full self-driving: "despite the "full self-driving" name, tesla admitted it doesn't consider the current beta software suitable for fully driverless operation. the company said it wouldn't start testing "true autonomous features" until some unspecified point in the future. ... tesla added that "we do not expect significant enhancements" that would "shift the responsibility for the entire dynamic driving task to the system." the system "will continue to be an sae level , advanced driver-assistance feature." sae level is industry jargon for a driver-assistance systems that perform functions like lane-keeping and adaptive cruise control. by definition, level systems require continual human oversight. fully driverless systems—like the taxi service waymo is operating in the phoenix area—are considered level systems." there is an urgent need for regulators to step up and stop this dangerous madness: the nhtsa should force tesla to disable "full self driving" in all its vehicles until the technology has passed an approved test program any vehicles taking part in such a test program on public roads should be clearly distinguishable from teslas being driven by actual humans, for example with orange flashing lights. self-driving test vehicles from less irresponsible companies such as waymo are distinguishable in this way, teslas in which some cult member has turned on "full self driving beta" are not. the ftc should force tesla to refund, with interest, every dollar paid by their customers under the false pretense that they were paying for "full self driving". posted by david. at : am labels: techno-hype comments: david. said... aaron gordon's this is the most embarrassing news clip in american transportation history is a brutal takedown of yet another of elon musk's fantasies: "last night, shepard smith ran a segment on his cnbc show revealing elon musk's boring campany's new las vegas car tunnel, which was paid for by $ million in taxpayer dollars. it is one of the most bizarre and embarrassing television segments in american transportation history, a perfect cap for one of the most bizarre and embarrassing transportation projects in american history." april , at : am david. said... eric berger's a new documentary highlights the visionary behind space settlement reviews the high frontier: the untold story of gerard k. o'neill: "o'neill popularized the idea of not just settling space, but of doing so in free space rather than on the surface of other planets or moons. his ideas spread through the space-enthusiast community at a time when nasa was about to debut its space shuttle, which first flew in . nasa had sold the vehicle as offering frequent, low-cost access to space. it was the kind of transportation system that allowed visionaries like o'neill to think about what humans could do in space if getting there were cheaper. the concept of "o'neill cylinders" began with a question he posed to his physics classes at princeton: "is a planetary surface the right place for an expanding industrial civilization?" as it turned out, following their analysis, the answer was no. eventually, o'neill and his students came to the idea of free-floating, rotating, cylindrical space colonies that could have access to ample solar energy." however attractive the concept is in the far future, i need to point out that pursuing it before the climate crisis has been satisfactorily resolved will make the lives of the vast majority of humanity worse for the benefit of a tiny minority. april , at : pm david. said... ‘no one was driving the car’: men dead after fiery tesla crash in spring, officials say : "harris county precinct constable mark herman told kprc that the investigation showed “no one was driving” the fully-electric tesla when the accident happened. there was a person in the passenger seat of the front of the car and in the rear passenger seat of the car." april , at : am david. said... timothy b. lee's consumer reports shows tesla autopilot works with no one in the driver’s seat reports: "tesla defenders also insisted that autopilot couldn't have been active because the technology doesn't operate unless someone is in the driver's seat. consumer reports decided to test this latter claim by seeing if it could get autopilot to activate without anyone in the driver's seat. it turned out not to be very difficult. sitting in the driver's seat, consumer reports' jake fisher enabled autopilot and then used the speed dial on the steering wheel to bring the car to a stop. he then placed a weighted chain on the steering wheel (to simulate pressure from a driver's hands) and hopped into the passenger seat. from there, he could reach over and increase the speed using the speed dial. autopilot won't function unless the driver's seatbelt is buckled, but it was also easy to defeat this check by threading the seatbelt behind the driver. ... the investigation makes clear that activating autopilot without being in the driver's seat requires deliberately disabling safety measures. fisher had to buckle the seatbelt behind himself, put a weight on the steering wheel, and crawl over to the passenger seat without opening any doors. anybody who does that knows exactly what they're doing. tesla fans argue that people who deliberately bypass safety measures like this have only themselves to blame if it leads to a deadly crash." well, yes, but musk's bs has been convincing them to try stunts like this for years. he has to be held responsible, and he has to disable "full self driving" before some innocent bystanders get killed. april , at : pm david. said... this automotive news editorial is right but misses the bigger picture: "tesla's years of misleading consumers about its vehicles' "full self-driving" capabilities — or lack thereof — claimed two more lives this month. ... when critics say the term "autopilot" gives the impression that the car can drive without oversight, tesla likes to argue that that's based on an erroneous understanding of airplanes' systems. but the company exploits consumers' overconfidence in that label with the way the feature is sold and promoted without correction among tesla's fanatical online community. those practices encourage misunderstanding and misuse. in public, musk says the company is very close to full sae level automated driving. in conversations with regulators, the company admits that autopilot and full self-driving are level driver-assist suites, not unlike those sold by many other automakers. this nation does not have a good track record of holding manufacturers accountable when their products are misused by the public, which is what happened in this case." it isn't just the darwin award winners at risk, it is innocent bystanders at risk. april , at : am post a comment newer post older post home subscribe to: post comments (atom) blog rules posts and comments are copyright of their respective authors who, by posting or commenting, license their work under a creative commons attribution-share alike . united states license. off-topic or unsuitable comments will be deleted. dshr dshr in anwr recent comments full comments blog archive ▼  ( ) ▼  april ( ) dogecoin disrupts bitcoin! what is the point? nfts and web archiving cryptocurrency's carbon footprint elon musk: threat or menace? ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) lockss system has permission to collect, preserve, and serve this archival unit. simple theme. powered by blogger. home - afonte jornalismo de dados home conteúdo sobre o que fazemos quem somos contato curso online da cásper líbero aborda marketing político nas redes sociais abril , ferramentas, métodos e estratégias de construção de imagem pública serão explorados em dois sábados de aulas ( e / ) referências sobre fact-checking para pesquisas e trabalhos acadêmicos março , dicas de leitura sobre checagem de fatos e desinformação para pesquisadores iniciantes dados jornalistas e cientistas de dados são os mais citados por especialistas brasileiros no twitter fevereiro , pesquisa do ibpad e science pulse analisou os perfis mais mencionados nas discussões sobre covid- então, o que é jornalismo profissional? janeiro , pesquisa recém publicada pela folha sugere que quem consome “jornalismo profissional” tem menos chance de acreditar em desinformação, mas há um conceito anterior a ser discutido para que tal conclusão faça sentido eventos confira como foi o lançamento do projeto postar ou não março , site e e-book buscam incentivar leitura crítica de conteúdos digitais, oferecendo referências bibliográficas e atividades focadas no público jovem afonte e goethe-institut porto alegre lançam site e e-book de educação midiática março , em site e e-book, “postar ou não?” é um guia hipermídia que busca incentivar a leitura crítica de conteúdos digitais com conceitos, dicas e testes siga nas redes sociais instagram facebook twitter pesquisar por: curso online da cásper líbero aborda marketing político nas redes sociais referências sobre fact-checking para pesquisas e trabalhos acadêmicos confira como foi o lançamento do projeto postar ou não afonte e goethe-institut porto alegre lançam site e e-book de educação midiática inscrições abertas para nova turma do curso de fact-checking na cásper líbero veja como foi o open data day poa jornalistas e cientistas de dados são os mais citados por especialistas brasileiros no twitter open data day poa foca em fiscalização de gastos públicos então, o que é jornalismo profissional? : o ano da transparência? amazônia artigos checagem coronavirus curso dadodasemana dados dados abertos desinformação dia dos dados abertos eleições eleições entrevista fact-checking google trends jornalismo jornalismo de dados lai lava jato media literacy open data day palestra porto alegre postar ou não? transparência nenhum comentário encontrado etiquetas amazônia artigos checagem coronavirus curso dadodasemana dados dados abertos desinformação dia dos dados abertos eleições eleições entrevista fact-checking google trends jornalismo jornalismo de dados lai lava jato media literacy meio ambiente mina guaíba open data day palestra pesquisa podcast porto alegre postar ou não? reportagem transparência páginas contato conteúdo home o que fazemos sobre quem somos artigos recentes curso online da cásper líbero aborda marketing político nas redes sociais referências sobre fact-checking para pesquisas e trabalhos acadêmicos confira como foi o lançamento do projeto postar ou não afonte e goethe-institut porto alegre lançam site e e-book de educação midiática inscrições abertas para nova turma do curso de fact-checking na cásper líbero desenvolvedor marketing to go copyright © | wordpress theme by mh themes data unbound data unbound helping organizations access and share data effectively. special focus on web apis for data integration. some of what i missed from the cmd-d automation conference the cmd-d&# ;masters of automation one-day conference in early august would have been right up my alley: it’ll be a full day of exploring the current state of automation technology on both apple platforms, sharing ideas and concepts, and showing what’s possible—all with the goal of inspiring and furthering development of your own automation projects. fortunately, [&# ;] fine-tuning a python wrapper for the hypothes.is web api and other #ianno followup in anticipation of #ianno hack day, i wrote about my plans for the event, one of which was to revisit my own python wrapper for the nascent hypothes.is web api. instead of spending much time on my own wrapper, i spent most of the day working with jon udell&# ;s wrapper for the api. i&# ;ve been [&# ;] revisiting hypothes.is at i annotate i&# ;m looking forward to hacking on web and epub annotation at the #ianno hack day. i won&# ;t be at the i annotate conference per se but will be curious to see what comes out of the annual conference. i continue to have high hopes for digital annotations, both on the web and in non-web [&# ;] my thoughts about fargo.io using fargo.io organizing your life with python: a submission for pycon ? i have penciled into my calendar a trip  to montreal to attend pycon .   in my moments of suboptimal planning, i wrote an overly ambitious abstract for a talk or poster session i was planning to submit.  as i sat down this morning to meet the deadline for submitting a proposal for a poster [&# ;] current status of data unbound llc in pennsylvania i&# ;m currently in the process of closing down data unbound llc in pennsylvania.  i submitted the paperwork to dissolve the legal entity in april and have been amazed to learn that it may take up to a year to get the final approval done.  in the meantime, as i establishing a similar california legal [&# ;] must get cracking on organizing your life with python talk and tutorial proposals for pycon are due tomorrow ( / ) .  i was considering submitting a proposal until i took the heart the appropriate admonition against &# ;conference-driven&# ; development of the program committee.   i will nonetheless use the oct and nov deadlines for lightning talks and proposals respectively to judge whether to [&# ;] embedding github gists in wordpress as i gear up i to write more about programming, i have installed the embed github gist plugin. so by writing &#x b;gist id= &#x d; in the text of this post, i can embed https://gist.github.com/rdhyee/ into the post to get: working with open data i&# ;m very excited to be teaching a new course working with open data at the uc berkeley school of information in the spring semester: open data — data that is free for use, reuse, and redistribution — is an intellectual treasure-trove that has given rise to many unexpected and often fruitful applications. in this [&# ;] a mundane task: updating a config file to retain old settings i want to have a hand in creating an excellent personal information manager (pim) that can be a worthy successor to ecco pro. so far, running eccoext (a clever and expansive hack of ecco pro) has been a eminently practical solution.   you can download the most recent version of this actively developed extension from [&# ;] none none none none ranti. centuries.org ranti. centuries.org eternally yours on centuries keeping the dream alive - freiheit i did not recall when the first time i heard it, but i remembered it was introduced by my cousin. this song from münchener freiheit became one of the songs i listen a lot. the lyrics (see below) resonate stronger nowadays. keeping the dream alive (single version) cover by david groeneveld: cover by kim wilde: lyrics:freiheit - keeping the dream alive tonight the rain is fallingfull of memories of people and placesand while the past is callingin my fantasy i remember their faces the hopes we had were much too highway out of reach but we had to trythe game will never be overbecause we're keeping the dream alive i hear myself recallingthings you said to methe night it all startedand still the rain is fallingmakes me feel the wayi felt when we parted the hopes we had were much too highway out of reach but we have to tryno need to hide no need to run'cause all the answers come one by onethe game will never be overbecause we're keeping the dream alive i need youi love you the game will never be overbecause we're keeping the dream alive the hopes we had were much too highway out of reach but we had to tryno need to hide no need to run'cause all the answers come one by one the hopes we had were much too highway out of reach but we had to tryno need to hide no need to run'cause all the answers come one by one the game will never be overbecause we're keeping the dream alivethe game will never be overbecause we're keeping the dream alive the game will never be over… lou reed's walk on the wild side if my memory serves me right, i heard about this walk on the wild side song (wikipedia) sometime during my college year in the s. of course, the bass and guitar reef were the one that captured my attention right away. at that time, being an international student here in the us, i was totally oblivious with the lyrics and the references on it. when i finally understood what the lyrics are about, listening to the song makes more sense. here's the footage of the walk on the wild side song (youtube) but what prompted me to write this was started by the version that amanda palmer sang for neil gaiman. i was listening to her cd "several attempts to cover songs by the velvet underground & lou reed for neil gaiman as his birthday approaches" and one of the songs was walk on the wild side. i like her rendition of the songs, which prompted me to find it on youtube. welp, that platform does not disappoint; it's a quite a nice piano rendition. of course, like any other platform that wants you to stay there, youtube also listed various walk on the wild side cover songs. one of them is from alice phoebe lou a singer-songwriter. her rendition using a guitar is also quite enjoyable (youtube) and now i have a new singer-songwriter to keep an eye on. among other videos that were listed on youtube is the one that kinda blew my mind, walk on the wild side - the story behind the classic bass intro featuring herbie flowers which explained that those are two basses layered on top of each other. man, what a nice thing to learn something new about this song. :-) tao read it from the lazy yogi on climate change read the whole poem tv news archive from the internet archive i just learned about the existence of the tv news archive (covering news from until the day before today's date) containing news shows from us tv such as pbs, cbs, abc, foxnews, cnn, etc. you can search by the captions. they also have several curated collections like news clips regarding nsa or snippets or tv around the world i think some of you might find this useful. quite a nice collection, imo. public domain day (january , ): what could have entered it in and what did get released copyright law is messy, yo. we won't see a lot of notable and important works entering public domain here in the us until . other countries, however, got to enjoy many of them first. public domain reviews put a list of creators whose work are entering the public domain for canada, european union (eu), and many other countries (https://publicdomainreview.org/collections/class-of- /.) for those in eu, nice to see h.g. wells name there (if uk do withdraw, this might end up not applicable to them. but, my knowledge about uk copyright law is zero, so, who knows.) as usual, center of study for the public domain from duke university put a list of some quite well-known works that are still under the extended copyright restriction: http://web.law.duke.edu/cspd/publicdomainday/ /pre- . those works would have been entered the public domain if we use the law that was applicable when they were published. i'm still baffled how current copyright hinders research done and published in to be made available freely. greedy publishers… so, thanks to that, usa doesn't get to enjoy many published works yet. "yet" is the operative word here because we don't know what the incoming administration would do on this topic. considering the next potus is a businessman, i fear the worst. i know: gloomy first of the year thought, but it is what it is. on a cheerful side, check the list from john mark ockerbloom on his online books project. it's quite an amazing project he's been working on. of course, there are also writings made available from hathitrust and gutenberg project, among other things. here's to the next days. xoxo for read the full poem light "light thinks it travels faster than anything but it is wrong. no matter how fast light travels, it finds the darkness has always got there first, and is waiting for it."― terry pratchett, reaper man dot-dot-dot more about bertolt brecht poem assistive technology many people would probably think assistive technology (at) are computer software, applications, or tools that are designed to help blind or deaf people. typically, the first thing that one might have in mind was screen readers, braille display, screen magnifier app for desktop reading, or physical objects like hearing aid, wheel chair, or crutches, a lot of people probably won't think glasses as an at. perhaps because glasses can be highly personalized to fit one's fashion style. woodchuck there's a question how much wood would a woodchuck chuck if a woodchuck could chuck wood. obviously, a woodchuck would chuck wood as much wood as a woodchuck could. shrugs droplets the story of the chinese farmer "you'll never know what would be the consequences of misfortune. or, you'll never know what would be the consequences of good fortune." — alan watts persistent bat is persistent for the last couple weeks or so, there's a bat that somehow managed to sneak in and hid somewhere in the house and then flew frantically in the living room every evening around this time of the day, causing the cats to run and jump around trying to catch it. we caught this bat every time and delivered it outside, hoping it would never return again. but it kept coming back. now i am sort of giving up trying to catch it. even the cats are no longer paying attention to the bat and just give this "meh" face when they spotted it. old window #garage evergreen . -beta available – evergreen ils skip to content evergreen – open source library software evergreen – open source library software about us overview annual reports f.a.q. evergreen event code of conduct software freedom conservancy project governance trademark policy documentation official documentation documentation interest group evergreen roadmap evergreen wiki tabular release notes get involved! get involved! committees & interest groups communications mailing lists irc calendar blog jobs proposed development projects merchandise t-shirts and more conference all conferences evergreen international online conference evergreen international online conference event photography policy code of conduct downloads evergreen downloads opensrf downloads home » development update » evergreen . -beta available evergreen . -beta available this entry was posted in development update on / / by galen charlton the evergreen community is pleased to announce the availability of the beta release for evergreen . . this release contains various new features and enhancements, including: support for saml-based single sign on hold groups, a feature that allows staff to add multiple users to a named hold group bucket and place title-level holds for a record for that entire set of users the bootstrap public catalog skin is now the default “did you mean?” functionality for catalog search focused on making suggestions for single search terms holdings on the public catalog record details page can now be sorted by geographic proximity library groups, a feature that allows defining groups of organizational units outside of the hierarchy that can be used to limit catalog search results expired staff accounts can now be blocked from logging in publisher data in the public catalog display is now drawn from both the and field the staff catalog can now save all search results (up to , ) to a bucket in a single operation new opt-in settings for overdue and predue email notifications a new setting to allow expired patrons to renew loans porting of additional interfaces to angular, including scan item as missing pieces and shelving location groups evergreen admins installing the beta or upgrading a test system to the beta should be aware of the following: the minimum version of postgresql required to run evergreen . is postgresql . . the minimum version of opensrf is . . this release adds anew opensrf service, open-ils.geo. the release also adds several new perl module dependencies, geo::coder::google, geo::coder::osm, string::keyboarddistance, and text::levenshtein::damerau::xs. the database update procedure has more steps than usual; please consult the upgrade section of the release notes. the beta release should not be used for production. additional information, including a full list of new features, can be found in the release notes. share this: facebook twitter more reddit linkedin pocket pinterest tumblr print related post navigation ← security releases: evergreen . . and . . evergreen . -rc available → about evergreen this is the project site for evergreen, a highly-scalable software for libraries that helps library patrons find library materials, and helps libraries manage, catalog, and circulate those materials, no matter how large or complex the libraries. © - gpls and others. evergreen is open source software, freely licensed under gnu gplv or later. the evergreen project is a (c) nonprofit organization. community links evergreen bug tracker evergreen on open hub evergreen wiki git repositories join irc! irc logs official documentation · © evergreen ils · powered by · designed with the customizr theme · bibliographic wilderness bibliographic wilderness code that lasts: sustainable and usable open source code a presentation i gave at online conference code lib , on monday march . i have realized that the open source projects i am most proud of are a few that have existed for years now, increasing in popularity, with very little maintenance required. including traject and bento_search. while community aspects matter for open source sustainability, &# ; continue reading code that lasts: sustainable and usable open source&# ;code &# ; product management in my career working in the academic sector, i have realized that one thing that is often missing from in-house software development is &# ;product management.&# ; but what does that mean exactly? you don&# ;t know it&# ;s missing if you don&# ;t even realize it&# ;s a thing and people can use different terms to mean different roles/responsibilities. basically, &# ; continue reading product management &# ; rails auto-scaling on heroku we are investigating moving our medium-small-ish rails app to heroku. we looked at both the rails autoscale add-on available on heroku marketplace, and the hirefire.io service which is not listed on heroku marketplace and i almost didn&# ;t realize it existed. i guess hirefire.io doesn&# ;t have any kind of a partnership with heroku, but still uses &# ; continue reading rails auto-scaling on&# ;heroku &# ; managed solr saas options i was recently looking for managed solr &# ;software-as-a-service&# ; (saas) options, and had trouble figuring out what was out there. so i figured i&# ;d share what i learned. even though my knowledge here is far from exhaustive, and i have only looked seriously at one of the ones i found. the only managed solr options i &# ; continue reading managed solr saas&# ;options &# ; gem authors, check your release sizes most gems should probably be a couple hundred kb at most. i&# ;m talking about the package actually stored in and downloaded from rubygems by an app using the gem. after all, source code is just text, and it doesn&# ;t take up much space. ok, maybe some gems have a couple images in there. but if &# ; continue reading gem authors, check your release&# ;sizes &# ; every time you decide to solve a problem with code… every time you decide to solve a problem with code, you are committing part of your future capacity to maintaining and operating that code. software is never done. software is drowning the world by james abley updating solrcloud configuration in ruby we have an app that uses solr. we currently run a solr in legacy &# ;not cloud&# ; mode. our solr configuration directory is on disk on the solr server, and it&# ;s up to our processes to get our desired solr configuration there, and to update it when it changes. we are in the process of moving &# ; continue reading updating solrcloud configuration in&# ;ruby &# ; are you talking to heroku redis in cleartext or ssl? in &# ;typical&# ; redis installation, you might be talking to redis on localhost or on a private network, and clients typically talk to redis in cleartext. redis doesn&# ;t even natively support communications over ssl. (or maybe it does now with redis ?) however, the heroku redis add-on (the one from heroku itself) supports ssl connections via &# ;stunnel&# ;, &# ; continue reading are you talking to heroku redis in cleartext or&# ;ssl? &# ; comparing performance of a rails app on different heroku formations i develop a &# ;digital collections&# ; or &# ;asset management&# ; app, which manages and makes digitized historical objects and their descriptions available to the public, from the collections here at the science history institute. the app receives relatively low level of traffic (according to google analytics, around k pageviews a month), although we want it to be &# ; continue reading comparing performance of a rails app on different heroku&# ;formations &# ; deep dive: moving ruby projects from travis to github actions for ci so this is one of my super wordy posts, if that&# ;s not your thing abort now, but some people like them. we&# ;ll start with a bit of context, then get to some detailed looks at github actions features i used to replace my travis builds, with example config files and examination of options available. for &# ; continue reading deep dive: moving ruby projects from travis to github actions for&# ;ci &# ; unexpected performance characteristics when exploring migrating a rails app to heroku i work at a small non-profit research institute. i work on a rails app that is a &# ;digital collections&# ; or &# ;digital asset management&# ; app. basically it manages and provides access (public as well as internal) to lots of files and description about those files, mostly images. it&# ;s currently deployed on some self-managed amazon ec instances &# ; continue reading unexpected performance characteristics when exploring migrating a rails app to&# ;heroku &# ; faster_s _url: optimized s url generation in ruby subsequent to my previous investigation about s url generation performance, i ended up writing a gem with optimized implementations of s url generation. github: faster_s _url it has no dependencies (not even aws-sdk). it can speed up both public and presigned url generation by around an order of magnitude. in benchmarks on my macbook compared &# ; continue reading faster_s _url: optimized s url generation in&# ;ruby &# ; delete all s key versions with ruby aws sdk v if your s bucket is versioned, then deleting an object from s will leave a previous version there, as a sort of undo history. you may have a &# ;noncurrent expiration lifecycle policy&# ; set which will delete the old versions after so many days, but within that window, they are there. what if you were deleting &# ; continue reading delete all s key versions with ruby aws sdk&# ;v &# ; github actions tutorial for ruby ci on drifting ruby i&# ;ve been using travis for free automated testing (&# ;continuous integration&# ;, ci) on my open source projects for a long time. it works pretty well. but it&# ;s got some little annoyances here and there, including with github integration, that i don&# ;t really expect to get fixed after its acquisition by private equity. they also seem to &# ; continue reading github actions tutorial for ruby ci on drifting&# ;ruby &# ; more benchmarking optimized s presigned_url generation in a recent post, i explored profiling and optimizing s presigned_url generation in ruby to be much faster. in that post, i got down to using a aws::sigv ::signer instance from the aws sdk, but wondered if there was a bunch more optimization to be done within that black box. julik posted a comment on that &# ; continue reading more benchmarking optimized s presigned_url&# ;generation &# ; delivery patterns for non-public resources hosted on s i work at the science history institute on our digital collections app (written in rails), which is kind of a &# ;digital asset management&# ; app combined with a public catalog of our collection. we store many high-resolution tiff images that can be mb+ each, as well as, currently, a handful of pdfs and audio files. we &# ; continue reading delivery patterns for non-public resources hosted on&# ;s &# ; speeding up s url generation in ruby it looks like the aws sdk is very slow at generating s urls, both public and presigned, and that you can generate around an order of magnitude faster in both cases. this can matter if you are generating hundreds of s urls at once. my app the app i work is a &# ;digital collections&# ; or &# ; continue reading speeding up s url generation in&# ;ruby &# ; a custom local ohms front-end here at the science history institute, we’ve written a custom ohms viewer front-end, to integrate seamlessly with our local custom &# ;content management system&# ; (a rails-based digital repository app with source available), and provide some local functionality like the ability to download certain artifacts related to the oral history. we spent quite a bit of energy &# ; continue reading a custom local ohms&# ;front-end &# ; encrypting patron data (in rails): why and how special guest post by eddie rubeiz i&# ;m eddie rubeiz. along with the owner of this blog, jonathan rochkind, and our system administrator, dan, i work on the science history institute&# ;s digital collections website, where you will find, among other marvels, this picture of the inventor of styrofoam posing with a santa &# ;sculpture&# ;, which predates the &# ; continue reading encrypting patron data (in rails): why and&# ;how &# ; intentionally considering fixity checking in our digital collections app rewrite at science history institute, we took a moment to step back and  be intentional about how we approach &# ;fixity checking&# ; features and ui, to make sure it&# ;s well-supporting the needs it&# ;s meant to.  i think we do a good job of providing ui to let repository managers and technical &# ; continue reading intentionally considering fixity&# ;checking &# ; evergreen downloads – evergreen ils skip to content evergreen – open source library software evergreen – open source library software about us overview annual reports f.a.q. evergreen event code of conduct software freedom conservancy project governance trademark policy documentation official documentation documentation interest group evergreen roadmap evergreen wiki tabular release notes get involved! get involved! committees & interest groups communications mailing lists irc calendar blog jobs proposed development projects merchandise t-shirts and more conference all conferences evergreen international online conference evergreen international online conference event photography policy code of conduct downloads evergreen downloads opensrf downloads home » evergreen downloads evergreen downloads evergreen downloads evergreen depends on the following technologies perl, c, javascript, xml, xpath, xslt, xmpp, opensrf, apache, mod_perl, and postgresql. the latest stable release of a supported linux distribution is recommended for an evergreen installation. for ubuntu, please use the . -bit lts (long term support) server release. currently the latest release from the evergreen . series is recommended for new installations and stable releases are suggested for production systems. note: evergreen servers and staff clients must match. for example, if you are running server version . . , you should use version . . of the staff client. evergreen . . + no longer supports a separate client by default, but building a client remains as an unsupported option. server & staff client downloads . series . series . series status stable stable stable latest release . . . . . . release date - - - - - - release notes release notes release notes release notes tabular release notes summary changelog changelog changelog changelog evergreen installation install instructions install instructions install instructions upgrading notes on upgrading from . . tbd tbd opensrf software . . (md ) . . (md ) . . (md ) server software source (md ) source (md ) source (md ) web staff client extension (“hatch”) windows hatch installer . .  (md ) – installation instructions (windows & linux) git repository git location git location git location other evergreen staff clients staff client archive windows staff clients for slightly older stable releases ( . , . ). for mac and linux installing the evergreen client on macs evergreen . . mac staff client [.dmg] evergreen . . mac staff client [.dmg] evergreen . . mac staff client [.zip] evergreen . . mac staff client [.zip] pre-built mac staff client for evergreen . and .  – provided by sitka evergreen in action visit the evergreen catalog on our demonstration and development servers, or visit this list of live evergreen libraries. you can also download an evergreen staff client and point it at the evergreen demo or development server (see the community servers page for details). bug reports please report any evergreen bugs/wishlist on launchpad. to submit a vulnerability please email your report to open-ils-security@esilibrary.com. evergreen code museum older versions of evergreen software are available from the evergreen code museum. source code repository a gitweb instance sits atop the git repositories for evergreen and opensrf. you can find both repositories at git.evergreen-ils.org. here is the running change log for the evergreen code repository: watch us work. trac sends code commits to two public evergreen mailing lists: for evergreen commits, subscribe to open-ils-commits for opensrf commits, subscribe to opensrf-commits about evergreen this is the project site for evergreen, a highly-scalable software for libraries that helps library patrons find library materials, and helps libraries manage, catalog, and circulate those materials, no matter how large or complex the libraries. © - gpls and others. evergreen is open source software, freely licensed under gnu gplv or later. the evergreen project is a (c) nonprofit organization. community links evergreen bug tracker evergreen on open hub evergreen wiki git repositories join irc! irc logs official documentation · © evergreen ils · powered by · designed with the customizr theme · dshr's blog: a note on blockchains dshr's blog i'm david rosenthal, and this is a place to discuss the work i'm doing in digital preservation. tuesday, october , a note on blockchains blockchains have three components, a data structure, a set of replicas, and a consensus mechanism: the data structure is often said to provide immutability or to be tamper-proof, but this is wrong. it is made out of bits, and bits can be changed or destroyed. what it actually provides is tamper-evidence, revealing that the data structure has changed. if an unauthorized change to the data structure is detected the damage must be repaired. so there must be multiple replicas of the data structure to allow an undamaged replica to be copied to the damaged replica. the role of the consensus mechanism is to authorize changes to the data structure, and prevent unauthorized changes. a change is authorized if the consensus of the replicas agrees to it. below the fold, some details. data structure the data structure used for blockchains is a form of merkle or hash tree, published by ralph merkle in . in the blockchain application it is a linear chain to which fixed-size blocks are added at regular intervals. each block contains the hash of its predecessor; a chain of blocks. hash algorithms have a limited lifetime, but while the hash algorithm remains unbroken it is extremely difficult to change blocks in the chain but maintain the same hash values. a change that does not maintain the same hash values is easy to detect. replicas the set of replicas can be either closed, composed of only replicas approved by some authority, or open, in which case no approval is required for participation. in blockchain jargon, closed replica sets correspond to permissioned blockchains, and open replicas sets to permissionless blockchains. consensus mechanism faults replicas an important result in theoretical computer science was published in the byzantine generals problem by lamport et al in . they showed that the minimum size of a replica set to survive f simultaneous failures was f+ . thus byzantine fault tolerance (bft) is the most efficient possible consensus mechanism in terms of number of replicas. bft requires a closed replica set, and synchronized operation of the replicas, so can be used only in permissioned blockchains. if joining the replica set of a permissionless blockchain is free, it will be vulnerable to sybil attacks, in which an attacker creates many apparently independent replicas which are actually under his sole control. if creating and maintaining a replica is free, anyone can authorize any change they choose simply by creating enough sybil replicas. defending against sybil attacks requires that membership in a replica set be expensive. the cost of an attack is at least the membership cost of half the replica set, so that the attacker controls a majority of the replicas. permissionless blockchains have implemented a number of ways to make it expensive to take part, including: proof of work (pow), a concept originated by cynthia dwork and moni naor in , in which the expensive resource is cpu cycles. this is the "mining" technique used by bitcoin, and is the only technique that has been demonstrated to work well at scale. but at scale the cost and environmental damage is unsustainable; the top cryptocurrencies are estimated to use as much energy as the netherlands. at smaller scales it doesn't work well because renting % of the mining power is cheap enough to motivate attacks. % attacks have become endemic among the smaller alt-coins. for example, there were three successful attacks on ethereum classic in a single month. proof of stake (pos) in which the expensive resource is capital tied up, or staked. participants stand to lose their stake in case of detected misbehavior. the ethereum blockchain has been trying to implement pos for years, so far without success. the technique has similar economic linits and vulnerabilities as pow. proofs of time & space (pots), advocated by bram cohen, in which the expensive resource is disk storage. conclusion eric budish points out the fundamental problem with expensive defenses in the economic limits of bitcoin and the blockchain: from a computer security perspective, the key thing to note ... is that the security of the blockchain is linear in the amount of expenditure on mining power, ... in contrast, in many other contexts investments in computer security yield convex returns (e.g., traditional uses of cryptography) ... analogously to how a lock on a door increases the security of a house by more than the cost of the lock. the difference between permissioned and permissionless blockchains is the presence or absence of a trusted authority controlling the replica set. a decision not to trust such an authority imposes enormous additional costs and performance penalties on the system because the permissionless consensus mechanism has to be expensive. decentralization in bitcoin and ethereum networks by adem efe gencer et al compares the cost of a permissioned system using bft to the actual bitcoin pow blockchain: a byzantine quorum system of size could achieve better decentralization than proof-of-work mining at a much lower resource cost. as an englishman i appreciate understatement. by "much lower", they mean around orders of magnitude lower. posted by david. at : am labels: bitcoin comments: david. said... going from bad to worse: from internet voting to blockchain voting by sunoo park, neha narula, michael specter and ronald l. rivest argues that: "given the current state of computer security, any turnout increase derived from with internet- or blockchain-based voting would come at the cost of losing meaningful assurance that votes have been counted as they were cast, and not undetectably altered or discarded. this state of affairs will continue as long as standard tactics such as malware, zero days, and denial-of-service attacks continue to be effective. this article analyzes and systematizes prior research on the security risks of online and electronic voting, and show that not only do these risks persist in blockchain-based voting systems, but blockchains may introduce additional problems for voting systems." november , at : am michael hogan said... which is why voting systems still include paper records, and probably will always include paper records. it calls to mind my oft-stated admonition to amateur futurists, that all of the cool stuff in our increasingly digitized world still relies to far too great an extent on a technology commercialized in (burning fossil fuels in a boiler to spin a turbine-generator), and even the dominant battery chemistry is about years old. beware of the "ted talk" mindset - be on the lookout for the dirty old smelter behind that shiny penny. november , at : am post a comment newer post older post home subscribe to: post comments (atom) blog rules posts and comments are copyright of their respective authors who, by posting or commenting, license their work under a creative commons attribution-share alike . united states license. off-topic or unsuitable comments will be deleted. dshr dshr in anwr recent comments full comments blog archive ►  ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ▼  ( ) ►  december ( ) ►  november ( ) ▼  october ( ) the long now unbanking the banked a note on blockchains ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) lockss system has permission to collect, preserve, and serve this archival unit. simple theme. powered by blogger. more thoughts on pre-recording conference talks | disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email more thoughts on pre-recording conference talks posted on april ,     minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion about recording talks to fill in gaps—positive and negative—about the concept, and i was not disappointed. i’m particularly thankful to lisa janicke hinchliffe and andromeda yelton along with jason griffey, junior tidal, and edward lim junhao for generously sharing their thoughts. daniel s and kate deibel also commented on the code lib slack team. i added to the previous article’s bullet points and am expanding on some of the issues here. i’m inviting everyone mentioned to let me know if i’m mischaracterizing their thoughts, and i will correct this post if i hear from them. (i haven’t found a good comments system to hook into this static site blog.) pre-recorded talks limit presentation format lisa janicke hinchliffe made this point early in the feedback: @datag for me downside is it forces every session into being a lecture. for two decades cfps have emphasized how will this season be engaging/not just a talking head? i was required to turn workshops into talks this year. even tho tech can do more. not at all best pedagogy for learning — lisa janicke hinchliffe (@lisalibrarian) april , jason described the “flipped classroom” model that he had in mind as the nisoplus program was being developed. the flipped classroom model is one where students do the work of reading material and watching lectures, then come to the interactive time with the instructors ready with questions and comments about the material. rather than the instructor lecturing during class time, the class time becomes a discussion about the material. for nisoplus, “the recording is the material the speaker and attendees are discussing” during the live zoom meetings. in the previous post, i described how the speaker could respond in text chat while the recording replay is beneficial. lisa went on to say: @datag q+a is useful but isn't an interactive session. to me, interactive = participants are co-creating the session, not watching then commenting on it. — lisa janicke hinchliffe (@lisalibrarian) april , she described an example: the ssp preconference she ran at chs. i’m paraphrasing her tweets in this paragraph. the preconference had a short keynote and an “oprah-style” panel discussion (not pre-prepared talks). this was done live; nothing was recorded. after the panel, people worked in small groups using zoom and a set of google slides to guide the group work. the small groups reported their discussions back to all participants. andromeda points out (paraphrasing twitter-speak): “presenters will need much more— and more specialized—skills to pull it off, and it takes a lot more work.” and lisa adds: “just so there is no confusion … i don’t think being online makes it harder to do interactive. it’s the pre-recording. interactive means participants co-create the session. a pause to chat isn’t going to shape what comes next on the recording.” increased technical burden on speakers and organizers @thatandromeda @datag totally agree on this. i had to pre-record a conference presentation recently and it was a terrible experience, logistically. i feel like it forces presenters to become video/sound editors, which is obviously another thing to worry about on top of content and accessibility. — junior tidal (@juniortidal) april , andromeda also agreed with this: “i will say one of the things i appreciated about niso is that @griffey did all the video editing, so i was not forced to learn how that works.” she continued, “everyone has different requirements for prerecording, and in [code lib’s] case they were extensive and kept changing.” and later added: “part of the challenge is that every conference has its own tech stack/requirements. if as a presenter i have to learn that for every conference, it’s not reducing my workload.” it is hard not to agree with this; a high-quality (stylistically and technically) recording is not easy to do with today’s tools. this is also a technical burden for meeting organizers. the presenters will put a lot of work into talks—including making sure the recordings look good; whatever playback mechanism is used has to honor the fidelity of that recording. for instance, presenters who have gone through the effort to ensure the accessibility of the presentation color scheme want the conference platform to display the talk “as i created it.” the previous post noted that recorded talks also allow for the creation of better, non-real-time transcriptions. lisa points out that presenters will want to review that transcription for accuracy, which jason noted adds to the length of time needed before the start of a conference to complete the preparations. increased logistical burden on presenters @thatandromeda @datag @griffey even if prep is no more than the time it would take to deliver live (which has yet to be case for me and i'm good at this stuff), it is still double the time if you are expected to also show up live to watch along with everyone else. — lisa janicke hinchliffe (@lisalibrarian) april , this is a consideration i hadn’t thought through—that presenters have to devote more clock time to the presentation because first they have to record it and then they have to watch it. (or, as andromeda added, “significantly more than twice the time for some people, if they are recording a bunch in order to get it right and/or doing editing.”) no. audience. reaction. @datag @griffey ) no. audience. reaction. i give a joke and no one laughs. was it funny? was it not funny? talks are a *performance* and a *relationship*; i'm getting energy off the audience, i'm switching stuff on the fly to meet their vibe. prerecorded/webinar is dead. feels like i'm bombing. — andromeda yelton (@thatandromeda) april , wow, yes. i imagine it would take a bit of imagination to get in the right mindset to give a talk to a small camera instead of an audience. i wonder how stand-up comedians are dealing with this as they try to put on virtual shows. andromeda summed this up: @datag @griffey oh and i mean ) i don't get tenure or anything for speaking at conferences and goodness knows i don't get paid. so the entire benefit to me is that i enjoy doing the talk and connect to people around it. prerecorded talk + f f conf removes one of these; online removes both. — andromeda yelton (@thatandromeda) april , also in this heading could be “no speaker reaction”—or the inability for subsequent speakers at a conference to build on something that someone said earlier. in the code lib slack team, daniel s noted: “one thing comes to mind on the pre-recording [is] the issue that prerecorded talks lose the ‘conversation’ aspect where some later talks at a conference will address or comment on earlier talks.” kate deibel added: “exactly. talks don’t get to spontaneously build off of each other or from other conversations that happen at the conference.” currency of information lisa points out that pre-recording talks before en event means there is a delay between the recording and the playback. in the example she pointed out, there was a talk at rluk that pre-recorded would have been about the university of california working on an open access deal with elsevier; live, it was able to be “the deal we announced earlier this week”. conclusions? near the end of the discussion, lisa added: @datag @griffey @thatandromeda i also recommend going forward that the details re what is required of presenters be in the cfp. it was one thing for conferences that pivoted (huge effort!) but if you write the cfp since the pivot it should say if pre-record, platform used, etc. — lisa janicke hinchliffe (@lisalibrarian) april , …and andromeda added: “strong agree here. i understand that this year everyone was making it up as they went along, but going forward it’d be great to know that in advance.” that means conferences will need to take these needs into account well before the call for proposals (cfp) is published. a conference that is thinking now about pre-recording their talks must work through these issues and set expectations with presenters early. as i hoped, the twiter replies tempered my eagerness for the all-recorded style with some real-world experience. there could be possibilities here, but adapting face-to-face meetings to a world with less travel won’t be simple and will take significant thought beyond the issues of technology platforms. edward lim junhao summarized this nicely: “i favor unpacking what makes up our prof conferences. i’m interested in recreating that shared experience, the networking, & the serendipity of learning sth you didn’t know. i feel in-person conferences now have to offer more in order to justify people traveling to attend them.” related, andromeda said: “also, for a conf that ultimately puts its talks online, it’s critical that it have something beyond content delivery during the actual conference to make it worth registering rather than just waiting for youtube. realtime interaction with the speaker is a pretty solid option.” if you have something to add, reach out to me on twitter. given enough responses, i’ll create another summary. let’s keep talking about what that looks like and sharing discoveries with each other. the tree of tweets it was a great discussion, and i think i pulled in the major ideas in the summary above. with some guidance from ed summers, i’m going to embed the twitter threads below using treeverse by paul butler. we might be stretching the boundaries of what is possible, so no guarantees that this will be viewable for the long term. tags: code lib, covid , meeting planning, nisoplus categories: l/is profession twitter facebook linkedin previous next you may also enjoy should all conference talks be pre-recorded? minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and con... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... running an all-online conference with zoom [post removed] less than minute read this is an article draft that was accidentally published. i hope to work on a final version soon. if you really want to see it, i saved a copy on the interne... enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. dshr's blog: what is the point? dshr's blog i'm david rosenthal, and this is a place to discuss the work i'm doing in digital preservation. thursday, april , what is the point? during a discussion of nfts, larry masinter pointed me to his proposal the 'tdb' and 'duri' uri schemes, based on dated uris. the proposal's abstract reads: this document defines two uri schemes. the first, 'duri' (standing for "dated uri"), identifies a resource as of a particular time. this allows explicit reference to the "time of retrieval", similar to the way in which bibliographic references containing uris are often written. the second scheme, 'tdb' ( standing for "thing described by"), provides a way of minting uris for anything that can be described, by the means of identifying a description as of a particular time. these schemes were posited as "thought experiments", and therefore this document is designated as experimental. as far as i can tell, this proposal went nowhere, but it raises a question that is also raised by nfts. what is the point of a link that is unlikely to continue to resolve to the expected content? below the fold i explore this question. i think there are two main reasons why duri: went nowhere: the duri: concept implies that web content in general is not static, but it is actually much more dynamic than that. even the duri: specification admits this: there are many uris which are, unfortunately, not particularly "uniform", in the sense that two clients can observe completely different content for the same resource, at exactly the same time. personalization, advertisements, geolocation, watermarks, all make it very unlikely that either several clients accessing the same uri at the same time, or a single client accessing the same uri at different times, would see the same content. when this proposal was put forward in , it was competing with a less elegant but much more useful competitor that had been in use for years. the duri: specificartion admits that: there are no direct resolution servers or processes for 'duri' or 'tdb' uris. however, a 'duri' uri might be "resolvable" in the sense that a resource that was accessed at a point in time might have the result of that access cached or archived in an internet archive service. see, for example, the "internet archive" project but the duri: uri doesn't provide the information needed to resolve to the "cached or archived" content. the internet archive's wayback machine uses uris which, instead of the prefix duri:[datetime]: have the prefix https://web.archive.org/web/[datetime]/. this is more useful, both because browsers will actually resolve these uris, and because they resolve to a service devoted to delivering the content of the uri at the specified time. the competition for duri: was not merely long established, but also actually did what users presumably wanted, which was to resolve to the content of the specified url at the specified time. it is true that a user creating a wayback machine url, perhaps using the "save page now" button, would preserve the content accessed by the wayback machine's crawler. which might be different from that accessed by the user themselves. but the user could compare the two versions at the time of creation, and avoid using the created wayback machine url if the differences were significant. publishing a wayback machine url carries an implicit warranty that the creator regarded any differences as insignificant. the history of duri: suggests that there isn't a lot of point in "durable" uris lacking an expectation that they will continue to resolve to the original content. nfts have the expectation, but lack the mechanism necessary to satisfy the expectation. posted by david. at : am labels: personal digital preservation, web archiving no comments: post a comment newer post older post home subscribe to: post comments (atom) blog rules posts and comments are copyright of their respective authors who, by posting or commenting, license their work under a creative commons attribution-share alike . united states license. off-topic or unsuitable comments will be deleted. dshr dshr in anwr recent comments full comments blog archive ▼  ( ) ▼  april ( ) dogecoin disrupts bitcoin! what is the point? nfts and web archiving cryptocurrency's carbon footprint elon musk: threat or menace? ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) lockss system has permission to collect, preserve, and serve this archival unit. simple theme. powered by blogger. recent uploads tagged code lib recent uploads tagged code lib img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ img_ geosm warning: "continue" targeting switch is equivalent to "break". did you mean to use "continue "? in /kunden/ _ /jakoblog.de/wp/wp-content/plugins/mendeleyplugin/wp-mendeley.php on line jakoblog — das weblog von jakob voß blog about erster expliziter entwurf einer digitalen bibliothek ( ) . märz um : kommentare ich recherchiere (mal wieder) zu digitalen bibliotheken und habe mich gefragt, wann der begriff zum ersten mal verwendet wurde. laut google books taucht (nach aussortieren falsch-positiver treffer) „digital library“ erstmals in einem bericht für das us-außenministerium auf. die bibliographischen daten habe ich bei wikidata eingetragen. der bericht „the need for fundamental research in seismology“ wurde damals erstellt um zu untersuchen wie mit seismischen wellen atomwaffentests erkannt werden können. in anhang legte john gerrard, einer von vierzehn an der studie beteiligten wissenschaftler, auf zwei seiten den bedarf an einem rechenzentrum mit einem ibm rechner dar. da das us-regierungsdokument gemeinfrei ist hier die entsprechenden seiten: bei der geplanten digitalen bibliothek handelt es sich um eine sammlung von forschungsdaten mitsamt wissenschaftlicher software um aus den forschungsdaten neue erkenntnisse zu gewinnen: the following facilities should be available: a computer equivalent to the ibm series, plus necessary peripheral equipment. facilities for converting standard seismograms into digital form. a library of records of earthquakes and explosions in form suitable for machine analysis. a (growing) library of basic programs which have proven useful in investigations of seismic disturbances and related phenomena. … klingt doch ziemlich aktuell, oder? gefallen hat mir auch die beschreibung des rechenzentrums als „open shop“ und der hinweis „nothing can dampen enthusiasm for new ideas quite as effectively as long periods of waiting time“. die bezeichnung „digital library“ bezieht sich in dem text primär auf die sammlung von digitalisierten seimsmogrammen. am ende der empfehlung wird abweichend der begriff „digitized library“ verwendet. dies spricht dafür dass beide begriffe synonym verwendet wurden. interessanterweise bezieht sich „library“ aber auch auf die sammlung von computerprogrammen. ob das empfohlene rechenzentrum mit digitaler bibliothek realisiert wurde konnte ich leider nicht herausfinden (vermutlich nicht). zum autor dr. john gerrard ist mir nicht viel mehr bekannt als dass er als director of data systems and earth science research bei texas instruments (ti) arbeitete. ti wurde als „geophysical service incorporated“ zur seismischen erkundung von erdöllagerstätten gegründet und bekam den regierungsauftrag zur Überwachung von kernwaffentests (projekt vela uniform). an gerrard erinnert sich in diesem interview ein ehemaliger kollege: john gerrard: into digital seismology, and he could see a little bit of the future of digital processing and he talked about how that could be effective in seismology, he was right that this would be important in seismology in birmingham gibt es einen geologen gleichen namens, der ist aber erst geboren. ich vermute dass gerrard bei ti an der entwicklung des texas instruments automatic computer (tiac) beteiligt war, der speziell zur digitalen verarbeitung seismischer daten entwickelt wurde. der einsatz von computern in klassischen bibliotheken kam übrigens erst mit der nächsten rechner-generation: das marc-format wurde in den ern mit dem ibm system/ entwickelt (von henriette avram, die zuvor bei der nsa auch mit ibm gearbeitet hatte). davor gabe es den fiktiven bibliotheks-computer emmarac (angelehnt an eniac und univac) in „eine frau, die alles weiß“ mit katharine hepburn als bibliothekarin und spencer tracy als computervertreter. bis ende der er taucht der begriff „digital library“ bei google books übrigens nur vereinzelt auf. tags: digital library, geschichte kommentare data models age like parents . märz um : keine kommentare denny vrandečić, employed as ontologist at google, noticed that all six of of six linked data applications linked to years ago (iwb, tabulator, disko, marbles, rdfbrowser , and zitgist) have disappeared or changed their calling syntax. this reminded me at a proverb about software and data: software ages like fish, data ages like wine. ‏ the original form of this saying seems to come from james governor (@monkchips) who in derived it from from an earlier phrase: hardware is like fish, operating systems are like wine. the analogy of fishy applications and delightful data has been repeated and explained and criticized several times. i fully agree with the part about software rot but i doubt that data actually ages like wine (i’d prefer whisky anyway). a more accurate simile may be „data ages like things you put into your crowded cellar and then forget about“. thinking a lot about data i found that data is less interesting than the structures and rules that shape and restrict data: data models, ontologies, schemas, forms etc. how do they age compared with software and data? i soon realized: data models age like parents. first they guide you, give good advise, and support you as best as they can. but at some point data begin to rebel against their models. sooner or later parents become uncool, disconnected from current trends, outdated or even embarrassing. eventually you have to accept their quaint peculiarities and live your own life. that’s how standards proliferate. both ontologies and parents ultimately become weaker and need support. and in the end you have to let them go, sadly looking back. (the analogy could further be extended, for instance data models might be frustrated confronted by how actual data compares to their ideals, but that’s another story) tags: data modeling keine kommentare in memoriam ingetraut dahlberg . oktober um : kommentare die informationswissenschaftlerin ingetraut dahlberg, bekannt unter anderem als gründerin der international society for knowledge organization (isko), ist letzte woche im alter von jahren verstorben. meine erste reaktion nach einem angemessenen bedauern war es in wikipedia und in wikidata das sterbedatum einzutragen, was jedoch schon andere erledigt hatten. also stöberte ich etwas im lebenslauf, und legte stattdessen wikidata-items zum mcluhan institute for digital culture and knowledge organization an, dem dahlberg schon zu lebzeiten ihre bibliothek vermacht hat, das aber bereits wieder geschlossen wurde. der ehemalige direktor kim veltman betreibt noch eine webseite zum institut und nennt in seinen memoiren ingetraut dahlberg, douglas engelbart, ted nelson und tim berners lee in einem atemzug. das sollte eigentlich grund genug sein, mich mit der frau zu beschäftigen. wenn ich ehrlich bin war mein verhältnis zu ingetraut dahlberg allerdings eher ein distanziert-ignorantes. ich wusste um ihre bedeutung in der „wissensorganisation-szene“, der ich zwangsläufig auch angehöre, bin ihr aber nur ein oder zwei mal auf isko-tagungen begegnet und hatte auch nie interesse daran mich mehr mit ihr auseinanderzusetzen. als „junger wilder“ schien sie mir immer wie eine person, deren zeit schon lange vorbei ist und deren beiträge hoffnungslos veraltet sind. dass alte ideen auch im rahmen der wissensorganisation keineswegs uninteressant und irrelevant sind, sollte mir durch die beschäftigung mit ted nelson und paul otlet eigentlich klar sein; irgendwie habe ich aber bisher nie einen anknüpfungspunkt zu dahlbergs werk gefunden. wenn ich zurückblicke muss der auslöser für meine ignoranz in meiner ersten begegnung mit vertreter*innen der wissensorganisation auf einer isko-tagung anfang der er jahre liegen: ich war damals noch frischer student der bibliotheks- und informationswissenschaft mit informatik-hintergrund und fand überall spannende themen wie wikipedia, social tagging und ontologien, die prinzipiell alle etwas mit wissensorganisation zu tun hatten. bei der isko fand ich dagegen nichts davon. das internet schien jedenfalls noch sehr weit weg. erschreckend fand ich dabei weniger das fehlen inhaltlicher auseinandersetzung mit den damals neuesten entwicklungen im netz sondern die formale fremdheit: mehrere der beteiligten wissenschaftler*innen hatten nach meiner erinnerung nicht einmal eine email-adresse. menschen, die sich anfang der er jahre ohne email mit information und wissen beschäftigten konnte ich einfach nicht ernst nehmen. so war die isko in meiner ignoranz lange ein relikt, das ähnlich wie die international federation for information and documentation (fid, warum haben die sich eigentlich nicht zusammengetan?) auf tragische weise von der technischen entwicklung überholt wurde. und ingetraut dahlberg stand für mich exemplarisch für dieses ganze scheitern einer zunft. inzwischen sehe ich es etwas differenzierter und bin froh teil dieser kleinen aber feinen fachcommunity zu sein (und wenn die isko endlich auf open access umstellt, werde ich auch meinen publikations-boycott aufgeben). in jedem fall habe ich ingetraut dahlberg unrecht getan und hoffe auf differenziertere auseinandersetzungen mit ihrem werk. tags: nachruf kommentare wikidata documentation on the hackathon in vienna . mai um : kommentare at wikimedia hackathon , a couple of volunteers sat together to work on the help pages of wikidata. as part of that wikidata documentation sprint. ziko and me took a look at the wikidata glossary. we identified several shortcomings and made a list of rules how the glossary should look like. the result are the glossary guidelines. where the old glossary partly replicated wikidata:introduction, the new version aims to allow quick lookup of concepts. we already rewrote some entries of the glossary according to these guidelines but several entries are outdated and need to be improved still. we changed the structure of the glossary into a sortable table so it can be displayed as alphabetical list in all languages. the entries can still be translated with the translation system (it took some time to get familiar with this feature). we also created some missing help pages such as help:wikimedia and help:wikibase to explain general concepts with regard to wikidata. some of these concepts are already explained elsewhere but wikidata needs at least short introductions especially written for wikidata users. image taken by andrew lih (cc-by-sa) tags: wikidata, wmhack kommentare introduction to phabricator at wikimedia hackathon . mai um : kommentar this weekend i participate at wikimedia hackathon in vienna. i mostly contribute to wikidata related events and practice the phrase "long time no see", but i also look into some introductionary talks. in the late afternoon of day one i attended an introduction to phabricator project management tool given by andré klapper. phabricator was introduced in wikimedia foundation about three years ago to replace and unify bugzilla and several other management tools. phabricator is much more than an issue tracker for software projects (although it is mainly used for this purpose by wikimedia developers). in summary there are tasks, projects, and teams. tasks can be tagged, assigned, followed,discussed, and organized with milestones and workboards. the latter are kanban-boards like those i know from trello, waffle, and github project boards. phabricator is open source so you can self-host it and add your own user management without having to pay for each new user and feature (i am looking at you, jira). internally i would like to use phabricator but for fully open projects i don’t see enough benefit compared to using github. p.s.: wikimedia hackathon is also organized with phabricator. there is also a task for blogging about the event. tags: wikimedia, wmhack kommentar some thoughts on iiif and metadata . mai um : keine kommentare yesterday at dini ag kim workshop i martin baumgartner and stefanie rühle gave an introduction to the international image interoperability framework (iiif) with focus on metadata. i already knew that iiif is a great technology for providing access to (especially large) images but i had not have a detailed look yet. the main part of iiif is its image api and i hope that all major media repositories (i am looking at you, wikimedia commons) will implement it. in addition the iiif community has defined a „presentation api“, a „search api“, and an „authentication api“. i understand the need of such additional apis within the iiif community, but i doubt that solving the underlying problems with their own standards (instead of reusing existing standards) is the right way to go. standards should better „do one thing and do it well“ (unix philosophy). if images are the „one thing“ of iiif, then search and authentication are different matter. in the workshop we only looked at parts of the presentation api to see where metadata (creator, dates, places, provenance etc. and structural metadata such as lists and hierarchies) could be integrated into iiif. such metadata is already expressed in many other formats such as mets/mods and tei so the question is not whether to use iiif or other metadata standards but how to connect iiif with existing metadata standards. a quick look at the presentation api surprised me to find out that the metadata element is explicitly not intended for additional metadata but only „to be displayed to the user“. the element contains an ordered list of key-value pairs that „might be used to convey the author of the work, information about its creation, a brief physical description, or ownership information, amongst other use cases“. at the same time the standard emphasizes that „there are no semantics conveyed by this information“. hello, mcfly? without semantics conveyed it isn’t information! in particular there is no such thing as structured data (e.g. a list of key-value pairs) without semantics. i think the design of field metadata in iiif is based on a common misconception about the nature of (meta)data, which i already wrote about elsewhere (sorry, german article – some background in my phd and found by ballsun-stanton). in a short discussion at twitter rob sanderson (getty) pointed out that the data format of iiif presentation api to describe intellectual works (called a manifest) is expressed in json-ld, so it can be extended by other rdf statements. for instance the field „license“ is already defined with dcterms:rights. addition of a field „author“ for dcterms:creator only requires to define this field in the json-ld @context of a manifest. after some experimenting i found a possible way to connect the „meaningless“ metadata field with json-ld fields: { "@context": [ "http://iiif.io/api/presentation/ /context.json", { "author": "http://purl.org/dc/terms/creator", "bibo": "http://purl.org/ontology/bibo/" } ], "@id": "http://example.org/iiif/book /manifest", "@type": ["sc:manifest", "bibo:book"], "metadata": [ { "label": "author", "property": "http://purl.org/dc/terms/creator", "value": "allen smithee" }, { "label": "license", "property": "http://purl.org/dc/terms/license", "value": "cc-by . " } ], "license": "http://creativecommons.org/licenses/by/ . /", "author": { "@id": "http://www.wikidata.org/entity/q ", "label": "allen smithee" } } this solution requires an additional element property in the iiif specification to connect a metadata field with its meaning. iiif applications could then enrich the display of metadata fields for instance with links or additional translations. in json-ld some names such as „cc-by . “ and „allen smithee“ need to be given twice, but this is ok because normal names (in contrast to field names such as „author“ and „license“) don’t have semantics. tags: iiif, metadata keine kommentare ersatzteile aus dem d-drucker . dezember um : kommentare krach, zack, bumm! da liegt die jalousie unten. ein kleinen plastikteil ist abgebrochen, das wäre doch ein prima anwendungsfall für einen d-drucker, oder? schön länger spiele ich mit dem gedanken, einen d-drucker anzuschaffen, kann aber nicht so recht sagen, wozu eigentlich. die herstellung von ersatzteilen aus dem d-drucker scheint mir allerdings eher so ein versprechen zu sein wie der intelligente kühlschrank: theoretisch ganz toll aber nicht wirklich praktisch. es würde mich vermutlich stunden kosten, das passende teil auf diversen plattformen wie thingiverse zu finden oder es mit cad selber zu konstruieren. ohne verlässliche d-modelle bringt also der beste d-drucker nichts, deshalb sind die geräte auch nur ein teil der lösung zur herstellung von ersatzteilen. ich bezweifle sehr dass in naher zukunft hersteller d-modelle ihrer produkte zum download anbieten werden, es sei denn es handelt sich um open hardware. abgesehen von elektronischen bastelprojekten ist das angebot von open-hardware-produkten für den hausgebrauch aber noch sehr überschaubar. dennoch denke ich, dass open hardware, das heisst produkte deren baupläne frei lizensiert zur kostenlosen verfügung stehen, sowie standardisierte bauteile das einzig richtige für den einsatz von d-druckern im hausgebrauch sind. ich werde das problem mit der kaputten jalousie erstmal mit analoger technik angehen und schauen, was ich so an passenden materialien und werkzeugen herumliegen habe. vielleicht hilft ja gaffer tape? tags: d-drucker, maker, open hardware kommentare einfachste projekthomepage bei github . september um : kommentar die einfachste form einer projekthomepage bei github pages besteht aus einer startseite, die lediglich auf das repository verweist. lokal lässt sich eine solche seite so angelegen: . erstellung des neuen, leeren branch gh-pages: git checkout --orphan gh-pages git rm -rf . . anlegen der datei index.md mit folgendem inhalt: --- --- # {{site.github.project_title}} [{{site.github.repository_url}}]({{site.github.repository_url}}#readme). . hinzufügen der datei und push nach github git add index.md git commit -m "homepage" git push origin gh-pages tags: github kommentar abbreviated uris with rdfns . september um : kommentare working with rdf and uris can be annoying because uris such as „http://purl.org/dc/elements/ . /title“ are long and difficult to remember and type. most rdf serializations make use of namespace prefixes to abbreviate uris, for instance „dc“ is frequently used to abbreviate „http://purl.org/dc/elements/ . /“ so „http://purl.org/dc/elements/ . /title“ can be written as qualified name „dc:title„. this simplifies working with uris, but someone still has to remember mappings between prefixes and namespaces. luckily there is a registry of common mappings at prefix.cc. a few years ago i created the simple command line tool rdfns and a perl library to look up uri namespace/prefix mappings. meanwhile the program is also available as debian and ubuntu package librdf-ns-perl. the newest version (not included in debian yet) also supports reverse lookup to abbreviate an uri to a qualified name. features of rdfns include: look up namespaces (as rdf/turtle, rdf/xml, sparql…) $ rdfns foaf.ttl foaf.xmlns dbpedia.sparql foaf.json @prefix foaf: . xmlns:foaf="http://xmlns.com/foaf/ . /" prefix dbpedia: "foaf": "http://xmlns.com/foaf/ . /" expand a qualified name $ rdfns dc:title http://purl.org/dc/elements/ . /title lookup a preferred prefix $ rdfns http://www.w .org/ / /geo/wgs _pos# geo create a short qualified name of an url $ rdfns http://purl.org/dc/elements/ . /title dc:title i use rdf-ns for all rdf processing to improve readability and to avoid typing long uris. for instance catmandu::rdf can be used to parse rdf into a very concise data structure: $ catmandu convert rdf --file rdfdata.ttl to yaml tags: perl, rdf kommentare das wissen der welt . august um : kommentare denny vrandečić, einer der köpfe hinter semantic mediawiki und wikidata, hat eine clevere metrik vorgeschlagen um den erfolg der wikimedia-projekte zu messen. die tätigkeit und damit das ziel der wikimedia-foundation wurde von jimbo wales so ausgedrückt: imagine a world in which every single person on the planet is given free access to the sum of all human knowledge. that’s what we’re doing. in wikiquote wird dieser bekannte ausspruch momentan folgendermaßen übersetzt: „stell dir eine welt vor, in der jeder mensch auf der erde freien zugang zum gesamten menschlichem wissen hat. das ist, was wir machen.“ wie lässt sich nun aber quantifizieren, zu welchem grad das ziel erreicht ist? so wie ich es verstanden (und in meine worte übersetzt) habe, schlägt denny folgendes vor: für jedem menschen auf der welt gibt es theoretisch eine zahl zwischen null und eins, die angibt wieviel vom gesamten wissens der welt („the sum of all human knowledge“) diesem menschen durch wikimedia-inhalte zugänglich ist. der wert lässt sich als prozentzahl des zugänglichen weltwissens interpretieren – da sich wissen aber kaum so einfach messen und vergleichen lässt, ist diese interpretation problematisch. der wert von eins ist utopisch, da wikipedia & co nicht alles wissen der welt enthält. für menschen ohne internet-zugang kann der wert aber bei null liegen. selbst mit zugang zu wikipedia ist die zahl bei jedem menschen eine andere, da nicht alle inhalte in allen sprachen vorhanden sind und weil viele inhalte ohne vorwissen unverständlich und somit praktisch nicht zugänglich sind. die zahlen der individuellen zugänglichkeit des weltwissens lassen sich nun geordnet in ein diagram eintragen, das von links (maximales wissen) nach rechts (kein wissen durch zugänglich) alle menschen aufführt. wie denny an folgendem bild ausführt, kann die wikimedia-community ihrem weg auf verschiedenen wegen näher kommen: ( ) der ausbau von vielen artikeln in einem komplexen spezialgebiet oder einer kleinen sprache kommt nur wenigen menschen zu gute. ( ) stattdessen könnten auch die wichtigsten artikel bzw. themen in sprachen verbessert und ergänzt werden, welche von vielen menschen verstanden werden. ( ) schließlich kann wikimedia auch dafür sorgen, dass mehr menschen einen zugang zu den wikimedia-ihren inhalten bekommen – zum beispiel durch initiativen wie wikipedia zero ich halte die von denny vorgeschlagene darstellung für hilfreich um über das einfache zählen von wikipedia-artikeln hinauszukommen. wie er allerdings selber zugibt, gibt es zahlreiche offene fragen da sich die tatsächlichen zahlen der verfügbarkeit von wissen nicht einfach ermitteln lassen. meiner meinung nach liegt ein grundproblem darin, dass sich wissen – und vor allem das gesamte wissen der menschheit – nicht quantifizieren lässt. es ist auch irreführend davon auszugehen, dass die wikimedia-produkte wissen sammeln oder enthalten. möglicherweise ist dieser irrtum für die metrik egal, nicht aber für das was eigentlich gemessen werden soll (zugänglichkeit des wissens der welt). falls wikimedia an einem unverstelltem blick auf die frage interessiert ist, wieviel des wissens der menschheit durch ihre angebote den menschen zugänglich gemacht wird, könnte es helfen mal einige philosophen und philosophinnen zu fragen. ganz im ernst. mag sein (und so vermute ich mit meinem abgebrochenen philosophie-studium), dass am ende lediglich deutlich wird, warum dass ganze wikimedia-projekt nicht zu realisieren ist; selbst erkenntnisse über mögliche gründe dieses scheitern wären aber hilfreich. vermutlich ist es aber zu verpönt, philosophen ernsthaft um rat zu fragen oder die verbliebenen philosophen beschäftigen sich lieber mit anderen fragen. p.s: eine weitere relevante disziplin zur beantwortung der frage wieviel wissen der welt durch wikipedia & co der menschheit zugänglich gemacht wird, ist die pädagogik, aber da kenne ich mich noch weniger aus als mit der philosophie. tags: freie inhalte, wikipedia, wissensordnung kommentare nächste seite » neueste beiträge erster expliziter entwurf einer digitalen bibliothek ( ) data models age like parents in memoriam ingetraut dahlberg wikidata documentation on the hackathon in vienna introduction to phabricator at wikimedia hackathon neueste kommentare подробности... bei erster expliziter entwurf einer digitalen bibliothek ( ) ayam s bei ersatzteile aus dem d-drucker will taking dht at increase penis size bei abbreviated uris with rdfns http://asikgapleqq.com/ bei dublin core conference started thekitchenconnection-nc.com bei suchmaschinenoptimierung á la insm themen api archivierung atom bibliothek bibliothekswissenschaft bibsonomy daia data modeling digital library feed freie inhalte gbv humor identifier katalog katalog . librarything literatur mashup medien metadata microformats musik oai open access openstreetmap perl pica politik rdf seealso semantic web soa software standards suchmaschine tagging veranstaltung web . webservices widget wikimedia wikipedia wikis Überwachungsstaat blogroll planet biblioblog . planet code lib planet wikimedia (de) feeds siehe auch powered by wordpress with theme based on pool theme and silk icons. entries and comments feeds. valid xhtml and css. ^top^
    warning: "continue" targeting switch is equivalent to "break". did you mean to use "continue "? in /kunden/ _ /jakoblog.de/wp/wp-content/plugins/mendeleyplugin/wp-mendeley.php on line

    warning: cannot modify header information - headers already sent by (output started at /kunden/ _ /jakoblog.de/wp/wp-content/plugins/mendeleyplugin/wp-mendeley.php: ) in /kunden/ _ /jakoblog.de/wp/wp-includes/feed-atom.php on line
    en &# ; jakoblog das weblog von jakob voß - - t : : z http://jakoblog.de/feed/atom/ wordpress jakob <![cdata[data models age like parents]]> http://jakoblog.de/?p= - - t : : z - - t : : z denny vrandečić, employed as ontologist at google, noticed that all six of of six linked data applications linked to years ago (iwb, tabulator, disko, marbles, rdfbrowser , and zitgist) have disappeared or changed their calling syntax. this reminded me at a proverb about software and data:

    software ages like fish, data ages like wine.


    the original form of this saying seems to come from james governor (@monkchips) who in derived it from from an earlier phrase:

    hardware is like fish, operating systems are like wine.

    the analogy of fishy applications and delightful data has been repeated and explained and criticized several times. i fully agree with the part about software rot but i doubt that data actually ages like wine (i&# ;d prefer whisky anyway). a more accurate simile may be &# ;data ages like things you put into your crowded cellar and then forget about&# ;.

    thinking a lot about data i found that data is less interesting than the structures and rules that shape and restrict data: data models, ontologies, schemas, forms etc. how do they age compared with software and data? i soon realized:

    data models age like parents.

    first they guide you, give good advise, and support you as best as they can. but at some point data begin to rebel against their models. sooner or later parents become uncool, disconnected from current trends, outdated or even embarrassing. eventually you have to accept their quaint peculiarities and live your own life. that&# ;s how standards proliferate. both ontologies and parents ultimately become weaker and need support. and in the end you have to let them go, sadly looking back.

    (the analogy could further be extended, for instance data models might be frustrated confronted by how actual data compares to their ideals, but that&# ;s another story)

    ]]>
    jakob <![cdata[wikidata documentation on the hackathon in vienna]]> http://jakoblog.de/?p= - - t : : z - - t : : z at wikimedia hackathon , a couple of volunteers sat together to work on the help pages of wikidata. as part of that wikidata documentation sprint. ziko and me took a look at the wikidata glossary. we identified several shortcomings and made a list of rules how the glossary should look like. the result are the glossary guidelines. where the old glossary partly replicated wikidata:introduction, the new version aims to allow quick lookup of concepts. we already rewrote some entries of the glossary according to these guidelines but several entries are outdated and need to be improved still. we changed the structure of the glossary into a sortable table so it can be displayed as alphabetical list in all languages. the entries can still be translated with the translation system (it took some time to get familiar with this feature).

    we also created some missing help pages such as help:wikimedia and help:wikibase to explain general concepts with regard to wikidata. some of these concepts are already explained elsewhere but wikidata needs at least short introductions especially written for wikidata users.

    image taken by andrew lih (cc-by-sa)

    ]]>
    jakob <![cdata[introduction to phabricator at wikimedia hackathon]]> http://jakoblog.de/?p= - - t : : z - - t : : z this weekend i participate at wikimedia hackathon in vienna. i mostly contribute to wikidata related events and practice the phrase "long time no see", but i also look into some introductionary talks.

    in the late afternoon of day one i attended an introduction to phabricator project management tool given by andré klapper. phabricator was introduced in wikimedia foundation about three years ago to replace and unify bugzilla and several other management tools.

    phabricator is much more than an issue tracker for software projects (although it is mainly used for this purpose by wikimedia developers). in summary there are tasks, projects, and teams. tasks can be tagged, assigned, followed,discussed, and organized with milestones and workboards. the latter are kanban-boards like those i know from trello, waffle, and github project boards.

    phabricator is open source so you can self-host it and add your own user management without having to pay for each new user and feature (i am looking at you, jira). internally i would like to use phabricator but for fully open projects i don&# ;t see enough benefit compared to using github.

    p.s.: wikimedia hackathon is also organized with phabricator. there is also a task for blogging about the event.

    ]]>
    jakob <![cdata[some thoughts on iiif and metadata]]> http://jakoblog.de/?p= - - t : : z - - t : : z yesterday at dini ag kim workshop i martin baumgartner and stefanie rühle gave an introduction to the international image interoperability framework (iiif) with focus on metadata. i already knew that iiif is a great technology for providing access to (especially large) images but i had not have a detailed look yet. the main part of iiif is its image api and i hope that all major media repositories (i am looking at you, wikimedia commons) will implement it. in addition the iiif community has defined a &# ;presentation api&# ;, a &# ;search api&# ;, and an &# ;authentication api&# ;. i understand the need of such additional apis within the iiif community, but i doubt that solving the underlying problems with their own standards (instead of reusing existing standards) is the right way to go. standards should better &# ;do one thing and do it well&# ; (unix philosophy). if images are the &# ;one thing&# ; of iiif, then search and authentication are different matter.

    in the workshop we only looked at parts of the presentation api to see where metadata (creator, dates, places, provenance etc. and structural metadata such as lists and hierarchies) could be integrated into iiif. such metadata is already expressed in many other formats such as mets/mods and tei so the question is not whether to use iiif or other metadata standards but how to connect iiif with existing metadata standards. a quick look at the presentation api surprised me to find out that the metadata element is explicitly not intended for additional metadata but only &# ;to be displayed to the user&# ;. the element contains an ordered list of key-value pairs that &# ;might be used to convey the author of the work, information about its creation, a brief physical description, or ownership information, amongst other use cases&# ;. at the same time the standard emphasizes that &# ;there are no semantics conveyed by this information&# ;. hello, mcfly? without semantics conveyed it isn&# ;t information! in particular there is no such thing as structured data (e.g. a list of key-value pairs) without semantics.

    i think the design of field metadata in iiif is based on a common misconception about the nature of (meta)data, which i already wrote about elsewhere (sorry, german article &# ; some background in my phd and found by ballsun-stanton).

    in a short discussion at twitter rob sanderson (getty) pointed out that the data format of iiif presentation api to describe intellectual works (called a manifest) is expressed in json-ld, so it can be extended by other rdf statements. for instance the field &# ;license&# ; is already defined with dcterms:rights. addition of a field &# ;author&# ; for dcterms:creator only requires to define this field in the json-ld @context of a manifest. after some experimenting i found a possible way to connect the &# ;meaningless&# ; metadata field with json-ld fields:

     {
     "@context": [
     "http://iiif.io/api/presentation/ /context.json",
     { 
     "author": "http://purl.org/dc/terms/creator",
     "bibo": "http://purl.org/ontology/bibo/"
     }
     ],
     "@id": "http://example.org/iiif/book /manifest",
     "@type": ["sc:manifest", "bibo:book"],
     "metadata": [
     {
     "label": "author",
     "property": "http://purl.org/dc/terms/creator",
     "value": "allen smithee"
     },
     { 
     "label": "license",
     "property": "http://purl.org/dc/terms/license", 
     "value": "cc-by . " 
     }
     ],
     "license": "http://creativecommons.org/licenses/by/ . /",
     "author": {
     "@id": "http://www.wikidata.org/entity/q ",
     "label": "allen smithee"
     }
     }
     

    this solution requires an additional element property in the iiif specification to connect a metadata field with its meaning. iiif applications could then enrich the display of metadata fields for instance with links or additional translations. in json-ld some names such as &# ;cc-by . &# ; and &# ;allen smithee&# ; need to be given twice, but this is ok because normal names (in contrast to field names such as &# ;author&# ; and &# ;license&# ;) don&# ;t have semantics.

    ]]>
    jakob <![cdata[abbreviated uris with rdfns]]> http://jakoblog.de/?p= - - t : : z - - t : : z working with rdf and uris can be annoying because uris such as &# ;http://purl.org/dc/elements/ . /title&# ; are long and difficult to remember and type. most rdf serializations make use of namespace prefixes to abbreviate uris, for instance &# ;dc&# ; is frequently used to abbreviate &# ;http://purl.org/dc/elements/ . /&# ; so &# ;http://purl.org/dc/elements/ . /title&# ; can be written as qualified name &# ;dc:title&# ;. this simplifies working with uris, but someone still has to remember mappings between prefixes and namespaces. luckily there is a registry of common mappings at prefix.cc.

    a few years ago i created the simple command line tool rdfns and a perl library to look up uri namespace/prefix mappings. meanwhile the program is also available as debian and ubuntu package librdf-ns-perl. the newest version (not included in debian yet) also supports reverse lookup to abbreviate an uri to a qualified name. features of rdfns include:

    look up namespaces (as rdf/turtle, rdf/xml, sparql&# ;)

     $ rdfns foaf.ttl foaf.xmlns dbpedia.sparql foaf.json
     
     @prefix foaf:  .
     xmlns:foaf="http://xmlns.com/foaf/ . /"
     prefix dbpedia: 
     "foaf": "http://xmlns.com/foaf/ . /"
     

    expand a qualified name

     $ rdfns dc:title
     
     http://purl.org/dc/elements/ . /title
     

    lookup a preferred prefix

     $ rdfns http://www.w .org/ / /geo/wgs _pos#
     
     geo
     

    create a short qualified name of an url

     $ rdfns http://purl.org/dc/elements/ . /title
     
     dc:title
     

    i use rdf-ns for all rdf processing to improve readability and to avoid typing long uris. for instance catmandu::rdf can be used to parse rdf into a very concise data structure:

     $ catmandu convert rdf --file rdfdata.ttl to yaml
     
    ]]>
    jakob <![cdata[testing command line apps with app::cmd]]> http://jakoblog.de/?p= - - t : : z - - t : : z this posting has also been published at blogs.perl.org.

    ricardo signes&# ; app::cmd has been praised a lot so i gave it a try for my recent command line app. in summary, the module is great although i missed some minor features and documentation (reminder to all: if you miss some feature in a cpan module, don&# ;t create yet another module but try to improve the existing one!). one feature i like a lot is how app::cmd facilitates writing tests for command line apps. after having written a short wrapper around app::cmd::tester my formerly ugly unit tests look very simple and clean. have a look at this example:

     use test::more;
     use app::paia::tester;
     
     new_paia_test;
     
     paia qw(config);
     is stdout, "{}\n";
     is error, undef;
     
     paia qw(config -c x.json --verbose);
     is error, "failed to open config file x.json\n";
     ok exit_code; 
     
     paia qw(config --config x.json --verbose foo bar);
     is output, "# saved config file x.json\n";
     
     paia qw(config foo bar);
     paia qw(config base http://example.org/);
     is exit_code, ;
     is output, '';
     
     paia qw(config);
     is_deeply stdout_json, { 
     base => 'http://example.org/',
     foo => 'bar',
     }, "get full config"
     
     done_paia_test;
     

    the application is called paia &# ; that&# ;s how it called at command line and that&# ;s how it is simply called as function in the tests. the wrapper class (here: app::paia::tester) creates a singleton app::cmd::tester::result object and exports its methods (stdout, stderr, exit_code&# ;). this alone makes the test much more readable. the wrapper further exports two methods to set up a testing environment (new_paia_test) and to finish testing (done_paia_test). in my case the setup creates an empty temporary directory, other applications might clean up environment variables etc. depending on your application you might also add some handy functions like stdout_json to parse the app&# ;s output in a form that can better be tested.

    ]]>
    jakob <![cdata[my phd thesis about data]]> http://jakoblog.de/?p= - - t : : z - - t : : z

    i have finally received paper copies of my phd thesis &# ;describing data patterns&# ;, published and printed via createspace. the full pdf has already been archived as cc-by-sa, but a paper print may still be nice and more handy (it&# ;s printed as small paperback instead of the large a -pdf). you can get a copy for . € or . € via amazon (isbn - - - ).

    i also set up a little website at aboutdata.org. the site contains an html view of the pattern language that i developed as one result of the thesis.

    i am sorry for not having written the thesis in pandoc markdown but in latex (source code available at github), so there is no epub/html version.

    ]]>
    jakob <![cdata[on the way to a library ontology]]> http://jakoblog.de/?p= - - t : : z - - t : : z i have been working for some years on specification and implementation of several apis and exchange formats for data used in, and provided by libraries. unfortunately most existing library standards are either fuzzy, complex, and misused (such as marc ), or limited to bibliographic data or authority data, or both. libraries, however, are much more than bibliographic data &# ; they involve library patrons, library buildings, library services, library holdings, library databases etc.

    during the work on formats and apis for these parts of library world, patrons account information api (paia) being the newest piece, i found myself more and more on the way to a whole library ontology. the idea of a library ontology started in (now moved to this location) but designing such a broad data model from bottom would surely have lead to yet another complex, impractical and unused library standard. meanwhile there are several smaller ontologies for parts of the library world, to be combined and used as linked open data.

    in my opinion, ontologies, rdf, semantic web, linked data and all the buzz is is overrated, but it includes some opportunities for clean data modeling and data integration, which one rarely finds in library data. for this reason i try to design all apis and formats at least compatible with rdf. for instance the document availability information api (daia), created in (and now being slightly redesigned for version . ) can be accessed in xml and in json format, and both can fully be mapped to rdf. other micro-ontologies include:

    • document service ontology (dso) defines typical document-related services such as loan, presentation, and digitization
    • simple service status ontology (ssso) defines a service instance as kind of event that connects a service provider (e.g. a library) with a service consumer (e.g. a library patron). ssso further defines typical service status (e.g. reserved, prepared, executed&# ;) and limitations of a service (e.g. a waiting queue or a delay
    • patrons account information api (paia) will include a mapping to rdf to express basic patron information, fees, and a list of current services in a patron account, based on ssso and dso.
    • document availability information api (daia) includes a mapping to rdf to express the current availability of library holdings for selected services. see here for the current draft.
    • a holdings ontology should define properties to relate holdings (or parts of holdings) to abstract documents and editions and to holding institutions.
    • gbv ontology contains several concepts and relations used in gbv library network that do not fit into other ontologies (yet).
    • one might further create a database ontology to describe library databases with their provider, extent apis etc. &# ; right now we use the gbv ontology for this purpose. is there anything to reuse instead of creating just another ontology?!

    the next step will probably creation of a small holdings ontology that nicely fits to the other micro-ontologies. this ontology should be aligned or compatible with the bibframe initiative, other ontologies such as schema.org, and existing holding formats, without becoming too complex. the german initiative dini-kim has just launched a a working group to define such holding format or ontology.

    ]]>
    jakob <![cdata[dead end electronic resource citation (erc)]]> http://jakoblog.de/?p= - - t : : z - - t : : z tidying up my phd notes, i found this short rant about &# ;electronic resource citation&# ;. i have not used it anywhere, so i publish it here, licensed under cc-by-sa.

    electronic resource citation (erc) was introduced by john kunze with a presentation at the international conference on dublin core and metadata applications and with a paper in the journal of digital information, vol. , no ( ). kunze cited his paper in a call for an erc interest group within the dublin core metadata initiative (dcmi) at the perl lib mailing list, giving the following example of an erc:

     erc: kunze, john a. | a metadata kernel for electronic permanence
     | | http://jodi.ecs.soton.ac.uk/articles/v /i /kunze/
     

    an erc is a minimal &# ;kernel&# ; metadata record that consist of four elements: who, what, when and where. in the given example they are:

     who: kunze, john a.
     what: a metadata kernel for electronic permanence
     when: 
     where: http://jodi.ecs.soton.ac.uk/articles/v /i /kunze/
     

    ironically the given url is obsolete, the host &# ;jodi.ecs.soton.ac.uk&# ; does not even exist anymore. the erc is pretty useless if it just uses a fragile url to cite a resource. how about some value that does not change over time, e.g:

     where: journal of digital information, volume issue 
     

    as erc is defined as &# ;a location or machine-oriented identifier&# ;, one could also use stable identifiers:

     where: issn - , article no. 
     

    both issn and article numbers are much more identifiers then urls. citing an url is more like

     where: at the desk in the little reading room of my library
     

    by the way the current location is http://www.rice.edu/perl lib/archives/ - /msg .html &# ; but who knows whether texas a&# ;m university will still host the journal at this url in years?

    there are some interesting ideas in the original erc proposal (different kinds of missing values, temper date values, the four questions etc.), but its specification and implementation are just ridiculous and missing references to current technology (you know that you are doing something wrong in specification if you start to define your own encodings for characters, dates etc. instead of concentrating to your core subject and refering to existing specifications for the rest). the current draft ( ) is a typical example of badly mixing modeling and encoding issues and of loosing touch with existing, established data standards.

    in addition to problems at the &# ;low level&# ; of encoding, the &# ;high level&# ; of conceptual modeling lacks appropriate references. what about the relation of erc concepts to models such as frbr and cidoc-crm? why are &# ;who&# ;, &# ;when&# ;, &# ;where&# ;, &# ;what&# ; the important metadata fields (in many cases the most interesting question is &# ;why&# ;)? how about ranganathan&# ;s colon classification with personality, matter, energy, space, and time?

    in summary the motivation behind erc contains some good ideas, but its form is misdirected.

    ]]>
    jakob <![cdata[access to library accounts for better user experience]]> http://jakoblog.de/?p= - - t : : z - - t : : z i just stumbled upon readersfirst, a coalition of (public) libraries that call for a better user experience for library patrons, especially to access e-books. the libraries regret that

    the products currently offered by e-content distributors, the middlemen from whom libraries buy e-books, create a fragmented, disjointed and cumbersome user experience.

    one of the explicit goals of readersfirst is to urge providers of e-content and integrated library systems for systems that allow users to

    place holds, check-out items, view availability, manage fines and receive communications within individual library catalogs or in the venue the library believes will serve them best, without having to visit separate websites.

    in a summary of the first readersfirst meeting at january , the president of queens library (ny) is cited with the following request:

    the reader should be able to look at their library account and see what they have borrowed regardless of the vendor that supplied the ebook.

    this goal matches well with my activity at gbv: as part of a project to implement a mobile library app, i designed an api to access library accounts. the patrons account information api (paia) is current being implemented and tested by two independent developers. it will also be used to provide a better user experience in vufind discovery interfaces.

    during the research for paia i was surprised by the lack of existing methods to access library patron accounts. some library systems not even provide an internal api to connect to the loan system &# ; not to speak of a public api that could directly be used by patrons and third parties. the only example i could find was york university libraries with a simple, xml-based, read-only api. this lack of public apis to library patron accounts is disappointing, given that its almost ten years after the buzz around web . , service oriented architecture, and mashups. all all major providers of web applications (google, twitter, facebook, stackexchange, github etc.) support access to user accounts via apis.

    the patrons account information api will hopefully fill this gap with defined methods to place holds and to view checked out items and fines. papi is agnostic to specific library systems, aligned with similar apis as listed above, and designed with rdf in mind (without any need to bother with rdf, apart from the requirement to use uris as identifiers). feedback and implementations are very welcome!

    ]]>
    bibliographic wilderness skip to content bibliographic wilderness menu about contact code that lasts: sustainable and usable open source code a presentation i gave at online conference code lib , on monday march . i have realized that the open source projects i am most proud of are a few that have existed for years now, increasing in popularity, with very little maintenance required. including traject and bento_search. while community aspects matter for open source sustainability, the task gets so much easier when the code requires less effort to keep alive, for maintainers and utilizers. using these projects as examples, can we as developers identify what makes code “inexpensive” to use and maintain over the long haul with little “churn”, and how to do that? slides on google docs rough transcript (really the script i wrote for myself) hi, i’m jonathan rochkind, and this is “code that lasts: sustainable and usable open source code” so, who am i? i have been developing open source library software since , mainly in ruby and rails.  over that time, i have participated in a variety open source projects meant to be used by multiple institutions, and i’ve often seen us having challenges with long-term maintenance sustainability and usability of our software. this includes in projects i have been instrumental in creating myself, we’ve all been there!  we’re used to thinking of this problem in terms of needing more maintainers. but let’s first think more about what the situation looks like, before we assume what causes it. in addition to features  or changes people want not getting done, it also can look like, for instance: being stuck using out-of-date dependencies like old, even end-of-lifed, versions of rails or ruby. a reduction in software “polish” over time.  what do i mean by “polish”? engineer richard schneeman writes: [quote] “when we say something is “polished” it means that it is free from sharp edges, even the small ones. i view polished software to be ones that are mostly free from frustration. they do what you expect them to and are consistent.”  i have noticed that software can start out very well polished, but over time lose that polish.  this usually goes along with decreasing “cohesion” in software over time, a feeling like that different parts of the software start to no longer tell the developer a consistent story together.  while there can be an element of truth in needing more maintainers in some cases – zero maintainers is obviously too few — there are also ways that increasing the number of committers or maintainers can result in diminishing returns and additional challenges. one of the theses of fred brooks famous book “the mythical man-month” is sometimes called ”brooks law”:  “under certain conditions, an incremental person when added to a project makes the project take more, not less time.” why? one of the main reasons brooks discusses is the the additional time taken for communication and coordination between more people – with every person you add, the number of connections between people goes up combinatorily.  that may explain the phenomenon we sometimes see with so-called “design  by committee” where “too many cooks in the kitchen” can produce inconsistency or excessive complexity. cohesion and polish require a unified design vision— that’s  not incompatible with increasing numbers of maintainers, but it does make it more challenging because it takes more time to get everyone on the same page, and iterate while maintaining a unifying vision.  (there’s also more to be said here about the difference between just a bunch of committers committing pr’s, and the maintainers role of maintaining historical context and design vision for how all the parts fit together.) instead of assuming adding more committers or maintainers is the solution, can there instead be ways to reduce the amount of maintenance required? i started thinking about this when i noticed a couple projects of mine which had become more widely successful than i had any right  to expect, considering how little maintainance was being put into them.  bento_search is a toolkit for searching different external search engines in a consistent way. it’s especially but not exclusively for displaying multiple search results in “bento box” style, which is what tito sierra from ncsu first called these little side by side search results.  i wrote bento_search  for use at a former job in .  % of all commits to the project were made in .  % of all commits in or earlier. (i gave it a bit of attention for a contracting project in ). but bento_search has never gotten a lot of maintenance, i don’t use it anymore myself. it’s not in wide use, but i found  it kind of amazing, when i saw people giving me credit in conference presentations for the gem (thanks!), when i didn’t even know they were using it and i hadn’t been paying it any attention at all! it’s still used by a handful of institutions for whom it just works with little attention from maintainers. (the screenshot from cornell university libraries) traject is a marc-to-solr indexing tool written in ruby  (or, more generally, can be a general purpose extract-transform-load tool), that i wrote with bill dueber from the university of michigan in .  we hoped it would catch on in the blacklight community, but for the first couple years, it’s uptake was slow.  however, since then, it has come to be pretty popular in blacklight and samvera communities, and a few other library technologist uses.  you can see the spikes of commit activity in the graph for a . release in and a . release in – but for the most part at other times, nobody has really been spending much time on maintaining traject.   every once in a while a community member submits a minor pull request, and it’s usually me who reviews it. me and bill remain the only maintainers.  and yet traject just keeps plugging along, picking up adoption and working well for adopters.   so, this made me start thinking, based on what i’ve seen in my career, what are some of the things that might make open source projects both low-maintenance and successful in their adoption and ease-of-use for developers? one thing both of these projects did was take backwards compatibility very seriously.  the first step of step there is following “semantic versioning” a set of rules whose main point is that releases can’t include backwards incompatible changes unless they are a new major version, like going from .x to . .  this is important, but it’s not alone enough to minimize backwards incompatible changes that add maintenance burden to the ecosystem. if the real goal is preventing the pain of backwards incompatibility, we also need to limit the number of major version releases, and limit the number and scope of backwards breaking changes in each major release! the bento_search gem has only had one major release, it’s never had a . release, and it’s still backwards compatible to it’s initial release.  traject is on a .x release after years, but the major releases of traject have had extremely few backwards breaking changes, most people could upgrade through major versions changing very little or most often nothing in their projects.  so ok, sure, everyone wants to minimize backwards incompatibility, but that’s easy to say, how do you do it? well, it helps to have less code overall, that changes less often overall all  – ok, again, great, but how do you do that?  parsimony is a word in general english that means “the quality of economy or frugality in the use of resources.” in terms of software architecture, it means having as few as possible moving parts inside your code: fewer classes, types, components, entities, whatever: or most fundamentally, i like to think of it in terms of minimizing the concepts in the mental model a programmer needs to grasp how the code works and what parts do what. the goal of architecture design is, what is the smallest possible architecture we can create to make [quote] “simple things simple and complex things possible”, as computer scientist alan kay described the goal of software design.  we can see this in bento_search has very few internal architectural concepts.  the main thing bento_search does is provide a standard api for querying a search engine and representing results of a search. these are consistent across different searche engines,, with common metadata vocabulary for what results look like. this makes search engines  interchangeable to calling code.  and then it includes half a dozen or so search engine implementations for services i needed or wanted to evaluate when i wrote it.   this search engine api at the ruby level can be used all by itself even without the next part, the actual “bento style” which is a built-in support for displaying search engine results in a boxes on a page of your choice in a rails app, way to,  writing very little boilerplate code.   traject has an architecture which basically has just three parts at the top. there is a reader which sends objects into the pipeline.  there are some indexing rules which are transformation steps from source object to build an output hash object.  and then a writer which which translates the hash object to write to some store, such as solr. the reader, transformation steps, and writer are all independent and uncaring about each other, and can be mixed and matched.   that’s most of traject right there. it seems simple and obvious once you have it, but it can take a lot of work to end up with what’s simple and obvious in retrospect!  when designing code i’m often reminded of the apocryphal quote: “i would have written a shorter letter, but i did not have the time” and, to be fair, there’s a lot of complexity within that “indexing rules” step in traject, but it’s design was approached the same way. we have use cases about supporting configuration settings in a  file or on command line; or about allowing re-usable custom transformation logic – what’s the simplest possible architecture we can come up with to support those cases. ok, again, that sounds nice, but how do you do it? i don’t have a paint by numbers, but i can say that for both these projects i took some time – a few weeks even – at the beginning to work out these architectures, lots of diagraming, some prototyping i was prepared to throw out,  and in some cases “documentation-driven design” where i wrote some docs for code i hadn’t written yet. for traject it was invaluable to have bill dueber at university of michigan also interested in spending some design time up front, bouncing ideas back and forth with – to actually intentionally go through an architectural design phase before the implementation.  figuring out a good parsimonious architecture takes domain knowledge: what things your “industry” – other potential institutions — are going to want to do in this area, and specifically what developers are going to want to do with your tool.  we’re maybe used to thinking of “use cases” in terms of end-users, but it can be useful at the architectural design stage, to formalize this in terms of developer use cases. what is a developer going to want to do, how can i come up with a small number of software pieces she can use to assemble together to do those things. when we said “make simple things simple and complex things possible”, we can say domain analysis and use cases is identifying what things we’re going to put in either or neither of those categories.  the “simple thing” for bento_search , for instance is just “do a simple keyword search in a search engine, and display results, without having the calling code need to know anything about the specifics of that search engine.” another way to get a head-start on solid domain knowledge is to start with another tool you have experience with, that you want to create a replacement for. before traject, i and other users used a tool written in java called solrmarc —  i knew how we had used it, and where we had had roadblocks or things that we found harder or more complicated than we’d like, so i knew my goals were to make those things simpler. we’re used to hearing arguments about avoiding rewrites, but like most things in software engineering, there can be pitfalls on either either extreme. i was amused to notice, fred brooks in the previously mentioned mythical man month makes some arguments in both directions.  brooks famously warns about a “second-system effect”, the [quote] “tendency of small, elegant, and successful systems to be succeeded by over-engineered, bloated systems, due to inflated expectations and overconfidence” – one reason to be cautious of a rewrite.  but brooks in the very same book also writes [quote] “in most projects, the first system built is barely usable….hence plan to throw one away; you will, anyhow.” it’s up to us figure out when we’re in which case. i personally think an application is more likely to be bitten by the “second-system effect” danger of a rewrite, while a shared re-usable library is more likely to benefit from a rewrite (in part because a reusable library is harder to change in place without disruption!).  we could sum up a lot of different princples as variations of “keep it small”.  both traject and bento_search are tools that developers can use to build something. bento_search just puts search results in a box on a page; the developer is responsible for the page and an overall app.  yes, this means that you have to be a ruby developer to use it. does this limit it’s audience? while we might aspire to make tools that even not-really-developers can just use out of the box, my experience has been that our open source attempts at shrinkwrapped “solutions” often end up still needing development expertise to successfully deploy.  keeping our tools simple and small and not trying to supply a complete app can actually leave more time for these developers to focus on meeting local needs, instead of fighting with a complicated frameworks that doesn’t do quite what they need. it also means we can limit interactions with any external dependencies. traject was developed for use with a blacklight project, but traject code does not refer to blacklight or even rails at all, which means new releases of blacklight or rails can’t possibly break traject.  bento_search , by doing one thing and not caring about the details of it’s host application, has kept working from rails . all the way up to current rails . with pretty much no changes needed except to the test suite setup.  sometimes when people try to have lots of small tools working together, it can turn into a nightmare where you get a pile of cascading software breakages every time one piece changes. keeping assumptions and couplings down is what lets us avoid this maintenance nightmare.  and another way of keeping it small is don’t be afraid to say “no” to features when you can’t figure out how to fit them in without serious harm to the parsimony of your architecture. your domain knowledge is what lets you take an educated guess as to what features are core to your audience and need to be accomodated, and which are edge cases and can be fulfilled by extension points, or sometimes not at all.  by extension points we mean we prefer opportunities for developer-users to write their own code which works with your tools, rather than trying to build less commonly needed features in as configurable features.  as an example, traject does include some built-in logic, but one of it’s extension point use cases is making sure it’s simple to add whatever transformation logic a developer-user wants, and have it look just as “built-in” as what came with traject. and since traject makes it easy to write your own reader or writer, it’s built-in readers and writers don’t need to include every possible feature –we plan for developers writing their own if they need something else.  looking at bento_search, it makes it easy to write your own search engine_adapter — that will be useable interchangeably with the built-in ones. also, bento_search provides a standard way to add custom search arguments specific to a particular adapter – these won’t be directly interchangeable with other adapters, but they are provided for in the architecture, and won’t break in future bento_search releases – it’s another form of extension point.  these extension points are the second half of “simple things simple, complex things possible.” – the complex things possible. planning for them is part of understanding your developer use-cases, and designing an architecture that can easily handle them. ideally, it takes no extra layers of abstraction to handle them, you are using the exact  architectural join points the out-of-the-box code is using, just supplying custom components.  so here’s an example of how these things worked out in practice with traject, pretty well i think. stanford ended up writing a package of extensions to traject called trajectplus, to take care of some features they needed that traject didn’t provide. commit history suggests it was written in , which was traject . days.   i can’t recall, but i’d guess they approached me with change requests to traject at that time and i put them off because i couldn’t figure out how to fit them in parsimoniously, or didn’t have time to figure it out.  but the fact that they were *able* to extend traject in this way i consider a validation of traject’s architecture, that they could make it do what they needed, without much coordination with me, and use it in many projects (i think beyond just stanford).  much of the . release of traject was “back-port”ing some features that trajectplus had implemented, including out-of-the-box support for xml sources. but i didn’t always do them with the same implementation or api as trajectplus – this is another example of being able to use a second go at it to figure out how to do something even more parsimoniously, sometimes figuring out small changes to traject’s architecture to support flexibility in the right dimensions.  when traject . came out – the trajectplus users didn’t necessarily want to retrofit all their code to the new traject way of doing it. but trajectplus could still be used with traject . with few or possibly no changes, doing things the old way, they weren’t forced to upgrade to the new way. this is a huge win for traject’s backwards compat – everyone was able to do what they needed to do, even taking separate paths, with relatively minimized maintenance work.  as i think about these things philosophically, one of my takeaways is that software engineering is still a craft – and software design is serious thing to be studied and engaged in. especially for shared libraries rather than local apps, it’s not always to be dismissed as so-called “bike-shedding”.  it’s worth it to take time to think about design, self-reflectively and with your peers, instead of just rushing to put our fires or deliver features, it will reduce maintenance costs and increase values over the long-term.  and i want to just briefly plug “kithe”, a project of mine which tries to be guided by these design goals to create a small focused toolkit for building digital collections applications in rails.  i could easily talk about all of this this another twenty minutes, but that’s our time! i’m always happy to talk more, find me on slack or irc or email.  this last slide has some sources mentioned in the talk. thanks for your time!  jrochkind general leave a comment march , march , product management in my career working in the academic sector, i have realized that one thing that is often missing from in-house software development is “product management.” but what does that mean exactly? you don’t know it’s missing if you don’t even realize it’s a thing and people can use different terms to mean different roles/responsibilities. basically, deciding what the software should do. this is not about colors on screen or margins (what our stakeholderes often enjoy micro-managing) — i’d consider those still the how of doing it, rather than the what to do. the what is often at a much higher level, about what features or components to develop at all. when done right, it is going to be based on both knowledge of the end-user’s needs and preferences (user research); but also knowledge of internal stakeholder’s desires and preferences (overall organiational strategy, but also just practically what is going to make the right people happy to keep us resourced). also knowledge of the local capacity, what pieces do we need to put in place to get these things developed. when done seriously, it will necessarily involve prioritization — there are many things we could possibly done, some subset of them we very well may do eventually, but which ones should we do now? my experience tells me it is a very big mistake to try to have a developer doing this kind of product management. not because a developer can’t have the right skillset to do them. but because having the same person leading development and product management is a mistake. the developer is too close to the development lense, and there’s just a clarification that happens when these roles are separate. my experience also tells me that it’s a mistake to have a committee doing these things, much as that is popular in the academic sector. because, well, just of course it is. but okay this is all still pretty abstract. things might become more clear if we get more specific about the actual tasks and work of this kind of product management role. i found damilola ajiboye blog post on “product manager vs product marketing manager vs product owner” very clear and helpful here. while it is written so as to distinguish between three different product management related roles, but ajiboye also acknowledges that in a smaller organization “a product manager is often tasked with the duty of these roles. regardless of if the responsibilities are to be done by one or two or three person, ajiboye’s post serves as a concise listing of the work to be done in managing a product — deciding the what of the product, in an ongoing iterative and collaborative manner, so that developers and designers can get to the how and to implementation. i recommend reading the whole article, and i’ll excerpt much of it here, slightly rearranged. the product manager these individuals are often referred to as mini ceos of a product. they conduct customer surveys to figure out the customer’s pain and build solutions to address it. the pm also prioritizes what features are to be built next and prepares and manages a cohesive and digital product roadmap and strategy. the product manager will interface with the users through user interviews/feedback surveys or other means to hear directly from the users. they will come up with hypotheses alongside the team and validate them through prototyping and user testing. they will then create a strategy on the feature and align the team and stakeholders around it. the pm who is also the chief custodian of the entire product roadmap will, therefore, be tasked with the duty of prioritization. before going ahead to carry out research and strategy, they will have to convince the stakeholders if it is a good choice to build the feature in context at that particular time or wait a bit longer based on the content of the roadmap. the product marketing manager the pmm communicates vital product value — the “why”, “what” and “when” of a product to intending buyers. he manages the go-to-market strategy/roadmap and also oversees the pricing model of the product. the primary goal of a pmm is to create demand for the products through effective messaging and marketing programs so that the product has a shorter sales cycle and higher revenue. the product marketing manager is tasked with market feasibility and discovering if the features being built align with the company’s sales and revenue plan for the period. they also make research on how sought-after the feature is being anticipated and how it will impact the budget. they communicate the values of the feature; the why, what, and when to potential buyers — in this case users in countries with poor internet connection. [while expressed in terms of a for-profit enterprise selling something, i think it’s not hard to translate this to a non-profit or academic environment. you still have an audience whose uptake you need to be succesful, whether internal or external. — jrochkind ] the product owner a product owner (po) maximizes the value of a product through the creation and management of the product backlog, creation of user stories for the development team. the product owner is the customer’s representative to the development team. he addresses customer’s pain points by managing and prioritizing a visible product backlog. the po is the first point of call when the development team needs clarity about interpreting a product feature to be implemented. the product owner will first have to prioritize the backlog to see if there are no important tasks to be executed and if this new feature is worth leaving whatever is being built currently. they will also consider the development effort required to build the feature i.e the time, tools, and skill set that will be required. they will be the one to tell if the expertise of the current developers is enough or if more engineers or designers are needed to be able to deliver at the scheduled time. the product owner is also armed with the task of interpreting the product/feature requirements for the development team. they serve as the interface between the stakeholders and the development team. when you have someone(s) doing these roles well, it ensures that the development team is actually spending time on things that meet user and business needs. i have found that it makes things so much less stressful and more rewarding for everyone involved. when you have nobody doing these roles, or someone doing it in a cursory or un-intentional way not recognized as part of their core job responsibilities, or have a lead developer trying to do it on top of develvopment, i find it leads to feelings of: spinning wheels, everything-is-an-emergency, lack of appreciation, miscommunication and lack of shared understanding between stakeholders and developers, general burnout and dissatisfaction — and at the root, a product that is not meeting user or business needs well, leading to these inter-personal and personal problems. jrochkind general leave a comment february , rails auto-scaling on heroku we are investigating moving our medium-small-ish rails app to heroku. we looked at both the rails autoscale add-on available on heroku marketplace, and the hirefire.io service which is not listed on heroku marketplace and i almost didn’t realize it existed. i guess hirefire.io doesn’t have any kind of a partnership with heroku, but still uses the heroku api to provide an autoscale service. hirefire.io ended up looking more fully-featured and lesser priced than rails autoscale; so the main service of this post is just trying to increase visibility of hirefire.io and therefore competition in the field, which benefits us consumers. background: interest in auto-scaling rails background jobs at first i didn’t realize there was such a thing as “auto-scaling” on heroku, but once i did, i realized it could indeed save us lots of money. i am more interested in scaling rails background workers than i a web workers though — our background workers are busiest when we are doing “ingests” into our digital collections/digital asset management system, so the work is highly variable. auto-scaling up to more when there is ingest work piling up can give us really nice inget throughput while keeping costs low. on the other hand, our web traffic is fairly low and probably isn’t going to go up by an order of magnitude (non-profit cultural institution here). and after discovering that a “standard” dyno is just too slow, we will likely be running a performance-m or performance-l anyway — which likely can handle all anticipated traffic on it’s own. if we have an auto-scaling solution, we might configure it for web dynos, but we are especially interested in good features for background scaling. there is a heroku built-in autoscale feature, but it only works for performance dynos, and won’t do anything for rails background job dynos, so that was right out. that could work for rails bg jobs, the rails autoscale add-on on the heroku marketplace; and then we found hirefire.io. pricing: pretty different hirefire as of now january , hirefire.io has pretty simple and affordable pricing. $ /month/heroku application. auto-scaling as many dynos and process types as you like. hirefire.io by default can only check into your apps metrics to decide if a scaling event can occur once per minute. if you want more frequent than that (up to once every seconds), you have to pay an additional $ /month, for $ /month/heroku application. even though it is not a heroku add-on, hirefire does advertise that they bill pro-rated to the second, just like heroku and heroku add-ons. rails autoscale rails autoscale has a more tiered approach to pricing that is based on number and type of dynos you are scaling. starting at $ /month for - standard dynos, the next tier up is $ for up to standard dynos, all the way up to $ (!) for to dynos. if you have performance dynos involved, from $ /month for - performance dynos, up to $ /month for up to performance dynos. for our anticipated uses… if we only scale bg dynos, i might want to scale from (low) or to (high) or standard dynos, so we’d be at $ /month. our web dynos are likely to be performance and i wouldn’t want/need to scale more than probably , but that puts us into performance dyno tier, so we’re looking at $ /month. this is of course significantly more expensive than hirefire.io’s flat rate. metric resolution since hirefire had an additional charge for finer than -minute resolution on checks for autoscaling, we’ll discuss resolution here in this section too. rails autoscale has same resolution for all tiers, and i think it’s generally seconds, so approximately the same as hirefire if you pay the extra $ for increased resolution. configuration let’s look at configuration screens to get a sense of feature-sets. rails autoscale web dynos to configure web dynos, here’s what you get, with default values: the metric rails autoscale uses for scaling web dynos is time in heroku routing queue, which seems right to me — when things are spending longer in heroku routing queue before getting to a dyno, it means scale up. worker dynos for scaling worker dynos, rails autoscale can scale dyno type named “worker” — it can understand ruby queuing libraries sidekiq, resque, delayed job, or que. i’m not certain if there are options for writing custom adapter code for other backends. here’s what the configuration options are — sorry these aren’t the defaults, i’ve already customized them and lost track of what defaults are. you can see that worker dynos are scaled based on the metric “number of jobs queued”, and you can tell it to only pay attention to certain queues if you want. hirefire hirefire has far more options for customization than rails autoscale, which can make it a bit overwhelming, but also potentially more powerful. web dynos you can actually configure as many heroku process types as you have for autoscale, not just ones named “web” and “worker”. and for each, you have your choice of several metrics to be used as scaling triggers. for web, i think queue time (percentile, average) matches what rails autoscale does, configured to percentile, , and is probably the best to use unless you have a reason to use another. (“rails autoscale tracks the th percentile queue time, which for most applications will hover well below the default threshold of ms.“) here’s what configuration hirefire makes available if you are scaling on “queue time” like rails autoscale, configuration may vary for other metrics. i think if you fill in the right numbers, you can configure to work equivalently to rails autoscale. worker dynos if you have more than one heroku process type for workers — say, working on different queues — hirefire can scale the independently, with entirely separate configuration. this is pretty handy, and i don’t think rails autoscale offers this. (update i may be wrong, rails autoscale says they do support this, so check on it yourself if it matters to you). for worker dynos, you could choose to scale based on actual “dyno load”, but i think this is probably mostly for types of processes where there isn’t the ability to look at “number of jobs”. a “number of jobs in queue” like rails autoscale does makes a lot more sense to me as an effective metric for scaling queue-based bg workers. hirefire’s metric is slightly difererent than rails autoscale’s “jobs in queue”. for recognized ruby queue systems (a larger list than rails autoscale’s; and you can write your own custom adapter for whatever you like), it actually measures jobs in queue plus workers currently busy. so queued+in-progress, rather than rails autoscale’s just queued. i actually have a bit of trouble wrapping my head around the implications of this, but basically, it means that hirefire’s “jobs in queue” metric strategy is intended to try to scale all the way to emptying your queue, or reaching your max scale limit, whichever comes first. i think this may make sense and work out at least as well or perhaps better than rails autoscale’s approach? here’s what configuration hirefire makes available for worker dynos scaling on “job queue” metric. since the metric isn’t the same as rails autosale, we can’t configure this to work identically. but there are a whole bunch of configuration options, some similar to rails autoscale’s. the most important thing here is that “ratio” configuration. it may not be obvious, but with the way the hirefire metric works, you are basically meant to configure this to equal the number of workers/threads you have on each dyno. i have it configured to because my heroku worker processes use resque, with resque_pool, configured to run resque workers on each dyno. if you use sidekiq, set ratio to your configured concurrency — or if you are running more than one sidekiq process, processes*concurrency. basically how many jobs your dyno can be concurrently working is what you should normally set for ‘ratio’. hirefire not a heroku plugin hirefire isn’t actually a heroku plugin. in addition to that meaning separate invoicing, there can be some other inconveniences. since hirefire only can interact with heroku api, for some metrics (including the “queue time” metric that is probably optimal for web dyno scaling) you have to configure your app to log regular statistics to heroku’s “logplex” system. this can add a lot of noise to your log, and for heroku logging add-ons that are tired based on number of log lines or bytes, can push you up to higher pricing tiers. if you use paperclip, i think you should be able to use the log filtering feature to solve this, keep that noise out of your logs and avoid impacting data log transfer limits. however, if you ever have cause to look at heroku’s raw logs, that noise will still be there. support and docs i asked a couple questions of both hirefire and rails autoscale as part of my evaluation, and got back well-informed and easy-to-understand answers quickly from both. support for both seems to be great. i would say the documentation is decent-but-not-exhaustive for both products. hirefire may have slightly more complete documentation. other features? there are other things you might want to compare, various kinds of observability (bar chart or graph of dynos or observed metrics) and notification. i don’t have time to get into the details (and didn’t actually spend much time exploring them to evaluate), but they seem to offer roughly similar features. conclusion rails autoscale is quite a bit more expensive than hirefire.io’s flat rate, once you get past rails autoscale’s most basic tier (scaling no more than standard dynos). it’s true that autoscaling saves you money over not, so even an expensive price could be considered a ‘cut’ of that, and possibly for many ecommerce sites even $ a month might a drop in the bucket (!)…. but this price difference is so significant with hirefire (which has flat rate regardless of dynos), that it seems to me it would take a lot of additional features/value to justify. and it’s not clear that rails autoscale has any feature advantage. in general, hirefire.io seems to have more features and flexibility. until , hirefire.io could only analyze metrics with -minute resolution, so perhaps that was a “killer feature”? honestly i wonder if this price difference is sustained by rails autoscale only because most customers aren’t aware of hirefire.io, it not being listed on the heroku marketplace? single-invoice billing is handy, but probably not worth $ + a month. i guess hirefire’s logplex noise is a bit inconvenient? or is there something else i’m missing? pricing competition is good for the consumer. and are there any other heroku autoscale solutions, that can handle rails bg job dynos, that i still don’t know about? update a day after writing djcp on a reddit thread writes: i used to be a principal engineer for the heroku add-ons program. one issue with hirefire is they request account level oauth tokens that essentially give them ability to do anything with your apps, where rails autoscaling worked with us to create a partnership and integrate with our “official” add-on apis that limits security concerns and are scoped to the application that’s being scaled. part of the reason for hirefire working the way it does is historical, but we’ve supported the endpoints they need to scale for “official” partners for years now. a lot of heroku customers use hirefire so please don’t think i’m spreading fud, but you should be aware you’re giving a third party very broad rights to do things to your apps. they probably won’t, of course, but what if there’s a compromise? “official” add-on providers are given limited scoped tokens to (mostly) only the actions / endpoints they need, minimizing blast radius if they do get compromised. you can read some more discussion at that thread. jrochkind general comments january , january , managed solr saas options i was recently looking for managed solr “software-as-a-service” (saas) options, and had trouble figuring out what was out there. so i figured i’d share what i learned. even though my knowledge here is far from exhaustive, and i have only looked seriously at one of the ones i found. the only managed solr options i found were: websolr; searchstax; and opensolr. of these, i think websolr and searchstax are more well-known, i couldn’t find anyone with experience with opensolr, which perhaps is newer. of them all, searchstax is the only one i actually took for a test drive, so will have the most to say about. why we were looking we run a fairly small-scale app, whose infrastructure is currently self-managed aws ec instances, running respectively: ) a rails web app ) bg workers for the rails web app ) postgres, and ) solr. oh yeah, there’s also a redis running one of those servers, on # with pg or # with solr, i forget. currently we manage this all ourselves, right on the ec . but we’re looking to move as much as we can into “managed” servers. perhaps we’ll move to heroku. perhaps we’ll use hatchbox. or if we do stay on aws resources we manage directly, we’d look at things like using an aws rds postgres instead of installing it on an ec ourselves, an aws elasticache for redis, maybe look into elastic beanstalk, etc. but no matter what we do, we need a solr, and we’d like to get it managed. hatchbox has no special solr support, aws doesn’t have a solr service, heroku does have a solr add-on but you can also use any solr with it and we’ll get to that later. our current solr use is pretty small scale. we don’t run “solrcloud mode“, just legacy ordinary solr. we only have around , documents in there (tiny for solr), our index size is only mb. our traffic is pretty low — when i tried to figure out how low, it doesn’t seem we have sufficient logging turned on to answer that specifically but using proxy metrics to guess i’d say k- k requests a day, query as well as add. this is a pretty small solr installation, although it is used centrally for the primary functions of the (fairly low-traffic) app. it currently runs on an ec t a.small, which is a “burstable” ec type with only g of ram. it does have two vcpus (that is one core with ‘hyperthreading’). the t a.small ec instance only costs $ /month on-demand price! we know we’ll be paying more for managed solr, but we want to do get out of the business of managing servers — we no longer really have the staff for it. websolr (didn’t actually try out) websolr is the only managed solr currently listed as a heroku add-on. it is also available as a managed solr independent of heroku. the pricing in the heroku plans vs the independent plans seems about the same. as a heroku add-on there is a $ “staging” plan that doesn’t exist in the independent plans. (unlike some other heroku add-ons, no time-limited free plan is available for websolr). but once we go up from there, the plans seem to line up. starting at: $ /month for: million document limit k requests/day index mb storage concurrent requests limit (this limit is not mentioned on the independent pricing page?) next level up is $ /month for: million document limit k requests/day . gb storage concurrent request limit (again concurrent request limits aren’t mentioned on independent pricing page) as you can see, websolr has their plans metered by usage. $ /month is around the price range we were hoping for (we’ll need two, one for staging one for production). our small solr is well under million documents and ~ gb storage, and we do only use one index at present. however, the k requests/day limit i’m not sure about, even if we fit under it, we might be pushing up against it. and the “concurrent request” limit simply isn’t one i’m even used to thinking about. on a self-managed solr it hasn’t really come up. what does “concurrent” mean exactly in this case, how is it measured? with puma web workers and sometimes a possibly multi-threaded batch index going on, could we exceed a limit of ? seems plausible. what happens when they are exceeded? your solr request results in an http error! do i need to now write the app to rescue those gracefully, or use connection pooling to try to avoid them, or something? having to rewrite the way our app functions for a particular managed solr is the last thing we want to do. (although it’s not entirely clear if those connection limits exist on the non-heroku-plugin plans, i suspect they do?). and in general, i’m not thrilled with the way the pricing works here, and the price points. i am positive for a lot of (eg) heroku customers an additional $ * =$ /month is peanuts not even worth accounting for, but for us, a small non-profit whose app’s traffic does not scale with revenue, that starts to be real money. it is not clear to me if websolr installations (at “standard” plans) are set up in “solrcloud mode” or not; i’m not sure what api’s exist for uploading your custom schema.xml (which we’d need to do), or if they expect you to do this only manually through a web ui (that would not be good); i’m not sure if you can upload custom solrconfig.xml settings (this may be running on a shared solr instance with standard solrconfig.xml?). basically, all of this made websolr not the first one we looked at. does it matter if we’re on heroku using a managed solr that’s not a heroku plugin? i don’t think so. in some cases, you can get a better price from a heroku plug-in than you could get from that same vendor not on heroku or other competitors. but that doesn’t seem to be the case here, and other that that does it matter? well, all heroku plug-ins are required to bill you by-the-minute, which is nice but not really crucial, other forms of billing could also be okay at the right price. with a heroku add-on, your billing is combined into one heroku invoice, no need to give a credit card to anyone else, and it can be tracked using heroku tools. which is certainly convenient and a plus, but not essential if the best tool for the job is not a heroku add-on. and as a heroku add-on, websolr provides a websolr_url heroku config/env variable automatically to code running on heroku. ok, that’s kind of nice, but it’s not a big deal to set a solr_url heroku config manually referencing the appropriate address. i suppose as a heroku add-on, websolr also takes care of securing and authenticating connections between the heroku dynos and the solr, so we need to make sure we have a reasonable way to do this from any alternative. searchstax (did take it for a spin) searchstax’s pricing tiers are not based on metering usage. there are no limits based on requests/day or concurrent connections. searchstax runs on dedicated-to-you individual solr instances (i would guess running on dedicated-to-you individual (eg) ec , but i’m not sure). instead the pricing is based on size of host running solr. you can choose to run on instances deployed to aws, google cloud, or azure. we’ll be sticking to aws (the others, i think, have a slight price premium). while searchstax gives you a pricing pages that looks like the “new-way-of-doing-things” transparent pricing, in fact there isn’t really enough info on public pages to see all the price points and understand what you’re getting, there is still a kind of “talk to a salesperson who has a price sheet” thing going on. what i think i have figured out from talking to a salesperson and support, is that the “silver” plans (“starting at $ a month”, although we’ll say more about that in a bit) are basically: we give you a solr, we don’t don’t provide any technical support for solr. while the “gold” plans “from $ /month” are actually about paying for solr consultants to set up and tune your schema/index etc. that is not something we need, and $ +/month is way more than the price range we are looking for. while the searchstax pricing/plan pages kind of imply the “silver” plan is not suitable for production, in fact there is no real reason not to use it for production i think, and the salesperson i talked to confirmed that — just reaffirming that you were on your own managing the solr configuration/setup. that’s fine, that’s what we want, we just don’t want to mangage the os or set up the solr or upgrade it etc. the silver plans have no sla, but as far as i can tell their uptime is just fine. the silver plans only guarantees -hour support response time — but for the couple support tickets i filed asking questions while under a free -day trial (oh yeah that’s available), i got prompt same-day responses, and knowledgeable responses that answered my questions. so a “silver” plan is what we are interested in, but the pricing is not actually transparent. $ /month is for the smallest instance available, and if you prepay/contract for a year. they call that small instance an ndn and it has gb of ram and gb of storage. if you pay-as-you-go instead of contracting for a year, that already jumps to $ /month. (that price is available on the trial page). when you are paying-as-you-go, you are actually billed per-day, which might not be as nice as heroku’s per-minute, but it’s pretty okay, and useful if you need to bring up a temporary solr instance as part of a migration/upgrade or something like that. the next step up is an “ndn ” which has g of ram and gb of storage, and has an ~$ /month pay-as-you-go — you can find that price if you sign-up for a free trial. the discount price price for an annual contract is a discount similar to the ndn %, $ /month — that price i got only from a salesperson, i don’t know if it’s always stable. it only occurs to me now that they don’t tell you how many cpus are available. i’m not sure if i can fit our solr in the g ndn , but i am sure i can fit it in the g ndn with some headroom, so i didn’t look at plans above that — but they are available, still under “silver”, with prices going up accordingly. all searchstax solr instances run in “solrcloud” mode — these ndn and ndn ones we’re looking at just run one node with one zookeeper, but still in cloud mode. there are also “silver” plans available with more than one node in a “high availability” configuration, but the prices start going up steeply, and we weren’t really interested in that. because it’s solrcloud mode though, you can use the standard solr api for uploading your configuration. it’s just solr! so no arbitrary usage limits, no features disabled. the searchstax web console seems competently implemented; it let’s you create and delete individual solr “deployments”, manage accounts to login to console (on “silver” plan you only get two, or can pay $ /month/account for more, nah), and set up auth for a solr deployment. they support ip-based authentication or http basic auth to the solr (no limit to how many solr basic auth accounts you can create). http basic auth is great for us, because trying to do ip-based from somewhere like heroku isn’t going to work. all solrs are available over https/ssl — great! searchstax also has their own proprietary http api that lets you do most anything, including creating/destroying deployments, managing solr basic auth users, basically everything. there is some api that duplicates the solr cloud api for adding configsets, i don’t think there’s a good reason to use it instead of standard solrcloud api, although their docs try to point you to it. there’s even some kind of webhooks for alerts! (which i haven’t really explored). basically, searchstax just seems to be a sane and rational managed solr option, it has all the features you’d expect/need/want for dealing with such. the prices seem reasonable-ish, generally more affordable than websolr, especially if you stay in “silver” and “one node”. at present, we plan to move forward with it. opensolr (didn’t look at it much) i have the least to say about this, have spent the least time with it, after spending time with searchstax and seeing it met our needs. but i wanted to make sure to mention it, because it’s the only other managed solr i am even aware of. definitely curious to hear from any users. here is the pricing page. the prices seem pretty decent, perhaps even cheaper than searchstax, although it’s unclear to me what you get. does “ solr clusters” mean that it’s not solrcloud mode? after seeing how useful solrcloud apis are for management (and having this confirmed by many of my peers in other libraries/museums/archives who choose to run solrcloud), i wouldn’t want to do without it. so i guess that pushes us to “executive” tier? which at $ /month (billed yearly!) is still just fine, around the same as searchstax. but they do limit you to one solr index; i prefer searchstax’s model of just giving you certain host resources and do what you want with it. it does say “shared infrastructure”. might be worth investigating, curious to hear more from anyone who did. now, what about elasticsearch? we’re using solr mostly because that’s what various collaborative and open source projects in the library/museum/archive world have been doing for years, since before elasticsearch even existed. so there are various open source libraries and toolsets available that we’re using. but for whatever reason, there seem to be so many more managed elasticsearch saas available. at possibly much cheaper pricepoints. is this because the elasticsearch market is just bigger? or is elasticsearch easier/cheaper to run in a saas environment? or what? i don’t know. but there’s the controversial aws elasticsearch service; there’s the elastic cloud “from the creators of elasticsearch”. on heroku that lists one solr add-on, there are three elasticsearch add-ons listed: elasticcloud, bonsai elasticsearch, and searchbox elasticsearch. if you just google “managed elasticsearch” you immediately see or other names. i don’t know enough about elasticsearch to evaluate them. there seem on first glance at pricing pages to be more affordable, but i may not know what i’m comparing and be looking at tiers that aren’t actually usable for anything or will have hidden fees. but i know there are definitely many more managed elasticsearch saas than solr. i think elasticsearch probably does everything our app needs. if i were to start from scratch, i would definitely consider elasticsearch over solr just based on how many more saas options there are. while it would require some knowledge-building (i have developed a lot of knowlege of solr and zero of elasticsearch) and rewriting some parts of our stack, i might still consider switching to es in the future, we don’t do anything too too complicated with solr that would be too too hard to switch to es, probably. jrochkind general leave a comment january , january , gem authors, check your release sizes most gems should probably be a couple hundred kb at most. i’m talking about the package actually stored in and downloaded from rubygems by an app using the gem. after all, source code is just text, and it doesn’t take up much space. ok, maybe some gems have a couple images in there. but if you are looking at your gem in rubygems and realize that it’s mb or bigger… and that it seems to be getting bigger with every release… something is probably wrong and worth looking into it. one way to look into it is to look at the actual gem package. if you use the handy bundler rake task to release your gem (and i recommend it), you have a ./pkg directory in your source you last released from. inside it are “.gem” files for each release you’ve made from there, unless you’ve cleaned it up recently. .gem files are just .tar files it turns out. that have more tar and gz files inside them etc. we can go into it, extract contents, and use the handy unix utility du -sh to see what is taking up all the space. how i found the bytes jrochkind-chf kithe (master ?) $ cd pkg jrochkind-chf pkg (master ?) $ ls kithe- . . .beta .gem kithe- . . .pre.rc .gem kithe- . . .gem kithe- . . .gem kithe- . . .pre.beta .gem kithe- . . .gem jrochkind-chf pkg (master ?) $ mkdir exploded jrochkind-chf pkg (master ?) $ cp kithe- . . .gem exploded/kithe- . . .tar jrochkind-chf pkg (master ?) $ cd exploded jrochkind-chf exploded (master ?) $ tar -xvf kithe- . . .tar x metadata.gz x data.tar.gz x checksums.yaml.gz jrochkind-chf exploded (master ?) $ mkdir unpacked_data_tar jrochkind-chf exploded (master ?) $ tar -xvf data.tar.gz -c unpacked_data_tar/ jrochkind-chf exploded (master ?) $ cd unpacked_data_tar/ /users/jrochkind/code/kithe/pkg/exploded/unpacked_data_tar jrochkind-chf unpacked_data_tar (master ?) $ du -sh * . k mit-license k readme.md . k rakefile k app . k config k db k lib m spec jrochkind-chf unpacked_data_tar (master ?) $ cd spec jrochkind-chf spec (master ?) $ du -sh * . k derivative_transformers m dummy k factories k indexing k models . k rails_helper.rb k shrine k simple_form_enhancements . k spec_helper.rb k test_support . k validators jrochkind-chf spec (master ?) $ cd dummy/ jrochkind-chf dummy (master ?) $ du -sh * . k rakefile k app k bin k config . k config.ru . k db m log . k package.json k public . k tmp doh! in this particular gem, i have a dummy rails app, and it has mb of logs, cause i haven’t b bothered trimming them in a while, that are winding up including in the gem release package distributed to rubygems and downloaded by all consumers! even if they were small, i don’t want these in the released gem package at all! that’s not good! it only turns into mb instead of mb, because log files are so compressable and there is compression involved in assembling the rubygems package. but i have no idea how much space it’s actually taking up on consuming applications machines. this is very irresponsible! what controls what files are included in the gem package? your .gemspec file of course. the line s.files = is an array of every file to include in the gem package. well, plus s.test_files is another array of more files, that aren’t supposed to be necessary to run the gem, but are to test it. (rubygems was set up to allow automated *testing* of gems after download, is why test files are included in the release package. i am not sure how useful this is, and who if anyone does it; although i believe that some linux distro packagers try to make use of it, for better or worse). but nobody wants to list every file in your gem individually, manually editing the array every time you add, remove, or move one. fortunately, gemspec files are executable ruby code, so you can use ruby as a shortcut. i have seen two main ways of doing this, with different “gem skeleton generators” taking one of two approaches. sometimes a shell out to git is used — the idea is that everything you have checked into your git should be in the gem release package, no more or no less. for instance, one of my gems has this in it, not sure where it came from or who/what generated it. spec.files = `git ls-files -z`.split("\x ").reject do |f| f.match(%r{^(test|spec|features)/}) end in that case, it wouldn’t have included anything in ./spec already, so this obviously isn’t actually the gem we were looking at before. but in this case, in addition to using ruby logic to manipulate the results, nothing excluded by your .gitignore file will end up included in your gem package, great! in kithe we were looking at before, those log files were in the .gitignore (they weren’t in my repo!), so if i had been using that git-shellout technique, they wouldn’t have been included in the ruby release already. but… i wasn’t. instead this gem has a gemspec that looks like: s.test_files = dir["spec/*/"] just include every single file inside ./spec in the test_files list. oops. then i get all those log files! one way to fix i don’t really know which is to be preferred of the git-shellout approach vs the dir-glob approach. i suspect it is the subject of historical religious wars in rubydom, when there were still more people around to argue about such things. any opinions? or another approach? without being in the mood to restructure this gemspec in anyway, i just did the simplest thing to keep those log files out… dir["spec/*/"].delete_if {|a| a =~ %r{/dummy/log/}} build the package without releasing with the handy bundler supplied rake build task… and my gem release package size goes from mb to k. (which actually kind of sounds like a minimum block size or something, right?) phew! that’s a big difference! sorry for anyone using previous versions and winding up downloading all that cruft! (actually this particular gem is mostly a proof of concept at this point and i don’t think anyone else is using it). check your gem sizes! i’d be willing to be there are lots of released gems with heavily bloated release packages like this. this isn’t the first one i’ve realized was my fault. because who pays attention to gem sizes anyway? apparently not many! but rubygems does list them, so it’s pretty easy to see. are your gem release packages multiple megs, when there’s no good reason for them to be? do they get bigger every release by far more than the bytes of lines of code you think were added? at some point in gem history was there a big jump from hundreds of kb to multiple mb? when nothing particularly actually happened to gem logic to lead to that? all hints that you might be including things you didn’t mean to include, possibly things that grow each release. you don’t need to have a dummy rails app in your repo to accidentally do this (i accidentally did it once with a gem that had nothing to do with rails). there could be other kind of log files. or test coverage or performance metric files, or any other artifacts of your build or your development, especially ones that grow over time — that aren’t actually meant to or needed as part of the gem release package! it’s good to sanity check your gem release packages now and then. in most cases, your gem release package should be hundreds of kb at most, not mbs. help keep your users’ installs and builds faster and slimmer! jrochkind general leave a comment january , every time you decide to solve a problem with code… every time you decide to solve a problem with code, you are committing part of your future capacity to maintaining and operating that code. software is never done. software is drowning the world by james abley jrochkind general leave a comment january , updating solrcloud configuration in ruby we have an app that uses solr. we currently run a solr in legacy “not cloud” mode. our solr configuration directory is on disk on the solr server, and it’s up to our processes to get our desired solr configuration there, and to update it when it changes. we are in the process of moving to a solr in “solrcloud mode“, probably via the searchstax managed solr service. our solr “cloud” might only have one node, but “solrcloud mode” gives us access to additional api’s for managing your solr configuration, as opposed to writing it directly to disk (which may not be possible at all in solrcloud mode? and certainly isn’t using managed searchstax). that is, the solr configsets api, although you might also want to use a few pieces of the collection management api for associating a configset with a solr collection. basically, you are taking your desired solr config directory, zipping it up, and uploading it to solr as a “config set” [or “configset”] with a certain name. then you can create collections using this config set, or reassign which named configset an existing collection uses. i wasn’t able to find any existing ruby gems for interacting with these solr api’s. rsolr is a “ruby client for interacting with solr”, but was written before most of these administrative api’s existed for solr, and doesn’t seem to have been updated to deal with them (unless i missed it), rsolr seems to be mostly/only about querying solr, and some limited indexing. but no worries, it’s not too hard to wrap the specific api i want to use in some ruby. which did seem far better to me than writing the specific http requests each time (and making sure you are dealing with errors etc!). (and yes, i will share the code with you). i decided i wanted an object that was bound to a particular solr collection at a particular solr instance; and was backed by a particular local directory with solr config. that worked well for my use case, and i wound up with an api that looks like this: updater = solrconfigsetupdater.new( solr_url: "https://example.com/solr", conf_dir: "./solr/conf", collection_name: "mycollection" ) # will zip up ./solr/conf and upload it as named myconfigset: updater.upload("myconfigset") updater.list #=> ["myconfigset"] updater.config_name # what configset name is mycollection currently configured to use? # => "oldconfigset" # what if we try to delete the one it's using? updater.delete("oldconfigset") # => raises solrconfigsetupdater::solrerror with message: # "can not delete configset as it is currently being used by collection [myconfigset]" # okay let's change it to use the new one and delete the old one updater.update_config_name("myconfigset") # now mycollection uses this new configset, although we possibly # need to reload the collection to make that so updater.reload # now let's delete the one we're not using updater.delete("oldconfigset") ok, great. there were some tricks in there in trying to catch the apparently multiple ways solr can report different kinds of errors, to make sure solr-reported errors turn into exceptions ideally with good error messages. now, in addition to uploading a configset initially for a collection you are creating to use, the main use case i have is wanting to update the configuration to new values in an existing collection. sure, this often requires a reindex afterwards. if you have the recently released solr . , it will let you overwrite an existing configset, so this can be done pretty easily. updater.upload(updater.config_name, overwrite: true) updater.reload but prior to solr . you can not overwrite an existing configset. and searchstax doesn’t yet have solr . . so one way or another, we need to do a dance where we upload the configset under a new name than switch the collection to use it. having this updater object that lets us easily execute relevant solr api lets us easily experiment with different logic flows for this. for instance in a solr listserv thread, alex halovnic suggests a somewhat complicated -step process workaround, which we can implement like so: current_name = updater.config_name temp_name = "#{current_name}_temp" updater.create(from: current_name, to: temp_name) updater.change_config_name(temp_name) updater.reload updater.delete(current_name) updater.upload(configset_name: current_name) updater.change_config_name(current_name) updater.reload updater.delete(temp_name) that works. but talking to dann bohn at penn state university, he shared a different algorithm, which goes like: make a cryptographic digest hash of the entire solr directory, which we’re going to use in the configset name. check if the collection is already using a configset named $name_$digest, which if it already is, you’re done, no change needed. otherwise, upload the configset with the fingerprint-based name, switch the collection to use it, reload, delete the configset that the collection used to use. at first this seemed like overkill to me, but after thinking and experimenting with it, i like it! it is really quick to make a digest of a handful of files, that’s not a big deal. (i use first chars of hex sha ). and even if we had solr . , i like that we can avoid doing any operation on solr at all if there had been no changes — i really want to use this operation much like a rails db:migrate, running it on every deploy to make sure the solr schema matches the one in the repo for the depoy. dann also shared his open source code with me, which was helpful for seeing how to make the digest, how to make a zip file in ruby, etc. thanks dann! sharing my code so i also wrote some methods to implement those variant updating stragies, dann’s, and alex halovnic’s from the list etc. i thought about wrapping this all up as a gem, but i didn’t really have the time to make it really good enough for that. my api is a little bit janky, i didn’t spend the extra time think it out really well to minimize the need for future backwards incompat changes like i would if it were a gem. i also couldn’t figure out a great way to write automated tests for this that i would find particularly useful; so in my code base it’s actually not currently test-covered (shhhhh) but in a gem i’d want to solve that somehow. but i did try to write the code general purpose/flexible so other people could use it for their use cases; i tried to document it to my highest standards; and i put it all in one file which actually might not be the best oo abstraction/design, but makes it easier for you to copy and paste the single file for your own use. :) so you can find my code here; it is apache-licensed; and you are welcome to copy and paste it and do whatever you like with it, including making a gem yourself if you want. maybe i’ll get around to making it a gem in the future myself, i dunno, curious if there’s interest. the searchstax proprietary api’s searchstax has it’s own api’s that can i think be used for updating configsets and setting collections to use certain configsets etc. when i started exploring them, they are’t the worst vendor api’s i’ve seen, but i did find them a bit cumbersome to work with. the auth system involves a lot of steps (why can’t you just create an api key from the searchstax web gui?). overall i found them harder to use than just the standard solr cloud api’s, which worked fine in the searchstax deployment, and have the added bonus of being transferable to any solrcloud deployment instead of being searchstax-specific. while the searchstax docs and support try to steer you to the searchstax specific api’s, i don’t think there’s really any good reason for this. (perhaps the custom searchstax api’s were written long ago when solr api’s weren’t as complete?) searchstax support suggested that the searchstax apis were somehow more secure; but my searchstax solr api’s are protected behind http basic auth, and if i’ve created basic auth credentials (or ip addr allowlist) those api’s will be available to anyone with auth to access solr whether i use em or not! and support also suggested that the searchstax api use would be logged, whereas my direct solr api use would not be, which seems to be true at least in default setup, i can probably configure solr logging differently, but it just isn’t that important to me for these particular functions. so after some initial exploration with searchstax api, i realized that solrcloud api (which i had never used before) could do everything i need and was more straightforward and transferable to use, and i’m happy with my decision to go with that. jrochkind general comments december , december , are you talking to heroku redis in cleartext or ssl? in “typical” redis installation, you might be talking to redis on localhost or on a private network, and clients typically talk to redis in cleartext. redis doesn’t even natively support communications over ssl. (or maybe it does now with redis ?) however, the heroku redis add-on (the one from heroku itself) supports ssl connections via “stunnel”, a tool popular with other redis users use to get ssl redis connections too. (or maybe via native redis with redis ? not sure if you’d know the difference, or if it matters). there are heroku docs on all of this which say: while you can connect to heroku redis without the stunnel buildpack, it is not recommend. the data traveling over the wire will be unencrypted. perhaps especially because on heroku your app does not talk to redis via localhost or on a private network, but on a public network. but i think i’ve worked on heroku apps before that missed this advice and are still talking to heroku in the clear. i just happened to run across it when i got curious about the redis_tls_url env/config variable i noticed heroku setting. which brings us to another thing, that heroku doc on it is out of date, it doesn’t mention the redis_tls_url config variable, just the redis_url one. the difference? the tls version will be a url beginning with rediss:// instead of redis:// , note extra s, which many redis clients use as a convention for “ssl connection to redis probably via stunnel since redis itself doens’t support it”. the redis docs provide ruby and go examples which instead use redis_url and writing code to swap the redis:// for rediss:// and even hard-code port number adjustments, which is silly! (while i continue to be very impressed with heroku as a product, i keep running into weird things like this outdated documentation, that does not match my experience/impression of heroku’s all-around technical excellence, and makes me worry if heroku is slipping…). the docs also mention a weird driver: ruby arg for initializing the redis client that i’m not sure what it is and it doesn’t seem necessary. the docs are correct that you have to tell the ruby redis client not to try to verify ssl keys against trusted root certs, and this implementation uses a self-signed cert. otherwise you will get an error that looks like: openssl::ssl::sslerror: ssl_connect returned= errno= state=error: certificate verify failed (self signed certificate in certificate chain) so, can be as simple as: redis_client = redis.new(url: env['redis_tls_url'], ssl_params: { verify_mode: openssl::ssl::verify_none }) $redis = redis_client # and/or resque.redis = redis_client i don’t use sidekiq on this project currently, but to get the ssl connection with verify_none, looking at sidekiq docs maybe on sidekiq docs you might have to(?): redis_conn = proc { redis.new(url: env['redis_tls_url'], ssl_params: { verify_mode: openssl::ssl::verify_none }) } sidekiq.configure_client do |config| config.redis = connectionpool.new(size: , &redis_conn) end sidekiq.configure_server do |config| config.redis = connectionpool.new(size: , &redis_conn) end (not sure what values you should pick for connection pool size). while the sidekiq docs mention heroku in passing, they don’t mention need for ssl connections — i think awareness of this heroku feature and their recommendation you use it may not actually be common! update: beware redis_url can also be rediss on one of my apps i saw a redis_url which used redis: and a redis_tls_url which uses (secure) rediss:. but on another app, it provides *only* a redis_url, which is rediss — meaning you have to set the verify_mode: openssl::ssl::verify_none when passing it to ruby redis client. so you have to be prepared to do this with redis_url values too — i think it shouldn’t hurt to set the ssl_params option even if you pass it a non-ssl redis: url, so just set it all the time? this second app was heroku- stack, and the first was heroku- stack, is that the difference? no idea. documented anywhere? i doubt it. definitely seems sloppy for what i expect of heroku, making me get a bit suspicious of whether heroku is sticking to the really impressive level of technical excellence and documentation i expect from them. so, your best bet is to check for both redis_tls_url and redis_url, prefering the tls one if present, realizing the redis_url can have a rediss:// value in it too. the heroku docs also say you don’t get secure tls redis connection on “hobby” plans, but i”m not sure that’s actually true anymore on heroku- ? not trusting the docs is not a good sign. jrochkind general comments november , november , comparing performance of a rails app on different heroku formations i develop a “digital collections” or “asset management” app, which manages and makes digitized historical objects and their descriptions available to the public, from the collections here at the science history institute. the app receives relatively low level of traffic (according to google analytics, around k pageviews a month), although we want it to be able to handle spikes without falling down. it is not the most performance-optimized app, it does have some relatively slow responses and can be ram-hungry. but it works adequately on our current infrastructure: web traffic is handled on a single aws ec t .medium instance, with passenger processes (free version of passenger, so no multi-threading). we are currently investigating the possibility of moving our infrastructure to heroku. after realizing that heroku standard dynos did not seem to have the performance characteristics i had expected, i decided to approach performance testing more methodically, to compare different heroku dyno formations to each other and to our current infrastructure. our basic research question is probably what heroku formation do we need to have similar performance to our existing infrastructure? i am not an expert at doing this — i did some research, read some blog posts, did some thinking, and embarked on this. i am going to lead you through how i approached this and what i found. feedback or suggestions are welcome. the most surprising result i found was much poorer performance from heroku standard dynos than i expected, and specifically that standard dynos would not match performance of present infrastructure. what urls to use in test some older load-testing tools only support testing one url over and over. i decided i wanted to test a larger sample list of urls — to be a more “realistic” load, and also because repeatedly requesting only one url might accidentally use caches in ways you aren’t expecting giving you unrepresentative results. (our app does not currently use fragment caching, but caches you might not even be thinking about include postgres’s built-in automatic caches, or passenger’s automatic turbocache (which i don’t think we have turned on)). my initial thought to get a list of such urls from our already-in-production app from production logs, to get a sample of what real traffic looks like. there were a couple barriers for me to using production logs as urls: some of those urls might require authentication, or be post requests. the bulk of our app’s traffic is get requests available without authentication, and i didn’t feel like the added complexity of setting up anything else in a load traffic was worthwhile. our app on heroku isn’t fully functional yet. without having connected it to a solr or background job workers, only certain urls are available. in fact, a large portion of our traffic is an “item” or “work” detail page like this one. additionally, those are the pages that can be the biggest performance challenge, since the current implementation includes a thumbnail for every scanned page or other image, so response time unfortunately scales with number of pages in an item. so i decided a good list of urls was simply a representative same of those “work detail” pages. in fact, rather than completely random sample, i took the largest/slowest work pages, and then added in another randomly chosen from our current ~ k pages. and gave them all a randomly shuffled order. in our app, every time a browser requests a work detail page, the js on that page makes an additional request for a json document that powers our page viewer. so for each of those work detail pages, i added the json request url, for a more “realistic” load, and total urls. performance: “base speed” vs “throughput under load” thinking about it, i realized there were two kinds of “performance” or “speed” to think about. you might just have a really slow app, to exagerate let’s say typical responses are seconds. that’s under low/no-traffic, a single browser is the only thing interacting with the app, it makes a single request, and has to wait seconds for a response. that number might be changed by optimizations or performance regressions in your code (including your dependencies). it might also be changed by moving or changing hardware or virtualization environment — including giving your database more cpu/ram resources, etc. but that number will not change by horizontally scaling your deployment — adding more puma or passenger processes or threads, scaling out hosts with a load balancer or heroku dynos. none of that will change this base speed because it’s just how long the app takes to prepare a response when not under load, how slow it is in a test only one web worker , where adding web workers won’t matter because they won’t be used. then there’s what happens to the app actually under load by multiple users at once. the base speed is kind of a lower bound on throughput under load — page response time is never going to get better than s for our hypothetical very slow app (without changing the underlying base speed). but it can get a lot worse if it’s hammered by traffic. this throughput under load can be effected not only by changing base speed, but also by various forms of horizontal scaling — how many puma or passenger processes you have with how many threads each, and how many cpus they have access to, as well as number of heroku dynos or other hosts behind a load balancer. (i had been thinking about this distinction already, but nate berkopec’s great blog post on scaling rails apps gave me the “speed” vs “throughout” terminology to use). for my condition, we are not changing the code at all. but we are changing the host architecture from a manual ec t .medium to heroku dynos (of various possible types) in a way that could effect base speed, and we’re also changing our scaling architecture in a way that could change throughput under load on top of that — from one t .medium with passenger process to possibly multiple heroku dynos behind heroku’s load balancer, and also (for reasons) switching from free passenger to trying puma with multiple threads per process. (we are running puma with new experimental performance features turned on). so we’ll want to get a sense of base speed of the various host choices, and also look at how throughput under load changes based on various choices. benchmarking tool: wrk we’re going to use wrk. there are lots of choices for http benchmarking/load testing, with really varying complexity and from different eras of web history. i got a bit overwhelmed by it, but settled on wrk. some other choices didn’t have all the features we need (some way to test a list of urls, with at least some limited percentile distribution reporting). others were much more flexible and complicated and i had trouble even figuring out how to use them! wrk does need a custom lua script in order to handle a list of urls. i found a nice script here, and modified it slightly to take filename from an env variable, and not randomly shuffle input list. it’s a bit confusing understanding the meaning of “threads” vs “connections” in wrk arguments. this blog post from appfolio clears it up a bit. i decided to leave threads set to , and vary connections for load — so -c -t is a “one url at a time” setting we can use to test “base speed”, and we can benchmark throughput under load by increasing connections. we want to make sure we run the test for long enough to touch all urls in our list at least once, even in the slower setups, to have a good comparison — ideally it would be go through the list more than once, but for my own ergonomics i had to get through a lot of tests so ended up less tha ideal. (should i have put fewer than urls in? not sure). conclusions in advance as benchmarking posts go (especially when i’m the one writing them), i’m about to drop a lot of words and data on you. so to maximize the audience that sees the conclusions (because they surprise me, and i want feedback/pushback on them), i’m going to give you some conclusions up front. our current infrastructure has web app on a single ec t .medium, which is a burstable ec type — our relatively low-traffic app does not exhaust it’s burst credits. measuring base speed (just one concurrent request at a time), we found that performance dynos seem to have about the cpu speed of a bursting t .medium (just a hair slower). but standard dynos are as a rule to times slower; additionally they are highly variable, and that variability can be over hours/days. a minute period can have measured response times or more times slower than another minute period a couple hours later. but they seem to typically be - x slower than our current infrastructure. under load, they scale about how you’d expect if you knew how many cpus are present, no real surprises. our existing t .medium has two cpus, so can handle simultaneous requests as fast as , and after that degrades linearly. a single performance-l ($ /month) has cpus ( hyperthreads), so scales under load much better than our current infrastructure. a single performance-m ($ /month) has only cpu (!), so scales pretty terribly under load. testing scaling with standard- x’s ($ /month total), we see that it scales relatively evenly. although lumpily because of variability, and it starts out so much worse performing that even as it scales “evenly” it’s still out-performed by all other arcchitectures. :( (at these relatively fast median response times you might say it’s still fast enough who cares, but in our fat tail of slower pages it gets more distressing). now we’ll give you lots of measurements, or you can skip all that to my summary discussion or conclusions for our own project at the end. let’s compare base speed ok, let’s get to actual measurements! for “base speed” measurements, we’ll be telling wrk to use only one connection and one thread. existing t .medium: base speed our current infrastructure is one ec t .medium. this ec instance type has two vcpus and gb of ram. on that single ec instance, we run passenger (free not enterprise) set to have passenger processes, although the base speed test with only one connection should only touch one of the workers. the t is a “burstable” type, and we do always have burst credits (this is not a high traffic app; verified we never exhausted burst credits in these tests), so our test load may be taking advantage of burst cpu. $ urls=./sample_works.txt wrk -c -t -d m --timeout s --latency -s load_test/multiplepaths.lua.txt https://[current staging server] multiplepaths: found paths multiplepaths: found paths running m test @ https://staging-digital.sciencehistory.org threads and connections thread stats avg stdev max +/- stdev latency . ms . ms . s . % req/sec . . . . % latency distribution % . ms % . ms % . ms % . s requests in . m, . mb read requests/sec: . transfer/sec: . mb i’m actually feeling pretty good about those numbers on our current infrastructure! ms median, not bad, and even ms th percentile is not too bad. now, our test load involves some json responses that are quicker to deliver than corresponding html page, but still pretty good. the th/ th/and max request ( . s) aren’t great, but i knew i had some slow pages, this matches my previous understanding of how slow they are in our current infrastructure. th percentile is ~ times th percenile. i don’t have an understanding of why the two different req/sec and requests/sec values are so different, and don’t totally understand what to do with the stdev and +/- stdev values, so i’m just going to be sticking to looking at the latency percentiles, i think “latency” could also be called “response times” here. but ok, this is our baseline for this workload. and doing this minute test at various points over the past few days, i can say it’s nicely regular and consistent, occasionally i got a slower run, but th percentile was usually ms– ms, right around there. heroku standard- x: base speed from previous mucking about, i learned i can only reliably fit one puma worker in a standard- x, and heroku says “we typically recommend a minimum of   processes, if possible” (for routing algorithmic reasons when scaled to multiple dynos), so i am just starting at a standard- x with two puma workers each with threads, matching heroku recommendations for a standard- x dyno. so one thing i discovered is that bencharks from a heroku standard dyno are really variable, but here are typical ones: $ heroku dyno:resize type size qty cost/mo ─────── ─────────── ─── ─────── web standard- x $ heroku config:get --shell web_concurrency rails_max_threads web_concurrency= rails_max_threads= $ urls=./sample_works.txt wrk -c -t -d m --timeout s --latency -s load_test/multiplepaths.lua.txt https://scihist-digicoll.herokuapp.com/ multiplepaths: found paths multiplepaths: found paths running m test @ https://scihist-digicoll.herokuapp.com/ threads and connections thread stats avg stdev max +/- stdev latency . ms . ms . s . % req/sec . . . . % latency distribution % . ms % . ms % . s % . s requests in . m, . mb read requests/sec: . transfer/sec: . kb i had heard that heroku standard dynos would have variable performance, because they are shared multi-tenant resources. i had been thinking of this like during a minute test i might see around the same median with more standard deviation — but instead, what it looks like to me is that running this benchmark on monday at am might give very different results than at : am or tuesday at pm. the variability is over a way longer timeframe than my minute test — so that’s something learned. running this here and there over the past week, the above results seem to me typical of what i saw. (to get better than “seem typical” on this resource, you’d have to run a test, over several days or a week i think, probably not hammering the server the whole time, to get a sense of actual statistical distribution of the variability). i sometimes saw tests that were quite a bit slower than this, up to a ms median. i rarely if ever saw results too much faster than this on a standard- x. th percentile is ~ x median, less than my current infrastructure, but that still gets up there to . instead of ms. this typical one is quite a bit slower than than our current infrastructure, our median response time is x the latency, with th and max being around x. this was worse than i expected. heroku performance-m: base speed although we might be able to fit more puma workers in ram, we’re running a single-connection base speed test, so it shouldn’t matter to, and we won’t adjust it. $ heroku dyno:resize type size qty cost/mo ─────── ───────────── ─── ─────── web performance-m $ heroku config:get --shell web_concurrency rails_max_threads web_concurrency= rails_max_threads= $ urls=./sample_works.txt wrk -c -t -d m --timeout s --latency -s load_test/multiplepaths.lua.txt https://scihist-digicoll.herokuapp.com/ multiplepaths: found paths multiplepaths: found paths running m test @ https://scihist-digicoll.herokuapp.com/ threads and connections thread stats avg stdev max +/- stdev latency . ms . ms . s . % req/sec . . . . % latency distribution % . ms % . ms % . s % . s requests in . m, . mb read requests/sec: . transfer/sec: . kb this is a lot closer to the ballpark of our current infrastructure. it’s a bit slower ( ms median intead of ms median), but in running this now and then over the past week it was remarkably, thankfully, consistent. median and th percentile are both % slower (makes me feel comforted that those numbers are the same in these two runs!), that doesn’t bother me so much if it’s predictable and regular, which it appears to be. the max appears to me still a little bit less regular on heroku for some reason, since performance is supposed to be non-shared aws resources, you wouldn’t expect it to be, but slow requests are slow, ok. th percentile is ~ x median, about the same as my current infrastructure. heroku performance-l: base speed $ heroku dyno:resize type size qty cost/mo ─────── ───────────── ─── ─────── web performance-l $ heroku config:get --shell web_concurrency rails_max_threads web_concurrency= rails_max_threads= urls=./sample_works.txt wrk -c -t -d m --timeout s --latency -s load_test/multiplepaths.lua.txt https://scihist-digicoll.herokuapp.com/ multiplepaths: found paths multiplepaths: found paths running m test @ https://scihist-digicoll.herokuapp.com/ threads and connections thread stats avg stdev max +/- stdev latency . ms . ms . s . % req/sec . . . . % latency distribution % . ms % . ms % . s % . s requests in . m, . mb read requests/sec: . transfer/sec: . kb no news is good news, it looks very much like performance-m, which is exactly what we expected, because this isn’t a load test. it tells us that performance-m and performance-l seem to have similar cpu speeds and similar predictable non-variable regularity, which is what i find running this test periodically over a week. th percentile is ~ x median, about the same as current infrastructure. the higher max speed is just evidence of what i mentioned, the speed of slowest request did seem to vary more than on our manual t .medium, can’t really explain why. summary: base speed not sure how helpful this visualization is, charting th, th, and th percentile responses across architectures. but basically: performance dynos perform similarly to my (bursting) t .medium. can’t explain why performance-l seems slightly slower than performance-m, might be just incidental variation when i ran the tests. the standard- x is about twice as slow as my (bursting) t .medium. again recall standard- x results varied a lot every time i ran them, the one i reported seems “typical” to me, that’s not super scientific, admittedly, but i’m confident that standard- x are a lot slower in median response times than my current infrastructure. throughput under load ok, now we’re going to test using wrk to use more connections. in fact, i’ll test each setup with various number of connections, and graph the result, to get a sense of how each formation can handle throughput under load. (this means a lot of minutes to get all these results, at minutes per number of connection test, per formation!). an additional thing we can learn from this test, on heroku we can look at how much ram is being used after a load test, to get a sense of the app’s ram usage under traffic to understand the maximum number of puma workers we might be able to fit in a given dyno. existing t .medium: under load a t .medium has g of ram and cpus. we run passenger workers (no multi-threading, since we are free, rather than enterprise, passenger). so what do we expect? with cpus and more than workers, i’d expect it to handle simultaneous streams of requests almost as well as ; - should be quite a bit slower because they are competing for the cpus. over , performance will probably become catastrophic. connections are exactly flat with , as expected for our two cpus, hooray! then it goes up at a strikingly even line. going over (to ) simultaneous connections doesn’t matter, even though we’ve exhausted our workers, i guess at this point there’s so much competition for the two cpus already. the slope of this curve is really nice too actually. without load, our median response time is ms, but even at a totally overloaded overloaded connections, it’s only ms, which actually isn’t too bad. we can make a graph that in addition to median also has th, th, and th percentile response time on it: it doesn’t tell us too much; it tells us the upper percentiles rise at about the same rate as the median. at simultaneous connection th percentile of ms is about times the median of ms; at requests the th percentile of . seconds is about times the median of ms. this does remind us that under load when things get slow, this has more of a disastrous effect on already slow requests than fast requests. when not under load, even our th percentile was kind of sort of barley acceptable at ms, but under load at . seconds it really isn’t. single standard- x dyno: under load a standard- x dyno has g of ram. the (amazing, excellent, thanks schneems) heroku puma guide suggests running two puma workers with threads each. at first i wanted to try running three workers, which seemed to fit into available ram — but under heavy load-testing i was getting heroku r memory quota exceeded errors, so we’ll just stick with the heroku docs recommendations. two workers with threads each fit with plenty of headroom. a standard- x dyno is runs on shared (multi-tenant) underlying amazon virtual hardware. so while it is running on hardware with cpus (each of which can run two “hyperthreads“), the puma doc suggests “it is best to assume only one process can execute at a time” on standard dynos. what do we expect? well, if it really only had one cpu, it would immediately start getting bad at simulataneous connections, and just get worse from there. when we exceed the two worker count, will it get even worse? what about when we exceed the thread ( workers * threads) count? you’d never run just one dyno if you were expecting this much traffic, you’d always horizontally scale. this very artificial test is just to get a sense of it’s characteristics. also, we remember that standard- x’s are just really variable; i could get much worse or better runs than this, but graphed numbers from a run that seemed typical. well, it really does act like cpu, simultaneous connections is immediately a lot worse than . the line isn’t quite as straight as in our existing t .medium, but it’s still pretty straight; i’d attribute the slight lumpiness to just the variability of shared-architecture standard dyno, and figure it would get perfectly straight with more data. it degrades at about the same rate of our baseline t .medium, but when you start out slower, that’s more disastrous. our t .medium at an overloaded simultaneous requests is ms (pretty tolerable actually), times the median at one request only. this standard- x has a median response time of ms at only one simultaneous request, and at an overloaded requests has a median response time also about x worse, but that becomes a less tolerable ms. does also graphing the th, th, and th percentile tell us much? eh, i think the lumpiness is still just standard shared-architecture variability. the rate of “getting worse” as we add more overloaded connections is actually a bit better than it was on our t .medium, but since it already starts out so much slower, we’ll just call it a wash. (on t .medium, th percentile without load is ms and under an overloaded connections . s. on this single standard- x, it’s . s and . s). i’m not sure how much these charts with various percentiles on them tell us, i’ll not include them for every architecture hence. standard- x, dynos: under load ok, realistically we already know you shouldn’t have just one standard- x dyno under that kind of load. you’d scale out, either manually or perhaps using something like the neat rails autoscale add-on. let’s measure with dynos. each is still running puma workers, with threads each. what do we expect? hm, treating each dyno as if it has only one cpu, we’d expect it to be able to handle traffic pretty levelly up to simultenous connections, distributed to dynos. it’s going to do worse after that, but up to there is still one puma worker per connection so it might get even worse after ? well… i think that actually is relatively flat from to simultaneous connections, except for lumpiness from variability. but lumpiness from variability is huge! we’re talking ms median measured at connection, up to ms measured median at , down to ms at . and then maybe yeah, a fairly shallow slope up to simutaneous connections than steeper. but it’s all fairly shallow slope compared to our base t .medium. at connections (after which we pretty much max out), the standard- x median of ms is only . times the median at conection. compared to the t .median increase of . times. as we’d expect, scaling out to dynos (with four cpus/ hyperthreads) helps us scale well — the problem is the baseline is so slow to begin (with very high bounds of variability making it regularly even slower). performance-m: under load a performance-m has . gb of memory. it only has one physical cpu, although two “vcpus” (two hyperthreads) — and these are all your apps, it is not shared. by testing under load, i demonstrated i could actually fit workers on there without any memory limit errors. but is there any point to doing that with only / cpus? under a bit of testing, it appeared not. the heroku puma docs recommend only processes with threads. you could do a whole little mini-experiment just trying to measure/optimize process/thread count on performance-m! we’ve already got too much data here, but in some experimentation it looked to me like processes with threads each performed better (and certainly no worse) than processes with threads — if you’ve got the ram just sitting there anyway (as we do), why not? i actually tested with puma processes with threads each. there is still a large amount of ram headroom we aren’t going to use even under load. what do we expect? well, with the “hyperthreads” perhaps it can handle simultaneous requests nearly as well as (or not?); after that, we expect it to degrade quickly same as our original t .medium did. it an handle connections slightly better than you’d expect if there really was only cpu, so i guess a hyperthread does give you something. then the slope picks up, as you’d expect; and it looks like it does get steeper after simultaneous connections, yup. performance-l: under load a performance-l ($ /month) costs twice as much as a performance-m ($ /month), but has far more than twice as much resources. performance-l has a whopping gb of ram compared to performance-m’s . gb; and performance-l has real cpus/hyperthreads available to use (visible using the nproc technique in the heroku puma article. because we have plenty of ram to do so, we’re going to run worker processes to match our original t .medium’s. we still ran with threads, just cause it seems like maybe you should never run a puma worker with only one thread? but who knows, maybe workers with thread each would perform better; plenty of room (but not plenty of my energy) for yet more experimentation. what do we expect? the graph should be pretty flat up to simultaneous connections, then it should start getting worse, pretty evenly as simultaneous connections rise all the way up to . it is indeed pretty flat up to simultaneous connections. then up to it’s still not too bad — median at is only ~ . median at (!). then it gets worse after (oh yeah, hyperthreads?). but the slope is wonderfully shallow all the way. even at simultaneous connections, the median response time of ms is only . x what it was at one connection. (in our original t .medium, at simultaneous connections median response time was over x what it was at connection). this thing is indeed a monster. summary comparison: under load we showed a lot of graphs that look similar, but they all had different sclaes on the y-axis. let’s plot median response times under load of all architectures on the same graph, and see what we’re really dealing with. the blue t .medium is our baseline, what we have now. we can see that there isn’t really a similar heroku option, we have our choice of better or worse. the performance-l is just plain better than what we have now. it starts out performing about the same as what we have now for or simultaneous connections, but then scales so much flatter. the performance-m also starts out about thesame, but sccales so much worse than even what we have now. (it’s that real cpu instead of , i guess?). the standard- x scaled to dynos… has it’s own characteristics. it’s baseline is pretty terrible, it’s to times as slow as what we have now even not under load. but then it scales pretty well, since it’s dynos after all, it doesn’t get worse as fast as performance-m does. but it started out so bad, that it remains far worse than our original t .medium even under load. adding more dynos to standard- x will help it remain steady under even higher load, but won’t help it’s underlying problem that it’s just slower than everyone else. discussion: thoughts and surprises i had been thinking of a t .medium (even with burst) as “typical” (it is after all much slower than my macbook), and has been assuming (in retrospect with no particular basis) that a heroku standard dyno would perform similarly. most discussion and heroku docs, as well as the naming itself, suggest that a ‘standard’ dyno is, well, standard, and performance dynos are for “super scale, high traffic apps”, which is not me. but in fact, heroku standard dynos are much slower and more variable in performance than a bursting t .medium. i suspect they are slower than other options you might consider non-heroku “typical” options. my conclusion is honestly that “standard” dynos are really “for very fast, well-optimized apps that can handle slow and variable cpu” and “performance” dynos are really “standard, matching the cpu speeds you’d get from a typical non-heroku option”. but this is not how they are documented or usually talked about. are other people having really different experiences/conclusions than me? if so, why, or where have i gone wrong? this of course has implications for estimating your heroku budget if considering switching over. :( if you have a well-optimized fast app, say even th percentile is ms (on bursting t .medium), then you can handle standard slowness — so what your th percentile is now ms (and during some time periods even much slower, s or worse, due to variability). that’s not so bad for a th percentile. one way to get a very fast is of course caching. there is lots of discussion of using caching in rails, sometimes the message (explicit or implicit) is “you have to use lots of caching to get reasonable performance cause rails is so slow.” what if many of these people are on heroku, and it’s really you have to use lots of caching to get reasonable performance on heroku standard dyno?? i personally don’t think caching is maintenance free; in my experience properly doing cache invalidation and dealing with significant processing spikes needed when you choose to invalidate your entire cache (cause cached html needs to change) lead to real maintenance/development cost. i have not needed caching to meet my performance goals on present architecture. everyone doesn’t necessarily have the same performance goals/requirements. mine of a low-traffic non-commercial site are are maybe more modest, i just need users not to be super annoyed. but whatever your performance goals, you’re going to have to spend more time on optimization on a heroku standard than something with much faster cpu — like a standard affordable mid-tier ec . am i wrong? one significant factor on heroku standard dyno performance is that they use shared/multi-tenant infrastructure. i wonder if they’ve actually gotten lower performance over time, as many customers (who you may be sharing with) have gotten better at maximizing their utilization, so the shared cpus are typically more busy? like a frog boiling, maybe nobody noticed that standard dynos have become lower performance? i dunno, brainstorming. or maybe there are so many apps that start on heroku instead of switcching from somewhere else, that people just don’t realize that standard dynos are much slower than other low/mid-tier options? i was expecting to pay a premium for heroku — but even standard- x’s are a significant premium over paying for t .medium ec yourself, one i found quite reasonable…. performance dynos are of course even more premium. i had a sort of baked-in premise that most rails apps are “io-bound”, they spend more time waiting on io than using cpu. i don’t know where i got that idea, i heard it once a long time ago and it became part of my mental model. i now do not believe this is true true of my app, and i do not in fact believe it is true of most rails apps in . i would hypothesize that most rails apps today are in fact cpu-bound. the performance-m dyno only has one cpu. i had somehow also been assuming that it would have two cpus — i’m not sure why, maybe just because at that price! it would be a much better deal with two cpus. instead we have a huge jump from $ performance-m to $ performance-l that has x the cpus and ~ x the ram. so it doesn’t make financial sense to have more than one performance-m dyno, you might as well go to performance-l. but this really complicates auto-scaling, whether using heroku’s feature , or the awesome rails autoscale add-on. i am not sure i can afford a performance-l all the time, and a performance-m might be sufficient most of the time. but if % of the time i’m going to need more (or even %, or even unexpectedly-mentioned-in-national-media), it would be nice to set things up to autoscale up…. i guess to financially irrational or more performance-m’s? :( the performance-l is a very big machine, that is significantly beefier than my current infrastructure. and has far more ram than i need/can use with only physical cores. if i consider standard dynos to be pretty effectively low tier (as i do), heroku to me is kind of missing mid-tier options. a cpu option at . g or g of ram would make a lot of sense to me, and actually be exactly what i need… really i think performance-m would make more sense with cpus at it’s existing already-premium price point, and to be called a “performance” dyno. . maybe heroku is intentionally trying set options to funnel people to the highest-priced performance-l. conclusion: what are we going to do? in my investigations of heroku, my opinion of the developer ux and general service quality only increases. it’s a great product, that would increase our operational capacity and reliability, and substitute for so many person-hours of sysadmin/operational time if we were self-managing (even on cloud architecture like ec ). but i had originally been figuring we’d use standard dynos (even more affordably, possibly auto-scaled with rails autoscale plugin), and am disappointed that they end up looking so much lower performance than our current infrastructure. could we use them anyway? response time going from ms to ms — hey, ms is still fine, even if i’m sad to lose those really nice numbers i got from a bit of optimization. but this app has a wide long-tail ; our th percentile going from ms to s, our th percentile going from ms to . s and our th going from . s to . s — a lot harder to swallow. especially when we know that due to standard dyno variability, a slow-ish page that on my present architecture is reliably . s, could really be anywhere from to (!) on heroku. i would anticipate having to spend a lot more developer time on optimization on heroku standard dynos — or, i this small over-burdened non-commercial shop, not prioritizing that (or not having the skills for it), and having our performance just get bad. so i’m really reluctant to suggest moving our app to heroku with standard dynos. a performance-l dyno is going to let us not have to think about performance any more than we do now, while scaling under high-traffic better than we do now — i suspect we’d never need to scale to more than one performance-l dyno. but it’s pricey for us. a performance-m dyno has a base-speed that’s fine, but scales very poorly and unaffordably. doesn’t handle an increase in load very well as one dyno, and to get more cpus you have to pay far too much (especially compared to standard dynos i had been assuming i’d use). so i don’t really like any of my options. if we do heroku, maybe we’ll try a performance-m, and “hope” our traffic is light enough that a single one will do? maybe with rails autoscale for traffic spikes, even though performance-m dynos isn’t financially efficient? if we are scaling to (or more!) performance-m’s more than very occasionally, switch to performance-l, which means we need to make sure we have the budget for it? jrochkind general leave a comment november , november , deep dive: moving ruby projects from travis to github actions for ci so this is one of my super wordy posts, if that’s not your thing abort now, but some people like them. we’ll start with a bit of context, then get to some detailed looks at github actions features i used to replace my travis builds, with example config files and examination of options available. for me, by “continuous integration” (ci), i mostly mean “running automated tests automatically, on your code repo, as you develop”, on every pr and sometimes with scheduled runs. other people may mean more expansive things by “ci”. for a lot of us, our first experience with ci was when travis-ci started to become well-known, maybe years ago or so. travis was free for open source, and so darn easy to set up and use — especially for rails projects, it was a time when it still felt like most services focused on docs and smooth fit for ruby and rails specifically. i had heard of doing ci, but as a developer in a very small and non-profit shop, i want to spend time writing code not setting up infrastructure, and would have had to get any for-cost service approved up the chain from our limited budget. but it felt like i could almost just flip a switch and have travis on ruby or rails projects working — and for free! free for open source wasn’t entirely selfless, i think it’s part of what helped travis literally define the market. (btw, i think they were the first to invent the idea of a “badge” url for a github readme?) along with an amazing developer ux (which is today still a paragon), it just gave you no reason not to use it. and then once using it, it started to seem insane to not have ci testing, nobody would ever again want to develop software without the build status on every pr before merge. travis really set a high bar for ease of use in a developer tool, you didn’t need to think about it much, it just did what you needed, and told you what you needed to know in it’s read-outs. i think it’s an impressive engineering product. but then. end of an era travis will no longer be supporting open source projects with free ci. the free open source travis projects originally ran on travis-ci.org, with paid commercial projects on travis-ci.com. in may , they announced they’d be unifying these on travis-ci.com only, but with no announced plan that the policy for free open source would change. this migration seemed to proceed very slowly though. perhaps because it was part of preparing the company for a sale, in jan it was announced private equity firm idera had bought travis. at the time the announcement said “we will continue to maintain a free, hosted service for open source projects,” but knowing what “private equity” usually means, some were concerned for the future. (hn discussion). while the faq on the migration to travis-ci.com still says that travis-ci.org should remain reliable until projects are fully migrated, in fact over the past few months travis-ci.org projects largely stopped building, as travis apparently significantly reduced resources on the platform. some people began manually migrating their free open source projects to travis-ci.com where builds still worked. but, while the faq also still says “will travis ci be getting rid of free users? travis ci will continue to offer a free tier for public or open-source repositories on travis-ci.com” — in fact, travis announced that they are ending the free service for open source. the “free tier” is a limited trial (available not just to open source), and when it expires, you can pay, or apply to a special program for an extension, over and over again. they are contradicting themselves enough that while i’m not sure exactly what is going to happen, but no longer trust them as a service. enter github actions i work mostly on ruby and rails projects. they are all open source, almost all of them use travis. so while (once moved to travis-ci.com) they are all currently working, it’s time to start moving them somewhere else, before i have dozens of projects with broken ci and still don’t know how to move them. and the new needs to be free — many of these projects are zero-budget old-school “volunteer” or “informal multi-institutional collaboration” open source. there might be several other options, but the one i chose is github actions — my sense that it had gotten mature enough to start approaching travis level of polish, and all of my projects are github-hosted, and github actions is free for unlimited use for open source. (pricing page; aug announcement of free for open source). and we are really fortunate that it became mature and stable in time for travis to withdraw open source support (if travis had been a year earlier, we’d be in trouble). github actions is really powerful. it is built to do probably way more than travis does, definitely way beyond “automated testing” to various flows for deployment and artifact release, to really just about any kind of process for managing your project you want. the logic you can write almost unlimited, all running on github’s machines. as a result though…. i found it a bit overwhelming to get started. the github actions docs are just overwhelmingly abstract, there is so much there, you can almost anything — but i don’t actually want to learn a new platform, i just want to get automated test ci for my ruby project working! there are some language/project speccific guides available, for node.js, python, a few different java setups — but not for ruby or rails! my how rails has fallen, from when most services like this would be focusing on rails use cases first. :( there are some third part guides available that might focus on ruby/rails, but one of the problems is that actions has been evolving for a few years with some pivots, so it’s easy to find outdated instructions. one i found helpful orientation was this drifting ruby screencast. this screencast showed me there is a kind of limited web ui with integrated docs searcher — but i didn’t end up using it, i just created the text config file by hand, same as i would have for travis. github provides templates for “ruby” or “ruby gem”, but the drifting ruby sccreencast said “these won’t really work for our ruby on rails application so we’ll have to set up one manually”, so that’s what i did too. ¯\_(ツ)_/¯ but the cost of all the power github actions provides is… there are a lot more switches and dials to understand and get right (and maintain over time and across multiple projects). i’m not someone who likes copy-paste without understanding it, so i spent some time trying to understand the relevant options and alternatives; in the process i found some things i might have otherwise copy-pasted from other people’s examples that could be improved. so i give you the results of my investigations, to hopefully save you some time, if wordy comprehensive reports are up your alley. a simple test workflow: ruby gem, test with multiple ruby versions here’s a file for a fairly simple test workflow. you can see it’s in the repo at .github/workflows. the name of the file doesn’t matter — while this one is called ruby.yml, i’ve since moved over to naming the file to match the name: key in the workflow for easier traceability, so i would have called it ci.yml instead. triggers you can see we say that this workflow should be run on any push to master branch, and also for any pull_request at all. many other examples i’ve seen define pull_request: branches: ["main"], which seems to mean only run on pull requests with main as the base. while that’s most of my pr’s, if there is ever a pr that uses another branch as a base for whatever reason, i still want to run ci! while hypothetically you should be able leave branches out to mean “any branch”, i only got it to work by explicitly saying branches: ["**"] matrix for this gem, we want to run ci on multiple ruby versions. you can see we define them here. this works similarly to travis matrixes. if you have more than one matrix variable defined, the workflow will run for every combination of variables (hence the name “matrix”). matrix: ruby: [ ' . . ', ' . . ', ' . . ', ' . . ', 'jruby- . . . ', 'jruby- . . . ' ] in a given run, the current value of the matrix variables is available in github actions “context”, which you can acccess as eg ${{ matrix.ruby }}. you can see how i use that in the name, so that the job will show up with it’s ruby version in it. name: ruby ${{ matrix.ruby }} ruby install while github itself provides an action for ruby install, it seems most people are using this third-party action. which we reference as `ruby/setup-ruby@v `. you can see we use the matrix.ruby context to tell the setup-ruby action what version of ruby to install, which works because our matrix values are the correct values recognized by the action. which are documented in the readme, but note that values like jruby-head are also supported. note, although it isn’t clearly documented, you can say . to mean “latest available . .x” (rather than it meaning “ . . ”), which is hugely useful, and i’ve switched to doing that. i don’t believe that was available via travis/rvm ruby install feature. for a project that isn’t testing under multiple rubies, if we left out the with: ruby-version, the action will conveniently use a .ruby-version file present in the repo. note you don’t need to put a gem install bundler into your workflow yourself, while i’m not sure it’s clearly documented, i found the ruby/setup-ruby action would do this for you (installing the latest available bundler, instead of using whatever was packaged with ruby version), btw regardless of whether you are using the bundler-cache feature (see below). note on how matrix jobs show up to github with travis, testing for multiple ruby or rails versions with a matrix, we got one (or, well, actually two) jobs showing up on the github pr: each of those lines summaries a collection of matrix jobs (eg different ruby versions). if any of the individual jobs without the matrix failed, the whole build would show up as failed. success or failure, you could click on “details” to see each job and it’s status: i thought this worked pretty well — especially for “green” builds i really don’t need to see the details on the pr, the summary is great, and if i want to see the details i can click through, great. with github actions, each matrix job shows up directly on the pr. if you have a large matrix, it can be… a lot. some of my projects have way more than . on pr: maybe it’s just because i was used to it, but i preferred the travis way. (this also makes me think maybe i should change the name key in my workflow to say eg ci: ruby . . to be more clear? oops, tried that, it just looks even weirder in other gh contexts, not sure.) oh, also, that travis way of doing the build twice, once for “pr” and once for “push”? github actions doesn’t seem to do that, it just does one, i think corresponding to travis “push”. while the travis feature seemed technically smart, i’m not sure i ever actually saw one of these builds pass while the other failed in any of my projects, i probably won’t miss it. badge did you have a readme badge for travis? don’t forget to swap it for equivalent in github actions. the image url looks like: https://github.com/$owner/$repository/workflows/$workflow_name/badge.svg?branch=master, where $workflow_name of course has to be url-escaped if it ocntains spaces etc. the github page at https://github.com/owner/repo/actions, if you select a particular workflow/branch, does, like travis, give you a badge url/markdown you can copy/paste if you click on the three-dots and then “create status badge”. unlike travis, what it gives you to copy/paste is just image markdown, it doesn’t include a link. but i definitely want the badge to link to viewing the results of the last build in the ui. so i do it manually. limit to the speciifc workflow and branch that you made the badge for in the ui then just copy and paste the url from the browser. a bit confusing markdown to construct manually, here’s what it ended up looking like for me: [![ci status](https://github.com/jrochkind/attr_json/workflows/ci/badge.svg?branch=master)% d(https://github.com/jrochkind/attr_json/actions?query=workflow% aci+branch% amaster) view raw gh_badge_markdown_example.txt hosted with ❤ by github i copy and paste that from an existing project when i need it in a new one. :shrug: require ci to merge pr? however, that difference in how jobs show up to github, the way each matrix job shows up separately now, has an even more negative impact on requiring ci success to merge a pr. if you want to require that ci passes before merging a pr, you configure that at https://github.com/acct/project/settings/branches under “branch protection rules”.when you click “add rule”, you can/must choose which jobs are “required”. for travis, that’d be those two “master” jobs, but for the new system, every matrix job shows up separately — in fact, if you’ve been messing with job names trying to get it right as i have, you have any job name that was ever used in the last days, and they don’t have the github workflow name appended to them or anything (another reason to put github workflow name in the job name?). but the really problematic part is that if you edit your list of jobs in the matrix — adding or removing ruby versions as one does, or even just changing the name that shows up for a job — you have to go back to this screen to add or remove jobs as a “required status check”. that seems really unworkable to me, i’m not sure how it hasn’t been a major problem already for users. it would be better if we could configure “all the checks in the workflow, whatever they may be”, or perhaps best of all if we could configure a check as required in the workflow yml file, the same place we’re defining it, just a required_before_merge key you could set to true or use a matrix context to define or whatever. i’m currently not requiring status checks for merge on most of my projects (even though i did with travis), because i was finding it unmanageable to keep the job names sync’d, especially as i get used to github actions and kept tweaking things in a way that would change job names. so that’s a bit annoying. fail_fast: false by default, if one of the matrix jobs fails, github acitons will cancel all remaining jobs, not bother to run them at all. after all, you know the build is going to fail if one job fails, what do you need those others for? well, for my use case, it is pretty annoying to be told, say, “job for ruby . . failed, we can’t tell you whether the other ruby versions would have passed or failed or not” — the first thing i want to know is if failed on all ruby versions or just . . , so now i’d have to spend extra time figuring that out manually? no thanks. so i set `fail_fast: false` on all of my workflows, to disable this behavior. note that travis had a similar (opt-in) fast_finish feature, which worked subtly different: travis would report failure to github on first failure (and notify, i think), but would actually keep running all jobs. so when i saw a failure, i could click through to ‘details’ to see which (eg) ruby versions passed, from the whole matrix. this does work for me, so i’d chose to opt-in to that travis feature. unfortunately, the github actions subtle difference in effect makes it not desirable to me. note you may see some people referencing a github actions continue-on-error feature. i found the docs confusing, but after experimentation what this really does is mark a job as successful even when it fails. it shows up in all gh ui as succeeeded even when it failed, the only way to know it failed would be to click through to the actual build log to see failure in the logged console. i think “continue on error” is a weird name for this; it is not useful to me with regard to fine-tuning fail-fast; or honestly in any other use case i can think of that i have. bundle cache? bundle install can take + seconds, and be a significant drag on your build (not to mention a lot of load on rubygems servers from all these builds). so when travis introduced a feature to cache: bundler: true, it was very popular. true to form, github actions gives you a generic caching feature you can try to configure for your particular case (npm, bundler, whatever), instead of an out of the box feature “just do the right thing you for bundler, you figure it out”. the ruby/setup-ruby third-party action has a built-in feature to cache bundler installs for you, but i found that it does not work right if you do not have a gemfile.lock checked into the repo. (ie, for most any gem, rather than app, project). it will end up re-using cached dependencies even if there are new releases of some of your dependencies, which is a big problem for how i use ci for a gem — i expect it to always be building with latest releases of dependencies, so i can find out of one breaks the build. this may get fixed in the action. if you have an app (rather than gem) with a gemfile.lock checked into repo, the bundler-cache: true feature should be just fine. otherwise, github has some suggestions for using the generic cache feature for ruby bundler (search for “ruby – bundler” on this page) — but i actually don’t believe they will work right without a gemfile.lock checked into the repo either. starting from that example, and using the restore-keys feature, i think it should be possible to design a use that works much like travis’s bundler cache did, and works fine without a checked-in gemfile.lock. we’d want it to use a cache from the most recent previous (similar job), and then run bundle install anyway, and then cache the results again at the end always to be available for the next run. but i haven’t had time to work that out, so for now my gem builds are simply not using bundler caching. (my gem builds tend to take around seconds to do a bundle install, so that’s in every build now, could be worse). update nov : the ruby/ruby-setup action should be fixed to properly cache-bust when you don’t have a gemfile.lock checked in. if you are using a matrix for ruby version, as below, you must set the ruby version by setting the bundle_gemfile env variable rather than the way we did it below, and there is is a certain way github action requires/provides you do that, it’s not just export. see the issue in ruby/ruby-setup project. notifications: not great travis has really nice defaults for notifications: the person submitting the pr would get an email generally only on status changes (from pass to fail or fail to pass) rather than on every build. and travis would even figure out what email to send to based on what email you used in your git commits. (originally perhaps a workaround to lack of github api at travis’ origin, i found it a nice feature). and then travis has sophisticated notification customization available on a per-repo basis. github notifications are unfortunately much more basic and limited. the only notification settings avaialable are for your entire account at https://github.com/settings/notifications, “github actions”. so they apply to all github workflows in all projects, there are no workflow- or project-specific settings. you can set to receive notification via web push or email or both or neither. you can receive notifications for all builds or only failed builds. that’s it. the author of a pr is the one who receives the notifications, same as in travis. you will get notifications for every single build, even repeated successes or failures in a series. i’m not super happy with the notification options. i may end up just turning off github actions notifications entirely for my account. hypothetically, someone could probably write a custom github action to give you notifications exactly how travis offered — after all, travis was using public gh api that should be available to any other author, and i think should be usable from within an action. but when i started to think through it, while it seemed an interesting project, i realized it was definitely beyond the “spare hobby time” i was inclined to give to it at present, especially not being much of a js developer (the language of custom gh actions, generally). (while you can list third-party actions on the github “marketplace”, i don’t think there’s a way to charge for them). . there are custom third-party actions available to do things like notify slack for build completion; i haven’t looked too much into any of them, beyond seeing that i didn’t see any that would be “like travis defaults”. a more complicated gem: postgres, and rails matrix let’s move to a different example workflow file, in a different gem. you can see i called this one ci.yml, matching it’s name: ci, to have less friction for a developer (including future me) trying to figure out what’s going on. this gem does have rails as a dependency and does test against it, but isn’t actually a rails engine as it happens. it also needs to test against postgres, not just sqlite . scheduled builds at one point travis introduced a feature for scheduling (eg) weekly builds even when no pr/commit had been made. i enthusiastically adopted this for my gem projects. why? gem releases are meant to work on a variety of different ruby versions and different exact versions of dependencies (including rails). sometimes a new release of ruby or rails will break the build, and you want to know about that and fix it. with ci builds happening only on new code, you find out about this with some random new code that is unlikely to be related to the failure; and you only find out about it on the next “new code” that triggers a build after a dependency release, which on some mature and stable gems could be a long time after the actual dependency release that broke it. so scheduled builds for gems! (i have no purpose for scheduled test runs on apps). github actions does have this feature. hooray. one problem is that you will receive no notification of the result of the scheduled build, success or failure. :( i suppose you could include a third-party action to notify a fixed email address or slack or something else; not sure how you’d configure that to apply only to the scheduled builds and not the commit/pr-triggered builds if that’s what you wanted. (or make an custom action to file a gh issue on failure??? but make sure it doesn’t spam you with issues on repeated failures). i haven’t had the time to investigate this yet. also oops just noticed this: “in a public repository, scheduled workflows are automatically disabled when no repository activity has occurred in days.” which poses some challenges for relying on scheduled builds to make sure a stable slow-moving gem isn’t broken by dependency updates. i definitely am committer on gems that are still in wide use and can go - + months without a commit, because they are mature/done. i still have it configured in my workflow; i guess even without notifications it will effect the “badge” on the readme, and… maybe i’ll notice? very far from ideal, work in progress. :( rails matrix ok, this one needs to test against various ruby versions and various rails versions. a while ago i realized that an actual matrix of every ruby combined with every rails was far too many builds. fortunately, github actions supports the same kind of matrix/include syntax as travis, which i use. matrix: include: - gemfile: rails_ _ ruby: . - gemfile: rails_ _ ruby: . i use the appraisal gem to handle setting up testing under multiple rails versions, which i highly recommend. you could use it for testing variant versions of any dependencies, i use it mostly for varying rails. appraisal results in a separate gemfile committed to your repo for each (in my case) rails version, eg ./gemfiles/rails_ _ .gemfile. so those values i use for my gemfile matrix key are actually portions of the gemfile path i’m going to want to use for each job. then we just need to tell bundler, in a given matrix job, to use the gemfile we specified in the matrix. the old-school way to do this is with the bundle_gemfile environmental variable, but i found it error-prone to make sure it stayed consistently set in each workflow step. i found that the newer (although not that new!) bundle config set gemfile worked swimmingly! i just set it before the bundle install, it stays set for the rest of the run including the actual test run. steps: # [...] - name: bundle install run: | bundle config set gemfile "${github_workspace}/gemfiles/${{ matrix.gemfile }}.gemfile" bundle install --jobs --retry note that single braces are used for ordinary bash syntax to reference the env variable ${github_workspace}, but double braces for the github actions context value interpolation ${{ matrix.gemfile }}. works great! oh, note how we set the name of the job to include both ruby and rails matrix values, important for it showing up legibly in github ui: name: ${{ matrix.gemfile }}, ruby ${{ matrix.ruby }}. because of how we constructed our gemfile matrix, that shows up with job names rails_ _ , ruby . . still not using bundler caching in this workflow. as before, we’re concerned about the ruby/setup-ruby built-in bundler-cache feature not working as desired without a gemfile.lock in the repo. this time, i’m also not sure how to get that feature to play nicely with the variant gemfiles and bundle config set gemfile. github actions makes you put together a lot more pieces together yourself compared to travis, there are still things i just postponed figuring out for now. update jan : the ruby/setup-ruby action now includes a ruby version matrix example in it’s readme. https://github.com/ruby/setup-ruby#matrix-of-gemfiles it does require you use the bundle_gemfile env variable, rather than the bundle config set gemfile command i used here. this should ordinarily be fine, but is something to watch out for in case other instructions you are following tries to use bundle config set gemfile instead, for reasons or not. postgres this project needs to build against a real postgres. that is relatively easy to set up in github actions. postgres normally by default allows connections on localhost without a username/password set, and my past builds (in travis or locally) took advantage of this to not bother setting one, which then the app didn’t have to know about. but the postgres image used for github actions doesn’t allow this, you have to set a username/password. so the section of the workflow that sets up postgres looks like: jobs: tests: services: db: image: postgres: . env: postgres_user: postgres postgres_password: postgres ports: [' : '] is the default postgres port, we need to set it and map it so it will be available as expected. note you also can specify whatever version of postgres you want, this one is intentionally testing on one a bit old. ok now our rails app that will be executed under rspec needs to know that username and password to use in it’s postgres connection; when before it connected without a username/password. that env under the postgres service image is not actually available to the job steps. i didn’t find any way to dry the username/password in one place, i had to repeat it in another env block, which i put at the top level of the workflow so it would apply to all steps. and then i had to alter my database.yml to use those env variables, in the test environment. on a local dev machine, if your postgres doens’t have a username/password requirement and you don’t set the env variables, it keeps working as before. i also needed to add host: localhost to the database.yml; before, the absence of the host key meant it used a unix-domain socket (filesystem-located) to connect to postgres, but that won’t work in the github actions containerized environment. note, there are things you might see in other examples that i don’t believe you need: no need for an apt-get of pg dev libraries. i think everything you need is on the default gh actions images now. some examples i’ve seen do a thing with options: --health-cmd pg_isready, my builds seem to be working just fine without it, and less code is less code to maintain. allow_failures in travis, i took advantage of the travis allow_failures key in most of my gems. why? i am testing against various ruby and rails versions; i want to test against *future* (pre-release, edge) ruby and rails versions, cause its useful to know if i’m already with no effort passing on them, and i’d like to keep passing on them — but i don’t want to mandate it, or prevent pr merges if the build fails on a pre-release dependency. (after all, it could very well be a bug in the dependency too!) there is no great equivalent to allow_failures in github actions. (note again, continue_on_error just makes failed jobs look identical to successful jobs, and isn’t very helpful here). i investigated some alternatives, which i may go into more detail on in a future post, but on one project i am trying a separate workflow just for “future ruby/rails allowed failures” which only checks master commits (not prs), and has a separate badge on readme (which is actually pretty nice for advertising to potential users “yeah, we already work on rails edge/ . .rc !”). main downside there is having to copy/paste synchronize what’s really the same workflow in two files. a rails app i have many more number of projects i’m a committer on that are gems, but i spend more of my time on apps, one app in specific. so here’s an example github actions ci workflow for a rails app. it mostly remixes the features we’ve already seen. it doesn’t need any matrix. it does need a postgres. it does need some “os-level” dependencies — the app does some shell-out to media utilities like vips and ffmpeg, and there are integration tests that utilize this. easy enough to just install those with apt-get, works swimmingly. - name: install apt dependencies run: | sudo apt-get -y install libvips-tools ffmpeg mediainfo update nov: my apt-get that worked for a couple weeks started failing for some reason on trying to install a libpulse dependency of one of those packages, the solution was doing a sudo apt-get update before the sudo apt-get install. i guess this is always good practice? (that forum post also uses apt install and apt update instead of apt-get install and apt-get update, that i can’t tell you much about, i’m really not a linux admin). in addition to the bundle install, a modern rails app using webpacker needs yarn install. this just worked for me — no need to include lines for installing npm itself or yarn or any yarn dependencies, although some examples i find online have them. (my yarn installs seem to happen in ~ seconds, so i’m not motivated to try to figure out caching for yarn). and we need to create the test database in the postgres, which i do with rails_env=test bundle exec rails db:create — typical rails test setup will then automatically run migrations if needed. there might be other (better?) ways to prep the database, but i was having trouble getting rake db:prepare to work, and didn’t spend the time to debug it, just went with something that worked. - name: set up app run: | rails_env=test bundle exec rails db:create yarn install rails test setup usually ends up running migrations automatically is why i think this worked alone, but you could also throw in a rails_env=test bundle exec rake db:schema:load if you wanted. under travis i had to install chrome with addons: chrome: stable to have it available to use with capybara via the webdrivers gem. no need for installing chrome in github actions, some (recent-ish?) version of it is already there as part of the standard github actions build image. in this workflow, you can also see a custom use of the github “cache” action to cache a solr install that the test setup automatically downloads and sets up. in this case the cache doesn’t actually save us any build time, but is kinder on the apache foundation servers we are downloading from with every build otherwise (and have gotten throttled from in the past). conclusion github aciton sis a really impressively powerful product. and it’s totally going to work to replace travis for me. it’s also probably going to take more of my time to maintain. the trade-off of more power/flexibility and focusing on almost limitless use cases is more things th eindividual project has to get right for their use case. for instance figuring out the right configuration to get caching for bundler or yarn right, instead of just writing cache: { yarn: true, bundler: true}. and when you have to figure it out yourself, you can get it wrong, which when you are working on many projects at once means you have a bunch of places to fix. the amazingness of third-party action “marketplace” means you have to figure out the right action to use (the third-party ruby/setup-ruby instead of the vendor’s actions/setup-ruby), and again if you change your mind about that you have a bunch of projects to update. anyway, it is what it is — and i’m grateful to have such a powerful and in fact relatively easy to use service available for free! i could not really live without ci anymore, and won’t have to! oh, and github actions is giving me way more (free) simultaneous parallel workers than travis ever did, for my many-job builds! jrochkind general comments november , january , posts navigation older posts bibliographic wilderness is a blog by jonathan rochkind about digital library services, ruby, and web development. contact search for: email subscription enter your email address to subscribe to this blog and receive notifications of new posts by email. join other followers email address: subscribe recent posts code that lasts: sustainable and usable open source code march , product management february , rails auto-scaling on heroku january , managed solr saas options january , gem authors, check your release sizes january , archives archives select month march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) april  ( ) march  ( ) december  ( ) october  ( ) september  ( ) august  ( ) june  ( ) april  ( ) march  ( ) february  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) september  ( ) august  ( ) june  ( ) may  ( ) march  ( ) february  ( ) january  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) september  ( ) august  ( ) june  ( ) may  ( ) april  ( ) march  ( ) feeds  rss - posts  rss - comments recent comments jrochkind on rails auto-scaling on heroku adam (rails autoscale) on rails auto-scaling on heroku on catalogers, programmers, and user tasks – gavia libraria on broad categories from class numbers replacing marc – gavia libraria on linked data caution jrochkind on deep dive: moving ruby projects from travis to github actions for ci jrochkind on deep dive: moving ruby projects from travis to github actions for ci jrochkind on deep dive: moving ruby projects from travis to github actions for ci eregontp on deep dive: moving ruby projects from travis to github actions for ci top posts bootstrap to : changes in how font size, line-height, and spacing is done. or "what happened to $line-height-computed." some notes on what's going on in activestorage yes, product owner and technical lead need to be different people deep dive: moving ruby projects from travis to github actions for ci are you talking to heroku redis in cleartext or ssl? top clicks w schools.com/tags/ref_ur… uppy.io github.com/nahi/httpclien… google.com/fonts/specimen… news.ycombinator.com/item… a blog by jonathan rochkind. all original content licensed cc-by. create a website or blog at wordpress.com email (required) name (required) website   loading comments... comment × privacy & cookies: this site uses cookies. by continuing to use this website, you agree to their use. to find out more, including how to control cookies, see here: cookie policy enabling the future of academic research with the twitter api developer blog back developer blog tips community tools spotlight sign up ‎english (us)‎ ‎日本語‎ ‎english (us)‎ ‎日本語‎ sign up tools enabling the future of academic research with the twitter api by adam tornes and leanne trujillo tuesday, january link copied successfully when we introduced the next generation of the twitter api in july , we also shared our plans to invest in the success of the academic research community with tailored solutions that better serve their goals. today, we’re excited to launch the academic research product track on the new twitter api.  why we’re launching this & how we got here since the twitter api was first introduced in , academic researchers have used data from the public conversation to study topics as diverse as the conversation on twitter itself - from state-backed efforts to disrupt the public conversation to floods and climate change, from attitudes and perceptions about covid- to efforts to promote healthy conversation online. today, academic researchers are one of the largest groups of people using the twitter api.  our developer platform hasn’t always made it easy for researchers to access the data they need, and many have had to rely on their own resourcefulness to find the right information. despite this, for over a decade, academic researchers have used twitter data for discoveries and innovations that help make the world a better place. over the past couple of years, we’ve taken iterative steps to improve the experience for researchers, like when we launched a webpage dedicated to academic research, and updated our twitter developer policy to make it easier to validate or reproduce others’ research using twitter data. we’ve also made improvements to help academic researchers use twitter data to advance their disciplines, answer urgent questions during crises, and even help us improve twitter. for example, in april , we released the covid- stream endpoint - the first free, topic-based stream built solely for researchers to use data from the global conversation for the public good. researchers from around the world continue to use this endpoint for a number of projects. over two years ago, we started our own extensive research to better understand the needs, constraints and challenges that researchers have when studying the public conversation. in october , we tested this product track in a private beta program where we gathered additional feedback. this gave us a glimpse into some of the important work that the free academic research product track we’re launching today can now enable. “the academic research product track gives researchers a window into understanding the use of twitter and social media at large, and is an important step by twitter to support the scientific community.” - dr. sarah shugars, assistant professor at new york university “twitter's enhancements for academic research have the potential to eliminate many of the bottlenecks that scholars confront in working with twitter's api, and allow us to better evaluate the impact and origin of trends we discover.” - dr. david lazer, professor at northeastern university what’s launching today with the new academic research product track, qualified researchers will have access to all v endpoints released to date, as well as: free access to the full history of public conversation via the full-archive search endpoint, which was previously limited to paid premium or enterprise customers higher levels of access to the twitter developer platform for free, including a significantly higher monthly tweet volume cap of million ( x higher than what’s available on the standard product track today) more precise filtering capabilities across all v endpoints to limit data collection to what is relevant for your study and minimize data cleaning requirements new technical and methodological guides to maximize the success of your studies the release of the academic research product track is just a starting point. this initial solution is intended to address the most requested, biggest challenges faced when conducting research on the platform. we are excited to enable even more research that can create a positive impact on the world, and on twitter, in the future.    for more in-depth details about what’s available, see our post on the twitter community forum. where do i start? to use this track, new and existing twitter developers will need to apply for access with the academic research application. this tweet is unavailable this tweet is unavailable. an improved developer portal experience guides you to the product track that best fits your needs. we require this additional application step to help protect the security and privacy of people who use twitter and our developer platform. each application will go through a manual review process to determine whether the described use cases for accessing our academic research product track adhere to our developer policy, and that applicants meet these three requirements: you are either a master’s student, doctoral candidate, post-doc, faculty, or research-focused employee at an academic institution or university. you have a clearly defined research objective, and you have specific plans for how you intend to use, analyze, and share twitter data from your research. learn more about the application. you will use this product track for non-commercial purposes. learn about non-commercial use. we understand that these requirements are not representative of everyone doing academic research with twitter data (for example, if you are an undergraduate, independent researcher, or a non-profit). our future goal is to serve the complete range of research use cases for public twitter data. in the meantime, anyone can apply to start with our v endpoints on the standard product track. this tweet is unavailable this tweet is unavailable. the new application for the academic research track asks specific questions related to your academic profile and research project details. learn more about the application here. what’s next for the twitter api v ? today’s launch marks the beginning of how we plan to support this community with unprecedented access to data that can advance research objectives for nearly any discipline. while we recognize what we’re launching today may not address all needs of the community, this is a starting point and we are committed to continued support for academic researchers in the future. we’ll continue to listen and learn from you all, and welcome your feedback on how we can continue to improve and best serve your needs. as we’ve seen over the last years, the research topics that can be studied with twitter data are vast, and the future possibilities are endless. we hope you are as excited as we are about the possibilities this new product track creates for your research. in coming months, we will introduce a specialized business product track, as well as additional levels of access within our academic research, standard, and business product tracks. we are also exploring more flexible access terms, support for additional projects with unique use cases within your product track, and other improvements intended to help researchers and developers to get started, grow, and scale their projects all within the same api. to follow our planned releases, check out the product roadmap. eventually, the new twitter api will fully replace the v . standard, premium, and enterprise apis. though before that can happen, we have a lot more to build, which is why we are referring to today’s launch as early access. early access gives you a chance to get started and get ahead on using our new, v endpoints. learn more about how we plan to roll out the new twitter api here. have questions or want to connect with other researchers using the twitter api? check out our academic research community forum. have ideas about how we can improve the new twitter api? upvote ideas or add your own in the v api feedback channel. this tweet is unavailable this tweet is unavailable. adam tornes ‎@atornes‎ staff product manager, developer & enterprise solutions leanne trujillo ‎@leanne_tru‎ sr. program manager, developer & enterprise solutions only on twitter #twitterapi #academicresearch tweet twitter logo icon tags: api academicresearch link copied successfully more from tools prototyping in production for rapid user feedback by daniele bernardi on thursday, december introducing a new and improved twitter api by ian cairns and priyanka shetty on thursday, july a year with twitter developer labs: what we've learned and changed by kyle weiss on thursday, july enabling study of the public conversation in a time of crisis by adam tornes on wednesday, april see what's happening ‎@twitter‎ twitter platform twitter.com status card validator privacy center transparency center twitter, inc. about the company twitter for good company news brand toolkit jobs and internships investors help help center using twitter twitter media ads help center managing your account safety and security rules and policies contact us developer resources developer home documentation forums communities developer blog engineering blog developer terms business resources advertise twitter for business resources and guides twitter for marketers marketing insights brand inspiration twitter data twitter flight school ‎© twitter, inc.‎ cookies privacy terms and conditions by using twitter’s services you agree to our cookies use. we use cookies for purposes including analytics, personalisation, and ads. ok code for pakistan - civic innovation in pakistan login | register username or email address password lost your password? home about us programs civic innovation labs civic hackathons civic hackathon sdg hackathon pakistan @ innovation hackathon previous hackathons fellowship batch : kp fellowship batch : kp fellowship batch : kp fellowship batch : kp fellowship batch : kp fellowship batch : kp fellowship women and tech events civic apps annual reports impact report blog contact careers code for pakistan our goal is to bring together civic-minded software developers to use technology to innovate in public services, by creating open source solutions to address the needs of citizens. this is an opportunity for citizens and the private sector to give back to pakistan by engendering civic innovation. read more cfp founder sheba najmi at # disrupt play video sheba najmi shared her thoughts on how companies design products and user experiences today, and why it is essential for us to develop a more human approach when it comes to both. civic innovation labs cfp runs civic innovation labs in major cities. learn more about joining or starting a lab. civic hackathons civic hackathons are events that spark civic engagement by bringing designers, developers, and community organizers together to prototype solutions to civic problems. upcoming events there is always something interesting going on at cfp. join our events. cfp is part of a global movement. watch this video message from code for america. what we've done so far github repositories civic hackathons civic innovation labs fellows graduated why it matters civic innovation starts to reframe the relationship between local government and citizens, which is essential if the two are to live together smartly. toward a progressive pakistan! collaborative model through the creation of open source technology to address civic needs, we aim to transform civic life by increasing civic engagement, encouraging the opening of government data, and supporting innovation in the public domain. our labs meet regularly to collaborate with local stakeholders (including government, partner non-profit organizations, and media organizations) on projects that focus on how to use st century web and data tools to improve civic interfaces. learn more about our programs latest from our blog april , applications open: kp government innovation fellowship program ( th cycle) read more january , job opening: country director read more january , civic hackathon concludes read more if you are interested in learning more about code for pakistan, contact us! we would love to hear from you. join our discord community . license cc by-sa . dshr's blog: nfts and web archiving dshr's blog i'm david rosenthal, and this is a place to discuss the work i'm doing in digital preservation. thursday, april , nfts and web archiving one of the earliest observations of the behavior of the web at scale was "link rot". there were a lot of s, broken links. research showed that the half-life of web pages was alarmingly short. even in this problem was obvious enough for brewster kahle to found the internet archive to address it. from the wikipedia entry for link rot: a study found that on the web, about one link out of every broke each week,[ ] suggesting a half-life of weeks. this rate was largely confirmed by a – study of links in yahoo! directory (which had stopped updating in after years of development) that found the half-life of the directory's links to be two years.[ ] one might have thought that academic journals were a relatively stable part of the web, but research showed that their references decayed too, just somewhat less rapidly. a study found a half-life of . years. see my post the evanescent web. i expect you have noticed the latest outbreak of blockchain-enabled insanity, non-fungible tokens (nfts). someone "paying $ m for a jpeg" or $ k for a new york times column attracted a lot of attention. follow me below the fold for the connection between nfts, "link rot" and web archiving. kahle's idea for addressing "link rot", which became the wayback machine, was to make a copy of the content at some url, say: http://www.example.com/page.html keep the copy for posterity, and re-publish it at a url like: https://web.archive.org/web/ /http://www.example.com/page.html what is the difference between the two urls? the original is controlled by example.com, inc.; they can change or delete it on a whim. the copy is controlled by the internet archive, whose mission is to preserve it unchanged "for ever". the original is subject to "link rot", the second is, one hopes, not subject to "link rot". the wayback machine's urls have three components: https://web.archive.org/web/ locates the archival copy at the internet archive. indicates that the copy was made on th june, at : : . http://www.example.com/page.html is the url from which the copy was made. the fact that the archival copy is at a different url from the original causes a set of problems that have bedevilled web archiving. one is that, if the original goes away, all the links that pointed to it break, even though there may be an archival copy to which they could point to fulfill the intent of the link creator. another is that, if the content at the original url changes, the link will continue to resolve but the content it returns may no longer reflect the intent of the link creator, although there may be an archival copy that does. even in the early days of the web it was evident that web pages changed and vanished at an alarming rate. the point is that the meaning of a generic web url is "whatever content, or lack of content, you find at this location". that is why url stands for universal resource locator. note the difference with uri, which stands for universal resource identifier. anyone can create a url or uri linking to whatever content they choose, but doing so provides no rights in or control over the linked-to content. in people's expensive nfts keep vanishing. this is why, ben munster reports that: over the past few months, numerous individuals have complained about their nfts going “missing,” “disappearing,” or becoming otherwise unavailable on social media. this despite the oft-repeated nft sales pitch: that nft artworks are logged immutably, and irreversibly, onto the ethereum blockchain. so ntfs have the same problem that web pages do. isn't the blockchain supposed to make things immortal and immutable? kyle orland's ars technica’s non-fungible guide to nfts provides an over-simplified explanation: when nft’s are used to represent digital files (like gifs or videos), however, those files usually aren’t stored directly “on-chain” in the token itself. doing so for any decently sized file could get prohibitively expensive, given the cost of replicating those files across every user on the chain. instead, most nfts store the actual content as a simple uri string in their metadata, pointing to an internet address where the digital thing actually resides. nfts are just links to the content they represent, not the content itself. the bitcoin blockchain actually does contain some images, such as this ascii portrait of len sassaman and some pornographic images. but the blocks of the bitcoin blockchain were originally limited to mb and are now effectively limited to around mb, enough space for small image files. what’s the maximum ethereum block size? explains: instead of a fixed limit, ethereum block size is bound by how many units of gas can be spent per block. this limit is known as the block gas limit ... at the time of writing this, miners are currently accepting blocks with an average block gas limit of around , , gas. currently, the average ethereum block size is anywhere between to kb in size. that's a little out-of-date. currently the block gas limit is around . m gas per block and the average block is about kb. nowhere near enough space for a $ m jpeg. the nft for an artwork can only be a link. most nfts are erc- tokens, providing the optional metadata extension: /// @title erc- non-fungible token standard, optional metadata extension /// @dev see https://eips.ethereum.org/eips/eip- /// note: the erc- identifier for this interface is x b e f. interface erc metadata /* is erc */ { /// @notice a descriptive name for a collection of nfts in this contract function name() external view returns (string _name); /// @notice an abbreviated name for nfts in this contract function symbol() external view returns (string _symbol); /// @notice a distinct uniform resource identifier (uri) for a given asset. /// @dev throws if `_tokenid` is not a valid nft. uris are defined in rfc /// . the uri may point to a json file that conforms to the "erc /// metadata json schema". function tokenuri(uint _tokenid) external view returns (string); } the metadata json schema specifies an object with three string properties: name: "identifies the asset to which this nft represents" description: "describes the asset to which this nft represents" image: "a uri pointing to a resource with mime type image/* representing the asset to which this nft represents. consider making any images at a width between and pixels and aspect ratio between . : and : inclusive." note that the json metadata is not in the ethereum blockchain, it is only pointed to by the token on the chain. if the art-work is the "image", it is two links away from the blockchain. so, given the evanescent nature of web links, the standard provides no guarantee that the metadata exists, or is unchanged from when the token was created. even if it is, the standard provides no guarantee that the art-work exists or is unchanged from when the token is created. caveat emptor — absent unspecified actions, the purchaser of an nft is buying a supposedly immutable, non-fungible object that points to a uri pointing to another uri. in practice both are typically urls. the token provides no assurance that either of these links resolves to content, or that the content they resolve to at any later time is what the purchaser believed at the time of purchase. there is no guarantee that the creator of the nft had any copyright in, or other rights to, the content to which either of the links resolves at any particular time. there are thus two issues to be resolved about the content of each of the nft's links: does it exist? i.e. does it resolve to any content? is it valid? i.e. is the content to which it resolves unchanged from the time of purchase? these are the same questions posed by the holy grail of web archiving, persistent urls. assuming existence for now, how can validity be assured? there have been a number of systems that address this problem by switching from naming files by their location, as urls do, to naming files by their content by using the hash of the content as its name. the idea was the basis for bram cohen's highly successful bittorrent — it doesn't matter where the data comes from provided its integrity is assured because the hash in the name matches the hash of the content. the content-addressable file system most used for nfts is the interplanetary file system (ipfs). from its wikipedia page: as opposed to a centrally located server, ipfs is built around a decentralized system[ ] of user-operators who hold a portion of the overall data, creating a resilient system of file storage and sharing. any user in the network can serve a file by its content address, and other peers in the network can find and request that content from any node who has it using a distributed hash table (dht). in contrast to bittorrent, ipfs aims to create a single global network. this means that if alice and bob publish a block of data with the same hash, the peers downloading the content from alice will exchange data with the ones downloading it from bob.[ ] ipfs aims to replace protocols used for static webpage delivery by using gateways which are accessible with http.[ ] users may choose not to install an ipfs client on their device and instead use a public gateway. if the purchaser gets both the nft's metadata and the content to which it refers via ipfs uris, they can be assured that the data is valid. what do these ipfs uris look like? the (excellent) ipfs documentation explains: https://ipfs.io/ipfs/ # e.g https://ipfs.io/ipfs/qme ss arvgxv rxqvpiikmj u nlgmgszg pyrdkeoiu browsers that support ipfs can redirect these requests to your local ipfs node, while those that don't can fetch the resource from the ipfs.io gateway. you can swap out ipfs.io for your own http-to-ipfs gateway, but you are then obliged to keep that gateway running forever. if your gateway goes down, users with ipfs aware tools will still be able to fetch the content from the ipfs network as long as any node still hosts it, but for those without, the link will be broken. don't do that. note the assumption here that the ipfs.io gateway will be running forever. note also that only some browsers are capable of accessing ipfs content without using a gateway. thus the ipfs.io gateway is a single point of failure, although the failure is not complete. in practice nfts using ipfs uris are dependent upon the continued existence of protocol labs, the organization behind ipfs. the ipfs.io uris in the nft metadata are actually urls; they don't point to ipfs, but to a web server that accesses ipfs. pointing to the nft's metadata and content using ipfs uris assures their validity but does it assure their existence? the ipfs documentation's section persistence, permanence, and pinning explains: nodes on the ipfs network can automatically cache resources they download, and keep those resources available for other nodes. this system depends on nodes being willing and able to cache and share resources with the network. storage is finite, so nodes need to clear out some of their previously cached resources to make room for new resources. this process is called garbage collection. to ensure that data persists on ipfs, and is not deleted during garbage collection, data can be pinned to one or more ipfs nodes. pinning gives you control over disk space and data retention. as such, you should use that control to pin any content you wish to keep on ipfs indefinitely. to assure the existence of the nft's metadata and content they must both be not just written to ipfs but also pinned to at least one ipfs node. to ensure that your important data is retained, you may want to use a pinning service. these services run lots of ipfs nodes and allow users to pin data on those nodes for a fee. some services offer free storage-allowance for new users. pinning services are handy when: you don't have a lot of disk space, but you want to ensure your data sticks around. your computer is a laptop, phone, or tablet that will have intermittent connectivity to the network. still, you want to be able to access your data on ipfs from anywhere at any time, even when the device you added it from is offline. you want a backup that ensures your data is always available from another computer on the network if you accidentally delete or garbage-collect your data on your own computer. thus to assure the existence of the nft's metadata and content pinning must be rented from a pinning service, another single point of failure. in summary, it is possible to take enough precautions and pay enough ongoing fees to be reasonably assured that your $ m nft and its metadata and the jpeg it refers to will remain accessible. whether in practice these precautions are taken is definitely not always the case. david gerard reports: but functionally, ipfs works the same way as bittorrent with magnet links — if nobody bothers seeding your file, there’s no file there. nifty gateway turn out not to bother to seed literally the files they sold, a few weeks later. [twitter; twitter] anil dash claims to have invented, with kevin mccoy, the concept of nfts referencing web urls in . he writes in his must-read nfts weren’t supposed to end like this: seven years later, all of today’s popular nft platforms still use the same shortcut. this means that when someone buys an nft, they’re not buying the actual digital artwork; they’re buying a link to it. and worse, they’re buying a link that, in many cases, lives on the website of a new start-up that’s likely to fail within a few years. decades from now, how will anyone verify whether the linked artwork is the original? all common nft platforms today share some of these weaknesses. they still depend on one company staying in business to verify your art. they still depend on the old-fashioned pre-blockchain internet, where an artwork would suddenly vanish if someone forgot to renew a domain name. “right now nfts are built on an absolute house of cards constructed by the people selling them,” the software engineer jonty wareing recently wrote on twitter. my only disagreement with dash is that, as someone who worked on archiving the "old-fashioned pre-blockchain internet" for two decades, i don't believe that there is a new-fangled post-blockchain internet that makes the problems go away. and neither does david gerard: the pictures for nfts are often stored on the interplanetary file system, or ipfs. blockchain promoters talk like ipfs is some sort of bulletproof cloud storage that works by magic and unicorns. posted by david. at : am labels: bitcoin, distributed web, web archiving comments: david. said... kal rustiala & christopher jon sprigman's the one redeeming quality of nfts might not even exist explains: "once you understand what the nft is and how it actually works, you can see that it does nothing to permit the buyer, as the new yorker put it, to own a “digital beanie baby” with only one existing copy. in fact, the nft may make the authenticity question even more difficult to resolve." they quote david hockney agreeing with david gerard: "on an art podcast, hockney recently said, “what is it that they’re owning? i don’t really know.” nfts, hockney said, are the domain of “international crooks and swindlers.” hockney may have a point. if you look at them closely, nfts do almost nothing to guarantee authenticity. in fact, for reasons we’ll explain, nfts may actually make the problem of authenticity in digital art worse." april , at : pm david. said... who could have predicted counterfeit nfts? tim schneider's the gray market: how a brazen hack of that $ million beeple revealed the true vulnerability of the nft market (and other insights) reports that: "in the opening days of april, an artist operating under the pseudonym monsieur personne (“mr. nobody”) tried to short-circuit the nft hype machine by unleashing “sleepminting,” a process that complicates, if not corrodes, one of the value propositions underlying non-fungible tokens. ... sleepminting enables him to mint nfts for, and to, the crypto wallets of other artists, then transfer ownership back to himself without their consent or knowing participation. nevertheless, each of these transactions appears as legitimate on the blockchain record as if the unwitting artist had initiated them on their own, opening up the prospect of sophisticated fraud on a mass scale." and it is arguably legal because nfts are just a (pair of) links: "personne told me that, after being “thoroughly consulted and advised by personal lawyers and specialist law firms,” he is confident there are “little to no legal repercussions for sleepminting.” his argument is that erc smart contracts only contain a link pointing to a json (javascript object notation) file, which in turn points to a “publicly available and hosted digital asset file”—here, beeple’s everydays image." april , at : pm post a comment newer post older post home subscribe to: post comments (atom) blog rules posts and comments are copyright of their respective authors who, by posting or commenting, license their work under a creative commons attribution-share alike . united states license. off-topic or unsuitable comments will be deleted. dshr dshr in anwr recent comments full comments blog archive ▼  ( ) ▼  april ( ) dogecoin disrupts bitcoin! what is the point? nfts and web archiving cryptocurrency's carbon footprint elon musk: threat or menace? ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) lockss system has permission to collect, preserve, and serve this archival unit. simple theme. powered by blogger. none none blog.cbeer.info blog.cbeer.info autoscaling aws elastic beanstalk worker tier based on sqs queue length ldpath in examples building a pivotal tracker irc bot with sinatra and cinch real-time statistics with graphite, statsd, and gdash icemelt: a stand-in for integration tests against aws glacier jodischneider.com/blog jodischneider.com/blog reading, technology, stray thoughts paid graduate hourly research position at uiuc for spring jodi schneider&# ;s information quality lab (http://infoqualitylab.org) seeks a graduate hourly student for a research project on bias in citation networks. biased citation benefits authors in the short-term by bolstering grants and papers, making them more easily accepted. however, it can have severe negative consequences for scientific inquiry. our goal is to find quantitative measures of [&# ;] avoiding long-haul air travel during the covid- pandemic i would not recommend long-haul air travel at this time. an epidemiological study of a . hour flight from the middle east to ireland concluded that groups ( people), traveling from continents in four groups, who used separate airport lounges, were likely infected in flight. the flight had % occupancy ( passengers/ seats; [&# ;] paid undergraduate research position at uiuc for fall & spring university of illinois undergraduates are encouraged to apply for a position in my lab. i particularly welcome applications from students in the new ischool bs/is degree or in the university-wide informatics minor. while i only have paid position open, i also supervise unpaid independent study projects. dr.&# ;jodi&# ;schneider and the information quality lab &# ;https://infoqualitylab.org&# ; seek [&# ;] #shutdownstem #strike blacklives #shutdownacademia i greatly appreciated receiving messages from senior people about their participation in the june th #shutdownstem #strike blacklives #shutdownacademia. in that spirit, i am sharing my email bounce message for tomorrow, and the message i sent to my research lab. email bounce: i am not available by email today:&# ;this june th is a day of action [&# ;] qotd: storytelling in protest and politics i recently read francesca polletta&# ;s book it was like a fever: storytelling in protest and politics ( , university of chicago press). i recommend it! it will appeal to researchers interested in topics such as&# ;narrative, strategic communication, (narrative) argumentation, or&# ;epistemology (here, of narrative). parts may also interest activists. the book&# ;s case studies are drawn from the [&# ;] knowledge graphs: an aggregation of definitions i am not aware of a consensus definition of knowledge graph. i&# ;ve been discussing this for awhile with liliana giusti serra, and the topic came up again with my fellow organizers of the knowledge graph session at us ts as we prepare for a panel. i&# ;ve proposed the following main features: rdf-compatible, has a defined schema (usually an [&# ;] qotd: doing more requires thinking less by the aid of symbolism, we can make transitions in reasoning almost mechanically by the eye which would otherwise call into play the higher faculties of the brain. &# ;civilization advances by extending the number of important operations that we can perform without thinking about them. operations of thought are like cavalry charges in a battle [&# ;] qotd: sally jackson on how disagreement makes arguments more explicit sally jackson explicates the notion of the &# ;disagreement space&# ; in a new topoi article: &# ;a position that remains in doubt remains in need of defense&# ; &# ; &# ;the most important theoretical consequence of seeing argumentation as a system for management of disagreement is a reversal of perspective on what arguments accomplish. are arguments the means by [&# ;] qotd: working out scientific insights on paper, lavoisier case study &# ;language does do much of our thinking for us, even in the sciences, and rather than being an unfortunate contamination, its influence has been productive historically, helping individual thinkers generate concepts and theories that can then be put to the test. the case made here for the constitutive power of figures [of speech] per se [&# ;] david liebovitz: achieving care transformation by infusing electronic health records with wisdom today i am at the health data analytics summit. the title of the keynote talk is achieving care transformation by infusing electronic health records with wisdom. it&# ;s a delight to hear from a medical informaticist: david m. liebovitz (publications in google scholar), md, facp, chief medical information officer, the university of chicago. he graduated from [&# ;] gênero e número close coordenadas políticas especial covid- histórias edições e coberturas especiais projetos e cartografias open box da ciência mapa da violência de gênero reino sagrado da desinformação volência contra lgbts mulheres no jornalismo brasileiro o trabalho e a vida das mulheres na pandemia vídeos entrevistas dados abertos diálogos gn republique sobre conselho consultivo faqs assine gn hub mais de mulheres foram vítimas de violência por dia durante a pandemia no rio de janeiro em coordenadas políticas violência trabalho | polÍtica | direitos reprodutivos | cultura | ciÊncia e educaÇÃo | violÊncia | esporte | mobilidade | latinoamÉrica | justiÇa em livro, alessandra devulsky revela como o colorismo atua como um braço do racismo para hierarquizar e segregar pessoas negras coordenadas políticas cultura “falsa praticidade” mantém ultraprocessados na casa dos brasileiros enquanto mortes por doenças relacionadas só aumentam coordenadas políticas saúde amazonas concentra mortes de indígenas no brasil, mas menos da metade foram vacinados coordenadas políticas saúde depoimento: “pensava estar numa guerra”, conta enfermeira intensivista em manaus histórias saúde pandemia prejudica pré-natal e mães de manaus relatam medo durante colapso sem categoria depoimento: “minha empresa de apoio a parto domiciliar cresceu na pandemia”, afirma enfermeira em manaus histórias saúde domésticas envelhecem e desemprego e precarização aumentam entre mulheres jovens coordenadas políticas trabalho por uma retomada econômica com equidade e diversidade no ambiente de trabalho coordenadas políticas supermercados têm ano dourado durante a pandemia em meio à insegurança alimentar e incertezas para trabalhadoras saúde segunda categoria mais beneficiada pelo auxílio emergencial, trabalho doméstico perde , milhão de postos de trabalho trabalho para a biomédica mellanie dutra, o protagonismo feminino na ciência reafirma a importância das mulheres nesse espaço e inspira as próximas gerações ciência e educação / coordenadas políticas / entrevistas cirurgias do processo transexualizador caem % em e denúncias de “esvaziamento” na saúde revelam risco para população trans coordenadas políticas / saúde assassinato de pessoas trans cresce % em dez anos sem políticas públicas eficazes de proteção coordenadas políticas / violência pouco dinheiro gasto por ministério de damares em impacta mulheres e lgbt+ e gera temor sobre futuro da pasta coordenadas políticas / covid- em livro, bruna pereira analisa violências (sexuais e afetivas) invisíveis contra mulheres negras coordenadas políticas argentina aprova legalização do aborto direitos reprodutivos : o ano da pandemia e seu impacto nas mulheres, pessoas negras e lgbt+ edições e coberturas especiais maioria de prefeitos de capitais ignora mulheres, negros ou lgbt+ em seus planos de governo coordenadas políticas política ações pouco efetivas das empresas desestimulam denúncias de assédio moral e sexual, revela pesquisa coordenadas políticas / trabalho / violência na primeira eleição municipal após assassinato de marielle, mulheres negras eleitas são alvos de discurso de ódio e ameaças coordenadas políticas / política em recife e porto alegre, resultados das eleições espelham força de oligarquias e violência política contra mulheres coordenadas políticas / política no segundo turno, nenhuma capital elegeu uma mulher para a prefeitura coordenadas políticas "o negro é um cidadão invisível. quando ele aparece, a violência aparece também" coordenadas políticas / política em % das cidades brasileiras, nenhuma mulher negra ocupará a câmara municipal em coordenadas políticas / política trabalho | polÍtica | direitos reprodutivos | cultura | ciÊncia e educaÇÃo | violÊncia | esporte | mobilidade | latinoamÉrica | justiÇa em recife e porto alegre, resultados das eleições espelham força de oligarquias e violência política contra mulheres coordenadas políticas política na capital pernambucana, circularam panfletos com acusações falsas de cunho religioso contra marília arraes; na capital gaúcha, manuela d'Ávila foi alvo de mais de mil compartilhamentos de conteúdos falsos no segundo turno, nenhuma capital elegeu uma mulher para a prefeitura coordenadas políticas das cidades onde havia mulher concorrendo, só sete terão prefeitas a partir de ; em palmas (to), cinthia ribeiro venceu disputa para o executivo municipal no primeiro turno “o negro é um cidadão invisível. quando ele aparece, a violência aparece também” coordenadas políticas política professor emérito da ufrj e escritor, muniz sodré diz que o racismo brasileiro é de duplo vínculo e que vivemos uma forma social escravista, que se constitui na rejeição e em % das cidades brasileiras, nenhuma mulher negra ocupará a câmara municipal em coordenadas políticas política mulheres negras foram eleitas pela primeira vez em pelo menos capitais, mas são apenas % do total de vereadores, segundo análise da gênero e número com dados do tse. negros serão % dos vereadores nas capitais brasileiras em coordenadas políticas sul registra menor proporção de negros nas câmaras municipais; mulheres são % do total de vereadores nas capitais apenas capitais têm chances reais de ter mulheres na prefeitura, de acordo com pesquisas coordenadas políticas nas últimas décadas, apenas oito mulheres foram eleitas para o cargo em capitais; ano com maior número foi , com prefeitaspor lola ferreira*no próximo domingo, vamos às urnas eleger trabalho | polÍtica | direitos reprodutivos | cultura | ciÊncia e educaÇÃo | violÊncia | esporte | mobilidade | latinoamÉrica | justiÇa edição – direitos reprodutivos direitos reprodutivos edições e coberturas especiais edição – mulheres na ciência ciência e educação edições e coberturas especiais edição – educação básica ciência e educação edições e coberturas especiais edição – música cultura edições e coberturas especiais edição – mulheres encarceradas edições e coberturas especiais justiça edição – especial trabalho edições e coberturas especiais trabalho edição – especial espaço público edições e coberturas especiais mobilidade edição – violência anunciada edições e coberturas especiais violência edição – mulheres na política ii edições e coberturas especiais política edição – mulheres na política edições e coberturas especiais política edição – gênero no esporte edições e coberturas especiais esporte primeira organização de mídia no brasil orientada por dados para qualificar o debate sobre equidade de gênero. o que fazemos nossas Áreas equipe gn hub fale conosco contato@generonumero.media assine insira seu e-mail e saiba mais este campo deve ser deixado em branco enviar aguarde... desenvolvido por beta design i haven’t failed, i’ve just tried a lot of ml approaches that don’t work – andromeda yelton skip to content andromeda yelton menu home about contact resume hamlet lita talks machine learning (ala midwinter ) boston python meetup (august , ) swib libtechconf code lib keynote texas library association online northwest : five conversations about code new jersey esummit (may , ) westchester library association (january , ) bridging the digital divide with mobile services (webjunction, july ) i haven’t failed, i’ve just tried a lot of ml approaches that don’t work andromeda uncategorized april , “let’s blog every friday,” i thought. “it’ll be great. people can see what i’m doing with ml, and it will be a useful practice for me!” and then i went through weeks on end of feeling like i had nothing to report because i was trying approach after approach to this one problem that simply didn’t work, hence not blogging. and finally realized: oh, the process is the thing to talk about… hi. i’m andromeda! i am trying to make a neural net better at recognizing people in archival photos. after running a series of experiments — enough for me to have written , words of notes — i now have a neural net that is ten times worse at its task. 🎉 and now i have , words of notes to turn into a blog post (a situation which gets harder every week). so let me catch you up on the outline of the problem: download a whole bunch of archival photos and their metadata (thanks, dpla!) use a face detection ml library to locate faces, crop them out, and save them in a standardized way benchmark an off-the-shelf face recognition system to see how good it is at identifying these faces retrain it benchmark my new system step : profit, right? well. let me also catch you up on some problems along the way: alas, metadata archival photos are great because they have metadata, and metadata is like labels, and labels mean you can do supervised learning, right? well…. is he “du bois, w. e. b. (william edward burghardt), - ” or “du bois, w. e. b. (william edward burghardt) - ” or “du bois, w. e. b. (william edward burghardt)” or “w.e.b. du bois”? i mean, these are all options. people have used a lot of different metadata practices at different institutions and in different times. but i’m going to confuse the poor computer if i imply to it that all these photos of the same person are photos of different people. (i have gone through several attempts to resolve this computationally without needing to do everything by hand, with only modest success.) what about “photographs”? that appears in the list of subject labels for lots of things in my data set. “photographs” is a person, right? i ended up pulling in an entire other ml component here — spacy, to do some natural language processing to at least guess which lines are probably names, so i can clear the rest of them out of my way. but spacy only has ~ % accuracy on personal names anyway and, guess what, because everything is terrible, in predictable ways, it has no idea “kweisi mfume” is a person. is a person who appears in the photo guaranteed to be a person who appears in the photo? nope. is a person who appears in the metadata guaranteed to be a person who appears in the photo? also nope! often they’re a photographer or other creator. sometimes they are the subject of the depicted event, but not themselves in the photo. (spacy will happily tell you that there’s personal name content in something like “martin luther king day”, but mlk is unlikely to appear in a photo of an mlk day event.) oh dear, linear algebra ok but let’s imagine for the sake of argument that we live in a perfect world where the metadata is exactly what we need — no more, no less — and its formatting is perfectly consistent. 🦄 here you are, in this perfect world, confronted with a photo that contains two people and has two names. how do you like them apples? i spent more time than i care to admit trying to figure this out. can i bootstrap from photos that have one person and one name — identify those, subtract them out of photos of two people, go from there? (not reliably — there’s a lot of data i never reach that way — and it’s horribly inefficient.) can i do something extremely clever with matrix multiplication? like…once i generate vector space embeddings of all the photos, can i do some sort of like dot-product thing across all of my photos, or big batches of them, and correlate the closest-match photos with overlaps in metadata? not only is this a process which begs the question — i’d have to do that with the ml system i have not yet optimized for archival photo recognition, thus possibly just baking bad data in — but have i mentioned i have taken exactly one linear algebra class, which i didn’t really grasp, in ? what if i train yet another ml system to do some kind of k-means clustering on the embeddings? this is both a promising approach and some really first-rate yak-shaving, combining all the question-begging concerns of the previous paragraph with all the crystalline clarity of black box ml. possibly at this point it would have been faster to tag them all by hand, but that would be admitting defeat. also i don’t have a research assistant, which, let’s be honest, is the person who would usually be doing this actual work. i do have a -year-old and i am strongly considering paying her to do it for me, but to facilitate that i’d have to actually build a web interface and probably learn more about aws, and the prospect of reading aws documentation has a bracing way of reminding me of all of the more delightful and engaging elements of my todo list, like calling some people on the actual telephone to sort out however they’ve screwed up some health insurance billing. nowhere to go but up despite all of that, i did actually get all the way through the steps above. i have a truly, spectacularly terrible neural net. go me! but at a thousand-plus words, perhaps i should leave that story for next week…. share this: twitter facebook like this: like loading... tagged fridai published by andromeda romantic analytical technologist librarian. view all posts by andromeda published april , post navigation previous post this time: speaking about machine learning leave a reply cancel reply enter your comment here... fill in your details below or click an icon to log in: email (required) (address never made public) name (required) website you are commenting using your wordpress.com account. ( log out /  change ) you are commenting using your google account. ( log out /  change ) you are commenting using your twitter account. ( log out /  change ) you are commenting using your facebook account. ( log out /  change ) cancel connecting to %s notify me of new comments via email. notify me of new posts via email. create a free website or blog at wordpress.com. privacy & cookies: this site uses cookies. by continuing to use this website, you agree to their use. to find out more, including how to control cookies, see here: cookie policy %d bloggers like this: ranti. centuries.org ranti. centuries.org eternally yours on centuries home articles hello! archives contact keeping the dream alive - freiheit written by ranti - - t : : z i did not recall when the first time i heard it, but i remembered it was introduced by my cousin. this song from münchener freiheit became one of the songs i listen a lot. the lyrics (see below) resonate stronger nowadays. keeping the dream alive (single version) cover by david groeneveld: cover by kim wilde: lyrics: freiheit - keeping the dream alive tonight the rain is falling full of memories of people and places and while the past is calling in my fantasy i remember their faces the hopes we had were much too high way out of reach but we had to try the game will never be over because we're keeping the dream alive i hear myself recalling things you said to me the night it all started and still the rain is falling makes me feel the way i felt when we parted the hopes we had were much too high way out of reach but we have to try no need to hide no need to run 'cause all the answers come one by one the game will never be over because we're keeping the dream alive i need you i love you the game will never be over because we're keeping the dream alive the hopes we had were much too high way out of reach but we had to try no need to hide no need to run 'cause all the answers come one by one the hopes we had were much too high way out of reach but we had to try no need to hide no need to run 'cause all the answers come one by one the game will never be over because we're keeping the dream alive the game will never be over because we're keeping the dream alive the game will never be over… edit lou reed's walk on the wild side written by ranti - - t : : z if my memory serves me right, i heard about this walk on the wild side song (wikipedia) sometime during my college year in the s. of course, the bass and guitar reef were the one that captured my attention right away. at that time, being an international student here in the us, i was totally oblivious with the lyrics and the references on it. when i finally understood what the lyrics are about, listening to the song makes more sense. here's the footage of the walk on the wild side song (youtube) but what prompted me to write this was started by the version that amanda palmer sang for neil gaiman. i was listening to her cd "several attempts to cover songs by the velvet underground & lou reed for neil gaiman as his birthday approaches" and one of the songs was walk on the wild side. i like her rendition of the songs, which prompted me to find it on youtube. welp, that platform does not disappoint; it's a quite a nice piano rendition. of course, like any other platform that wants you to stay there, youtube also listed various walk on the wild side cover songs. one of them is from alice phoebe lou a singer-songwriter. her rendition using a guitar is also quite enjoyable (youtube) and now i have a new singer-songwriter to keep an eye on. among other videos that were listed on youtube is the one that kinda blew my mind, walk on the wild side - the story behind the classic bass intro featuring herbie flowers which explained that those are two basses layered on top of each other. man, what a nice thing to learn something new about this song. :-) edit tao written by ranti - - t : : z read it from the lazy yogi edit on climate change written by ranti - - t : : z read the whole poem edit tv news archive from the internet archive written by ranti - - t : : z i just learned about the existence of the tv news archive (covering news from until the day before today's date) containing news shows from us tv such as pbs, cbs, abc, foxnews, cnn, etc. you can search by the captions. they also have several curated collections like news clips regarding nsa or snippets or tv around the world i think some of you might find this useful. quite a nice collection, imo. edit public domain day (january , ): what could have entered it in and what did get released written by ranti - - t : : z copyright law is messy, yo. we won't see a lot of notable and important works entering public domain here in the us until . other countries, however, got to enjoy many of them first. public domain reviews put a list of creators whose work are entering the public domain for canada, european union (eu), and many other countries (https://publicdomainreview.org/collections/class-of- /.) for those in eu, nice to see h.g. wells name there (if uk do withdraw, this might end up not applicable to them. but, my knowledge about uk copyright law is zero, so, who knows.) as usual, center of study for the public domain from duke university put a list of some quite well-known works that are still under the extended copyright restriction: http://web.law.duke.edu/cspd/publicdomainday/ /pre- . those works would have been entered the public domain if we use the law that was applicable when they were published. i'm still baffled how current copyright hinders research done and published in to be made available freely. greedy publishers… so, thanks to that, usa doesn't get to enjoy many published works yet. "yet" is the operative word here because we don't know what the incoming administration would do on this topic. considering the next potus is a businessman, i fear the worst. i know: gloomy first of the year thought, but it is what it is. on a cheerful side, check the list from john mark ockerbloom on his online books project. it's quite an amazing project he's been working on. of course, there are also writings made available from hathitrust and gutenberg project, among other things. here's to the next days. xoxo edit for written by ranti - - t : : z read the full poem edit light written by ranti - - t : : z “light thinks it travels faster than anything but it is wrong. no matter how fast light travels, it finds the darkness has always got there first, and is waiting for it.” ― terry pratchett, reaper man edit dot-dot-dot written by ranti - - t : : z more about bertolt brecht poem edit assistive technology written by ranti - - t : : z many people would probably think assistive technology (at) are computer software, applications, or tools that are designed to help blind or deaf people. typically, the first thing that one might have in mind was screen readers, braille display, screen magnifier app for desktop reading, or physical objects like hearing aid, wheel chair, or crutches, a lot of people probably won't think glasses as an at. perhaps because glasses can be highly personalized to fit one's fashion style. edit recent popular posts keeping the dream alive - freiheit - - t : : z for - - t : : z light - - t : : z assistive technology - - t : : z dot-dot-dot - - t : : z lou reed's walk on the wild side - - t : : z public domain day (january , ): what could have entered it in and what did get released - - t : : z persistent bat is persistent - - t : : z favourite excerpt for the time being - - t : : z © — site powered by strong coffee & pictures of happy puppies this work is licensed under a creative commons attribution-noncommercial-noderivatives . international license. subscribe login searching all contributors: ✨ recognize all contributors, not just the ones who push code ✨ docs github star recognize all contributors including those that don't push code install the bot add new contributors in seconds we’ve built a bot to automate the tedious stuff for adding project contributors, so you can focus on your project instead of managing your readme. read the documentation emoji key (contributions cheatsheet) how to use the bot submit an issue how it works . install the bot to your project check the installation doc for how to add it . start a pull request or comment . mention the @all-contributors bot . add a contributor’s username and contribution type check the contribution types in the emoji key cheatsheet . post and your readme updates automatically! it'll add the contributor table for your first time, too who's using it? there are + projects using all contributors! start adding contributors to your project today install the bot read the docs none acrl techconnect acrl techconnect broken links in the discovery layer—pt. ii: towards an ethnography of broken links this post continues where my last one left off, investigating broken links in our discovery layer. be forewarned—most of it will be a long, dry list of all the mundane horrors of librarianship. metadata mismatches, ezproxy errors, and openurl resolvers, oh my! what does it mean when we say a link is broken? the simplest &# ; continue reading "broken links in the discovery layer—pt. ii: towards an ethnography of broken links" broken links in the discovery layer—pt. i: researching a problem like many administrators of discovery layers, i&# ;m constantly baffled and frustrated when users can&# ;t access full text results from their searches. after implementing summon, we heard a few reports of problems and gradually our librarians started to stumble across them on their own. at first, we had no formal system for tracking these errors. eventually, &# ; continue reading "broken links in the discovery layer—pt. i: researching a problem" orcid for system interoperability in scholarly communication workflows what is orcid? if you work in an academic library or otherwise provide support for research and scholarly communication, you have probably heard of orcid (open contributor &# ; researcher identifier) in terms of “orcid id,” a unique -digit identifier that represents an individual in order to mitigate name ambiguity. the orcid id number is presented &# ; continue reading "orcid for system interoperability in scholarly communication workflows" creating presentations with beautiful.ai updated - - at : pm with accessibility information. beautiful.ai is a new website that enables users to create dynamic presentations quickly and easily with “smart templates” and other design optimized features. so far the service is free with a paid pro tier coming soon. i first heard about beautiful.ai in an advertisement on npr and was &# ; continue reading "creating presentations with beautiful.ai" national forum on web privacy and web analytics we had the fantastic experience of participating in the national forum on web privacy and web analytics in bozeman, montana last month. this event brought together around forty people from different areas and types of libraries to do in-depth discussion and planning about privacy issues in libraries. our hosts from montana state university, scott young, &# ; continue reading "national forum on web privacy and web analytics" the ex libris knowledge center and orangewashing two days after proquest completed their acquisition of ex libris in december , ex libris announced the launch of their new online customer knowledge center. in the press release for the knowledge center, the company describes it as “a single gateway to all ex libris knowledge resources,” including training materials, release notes, and product manuals. &# ; continue reading "the ex libris knowledge center and orangewashing" managing ils updates we&# ;ve done a few screencasts in the past here at techconnect and i wanted to make a new one to cover a topic that&# ;s come up this summer: managing ils updates. integrated library systems are huge, unwieldy pieces of software and it can be difficult to track what changes with each update: new settings are &# ; continue reading "managing ils updates" blockchain: merits, issues, and suggestions for compelling use cases blockchain holds a great potential for both innovation and disruption. the adoption of blockchain also poses certain risks, and those risks will need to be addressed and mitigated before blockchain becomes mainstream. a lot of people have heard of blockchain at this point. but many are unfamiliar with how this new technology exactly works and &# ; continue reading "blockchain: merits, issues, and suggestions for compelling use cases" introducing our new best friend, gdpr you&# ;ve seen the letters gdpr in every single email you&# ;ve gotten from a vendor or a mailing list lately, but you might not be exactly sure what it is. with gdpr enforcement starting on may , it&# ;s time for a crash course in what gdpr is, and why it could be your new best friend &# ; continue reading "introducing our new best friend, gdpr" names are hard a while ago i stumbled onto the post &# ;falsehoods programmers believe about names&# ; and was stunned. personal names are one of the most deceptively difficult forms of data to work with and this article touched on so many common but unaddressed problems. assumptions like &# ;people have exactly one canonical name&# ; and &# ;my system will never &# ; continue reading "names are hard" dshr's blog: the evanescent web dshr's blog i'm david rosenthal, and this is a place to discuss the work i'm doing in digital preservation. tuesday, february , the evanescent web papers drawing attention to the decay of links in academic papers have quite a history, i blogged about three relatively early ones six years ago. now martin klein and a team from the hiberlink project have taken the genre to a whole new level with a paper in plos one entitled scholarly context not found: one in five articles suffers from reference rot. their dataset is - orders of magnitude bigger than previous studies, their methods are far more sophisticated, and they study both link rot (links that no longer resolve) and content drift (links that now point to different content). there's a summary on the lse's blog. below the fold, some thoughts on the klein et al paper. as regards link rot, they write: in order to combat link rot, the digital object identifier (doi) was introduced to persistently identify journal articles. in addition, the doi resolver for the uri version of dois was introduced to ensure that web links pointing at these articles remain actionable, even when the articles change web location. but even when used correctly, such as http://dx.doi.org/ . /journal.pone. , dois introduce a single point of failure. this became obvious on january th when the doi.org domain name briefly expired. doi links all over the web failed, illustrating yet another fragility of the web. it hasn't been a good time for access to academic journals for other reasons either. among the publishers unable to deliver content to their customers in the last week or so were elsevier, springer, nature, highwire press and oxford art online. i've long been a fan of herbert van de sompel's work, especially memento. he's a co-author on the paper and we have been discussing it. unusually, we've been disagreeing. we completely agree on the underlying problem of the fragility of academic communication in the web era as opposed to its robustness in the paper era. indeed, in the introduction of another (but much less visible) recent paper entitled towards robust hyperlinks for web-based scholarly communication herbert and his co-authors echo the comparison between the paper and web worlds from the very first paper we published on the lockss system a decade and a half ago. nor am i critical of the research underlying the paper, which is clearly of high quality and which reveals interesting and disturbing properties of web-based academic communication. all i'm disagreeing with herbert about is the way the research is presented in the paper. my problem with the presentation is that this paper, which has a far higher profile than other recent publications in this area, and which comes at a time of unexpectedly high visibility for web archiving, seems to me to be excessively optimistic, and to fail to analyze the roots of the problem it is addressing. it thus fails to communicate the scale of the problem. the paper is, for very practical reasons of publication in a peer-reviewed journal, focused on links from academic papers to the web-at-large. but i see it as far too optimistic in its discussion of the likely survival of the papers themselves, and the other papers they link to (see content drift below). i also see it as far too optimistic in its discussion of proposals to fix the problem of web-at-large references that it describes (see dependence on authors below). all the proposals depend on actions being taken either before or during initial publication by either the author or the publisher. there is evidence in the paper itself (see getting links right below) that neither authors nor publishers can get dois right. attempts to get authors to deposit their papers in institutional repositories notoriously fail. the lockss team has met continual frustration in getting publishers to make small changes to their publishing platforms that would make preservation easier, or in some cases even possible. viable solutions to the problem cannot depend on humans to act correctly. neither authors nor publishers have anything to gain from preservation of their work. in addition, the paper fails to even mention the elephant in the room, the fact that both the papers and the web-at-large content are copyright. the archives upon which the proposed web-at-large solutions rest, such as the internet archive, are themselves fragile. not just for the normal economic and technical reasons we outlined nearly a decade ago, but because they operate under the dmca's "safe harbor" provision and thus must take down content upon request from a claimed copyright holder. the archives such as portico and lockss that preserve the articles themselves operate instead with permission from the publisher, and thus must impose access restrictions. this is the root of the problem. in the paper world in order to monetize their content the copyright owner had to maximize the number of copies of it. in the web world, in order to monetize their content the copyright owner has to minimize the number of copies. thus the fundamental economic motivation for web content militates against its preservation in the ways that herbert and i would like. none of this is to suggest that developing and deploying partial solutions is a waste of time. it is what i've been doing the last quarter of my life. there cannot be a single comprehensive technical solution. the best we can do is to combine a diversity of partial solutions. but we need to be clear that even if we combine everything anyone has worked on we are still a long way from solving the problem. now for some details. content drift as regards content drift, they write: content drift is hardly a matter of concern for references to journal articles, because of the inherent fixity that, especially pdf-formated, articles exhibit. nevertheless, special-purpose solutions for long-term digital archiving of the digital journal literature, such as lockss, clockss, and portico, have emerged to ensure that articles and the articles they reference can be revisited even if the portals that host them vanish from the web. more recently, the keepers registry has been introduced to keep track of the extent to which the digital journal literature is archived by what memory organizations. these combined efforts ensure that it is possible to revisit the scholarly context that consists of articles referenced by a certain article long after its publication. while i understand their need to limit the scope of their research to web-at-large resources, the last sentence is far too optimistic. first, research using the keepers registry and other resources shows that at most % of all articles are preserved. so future scholars depending on archives of digital journals will encounter large numbers of broken links. second, even the % of articles that are preserved may not be accessible to a future scholar. clockss is a dark archive and is not intended to provide access to future scholars unless the content is triggered. portico is a subscription archive, future scholars' institutions may not have a subscription. lockss provides access only to readers at institutions running a lockss box. these restrictions are a response to the copyright on the content and are not susceptible to technical fixes. third, the assumption that journal articles exhibit "inherent fixity" is, alas, outdated. both the html and pdf versions of articles from state-of-the-art publishing platforms contain dynamically generated elements, even when they are not entirely generated on-the-fly. the lockss system encounters this on a daily basis. as each lockss box collects content from the publisher independently, each box gets content that differs in unimportant respects. for example, the html content is probably personalized ("welcome stanford university") and updated ("links to this article"). pdf content is probably watermarked ("downloaded by . . . "). content elements such as these need to be filtered out of the comparisons between the "same" content at different lockss boxes. one might assume that the words, figures, etc. that form the real content of articles do not drift, but in practice it would be very difficult to validate this assumption. soft- responses i've written before about the problems caused for archiving by "soft- and soft- " responses by web servers. these result from web site designers who believe their only audience is humans, so instead of providing the correct response code when they refuse to supply content, they return a pretty page with a response code indicating valid content. the valid content is a refusal to supply the requested content. interestingly, pubmed is an example, as i discovered when clicking on the (broken) pubmed link in the paper's reference . klein et al define a live web page thus: on the one hand, the http transaction chain could end successfully with a xx-level http response code. in this case we declared the uri to be active on the live web. their estimate of the proportion of links which are still live is thus likely to be optimistic, as they are likely to have encountered at least soft- s if not soft- s. getting links right even when the dx.doi.org resolver is working, its effectiveness in persisting links depends on its actually being used. klein et al discover that in many cases it isn't: one would assume that uri references to journal articles can readily be recognized by detecting http uris that carry a doi, e.g., http://dx.doi.org/ . /s - - - . however, it turns out that references rather frequently have a direct link to an article in a publisher's portal, e.g. http://link.springer.com/article/ . % fs - - - , instead of the doi link. the direct link may well survive relocation of the content within the publisher's site. but journals are frequently bought and sold between publishers, causing the link to break. i believe there are two causes for these direct links, publisher's platforms inserting them so as not to risk losing the reader, but more importantly the difficulty for authors to create correct links. cutting and pasting from the url bar in their browser necessarily gets the direct link, creating the correct one via dx.doi.org requires the author to know that it should be hand-edited, and to remember to do it. attempts to ensure linked materials are preserved suffer from a similar problem: the solutions component of hiberlink also explores how to best reference archived snapshots. the common and obvious approach, followed by webcitation and perma.cc, is to replace the original uri of the referenced resource with the uri of the memento deposited in a web archive. this approach has several drawbacks. first, through removal of the original uri, it becomes impossible to revisit the originally referenced resource, for example, to determine what its content has become some time after referencing. doing so can be rather relevant, for example, for software or dynamic scientific wiki pages. second, the original uri is the key used to find mementos of the resource in all web archives, using both their search interface and the memento protocol. removing the original uri is akin to throwing away that key: it makes it impossible to find mementos in web archives other than the one in which the specific memento was deposited. this means that the success of the approach is fully dependent on the long term existence of that one archive. if it permanently ceases to exist, for example, as a result of legal or financial pressure, or if it becomes temporally inoperative as a result of technical failure, the link to the memento becomes rotten. even worse, because the original uri was removed from the equation, it is impossible to use other web archives as a fallback mechanism. as such, in the approach that is currently common, one link rot problem is replaced by another. the paper, and a companion paper, describe hiberlink's solution, which is to decorate the link to the original resource with an additional link to its archived memento. rene voorburg of the kb has extended this by implementing robustify.js:  robustify.js checks the validity of each link a user clicks. if the linked page is not available, robustify.js will try to redirect the user to an archived version of the requested page. the script implements herbert van de sompel's memento robust links - link decoration specification (as part of the hiberlink project) in how it tries to discover an archived version of the page. as a default, it will use the memento time travel service as a fallback. you can easily implement robustify.js on your web pages in so that it redirects pages to your preferred web archive. note, however, that soft- s and soft- s pose the same problem for robustify.js as they do for all web archiving technologies. dependence on authors many of the solutions that have been proposed to the problem of reference rot also suffer from dependence on authors: webcitation was a pioneer in this problem domain when, years ago, it introduced the service that allows authors to archive, on demand, web resources they intend to reference. ... but webcitation has not been met with great success, possibly the result of a lack of authors' awareness regarding reference rot, possibly because the approach requires an explicit action by authors, likely because of both. webcitation is not the only one: to a certain extent, portals like figshare and zenodo play in this problem domain as they allow authors to upload materials that might otherwise be posted to the web at large. the recent capability offered by these systems that allows creating a snapshot of a github repository, deposit it, and receive a doi in return, serves as a good example. the main drivers for authors to do so is to contribute to open science and to receive a citable doi, and, hence potentially credit for the contribution. but the net effect, from the perspective of the reference rot problem domain, is the creation of a snapshot of an otherwise evolving resource. still, these services target materials created by authors, not, like web archives do, resources on the web irrespective of their authorship. also, an open question remains to which extent such portals truly fulfill a long term archival function rather than being discovery and access environments. hiberlink is trying to reduce this dependence: in the solutions thread of hiberlink, we explore pro-active archiving approaches intended to seamlessly integrate into the life cycle of an article and to require less explicit intervention by authors. one example is an experimental zotero extension that archives web resources as an author bookmarks them during note taking. another is hiberactive, a service that can be integrated into the workflow of a repository or a manuscript submission system and that issues requests to web archives to archive all web at large resources referenced in submitted articles. but note that these services (and voorburg's) depend on the author or the publisher installing them. experience shows that authors are focused on getting their current paper accepted, large publishers are reluctant to implement extensions to their publishing platforms that offer no immediate benefit, and small publishers lack the expertise to do so. ideally, these services would be back-stopped by a service that scanned recently-published articles for web-at-large links and submitted them for archiving, thus requiring no action by author or publisher. the problem is that doing so requires the service to have access to the content as it is published. the existing journal archiving services, lockss, clockss and portico have such access to about half the published articles, and could in principle be extended to perform this service. in practice doing so would need at least modest funding. the problem isn't as simple as it appears at first glance, even for the articles that are archived. for those that aren't, primarily from less it-savvy authors and small publishers, the outlook is bleak. archiving finally, the solutions assume that submitting a url to an archive is enough to ensure preservation. it isn't. the referenced web site might have a robots.txt policy preventing collection. the site might have crawler traps, exceed the archive's crawl depth, or use javascript in ways that prevent the archive collecting a usable representation. or the archive may simply not process the request in time to avoid content drift or link rot. acknowledgement i have to thank herbert van de sompel for greatly improving this post through constructive criticism. but it remains my opinion alone. update: fixed broken link to geoff bilder post at crossref flagged by rob baxter in comments to a december post on a similar topic. posted by david. at : am labels: digital preservation, e-journals, memento comments: rv said... "note, however, that soft- s and soft- s pose the same problem for robustify.js as they do for all web archiving technologies." i just uploaded a new version of the robustify.js helper script (https://github.com/renevoorburg/robustify.js) that attempts to recognize soft- s. it does so by forcing a ' ' with a random request and comparing the results of that with the results of the original request (using fuzzy hashing). it seems to work very well but i am missing a good test set of soft 's. february , at : pm david. said... good idea, rené! february , at : pm unknown said... as ever, a good and challenging read. although i am not one of the authors of the paper you review i have been involved in a lot of the underlying thinking as one of the pis in the project, described at hiberlink.org and would like to add a few comments, especially on the matter of potential remedy. we were interested in the prospect of change & intervention in three simple workflows (for the author; for the issuing body; for the hapless library/repository) in order to enable transactional archiving of referenced content - reasoning that it was best that this was done as early as possible after the content on the web was regarded as important, and also that such archiving was best done when the actor in question had their mind in gear. the prototyping using zotero and ojs was done via plug-ins because having access to the source code our colleague richard wincewicz could mock this up as a demonstrator. one strategy was that would then invite ‘borrowing’ of the functionality (of snapshot/datetimestamp/archive/‘decorate’ with datetimestamp of uri within the citation) by commercial reference managers and editorial software so that authors and/or publishers (editors?) did not have to do something special. reference rot is a function of time: the sooner the fish (fruit?) is flash frozen the less it has chance to rot. however, immediate post-publication remedy is better than none. the suggestion that there is pro-active fix for content ingested into lockss, clockss and portico (and other keepers of digital content) by archiving of references is very much welcomed. this is part of our thinking for remodelling repository junction broker which supports machine ingest into institutional repositories but what you suggest could have greater impact. february , at : am martin klein said... a comment on the issue of soft s: your point is well taken and the paper's methodology section would clearly have benefited from mentioning this detriment and why we chose to not address it. my co-authors and i are very well aware of the soft issue, common approaches to detect them (such as introduced in [ ] and [ ]), and have, in fact, applied such methods in the past [ ]. however, given the scale of our corpus of million uris, and the soft ratio found in previous studies (our [ ] found a ratio of . % and [ ] found . %), we considered checking for soft s too expensive in light of potential return. especially since, as you have pointed out in the past [ ], web archives also archive soft s, we would have had to detect soft s on the live web as well as in web archives. regardless, i absolutely agree that our reference rot numbers for links to web at large resources likely represent a lower bound. it would be interesting to investigate the ratio of soft s and build a good size corpus to evaluate common and future detection approaches. the soft on the paper's reference (which is introduced by the publisher) seems to "only" be a function of the pubmed search as a request for [ ] returns a . [ ] http://dx.doi.org/ . / . [ ] http://dx.doi.org/ . / . [ ] http://arxiv.org/abs/ . [ ] http://dx.doi.org/ . / - - - - _ [ ] http://blog.dshr.org/ / /making-memento-succesful.html [ ] http://www.ncbi.nlm.nih.gov/pubmed/aodfhdskjhfsjkdhfskldfj february , at : pm david. said... peter burnhill supports the last sentence of my post with this very relevant reference<: thoughts of (captain) clarence birdseye some advice on quick freezing references to web caught resources: better done when references are noted (by the author), and then could be re-examined at point of issue (by the editor / publisher). when delivered by the crate (onto digital shelves) the rot may have set in for some of these fish ... march , at : am david. said... geoffrey bilder has a very interesting and detailed first instalment of a multi-part report on the doi outage that is well worth reading. april , at : pm david. said... as reported on the uk serials group listserv, uk elsevier subscribers encountered a major outage last weekend due to "unforeseen technical issues". june , at : am david. said... the outages continued sporadically through tuesday. this brings up another issue about the collection of link rot statistics. the model behind these studies so far is that a web resource appears at some point in time, remains continually accessible for a period, then becomes inaccessible and remains inaccessible "for ever". clearly, the outages noted here show that this isn't the case. between the resource's first appearance and its last, there is some probably time-varying probability that it is available that is less than . june , at : am david. said... timothy geigner at techdirt supplies the canonical example of why depending on the dmca "safe harbor" is risky for preservation. although in this case the right thing happened in response to a false dmca takedown notice, detecting them is between difficult and impossible. july , at : pm david. said... herbert van de sompel, martin klein and shawn jones revisit the issue of why dois are not in practice used to refer to articles in a poster for www persistent uris must be used to be persistent. note that this link is not a doi, in this case because the poster doesn't have one (yet?). march , at : am post a comment newer post older post home subscribe to: post comments (atom) blog rules posts and comments are copyright of their respective authors who, by posting or commenting, license their work under a creative commons attribution-share alike . united states license. off-topic or unsuitable comments will be deleted. dshr dshr in anwr recent comments full comments blog archive ►  ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ▼  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ▼  february ( ) don't panic using the official linux overlayfs report from fast vint cerf's talk at aaas the evanescent web it takes longer than it takes disk reliability ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) lockss system has permission to collect, preserve, and serve this archival unit. simple theme. powered by blogger. rebuilding twitter’s public api engineering back engineering insights infrastructure open source sign up sign up infrastructure rebuilding twitter’s public api by jenny qiu hylbert and steve cosenza wednesday, august link copied successfully today we launched the new twitter api v . our first launch of a public api was in and shortly after, we began building api access to new features with the intention of opening our platform and inviting developers to build the future with us. six years after the first launch, in , we released the v . api that introduced new requirements and stricter policies needed to curb abuse and protect the twitter platform.  today’s launch marks the most significant rebuild of our public api since . it’s built to deliver new features, faster, and to better serve the diverse set of developers who build on twitter. it’s also built to incorporate many of our experiences and lessons learned over the past fourteen years of operating public apis. we’d like to show you how we thought about designing and building this from the ground up. this tweet is unavailable this tweet is unavailable.  establishing goals this tweet is unavailable this tweet is unavailable. the public twitter api v . endpoints are currently implemented by a large set of http microservices, a decision we made as part of our re-architecture from a ruby monolith. while the microservices approach enabled increased development speeds at first, it also resulted in a scattered and disjointed twitter api as independent teams designed and built endpoints for their specific use cases with little coordination. for the new twitter api v , we knew we needed a new architecture that could more easily scale with the large number of api endpoints to serve our planned and new functionality going forward. as part of this design process, we drafted the following goals: abstraction: enable twitter engineers building the twitter api to focus on querying, mutating, or subscribing to only the data they care about, without needing to worry about the infrastructure and operations of running a production http service. ownership: contain core and common api logic in a single place, owned by a single team. consistency: provide a consistent experience for external developers by relying on our api design principles to reinforce uniformity. with the above goals in mind, we’ve built a common platform to host all of our new twitter api endpoints. to operate this multi-tenant platform at scale, we had to minimize any endpoint specific business logic, otherwise the system would quickly become unmaintainable. a powerful data access layer that emphasized declarative queries over imperative code was crucial to this strategy.  this tweet is unavailable this tweet is unavailable. unified data access layer this tweet is unavailable this tweet is unavailable. around this same time, representatives from teams building twitter for web, ios, and android began migrating from individual internal rest endpoints to a unified graphql service. our team followed suit as we realized that the data querying needs of the public twitter api are similar to the needs of our twitter mobile and desktop clients. put another way, twitter clients query for data and render uis, while the public twitter apis query for data and render json responses.  this tweet is unavailable this tweet is unavailable. a bonus from consolidating our data querying through a single interface is that the twitter api can now easily deliver new twitter features by querying for graphql data already being directly used by our consumer apps. when considering exposing graphql directly to external developers, we opted for a design most familiar to a broad set of developers in the form of a rest api. this model also makes it easier to protect against unexpected query complexity so we can ensure a reliable service for all developers. this tweet is unavailable this tweet is unavailable. componentizing the api platform this tweet is unavailable this tweet is unavailable. with the platform approach decided, we needed a way for different teams to build and contribute to the overall api. to facilitate this, we designed the following three components: routes to represent the external http endpoints e.g. / /tweets selections to represent the ways to find resources e.g. "tweet lookup by id". to implement a selection, create a graphql query which returns one or more resources resources to represent the core resources in our system e.g. tweets and users. to implement a resource, create a directory for every resource field which contains a graphql query to fetch the data for that specific field e.g. tweet/text using these three components to construct a directory structure, teams can independently own and contribute different parts of the overall twitter api while still returning uniform representations in responses. for example, here's a subset of our selections and resources directories: this tweet is unavailable this tweet is unavailable. ├── selections │ └── tweet │ ├── id │ │ ├── selection.scala │ │ ├── selection.graphql │ ├── multi_ids │ │ ├── selection.scala │ │ ├── selection.graphql │ ├── search │ │ ├── selection.scala │ │ ├── selection.graphql ├── resources │ ├── tweet │ │ ├── id │ │ │ ├── field.scala │ │ │ └── fragment.graphql │ │ ├── author_id │ │ │ ├── field.scala │ │ │ └── fragment.graphql │ │ ├── text │ │ │ ├── field.scala │ │ │ └── fragment.graphql graphql plays a key role in this architecture. we can utilize graphql fragments as the unit of our rendering reuse (in a similar way to react relay). for example, the graphql queries below all use a "platform_tweet" fragment which is a fragment created by combining all the customer requested fields in the /resources/tweet directory: this tweet is unavailable this tweet is unavailable. https://api.twitter.com/ /tweets/ selection: /selections/tweet/id/selection.graphql this tweet is unavailable this tweet is unavailable. query tweetbyid($id: string!) { tweet_by_rest_id(rest_id: $id) { ...platform_tweet } } https://api.twitter.com/ /tweets?ids= , selection: /selections/tweet/multi_ids/selection.graphql this tweet is unavailable this tweet is unavailable. query tweetsbyids($ids: [string!]!) { tweets_by_rest_ids(rest_ids: $ids) { ...platform_tweet } } https://api.twitter.com/ /tweets/search/recent?query=% dogsoftwitter selection: /selections/tweet/search/selection.graphql this tweet is unavailable this tweet is unavailable. query tweetsbysearch($query: string!, $start_time: string, $end_time: string, ...) { search_query(query: $query) { matched_tweets(from_date: $start_time, to_date: $end_time, ...) { tweets { ...platform_tweet } next_token } } } putting it all together this tweet is unavailable this tweet is unavailable. at this point in the story, you may be curious where endpoint-specific business logic actually lives. we offer two options: when an endpoint’s business logic can be represented in stratoql (the language used by twitter’s data catalog system known as strato which powers the graphql schema), then we only need to write a function in stratoql without requiring a separate service.  otherwise, the business logic is contained in a finatra thrift microservice written in scala, exposed by a thrift strato column. with the platform providing the common needs for all http endpoints, new routes and resources can be released without spinning up any new http services. we can ensure uniformity through the platform by standardizing how a tweet is rendered or how a set of tweets are paginated regardless of the actual endpoint used for retrieval.  additionally, if an endpoint can be constructed from queries for already existing data in the graphql schema, or if they're able to implement their logic in stratoql, then we can not only bypass almost all "service owning" responsibilities but also deliver faster access to new twitter features! one aspect of the platform that has been top of mind since the beginning is the importance of serving the health of the public conversation and protecting the personal data of people using twitter. the new platform takes a strong stance on where related business logic should live by pushing all security and privacy related logic to backend services. the result is that the api layer is agnostic to this logic and privacy decisions are applied uniformly across all of the twitter clients and the api. by isolating where these decisions are made, we can limit inconsistent data exposure so that what you see in the ios app will be the same as what you get from programmatic querying through the api. this is the start of our journey and our work is far from done. we have many more existing v . endpoints to migrate and improve, and entirely new public endpoints to build. we know developers want the ability to interact with all of the different features in the twitter app and we’re excited for you to see how we’ve leveraged this platform approach to do just that. we can’t wait to bring more features to the new twitter api! to see more about our plans, check out our guide to the future of the new api.      this tweet is unavailable this tweet is unavailable. jenny qiu hylbert ‎@jqiu‎ senior engineering manager steve cosenza ‎@scosenza‎ senior staff engineer only on twitter @twittereng @twitterdev #twitterapi tweet twitter logo icon tags: api microservices infrastructure link copied successfully more from infrastructure kafka as a storage system by babatunde fashola on wednesday, december how we fortified twitter's real time ad spend architecture by revenue platform on monday, november the infrastructure behind twitter: efficiency and optimization by mazdak hashemi on tuesday, august building distributedlog: high-performance replicated log service by leigh stewart on wednesday, september see what's happening twitter ‎@twitter‎ follow tweets following followers twitter platform twitter.com status card validator privacy center transparency center twitter, inc. about the company twitter for good company news brand toolkit jobs and internships investors help help center using twitter twitter media ads help center managing your account safety and security rules and policies contact us developer resources developer home documentation forums communities developer blog engineering blog developer terms business resources advertise twitter for business resources and guides twitter for marketers marketing insights brand inspiration twitter data twitter flight school ‎© twitter, inc.‎ cookies privacy terms and conditions by using twitter’s services you agree to our cookies use. we use cookies for purposes including analytics, personalisation, and ads. ok tesla: “full self-driving beta” isn’t designed for full self-driving | ars technica skip to main content biz & it tech science policy cars gaming & culture store forums subscribe close navigate store subscribe videos features reviews rss feeds mobile site about ars staff directory contact us advertise with ars reprints filter by topic biz & it tech science policy cars gaming & culture store forums settings front page layout grid list site theme black on white white on black sign in comment activity sign up or login to join the discussions! stay logged in | having trouble? sign up to comment and more sign up mixed messages — tesla: “full self-driving beta” isn’t designed for full self-driving tesla told california regulators the fsd beta lacks "true autonomous features." timothy b. lee - mar , : pm utc enlarge / youtuber brandon m captured this drone footage of his tesla steering toward a parked car in october , shortly after the fsd beta became available to the public. brandon m / youtube reader comments with posters participating, including story author share this story share on facebook share on twitter share on reddit the transparency site plainsite recently published a pair of letters tesla wrote to the california department of motor vehicles in late . the letters cast doubt on elon musk's optimistic timeline for the development of fully driverless technology. for years, elon musk has been predicting that fully driverless technology is right around the corner. at an april event, musk predicted that teslas would be capable of fully driverless operation—known in industry jargon as "level "—by the end of . "there's three steps to self-driving," musk told tesla investors at the event. "there's being feature complete. then there's being feature complete to the degree where we think the person in the car does not need to pay attention. and then there's being at a reliability level where we also convince regulators that that is true." tesla obviously missed musk's deadline. but you might be forgiven for thinking tesla is now belatedly executing the strategy he described two years ago. in october, tesla released what it called its "full self-driving beta" software to a few-dozen tesla owners. a few days ago, musk announced plans to expand the program to more customers. further reading “oh jeeeesus”: drivers react to tesla’s full self-driving beta release given that the product is called "full self-driving," this might seem like the first step in musk's three-step progression. after a few more months of testing, perhaps it will become reliable enough to operate without human supervision. that could allow musk to make good on his latest optimistic timeline for autopilot: in a december interview, musk said he was "extremely confident" that tesla vehicles would reach level by the end of . but a letter tesla sent to california regulators the same month had a different tone. despite the "full self-driving" name, tesla admitted it doesn't consider the current beta software suitable for fully driverless operation. the company said it wouldn't start testing "true autonomous features" until some unspecified point in the future. “we do not expect significant enhancements” enlarge in a pair of letters last november and december, officials at the california dmv asked tesla for details about the fsd beta program. tesla requires drivers using the beta software to actively supervise it so they can quickly intervene if needed. the dmv wanted to know if tesla planned to relax requirements for human supervision once the software was made available to the general public. advertisement in its first response, sent in november, tesla emphasized that the beta software had limited functionality. tesla told state regulators that the software is "not capable of recognizing or responding" to "static objects and road debris, emergency vehicles, construction zones, large uncontrolled intersections with multiple incoming ways, occlusions, adverse weather, complicated or adversarial vehicles in the driving path, and unmapped roads." in a december follow-up, tesla added that "we expect the functionality to remain largely unchanged in a future, full release to the customer fleet." tesla added that "we do not expect significant enhancements" that would "shift the responsibility for the entire dynamic driving task to the system." the system "will continue to be an sae level , advanced driver-assistance feature." sae level is industry jargon for driver-assistance systems that perform functions like lane-keeping and adaptive cruise control. by definition, level systems require continual human oversight. fully driverless systems—like the taxi service waymo is operating in the phoenix area—are considered level systems. in its letter to california officials, tesla added that "tesla's development of true autonomous features will follow our iterative process (development, validation, early release, etc.) and any such features will not be released to the general public until we have fully validated them." critics pounced on the disclosure. "here it is, straight from tesla," tweeted prominent tesla skeptic ed niedermeyer. "'full self-driving' is not, and will never be, actually self-driving." this might not be quite fair to tesla—the company apparently does plan to develop more advanced software eventually. but at a minimum, tesla's public communication about the full self-driving package could easily give customers the wrong impression about the software's future capabilities. full autonomy is always right around the corner enlarge / elon musk in . brendan smialowski / getty since , tesla has given customers every reason to expect that its "full self-driving" software would be, well, fully self-driving. early promotional materials for the fsd package described a driver getting out of the vehicle and having it find a parking spot on its own. tesla has repeatedly talked about the fsd package enabling a tesla vehicle to operate as an autonomous taxi—an application that requires the car to drive itself without anyone behind the wheel. in , musk predicted that, within two years, a tesla owner in los angeles would be able to summon their vehicle from new york city. advertisement further reading tesla’s autonomy event: impressive progress with an unrealistic timeline if tesla is really going to achieve fully driverless operation in , that doesn't leave much time to develop, test, and validate complex, safety-critical software. so it would be natural for customers to assume that the software tesla named "full self driving beta" is, in fact, a beta version of tesla's long-awaited fully self-driving software. but in its communications with california officials, tesla makes it clear that's not true. of course, elon musk has a long history of announcing over-optimistic timelines for his products. it's not really news that tesla failed to meet an optimistic deadline set by its ceo. but there's a deeper philosophical issue that may go beyond a few blown deadlines. the long road to full autonomy enlarge / waymo tested its driverless taxis in the phoenix area for more than three years before beginning driverless commercial operations. waymo tesla's overall autopilot strategy is to start with a driver-assistance system and gradually evolve it into a fully driverless system. a bunch of other companies in the industry—led by google's waymo—believe that this is a mistake. they think the requirements of the two products are so different that it makes more sense to create a driverless taxi, shuttle, or delivery service from scratch. in particular, companies like waymo argue that it's too difficult to get regular customers to pay close attention to an almost-but-not-fully driverless vehicle. if a car drives perfectly for , miles and then makes a big mistake, there's a significant risk the human driver won't be paying close enough attention to prevent a crash. waymo initially considered creating an autopilot-like driver assistance system and licensing it to automakers, but the company ultimately decided that doing so would be too risky. musk has always shrugged this critique off. as we've seen, he believes improvements to autopilot's driver-assistance features will transform it into a system capable of fully driverless operation. but in its comments to the dmv, tesla seems to endorse the opposite viewpoint: that adding "true autonomous features" to autopilot will require more than just incrementally improving the performance of its existing software. tesla acknowledged that it needs more sophisticated systems for handling the "static objects, road debris, emergency vehicles, construction zones." and this makes it a little hard to believe musk's boast that tesla will achieve level autonomy by the end of . notably, google's prototype self-driving vehicles have been able to navigate most roadway conditions—much like today's tesla fsd beta software—since roughly . yet the company needed another five years to refine the technology enough to enable fully driverless operation. and that was within a limited geographic area and with help from powerful lidar sensors. tesla is trying to achieve the same feat for every street nationwide—and using only cameras and radar. perhaps tesla will move faster than waymo, and it won't take another five years to achieve fully driverless operation. but customers considering whether to pay $ , for tesla's full self-driving software package should certainly take musk's optimistic timeline with a grain of salt. promoted comments frodo douchebaggins ars tribunus militum jump to post i bought fsd over three years ago when elon's charisma roll beat my wisdom save. there have been a number of questionable claims, and a few outright lies regarding things that were % within their control ( https://web.archive.org/web/ ... capability being a notable example. tldr; if you bought fsd and were not thrilled with the price drop after you bought it but well before a single feature was delivered, take heart, for you won’t receive a refund of the difference like an ethical business will do, but you will receive an invite to the early access program and get to use the upcoming features before other people! except that a month or so later they took down that blog post, and the invites never happened.) i understand that they probably really did think they'd be further along now than they are, but the fact that they're not letting us transfer our fsd license if we want to buy a new car means i'm likely not buying another tesla. it's tantamount to preordering a product and then being told you can't change your shipping address when you move a few years later, and is a slap in the face to the early fsd buyers who have received only a single small feature for that money. why would i give them more money after what they've done? their pride is costing them their relationship with the customers that should be the most loyal, and they're doing it over something that costs them nothing except flipping a bit each on the current car and the new car, and for that they get to sell another car. at this point i think we have to be close to large class actions finally emerging, and while they won't help us get what we paid for, and won't get our money back, maybe it'll hurt enough to make them stop over promising and underdelivering posts | registered / / nimble ars centurion et subscriptor jump to post jeffpkamp wrote: soon tesla will have four assist levels. autopilot, full self driving, level , and , no-for-real-la-to-ny-without-assistance (nfrlnwa). but all joking and sarcasm aside. i've watched probably hours of fsd beta videos, and the only thing that really seemed to give the car trouble was roundabouts. residential level streets, busy commercial streets, and highways were all navigated with relatives from what i could see. and the computer seemed to be accurately picking up everything important. there were some hilarious glitches as the cv software tried to classify things like turning semi trucks, but it got the positions right. honestly i think this is just a report from someone who speaks fluent bureaucrat, which elon obviously does not. in terms of achieving full unmonitored self driving, a video like that means very little. it can demonstrate that the car did the right thing in the particular circumstances of the video. it says next to nothing about how reliably it can do it, nor whether it can deal with the enormous range of possible situations that aren't in the video. for such a video to be meaningful, it would need to be hundeds of thousands of hours long, contain a random selection of driving situations that the software is expected to deal with, and show that no driver interventions were required. in other words, it's only large scale statistics that can demonstrate whether self driving systems are safe, not a bunch of short and quite possibly cherry-picked video clips. the good news is that tesla are collecting those statistics. the bad news is that they're not sharing them. https://www.forbes.com/sites/bradtemple ... cc f fab posts | registered / / reader comments with posters participating, including story author share this story share on facebook share on twitter share on reddit timothy b. lee timothy is a senior reporter covering tech policy, blockchain technologies and the future of transportation. he lives in washington dc. email timothy.lee@arstechnica.com // twitter @binarybits advertisement you must login or create an account to comment. channel ars technica ← previous story next story → related stories sponsored stories powered by today on ars store subscribe about us rss feeds view mobile site contact us staff advertise with us reprints newsletter signup join the ars orbital transmission mailing list to get weekly updates delivered to your inbox. sign me up → cnmn collection wired media group © condé nast. all rights reserved. use of and/or registration on any portion of this site constitutes acceptance of our user agreement (updated / / ) and privacy policy and cookie statement (updated / / ) and ars technica addendum (effective / / ). ars may earn compensation on sales from links on this site. read our affiliate link policy. your california privacy rights | do not sell my personal information the material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of condé nast. ad choices dogecoin has risen percent in the last week because why not | ars technica skip to main content biz & it tech science policy cars gaming & culture store forums subscribe close navigate store subscribe videos features reviews rss feeds mobile site about ars staff directory contact us advertise with ars reprints filter by topic biz & it tech science policy cars gaming & culture store forums settings front page layout grid list site theme black on white white on black sign in comment activity sign up or login to join the discussions! stay logged in | having trouble? sign up to comment and more sign up here we go again — dogecoin has risen percent in the last week because why not dogecoin rallied after elon musk tweeted a photo of "doge barking at the moon." timothy b. lee - apr , : pm utc enlarge peng song / getty reader comments with posters participating, including story author share this story share on facebook share on twitter share on reddit dogecoin, a blockchain-based digital currency named for a meme about an excitable canine, has seen its price rise by a factor of five over the last week. the price spike has made it one of the world's most valuable cryptocurrencies, with a market capitalization of $ billion. understanding the value of cryptocurrencies is never easy, and it's especially hard for dogecoin, which was created as a joke. dogecoin isn't known for any particular technology innovations and doesn't seem to have many practical applications. what dogecoin does have going for it, however, is memorable branding and an enthusiastic community of fans. and in , that counts for a lot. in recent months, we've seen shares of gamestop soar to levels that are hard to justify based on the performance of gamestop's actual business. people bought gamestop because it was fun and they thought the price might go up. so too for dogecoin. tesla ceo elon musk may have also played an important role in dogecoin's ascendancy. musk has periodically tweeted about the cryptocurrency, and those tweets are frequently followed by rallies in dogecoin's price. late on wednesday night, musk tweeted out this image: advertisement doge barking at the moon pic.twitter.com/qfb d zol — elon musk (@elonmusk) april , dogecoin's price tripled over the next hours. my editor suggested that i write about whether dogecoin's rise is a sign of an overheated crypto market, but for a coin like dogecoin, i'm not sure that's even a meaningful concept. dogecoin isn't a company that has revenues or profits. and unlike bitcoin and ether, no one seriously thinks it's going to be the foundation of a new financial system. people are trading dogecoin because it's fun to trade and because they think they might make money from it. the rising price is a sign that a lot of people have decided it would be fun to speculate in dogecoin. of course, the fact that lots of people have money to spend on joke investments might itself be a result of larger macroeconomic forces. the combination of stimulus spending, low interest rates, and pandemic-related saving means that a lot of people have more money than usual sitting in their bank accounts. and restrictions on travel and nightlife mean that many of those same people have a lot of time on their hands. reader comments with posters participating, including story author share this story share on facebook share on twitter share on reddit timothy b. lee timothy is a senior reporter covering tech policy, blockchain technologies and the future of transportation. he lives in washington dc. email timothy.lee@arstechnica.com // twitter @binarybits advertisement you must login or create an account to comment. channel ars technica ← previous story next story → related stories sponsored stories powered by today on ars store subscribe about us rss feeds view mobile site contact us staff advertise with us reprints newsletter signup join the ars orbital transmission mailing list to get weekly updates delivered to your inbox. sign me up → cnmn collection wired media group © condé nast. all rights reserved. use of and/or registration on any portion of this site constitutes acceptance of our user agreement (updated / / ) and privacy policy and cookie statement (updated / / ) and ars technica addendum (effective / / ). ars may earn compensation on sales from links on this site. read our affiliate link policy. your california privacy rights | do not sell my personal information the material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of condé nast. ad choices jodischneider.com/blog reading, technology, stray thoughts blog about categories argumentative discussions books and reading computer science firefox future of publishing higher education information ecosystem information quality lab news intellectual freedom ios: ipad, iphone, etc. library and information science math old newspapers phd diary programming random thoughts reviews scholarly communication semantic web social semantic web social web uncategorized search paid graduate hourly research position at uiuc for spring december rd, by jodi jodi schneider’s information quality lab (http://infoqualitylab.org) seeks a graduate hourly student for a research project on bias in citation networks. biased citation benefits authors in the short-term by bolstering grants and papers, making them more easily accepted. however, it can have severe negative consequences for scientific inquiry. our goal is to find quantitative measures of network structure that can indicate the existence of citation bias.  this job starts january , . pay depending on experience (master’s students start at $ /hour). optionally, the student can also take a graduate independent study course (generally - credits is or info ). apply on handshake responsibilities will include: assist in the development of algorithms to simulate an unbiased network carry out statistical significance tests for candidate network structure measures attend weekly meetings assist with manuscript and grant preparation required skills proficiency in python or r demonstrated ability to systematically approach a simulation or modeling problem statistical knowledge, such as developed in a course on mathematical statistics and probability (e.g. stat statistics and probability i https://courses.illinois.edu/schedule/ /spring/stat/ ) preferred skills knowledge of stochastic processes experience with simulation knowledge of random variate generation and selection of input probability distribution knowledge of network analysis may have taken classes such as stat stochastic processes (https://courses.illinois.edu/schedule/ /spring/stat/ ) or ie advanced topics in stochastic processes & applications (https://courses.illinois.edu/schedule/ /fall/ie/ ) more information: https://ischool.illinois.edu/people/jodi-schneider http://infoqualitylab.org application deadline: monday december th. apply on handshake with the following application materials: resume transcript – such as free university of illinois academic history from banner self-service (https://apps.uillinois.edu, click “registration & records”, “student records and transcripts”, “view academic history”, choose “web academic history”) cover letter: just provide short answers to the following two questions: ) why are you interested in this particular project? ) what past experience do you have that is related to this project?  tags: citation bias, jobs, network analysis, statistical modeling posted in information quality lab news | comments ( ) avoiding long-haul air travel during the covid- pandemic october th, by jodi i would not recommend long-haul air travel at this time. an epidemiological study of a . hour flight from the middle east to ireland concluded that groups ( people), traveling from continents in four groups, who used separate airport lounges, were likely infected in flight. the flight had % occupancy ( passengers/ seats; crew) and took place in summer . (note: i am not an epidemiologist.) the study (published open access): murphy nicola, boland máirín, bambury niamh, fitzgerald margaret, comerford liz, dever niamh, o’sullivan margaret b, petty-saphon naomi, kiernan regina, jensen mette, o’connor lois. a large national outbreak of covid- linked to air travel, ireland, summer . euro surveill. ; ( ):pii= . https://doi.org/ . / - .es. . . . irish news sites including rte and the irish times also covered the paper. figure from “a large national outbreak of covid- linked to air travel, ireland, summer ” https://doi.org/ . / - .es. . . . caption in original “passenger seating diagram on flight, ireland, summer (n= passengers)” “numbers on the seats indicate the flight groups – .” the age of the flight cases ranged from to years with a median age of years. twelve of flight cases and almost three quarters ( / ) of the non-flight cases were symptomatic. after the flight, the earliest onset of symptoms occurred days after arrival, and the latest case in the entire outbreak occurred days after the flight. of symptomatic flight cases, symptoms reported included cough (n = ), coryza (n = ), fever (n = ) and sore throat (n = ), and six reported loss of taste or smell. no symptoms were reported for one flight case. a mask was worn during the flight by nine flight cases, not worn by one (a child), and unknown for three. murphy nicola, boland máirín, bambury niamh, fitzgerald margaret, comerford liz, dever niamh, o’sullivan margaret b, petty-saphon naomi, kiernan regina, jensen mette, o’connor lois. a large national outbreak of covid- linked to air travel, ireland, summer . euro surveill. ; ( ):pii= . https://doi.org/ . / - .es. . . . (notes to figure caption) “it is interesting that four of the flight cases were not seated next to any other positive case, had no contact in the transit lounge, wore face masks in-flight and would not be deemed close contacts under current guidance from the european centre for disease prevention and control (ecdc) [ ].” murphy nicola, boland máirín, bambury niamh, fitzgerald margaret, comerford liz, dever niamh, o’sullivan margaret b, petty-saphon naomi, kiernan regina, jensen mette, o’connor lois. a large national outbreak of covid- linked to air travel, ireland, summer . euro surveill. ; ( ):pii= . https://doi.org/ . / - .es. . . . “the source case is not known. the first two cases in group became symptomatic within h of the flight, and covid- was confirmed in three, including an asymptomatic case from this group in region a within days of the flight. thirteen secondary cases and one tertiary case were later linked to these cases. two cases from flight group were notified separately in region a with one subsequent secondary family case, followed by three further flight cases notified from region b in two separate family units (flight groups and ). these eight cases had commenced their journey from the same continent and had some social contact before the flight. the close family member of a group case seated next to the case had tested positive abroad weeks before, and negative after the flight. flight group was a household group of which three cases were notified in region c and one case in region d. these cases had no social or airport lounge link with groups or pre-flight and were not seated within two rows of them. their journey origin was from a different continent. a further case (flight group ) had started the journey from a third continent, had no social or lounge association with other cases and was eated in the same row as passengers from group . three household contacts and a visitor of flight group became confirmed cases. one affected contact travelled to region e, staying in shared accommodation with others; of these became cases (attack rate %) notified in regions a, b, c, d, e and f, with two cases of quaternary spread.” murphy nicola, boland máirín, bambury niamh, fitzgerald margaret, comerford liz, dever niamh, o’sullivan margaret b, petty-saphon naomi, kiernan regina, jensen mette, o’connor lois. a large national outbreak of covid- linked to air travel, ireland, summer . euro surveill. ; ( ):pii= . https://doi.org/ . / - .es. . . . “in-flight transmission is a plausible exposure for cases in group and group given seating arrangements and onset dates. one case could hypothetically have acquired the virus as a close household contact of a previous positive case, with confirmed case onset date less than two incubation periods before the flight, and symptom onset in the flight case was h after the flight. in-flight transmission was the only common exposure for four other cases (flight groups and ) with date of onset within four days of the flight in all but the possible tertiary case. this case from group developed symptoms nine days after the flight and so may have acquired the infection in-flight or possibly after the flight through transmission within the household.” murphy nicola, boland máirín, bambury niamh, fitzgerald margaret, comerford liz, dever niamh, o’sullivan margaret b, petty-saphon naomi, kiernan regina, jensen mette, o’connor lois. a large national outbreak of covid- linked to air travel, ireland, summer . euro surveill. ; ( ):pii= . https://doi.org/ . / - .es. . . . “genomic sequencing for cases travelling from three different continents strongly supports the epidemiological transmission hypothesis of a point source for this outbreak. the ability of genomics to resolve transmission events may increase as the virus evolves and accumulates greater diversity [ ].” murphy nicola, boland máirín, bambury niamh, fitzgerald margaret, comerford liz, dever niamh, o’sullivan margaret b, petty-saphon naomi, kiernan regina, jensen mette, o’connor lois. a large national outbreak of covid- linked to air travel, ireland, summer . euro surveill. ; ( ):pii= . https://doi.org/ . / - .es. . . . authors note that a large percentage of the flight passengers were infected: “we calculated high attack rates, ranging plausibly from . % to . % despite low flight occupancy and lack of passenger proximity on-board.” murphy nicola, boland máirín, bambury niamh, fitzgerald margaret, comerford liz, dever niamh, o’sullivan margaret b, petty-saphon naomi, kiernan regina, jensen mette, o’connor lois. a large national outbreak of covid- linked to air travel, ireland, summer . euro surveill. ; ( ):pii= . https://doi.org/ . / - .es. . . . among the reasons for the uncertainty of this range is that “ flight passengers could not be contacted and were consequently not tested.” (a twelfth passenger “declined testing”.) there is also some inherent uncertainty due to incubation period and possibility of “transmission within the household”, especially after the flight; authors note that “exposure possibilities for flight cases include in-flight, during overnight transfer/pre-flight or unknown acquisition before the flight.” beyond the people on the flight, cases spread to several social groups, across “six of the eight different health regions (regions a–h) throughout the republic of ireland”. flight groups and started their travel from one continent; flight group from another; flight group from a third continent. figure from “a large national outbreak of covid- linked to air travel, ireland, summer ” https://doi.org/ . / - .es. . . . caption in original: “diagram of chains of transmission, flight-related covid- cases, ireland, summer (n= )” tags: air travel, attack rate, covid- , covid , epidemiology, flights, flying, ireland, middle east, pandemic posted in random thoughts | comments ( ) paid undergraduate research position at uiuc for fall & spring august th, by jodi university of illinois undergraduates are encouraged to apply for a position in my lab. i particularly welcome applications from students in the new ischool bs/is degree or in the university-wide informatics minor. while i only have paid position open, i also supervise unpaid independent study projects. dr. jodi schneider and the information quality lab seek undergraduate research assistants for % remote work. past students have published research articles, presented posters, earned independent study credit, james scholar research credit, etc. one paid position in news analytics/data science for assessing the impact of media polarization on public health emergencies, funded by the cline center for advanced research in the social sciences. ( hrs/week at $ . /hour + possible independent study – % remote work). covid- news analytics: we seek to understand how public health emergencies are reported and to assess the polarization and politicization of the u.s. news coverage. you will be responsible for testing and improving search parameters, investigating contextual information such as media bias and media circulation, using text mining and data science, and close reading of sample texts. you will work closely with a student who has worked on the opioid crisis – see the past work following poster (try the link twice – you have to log in with an illinois netid): https://compass g.illinois.edu/webapps/discussionboard/do/message?action=list_messages&course_id=_ _ &nav=discussion_board&conf_id=_ _ &forum_id=_ _ &message_id=_ _ applications should be submitted here: https://forms.illinois.edu/sec/ deadline: pm central time sunday august , tags: covid , data science, health controversies, jobs, media polarization, news analytics, research experiences for undergraduates, undergraduate research posted in information quality lab news | comments ( ) #shutdownstem #strike blacklives #shutdownacademia june th, by jodi i greatly appreciated receiving messages from senior people about their participation in the june th #shutdownstem #strike blacklives #shutdownacademia. in that spirit, i am sharing my email bounce message for tomorrow, and the message i sent to my research lab. email bounce: i am not available by email today:  this june th is a day of action about understanding and addressing racism, and its impact on the academy, and on stem.  -jodi email to my research lab wednesday is a day of action about understanding and addressing racism, and its impact on the academy, and on stem. i strongly encourage you to use tomorrow for this purpose. specifically, i invite you to think about what undoing racism – moving towards antiracism – means, and what you can do. one single day, by itself, will not cure racism; but identifying what we can do on an ongoing basis, and taking those actions day after day – that can and will have an impact. and, if racism is vivid in your daily life, make #shutdownstem a day of rest. if tomorrow doesn’t suit, i encourage you to reserve a day over the course of the next week, to replace your everyday duties. what does taking this time actually mean? it means scheduling a dedicated block of time to learn more; rescheduling meetings; shutting down your email; reading books and articles and watching videos; and taking time to reflect on recent events and the stress that they cause every single person in our community. what am i doing personally? i’ve cancelled meetings tomorrow, and set an email bounce. i will spend part of the day to think more seriously about what real antiracist action looks like from my position, as a white female academic. this week i will also be using time to re-read white fragility, to finish dreamland burning (a ya novel about the tulsa race riot), and to investigate how to bring bystander training to the ischool. i will also be thinking about the relationship of racism to other forms of oppression – classism, sexism, homophobia, transphobia, xenophobia. if you are looking for readings of your own, i can point to a list curated by an anti-racism task force: https://idea.illinois.edu/education for basic information, #shutdownstem #strike blacklives #shutdownacademia website: https://www.shutdownstem.com physicists’ particles for justice: https://www.particlesforjustice.org -jodi tags: #shutdownacademia, #shutdownstem, #strike blacklives, email posted in random thoughts | comments ( ) qotd: storytelling in protest and politics march th, by jodi i recently read francesca polletta‘s book it was like a fever: storytelling in protest and politics ( , university of chicago press). i recommend it! it will appeal to researchers interested in topics such as narrative, strategic communication, (narrative) argumentation, or epistemology (here, of narrative). parts may also interest activists. the book’s case studies are drawn from the student nonviolent coordinating committee (sncc) (chapters & ); online deliberation about the / memorial (listening to the city, summer ) (chapter ); women’s stories in law (including, powerfully, battered women who had killed their abusers, and the challenges in making their stories understandable) (chapter ); references to martin luther king by african american congressmen (in the congressional record) and by “leading back political figures who were not serving as elected or appointed officials” (chapter ). several are extended from work polletta previously published from through (see page xiii for citations). the conclusion—”conclusion: folk wisdom and scholarly tales” (pages - )—takes up several topics, starting with canonicity, interpretability, ambivalence. i especially plan to go back to the last two sections: “scholars telling stories” (pages - )—about narrative and storytelling in analysts’ telling of events—and “towards a sociology of discursive forms” (pages - )—about investigating the beliefs and conventions of narrative and its institutional conventions (and relating those to conventions of other “discursive forms” such as interviews). these set forward a research agenda likely useful to other scholars interested in digging in further. these are foreshadowed a bit in the introduction (“why stories matter”) which, among other things, sets out the goal of developing “a sociology of storytelling”. a few quotes i noted—may give you the flavor of the book: page : “but telling stories also carries risks. people with unfamiliar experiences have found those experiences assimilated to canonical plot lines and misheard as a result. conventional expectations about how stories work, when they are true, and when they are appropriate have also operated to diminish the impact of otherwise potent political stories. for the abused women whom juries disbelieved because their stories had changed in small details since their first traumatized [p ] call to police, storytelling has not been especially effective. nor was it effective for the citizen forum participants who did not say what it was like to search fruitlessly for affordable housing because discussions of housing were seen as the wrong place in which to tell stories.” pages - : “so which is it? is narrative fundamentally subversive or hegemonic? both. as a rhetorical form, narrative is equipped to puncture reigning verities and to uphold them. at times, it seems as if most of the stories in circulation are subtly or not so subtly defying authorities; at others as if the most effective storytelling is done by authorities. to make it more complicated, sometimes authorities unintentionally undercut their own authority when they tell stories. and even more paradoxically, undercutting their authority by way of a titillating but politically inconsequential story may actually strengthen it. dissenters, for their part, may find their stories misread in ways that support the very institutions that are challenging….”for those interested in the relations between storytelling, protest, and politics, this all suggests two analytical tasks. one is to identify the features of narrative that allow it to [p ] achieve certain rhetorical effects. the other is to identify the social conditions in which those rhetorical effects are likely to be politically consequential. the surprise is that scholars of political processes have devoted so little attention to either task.” pages - – “so institutional conventions of storytelling influence what people can do strategically with stories. in the previously pages, i have described the narrative conventions that operate in legal adjudication, media reporting, television talk shows, congressional debate, and public deliberation. sociolinguists have documented such conventions in other settings: in medical intake interviews, for example, parole hearings, and jury deliberations. one could certainly generate a catalogue of the institutional conventions of storytelling. to some extent, those conventions reflect the peculiarities of the institution as it has developed historically. they also serve practical functions; some explicit, others less so. i have argued that the lines institutions draw between suitable and unsuitable occasions for storytelling or for certain kinds of stories serve to legitimate the institution.” [specific examples follow] ….”as these examples suggest, while institutions have different conventions of storytelling, storytelling does some of the same work in many institutions. it does so because of broadly shared assumptions about narrative’s epistemological status. stories are generally thought to be more affecting by less authoritative than analysis, in part because narrative is associated with women rather than men, the private sphere rather than the public one, and custom rather than law. of course, conventions of storytelling and the symbolic associations behind them are neither unitary nor fixed. nor are they likely to be uniformly advantageous for those in power and disadvantageous for those without it. narrative’s alignment [ ] along the oppositions i noted is complex. for example, as i showed in chapter , americans’ skepticism of expert authority gives those telling stories clout. in other words, we may contrast science with folklore (with science seen as much more credible), but we may also contrast it with common sense (with science seen as less credible). contrary to the lamentation of some media critics and activists, when disadvantaged groups have told personal stories to the press and on television talk shows, they have been able to draw attention not only to their own victimization but to the social forces responsible for it.“ tags: congressional record, francesca polletta, listening to the city, martin luther king, narrative, qotd, sncc, storytelling, strategic communication, student nonviolent coordinating committee posted in argumentative discussions, books and reading | comments ( ) knowledge graphs: an aggregation of definitions march rd, by jodi i am not aware of a consensus definition of knowledge graph. i’ve been discussing this for awhile with liliana giusti serra, and the topic came up again with my fellow organizers of the knowledge graph session at us ts as we prepare for a panel. i’ve proposed the following main features: rdf-compatible, has a defined schema (usually an owl ontology) items are linked internally may be a private enterprise dataset (e.g. not necessarily openly available for external linking) or publicly available covers one or more domains below are some quotes. i’d be curious to hear of other definitions, especially if you think there’s a consensus definition i’m just not aware of. “a knowledge graph consists of a set of interconnected typed entities and their attributes.” jose manuel gomez-perez, jeff z. pan, guido vetere and honghan wu. “enterprise knowledge graph: an introduction.”  in exploiting linked data and knowledge graphs in large organisations. springer. part of the whole book: http://link.springer.com/ . / - - - - “a knowledge graph is a structured dataset that is compatible with the rdf data model and has an (owl) ontology as its schema. a knowledge graph is not necessarily linked to external knowledge graphs; however, entities in the knowledge graph usually have type information, defined in its ontology, which is useful for providing contextual information about such entities. knowledge graphs are expected to be reliable, of high quality, of high accessibility and providing end user oriented information services.” boris villazon-terrazas, nuria garcia-santa, yuan ren, alessandro faraotti, honghan wu, yuting zhao, guido vetere and jeff z. pan .  “knowledge graphs: foundations”. in exploiting linked data and knowledge graphs in large organisations.  springer. part of the whole book: http://link.springer.com/ . / - - - - “the term knowledge graph was coined by google in , referring to their use of semantic knowledge in web search (“things, not strings”), and is recently also used to refer to semantic web knowledge bases such as dbpedia or yago. from a broader perspective, any graph-based representation of some knowledge could be considered a knowledge graph (this would include any kind of rdf dataset, as well as description logic ontologies). however, there is no common definition about what a knowledge graph is and what it is not. instead of attempting a formal definition of what a knowledge graph is, we restrict ourselves to a minimum set of characteristics of knowledge graphs, which we use to tell knowledge graphs from other collections of knowledge which we would not consider as knowledge graphs. a knowledge graph mainly describes real world entities and their interrelations, organized in a graph. defines possible classes and relations of entities in a schema. allows for potentially interrelating arbitrary entities with each other. covers various topical domains.” paulheim, h. ( ). knowledge graph refinement: a survey of approaches and evaluation methods. semantic web,  ( ), - . http://www.semantic-web-journal.net/system/files/swj .pdf “isi’s center on knowledge graphs research group combines artificial intelligence, the semantic web, and database integration techniques to solve complex information integration problems. we leverage general research techniques across information-intensive disciplines, including medical informatics, geospatial data integration and the social web.” http://usc-isi-i .github.io/home/ just as i was “finalizing” my list to send to colleagues, i found a poster all about definitions: ehrlinger, l., & wöß, w. ( ). towards a definition of knowledge graphs. semantics (posters, demos, success),  . http://ceur-ws.org/vol- /paper .pdf its table : selected definitions of knowledge graph has the following definitions (for citations see that paper) “a knowledge graph (i) mainly describes real world entities and their interrelations, organized in a graph, (ii) defines possible classes and relations of entities in a schema, (iii) allows for potentially interrelating arbitrary entities with each other and (iv) covers various topical domains.” paulheim [ ] “knowledge graphs are large networks of entities, their semantic types, properties, and relationships between entities.” journal of web semantics [ ] “knowledge graphs could be envisaged as a network of all kind things which are relevant to a specific domain or to an organization. they are not limited to abstract concepts and relations but can also contain instances of things like documents and datasets.” semantic web company [ ] “we define a knowledge graph as an rdf graph. an rdf graph consists of a set of rdf triples where each rdf triple (s, p, o) is an ordered set of the following rdf terms: a subjects∈u∪b,apredicatep∈u,andanobjectu∪b∪l. anrdftermiseithera uri u ∈ u, a blank node b ∈ b, or a literal l ∈ l.” färber et al. [ ] “[…] systems exist, […], which use a variety of techniques to extract new knowledge, in the form of facts, from the web. these facts are interrelated, and hence, recently this extracted knowledge has been referred to as a knowledge graph.” pujara et al. [ ] “a knowledge graph is a graph that models semantic knowledge, where each node is a real-world concept, and each edge represents a relationship between two concepts” fang, y., kuan, k., lin, j., tan, c., & chandrasekhar, v. ( ). object detection meets knowledge graphs. https://oar.a-star.edu.sg/jspui/handle/ / “things not strings” – google https://googleblog.blogspot.com/ / /introducing-knowledge-graph-things-not.html tags: knowledge graph, knowledge representation, quotations posted in information ecosystem, semantic web | comments ( ) qotd: doing more requires thinking less december st, by jodi by the aid of symbolism, we can make transitions in reasoning almost mechanically by the eye which would otherwise call into play the higher faculties of the brain. …civilization advances by extending the number of important operations that we can perform without thinking about them. operations of thought are like cavalry charges in a battle — they are strictly limited in number, they require fresh horses, and must only be made at decisive moments. one very important property for symbolism to possess is that it should be concise, so as to be visible at one glance of the eye and be rapidly written. – whitehead, a.n. ( ). an introduction to mathematics, chapter , “the symbolism of mathematics” (page in this version) ht to santiago nuñez-corrales (illinois page for santiago nuñez-corrales, linkedin for santiago núñez-corrales) who used part of this quote in a conceptual foundations group talk, nov . from my point of view, this is why memorizing multiplication tables is not now irrelevant; why new words for concepts are important; and underlies a lot of scientific advancement. tags: cavalry, modes of thought, qotd, symbolism posted in information ecosystem, random thoughts | comments ( ) qotd: sally jackson on how disagreement makes arguments more explicit june th, by jodi sally jackson explicates the notion of the “disagreement space” in a new topoi article: “a position that remains in doubt remains in need of defense”   “the most important theoretical consequence of seeing argumentation as a system for management of disagreement is a reversal of perspective on what arguments accomplish. are arguments the means by which conclusions are built up from established premises? or are they the means by which participants drill down from disagreements to locate how it is that they and others have arrived at incompatible positions? a view of argumentation as a process of drilling down from disagreements suggests that arguers themselves do not simply point to the reasons they hold for a particular standpoint, but sometimes discover where their own beliefs come from, under questioning by others who do not share their beliefs. a logical analysis of another’s argument nearly always involves first making the argument more explicit, attributing more to the author than was actually said. this is a familiar enough problem for analysts; my point is that it is also a pervasive problem for participants, who may feel intuitively that something is seriously wrong in what someone else has said but need a way to pinpoint exactly what. getting beliefs externalized is not a precondition for argument, but one of its possible outcomes.” from sally jackson’s reason-giving and the natural normativity of argumentation. the original treatment of disagreement space is cited to a book chapter revising an issa paper , somewhat harder to get one’s hands on. p , sally jackson. reason-giving and the natural normativity of argumentation. topoi. online first. http://doi.org/ . /s - - - [↩] p , sally jackson. reason-giving and the natural normativity of argumentation. topoi. online first. http://doi.org/ . /s - - - [↩] sally jackson. reason-giving and the natural normativity of argumentation. topoi. online first. http://doi.org/ . /s - - - [↩] jackson s ( ) “virtual standpoints” and the pragmatics of conversational argument. in: van eemeren fh, grootendorst r, blair ja, willard ca (eds) argument illuminated. international centre for the study of argumentation, amsterdam, pp. – [↩] tags: argumentation, argumentation norms, disagreement space posted in argumentative discussions | comments ( ) qotd: working out scientific insights on paper, lavoisier case study july th, by jodi …language does do much of our thinking for us, even in the sciences, and rather than being an unfortunate contamination, its influence has been productive historically, helping individual thinkers generate concepts and theories that can then be put to the test. the case made here for the constitutive power of figures [of speech] per se supports the general point made by f.l. holmes in a lecture addressed to the history of science society in . a distinguished historian of medicine and chemistry, holmes based his study of antoine lavoisier on the french chemist’s laboratory notebooks. he later examined drafts of lavoisier’s published papers and discovered that lavoisier wrote many versions of his papers and in the course of careful revisions gradually worked out the positions he eventually made public (holmes, ). holmes, whose goal as a historian is to reconstruct the careful pathways and fine structure of scientific insights, concluded from his study of lavoisier’s drafts we cannot always tell whether a thought that led him to modify a passage, recast an argument, or develop an alternative interpretation occurred while he was still engaged in writing what he subsequently altered, or immediately afterward, or after some interval during which he occupied himself with something else; but the timing is, i believe, less significant than the fact that the new developments were consequences of the effort to express ideas and marshall supporting information on paper ( ). – page xi of rhetorical figures in science by jeanne fahnestock, oxford university press, . she is quoting frederich l. holmes. . scientific writing and scientific discovery. isis : - . doi: . / as moore summarizes, lavoisier wrote at least six drafts of the paper over a period of at least six months. however, his theory of respiration did not appear until the fifth draft. clearly, lavoisier’s writing helped him refine and understand his ideas. moore, randy. language—a force that shapes science. journal of college science teaching . ( ): . http://www.jstor.org/stable/ (which i quoted in a review i wrote recently) fahnestock adds: “…holmes’s general point [is that] there are subtle interactions ‘between writing, thought, and operations in creative scientific activity’ ( ).” tags: lavoisier, revision, rhetoric of science, scientific communication, scientific writing posted in future of publishing, information ecosystem, scholarly communication | comments ( ) david liebovitz: achieving care transformation by infusing electronic health records with wisdom may st, by jodi today i am at the health data analytics summit. the title of the keynote talk is achieving care transformation by infusing electronic health records with wisdom. it’s a delight to hear from a medical informaticist: david m. liebovitz (publications in google scholar), md, facp, chief medical information officer, the university of chicago. he graduated from university of illinois in electrical engineering, making this a timely talk as the engineering-focused carle illinois college of medicine gets going. david liebovitz started with a discussion of the data problems — problem lists, medication lists, family history, rules, results, notes — which will be familiar to anyone using ehrs or working with ehr data. he draws attention also to the human problems — both in terms of provider “readiness” (e.g. their vision for population-level health) as well as about “current expectations”. (an example of such an expectation is a “main clinician satisfier” he closed with: u chicago is about to turn on outbound faxing from the ehr!) he mentioned also the importance of resilience. he mentioned customizing systems as a risk when the vendor makes upstream changes (this is not unique to healthcare but a threat to innovation and experimentation with information systems in other industries.) still, in managing the ehr, there is continual optimization, scored based on a number of factors. he mentioned: safety quality/patient experience regulatory/legal financial usability/productivity availability of alternative solutions as well as weighting for old requests. he emphasized the complexity of healthcare in several ways: “nobody knew that healthcare could be so complicated.” – potus showing the medicare readmissions adjustment factors pharmacy pricing, an image (showing kickbacks among other things) from “prices that are too high”, chapter , the healthcare imperative: lowering costs and improving outcomes: workshop series summary ( )  national academies press doi: . / an image from “prices that are too high”, chapter , the healthcare imperative: lowering costs and improving outcomes: workshop series summary ( ) icosystem’s diagram of the complexity of the healthcare system icosystem – complexity of the healthcare system another complexity is the modest impact of medical care compared to other factors such as the impact of socioeconomic and political context on equity in health and well-being (see the who image below). for instance, there is a large impact of health behaviors, which “happen in larger social contexts.” (see the relative contribution of multiple determinants to health, august , , health policy briefs) solar o, irwin a. a conceptual framework for action on the social determinants of health. social determinants of health discussion paper (policy and practice). given this complexity, david liebovitz stresses that we need to start with the right model, “simultaneously improving population health, improving the patient experience of care, and reducing per capita cost”. (see stiefel m, nolan k. a guide to measuring the triple aim: population health, experience of care, and per capita cost. ihi innovation series white paper. cambridge, massachusetts: institute for healthcare improvement; ). table from stiefel m, nolan k. a guide to measuring the triple aim: population health, experience of care, and per capita cost. ihi innovation series white paper. cambridge, massachusetts: institute for healthcare improvement; . given the modest impact of medical care, and of data, he suggests that we should choose the right outcomes. david liebovitz says that “not enough attention has been paid to usability”; i completely agree and suggest that information scientists, human factors engineeers, and cognitive ergonomists help mainstream medical informaticists fill this gap. he put up jakob nielsen’s  usability heuristics for user interface design a vivid example is whether a patient’s resuscitation preferences are shown (which seems to depend on the particular ehr screen): the system doesn’t highlight where we are in the system. for providers, he says user control and freedom are very important. he suggests that there are only a few key tasks. a provider should be able to do any of these things wherever they are in the chart: put a note order something send a message similarly, ehr should support recognition (“how do i admit a patient again?”) rather than requiring recall. meanwhile, on the decision support side he highlights the (well-known) problems around interruptions by saying that speed is everything and changing direction is much easier than stopping. here he draws on some of his own work, describing what he calls a “diagnostic process aware workflow” david liebovitz. next steps for electronic health records to improve the diagnostic process. diagnosis ( ) - . doi: . /dx- - can we predict x better? yes, he says (for instance pointing to table of “can machine-learning improve cardiovascular risk prediction using routine clinical data?” and its machine learning analysis of over , patients, based on variables chosen from previous guidelines and expert-informed selection–generating further support for aspects such as aloneness, access to resources, socio-economic status). but what’s really needed, he says, is to: predict the best next medical step, iteratively predict the best next lifestyle step, iteratively (and what to do about genes and epigenetic measures?) he shows an image of “all of our planes in the air” from flightaware, drawing the analogy that we want to work on “optimal patient trajectories” — predicting what are the “turbulent events” to avoid”. this is not without challenges. he points to three: data privacy (he suggests google deepmind and healthcare in an age of algorithms. powles, j. & hodson, h. health technol. ( ). doi: . /s - - - two sorts of mismatches between the current situation and where we want to go: for instance the source of data being from finance certain basic current clinician needs  (e.g. that a main clinician satisfier is that uchicago is soon to turn on outbound faxing from their ehr — and that an ongoing source of dissatisfaction: managing volume of inbound faxes.) he closes suggesting that we: finish the basics address key slices of the spectrum descriptive/prescriptive begin the prescriptive journey: impact one trajectory at a time. tags: data analytics, electronic health records, healthcare systems, medical informatics posted in information ecosystem | comments ( ) « older entries recent posts paid graduate hourly research position at uiuc for spring avoiding long-haul air travel during the covid- pandemic paid undergraduate research position at uiuc for fall & spring #shutdownstem #strike blacklives #shutdownacademia qotd: storytelling in protest and politics monthly december october august june march meta log in valid xhtml xfn wordpress wordpress powers jodischneider.com/blog. layers theme designed by jai pandya. presentation associaiton maidi         association maidi madagascar initiatives for digital innovation acceuil notre vision open data data journalisme online democracy nos projets         association maidi madagascar initiatives for digital innovation    acceuil présentation régie par l’ordonnance n° - du octobre , l’association maidi   ou madagascar initiatives for digital innovation a été officiellement créée le février   à antananarivo  dans le but de promouvoir l’open data, le data journalisme et l’e democracy à madagascar.     l'association est constituée pour une durée indéterminée   l'association n'appartient à aucun parti politique et est totalement indépendante de quelconque affiliation.     la structure de l'association comprend :   un conseil d'administration   un bureau   une assemblée générale (ag) contexte lors de l'open government partnership summit du au décembre à paris, madagascar a, avec le maroc, guinée, haïti et le sénégal   exprimé sa volonté de rejoindre la grande famille du gouvernement ouvert malgré les conditions d’éligibilité non remplies à seulement %.   parmi ces conditions, on a l’amélioration de la transparence sur le budget de l’etat et   la divulgation des informations.  faciliter l’accès à l’information mais aussi s’assurer que la liberté d’individuelle de chacun soit respectée. au delà du principe de « redevabilité », nous espérons que le  gouvernement réponde favorablement au "droit de savoir" des citoyens. l’association fait donc le premier pas dans des concepts innovants sur le territoire national notamment les notions d’open data et du data journalisme en visant des secteurs variés tels que l’éducation, la santé, l’emploi, l’environnement, le transport, finances et du budget. title text information this is an excellent place for you to add a paragraph and let your visitors know more about you and your services. easily edit by go to tab pages and content and click edit. nous contacter antananarivo - madagascar + contact@association-maidi.mg © company inc. all rights reserved. home | about us | news & event | download | links | contact us acceuil notre vision open data data journalisme online democracy nos projets none andromeda yelton skip to content andromeda yelton menu home about contact resume hamlet lita talks machine learning (ala midwinter ) boston python meetup (august , ) swib libtechconf code lib keynote texas library association online northwest : five conversations about code new jersey esummit (may , ) westchester library association (january , ) bridging the digital divide with mobile services (webjunction, july ) i haven’t failed, i’ve just tried a lot of ml approaches that don’t work “let’s blog every friday,” i thought. “it’ll be great. people can see what i’m doing with ml, and it will be a useful practice for me!” and then i went through weeks on end of feeling like i had nothing to report because i was trying approach after approach to this one problem that simply didn’t work, hence not blogging. and finally realized: oh, the process is the thing to talk about… hi. i’m andromeda! i am trying to make a neural net better at recognizing people in archival photos. after running a series of experiments — enough for me to have written , words of notes — i now have a neural net that is ten times worse at its task. 🎉 and now i have , words of notes to turn into a blog post (a situation which gets harder every week). so let me catch you up on the outline of the problem: download a whole bunch of archival photos and their metadata (thanks, dpla!) use a face detection ml library to locate faces, crop them out, and save them in a standardized way benchmark an off-the-shelf face recognition system to see how good it is at identifying these faces retrain it benchmark my new system step : profit, right? well. let me also catch you up on some problems along the way: alas, metadata archival photos are great because they have metadata, and metadata is like labels, and labels mean you can do supervised learning, right? well…. is he “du bois, w. e. b. (william edward burghardt), - ” or “du bois, w. e. b. (william edward burghardt) - ” or “du bois, w. e. b. (william edward burghardt)” or “w.e.b. du bois”? i mean, these are all options. people have used a lot of different metadata practices at different institutions and in different times. but i’m going to confuse the poor computer if i imply to it that all these photos of the same person are photos of different people. (i have gone through several attempts to resolve this computationally without needing to do everything by hand, with only modest success.) what about “photographs”? that appears in the list of subject labels for lots of things in my data set. “photographs” is a person, right? i ended up pulling in an entire other ml component here — spacy, to do some natural language processing to at least guess which lines are probably names, so i can clear the rest of them out of my way. but spacy only has ~ % accuracy on personal names anyway and, guess what, because everything is terrible, in predictable ways, it has no idea “kweisi mfume” is a person. is a person who appears in the photo guaranteed to be a person who appears in the photo? nope. is a person who appears in the metadata guaranteed to be a person who appears in the photo? also nope! often they’re a photographer or other creator. sometimes they are the subject of the depicted event, but not themselves in the photo. (spacy will happily tell you that there’s personal name content in something like “martin luther king day”, but mlk is unlikely to appear in a photo of an mlk day event.) oh dear, linear algebra ok but let’s imagine for the sake of argument that we live in a perfect world where the metadata is exactly what we need — no more, no less — and its formatting is perfectly consistent. 🦄 here you are, in this perfect world, confronted with a photo that contains two people and has two names. how do you like them apples? i spent more time than i care to admit trying to figure this out. can i bootstrap from photos that have one person and one name — identify those, subtract them out of photos of two people, go from there? (not reliably — there’s a lot of data i never reach that way — and it’s horribly inefficient.) can i do something extremely clever with matrix multiplication? like…once i generate vector space embeddings of all the photos, can i do some sort of like dot-product thing across all of my photos, or big batches of them, and correlate the closest-match photos with overlaps in metadata? not only is this a process which begs the question — i’d have to do that with the ml system i have not yet optimized for archival photo recognition, thus possibly just baking bad data in — but have i mentioned i have taken exactly one linear algebra class, which i didn’t really grasp, in ? what if i train yet another ml system to do some kind of k-means clustering on the embeddings? this is both a promising approach and some really first-rate yak-shaving, combining all the question-begging concerns of the previous paragraph with all the crystalline clarity of black box ml. possibly at this point it would have been faster to tag them all by hand, but that would be admitting defeat. also i don’t have a research assistant, which, let’s be honest, is the person who would usually be doing this actual work. i do have a -year-old and i am strongly considering paying her to do it for me, but to facilitate that i’d have to actually build a web interface and probably learn more about aws, and the prospect of reading aws documentation has a bracing way of reminding me of all of the more delightful and engaging elements of my todo list, like calling some people on the actual telephone to sort out however they’ve screwed up some health insurance billing. nowhere to go but up despite all of that, i did actually get all the way through the steps above. i have a truly, spectacularly terrible neural net. go me! but at a thousand-plus words, perhaps i should leave that story for next week…. andromeda uncategorized leave a comment april , this time: speaking about machine learning no tech blogging this week because most of my time was taken up with telling people about ml instead! one talk for an internal harvard audience, “alice in dataland”, where i explained some of the basics of neural nets and walked people through the stories i found through visualizing hamlet data. one talk for the niso plus conference, “discoverability in an ai world”, about ways libraries and other cultural heritage institutions are using ai both to enhance traditional discovery interfaces and provide new ones. this was recorded today but will be played at the conference on the rd, so there’s still time to register if you want to see it! niso plus will also include a session on ai, metadata, and bias featuring dominique luster, who gave one of my favorite code lib talks, and one on ai and copyright featuring one of my go-to jd/mlses, nancy sims. and i’m prepping for an upcoming talk that has not yet been formally announced. which is to say, i guess, i have a lot of talks about ai and cultural heritage in my back pocket, if you were looking for someone to speak about that 😉 andromeda uncategorized leave a comment february , archival face recognition for fun and nonprofit in , dominique luster gave a super good code lib talk about applying ai to metadata for the charles “teenie” harris collection at the carnegie museum of art — more than , photographs of black life in pittsburgh. they experimented with solutions to various metadata problems, but the one that’s stuck in my head since is the face recognition one. it sure would be cool if you could throw ai at your digitized archival photos to find all the instances of the same person, right? or automatically label them, given that any of them are labeled correctly? sadly, because we cannot have nice things, the data sets used for pretrained face recognition embeddings are things like lots of modern photos of celebrities, a corpus which wildly underrepresents ) archival photos and ) black people. so the results of the face recognition process are not all that great. i have some extremely technical ideas for how to improve this — ideas which, weirdly, some computer science phds i’ve spoken with haven’t seen in the field. so i would like to experiment with them. but i must first invent the universe set up a data processing pipeline. three steps here: fetch archival photographs; do face detection (draw bounding boxes around faces and crop them out for use in the next step); do face recognition. for step , i’m using dpla, which has a super straightforward and well-documented api and an easy-to-use python wrapper (which, despite not having been updated in a while, works just fine with python . , the latest version compatible with some of my dependencies). for step , i’m using mtcnn, because i’ve been following this tutorial. for step , face recognition, i’m using the steps in the same tutorial, but purely for proof-of-concept — the results are garbage because archival photos from mid-century don’t actually look anything like modern-day celebrities. (neural net: “i have % confidence this is stevie wonder!” how nice for you.) clearly i’m going to need to build my own corpus of people, which i have a plan for (i.e. i spent some quality time thinking about numpy) but haven’t yet implemented. so far the gotchas have been: gotcha : if you fetch a page from the api and assume you can treat its contents as an image, you will be sad. you have to treat them as a raw data stream and interpret that as an image, thusly: from pil import image import requests response = requests.get(url, stream=true) response.raw.decode_content = true data = requests.get(url).content image.open(io.bytesio(data)) this code is, of course, hilariously lacking in error handling, despite fetching content from a cesspool of untrustworthiness, aka the internet. it’s a first draft. gotcha : you see code snippets to convert images to pixel arrays (suitable for ai ingestion) that look kinda like this: np.array(image).astype('uint '). except they say astype('float ') instead of astype('uint '). i got a creepy photonegative effect when i used floats. gotcha : although pil was happy to manipulate the .pngs fetched from the api, it was not happy to write them to disk; i needed to convert formats first (image.convert('rgb')). gotcha : the suggested keras_vggface library doesn’t have a pipfile or requirements.txt, so i had to manually install keras and tensorflow. luckily the setup.py documented the correct versions. sadly the tensorflow version is only compatible with python up to . (hence the comment about dpyla compatibility above). i don’t love this, but it got me up and running, and it seems like an easy enough part of the pipeline to rip out and replace if it’s bugging me too much. the plan from here, not entirely in order, subject to change as i don’t entirely know what i’m doing until after i’ve done it: build my own corpus of identified people this means the numpy thoughts, above it also means spending more quality time with the api to see if i can automatically apply names from photo metadata rather than having to spend too much of my own time manually labeling the corpus decide how much metadata i need to pull down in my data pipeline and how to store it figure out some kind of benchmark and measure it try out my idea for improving recognition accuracy benchmark again hopefully celebrate awesomeness andromeda uncategorized leave a comment february , sequence models of language: slightly irksome not much ai blogging this week because i have been buried in adulting all week, which hasn’t left much time for machine learning. sadface. however, i’m in the last week of the last deeplearning.ai course! (well. of the deeplearning.ai sequence that existed when i started, anyway. they’ve since added an nlp course and a gans course, so i’ll have to think about whether i want to take those too, but at the moment i’m leaning toward a break from the formal structure in order to give myself more time for project-based learning.) this one is on sequence models (i.e. “the data comes in as a stream, like music or language”) and machine translation (“what if we also want our output to be a stream, because we are going from a sentence to a sentence, and not from a sentence to a single output as in, say, sentiment analysis”). and i have to say, as a former language teacher, i’m slightly irked. because the way the models work is — ok, consume your input sentence one token at a time, with some sort of memory that allows you to keep track of prior tokens in processing current ones (so far, so okay). and then for your output — spit out a few most-likely candidate tokens for the first output term, and then consider your options for the second term and pick your most-likely two-token pairs, and then consider all the ways your third term could combine with those pairs and pick your most likely three-token sequences, et cetera, continue until done. and that is…not how language works? look at cicero, presuming upon your patience as he cascades through clause after clause which hang together in parallel but are not resolved until finally, at the end, a verb. the sentence’s full range of meanings doesn’t collapse until that verb at the end, which means you cannot be certain if you move one token at a time; you need to reconsider the end in light of the beginning. but, at the same time, that ending token is not equally presaged by all former tokens. it is a verb, it has a subject, and when we reached that subject, likely near the beginning of the sentence, helpfully (in latin) identified by the nominative case, we already knew something about the verb — a fact we retained all the way until the end. and on our way there, perhaps we tied off clause after clause, chunking them into neat little packages, but none of them nearly so relevant to the verb — perhaps in fact none of them really tied to the verb at all, because they’re illuminating some noun we met along the way. pronouns, pointing at nouns. adjectives, pointing at nouns. nouns, suspended with verbs like a mobile, hanging above and below, subject and object. adverbs, keeping company only with verbs and each other. there’s so much data in the sentence about which word informs which that the beam model casually discards. wasteful. and forcing the model to reinvent all these things we already knew — to allocate some of its neural space to re-engineering things we could have told it from the beginning. clearly i need to get my hands on more modern language models (a bizarre sentence since this class is all of years old, but the field moves that fast). andromeda uncategorized comment january , adapting coursera’s neural style transfer code to localhost last time, when making cats from the void, i promised that i’d discuss how i adapted the neural style transfer code from coursera’s convolutional neural networks course to run on localhost. here you go! step : first, of course, download (as python) the script. you’ll also need the nst_utils.py file, which you can access via file > open. step : while the coursera file is in .py format, it’s ipython in its heart of hearts. so i opened a new file and started copying over the bits i actually needed, reading them as i went to be sure i understood how they all fit together. along the way i also organized them into functions, to clarify where each responsibility happened and give it a name. the goal here was ultimately to get something i could run at the command line via python dpla_cats.py, so that i could find out where it blew up in step . step : time to install dependencies. i promptly made a pipenv and, in running the code and finding what importerrors showed up, discovered what i needed to have installed: scipy, pillow, imageio, tensorflow. whatever available versions of the former three worked, but for tensorflow i pinned to the version used in coursera — . . — because there are major breaking api changes with the current ( .x) versions. this turned out to be a bummer, because tensorflow promptly threw warnings that it could be much faster on my system if i compiled it with various flags my computer supports. ok, so i looked up the docs for doing that, which said i needed bazel/bazelisk — but of course i needed a paleolithic version of that for tensorflow . . compat, so it was irritating to install — and then running that failed because it needed a version of java old enough that i didn’t have it, and at that point i gave up because i have better things to do than installing quasi-eoled java versions. updating the code to be compatible with the latest tensorflow version and compiling an optimized version of that would clearly be the right answer, but also it would have been work and i wanted messed-up cat pictures now. (as for the rest of my dependencies, i ended up with scipy== . . , pillow== . . , and imageio== . . , and then whatever sub-dependencies pipenv installed. just in case the latest versions don’t work by the time you read this. 🙂 at this point i had achieved goal , aka “getting anything to run at all”. step : i realized that, honestly, almost everything in nst_utils wanted to be an imageutility, which was initialized with metadata about the content and style files (height, width, channels, paths), and carried the globals (shudder) originally in nst_utils as class data. this meant that my new dpla_cats script only had to import imageutility rather than * (from x import * is, of course, deeply unnerving), and that utility could pingpong around knowing how to do the things it knew how to do, whenever i needed to interact with image-y functions (like creating a generated image or saving outputs) rather than neural-net-ish stuff. everything in nst_utils that properly belonged in an imageutility got moved, step by step, into that class; i think one or two functions remained, and they got moved into the main script. step : ughhh, scope. the notebook plays fast and loose with scope; the raw python script is, rightly, not so forgiving. but that meant i had to think about what got defined at what level, what got passed around in an argument, what order things happened in, et cetera. i’m not happy with the result — there’s a lot of stuff that will fail with minor edits — but it works. scope errors will announce themselves pretty loudly with exceptions; it’s just nice to know you’re going to run into them. step a: you have to initialize the adam optimizer before you run sess.run(tf.global_variables_initializer()). (thanks, stackoverflow!) the error message if you don’t is maddeningly unhelpful. (failedpreconditionerror, i mean, what.) step : argparse! i spent some quality time reading this neural style implementation early on and thought, gosh, that’s argparse-heavy. then i found myself wanting to kick off a whole bunch of different script runs to do their thing overnight investigating multiple hypotheses and discovered how very much i wanted there to be command-line arguments, so i could configure all the different things i wanted to try right there and leave it alone. aw yeah. i’ve ended up with the following: parser.add_argument('--content', required=true) parser.add_argument('--style', required=true) parser.add_argument('--iterations', default= ) # was parser.add_argument('--learning_rate', default= . ) # was . parser.add_argument('--layer_weights', nargs= , default=[ . , . , . , . , . ]) parser.add_argument('--run_until_steady', default=false) parser.add_argument('--noisy_start', default=true) content is the path to the content image; style is the path to the style image; iterations and learning_rate are the usual; layer_weights is the value of style_layers in the original code, i.e. how much to weight each layer; run_until_steady is a bad api because it means to ignore the value of the iterations parameter and instead run until there is no longer significant change in cost; and noisy_start is whether to use the content image plus static as the first input or just the plain content image. i can definitely see adding more command line flags if i were going to be spending a lot of time with this code. (for instance, a layer_names parameter that adjusted what style_layers considered could be fun! or making “significant change in cost” be a user-supplied rather than hardcoded parameter!) step a: correspondingly, i configured the output filenames to record some of the metadata used to create the image (content, style, layer_weights), to make it easier to keep track of which images came from which script runs. stuff i haven’t done but it might be great: updating tensorflow, per above, and recompiling it. the slowness is acceptable — i can run quite a few trials on my macbook overnight — but it would get frustrating if i were doing a lot of this. supporting both num_iterations and run_until_steady means my iterator inside the model_nn function is kind of a mess right now. i think they’re itching to be two very thin subclasses of a superclass that knows all the things about neural net training, with the subclass just handling the iterator, but i didn’t spend a lot of time thinking about this. reshaping input files. right now it needs both input files to be the same dimensions. maybe it would be cool if it didn’t need that. trying different pretrained models! it would be easy to pass a different arg to load_vgg_model. it would subsequently be annoying to make sure that style_layers worked — the available layer names would be different, and load_vgg_model makes a lot of assumptions about how that model is shaped. as your reward for reading this post, you get another cat image! a friend commented that a thing he dislikes about neural style transfer is that it’s allergic to whitespace; it wants to paint everything with a texture. this makes sense — it sees subtle variations within that whitespace and it tries to make them conform to patterns of variation it knows. this is why i ended up with the noisy_start flag; i wondered what would happen if i didn’t add the static to the initial image, so that the original negative space stayed more negative-spacey. this, as you can probably tell, uses the harlem renaissance style image. it’s still allergic to negative space — even without the generated static there are variations in pixel color in the original — but they are much subtler, so instead of saying “maybe what i see is coiled hair?” it says “big open blue patches; we like those”. but the semantics of the original image are more in place — the kittens more kitteny, the card more readable — even though the whole image has been pushed more to colorblocks and bold lines. i find i like the results better without the static — even though the cost function is larger, and thus in a sense the algorithm is less successful. look, one more. superhero! andromeda uncategorized leave a comment january , dear internet, merry christmas; my robot made you cats from the void recently i learned how neural style transfer works. i wanted to be able to play with it more and gain some insights, so i adapted the coursera notebook code to something that works on localhost (more on that in a later post), found myself a nice historical cat image via dpla, and started mashing it up with all manner of images of varying styles culled from dpla’s list of primary source sets. (it really helped me that these display images were already curated for looking cool, and cropped to uniform size!) these sweet babies do not know what is about to happen to them. let’s get started, shall we? style image from the fake news in the s: yellow journalism primary source set. i really love how this one turned out. it’s pulled the blue and yellow colors, and the concerned face of the lower kitten was a perfect match for the expression on the right-hand muckraker. the lines of the card have taken on the precise quality of those in the cartoon — strong outlines and textured interiors. “merry christmas” the bird waves, like an eager newsboy. style image from the food and social justice exhibit. this is one of the first ones i made, and i was delighted by how it learned the square-iness of its style image. everything is more snapped to a grid. the colors are bolder, too, cueing off of that dominant yellow. the christmas banner remains almost readable and somehow heraldic. style image from the truth, justice, and the american way primary source set. how about christmas of steel? these kittens have broadly retained their shape (perhaps as the figures in the comic book foreground have organic detail?), but the background holly is more polygon-esque. the colors have been nudged toward primary, and the static of the background has taken on a swirl of dynamic motion lines. style image from the visual art during the harlem renaissance primary source set. how about starting with something boldly colored and almost abstract? why look: the kittens have learned a world of black and white and blue, with the background transformed into that stippled texture it picked up from the hair. the holly has gone more colorblocky and the lines bolder. style image from the treaty of versailles and the end of world war i primary source set. this one learned its style so aptly that i couldn’t actually tell where the boundary between the second and third images was when i was placing that equals sign. the soft pencil lines, the vertical textures of shadows and jail bars, the fact that all the colors in the world are black and white and orange (the latter mostly in the middle) — these kittens are positively melting before the force of wilsonian propaganda. imagine them in the hall of mirrors, drowning in gold and reflecting back at you dozens of times, for full nightmare effect. style image from the victorian era primary source set. shall we step back a few decades to something slightly more calming? these kittens have learned to take on soft lines and swathes of pale pink. the holly is perfectly happy to conform itself to the texture of these new england trees. the dark space behind the kittens wonders if, perhaps, it is meant to be lapels. i totally can’t remember how i found this cropped version of us food propaganda. and now for kittens from the void. brown, it has learned. the world is brown. the space behind the kittens is brown. those dark stripes were helpfully already brown. the eyes were brown. perhaps they can be the same brown, a hole dropped through kitten-space. i thought this was honestly pretty creepy, and i wondered if rerunning the process with different layer weights might help. each layer of the neural net notices different sorts of things about its image; it starts with simpler things (colors, straight lines), moves through compositions of those (textures, basic shapes), and builds its way up to entire features (faces). the style transfer algorithm looks at each of those layers and applies some of its knowledge to the generated image. so i thought, what if i change the weights? the initial algorithm weights each of five layers equally; i reran it weighted toward the middle layers and entirely ignoring the first layer, in hopes that it would learn a little less about gaping voids of brown. same thing, less void. this worked! there’s still a lot of brown, but the kitten’s eye is at least separate from its facial markings. my daughter was also delighted by how both of these images want to be letters; there are lots of letter-ish shapes strewn throughout, particularly on the horizontal line that used to be the edge of a planter, between the lower cat and the demon holly. so there you go, internet; some christmas cards from the nightmare realm. may bring fewer nightmares to us all. andromeda uncategorized comment december , december , this week in my ai after visualizing a whole bunch of theses and learning about neural style transfer and flinging myself at t-sne i feel like i should have something meaty this week but they can’t all be those weeks, i guess. still, i’m trying to hold myself to friday ai blogging, so here are some work notes: finished course of the deeplearning.ai sequence. yay! the facial recognition assignment is kind of buggy and poorly documented and i felt creepy for learning it in the first place, but i’m glad to have finished. only one more course to go! it’s a -week course, so if i’m particularly aggressive i might be able to get it all done by year’s end. tried making a d version of last week’s visualization — several people had asked — but it turned out to not really add anything. oh well. been thinking about charlie harper’s talk at swib this year, generating metadata subject labels with doc vec and dbpedia. this talk really grabbed me because he started with the exact same questions and challenges as hamlet — seriously, the first seven and a half minutes of this talk could be the first seven and a half minutes of a talk on hamlet, essentially verbatim — but took it off in a totally different direction (assigning subject labels). i have lots of ideas about where one might go with this but right now they are all sparkling voronoi diagrams in my head and that’s not a language i can readily communicate. all done with the second iteration of my ai for librarians course. there were some really good final projects this term. yay, students! andromeda uncategorized comment december , december , though these be matrices, yet there is method in them. when i first trained a neural net on , theses to make hamlet, one of the things i most wanted to do is be able to visualize them. if word vec places documents ‘near’ each other in some kind of inferred conceptual space, we should be able to see some kind of map of them, yes? even if i don’t actually know what i’m doing? turns out: yes. and it’s even better than i’d imagined. , graduate theses, arranged by their conceptual similarity. let me take you on a tour! region is biochemistry. the red dots are biology; the orange ones, chemistry. theses here include positional cloning and characterization of the mouse pudgy locus and biosynthetic engineering for the assembly of better drugs. if you look closely, you will see a handful of dots in different colors, like a buttery yellow. this color is electrical engineering & computer science, and its dots in this region include computational regulatory genomics : motifs, networks, and dynamics — that is to say, a computational biology thesis that happens to have been housed in computation rather than biology. the green south of region is physics. but you will note a bit of orange here. yes, that’s chemistry again; for example, dynamic nuclear polarization of amorphous and crystalline small molecules. if (like me), you almost majored in chemistry and realized only your senior year that the only chemistry classes that interested you were the ones that were secretly physics…this is your happy place. in fact, most of the theses here concern nuclear magnetic resonance applications. region has a striking vertical green stripe which turns out to be the nuclear engineering department. but you’ll see some orange streaks curling around it like fingers, almost suggesting three-dimensional depth. i point this out as a reminder that the original neural net embeds these , documents in a -dimensional space; i have projected that down to dimensions because i don’t know about you but i find dimensions somewhat challenging to visualize. however — just as objects may overlap in a -dimensional photo even when they are quite distant in -dimensional space — dots that are close together in this projection may be quite far apart in reality. trust the overall structure more than each individual element. the map is not the territory. that little yellow thumb by region is mathematics, now a tiny appendage off of the giant discipline it spawned — our old friend buttery yellow, aka electrical engineering & computer science. if you zoom in enough you find eecs absolutely everywhere, applied to all manner of disciplines (as above with biology), but the bulk of it — including the quintessential parts, like compilers — is right here. dramatically red region , clustered together tightly and at the far end, is architecture. this is a renowned department (it graduated i.m. pei!), but definitely a different sort of creature than most of mit, so it makes sense that it’s at one extreme of the map. that said, the other two programs in its school — urban studies & planning and media arts & sciences — are just to its north. region — tiny, yellow, and pale; you may have missed it at first glance — is linguistics island, housing theses such as topics in the stress and syntax of words. you see how there are also a handful of red dots on this island? they are brain & cognitive science theses — and in particular, ones that are secretly linguistics, like intonational phrasing in language production and comprehension. similarly — although at mit it is not the department of linguistics, but the department of linguistics & philosophy — the philosophy papers are elsewhere. (a few of the very most abstract ones are hanging out near math.) and what about region , the stingray swimming vigorously away from everything else? i spent a long time looking at this and not seeing a pattern. you can tell there’s a lot of colors (departments) there, randomly assorted; even looking at individual titles i couldn’t see anything. only when i looked at the original documents did i realize that this is the island of terrible ocr. almost everything here is an older thesis, with low-quality printing or even typewriting, often in a regrettable font, maybe with the reverse side of the page showing through. (a randomly chosen example; pdf download.) a good reminder of the importance of high-quality digitization labor. a heartbreaking example of the things we throw away when we make paper the archival format for born-digital items. and also a technical inspiration — look how much vector space we’ve had to carve out to make room for these! the poor neural net, trying desperately to find signal in the noise, needing all this space to do it. i’m tempted to throw out the entire leftmost quarter of this graph, rerun the d projection, and see what i get — would we be better able to see the structures in the high-quality data if they had room to breathe? and were i to rerun the entire neural net training process again, i’d want to include some sort of threshhold score for ocr quality. it would be a shame to throw things away — especially since they will be a nonrandom sample, mostly older theses — but i have already had to throw away things i could not ocr at all in an earlier pass, and, again, i suspect the neural net would do a better job organizing the high-quality documents if it could use the whole vector space to spread them out, rather than needing some of it to encode the information “this is terrible ocr and must be kept away from its fellows”. clearly i need to share the technical details of how i did this, but this post is already too long, so maybe next week. tl;dr i reached out to matt miller after reading his cool post on vectorizing the dpla and he tipped me off to umap and here we are — thanks, matt! and just as clearly you want to play with this too, right? well, it’s super not ready to be integrated into hamlet due to any number of usability issues but if you promise to forgive me those — have fun. you see how when you hover over a dot you get a label with the format . -x.txt? it corresponds to a url of the format https://hamlet.andromedayelton.com/similar_to/x. go play :). andromeda uncategorized comments december , december , of such stuff are (deep)dreams made: convolutional networks and neural style transfer skipped fridai blogging last week because of thanksgiving, but let’s get back on it! top-of-mind today are the firing of ai queen timnit gebru (letter of support here) and a couple of grant applications that i’m actually eligible for (this is rare for me! i typically need things for which i can apply in my individual capacity, so it’s always heartening when they exist — wish me luck). but for blogging today, i’m gonna talk about neural style transfer, because it’s cool as hell. i started my ml-learning journey on coursera’s intro ml class and have been continuing with their deeplearning.ai sequence; i’m on course of there, so i’ve just gotten to neural style transfer. this is the thing where a neural net outputs the content of one picture in the style of another: via https://medium.com/@build_it_for_fun/neural-style-transfer-with-swift-for-tensorflow-b b . ok, so! let me explain while it’s still fresh. if you have a neural net trained on images, it turns out that each layer is responsible for recognizing different, and progressively more complicated, things. the specifics vary by neural net and data set, but you might find that the first layer gets excited about straight lines and colors; the second about curves and simple textures (like stripes) that can be readily composed from straight lines; the third about complex textures and simple objects (e.g. wheels, which are honestly just fancy circles); and so on, until the final layers recognize complex whole objects. you can interrogate this by feeding different images into the neural net and seeing which ones trigger the highest activation in different neurons. below, each × grid represents the most exciting images for a particular neuron. you can see that in this network, there are layer neurons excited about colors (green, orange), and about lines of particular angles that form boundaries between dark and colored space. in layer , these get built together like tiny image legos; now we have neurons excited about simple textures such as vertical stripes, concentric circles, and right angles. via https://adeshpande .github.io/the- -deep-learning-papers-you-need-to-know-about.html, originally from zeller & fergus, visualizing and understanding convolutional networks so how do we get from here to neural style transfer? we need to extract information about the content of one image, and the style of another, in order to make a third image that approximates both of them. as you already expect if you have done a little machine learning, that means that we need to write cost functions that mean “how close is this image to the desired content?” and “how close is this image to the desired style?” and then there’s a wrinkle that i haven’t fully understood, which is that we don’t actually evaluate these cost functions (necessarily) against the outputs of the neural net; we actually compare the activations of the neurons, as they react to different images — and not necessarily from the final layer! in fact, choice of layer is a hyperparameter we can vary (i super look forward to playing with this on the coursera assignment and thereby getting some intuition). so how do we write those cost functions? the content one is straightforward: if two images have the same content, they should yield the same activations. the greater the differences, the greater the cost (specifically via a squared error function that, again, you may have guessed if you’ve done some machine learning). the style one is beautifully sneaky; it’s a measure of the difference in correlation between activations across channels. what does that mean in english? well, let’s look at the van gogh painting, above. if an edge detector is firing (a boundary between colors), then a swirliness detector is probably also firing, because all the lines are curves — that’s characteristic of van gogh’s style in this painting. on the other hand, if a yellowness detector is firing, a blueness detector may or may not be (sometimes we have tight parallel yellow and blue lines, but sometimes yellow is in the middle of a large yellow region). style transfer posits that artistic style lies in the correlations between different features. see? sneaky. and elegant. finally, for the style-transferred output, you need to generate an image that does as well as possible on both cost functions simultaneously — getting as close to the content as it can without unduly sacrificing the style, and vice versa. as a side note, i think i now understand why deepdream is fixated on a really rather alarming number of eyes. since the layer choice is a hyperparameter, i hypothesize that choosing too deep a layer — one that’s started to find complex features rather than mere textures and shapes — will communicate to the system, yes, what i truly want is for you to paint this image as if those complex features are matters of genuine stylistic significance. and, of course, eyes are simple enough shapes to be recognized relatively early (not very different from concentric circles), yet ubiquitous in image data sets. so…this is what you wanted, right? the eager robot helpfully offers. https://www.ucreative.com/inspiration/google-deep-dream-is-the-trippiest-thing-in-the-internet/ i’m going to have fun figuring out what the right layer hyperparameter is for the coursera assignment, but i’m going to have so much more fun figuring out the wrong ones. andromeda uncategorized comments december , december , let’s visualize some hamlet data! or, d and t-sne for the lols. in , i trained a neural net on ~ k graduate theses using the doc vec algorithm, in hopes that doing so would provide a backend that could support novel and delightful discovery mechanisms for unique library content. the result, hamlet, worked better than i hoped; it not only pulls together related works from different departments (thus enabling discovery that can’t be supported with existing metadata), but it does a spirited job on documents whose topics are poorly represented in my initial data set (e.g. when given a fiction sample it finds theses from programs like media studies, even though there are few humanities theses in the data set). that said, there are a bunch of exploratory tools i’ve had in my head ever since that i’ve not gotten around to implementing. but here, in the spirit of tossing out things that don’t bring me joy (like ) and keeping those that do, i’m gonna make some data viz! there are only two challenges with this: by default doc vec embeds content in a -dimensional space, which is kind of hard to visualize. i need to project that down to or dimensions. i don’t actually know anything about dimensionality reduction techniques, other than that they exist. i also don’t know know javascript much beyond a copy-paste level. i definitely don’t know d , or indeed the pros and cons of various visualization libraries. also art. or, like, all that stuff in tufte’s book, which i bounced off of. (but aside from that, mr. lincoln, how was the play?) i decided i should start with the pages that display the theses most similar to a given thesis (shout-out to jeremy brown, startup founder par excellence) rather than with my ideas for visualizing the whole collection, because i’ll only need to plot ten or so points instead of k. this will make it easier for me to tell visually if i’m on the right track and should let me skip dealing with performance issues for now. on the down side, it means i may need to throw out any code i write at this stage when i’m working on the next one. 🤷‍♀️ and i now have a visualization on localhost! which you can’t see because i don’t trust it yet. but here are the problems i’ve solved thus far: it’s hard to copy-paste d examples on the internet. d ’s been around for long enough there’s substantial content about different versions, so you have to double-check. but also most of the examples are live code notebooks on observable, which is a wicked cool service but not the same environment as a web page! if you just copy-paste from there you will have things that don’t work due to invisible environment differences and then you will be sad. 😢 i got tipped off to this by mollie marie pettit’s great your first d scatterplot notebook, which both names the phenomenon and provides two versions of the code (the live-editable version and the one you can actually copy/paste into your editor). if you start googling for dimensionality reduction techniques you will mostly find people saying “use t-sne”, but t-sne is a lying liar who lies. mind you, it’s what i’m using right now because it’s so well-documented it was the easiest thing to set up. (this is why i said above that i don’t trust my viz.) but it produces different results for the same data on different pageloads (obviously different, so no one looking at the page will trust it either), and it’s not doing a good job preserving the distances i care about. (i accept that anything projecting from d down to d will need to distort distances, but i want to adequately preserve meaning — i want the visualization to not just look pretty but to give people an intellectually honest insight into the data — and i’m not there yet.) conveniently this is not my first time at the software engineering rodeo, so i encapsulated my dimensionality reduction strategy inside a function, and i can swap it out for whatever i like without needing to rewrite the d as long as i return the same data structure. so that’s my next goal — try out umap (hat tip to matt miller for suggesting that to me), try out pca, fiddle some parameters, try feeding it just the data i want to visualize vs larger neighborhoods, see if i’m happier with what i get. umap in particular alleges itself to be fast with large data sets, so if i can get it working here i should be able to leverage that knowledge for my ideas for visualizing the whole thing. onward, upward, et cetera. 🎉 andromeda uncategorized comments november , posts navigation older posts blog at wordpress.com. email (required) name (required) website   loading comments... comment × privacy & cookies: this site uses cookies. by continuing to use this website, you agree to their use. to find out more, including how to control cookies, see here: cookie policy what is known about getftr at the end of | disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email what is known about getftr at the end of posted on december , and updated on april ,     minute read in early december , a group of publishers announced get-full-text-research, or getftr for short. there was a heck of a response on social media, and the response was—on the whole—not positive from my librarian-dominated corner of twitter. for my early take on getftr, see my december rd blog post “publishers going-it-alone (for now?) with getftr.” as that post title suggests, i took the five founding getftr publishers to task on their take-it-or-leave-it approach. i think that is still a problem. to get you caught up, here is a list of other commentary. roger schonfeld’s december rd “publishers announce a major new service to plug leakage” piece in the scholarly kitchen tweet from herbert van de sompel, the lead author of the openurl spec, on solving the appropriate copy problem december th post “get to fulltext ourselves, not getftr.” on the open access button blog twitter thread on december th between @cshillum and @lisalibrarian on the positioning of getftr in relation to link resolvers and an unanswered question about how getftr aligns with library interests twitter thread started by @tac_niso on december th looking for more information with a link to an stm association presentation added by @aarontay a tree of tweets starting from @mrgunn’s [i don’t trust publishers to decide] is the crux of the whole thing. in particular, threads of that tweet that include jason griffey of niso saying he knew nothing about getftr and bernhard mittermaier’s point about hidden motivations behind getftr twitter thread started by @aarontay on december th saying “getftr is bad for researchers/readers and librarians. it only benefits publishers, change my mind.” lisa janicke hinchliffe’s december th “why are librarians concerned about getftr?” in the scholarly kitchen and take note of the follow-up discussion in the comments twitter thread between @alison_mudditt and @lisalibrarian clarifying plos is not on the advisory board with some @tac_niso as well. ian mulvany’s december th “thoughts on getftr” on scholcommsprod getftr’s december th “updating the community” post on their website the spanish federation of associations of archivists, librarians, archaeologists, museologists and documentalists (anabad)’s december th “getftr: new publishers service to speed up access to research articles” (original in spanish, google translate to english) december th news entry from econtent pro with the title “what getftr means for journal article access” which i’ll only quarrel with this sentence: “thus, getftr is a service where academic articles are found and provided to you at absolutely no cost.” no—if you are in academia the cost is born by your library even if you don’t see it. but this seems like a third party service that isn’t directly related to publishers or libraries, so perhaps they can be forgiven for not getting that nuance. wiley’s chemistry views news post on december th titled simply “get full text research (getftr)” is perhaps only notable for the sentence “growing leakage has steadily eroded the ability of the publishers to monetize the value they create.” if you are looking for a short list of what to look at, i recommend these posts. getftr’s community update on december —after the two posts i list below—an “updating the community” web page was posted to the getftr website. from a public relations perspective, it was…interesting. we are committed to being open and transparent this section goes on to say, “if the community feels we need to add librarians to our advisory group we will certainly do so and we will explore ways to ensure we engage with as many of our librarian stakeholders as possible.” if the getftr leadership didn’t get the indication between december and december that librarians feel strongly about being at the table, then i don’t know what will. and it isn’t about being on the advisory group; it is about being seen and appreciated as important stakeholders in the research discovery process. i’m not sure who the “community” is in this section, but it is clear that librarians are—at best—an afterthought. that is not the kind of “open and transparent” that is welcoming. later on in the questions about library link resolvers section is this sentence: we have, or are planning to, consult with existing library advisory boards that participating publishers have, as this enables us to gather views from a significant number of librarians from all over the globe, at a range of different institutions. as i said in my previous post, i don’t know why getftr is not engaging in existing cross-community (publisher/technology-supplier/library) organizations to have this discussion. it feels intentional, which colors the perception of what the publishers are trying to accomplish. to be honest, i don’t think the publishers are using getftr to drive a wedge between library technology service providers (who are needed to make getftr a reality for libraries) and libraries themselves. but i can see how that interpretation could be made. understandably, we have been asked about privacy. i punted on privacy in my previous post, so let’s talk about it here. it remains to be seen what is included in the getftr api request between the browser and the publisher site. sure, it needs to include the doi and a token that identifies the patron’s institution. we can inspect that api request to ensure nothing else is included. but the fact that the design of getftr has the browser making the call to the publisher site means that the publisher site knows the ip address of the patron’s browser, and the ip address can be considered personally identifiable information. this issue could be fixed by having the link resolver or the discovery layer software make the api request, and according to the questions about library link resolvers section of the community update, this may be under consideration. so, yes, an auditable privacy policy and implementation is key for for getftr. getftr is fully committed to supporting third-party aggregators this is good to hear. i would love to see more information published about this, including how discipline-specific repositories and institutional repositories can have their holdings represented in getftr responses. my take-a-ways in the second to last paragraph: “researchers should have easy, seamless pathways to research, on whatever platform they are using, wherever they are.” that is a statement that i think every library could sign onto. this updating the community is a good start, but the project has dug a deep hole of trust and it hasn’t reached level ground yet. lisa janicke hinchliffe’s “why are librarians concerned about getftr?” posted on december th in the scholarly kitchen, lisa outlines a series of concerns from a librarian perspective. i agree with some of these; others are not an issue in my opinion. librarian concern: the connection to seamless access many librarians have expressed a concern about how patron information can leak to the publisher through ill-considered settings at an institution’s identity provider. seamless access can ease access control because it leverages a campus’ single sign-on solution—something that a library patron is likely to be familiar with. if the institution’s identity provider is overly permissive in the attributes about a patron that get transmitted to the publisher, then there is a serious risk of tying a user’s research activity to their identity and the bad things that come from that (patrons self-censoring their research paths, commoditization of patron activity, etc.). i’m serving on a seamless access task force that is addressing this issue, and i think there are technical, policy, and education solutions to this concern. in particular, i think some sort of intermediate display of the attributes being transmitted to the publisher is most appropriate. librarian concern: the limited user base enabled as lisa points out, the population of institutions that can take advantage of seamless access, a prerequisite for getftr, is very small and weighted heavily towards well-resourced institutions. to the extent that projects like seamless access (spurred on by a desire to have getftr-like functionality) helps with the adoption of saml-based infrastructure like shibboleth, then the whole academic community benefits from a shared authentication/identity layer that can be assumed to exist. librarian concern: the insertion of new stumbling blocks of the issues lisa mentioned here, i’m not concerned about users being redirected to their campus single sign-on system in multiple browsers on multiple machines. this is something we should be training users about—there is a single website to put your username/password into for whatever you are accessing at the institution. that a user might already be logged into the institution single sign-on system in the course of doing other school work and never see a logon screen is an attractive benefit to this system. that said, it would be useful for an api call from a library’s discovery layer to a publisher’s getftr endpoint to be able to say, “this is my user. trust me when i say that they are from this institution.” if that were possible, then the seamless access where-are-you-from service could be bypassed for the getftr purpose of determining whether a user’s institution has access to an article on the publisher’s site. it would sure be nice if librarians were involved in the specification of the underlying protocols early on so these use cases could be offered. update lisa reached out on twitter to say (in part): “issue is getftr doesn’t redirect and sa doesnt when you are ipauthenticated. hence user ends up w mishmash of experience.” i went back to read her scholarly kitchen post and realized i did not fully understand her point. if getftr is relying on a seamless access token to know which institution a user is coming from, then that token must get into the user’s browser. the details we have seen about getftr don’t address how that seamless access institution token is put in the user’s browser if the user has not been to the seamless access select-your-institution portal. one such case is when the user is coming from an ip-address-authenticated computer on a campus network. do the getftr indicators appear even when the seamless access institution token is not stored in the browser? if at the publisher site the getftr response also uses the institution ip address table to determine entitlements, what does a user see when they have neither the seamless access institution token nor the institution ip address? and, to lisa’s point, how does one explain this disparity to users? is the situation better if the getftr determination is made in the link resolver rather than in the user browser? librarian concern: exclusion from advisory committee see previous paragraph. that librarians are not at the table offering use cases and technical advice means that the developers are likely closing off options that meet library needs. addressing those needs would ease the acceptance of the getftr project as mutually beneficial. so an emphatic “agree!” with lisa on her points in this section. publishers—what were you thinking? librarian concern: getftr replacing the library link resolver libraries and library technology companies are making significant investments in tools that ease the path from discovery to delivery. would the library’s link resolver benefit from a real-time api call to a publisher’s service that determines the direct url to a specific doi? oh, yes—that would be mighty beneficial. the library could put that link right at the top of a series of options that include a link to a version of the article in a green open access repository, redirection to a content aggregator, one-click access to an interlibrary-loan form, or even an option where the library purchases a copy of the article on behalf of the patron. (more likely, the link resolver would take the patron right to the article url supplied by getftr, but the library link resolver needs to be in the loop to be able to offer the other options.) my take-a-ways the patron is affiliated with the institution, and the institution (through the library) is subscribing to services from the publisher. the institution’s library knows best what options are available to the patron (see above section). want to know why librarians are concerned? because they are inserting themselves as the arbiter of access to content, whether it is in the patron’s best interest or not. it is also useful to reinforce lisa’s closing paragraph: whether getftr will act to remediate these concerns remains to be seen. in some cases, i would expect that they will. in others, they may not. publishers’ interests are not always aligned with library interests and they may accept a fraying relationship with the library community as the price to pay to pursue their strategic goals. ian mulvany’s “thoughts on getftr” ian’s entire post from december th in scholcommsprod is worth reading. i think it is an insightful look at the technology and its implications. here are some specific comments: clarifying the relation between seamlessaccess and getftr there are a couple of things that i disagree with: ok, so what is the difference, for the user, between seamlessaccess and getftr? i think that the difference is the following - with seamless access you the user have to log in to the publisher site. with getftr if you are providing pages that contain dois (like on a discovery service) to your researchers, you can give them links they can click on that have been setup to get those users direct access to the content. that means as a researcher, so long as the discovery service has you as an authenticated user, you don’t need to even think about logins, or publisher access credentials. to the best of my understanding, this is incorrect. with seamlessaccess, the user is not “logging into the publisher site.” if the publisher site doesn’t know who a user is, the user is bounced back to their institution’s single sign-on service to authenticate. if the publisher site doesn’t know where a user is from, it invokes the seamlessaccess where-are-you-from service to learn which institution’s single sign-on service is appropriate for the user. if a user follows a getftr-supplied link to a publisher site but the user doesn’t have the necessary authentication token from the institution’s single sign-on service, then they will be bounced back for the username/password and redirected to the publisher’s site. getftr signaling that an institution is entitled to view an article does not mean the user can get it without proving that they are a member of the institution. what does this mean for green open access a key point that ian raises is this: one example of how this could suck, lets imagine that there is a very usable green oa version of an article, but the publisher wants to push me to using some “e-reader limited functionality version” that requires an account registration, or god forbid a browser exertion, or desktop app. if the publisher shows only this limited utility version, and not the green version, well that sucks. oh, yeah…that does suck, and it is because the library—not the publisher of record—is better positioned to know what is best for a particular user. will getftr be adopted? ian asks, “will google scholar implement this, will other discovery services do so?” i do wonder if getftr is big enough to attract the attention of google scholar and microsoft research. my gut tells me “no”: i don’t think google and microsoft are going to add getftr buttons to their search results screens unless they are paid a lot. as for google scholar, it is more likely that google would build something like getftr to get the analytics rather than rely on a publisher’s version. i’m even more doubtful that the companies pushing getftr can convince discovery layers makers to embed getftr into their software. since the two widely adopted discovery layers (in north america, at least) are also aggregators of journal content, i don’t see the discovery-layer/aggregator companies devaluing their product by actively pushing users off their site. my take-a-ways it is also useful to reinforce ian’s closing paragraph: i have two other recommendations for the getftr team. both relate to building trust. first up, don’t list orgs as being on an advisory board, when they are not. secondly it would be great to learn about the team behind the creation of the service. at the moment its all very anonymous. where do we stand? wow, i didn’t set out to write , words on this topic. at the start i was just taking some time to review everything that happened since this was announced at the start of december and see what sense i could make of it. it turned into a literature review of sort. while getftr has some powerful backers, it also has some pretty big blockers: can getftr help spur adoption of seamless access enough to convince big and small institutions to invest in identity provider infrastructure and single sign-on systems? will getftr grab the interest of google, google scholar, and microsoft research (where admittedly a lot of article discovery is already happening)? will developers of discovery layers and link resolvers prioritize getftr implementation in their services? will libraries find enough value in getftr to enable it in their discovery layers and link resolvers? would libraries argue against getftr in learning management systems, faculty profile systems, and other campus systems if its own services cannot be included in getftr displays? i don’t know, but i think it is up to the principles behind getftr to make more inclusive decisions. the next steps is theirs. tags: discovery, getftr, niso, openurl, ra , seamlessaccess categories: linking technologies twitter facebook linkedin previous next you may also enjoy more thoughts on pre-recording conference talks minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion abo... should all conference talks be pre-recorded? minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and con... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. zbw labs zbw labs data donation to wikidata, part : country/subject dossiers of the th century press archives the world's largest public newspaper clippings archive comprises lots of material of great interest particularly for authors and readers in the wikiverse. zbw has digitized the material from the first half of the last century, and has put all available metadata under a cc license. more so, we are donating that data to wikidata, by adding or enhancing items and providing ways to access the dossiers (called "folders") and clippings easily from there. challenges of modelling a complex faceted classification in wikidata that had been done for the persons' archive in - see our prior blog post. for persons, we could just link from existing or a few newly created person items to the biographical folders of the archive. the countries/subjects archives provided a different challenge: the folders there were organized by countries (or continents, or cities in a few cases, or other geopolitical categories), and within the country, by an extended subject category system (available also as skos). to put it differently: each folder was defined by a geo and a subject facet - a method widely used in general purpose press archives, because it allowed a comprehensible and, supported by a signature system, unambiguous sequential shelf order, indispensable for quick access to the printed material.folders specifically about one significant topic (like the treaty of sèvres) are rare in the press archives, whereas country/subject combinations are rare among wikidata items - so direct linking between existing items and pm folders was hardly achievable. the folders in themselves had to be represented as wikidata items, just like other sources used there. here however we did not have works or scientific articles, but thematic mini-collections of press clippings, often not notable in themselves and normally without further formal bibliographic data. so a class of pm country/subject folder was created (as subclass of dossier, a collection of documents). aiming at items for each folder - and having them linked via pm folder id (p ) to the actual press archive folders was yet only part of the solution.in order to represent the faceted structure of the archive, we needed anchor points for both facets. that was easy for the geographical categories: the vast majority of them already existed as items in wikidata, a few historical ones, such as russian peripheral countries, had to be created. for the subject categories, the situation was much different. categories such as the country and its people, politics and economy, general or postal services, telegraphy and telephony were constructed as baskets for collecting articles on certain broader topics. they do not have an equivalent in wikidata, which tries to describe real world entities or clear-cut concepts. we decided therefore to represent the categories of the subject category system with their own items of type pm subject category. each of the about categories is connected to the upper one via a "part of" (p ) property, thus forming a five-level hierarchy.more implementation subtletiesfor both facets, according wikidata properties where created as "pm geo code" (p ) and "pm subject code" (p ). as external identifiers, they link directly to lists of subjects (e.g., for japan) or geographical entities (e.g., for the country ..., general). for all countries where the press archives material has been processed - this includes the tedious task of clarifying the intellectual property rights status of each article -, the wikidata item for the country includes now a link to a list of all press archives dossiers about this country, covering the first half of the th century. the folders represented in wikidata (e.g., japan : the country ..., general) use "facet of" (p ) and "main subject" (p ) properties to connect to the items for the country and subject categories. thus, not only each of the , accessible folders of the pm country/subject archive is accessible via wikidata. since the structural metadata of pm is available, too, it can be queried in its various dimensions - see for example the list of top level subject categories with the number of folders and documents, or a list of folders per country, ordered by signature (with subtleties covered by a "series ordial" (p ) qualifier). the interactive map of subject folders as shown above is also created by a sparql query, and gives a first impression of the geographical areas covered in depth - or yet only sparsely - in the online archive.core areas: worldwide economy, worldwide colonialismthe online data reveals core areas of attention during years of press clippings collection until . economy, of course, was in the focus of the former hwwa (hamburg archive for the international economy), in germany and namely hamburg, as well as in every other country. more than half of all subject categories are part of the n economy section of the category system and give in , folders very detailed access to the field. about , of the almost , online documents of the archive are part of this section, followed by history and general politics, foreign policy, and public finance, down to more peripheral topics like settling and migration, minorities, justice or literature. originating in the history of the institution (which was founded as "zentralstelle des hamburgischen kolonialinstituts", the central office of the hamburg colonial institute) colonial efforts all over the world were monitored closely. we published with priority the material about the former german colonies, listed in the archivführer deutsche kolonialgeschichte (archive guide to the german colonial past, also interconnected to wikidata). originally collected to support the aggressive and inhuman policy of the german empire, it is now available to serve as research material for critical analysis in the emerging field of colonial and postcolonial studies.enabling future community effortswhile all material about the german colonies (and some about the italian ones) is online, and accessible now via wikidata, this is not true for the former british/french/dutch/belgian colonies. while japan or argentina are accessible completely, china, india or the us are missing, as well as most of the european countries. and while + folders about hamburg cover it's contemporary history quite well, the vast majority of the material about germany as a whole is only accessible "on premises" within zbw's locations. it however is available as digital images, and can be accessed through finding aids (in german), which in the reading rooms directly link to a document viewer. the metadata for this material is now open data and can be changed and enhanced in wikidata. a very selective example how that could work is a topic in german-danish history - the schleswig plebiscites. the pm folder about these events was not part of the published material, but got some interest with last year's centenary. the pm metadata on wikidata made it possible to create an according folder completely in wikidata, nordslesvig : historical events, with a (provisional) link to a stretch of images on a digitized film. while the checking and activation of these images for the public was a one-time effort in the context of an open science event, the creation of a new pm folder on wikidata may demonstrate how open metadata can be used by a dedicated community of knowledge to enable access to not-yet-open knowledge. current intellectual property law in the eu forbids open access to all digitized clippings from newspapers published in until , and all where the death date of a named author is not known until after . of course, we hope for a change in that obstrusive legislation in a not-so-far future. we are confident that the metadata about the material, now in wikidata, will help bridging the gap until it will finally be possible to use all digitized press archives contents as open scientific and educational resources, within and outside of the wikimedia projects. more information at wikiproject th century press archives, which links also to the code for creating this data donation. pressemappe . jahrhundert wikidata &# ; building the swib participants map   here we describe the process of building the interactive swib participants map, created by a query to wikidata. the map was intended to support participants of swib to make contacts in the virtual conference space. however, in compliance with gdpr we want to avoid publishing personal details. so we choose to publish a map of institutions, to which the participants are affiliated. (obvious downside: the un-affiliated participants could not be represented on the map). we suppose that the method can be applied to other conferences and other use cases - e.g., the downloaders of scientific software or the institutions subscribed to an academic journal. therefore, we describe the process in some detail. we started with a list of institution names (with country code and city, but without person ids), extracted and transformed from our conftool registration system, saved it in csv format. country names were normalized, cities were not (and only used for context information). we created an openrefine project, and reconciled the institution name column with wikidata items of type q (organization, and all its subtypes). we included the country column (-> p , country) as relevant other detail, and let openrefine “auto-match candidates with high confidence”. of our original set of country/institution entries, were automaticaly matched via the wikidata reconciliation service. at the end of the conference, institutions were identified and put on the map (data set). we went through all un-matched entries and either a) selected one of the suggested items, or b) looked up and tweaked the name string in wikidata, or in google, until we found an according wikipedia page, openend the linked wikidata object from there, and inserted the qid in openrefine, or c) created a new wikidata item (if the institution seemed notable), or d) attached “not yet determined” (q ) where no wikidata item (yet) exists, or e) attached “undefined value” (q ) where no institution had been given the results were exported from openrefine into a .tsv file (settings) again via a script, we loaded conftool participants data, built a lookup table from all available openrefine results (country/name string -> wd item qid), aggregated participant counts per qid, and loaded that data into a custom sparql endpoint, which is accessible from the wikidata query service. as in step , for all (new) institution name strings, which were not yet mapped to wikidata, a .csv file was produced. (an additional remark: if no approved custom sparql endpoint is available, it is feasible to generate a static query with all data in it’s “values” clause.) during the preparation of the conference, more and more participants registered, which required multiple loops: use the csv file of step and re-iterate, starting at step . (since i found no straightforward way to update an existing openrefine project with extended data, i created a new project with new input and output files for every iteration.) finally, to display the map we could run a federated query on wdqs. it fetches the institution items from the custom endpoint and enriches them from wikidata with name, logo and image of the institution (if present), as well as with geographic coordinates, obtained directly or indirectly as follows: a) item has “coodinate location” (p ) itself, or b) item has “headquarters location” item with coordinates (p /p ), or c) item has “located in administrative entity” item with coordinates (p /p ), or c) item has “country” item (p /p ) applying this method, only one institution item could not be located on the map. data improvements the way to improve the map was to improve the data about the items in wikidata - which also helps all future wikidata users. new items for a few institutions, new items were created: burundi association of librarians, archivists and documentalists fao representation in kenya aurora information technology istituto di informatica giuridica e sistemi giudiziari for another institutions, mostly private companies, no items were created due to notability concerns. everything else already had an item in wikidata! improvement of existing items in order to improve the display on the map, we enhanced selected items in wikidata in various ways: add english label add type (instance of) add headquarter location add image and/or logo and we hope, that participants of the conference also took the opportunity to make their institution “look better”, by adding for example an image of it to the wikidata knowledge base. putting wikidata into use for a completely custom purpose thus created incentives for improving “the sum of all human knowledge” step by tiny step.       wikidata for authorities linked data &# ; deutsch journal map: developing an open environment for accessing and analyzing performance indicators from journals in economics by franz osorio, timo borst introduction bibliometrics, scientometrics, informetrics and webometrics have been both research topics and practical guidelines for publishing, reading, citing, measuring and acquiring published research for a while (hood ). citation databases and measures had been introduced in the s, becoming benchmarks both for the publishing industry and academic libraries managing their holdings and journal acquisitions that tend to be more selective with a growing number of journals on the one side, budget cuts on the other. due to the open access movement triggering a transformation of traditional publishing models (schimmer ), and in the light of both global and distributed information infrastructures for publishing and communicating on the web that have yielded more diverse practices and communities, this situation has dramatically changed: while bibliometrics of research output in its core understanding still is highly relevant to stakeholders and the scientific community, visibility, influence and impact of scientific results has shifted to locations in the world wide web that are commonly shared and quickly accessible not only by peers, but by the general public (thelwall ). this has several implications for different stakeholders who are referring to metrics in dealing with scientific results:   with the rise of social networks, platforms and their use also by academics and research communities, the term 'metrics' itself has gained a broader meaning: while traditional citation indexes only track citations of literature published in (other) journals, 'mentions', 'reads' and 'tweets', albeit less formal, have become indicators and measures for (scientific) impact. altmetrics has influenced research performance, evaluation and measurement, which formerly had been exclusively associated with traditional bibliometrics. scientists are becoming aware of alternative publishing channels and both the option and need of 'self-advertising' their output. in particular academic libraries are forced to manage their journal subscriptions and holdings in the light of increasing scientific output on the one hand, and stagnating budgets on the other. while editorial products from the publishing industry are exposed to a global competing market requiring a 'brand' strategy, altmetrics may serve as additional scattered indicators for scientific awareness and value. against this background, we took the opportunity to collect, process and display some impact or signal data with respect to literature in economics from different sources, such as 'traditional' citation databases, journal rankings and community platforms resp. altmetrics indicators: citec. the long-standing citation service maintainted by the repec community provided a dump of both working papers (as part of series) and journal articles, the latter with significant information on classic impact factors such as impact factor ( and years) and h-index. rankings of journals in economics including scimago journal rank (sjr) and two german journal rankings, that are regularly released and updated (vhb jourqual, handelsblatt ranking). usage data from altmetric.com that we collected for those articles that could be identified via their digital object identifier. usage data from the scientific community platform and reference manager mendeley.com, in particular the number of saves or bookmarks on an individual paper. requirements a major consideration for this project was finding an open environment in which to implement it. finding an open platform to use served a few purposes. as a member of the "leibniz research association," zbw has a commitment to open science and in part that means making use of open technologies to as great extent as possible (the zbw - open scienc...). this open system should allow direct access to the underlying data so that users are able to use it for their own investigations and purposes. additionally, if possible the user should be able to manipulate the data within the system. the first instance of the project was created in tableau, which offers a variety of means to express data and create interfaces for the user to filter and manipulate data. it also can provide a way to work with the data and create visualizations without programming skills or knowledge. tableau is one of the most popular tools to create and deliver data visualization in particular within academic libraries (murphy ). however, the software is proprietary and has a monthly fee to use and maintain, as well as closing off the data and making only the final visualization available to users. it was able to provide a starting point for how we wanted to the data to appear to the user, but it is in no way open. challenges the first technical challenge was to consolidate the data from the different sources which had varying formats and organizations. broadly speaking, the bibliometric data (citec and journal rankings) existed as a spread sheet with multiple pages, while the altmetrics and mendeley data came from a database dumps with multiple tables that were presented as several csv files. in addition to these different formats, the data needed to be cleaned and gaps filled in. the sources also had very different scopes. the altmetrics and mendeley data covered only journals, the bibliometric data, on the other hand, had more than , journals. transitioning from tableau to an open platform was big challenge. while there are many ways to create data visualizations and present them to users, the decision was made to use r to work with the data and shiny to present it. r is used widely to work with data and to present it (kläre ). the language has lots of support for these kinds of task over many libraries. the primary libraries used were r plotly and r shiny. plotly is a popular library for creating interactive visualizations. without too much work plotly can provide features including information popups while hovering over a chart and on the fly filtering. shiny provides a framework to create a web application to present the data without requiring a lot of work to create html and css. the transition required time spent getting to know r and its libraries, to learn how to create the kinds of charts and filters that would be useful for users. while shiny alleviates the need to create html and css, it does have a specific set of requirements and structures in order to function. the final challenge was in making this project accessible to users such that they would be able to see what we had done, have access to the data, and have an environment in which they could explore the data without needing anything other than what we were providing. in order to achieve this we used binder as the platform. at it's most basic binder makes it possible to share a jupyter notebook stored in a github repository with a url by running the jupyter notebook remotely and providing access through a browser with no requirements placed on the user. additionally, binder is able to run a web application using r and shiny. to move from a locally running instance of r shiny to one that can run in binder, instructions for the runtime environment need to be created and added to the repository. these include information on what version of the language to use,  which packages and libraries to install for the language, and any additional requirements there might be to run everything. solutions given the disparate sources and formats for the data, there was work that needed to be done to prepare it for visualization. the largest dataset, the bibliographic data, had several identifiers for each journal but without journal names. having the journals names is important because in general the names are how users will know the journals. adding the names to the data would allow users to filter on specific journals or pull up two journals for a comparison. providing the names of the journals is also a benefit for anyone who may repurpose the data and saves them from having to look them up. in order to fill this gap, we used metadata available through research papers in economics (repec). repec is an organization that seeks to "enhance the dissemination of research in economics and related sciences". it contains metadata for more than million papers available in different formats. the bibliographic data contained repec handles which we used to look up the journal information as xml and then parse the xml to find the title of the journal.  after writing a small python script to go through the repec data and find the missing names there were only journals whose names were still missing. for the data that originated in an mysql database, the major work that needed to be done was to correct the formatting. the data was provided as csv files but it was not formatted such that it could be used right away. some of the fields had double quotation marks and when the csv file was created those quotes were put into other quotation marks resulting doubled quotation marks which made machine parsing difficult without intervention directly on the files. the work was to go through the files and quickly remove the doubled quotation marks. in addition to that, it was useful for some visualizations to provide a condensed version of the data. the data from the database was at the article level which is useful for some things, but could be time consuming for other actions. for example, the altmetrics data covered only journals but had almost , rows. we could use the python library pandas to go through the all those rows and condense the data down so that there are only rows with the data for each column being the sum of all rows. in this way, there is a dataset that can be used to easily and quickly generate summaries on the journal level. shiny applications require a specific structure and files in order to do the work of creating html without needing to write the full html and css. at it's most basic there are two main parts to the shiny application. the first defines the user interface (ui) of the page. it says what goes where, what kind of elements to include, and how things are labeled. this section defines what the user interacts with by creating inputs and also defining the layout of the output. the second part acts as a server that handles the computations and processing of the data that will be passed on to the ui for display. the two pieces work in tandem, passing information back and forth to create a visualization based on user input. using shiny allowed almost all of the time spent on creating the project to be concentrated on processing the data and creating the visualizations. the only difficulty in creating the frontend was making sure all the pieces of the ui and server were connected correctly. binder provided a solution for hosting the application, making the data available to users, and making it shareable all in an open environment. notebooks and applications hosted with binder are shareable in part because the source is often a repository like github. by passing a github repository to binder, say one that has a jupyter notebook in it, binder will build a docker image to run the notebook and then serve the result to the user without them needing to do anything. out of the box the docker image will contain only the most basic functions. the result is that if a notebook requires a library that isn't standard, it won't be possible to run all of the code in the notebook. in order to address this, binder allows for the inclusion in a repository of certain files that can define what extra elements should be included when building the docker image. this can be very specific such as what version of the language to use and listing various libraries that should be included to ensure that the notebook can be run smoothly. binder also has support for more advanced functionality in the docker images such as creating a postgres database and loading it with data. these kinds of activities require using different hooks that binder looks for during the creation of the docker image to run scripts. results and evaluation the final product has three main sections that divide the data categorically into altmetrics, bibliometrics, and data from mendeley. there are additionally some sections that exist as areas where something new could be tried out and refined without potentially causing issues with the three previously mentioned areas. each section has visualizations that are based on the data available. considering the requirements for the project, the result goes a long way to meeting the requirements. the most apparent area that the journal map succeeds in is its goals is of presenting data that we have collected. the application serves as a dashboard for the data that can be explored by changing filters and journal selections. by presenting the data as a dashboard, the barrier to entry for users to explore the data is low. however, there exists a way to access the data directly and perform new calculations, or create new visualizations. this can be done through the application's access to an r-studio environment. access to r-studio provides two major features. first, it gives direct access to the all the underlying code that creates the dashboard and the data used by it. second, it provides an r terminal so that users can work with the data directly. in r-studio, the user can also modify the existing files and then run them from r-studio to see the results. using binder and r as the backend of the applications allows us to provide users with different ways to access and work with data without any extra requirements on the part of the user. however, anything changed in r-studio won't affect the dashboard view and won't persist between sessions. changes exist only in the current session. all the major pieces of this project were able to be done using open technologies: binder to serve the application, r to write the code, and github to host all the code. using these technologies and leveraging their capabilities allows the project to support the open science paradigm that was part of the impetus for the project. the biggest drawback to the current implementation is that binder is a third party host and so there are certain things that are out of our control. for example, binder can be slow to load. it takes on average + minutes for the docker image to load. there's not much, if anything, we can do to speed that up. the other issue is that if there is an update to the binder source code that breaks something, then the application will be inaccessible until the issue is resolved. outlook and future work the application, in its current state, has parts that are not finalized. as we receive feedback, we will make changes to the application to add or change visualizations. as mentioned previously, there a few sections that were created to test different visualizations independently of the more complete sections, those can be finalized. in the future it may be possible to move from binderhub to a locally created and administered version of binder. there is support and documentation for creating local, self hosted instances of binder. going that direction would give more control, and may make it possible to get the docker image to load more quickly. while the application runs stand-alone, the data that is visualized may also be integrated in other contexts. one option we are already prototyping is integrating the data into our subject portal econbiz, so users would be able to judge the scientific impact of an article in terms of both bibliometric and altmetric indicators.   references william w. hood, concepcion s. wilson. the literature of bibliometrics, scientometrics, and informetrics. scientometrics , – springer science and business media llc, . link r. schimmer. disrupting the subscription journals’ business model for the necessary large-scale transformation to open access. ( ). link mike thelwall, stefanie haustein, vincent larivière, cassidy r. sugimoto. do altmetrics work? twitter and ten other social web services. plos one , e public library of science (plos), . link the zbw - open science future. link sarah anne murphy. data visualization and rapid analytics: applying tableau desktop to support library decision-making. journal of web librarianship , – informa uk limited, . link christina kläre, timo borst. statistic packages and their use in research in economics | edawax - blog of the project ’european data watch extended’. edawax - european data watch extended ( ). link   journal map - binder application for displaying and analyzing metrics data about scientific journals integrating altmetrics into a subject repository - econstor as a use case back in the zbw leibniz information center for economics (zbw) teamed up with the göttingen state and university library (sub), the service center of götting library federation (vzg) and gesis leibniz institute for the social sciences in the *metrics project funded by the german research foundation (dfg). the aim of the project was: “… to develop a deeper understanding of *metrics, especially in terms of their general significance and their perception amongst stakeholders.” (*metrics project about). in the practical part of the project the following dspace based repositories of the project partners participated as data sources for online publications and – in the case of econstor – also as implementer for the presentation of the social media signals: econstor - a subject repository for economics and business studies run by the zbw, currently (aug. ) containing round about , downloadable files, goescholar - the publication server of the georg-august-universität göttingen run by the sub göttingen, offering approximately , publicly browsable items so far, ssoar - the “social science open access repository” maintained by gesis, currently containing about , publicly available items. in the work package “technology analysis for the collection and provision of *metrics” of the project an analysis of currently available *metrics technologies and services had been performed. as stated by [wilsdon ], currently suppliers of altmetrics “remain too narrow (mainly considering research products with dois)”, which leads to problems to acquire *metrics data for repositories like econstor with working papers as the main content. as up to now it is unusual – at least in the social sciences and economics – to create dois for this kind of documents. only the resulting final article published in a journal will receive a doi. based on the findings in this work package, a test implementation of the *metrics crawler had been built. the crawler had been actively deployed from early to spring at the vzg. for the aggregation of the *metrics data the crawler had been fed with persistent identifiers and metadata from the aforementioned repositories. at this stage of the project, the project partners still had the expectation, that the persistent identifiers (e.g. handle, urns, …), or their local url counterparts, as used by the repositories could be harnessed to easily identify social media mentions of their documents, e.g. for econstor: handle: “hdl: /…” handle.net resolver url: “http(s)://hdl.handle.net/ /…” econstor landing page url with handle: “http(s)://www.econstor.eu/handle/ /…” econstor bitstream (pdf) url with handle: “http(s)://www.econstor.eu/bitstream/ /…” this resulted in two datasets: one for publications identified by dois (doi: .xxxx/yyyyy) or the respective metadata from crossref and one for documents identified by the repository urls (https://www.econstor.eu/handle/ /xxxx) or the items metadata stored in the repository. during the first part of the project several social media platforms had been identified as possible data sources for the implementation phase. this had been done by interviews and online surveys. for the resulting ranking see the social media registry. additional research examined which social media platforms are relevant to researchers at different stages of their career and if and how they use them (see: [lemke ], [lemke ] and [mehrazar ]). this list of possible sources for social media citations or mentions had then been further reduced to the following six social media platforms which are offering free and open available online apis: facebook mendeley reddit twitter wikipedia youtube of particular interest to the econstor team were the social media services mendeley and twitter, as those had been found being among the “top most used altmetric sources …” for economic and business studies (ebs) journals “… - with mendeley being the most complete platform for ebs journals” [nuredini ]. *metrics integration in econstor in early the econstor team finally received a mysql data dump of the compiled data which had been collected by the *metrics crawler. in consultations between the project partners and based on the aforementioned research, it became clear, that only the collected data from mendeley, twitter and wikipedia were suitable to be embedded into econstor. it was also made clear, by the vzg, that it had been nearly impossible to use handle or respective local urls to extract social media mentions from the free of charge provided apis of the different social media services. instead, in case of wikipedia isbns had been used and for mendeley the title and author(s) as provided in the repository’s metadata. only for the search via the twitter api the handle urls had been used. the datasets used by the *metrics crawler to identify works from econstor included a dataset of , dois (~ % of the econstor content back then), sometimes representing other manifestations of the documents stored in econstor (e.g. pre- or postprint versions of an article), their respective metadata from the crossref doi registry and also a dataset of , econstor documents identified by the handle/url and metadata stored in the repository itself. this second dataset also included the documents related to the publications identified by the doi set. the following table (table ) shows the results of the *metrics crawler for items in econstor. it displays one row for each service and the used identifier set. each row also shows the time period during which the crawler harvested the service and how many unique items per identifier set were found during that period. social media service (set) harvested from harvested until unique econstor items mentioned mendeley (doi) - - - - , mendeley (url) - - - - , twitter (doi) - - (date of first captured tweet - - ) - - (date of last captured tweet - - ) twitter (url) - - (date of first captured tweet - - ) - - (date of last captured tweet - - ) wikipedia (doi) - - - - wikipedia (url) - - - - table : unique econstor items found per identifier set and social media service the following table (table ) shows how many of the econstor items were found with identifiers from both sets. as you can see, only for the service mendeley the sets have a significant overlap. which shows, that it is desirable for a service such as econstor, to expand the captured coverage of its items in social media by the use of other identifies than just dois. social media site unique items identified by both doi and url mendeley , twitter wikipedia table : overlap in found identifiers as a result of the project, the landing pages of econstor items, which have been mentioned on mendeley, twitter or wikipedia during the time of data gathering, have now, for the time being, a listing of “social media mentions”. this is in addition to the already existing cites and citations, based on the repec - citec service and the download statistics, which is displayed on separate pages. image : “econstor item landing page” the back end on the econstor server is realized as a small restful web service programmed in java that returns json formatted data (see figure ). given a list of identifiers (dois/handle) it returns the sum of mentions for mendeley, twitter and wikipedia in the database, per specified econstor item, as well as the links to the counted tweets and wikipedia articles. in case of wikipedia this is also grouped by the language of the wikipedia the mention was found in.   { "_metrics": { "sum_mendeley": , "sum_twitter": , "sum_wikipedia": }, "identifier": " / ", "identifiertype": "handle", "repository": "econstor", "tweetdata": { " ": { "created_at": "wed dec : : + ", "description": "economist wettbewerb regulierung monopole economics @dicehhu @hhu_de vwl antitrust düsseldorf quakenbrück berlin fc st. pauli", "id_str": " ", "name": "justus haucap", "screen_name": "haucap" }, " ": { "created_at": "wed dec : : + ", "description": "twitterkanal des wirtschaftsdienst - zeitschrift für wirtschaftspolitik, hrsg. von @zbw_news; rt ≠ zustimmung; impressum: https://t.co/x gevzb lr", "id_str": " ", "name": "wirtschaftsdienst", "screen_name": "zeitschrift_wd" }, " ": { "created_at": "wed dec : : + ", "description": "professor for international economics at htw berlin - university of applied sciences; senior policy fellow at the european council on foreign relations", "id_str": " ", "name": "sebastian dullien", "screen_name": "sdullien" } }, "twitterids": [ " ", " ", " " ], "wikipediaquerys": {} } figure : “example json returned by webservice - twitter mentions”   image : “mendeley and twitter mentions” during the creation of the landing page of an econstor item (see image ), a java servlet queries the web service and, if some social media mentions is detected, renders the result into the web page. for each of the three social media platforms the sum of the mentions is displayed and for twitter and wikipedia even backlinks to the mentioning tweets/articles are provided as a drop-down list, below the number of mentions (see image ). in case of wikipedia this is also grouped by the languages of the articles in wikipedia in which the isbn of the corresponding work has been found. conclusion while being an interesting addition to the existing download statistics and citations by repec/citec, that are already integrated into econstor, currently the gathered “social media mentions” offer only a limited additional value to the econstor landing pages. one reason might be, that only a fraction of all the documents of econstor are covered. another reason might be according to [lemke ], that there is currently a great reluctance to use social media services among economists and social scientists, as it is perceived as: “unsuitable for academic discourse; … to cost much time; … separating personal from professional matters is bothersome; … increases the efforts necessary to handle information overload.” theoretically, the prospect of a tool for the measurement of the scientific uptake, with a quicker response time than classical bibliometrics, could be very rewarding, especially for a repository like econstor with its many preprints (e.g. working papers) provided in open access. as [thelwall ] has stated: “in response, some publishers have turned to altmetrics, which are counts of citations or mentions in specific social web services because they can appear more rapidly than citations. for example, it would be reasonable to expect a typical article to be most tweeted on its publication day and most blogged within a month of publication.” and “social media mentions, being available immediately after publication—and even before publication in the case of preprints…”. but especially these preprints, that come without a doi, are still a challenge to be correctly identified, and therefore to be counted as social media mentions. this is something the *metrics crawler has not changed, since it is using title and author metadata to search in mendeley, which does not give a % sure identification and isbns to search in wikipedia. even though a quick check revealed that at the time of writing this article (aug. ) at least wikipedia offers a handle search. a quick search for econstor handles in the english wikipedia returns now a list of pages with mentions of “hdl: /”, the german wikipedia - but these are still very small numbers (aug. nd, : currently , full texts are available in econstor). https://en.wikipedia.org/w/api.php?action=query&list=search&srlimit= &srsearch=% hdl: % f% &srwhat=text&srprop&srinfo=totalhits&srenablerewrites= &format=jsonsearch via api in english wikipedia another problem is, that at the time of this writing, the *metrics crawler is not continuously operated, therefore our analysis is based on a data dump of social media mentions from spring to early . since it is one of the major benefits of altmetrics that it can be obtained much faster and is more recent then classical citation-based metrics, it reduces the value of the continued integration of this static and continuously getting older dataset being integrated into econstor landing pages. hence, we are looking for more recent and regular updates of social media data that could serve as a ‘real-time’ basis for monitoring social media usage in economics. as a consequence, we are currently looking for: a) an institution to commit itself to run the *metrics crawler and b) a more active social media usage in the sciences of economics and business studies. references [lemke ] lemke, steffen; mehrazar, maryam; mazarakis, athanasios; peters, isabella ( ): are there different types of online research impact?, in: building & sustaining an ethical future with emerging technology. proceedings of the st annual meeting, vancouver, canada, – november , isbn - - - - , association for information science and technology (asis&t), silver spring, pp. - http://hdl.handle.net/ / [lemke ] lemke, steffen; mehrazar, maryam; mazarakis, athanasios; peters, isabella ( ): “when you use social media you are not working”: barriers for the use of metrics in social sciences, frontiers in research metrics and analytics, issn - , vol. , iss. [article] , pp. - , http://dx.doi.org/ . /frma. . [mehrazar ] maryam mehrazar, christoph carl kling, steffen lemke, athanasios mazarakis, and isabella peters ( ): can we count on social media metrics? first insights into the active scholarly use of social media, websci ’ : th acm conference on web science, may – , , amsterdam, netherlands. acm, new york, ny, usa, article , pages, https://doi.org/ . / . [metrics ] einbindung von *metrics in econstor, https://metrics-project.net/downloads/ - - -econstor-metrics-abschluss-ws-sub-g%c %b .pptx [nuredini ] nuredini, kaltrina; peters, isabella ( ): enriching the knowledge of altmetrics studies by exploring social media metrics for economic and business studies journals, proceedings of the st international conference on science and technology indicators (sti conference ), valència (spain), september - , , http://hdl.handle.net/ / [or ] relevance and challenges of altmetrics for repositories - answers from the *metrics project. https://www.conftool.net/or /index.php/paper-p a- orth% cweiland_b.pdf?page=downloadpaper&filename=paper-p a- orth% cweiland_b.pdf&form_id= &form_index= &form_version=final [social media registry] social media registry - current status of social media plattforms and *metrics, https://docs.google.com/spreadsheets/d/ oals kxtmml naf shxh ctmone q efhtzmgpinv /edit?usp=sharing [thelwall ] thelwall m, haustein s, larivie`re v, sugimoto cr ( ): do altmetrics work? twitter and ten other social web services. plos one ( ): e . http://dx.doi.org/ . /journal.pone. [wilsdon ] wilsdon, james et al. ( ): next-generation metrics: responsible metrics and evaluation for open science. report of the european commission expert group on altmetrics, isbn - - - - , http://dx.doi.org/ . / integrating altmetrics data into econstor th century press archives: data donation to wikidata zbw is donating a large open dataset from the th century press archives to wikidata, in order to make it better accessible to various scientific disciplines such as contemporary, economic and business history, media and information science, to journalists, teachers, students, and the general public. the th century press archives (pm ) is a large public newspaper clippings archive, extracted from more than different sources published in germany and all over the world, covering roughly a full century ( - ). the clippings are organized in thematic folders about persons, companies and institutions, general subjects, and wares. during a project originally funded by the german research foundation (dfg), the material up to has been digitized. , folders with more than two million pages up to are freely accessible online.  the fine-grained thematic access and the public nature of the archives makes it to our best knowledge unique across the world (more information on wikipedia) and an essential research data fund for some of the disciplines mentioned above. the data donation does not only mean that zbw has assigned a cc license to all pm metadata, which makes it compatible with wikidata. (due to intellectual property rights, only the metadata can be licensed by zbw - all legal rights on the press articles themselves remain with their original creators.) the donation also includes investing a substantial amount of working time (during, as planned, two years) devoted to the integration of this data into wikidata. here we want to share our experiences regarding the integration of the persons archive metadata. folders from the persons archive, in (credit: max-michael wannags) linking our folders to wikidatathe essential bit for linking the digitized folders was in place before the project even started: an external identifier property (pm folder id, p ), proposed by an administrator of the german wikipedia in order to link to pm person and company folders. we participated in the property proposal discussion and made sure that the links did not have to reference our legacy coldfusion application. instead, we created a "partial redirect" on the purl.org service (maintained formerly by oclc, now by the internet archive) for persistent urls which may redirect to another application on another server in future. secondly, the identifier and url format was extended to include subject and ware folders, which are defined by a combination of two keys, one for the country and another for the topic. the format of the links in wikidata is controlled by a regular expression, which covers all four archives mentioned above. that works pretty well -  very few format errors occurred so far -, and it relieved us from creating four different archive-specific properties.shortly after the property creation, magnus manske, the author of the original mediawiki software and lots of related tools, scraped our web site and created a mix-n-match catalog from it. during the following two years, more than wikidata users contributed to matching wikidata items for humans to pm folder ids. for a start, deriving links from gnd many of the pm person and company folders were already identified by an identifier from the german integrated authority file (gnd). so, our first step was creating pm links for all wikidata items which had matching gnd ids. for all these items and folders, disambiguation had already taken place, and we could safely add all these links automatically. infrastructure: pm endpoint, federated queries and quickstatements to make this work, we relied heavily on linked data technologies. a pm sparql endpoint had already been set up for our contribution to coding da vinci (a "kultur-hackathon" in germany). almost all automated changes to wikidata we made are based on federated queries on our own endpoint, reaching out to the wikidata endpoint, or vice versa, from wikidata to pm . in the latter case, the external endpoint has to be registered at wikidata. wikidata maintains a help page for this type of queries. for our purposes, federated queries allow extracting current data from both endpoints. in the case of the above-mentioned missing_pm _id_via_gnd.rq query, this way we can skip all items, where a link to pm already exists. within the query itself, we create a statement string which we can feed into the quickstatements tool. that includes, for every single statement, a reference to pm with link to the actual folder, so that the provenance of these statements is always clear and traceable. via script, a statement file is extracted and saved with a timestamp. data imports via quickstatements are executed in batch mode, and an activity log keeps track of all data imports and other activities related to pm . creating missing items after the matching of about % of the person folders which include free documents in mix-n-match, and some efforts to discover more pre-existing wikidata items, we decided to create the missing person items, again via quickstatements input. we used the description field in wikidata by importing the content of the free-text "occupation" field in pm for better disambiguation of the newly created items. (here a rather minimal example of such an item created from pm metadata.) thus, all pm person folders which have digitized content were linked to wikidata in june . supplementing wikidata with pm metadata a second part of the integration of pm metadata into wikidata was the import of missing property values to the according items. this comprised simple facts like "date of birth/death", occupations such as "economist", "business economist", "social scientist", "earth scientist", which we could derive from the "field of activity" in pm , up to relations between existing items, e.g. a family member to the according family, or a board member to the according company. a few other source properties have been postponed, because alternative solutions exist, and the best one may depend on the intended use in future applications. the steps of this enrichment process and links to the code used - including the automatic generation of references - are online, too. complex statement added to wikidata item for friedrich krupp ag again, we used federated queries. often the target of a wikidata property is an item in itself. sometimes, we could directly get this via the target item's pm folder id (families, companies); sometimes we had to create lookup tables. for the latter, we used "values" clauses in the query (in case of "occupation"), or (in case of "country of citizenship"), we have to match countries from our internal classification in advance - a process for which we use openrefine. other than pm folder ids, which we avoided adding when folders do not contain digitized content, we added the metadata to all items which were linked to pm , and intend to repeat this process periodically when more items (e.g., companies) are identified by pm folder ids. in some housekeeping activity, we also add periodically the numbers of documents (online and total) and the exact folder names as qualifiers to newly emerging pm links in items. results of the data donation so far with all persons folder with digitized documents linked to wikidata, the data donation of the person folders metadata is completed. besides the folder links, which have already heavily been used to create links in wikipedia articles, we have got - more than statements which are sourced in pm (from "date of birth" to the track gauge of a brazilian railway line) - more than items, for which pm id is the only external identifier the data donation will be presented on the wikidatacon in berlin ( .- . . ) as a "birthday present" on the occasion wikidata's seventh birthday. zbw will further keep the digital content available, amended with a static landing page for every folder, which also will serve as source link for the metadata we have integrated into wikidata. but in future, wikidata will be the primary access path to our data, providing further metadata in multiple languages and links to a plethora of other external sources. and the best is, different from our current application, everybody will be able to enhance this open data through the interactive tools and data interfaces provided by wikidata.participate in wikiproject th century press archives for the topics, wares and companies archives, there is still a long way to go. the best structure for representing these archives and their folders - often defined by the combination of a country within a geographical hierarchy with a subject heading in a deeply nested topic classification -, has to be figured out. existing items have to be matched, and lots of other work is to be done. therefore, we have created the wikiproject th century press archives in wikidata to keep track of discussions and decisions, and to create a focal point for participation. everybody on wikidata is invited to participate - or just kibitz. it could be challenging particularly for information scientists, and people interested in historic systems for the organization of knowledge about the whole world, to take part in the mapping of one of these systems to the emerging wikidata knowledge graph.   linked data &# ; open data &# ; zbw's contribution to "coding da vinci": dossiers about persons and companies from th century press archives at th and th of october, the kick-off for the "kultur-hackathon" coding da vinci is held in mainz, germany, organized this time by glam institutions from the rhein-main area: "for five weeks, devoted fans of culture and hacking alike will prototype, code and design to make open cultural data come alive." new software applications are enabled by free and open data. for the first time, zbw is among the data providers. it contributes the person and company dossiers of the th century press archive. for about a hundred years, the predecessor organizations of zbw in kiel and hamburg had collected press clippings, business reports and other material about a wide range of political, economic and social topics, about persons, organizations, wares, events and general subjects. during a project funded by the german research organization (dfg), the documents published up to (about , million pages) had been digitized and are made publicly accessible with according metadata, until recently solely in the "pressemappe . jahrhundert" (pm ) web application. additionally, the dossiers - for example about mahatma gandhi or the hamburg-bremer afrika linie - can be loaded into a web viewer. as a first step to open up this unique source of data for various communities, zbw has decided to put the complete pm metadata* under a cc-zero license, which allows free reuse in all contexts. for our coding da vinci contribution, we have prepared all person and company dossiers which already contain documents. the dossiers are interlinked among each other. controlled vocabularies (for, e.g., "country", or "field of activity") provide multi-dimensional access to the data. most of the persons and a good share of organizations were linked to gnd identifiers. as a starter, we had mapped dossiers to wikidata according to existing gnd ids. that allows to run queries for pm dossiers completely on wikidata, making use of all the good stuff there. an example query shows the birth places of pm economists on a map, enriched with images from wikimedia commons. the initial mapping was much extended by fantastic semi-automatic and manual mapping efforts by the wikidata community. so currently more than % of the dossiers about - often rather prominent - pm persons are linked not only to wikidata, but also connected to wikipedia pages. that offers great opportunities for mash-ups to further data sources, and we are looking forward to what the "coding da vinci" crowd may make out of these opportunities. technically, the data has been converted from an internal intermediate format to still quite experimental rdf and loaded into a sparql endpoint. there it was enriched with data from wikidata and extracted with a construct query. we have decided to transform it to json-ld for publication (following practices recommended by our hbz colleagues). so developers can use the data as "plain old json", with the plethora of web tools available for this, while linked data enthusiasts can utilize sophisticated semantic web tools by applying the provided json-ld context. in order to make the dataset discoverable and reusable for future research, we published it persistently at zenodo.org. with it, we provide examples and data documentation. a github repository gives you additional code examples and a way to address issues and suggestions. * for the scanned documents, the legal regulations apply - zbw cannot assign licenses here.     pressemappe . jahrhundert linked data &# ; wikidata as authority linking hub: connecting repec and gnd researcher identifiers in the econbiz portal for publications in economics, we have data from different sources. in some of these sources, most notably zbw's "econis" bibliographical database, authors are disambiguated by identifiers of the integrated authority file (gnd) - in total more than , . data stemming from "research papers in economics" (repec) contains another identifier: repec authors can register themselves in the repec author service (ras), and claim their papers. this data is used for various rankings of authors and, indirectly, of institutions in economics, which provides a big incentive for authors - about , have signed into ras - to keep both their article claims and personal data up-to-date. while gnd is well known and linked to many other authorities, ras had no links to any other researcher identifier system. thus, until recently, the author identifiers were disconnected, which precludes the possibility to display all publications of an author on a portal page. to overcome that limitation, colleagues at zbw have matched a good , authors with ras and gnd ids by their publications (see details here). making that pre-existing mapping maintainable and extensible however would have meant to set up some custom editing interface, would have required storage and operating resources and wouldn't easily have been made publicly accessible. in a previous article, we described the opportunities offered by wikidata. now we made use of it. v\:* {behavior:url(#default#vml);} o\:* {behavior:url(#default#vml);} w\:* {behavior:url(#default#vml);} .shape {behavior:url(#default#vml);} normal false false false false de x-none x-none defsemihidden="true" defqformat="false" defpriority=" " latentstylecount=" "> unhidewhenused="false" qformat="true" name="normal"> unhidewhenused="false" qformat="true" name="heading "> unhidewhenused="false" qformat="true" name="title"> unhidewhenused="false" qformat="true" name="subtitle"> unhidewhenused="false" qformat="true" name="strong"> unhidewhenused="false" qformat="true" name="emphasis"> unhidewhenused="false" name="table grid"> unhidewhenused="false" qformat="true" name="no spacing"> unhidewhenused="false" name="light shading"> unhidewhenused="false" name="light list"> unhidewhenused="false" name="light grid"> unhidewhenused="false" name="medium shading "> unhidewhenused="false" name="medium shading "> unhidewhenused="false" name="medium list "> unhidewhenused="false" name="medium list "> unhidewhenused="false" name="medium grid "> unhidewhenused="false" name="medium grid "> unhidewhenused="false" name="medium grid "> unhidewhenused="false" name="dark list"> unhidewhenused="false" name="colorful shading"> unhidewhenused="false" name="colorful list"> unhidewhenused="false" name="colorful grid"> unhidewhenused="false" name="light shading accent "> unhidewhenused="false" name="light list accent "> unhidewhenused="false" name="light grid accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" qformat="true" name="list paragraph"> unhidewhenused="false" qformat="true" name="quote"> unhidewhenused="false" qformat="true" name="intense quote"> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="dark list accent "> unhidewhenused="false" name="colorful shading accent "> unhidewhenused="false" name="colorful list accent "> unhidewhenused="false" name="colorful grid accent "> unhidewhenused="false" name="light shading accent "> unhidewhenused="false" name="light list accent "> unhidewhenused="false" name="light grid accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="dark list accent "> unhidewhenused="false" name="colorful shading accent "> unhidewhenused="false" name="colorful list accent "> unhidewhenused="false" name="colorful grid accent "> unhidewhenused="false" name="light shading accent "> unhidewhenused="false" name="light list accent "> unhidewhenused="false" name="light grid accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="dark list accent "> unhidewhenused="false" name="colorful shading accent "> unhidewhenused="false" name="colorful list accent "> unhidewhenused="false" name="colorful grid accent "> unhidewhenused="false" name="light shading accent "> unhidewhenused="false" name="light list accent "> unhidewhenused="false" name="light grid accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="dark list accent "> unhidewhenused="false" name="colorful shading accent "> unhidewhenused="false" name="colorful list accent "> unhidewhenused="false" name="colorful grid accent "> unhidewhenused="false" name="light shading accent "> unhidewhenused="false" name="light list accent "> unhidewhenused="false" name="light grid accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="dark list accent "> unhidewhenused="false" name="colorful shading accent "> unhidewhenused="false" name="colorful list accent "> unhidewhenused="false" name="colorful grid accent "> unhidewhenused="false" name="light shading accent "> unhidewhenused="false" name="light list accent "> unhidewhenused="false" name="light grid accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium shading accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium list accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="medium grid accent "> unhidewhenused="false" name="dark list accent "> unhidewhenused="false" name="colorful shading accent "> unhidewhenused="false" name="colorful list accent "> unhidewhenused="false" name="colorful grid accent "> unhidewhenused="false" qformat="true" name="subtle emphasis"> unhidewhenused="false" qformat="true" name="intense emphasis"> unhidewhenused="false" qformat="true" name="subtle reference"> unhidewhenused="false" qformat="true" name="intense reference"> unhidewhenused="false" qformat="true" name="book title"> /* style definitions */ table.msonormaltable {mso-style-name:"normale tabelle"; mso-tstyle-rowband-size: ; mso-tstyle-colband-size: ; mso-style-noshow:yes; mso-style-priority: ; mso-style-parent:""; mso-padding-alt: cm . pt cm . pt; mso-para-margin: cm; mso-para-margin-bottom:. pt; line-height: . pt; mso-pagination:widow-orphan; font-size: . pt; font-family:"times new roman","serif";} initial situation in wikidata economists were, at the start of this small project in april , already well represented among the . million persons in wikidata - though the precise extent is difficult to estimate. furthermore, properties for linking gnd and repec author identifiers to wikidata items were already in place: p “gnd id”, in ~ , items p “repec short-id” (further-on: ras id), in ~ , items both properties in ~ items for both properties, “single value” and “distinct values” constraints are defined, so that (with rare exceptions) a : relation between the authority entry and the wikidata item should exist. that, in turn, means that a : relation between both authority entries can be assumed. the relative amounts of ids in econbiz and wikidata is illustrated by the following image. person identifiers in wikidata and econbiz, with unknown overlap at the beginning of the project (the number of . million persons in econbiz is a very rough estimate, because most names – outside gnd and ras – are not disambiguated) since many economists have wikipedia pages, from which wikidata items have been created routinely, the first task was finding these items and adding gnd and/or ras identifiers to them. the second task was adding items for persons which did not already exist in wikidata. adding mapping-derived identifiers to wikidata items for items already identified by either gnd or ras, the reciprocal identifiers where added automatically: a federated sparql query on the mapping and the public wikidata endpoint retrieved the items and the missing ids. a script transformed that into input for wikidata’s quickstatements tool, which allows adding statements (as well as new items) to wikidata. the tool takes csv-formatted input via a web form and applies it in batch to the live dataset. import statements for quickstatements . the first input line adds the ras id “pan ” to the item for the economist james andreoni. the rest of the input line creates a reference to zbws mapping for this statement and so allows tracking its provenance in wikidata. that step resulted in added gnd ids to items identified by ras id, and, in the reverse direction, added ras ids to items identified by gnd id. for the future, it is expected that tools like wdmapper will facilitate such operations. identifying more wikidata items obviously, the previous step left out the already existing economists in wikidata, which up to then had neither a gnd nor a ras id. therefore, these items had to be identified by adding one of the identifiers. a semi-automatic approach was applied to that end, starting with the “most important” persons from repec and econbiz datasets. that was extended in an automatic step, taking advantage of existing viaf identifiers (a step which could have been also the first one). for repec, the “top economists” ranking page (~ , authors) was scraped and cross-linked to a custom-created basic rdf dataset of the repec authors. the result was transformed to an input file for wikidata’s mix’n’match tool, which had been developed for the alignment of external catalogs with wikidata. the tool takes a simple csv file, consisting of a name, a description and an identifier, and tries to automatically match against wikidata labels. in a subsequent interactive step, it allows to confirm or remove every match. if confirmed, the identifier is automatically added as value to the according property of the matched wikidata item. for gnd, all authors with more than publications in econbiz where selected in a custom sparql endpoint. just as the “repec top” matchset, a “gnd economists (de)” matchset with ~ , gnd ids, names and descriptions was loaded into mix’n’match and aligned to wikidata. becoming more familiar with the wikidata-related tools, policies and procedures, existing viaf property values were exploited as another opportunity for seeding gnd ids in wikidata. in a federated sparql query on a custom viaf and the public wikidata endpoint, about , missing gnd ids were determined and added to wikidata items which had been identified by viaf id. after each of these steps, the first task – adding mapping-derived gnd or ras identifiers – was repeated. that resulted in wikidata items carrying both ids. since zbws author mapping based on at least matching publications, the alignment of high-frequency resp. highly-ranked gnd and repec authors made it highly probable that authors already present in wikidata were identified in the previous steps. that reduced the danger of creating duplicates in the following task. creating new wikidata items from the mapped authorities for the rest of the authors in the mapping, new wikidata items were created. this task was carried out again by the quickstatements tool, for which the input statements were created by a script, based on a sparql query on the afore-mentioned endpoints for repec authors and gnd entries. the input statements were derived from both authorities, in the following fashion: the label (name of the person) was taken from gnd the occupation “economist” was derived from repec (and in particular from the occurrence in its “top economists” list) gender and date of birth/death were taken from gnd (if available) the english description was a concatenated string “economist” plus the affiliations from repec the german description was a concatenated string “wirtschaftswissenschaftler/in” plus the affiliations from gnd the use of wikidata’s description field for affiliations was a makeshift: in the absence of an existing mapping of repec (and mostly also gnd) organizations to wikidata, it allows for better identification of the individual researchers. in a later step, when according organization/institute items exist in wikidata and mappings are in place, the items for authors can be supplemented step-by-step by formal “affiliation” (p ) statements. according to wikidata’s policy, an extensive reference to the source for each statement in the synthesized new wikidata item was added. the creation of items in an automated fashion involves the danger of duplicates. however, such duplicates turned up only in very few cases. they have been solved by merging items, which technically is very easy in wikidata. interestingly, a number of “fake duplicates” indeed revealed multifarious quality issues, in wikidata and in both of the authority files, which, too, have been subsequently resolved. ... and even more new items for economists ... the good experiences so far let us get bolder, and we considered creating wikidata items for the still missing "top economists" (according to repec). for item creation, one aspect we had to consider was the compliance with wikidata's notability policy. this policy is much more relaxed than the policies of the large wikipedias. it states as one criterion sufficient for item creation that the item "refers to an instance of a clearly identifiable conceptual or material entity. the entity must be notable, in the sense that it can be described using serious and publicly available references." there seems to be some consensus in the community that authority files such as gnd or repec authors count as "serious and publicly available references". this of course should hold even more for a bibliometric ranked subset of these external identifiers. we thus inserted another , wikidata items for the rest of the repec top % list. additionally - to mitigate the immanent gender bias such selections often bear - we imported all missing researchers from repec's "top % female economists" list. again, we added reference statements to repec which allow wikidata users to keep track of the source of the information. results the immediate result of the project was: all of the pairs of identifiers from the initial mapping by zbw is incorporated now in wikidata items wikidata items in addition to these also have both identifiers (created by individual wikidata editors, or the efforts described above) (all numbers in this section as of - - .) while that still is only a beginning, given the total amount of authors represented in econbiz, it is a significant share of the “most important” ones: top % ras and frequent gnd in econbiz (> publications). “wikidata economists” is a rough estimate of the amount of persons in the field of economics (twice the number of those with the explicit occupation “economist”) while the top repec economists are now completely covered by wikidata, for gnd the overlap has been improved significantly during the last year. this occured in parts as a side-effect of the efforts described above, in parts it is caused by the genuine growth of wikidata in regard to the number of items as well as the increasing density of external identifiers. here the current percentages, compared to those one year earlier, which were presented in our previous article: large improvements in the coverage of the most frequent authors by wikidata (query, result) while the improvements in absolute numbers are impressive, too - the number of gnd ids for all econbiz persons (with at least one publication) has increased from , to , - the image demonstrates that particularly the coverage for our most frequent authors has risen largely. the addition of all repec top economists has created further opportunities for matching these items from the afore-mentioned gnd mix-n-match set, which will again will add up to the mapping. all matching and duplicates checking done, we may re-consider the option of adding the remaining frequent gnd persons (> publications in econbiz) automatically to wikidata. the mapping data can be retrieved by everyone, via sparql queries, by specialized tools such as wdmapper, or as part of the wikidata dumps. what is more, it can be extended by everybody – either as a by-product of individual edits adding identifiers to persons in wikidata, or by a directed approach. for directed extensions, any subset can be used as a starting point: either a new version of the above mentioned ranking, or other rankings also published by repec, covering in particular female, or economists from e.g. latin america; or all identifiers from a particular institution, either derived from gnd or ras. the results of all such efforts are available at once and add up continuously. yet, the benefits of using wikidata cannot be reduced to the publication and maintenance of mapping itself. in many cases it offers much more than just a linking point for two identifiers: links to wikipedia pages about the authors, possibly in multiple languages rich data about the authors in defined formats, sometimes with explicit provenance information access to pictures etc. from wikimedia commons, or quotations from wikiquote links to multiple other authorities as an example for the latter, the in total ras identifiers in wikidata are already mapped to viaf and loc authority ids (while orcid with ids is still remarkably low). at the same time, these repec-connected items were linked to english, german and  spanish wikipedia pages which provide rich human-readable information. in turn, when we take the gnd persons in econbiz as a starting point, roughly , are already represented in wikidata. besides large amounts of other identifiers, the according wikidata items offer more than , links to german and more than , links to english wikipedia pages (query). for zbw, “releasing” the dataset into wikidata as a trustworthy and sustainable public database not only saves the “technical” costs of data ownership (programming, storage, operating, for access and for maintenance). responsibility for - and fun from - extending, amending and keeping the dataset current can be shared with many other interested parties and individuals.   wikidata for authorities authority control &# ; wikidata &# ; deutsch new version of multi-lingual jel classification published in lod the journal of economic literature classification scheme (jel) was created and is maintained by the american economic association. the aea provides this widely used resource freely for scholarly purposes. thanks to andré davids (ku leuven), who has translated the originally english-only labels of the classification to french, spanish and german, we provide a multi-lingual version of jel. it's lastest version (as of - ) is published in the formats rdfa and rdf download files. these formats and translations are provided "as is" and are not authorized by aea. in order to make changes in jel tracable more easily, we have created lists of inserted and removed jel classes in the context of the skos-history project. jel klassifikation für linked open dataskos-history linked data &# ; economists in wikidata: opportunities of authority linking wikidata is a large database, which connects all of the roughly wikipedia projects. besides interlinking all wikipedia pages in different languages about a specific item – e.g., a person -, it also connects to more than different sources of authority information. the linking is achieved by a „authority control“ class of wikidata properties. the values of these properties are identifiers, which unambiguously identify the wikidata item in external, web-accessible databases. the property definitions includes an uri pattern (called „formatter url“). when the identifier value is inserted into the uri pattern, the resulting uri can be used to look up the authoritiy entry. the resulting uri may point to a linked data resource - as it is the case with the gnd id property. this, on the one hand, provides a light-weight and robust mechanism to create links in the web of data. on the other hand, these links can be exploited by every application which is driven by one of the authorities to provide additional data: links to wikipedia pages in multiple languages, images, life data, nationality and affiliations of the according persons, and much more. wikidata item for the indian economist bina agarwal, visualized via the sqid browser in , a group of students under the guidance of jakob voß published a handbook on "normdaten in wikidata" (in german), describing the structures and the practical editing capabilities of the the standard wikidata user interface. the experiment described here focuses on persons from the subject domain of economics. it uses the authority identifiers of the about , economists referenced by their gnd id as creators, contributors or subjects of books, articles and working papers in zbw's economics search portal econbiz. these gnd ids were obtained from a prototype of the upcoming econbiz research dataset (ebds). to , of these persons, or . %, a person in wikidata is connected by gnd. if we consider the frequent (more than publications) and the very frequent (more than publications) authors in econbiz, the coverage increases significantly: economics-related persons in econbiz number of publications total in wikidata percentage datasets: ebds as of - - ; wikidata as of - - (query, result) > , , . % > , , . % > , . % these are numbers "out of the box" - ready-made opportunities to link out from existing metadata in econbiz and to enrich user interfaces with biographical data from wikidata/wikipedia, without any additional effort to improve the coverage on either the econbiz or the wikidata side. however: we can safely assume that many of the econbiz authors, particularly of the high-frequency authors, and even more of the persons who are subject of publications, are "notable" according the wikidata notablitiy guidelines. probably, their items exist and are just missing the according gnd property. to check this assumption, we take a closer look to the wikidata persons which have the occupation "economist" (most wikidata properties accept other wikidata items - instead of arbitrary strings - as values, which allows for exact queries and is indispensible in a multilingual environment).  of these approximately , persons, less than % have a gnd id property! even if we restrict that to the , "internationally recognized economists" (which we define here as having wikipedia pages in three or more different languages), almost half of them lack a gnd id property. when we compare that with the coverage by viaf ids, more than % of all and % the internationally recognized wikidata economists are linked to viaf (sparql lab live query). therefore, for a whole lot of the persons we have looked at here, we can take it for granted the person exists in wikidata as well as in the gnd, and the only reason for the lack of a gnd id is that nobody has added it to wikidata yet. as an aside: the information about the occupation of persons is to be taken as a very rough approximation: some wikidata persons were economists by education or at some point of their career, but are famous now for other reasons (examples include vladimir putin or the president of liberia, ellen johnson sirleaf). on the other hand, econbiz authors known to wikidata are often qualified not as economist, but as university teacher, politican, historican or sociologist. nevertheless, their work was deemed relevant for the broad field of economics, and the conclusions drawn at the "economists" in wikidata and gnd will hold for them, too: there are lots of opportunities for linking already well defined items. what can we gain? the screenshot above demonstrates, that not only data about the person itself, her affiliations, awards received, and possibly many other details can be obtained. the "identifiers" box on the bottom right shows authoritiy entries. besides the gnd id, which served as an entry point for us, there are links to viaf and other national libraries' authorities, but also to non-library identifier systems like isni and orcid. in total, wikidata comprises more than million authority links, more than millions of these for persons. when we take a closer look at the , econbiz persons which we can look up by their gnd id in wikidata, an astonishing variety of authorities is addressed from there: different authorities are linked from the subset, ranging from "almost complete" (viaf, library of congress name authority file) to - in the given context- quite exotic authorities of, e.g., members of the belgian senate, chess players or swedish olympic committee athletes. some of these entries link to carefully crafted biographies, sometimes behind a paywall  (notable names database, oxford dictionary of national biography, munzinger archiv, sächsische biographie, dizionario biografico degli italiani), or to free text resources (project gutenberg authors). links to the world of museums and archives are also provided, from the getty union list of artist names to specific links into the british museum or the musée d'orsay collections. a particular use can be made of properties which express the prominence of the according persons: nobel prize ids, for example, definitivly should be linked to according gnd ids (and indeed, they are). but also ted speakers or persons with an entry in the munzinger archive (a famous and long-established german biographical service) are assumed to have gnd ids. that opens a road to a very focused improvement of the data quality: a list of persons with that properties, restricted to the subject field (e.g., "occupation economist"), can be easily generated from wikidata's sparql query service. in wikidata, it is very easy to add the missing id entries discovered during such cross-checks interactively. and if it turns out that an "very important" person from the field is missing from the gnd at all, that is a all-the-more valuable opportunity to improve the data quality at the source. how can we start improving? as a prove of concept, and as a practical starting point, we have developed a micro-application for adding missing authority property values. it consists of two sparql lab scripts: missing_property creates a list of wikidata persons, which have a certain authority property (by default: ted speaker id) and lacks another one (by default: gnd id). for each entry in the list, a link to an application is created, which looks up the name in the according authority file (by default: search_person, for a broad yet ranked full-text search of person names in gnd). if we can identify the person in the gnd list, we can copy its gnd id, return to the first one, click on the link to the wikidata item of the person and add the property value manually through wikidata's standard edit interface. (wikidata is open and welcoming such contributions!) it takes effect within a few seconds - when we reload the missing_property list, the improved item should not show up any more. instead of identifying the most prominent economics-related persons in wikidata, the other way works too: while most of the gnd-identified persons are related to only one or twe works, as an according statistics show, few are related to a disproportionate amount of publications. of the , persons related to more than publications, less than are missing links to wikidata by their gnd id. by adding this property (for the vast majority of these persons, a wikidata item should already exist), we could enrich, at a rough estimate, more than , person links in econbiz publications. another micro-application demonstrates, how the work could be organized: the list of econbiz persons by descending publication count provides "search in wikidata" links (functional on a custom endpoint): each link triggers a query which looks up all name variants in gnd and executes a search for these names in a full-text indexed wikidata set, bringing up an according ranked list of suggestions (example with the gnd id of john h. dunning). again, the gnd id can be added - manually but straightforward - to an identified wikidata item. while we can not expect to reduce the quantitative gap between the , persons in econbiz and the , of them linked to wikidata significantly by such manual efforts, we surely can step-by-step improve for the most prominent persons. this empowers applications to show biographical background links to wikipedia where our users expect them most probably. other tools for creating authority links and more automated approaches will be covered in further blog posts. and the great thing about wikidata is: all efforts add up - while we are doing modest improvements in our field of interest, many others do the same, so wikidata already features an impressive overall amont of authority links. ps. all queries used in this analysis are published at github. the public wikidata endpoint cannot be used for research involving large datasets due to its limitations (in particular the second timeout, the preclusion of the "service" clause for federated queries, and the lack of full-text search). therefore, we’ve loaded the wikidata dataset (along with others) into custom apache fuseki endpoints on a performant machine. even there, a „power query“ like the one on the number of all authority links in wikidata takes about minutes. therefore, we publish the according result files in the github repository alongside with the queries. wikidata for authorities wikidata &# ; authority control &# ; linked data &# ; integrating a research data repository with established research practices authors: timo borst, konstantin ott in recent years, repositories for managing research data have emerged, which are supposed to help researchers to upload, describe, distribute and share their data. to promote and foster the distribution of research data in the light of paradigms like open science and open access, these repositories are normally implemented and hosted as stand-alone applications, meaning that they offer a web interface for manually uploading the data, and a presentation interface for browsing, searching and accessing the data. sometimes, the first component (interface for uploading the data) is substituted or complemented by a submission interface from another application. e.g., in dataverse or in ckan data is submitted from remote third-party applications by means of data deposit apis [ ]. however the upload of data is organized and eventually embedded into a publishing framework (data either as a supplement of a journal article, or as a stand-alone research output subject to review and release as part of a ‘data journal’), it definitely means that this data is supposed to be made publicly available, which is often reflected by policies and guidelines for data deposit. in clear contrast to this publishing model, the vast majority of current research data however is not supposed to be published, at least in terms of scientific publications. several studies and surveys on research data management indicate that at least in the social sciences there is a strong tendency and practice to process and share data amongst peers in a local and protected environment (often with several local copies on different personal devices), before eventually uploading and disseminating derivatives from this data to a publicly accessible repository. e.g., according to a survey among austrian researchers, the portion of researchers agreeing to share their data either on request or among colleagues is % resp. %, while the agreement to share on a disciplinary repository is only % [ ]. and in another survey among researchers from a local university and cooperation partner, almost % preferred an institutional local archive, while only % agreed on a national or international archive. even if there is data planned to be published via a publicly accessible repository, it will first be stored and processed in a protected environment, carefully shared with peers (project members, institutional colleagues, sponsors) and often subject to access restrictions – in other words, it is used before being published.with this situation in mind, we designed and developed a central research data repository as part of a funded project called ‘sowidatanet’ (sdn - network of data from social sciences and economics) [ ]. the overall goal of the project is to develop and establish a national web infrastructure for archiving and managing research data in the social sciences, particularly quantitative (statistical) data from surveys. it aims at smaller institutional research groups or teams, which often do lack an institutional support or infrastructure for managing their research data. as a front-end application, the repository based on dspace software provides a typical web interface for browsing, searching and accessing the content. as a back-end application, it provides typical forms for capturing metadata and bitstreams, with some enhancements regarding the integration of authority control by means of external webservices. from the point of view of the participating research institutions, a central requirement is the development of a local view (‘showcase’) on the repository’s data, so that this view can be smoothly integrated into the website of the institution. the web interface of the view is generated by means of the play framework in combination with the bootstrap framework for generating the layout, while all of the data is retrieved and requested from the dspace backend via its discover interface and rest-api. sdn architecturediagram: sowidatanet software componentsthe purpose of the showcase application is to provide an institutional subset and view of the central repository’s data, which can easily be integrated into any institutional website, either as an iframe to be embedded by the institution (which might be considered as an easy rather than a satisfactory technical solution), or as a stand-alone subpage being linked from the institution’s homepage, optionally using a proxy server for preserving the institutional domain namespace. while these solutions imply the standard way of hosting the showcase software, a third approach suggests the deployment of the showcase software on an institution’s server for customizing the application. in this case, every institution can modify the layout of their institutional view by customizing their institutional css file. because using bootstrap and less compiling the css file, a lightweight possibility might be to modify only some less variables compiling to an institutional css file.as a result from the requirement analysis conducted with the project partners (two research institutes from the social sciences), and in accordance with the survey results cited, there is a strong demand for managing not only data which is to be published in the central repository, but also data which is protected and circulating only among the members of the institution. moreover, this data is described by additional specific metadata containing internal hints on the availability restrictions and access conditions. hence, we had to distinguish between the following two basic use cases to be covered by the showcase: to provide a view on the public sdn data (‘data published’) to provide a view on the public sdn data plus the internal institutional data resp. their corresponding metadata records, the latter only visible and accessible for institutional members (‘data in use’) from the perspective of a research institution and data provider, the second use case turned out to be the primary one, since it covers more the institutional practices and workflows than the publishing model does. as a matter of fact, research data is primarily generated, processed and shared in a protected environment, before it may eventually be published and distributed to a wider, potentially abstract and unknown community – and this fact must be acknowledged and reflected by a central research data repository aiming at the contributions from researchers which are bound to an institution.if ‘data in use’ is to be integrated into the showcase as an internal view on protected data to be shared only within an institution, it means to restrict the access to this data on different levels. first, for every community (in the sense of an institution), we introduce a dspace collection for just those internal data, and protect it by assigning it to a dspace user role ‘internal[community_name]’. this role is associated with an ip range, so that only requests from that range will be assigned to the role ‘internal’ and granted access to the internal collection. in the context of our project, we enter only the ip of the showcase application, so that every user of this application will see the protected items. depending on the locality of the showcase application resp. server, we have to take further steps: if the application resp. server is located in the institution’s intranet, the protected items are only visible and accessible from the institution’s network. if the application is externally hosted and accessible via the world wide web – which is expected to be the default solution for most of the research institutes –, then the showcase application needs an authentication procedure, which is preferably realized by means of the central dspace sowidatanet repository, so that every user of the showcase application is granted access by becoming a dspace user.in the context of an r&d project where we are partnering with research institutes, it turned out that the management of research data is twofold: while repository providers are focused on the publishing and unrestricted access to research data, researchers are mainly interested in local archiving and sharing of their data. in order to manage this data, the researchers’ institutional practices need to be reflected and supported. for this purpose, we developed an additional viewing and access component. when it comes to their integration with existing institutional research practices and workflows, the implementation of research data repositories requires concepts and actions which go far beyond the original idea of a central publishing platform. further research and development is planned in order to understand and support better the sharing of data in both institutional and cross-institutional subgroups, so the integration with a public central repository will be fostered.link to prototype references[ ] dataverse deposit-api. retrieved may , from http://guides.dataverse.org/en/ . . /dataverse-api-main.html#data-deposit-api[ ] forschende und ihre daten. ergebnisse einer österreichweiten befragung – report . version . - zenodo. ( ). retrieved may , from https://zenodo.org/record/ #.vrhmkea pmm[ ] project homepage: https://sowidatanet.de/. retrieved may .[ ] research data management survey: report - nottingham eprints. ( ). retrieved may , from http://eprints.nottingham.ac.uk/ /[ ] university of oxford research data management survey  : the results | damaro. ( ). retrieved may , from https://blogs.it.ox.ac.uk/damaro/ / / /university-of-oxford-research-data-management-survey- -the-results/ institutional view on research data library user experience community - medium library user experience community - medium a blog and slack community organized around design and the user experience in libraries, non-profits, and the higher-ed web. - medium a library system for the future this is a what-if story.continue reading on library user experience community » alexa, get me the articles (voice interfaces in academia) thinking about interfaces has led me down a path of all sorts of exciting/mildly terrifying ways of interacting with our devices &#x ; from&#x ;continue reading on library user experience community » accessibility information on library websites is autocomplete on your library home page? writing for the user experience with rebecca blakiston first look at primo’s new user interface what users expect write for libux on the user experience of ebooks unambitious and incapable men in librarianship fender bender in arizona illustrates waymo’s commercialization challenge | ars technica skip to main content biz & it tech science policy cars gaming & culture store forums subscribe close navigate store subscribe videos features reviews rss feeds mobile site about ars staff directory contact us advertise with ars reprints filter by topic biz & it tech science policy cars gaming & culture store forums settings front page layout grid list site theme black on white white on black sign in comment activity sign up or login to join the discussions! stay logged in | having trouble? sign up to comment and more sign up self-driving — fender bender in arizona illustrates waymo’s commercialization challenge self-driving systems won't necessarily make the same mistakes as human drivers. timothy b. lee - apr , : pm utc enlarge / a waymo self-driving car in silicon valley in . sundry photography / getty reader comments with posters participating, including story author share this story share on facebook share on twitter share on reddit a police report obtained by the phoenix new times this week reveals a minor waymo-related crash that occurred last october but hadn't been publicly reported until now. here's how the new times describes the incident: a white waymo minivan was traveling westbound in the middle of three westbound lanes on chandler boulevard, in autonomous mode, when it unexpectedly braked for no reason. a waymo backup driver behind the wheel at the time told chandler police that "all of a sudden the vehicle began to stop and gave a code to the effect of 'stop recommended' and came to a sudden stop without warning." a red chevrolet silverado pickup behind the vehicle swerved to the right but clipped its back panel, causing minor damage. nobody was hurt. overall, waymo has a strong safety record. waymo has racked up more than million testing miles in arizona, california, and other states. this is far more than any human being will drive in a lifetime. waymo's vehicles have been involved in a relatively small number of crashes. these crashes have been overwhelmingly minor with no fatalities and few if any serious injuries. waymo says that a large majority of those crashes have been the fault of the other driver. so it's very possible that waymo's self-driving software is significantly safer than a human driver. further reading this arizona college student has taken over driverless waymo rides at the same time, waymo isn't acting like a company with a multi-year head start on potentially world-changing technology. three years ago, waymo announced plans to buy "up to" , electric jaguars and , pacifica minivans for its self-driving fleet. the company hasn't recently released numbers on its fleet size, but it's safe to say that the company is nowhere near hitting those numbers. the service territory for the waymo one taxi service in suburban phoenix hasn't expanded much since it launched two years ago. waymo hasn't addressed the slow pace of expansion, but incidents like last october's fender-bender might help explain it. advertisement it’s hard to be sure if self-driving technology is safe rear-end collisions like this rarely get anyone killed, and waymo likes to point out that arizona law prohibits tailgating. in most rear-end crashes, the driver in the back is considered to be at fault. at the same time, it's obviously not ideal for a self-driving car to suddenly come to a stop in the middle of the road. more generally, waymo's vehicles sometimes hesitate longer than a human would when they encounter complex situations they don't fully understand. human drivers sometimes find this frustrating, and it occasionally leads to crashes. in january , a waymo vehicle unexpectedly stopped as it approached an intersection where the stoplight was green. a police officer in an unmarked vehicle couldn't stop in time and hit the waymo vehicle from behind. again, no one was seriously injured. it's difficult to know if this kind of thing happens more often with waymo's vehicles than with human drivers. minor fender benders aren't always reported to the police and may not be reflected in official crash statistics, overstating the safety of human drivers. by contrast, any crash involving cutting-edge self-driving technology is likely to attract public attention. the more serious problem for waymo is that the company can't be sure that the idiosyncrasies of its self-driving software won't contribute to a more serious crash in the future. human drivers cause a fatality about once every million miles of driving—far more miles than waymo has tested so far. if waymo scaled up rapidly, it would be taking a risk that an unnoticed flaw in waymo's programming could lead to someone getting killed. and crucially, self-driving cars are likely to make different types of mistakes than human drivers. so it's not sufficient to make a list of mistakes human drivers commonly make and verify that self-driving software avoids making them. you also need to figure out if self-driving cars will screw up in scenarios that human drivers deal with easily. and there may be no other way to find these scenarios than with lots and lots of testing. waymo has logged far more testing miles than other companies in the us, but there's every reason to think waymo's competitors will face this same dilemma as they move toward large-scale commercial deployments. by now, a number of companies have developed self-driving cars that can handle most situations correctly most of the time. but building a car that can go millions of miles without a significant mistake is hard. and proving it is even harder. reader comments with posters participating, including story author share this story share on facebook share on twitter share on reddit timothy b. lee timothy is a senior reporter covering tech policy, blockchain technologies and the future of transportation. he lives in washington dc. email timothy.lee@arstechnica.com // twitter @binarybits advertisement you must login or create an account to comment. channel ars technica ← previous story next story → related stories sponsored stories powered by today on ars store subscribe about us rss feeds view mobile site contact us staff advertise with us reprints newsletter signup join the ars orbital transmission mailing list to get weekly updates delivered to your inbox. sign me up → cnmn collection wired media group © condé nast. all rights reserved. use of and/or registration on any portion of this site constitutes acceptance of our user agreement (updated / / ) and privacy policy and cookie statement (updated / / ) and ars technica addendum (effective / / ). ars may earn compensation on sales from links on this site. read our affiliate link policy. your california privacy rights | do not sell my personal information the material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of condé nast. ad choices dshr's blog: cryptocurrency's carbon footprint dshr's blog i'm david rosenthal, and this is a place to discuss the work i'm doing in digital preservation. tuesday, april , cryptocurrency's carbon footprint china’s bitcoin mines could derail carbon neutrality goals, study says and bitcoin mining emissions in china will hit million tonnes by , the headlines say it all. excusing this climate-destroying externality of proof-of-work blockchains requires a continuous flow of new misleading arguments. below the fold i discuss one of the more recent novelties. in bitcoin and ethereum carbon footprints – part , moritz seibert claims the reason for mining is to get the mining reward: bitcoin transactions themselves don’t cause a lot of power usage. getting the network to accept a transaction consumes almost no power, but having asic miners grind through the mathematical ether to solve valid blocks does. miners are incentivized to do this because they are compensated for it. presently, that compensation includes a block reward which is paid in bitcoin ( . btc per block) as well as a miner fee (transaction fee). transaction fees are denominated in fractional bitcoins and paid by the initiator of the transaction. today, about % of total miners’ rewards are transactions fees, and about % are block rewards. so, he argues, bitcoin's current catastrophic carbon footprint doesn't matter because, as the reward decreases, so will the carbon footprint: this also means that the power usage of the bitcoin network won’t scale linearly with the number of transactions as the network becomes predominantly fee-based and less rewards-based (which causes a lot of power to the thrown at it in light of increasing btc prices), and especially if those transactions take place on secondary layers. in other words, taking the ratio of “bitcoin’s total power usage” to “number of transactions” to calculate the “power cost per transaction” falsely implies that all transactions hit the final settlement layer (they don’t) and disregards the fact that the final state of the bitcoin base layer is a fee-based state which requires a very small fraction of bitcoin’s overall power usage today (no more block rewards). seibert has some vague idea that there are implications of this not just for the carbon footprint but also for the security of the bitcoin blockchain: going forward however, miners’ primary revenue source will change from block rewards to the fees paid for the processing of transactions, which don’t per se cause high carbon emissions. bitcoin is set to become be a purely fee-based system (which may pose a risk to the security of the system itself if the overall hash rate declines, but that’s a topic for another article because a blockchain that is fully reliant on fees requires that btcs are transacted with rather than held in michael saylor-style as hodling leads to low btc velocity, which does not contribute to security in a setup where fees are the only rewards for miners.) lets leave aside the stunning irresponsibility of arguing that it is acceptable to dump huge amounts of long-lasting greenhouse gas into the atmosphere now because you believe that in the future you will dump less. how realistic is the idea that decreasing the mining reward will decrease the carbon footprint? the graph shows the history of the hash rate, which is a proxy for the carbon footprint. you can see the effect of the "halvening", when on may th the mining reward halved. there was a temporary drop, but the hash rate resumed its inexorable rise. this experiment shows that reducing the mining reward doesn't reduce the carbon footprint. so why does seibert think that eliminating it will reduce the carbon footprint? the answer appears to be that seibert thinks the purpose of mining is to create new bitcoins, that the reason for the vast expenditure of energy is to make the process of creating new coins secure, and that it has nothing to do with the security of transactions. this completely misunderstands the technology. in the economic limits of bitcoin and the blockchain, eric budish examines the return on investment in two kinds of attacks on a blockchain like bitcoin's. the simpler one is a % attack, in which an attacker controls the majority of the mining power. budish explains what this allows the attacker to do: an attacker could (i) spend bitcoins, i.e., engage in a transaction in which he sends his bitcoins to some merchant in exchange for goods or assets; then (ii) allow that transaction to be added to the public blockchain (i.e., the longest chain); and then subsequently (iii) remove that transaction from the public blockchain, by building an alternative longest chain, which he can do with certainty given his majority of computing power. the merchant, upon seeing the transaction added to the public blockchain in (ii), gives the attacker goods or assets in exchange for the bitcoins, perhaps after an escrow period. but, when the attacker removes the transaction from the public blockchain in (iii), the merchant effectively loses his bitcoins, allowing the attacker to “double spend” the coins elsewhere. such attacks are endemic among the smaller alt-coins; for example there were three successful attacks on ethereum classic in a single month last year. clearly, seibert's future "transaction only" bitcoin must defend against them. there are two ways to mount a % attack, from the outside or from the inside. an outside attack requires more mining power than the insiders are using, whereas an insider attack only needs a majority of the mining power to conspire. bitcoin miners collaborate in "mining pools" to reduce volatility of their income, and for many years it would have taken only three or so pools to conspire for a successful attack. but assuming insiders are honest, outsiders must acquire more mining power than the insiders are using. clearly, bitcoin insiders are using so much mining power that this isn't feasible. the point of mining isn't to create new bitcoins. mining is needed to make the process of adding a block to the chain, and thus adding a set of transactions to the chain, so expensive that it isn't worth it for an attacker to subvert the process. the cost, and thus in the case of proof of work the carbon footprint, is the whole point. as budish wrote: from a computer security perspective, the key thing to note ... is that the security of the blockchain is linear in the amount of expenditure on mining power, ... in contrast, in many other contexts investments in computer security yield convex returns (e.g., traditional uses of cryptography) — analogously to how a lock on a door increases the security of a house by more than the cost of the lock. lets consider the possible futures of a fee-based bitcoin blockchain. it turns out that currently fee revenue is a smaller proportion of total miner revenue than seibert claims. here is the chart of total revenue (~$ m/day): and here is the chart of fee revenue (~$ m/day): thus the split is about % fee, % reward: if security stays the same, blocksize stays the same, fees must increase to keep the cost of a % attack high enough. the chart shows the average fee hovering around $ , so the average cost of a single transaction would be over $ . this might be a problem for seibert's requirement that "btcs are transacted with rather than held". if blocksize stays the same, fees stay the same, security must decrease because the fees cannot cover the cost of enough hash power to deter a % attack. similarly, in this case it would be times cheaper to mount a % attack, which would greatly increase the risk of delivering anything in return for bitcoin. it is already the case that users are advised to wait blocks (about an hour) before treating a transaction as final. waiting nearly half a day before finality would probably be a disincentive. if fees stay the same, security stays the same, blocksize must increase to allow for enough transactions so that their fees cover the cost of enough hash power to deter a % attack. since bitcoin blocks have been effectively limited to around mb, and the blockchain is now over one-third of a terabyte growing at over %/yr. increasing the size limit to say mb would solve the long-term problem of a fee-based system at the cost of reducing miners income in the short term by reducing the scarcity value of a slot in a block. doubling the effective size of the block caused a huge controversy in the bitcoin community for precisely this short vs. long conflict, so a much larger increase would be even more controversial. not to mention that the size of the blockchain a year from now would be times bigger imposing additional storage costs on miners. that is just the supply side. on the demand side it is an open question as to whether there would be times the current demand for transactions costing $ and taking an hour which, at least in the us, must each be reported to the tax authorities. short vs. long none of these alternatives look attractive. but there's also a second type of attack in budish's analysis, which he calls "sabotage". he quotes rosenfeld: in this section we will assume q < p [i.e., that the attacker does not have a majority]. otherwise, all bets are off with the current bitcoin protocol ... the honest miners, who no longer receive any rewards, would quit due to lack of incentive; this will make it even easier for the attacker to maintain his dominance. this will cause either the collapse of bitcoin or a move to a modified protocol. as such, this attack is best seen as an attempt to destroy bitcoin, motivated not by the desire to obtain bitcoin value, but rather wishing to maintain entrenched economical systems or obtain speculative profits from holding a short position. short interest in bitcoin is currently small relative to the total stock, but much larger relative to the circulating supply. budish analyzes various sabotage attack cases, with a parameter ∆attack representing the proportion of the bitcoin value destroyed by the attack: for example, if ∆attack = , i.e., if the attack causes a total collapse of the value of bitcoin, the attacker loses exactly as much in bitcoin value as he gains from double spending; in effect, there is no chance to “double” spend after all. ... however, ∆attack is something of a “pick your poison” parameter. if ∆attack is small, then the system is vulnerable to the double-spending attack ... and the implicit transactions tax on economic activity using the blockchain has to be high. if ∆attack is large, then a short time period of access to a large amount of computing power can sabotage the blockchain. the current cryptocurrency bubble ensures that everyone is making enough paper profits from the golden eggs to deter them from killing the goose that lays them. but it is easy to create scenarios in which a rush for the exits might make killing the goose seem like the best way out. seibert's misunderstanding illustrates the fundamental problem with permissionless blockchains. as i wrote in a note on blockchains: if joining the replica set of a permissionless blockchain is free, it will be vulnerable to sybil attacks, in which an attacker creates many apparently independent replicas which are actually under his sole control. if creating and maintaining a replica is free, anyone can authorize any change they choose simply by creating enough sybil replicas. defending against sybil attacks requires that membership in a replica set be expensive. there are many attempts to provide less environmentally damaging ways to make adding a block to a blockchain expensive, but attempts to make adding a block cheaper are self-defeating because they make the blockchain less secure. there are two reasons why the primary use of a permissionless blockchain cannot be transactions as opposed to hodl-ing: the lack of synchronization between the peers means that transactions must necessarily be slow. the need to defend against sybil attacks means either that transactions must necessarily be expensive, or that blocks must be impractically large. posted by david. at : am labels: bitcoin, security comments: david. said... seibert apparently believes (a) that a fee-only bitcoin network would be secure, used for large numbers of transactions, and have a low carbon footprint, and (b) that the network would have a low carbon footprint because most transactions would use the lightning network. ignoring the contradiction, anyone who believes that the lightning network would do the bulk of the transactions needs to read the accounts of people actually trying to transact using it. david gerard writes: "crypto guy loses a bet, and tries to pay the bet using the lightning network. hilarity ensues." indeed, the archived twitter thread from the loser is a laugh-a-minute read. april , at : pm david. said... jaime powell shreds another attempt at cryptocurrency carbon footprint gaslighting in the destructive green fantasy of the bitcoin fanatics: "it is in this context that we should consider the latest “research” from the good folks at etf-house-come-fund manager ark invest and $ bn payment company square. titled “bitcoin is key to an abundant, clean energy future”, it does exactly what you’d expect it to. which is to try justify, after the fact, bitcoin’s insane energy use. why? because both entities are deeply involved in this “space” and now need to a) feel better about themselves and b) guard against people going off crypto on the grounds that it is actually a very bad thing. ... the white paper imagines bitcoin mining being a solution, alongside battery storage, for excess energy. it also imagines that if solar and wind prices continue to collapse, bitcoin could eventually transition to being completely renewable-powered in the future. “imagines” is the key word here. because in reality, bitcoin mining is quite the polluter. it’s estimated that per cent of bitcoin mining is concentrated in china, where nearly two-thirds of all electricity is generated by coal power, according to a recent bank of america report. in fact, mining uses coal power so aggressively that when one coal mine flooded and shut down in xianjiang province over the weekend, one-third of all bitcoin’s computing power went offline." april , at : pm david. said... in jack dorsey and elon musk agree on bitcoin's green credentials the bbc reports on yet another of elon musk's irresponsible cryptocurrency tweets: "the tweet comes soon after the release of a white paper from mr dorsey's digital payment services firm square, and global asset management business ark invest. entitled "bitcoin as key to an abundant, clean energy future", the paper argues that "bitcoin miners are unique energy buyers", because they offer flexibility, pay in a cryptocurrency, and can be based anywhere with an internet connection." the bbc fails to point out that musk and dorsey are "talking their book"; tesla invested $ . b and square $ m in bitcoin. so they have over $ . b reasons to worry about efforts to limit its carbon footprint. april , at : pm david. said... this comment has been removed by the author. april , at : pm david. said... nathan j. robinson's why cryptocurrency is a giant fraud has an interesting footnote, discussing a "pseudoscholarly masterpiece" of bitcoin puffery by vijay boyapati: "interestingly, boyapati cites bitcoin’s high transaction fees as a feature rather than a bug: “a recent criticism of the bitcoin network is that the increase in fees to transmit bitcoins makes it unsuitable as a payment system. however, the growth in fees is healthy and expected… a network with ‘low’ fees is a network with little security and prone to external censorship. those touting the low fees of bitcoin alternatives are unknowingly describing the weakness of these so-called ‘alt-coins.’” as you can see, this successfully makes the case that high fees are unavoidable, but it also undermines the reasons why any sane person would use this as currency rather than a speculative investment." right! a permissionless blockchain has to be expensive to run if it is to be secure. those costs have either to be borne, ultimately, by the blockchain's users, or dumped on the rest of us as externalities (e.g. the blockchain's carbon footprint, the shortage of gpus, ...). april , at : pm post a comment newer post older post home subscribe to: post comments (atom) blog rules posts and comments are copyright of their respective authors who, by posting or commenting, license their work under a creative commons attribution-share alike . united states license. off-topic or unsuitable comments will be deleted. dshr dshr in anwr recent comments full comments blog archive ▼  ( ) ▼  april ( ) dogecoin disrupts bitcoin! what is the point? nfts and web archiving cryptocurrency's carbon footprint elon musk: threat or menace? ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) lockss system has permission to collect, preserve, and serve this archival unit. simple theme. powered by blogger. library tech talk - u-m library library tech talk - u-m library technology innovations and project updates from the u-m library i.t. division library it services portfolio academic library service portfolios are mostly a mix of big to small strategic initiatives and tactical projects. systems developed in the past can become a durable bedrock of workflows and services around the library, remaining relevant and needed for five, ten, and sometimes as long as twenty years. there is, of course, never enough time and resources to do everything. the challenge faced by library it divisions is to balance the tension of sustaining these legacy systems while continuing to innovate and develop new services. the university of michigan’s library it portfolio has legacy systems in need of ongoing maintenance and support, in addition to new projects and services that add to and expand the portfolio. we, at michigan, worked on a process to balance the portfolio of services and projects for our library it division. we started working on the idea of developing a custom tool for our needs since all the other available tools are oriented towards corporate organizations and we needed a light-weight tool to support our process. we went through a complete planning process first on whiteboards and paper, then developed an open source tool called tracc for helping us with portfolio management. keys to a dazzling library website redesign the u-m library launched a completely new primary website in july after years of work. the redesign project team focused on building a strong team, internal communication, content strategy, and practicing needs informed design and development to make the project a success. sweet sixteen: digital collections completed july - june digital content & collections (dcc) relies on content and subject experts to bring us new digital collections. this year, digital collections were created or significantly enhanced. here you will find links to videos and articles by the subject experts speaking in their own words about the digital collections they were involved in and why they found it so important to engage in this work with us. thank you to all of the people involved in each of these digital collections! adding ordered metadata fields to samvera hyrax how to add ordered metadata fields in samvera hyrax. includes example code and links to actual code. sinking our teeth into metadata improvement like many attempts at revisiting older materials, working with a couple dozen volumes of dental pamphlets started very simply but ended up being an interesting opportunity to explore the challenges of making the diverse range of materials held in libraries accessible to patrons in a digital environment. and while improving metadata may not sound glamorous, having sufficient metadata for users to be able to find what they are looking for is essential for the utility of digital libraries. collaboration and generosity provide the missing issue of the american jewess what started with a bit of wondering and conversation within our unit of the library led to my reaching out to princeton university with a request but no expectations of having that request fulfilled. individuals at princeton, however, considered the request and agreed to provide us with the single issue of the american jewess that we needed to complete the full run of the periodical within our digital collection. especially in these stressful times, we are delighted to bring you a positive story, one of collaboration and generosity across institutions, while also sharing the now-complete digital collection itself. how to stop being negative, or digitizing the harry a. franck film collection this article reviews how , + frames of photographic negatives from the harry a. franck collection are being digitally preserved. combine metadata harvester: aggregate all the data! the digital public library of america (dpla) has collected and made searchable a vast quantity of metadata from digital collections all across the country. the michigan service hub works with cultural heritage institutions throughout the state to collect their metadata, transform those metadata to be compatible with the dpla’s online library, and send the transformed metadata to the dpla, using the combine aggregator software, which is being developed here at the u of m library. hacks with friends retrospective: a pitch to hitch in when the students go on winter break i go to hacks with friends (hwf) and highly recommend and encourage everyone who can to participate in hwf . not only is it two days of free breakfast, lunch, and snacks at the ross school of business, but it’s a chance to work with a diverse cross section of faculty, staff, and students on innovative solutions to complex problems. u-m library’s digital collection items are now included in library search the university library’s digital collections, encompassing more than collections with over a million items, are now discoverable through the library’s articles discovery tool, powered by summon. read on to learn about searching this trove of images and text, and how to add it to your library’s summon instance. ars technica’s non-fungible guide to nfts | ars technica skip to main content biz & it tech science policy cars gaming & culture store forums subscribe close navigate store subscribe videos features reviews rss feeds mobile site about ars staff directory contact us advertise with ars reprints filter by topic biz & it tech science policy cars gaming & culture store forums settings front page layout grid list site theme black on white white on black sign in comment activity sign up or login to join the discussions! stay logged in | having trouble? sign up to comment and more sign up this article is for sale as an nft, probably — ars technica’s non-fungible guide to nfts is blockchain item authentication a speculative fad or a technological sea change? kyle orland - mar , : am utc enlarge / look ma, i'm on the blockchain chris torres | beeple | aurich lawson reader comments with posters participating, including story author share this story share on facebook share on twitter share on reddit it has been nearly years now since ars technica first described bitcoin to readers as “the world’s first virtual currency… designed by an enigmatic, freedom-loving hacker, and currently used by the geek underground to buy and sell everything from servers to cellphone jammers.” a decade later, bitcoin and other cryptocurrencies are practically mainstream, and even most non-techies know the blockchain basics powering a decentralized financial revolution (or a persistent bubble, if you prefer). what bitcoin was to , nfts are to . so-called “non-fungible tokens” are having a bit of a moment in recent weeks, attracting a surge of venture capital cash and eye-watering speculative values for traceable digital goods. this despite the fact that most of the general public barely understands how this blockchain-based system of digital authentication works, or why it’s behind people paying $ million for a single gif. fungible? token? perhaps the simplest way to start thinking about nfts is as a digital version of the various “certificates of authenticity” that are prevalent in the market for real-world art and collectibles. instead of a slip of paper, though, nfts use cryptographic smart contracts and a distributed blockchain (most often built on top of ethereum these days) to certify who owns each distinct, authentic token. as with cryptocurrencies, those contracts are verified by the collective distributed work of miners who keep the entire system honest with their computational work (the electricity for which creates a lot of nasty carbon emissions). and just like cryptocurrencies, those nfts can be sold and traded directly on any number of marketplaces without any centralized control structure dictating the rules of those transfers. what makes nfts different from your run-of-the-mill cryptocurrency is each token’s distinctiveness. with a cryptocurrency like bitcoin, each individual unit is indistinguishable from another and has an identical value. each individual bitcoin can be traded or divided up just like any other bitcoin (i.e. the bitcoins are fungible). nfts being “non-fungible” means each one represents a distinct entity with a distinct value that can’t be divided into smaller units. just as anyone can start printing their own line of certificates of authenticity (or anyone can start up their own cryptocurrency to try to be “the next bitcoin”), anyone with just a little technical knowhow can start minting their own distinct nfts. etherscan currently lists over , distinct nft contracts, each its own network of trust representing and tracking its own set of digital goods. enlarge / it's trivial to make a digital copy of any of the images for sale on rarible. but those copies won't have the "authenticity" of the actual nft being sold... these nft contracts can represent pretty much anything that can exist digitally: a webpage, a gif, a video clip, you name it. digital artists are using nfts to create “scarce” verified versions of their pieces, while collectible companies are using them to create traceable, unforgeable digital trading cards. video game items and characters can be represented as nfts, too, allowing for easy proof of ownership and portability even between games controlled by different companies (though the market for such games is still very immature). there are plenty of even odder examples out there. vid is a tiktok-like social media network that gives users nft-traced ownership of their posted videos (and royalty payments for the same). the ethereum name service is using nfts to set up a decentralized version of the icann-controlled domain name service for finding online content. aavegotchi is a weird hybrid that uses digital pets to represent your stake in a decentralized finance protocol called aave. essentially, there are hundreds of companies looking to nfts for situations where they need to trace and verify ownership of distinct digital goods. advertisement the idea has been catching on quickly, at least among speculators with a lot of money to throw around. nonfungibles’ database of hundreds of different nfts has tracked over $ million in sales across nearly , nft transactions in just the last week. rarible, one of the most popular nft marketplaces, saw its daily trading volume hit $ . million earlier this month, tripling the same number from just a day before. cryptopunks, an early nft representing , unique pixellated avatars, has seen over $ million in total transactions since its creation in (with over percent of that volume coming in the last week). how does it work? on a technical level, most nfts are built on the erc- standard. that framework sets up the basic cryptographic system to track ownership of each individual token (by linking it to user-controlled digital wallets) and allow for secure, verified transfer on the blockchain. some nft contracts have built additional attributes and features on top of that standard. the nft for a cryptokitty, for instance, contains metadata representing that digital avatar’s unique look and traits. that metadata also establishes rules for how often it can “breed” new cryptokitty nfts and what traits it will pass down to future generations. those attributes are set and verified on the blockchain, and they can’t be altered no matter how or where the cryptokitty is used. when nft’s are used to represent digital files (like gifs or videos), however, those files usually aren’t stored directly “on-chain” in the token itself. doing so for any decently sized file could get prohibitively expensive, given the cost of replicating those files across every user on the chain. instead, most nfts store the actual content as a simple uri string in their metadata, pointing to an internet address where the digital thing actually resides. it may seem odd to link a system of decentralized, distributed digital goods to content hosted on centralized servers controlled by actual people or companies. given that the vast majority of webpage links become defunct after just a few years, an nft pointing to a plain-old web address wouldn’t seem to be a good long-term store of value. enlarge / a diagram laying out the basic difference between ipfs distributed file storage and standard, centrally controlled http servers. blocknomi / maxcdn many nfts get around this by using burgeoning blockchain-based file networks such as ipfs or pixelchain. these networks are designed to let users find, copy, and store cryptographically signed files that could be distributed among any number of independent nodes (including ones controlled by the nft owner). in theory, linking an nft to an ipfs address could ensure the digital file in question will continue to be accessible in perpetuity, as long as someone has mirrored a verifiable copy on some node in the ipfs network. are nfts really that valuable? just like a certificate of authenticity, the value of an nft (and the “unique” digital item it represents) is strongly tied to its provenance. the person who spent $ , for an nft representing the original nyan cat meme, for instance, obviously didn’t purchase every copy of the famous animated gif of a pop-tart cat with a rainbow trail behind it. you can still download your own identical copy with a few clicks. the nft doesn’t even include the copyright to nyan cat, which would at least give the owner some legal control over the work (though some nfts try to embed such rights in their contracts). what makes the nyan cat nft interesting (and potentially valuable) is that it was verified and sold by chris torres, the person who created and posted the original nyan cat video to youtube in . that gives this copy of nyan cat a unique history and a tie to the meme’s creation that can’t be matched by any other copy (or any other nft, unless torres starts diluting the value by minting more). and the blockchain technology behind the nft ensures the chain of custody for that version of the gif can be traced back to torres' original minting, no matter how many times it's sold or transferred. advertisement enlarge / this nyan cat gif is practically worthless. so why is an nft of an "identical" gif worth so much money to a collector? does that fact alone really give this nft any more value than all of the other identical nyan cat gifs floating around on the internet? that’s for a highly speculative market to figure out. but just as a stroke-for-stroke copy of a vermeer masterpiece doesn’t have the same value as the one-of-a-kind original, a verified “original” nyan cat from the meme’s creator may retain some persistent value to collectors. just because digital goods are easier to copy than paintings doesn’t make one less valuable than the other, either. it’s trivial to make a near-perfect copy of a photographic print, but original photographs can still sell for millions of dollars to the right buyer. on the other hand, these nfts might end up being more akin to those novelty deeds that claim the document gives you “ownership” of a star in the night sky. while there’s probably some sentimental value to the idea of owning a star, there isn’t any real robust market where the most coveted stars trade for large sums. and just like there are a lot of competing organizations offering “star deeds” these days, there are a lot of competing firms that could dilute the market with their own nft offerings. do you know where your nft came from? all of this means that tracing the provenance of any given nft can be of prime importance to its implicit value. nft marketplace superrare ensures its nfts are “authentic” by only minting tokens for a set of “hand-picked artists” for the time being. nba top shot, meanwhile, relies on its nba license to make sure its randomized packs of basketball video clips are each unique and have an “official” air to them. but there are plenty of situations where the original ownership of a particular nft is more questionable. game developer jason rohrer drew some controversy earlier this month by trying to sell nft tokens for artwork originally created by other artists for his game the castle doctrine. this did not please many of the artists who were not aware their digital work was being resold as a token, to say the least. then there’s tokenized tweets, a simple service that can create a sellable nft token representing any tweet on the service, including ones created by other people. the service has recently stopped tokenizing tweets that include visual media, and it lets artists make takedown requests if their copyrighted art/photography is tokenized by the service. but that seems like a pretty skimpy band-aid for an offering that seems rife with fraud potential. enlarge / the nft-backed "marble card" frame for reddit.com has no actual connection to the creators or owners of reddit. but does that matter? there are also gray areas like marble cards, which lets you create an nft “frame” intended to go around a specific, unique webpage url. that makes each frame akin to a unique trading card with a picture of a webpage on it. while the service states clearly that “no third-party content is claimed or saved on any blockchain,” the direct link and implicit association with the webpage in question could lead to some thorny questions of ownership. with literally thousands of companies jumping into the nft space, there’s a gold rush mentality that seems primed to spawn plenty of scams. and even legitimate nft efforts could see their values fade away quickly if the market’s attention moves on to a different blockchain as its store of “authentic” value. cryptokitties, one of the first popular nft collectibles in late , saw transaction volume plummet percent in as high ethereum fees and lack of novelty drove some of the more speculative players away. back in , it was unclear if bitcoin was going to be a lasting financial instrument or a flash-in-the-pan technological fad. and here in , you can say the same thing about the future for nfts. promoted comments kaworu ars praetorian jump to post so the nft gives you... nothing? it has no connection to copyright ownership of the work it refers to and there's nothing stopping the creation of multiple nfts for the same work either. seems really pointless. surprised to see there's people willing to pay actual money for any of this. posts | registered / / reader comments with posters participating, including story author share this story share on facebook share on twitter share on reddit kyle orland kyle is the senior gaming editor at ars technica, specializing in video game hardware and software. he has journalism and computer science degrees from university of maryland. he is based in the washington, dc area. email kyle.orland@arstechnica.com // twitter @kyleorl advertisement you must login or create an account to comment. channel ars technica ← previous story next story → related stories sponsored stories powered by today on ars store subscribe about us rss feeds view mobile site contact us staff advertise with us reprints newsletter signup join the ars orbital transmission mailing list to get weekly updates delivered to your inbox. sign me up → cnmn collection wired media group © condé nast. all rights reserved. use of and/or registration on any portion of this site constitutes acceptance of our user agreement (updated / / ) and privacy policy and cookie statement (updated / / ) and ars technica addendum (effective / / ). ars may earn compensation on sales from links on this site. read our affiliate link policy. your california privacy rights | do not sell my personal information the material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of condé nast. ad choices acrl techconnect skip to content acrl techconnect menu about authors broken links in the discovery layer—pt. ii: towards an ethnography of broken links this post continues where my last one left off, investigating broken links in our discovery layer. be forewarned—most of it will be a long, dry list of all the mundane horrors of librarianship. metadata mismatches, ezproxy errors, and openurl resolvers, oh my! what does it mean when we say a link is broken? the simplest definition would be: when a link that claims to lead to full text does not. but the way that many discovery layers work is by translating article metadata into a query in a separate database, which leads to some gray areas. what if the link leads to a search with only a single result, the resource in question? what if the link leads to a search with two results, a dozen, a hundred…and the resource is among them? what if the link leads to a journal index and it takes some navigation to get to the article’s full text? where do we draw the line? the user’s expectation is that selecting something that says “full text” leads to the source itself. i think all of the above count as broken links, though they obviously range in severity. some mean that the article simply cannot be accessed while others mean that the user has to perform a little more work. for the purposes of this study, i am primarily concerned with the first case: when the full text is nowhere near the link’s destination. as we discuss individual cases reported by end users, it will solidify our definition. long list i’m going to enumerate some types of errors i’ve seen, providing a specific example and detailing its nature as much as possible to differentiate the errors from each other. . the user selects a full text link but is taken to a database query that doesn’t yield the desired result. we had someone report this with an article entitled “land use: u.s. soil erosion rates–myth and reality” in summon which was translated into a query on the article’s issn, publication title, and an accidentally truncated title (just “land use”). the query fails to retrieve the article but does show other results. the article is present in the database and can be retrieved by editing the query, for instance by changing the title parameter to “u.s. soil erosion rates”. indeed, the database has the title as “u.s. soil erosion rates–myth and reality”. the article appears to be part of a recurring column and is labelled “policy forum: land use” which explains the discovery layer’s representation of the title. fundamentally, the problem is a disagreement about the title between the discovery layer and database. as another example, i’ve seen this problem occur with book reviews where one side prefixes the title with “review:” while the other does not. in a third instance of this, i’ve seen a query title = "julia brannen peter moss "and" ann mooney working "and" caring over the twentieth century palgrave macmillan basingstoke hampshire pp hbk £ isbn " where a lot of ancillary text spilled into the title. . the user is looking for a specific piece except the destination database combines this piece with similar ones into a single record with a generic title such that incoming queries fail. so, for instance, our discovery layer’s link might become a title query for book review: bad feminist by roxane gay in the destination, which only has an article named “book reviews” in the same issue of the host publication. in my experience, this is one of the more common discovery layer problems and can be described as a granularity mismatch. the discovery layer and subscription database disagree about what the fundamental unit of the publication is. while book reviews often evince this problem, so too do letters to the editor, opinion pieces, and recurring columns. . an article present in one of our subscription databases is not represented in the discovery layer, despite the database being correctly selected in the knowledgebase that informs the discovery system’s index. we’re able to read the article “kopfkino: julia phillips’ sculptures beyond the binary” in an ebsco database that provides access to the journal flash art international but no query in summon can retrieve it as a result. i suppose this is not technically a broken link as a non-existent link but it falls under the general umbrella of discovery layer content problems. . the exact inverse of the above: an article is correctly represented by the discovery layer index as being part of a database subscription that the user should have access to, but the article does not actually exist within the source database due to missing content. this occurred with an interview of howard willard in american artist from . while our subscription to art & architecture source does indeed include the issue of american artist in question, and one can read other articles from it, there was no record for the interview itself in ebscohost nor are its pages present in any of the pdf scans of the issue. . the user is looking for an article that is combined with another, even though the source seems to agree that they should be treated separately. for instance, one of our users was looking for the article “musical curiosities in athanasius kircher’s antiquarian visions” in the journal music in art but summon’s link lands on a broken link resolver page in the destination ebsco database. it turns out, upon closer inspection, that the pages for this article are appended to the pdf of the article that appears before it. all other articles for the issue have their own record. this is an interesting hybrid metadata/content problem similar to granularity mismatch: while there is no record for the article itself in the database, the article’s text is present. yet unlike some granularity mismatches it is impossible to circumvent via search; you have to know to browse the issue and utilize page numbers to locate it. . the user selects a link to an article published within the past year in a journal with a year-long embargo. the discovery layer shows a “full text online” link but because the source’s link resolver doesn’t consider an embargoed article to be a valid destination, the link lands on an error page. this is an instance where summon would, ideally, at least take to you to the article’s citation page but in any case the user won’t be able to retrieve the full text. . the user selects an article that is in a journal not contained within any of the library’s database subscriptions. this is usually simple knowledge base error where the journal lists for a database changed without being updated in the discovery layer index. still, it’s quite common because not all subscription changes are published in a machine-readable manner that would allow discovery layers to automate their ingestion. . the user selects an article listed as being published in in the discovery layer, while the source database has so the openurl fails to resolve properly. upon investigation, this date mismatch can be traced back to the journal’s publisher which lists the individual articles as being published in while the issue in which they are contained comes from . the summon support staff rightly points out to me that they can’t simply change the article dates to match one source; while it might fix some links, it will break others, and this date mismatch is a fundamentally unsolvable disagreement. this issue highlights the brittleness of real world metadata; publishers, content aggregators, and discovery products do not live in harmony. reviewing the list of problems, this dual organization seems to helpfully group like issues: metadata & linking problems metadata mismatch ( , , ) granularity mismatch ( ) link resolver error ( ) index problems article not in database/journal/index ( , , , ) journal not in database ( ) of these three, the first category accounts for the vast majority of problems according to my anecdata. it’s notable that issues overlap and their classification is inexact. when a link to an embargoed article fails, should we say that is due to the article being “missing” or a link resolver issue? whatever the case, it is often clear when a link is broken even if we could argue endlessly about how exactly. there are also a host of problems that we, as librarians, cause. we might misconfigure ezproxy for a database or fail to keep our knowledge base holdings up to date. the difference with these problems is that they tend to happen once and then be resolved forever; i fix the ezproxy stanza, i remove access to the database we unsubscribed from. so the proportion of errors we account for is vanishingly low, while these other errors are eternal. no matter how many granularity mismatches or missing articles in i point out, there are always millions more waiting to cause problems for our users. notes this sort of incredibly poor handling of punctuation in queries is sadly quite common. even though, in this instance, the source database and discovery layer are made by the same company the link between them still isn’t prepared to handle a colon in a text string. consider how many academic articles have colons in their title. this is not good. ↩ author eric phetteplaceposted on july , categories discovery, metadata comment on broken links in the discovery layer—pt. ii: towards an ethnography of broken links broken links in the discovery layer—pt. i: researching a problem like many administrators of discovery layers, i’m constantly baffled and frustrated when users can’t access full text results from their searches. after implementing summon, we heard a few reports of problems and gradually our librarians started to stumble across them on their own. at first, we had no formal system for tracking these errors. eventually, i added a script which inserted a “report broken link” form into our discovery layer’s search results. i hoped that collecting reported problems and then reporting then would identify certain systemic issues that could be resolved, ultimately leading to fewer problems. pointing out patterns in these errors to vendors should lead to actual progress in terms of user experience. from the broken links form, i began to cull some data on the problem. i can tell you, for instance, which destination databases experience the most problems or what the character of the most common problems is. the issue is the sample bias—are the problems that are reported really the most common? or are they just the ones that our most diligent researchers (mostly our librarians, graduate students, and faculty) are likely to report? i long for quantifiable evidence of the issue without this bias. how i classify the broken links that have been reported via our form. n = select searches & search results so how would one go about objectively studying broken links in a discovery layer? the first issue to solve is what searches and search results to review. luckily, we have data on this—we can view in our analytics what the most popular searches are. but a problem becomes apparent when one goes to review those search terms: artstor hours jstor kanopy of course, the most commonly occurring searches tend to be single words. these searches all trigger “best bet” or database suggestions that send users directly to other resources. if their result lists do contain broken links, those links are unlikely to ever be visited, making them a poor choice for our study. if i go a little further into the set of most common searches, i see single-word subject searches for “drawing” followed by some proper nouns (“suzanne lacy”, “chicago manual of style”). these are better since it’s more likely users actually select items from their results but still aren’t a great representation of all the types of searches that occur. why are these types of single-word searches not the best test cases? because search phrases necessarily have a long tail distribution; the most popular searches aren’t that popular in the context of the total quantity of searches performed . there are many distinct search queries that were only ever executed once. our most popular search of “artstor”? it was executed times over the past two years. yet we’ve had somewhere near , searches in the past six months alone. this supposedly popular phrase has a negligible share of that total. meanwhile, just because a search for “how to hack it as a working parent. jaclyn bedoya, margaret heller, christina salazar, and may yan. code lib ( ) iss. ″ has only been run once doesn’t mean it doesn’t represent a type of search—exact citation search—that is fairly common and worth examining, since broken links during known item searches are more likely to be frustrating. even our most popular searches evince a long tail distribution. so let’s say we resolve the problem of which searches to choose by creating a taxonomy of search types, from single-word subjects to copy-pasted citations. we can select a few real world samples of each type to use in our study. yet we still haven’t decided which search results we’re going to examine! luckily, this proves much easier to resolve. people don’t look very far down in the search results , rarely scrolling past the first “page” listed (summon has an infinite scroll so there technically are no pages, but you get the idea). only items within the first ten results are likely to be selected. once we have our searches and know that we want to examine only the first ten or so results, my next thought is that it might be worth filtering our results that are unlikely to have problems. but does skipping the records from our catalog, institutional repository, libguides, etc. make other problems abnormally more apparent? after all, these sorts of results are likely to work since we’re providing direct links to the summon link. also, our users do not heavily employ facets—they would be unlikely to filter out results from the library catalog. in a way, by focusing a study on search results that are the most likely to fail and thus give us information about underlying linking issues, we’re diverging away from the typical search experience. in the end, i think it’s worthwhile to stay true to more realistic search patterns and not apply, for instance, a “full text online” filter which would exclude our library catalog. next time on tech connect—oh how many ways can things go wrong?!? i’ll start investigating broken links and attempt to enumerate their differing natures. notes this script was largely copied from robert hoyt of fairfield university, so all credit due to him. ↩ for instance, see: beitzel, s. m., jensen, e. c., chowdhury, a., frieder, o., & grossman, d. ( ). temporal analysis of a very large topically categorized web query log. journal of the american society for information science and technology, ( ), – . “… it is clear that the vast majority of queries in an hour appear only one to five times and that these rare queries consistently account for large portions of the total query volume” ↩ ignore, for the moment, that this taxonomy’s constitution is an entire field of study to itself. ↩ pan, b., hembrooke, h., joachims, t., lorigo, l., gay, g., & granka, l. ( ). in google we trust: users’ decisions on rank, position, and relevance. journal of computer-mediated communication, ( ), – . ↩ in fact, the most common facet used in our discovery layer is “library catalog” showing that users often want only bibliographic records; the precise opposite of a search aimed at only retrieving article database results. ↩ author eric phetteplaceposted on march , march , categories data, discovery comments on broken links in the discovery layer—pt. i: researching a problem orcid for system interoperability in scholarly communication workflows what is orcid? if you work in an academic library or otherwise provide support for research and scholarly communication, you have probably heard of orcid (open contributor & researcher identifier) in terms of “orcid id,” a unique -digit identifier that represents an individual in order to mitigate name ambiguity. the orcid id number is presented as a uri (unique resource identifier) that serves as the link to a corresponding orcid record, where disambiguating data about an individual is stored. for example, https://orcid.org/ - - - x is the orcid id for the late stephen hawking, and clicking on this link will take you to hawking’s orcid record. data within orcid records can include things like names(s) and other identifiers, biographical information, organizational affiliations, and works. figure : this screenshot shows the types of data that can be contained in an orcid record. anyone can register for an orcid id for free, and individuals have full control over what data appears in their record, the visibility of that data, and whether other individuals or organizations are authorized to add data to their orcid record on their behalf. individuals can populate information in their orcid record themselves, or they can grant permission to organizations, like research institutions, publishers, and funding agencies, to connect with their orcid record as trusted parties, establishing an official affiliation between the individual and the organization. for example, figures and illustrate an authenticated orcid connection between an individual author and the university of virginia (uva) as represented in libraopen, the uva library’s samvera institutional repository. figure : the university of virginia library’s libraopen institutional repository is configured to make authenticated connections with authors’ orcid records, linking the author to their contributions and to the institution. once an author authenticates/connects their orcid id in the system, orcid id uris are displayed next to the authors’ names. image source: doi.org/ . /v fb t figure : by clicking on the author’s orcid id uri in libraopen, we can see the work listed on the individual’s orcid record, with “university of virginia” as the source of the data, which means that the author gave permission for uva to write to their orcid record. this saves time for the author, ensures integrity of metadata, and contributes trustworthy data back to the scholarly communication ecosystem that can then be used by other systems connected with orcid. image courtesy of sherry lake, uva https://orcid.org/ - - - orcid ecosystem & interoperability these authenticated connections are made possible by configuring software systems to communicate with the orcid registry through the orcid api, which is based on oauth . . with individual researchers/contributors at the center, and their affiliated organizations connecting with them through the orcid api, all participating organizations’ systems can also communicate with each other. in this way, orcid not only serves as a mechanism for name disambiguation, it also provides a linchpin for system interoperability in the research and scholarly communication ecosystem. figure : orcid serves as a mechanism for interoperability between systems and data in the scholarly communication ecosystem. graphic courtesy of the orcid organization. publishers, funders, research institutions (employers), government agencies, and other stakeholders have been adopting and using orcid increasingly in their systems over the past several years. as a global initiative, over million individuals around the world have registered for an orcid id, and that number continues to grow steadily as more organizations start to require orcid ids in their workflows. for example, over publishers have signed on to an open letter committing to use orcid in their processes, and grant funders are continuing to come on board with orcid as well, having recently released their own open letter demonstrating commitment to orcid. a full list of participating orcid member organizations around the globe can be found at https://orcid.org/members. orcid integrations orcid can be integrated into any system that touches the types of data contained within an orcid record, including repositories, publishing and content management platforms, data management systems, central identity management systems, human resources, grants management, and current research information systems (cris). orcid integrations can either be custom built into local systems, such as the example from uva above, or made available through a vendor system out of the box. several vendor-hosted cris such as pure, faculty , digital measures, and symplectic elements, already have built-in support for authenticated orcid connections that can be utilized by institutional orcid members, which provides a quick win for pulling orcid data into assessment workflows with no development required. while orcid has a public api that offers limited functionality for connecting with orcid ids and reading public orcid data, the orcid member api allows organizations to read from, write to, and auto-update orcid data for their affiliated researchers. the orcid institutional membership model allows organizations to support the orcid initiative and benefit from the more robust functionality that the member api provides. orcid can be integrated with disparate systems, or with one system from which data flows into others, as illustrated in figure . figure : this graphic from the czech technical university in prague illustrates how a central identity management system is configured to connect with the orcid registry via the orcid api, with orcid data flowing internally to other institutional systems. image source: czech technical university in prague central library & computing and information centre , : solving a problem of authority control in dspace during orcid implementation orcid in us research institutions in january of , four consortia in the us – the northeast research libraries (nerl), the greater western library alliance (gwla), the big ten academic alliance (btaa), and lyrasis – joined forces to form a national partnership for a consortial approach to orcid membership among research institutions in the us, known as the orcid us community. the national partnership allows non-profit research institutions to become premium orcid member organizations for a significantly discounted fee and employs staff to provide dedicated technical and community support for its members. as of december , , there are member organizations in the orcid us community. in addition to encouraging adoption of orcid, a main goal of the consortium approach is to build a community of practice around orcid in the us. prior to , any institutions participating in orcid were essentially going it alone and there were no dedicated communication channels or forums for discussion and sharing around orcid at a national level. however, with the formation of the orcid us community, there is now a website with community resources for orcid adoption specific to the us, dedicated communication channels, and an open door to collaboration between member institutions. among orcid us community member organizations, just under half have integrated orcid with one or more systems, and the other slightly more than half are either in early planning stages or technical development. (see the orcid us community newsletter for more information.) as an ecosystem, orcid relies not only on organizations but also the participation of individual researchers, so all members have also been actively reaching out to their affiliated researchers to encourage them to register for, connect, and use their orcid id. getting started with orcid orcid can benefit research institutions by mitigating confusion caused by name ambiguity, providing an interoperable data source that can be used for individual assessment and aggregated review of institutional impact, allowing institutions to assert authority over their institutional name and verify affiliations with researchers, ultimately saving time and reducing administrative burden for both organizations and individuals. to get the most value from orcid, research institutions should consider the following three activities as outlined in the orcid us planning guide: forming a cross-campus orcid committee or group with stakeholders from different campus units (libraries, central it, research office, graduate school, grants office, human resources, specific academic units, etc.) to strategically plan orcid system integration and outreach efforts assessing all of the current systems used on campus to determine which workflows could benefit from orcid integration conducting outreach and education around research impact and orcid to encourage researchers to register for and use their orcid id the more people and organizations/systems using orcid, the more all stakeholders can benefit from orcid by maintaining a record of an individuals’ scholarly and cultural contributions throughout their career, mitigating confusion caused by name ambiguity, assessing individual contributions as well as institutional impact, and enabling trustworthy and efficient sharing of data across scholarly communication workflows. effectively, orcid represents a paradigm shift from siloed, repetitive workflows to the ideal of being able to “enter once, re-use often” by using orcid to transfer data between systems, workflows, and individuals, ultimately making everyone’s lives easier. sheila rabun is the orcid us community specialist at lyrasis, providing technical and community support for + institutional members of the orcid us community. in prior roles, she managed community and communication for the international image interoperability framework (iiif) consortium, and served as a digital project manager for several years at the university of oregon libraries’ digital scholarship center. learn more at https://orcid.org/ - - - author sheila rabunposted on december , december , categories digital scholarship, publication, scholarly communication creating presentations with beautiful.ai updated - - at : pm with accessibility information. beautiful.ai is a new website that enables users to create dynamic presentations quickly and easily with “smart templates” and other design optimized features. so far the service is free with a paid pro tier coming soon. i first heard about beautiful.ai in an advertisement on npr and was immediately intrigued. the landscape of presentation software platforms has broadened in recent years to include websites like prezi, emaze, and an array of others beyond the tried and true powerpoint. my preferred method of creating presentations for the past couple of years has been to customize the layouts available on canva and download the completed pdfs for use in powerpoint. i am also someone who enjoys tinkering with fonts and other design elements until i get a presentation just right, but i know that these steps can be time consuming and overwhelming for many people. with that in mind, i set out to put beautiful.ai to the test by creating a short “prepare and share” presentation about my first experience at ala’s annual conference this past june for an upcoming meeting. a title slide created with beautiful.ai. features to help you get started, beautiful.ai includes an introductory “design tips for beautiful slides” presentation. it is also fully customizable so you can play around with all of of the features and options as you explore, or you can click on “create new presentation” to start from scratch. you’ll then be prompted to choose a theme, and you can also choose a color palette. once you start adding slides you can make use of beautiful.ai’s template library. this is the foundation of the site’s usefulness because it helps alleviate guesswork about where to put content and that dreaded “staring at the blank slide” feeling. each individual slide becomes a canvas as you create a presentation, similar to what is likely familiar in powerpoint. in fact, all of the most popular powerpoint features are available in beautiful.ai, they’re just located in very different places. from the navigation at the left of the screen users can adjust the colors and layout of each slide as well as add images, animation, and presenter notes. options to add, duplicate, or delete a slide are available on the right of the screen. the organize feature also allows you to zoom out and see all of the slides in the presentation. beautiful.ai offers a built-in template to create a word cloud. one of beautiful.ai’s best features, and my personal favorite, is its built-in free stock image library. you can choose from pre-selected categories such as data, meeting, nature, or technology or search for other images. an import feature is also available, but providing the stock images is extremely useful if you don’t have your own photos at the ready. using these images also ensures that no copyright restrictions are violated and helps add a professional polish to your presentation. the options to add an audio track and advance times to slides are also nice to have for creating presentations as tutorials or introductions to a topic. when you’re ready to present, you can do so directly from the browser or export to pdf or powerpoint. options to share with a link or embed with code are also available. usability while intuitive design and overall usability won’t necessarily make or break the existence of a presentation software platform, each will play a role in influencing whether someone uses it more than once. for the most part, i found beautiful.ai to be easy and fun to use. the interface is bold, yet simplistic, and on trend with current website design aesthetics. still, users who are new to creating presentations online in a non-powerpoint environment may find the beautiful.ai interface to be confusing at first. most features are consolidated within icons and require you to hover over them to reveal their function. icons like the camera to represent “add image” are pretty obvious, but others such as layout and organize are less intuitive. some of beautiful.ai’s terminology may also not be as easily recognizable. for example, the use of the term “variations” was confusing to me at first, especially since it’s only an option for the title slide. the absence of any drag and drop capability for text boxes is definitely a feature that’s missing for me. this is really where the automated design adaptability didn’t seem to work as well as i would’ve expected given that it’s one of the company’s most prominent marketing statements. on the title slide of my presentation, capitalizing a letter in the title caused the text to move closer to the edge of the slide. in canva, i could easily pull the text block over to the left a little or adjust the font size down by a few points. i really am a stickler for spacing in my presentations, and i would’ve expected this to be an element that the “design ai” would pick up on. each template also has different pre-set design elements, and it can be confusing when you choose one that includes a feature that you didn’t expect. yet, text sizes that are pre-set to fit the dimensions of each template does help not only with readability in the creation phase but with overall visibility for audiences. again, this alleviates some of the guesswork that often happens in powerpoint with not knowing exactly how large your text sizes will appear when projected onto larger screens. a slide created using a basic template and stock photos available in beautiful.ai. one feature that does work really well is the export option. exporting to powerpoint creates a perfectly sized facsimile presentation, and being able to easily download a pdf is very useful for creating handouts or archiving a presentation later on. both are nice to have as a backup for conferences where internet access may be spotty, and it’s nice that beautiful.ai understands the need for these options. unfortunately, beautiful.ai doesn’t address accessibility on its faq page nor does it offer alternative text or other web accessibility features. users will need to add their own slide titles and alt text in powerpoint and adobe acrobat after exporting from beautiful.ai to create an accessible presentation.  conclusion beautiful.ai challenged me to think in new ways about how best to deliver information in a visually engaging way. it’s a useful option for librarians and students who are looking for a presentation website that is fun to use, engaging, and on trend with current web design. click here to view “my first ala”presentation created with beautiful.ai. jeanette sewell is the database and metadata management coordinator at fondren library, rice university. author jeanette sewellposted on november , november , categories conferences, library, presentation, technology, tools national forum on web privacy and web analytics we had the fantastic experience of participating in the national forum on web privacy and web analytics in bozeman, montana last month. this event brought together around forty people from different areas and types of libraries to do in-depth discussion and planning about privacy issues in libraries. our hosts from montana state university, scott young, jason clark, sara mannheimer, and jacqueline frank, framed the event with different (though overlapping) areas of focus. we broke into groups based on our interests from a pre-event survey and worked through a number of activities to identify projects. you can follow along with all the activities and documents produced during the forum in this document that collates all of them. float your boat exercise             while initially worried that the activities would feel too forced, instead they really worked to release creative ideas. here’s an example: our groups drew pictures of boats with sails showing opportunities, and anchors showing problems. we started out in two smaller subgroups of our subgroups and drew a boat, then met with the large subgroup to combine the boat ideas. this meant that it was easy to spot the common themes—each smaller group had written some of the same themes (like gdpr). working in metaphor meant we could express some more complex issues, like politics, as the ocean—something that always surrounds the issue and can be helpful or unhelpful without much warning. this helped us think differently about issues and not get too focused on our own individual perspective. the process of turning metaphor into action was hard. we had to take the whole world of problems and opportunities and come up with how these could be realistically accomplished. good and important ideas had to get left behind because they were so big there was no way to feasibly plan them, certainly not in a day or two. the differing assortment of groups (which were mixable where ideas overlapped) ensured that we were able to question each other’s assumptions and ask some hard questions. for example, one of the issues margaret’s group had identified as a problem was disagreement in the profession about what the proper limits were on privacy. individually identifiable usage metrics are a valuable commodity to some, and a thing not to be touched to others. while everyone in the room was probably biased more in favor of privacy than perhaps the profession at large is, we could share stories and realities of the types of data we were collecting and what it was being used for. considering the realities of our environments, one of our ideas to bring everyone from across the library and archives world to create a unified set of privacy values was not going to happen. despite that, we were able to identify one of the core problems that led to a lack of unity, which was, in many cases, lack of knowledge about what privacy issues existed and how these might affect institutions. when you don’t completely understand something, or only half understand it, you are more likely to be afraid of it.             on the afternoon of the second day and continuing into the morning of the third day, we had to get serious and pick just one idea to focus on to create a project plan. again, the facilitators utilized a few processes that helped us take a big idea and break it down into more manageable components. we used “big scai” thinking to frame the project: what is the status quo, what are the challenges, what actions are required, and what are the ideals. from there we worked through what was necessary for the project, nice to have, unlikely to get, and completely unnecessary to the project. this helped focus efforts and made the process of writing a project implementation plan much easier. what the workday looked like. writing the project implementation plan as a group was made easier by shared documents, but we all commented on the irony of using google docs to write privacy plans. on the other hand, trying to figure out how to write in groups and easily share what we wrote using any other platform was a challenge in the moment. this reality illustrates the problems with privacy: the tool that is easiest to use and comes to mind first will be the one that ends up being used. we have to create tools that make privacy easy (which was a discussion many of us at the forum had), but even more so we need to think about the tradeoffs that we make in choosing a tool and educate ourselves and others about this. in this case, since all the outcomes of the project were going to be public anyway, going on the “quick and easy” side was ok.             the forum project leaders recently presented about their work at the dlf forum conference. in this presentation, they outlined the work that they did leading up to the forum, and the strategies that emerged from the day. they characterized the strategies as privacy badging and certifications, privacy leadership training, privacy for tribal communities and organizations, model license for vendor contracts, privacy research institute, and a responsible assessment toolkit. you can read through the thought process and implementation strategies for these projects and others yourself at the project plan index. the goal is to ensure that whoever wants to do the work can do it. to quote scott young’s follow-up email, “we ask only that you keep in touch with us for the purposes of community facilitation and grant reporting, and to note the provenance of the idea in future proposals—a sort of cc by designation, to speak in copyright terms.”             for us, this three-day deep dive into privacy was an inspiration and a chance to make new connections (while also catching up with some old friends). but even more, it was a reminder that you don’t need much of anything to create a community. provided the right framing, as long as you have people with differing experiences and perspectives coming together to learn from each other, you’ve facilitated the community-building.   author margaret hellerposted on october , october , categories conferences, privacy the ex libris knowledge center and orangewashing two days after proquest completed their acquisition of ex libris in december , ex libris announced the launch of their new online customer knowledge center. in the press release for the knowledge center, the company describes it as “a single gateway to all ex libris knowledge resources,” including training materials, release notes, and product manuals. a defining feature is that there has never been any paywall or log-on requirement, so that all knowledge center materials remain freely accessible to any site visitor. historically, access to documentation for automated library systems has been restricted to subscribing institutions, so the knowledge center represents a unique change in approach. within the press release, it is also readily apparent how ex libris aims to frame the openness of the knowledge center as a form of support for open access. as the company states in the second paragraph, “demonstrating the company’s belief in the importance of open access, the site is open to all, without requiring any logon procedure.” former ex libris ceo matti shem tov goes a step further in the following paragraph: “we want our resources and documentation to be as accessible and as open as our library management, discovery, and higher-education technology solutions are.” the problem with how ex libris frames their press release is that it elides the difference between mere openness and actual open access. they are a for-profit company, and their currently burgeoning market share is dependent upon a software-as-a-service (saas) business model. therefore, one way to describe their approach in this case is orangewashing. during a recent conversation with me, margaret heller came up with the term, based on the color of the plos open access symbol. similar in concept to greenwashing, we can define orangewashing as a misappropriation of open access rhetoric for business purposes. what perhaps makes orangewashing more initially difficult to diagnose in ex libris’s (and more broadly, proquest’s) case is that they attempt to tie support for open access to other product offerings. even before purchasing ex libris, proquest had been including an author-side paid open-access publishing option to its electronic thesis and dissertation platform, though we can question whether this is actually a good option for authors. for its part, ex libris has listened to customer feedback about open access discovery. as an example, there are now open access filters for both the primo and summon discovery layers. ex libris has also, generally speaking, remained open to customer participation regarding systems development, particularly with initiatives like the developer network and idea exchange. perhaps the most credible example is in a june , press release, where the company declares “support of the open discovery initiative (odi) and conformance with odi’s recommended practice for pre-indexed ‘web-scale’ discovery services.” a key implication is that “conforming to odi regulations about ranking of search results, linking to content, inclusion of materials in primo central, and discovery of open access content all uphold the principles of content neutrality.” given the above information, in the case of the knowledge center, it is tempting to give ex libris the benefit of the doubt. as an access services librarian, i understand how much of a hassle it can be to find and obtain systems documentation in order to properly do my job. i currently work for an ex libris institution, and can affirm that the knowledge center is of tangible benefit. besides providing easier availability for their materials, ex libris has done fairly well in keeping information and pathing up to date. notably, as of last month, customers can also contribute their own documentation to product-specific community knowledge sections within the knowledge center. nevertheless, this does not change the fact that while the knowledge center is unique in its format, it represents a low bar to clear for a company of ex libris’s size. their systems documentation should be openly accessible in any case. moreover, the knowledge center represents openness—in the form of company transparency and customer participation—for systems and products that are not open. this is why when we go back to the knowledge center press release, we can identify it as orangewashing. open access is not the point of a profit-driven company offering freely accessible documentation, and any claims to this effect ultimately ring hollow. so what is the likely point of the knowledge center, then? we should consider that alma has become the predominant service platform within academic libraries, with primo and summon being the only supported discovery layers for it. while oclc and ebsco offer or support competing products, ex libris already held an advantageous position even before the proquest purchase. therefore, besides the knowledge center serving as supportive measure for current customers, we can view it as a sales pitch to future ones. this may be a smart business strategy, but again, it has little to do with open access. two other recent developments provide further evidence of ex libris’s orangewashing. the first is mla’s announcement that ebsco will become the exclusive vendor for the mla international bibliography. on the primo-l listserv, ex libris posted a statement [listserv subscription required] noting that the agreement “goes against the goals of niso’s open discovery initiative…to promote collaboration and transparency among content and discovery providers.” nevertheless, despite not being involved in the agreement, ex libris shares some blame given the long-standing difficulty over ebsco not providing content to the primo central index. as a result, what may occur is the “siloing” of an indispensable research database, while ex libris customers remain dependent on the company to help determine an eventual route to access. secondly, in addition to offering research publications through proquest and discovery service through primo/summon, ex libris now provides end-to-end content management through esploro. monetizing more aspects of the research process is certainly far from unusual among academic publishers and service providers. elsevier arguably provides the most egregious example, and as lisa janicke hinchliffe notes, their pattern of recent acquisitions belies an apparent goal of creating a vertical stack service model for publication services. in considering what elsevier is doing, it is unsurprising—from a business standpoint—for ex libris and proquest to pursue profits in a similar manner. that said, we should bear in mind that libraries are already losing control over open access as a consequence of the general strategy that elsevier is employing. esploro will likely benefit from having strong library development partners and “open” customer feedback, but the potential end result could place its customers in a more financially disadvantageous and less autonomous position. this is simply antithetical to open access. over the past few years, ex libris has done well not just in their product development, but also their customer support. making the knowledge center “open to all” in late was a very positive step forward. yet the company’s decision to orangewash through claiming support for open access as part of a product unveiling still warrants critique. peter suber reminds us that open access is a “revolutionary kind of access”—one that is “unencumbered by a motive of financial gain.” while ex libris can perhaps talk about openness with a little more credibility than their competitors, their bottom line is still what really matters. author chris martinposted on september , september , categories open access, scholarly communication managing ils updates we’ve done a few screencasts in the past here at techconnect and i wanted to make a new one to cover a topic that’s come up this summer: managing ils updates. integrated library systems are huge, unwieldy pieces of software and it can be difficult to track what changes with each update: new settings are introduced, behaviors change, bugs are (hopefully) fixed. the video belows shows my approach to managing this process and keeping track of ongoing issues with our koha ils. author eric phetteplaceposted on august , august , categories library blockchain: merits, issues, and suggestions for compelling use cases blockchain holds a great potential for both innovation and disruption. the adoption of blockchain also poses certain risks, and those risks will need to be addressed and mitigated before blockchain becomes mainstream. a lot of people have heard of blockchain at this point. but many are unfamiliar with how this new technology exactly works and unsure about under which circumstances or on what conditions it may be useful to libraries. in this post, i will provide a brief overview of the merits and the issues of blockchain. i will also make some suggestions for compelling use cases of blockchain at the end of this post. what blockchain accomplishes blockchain is the technology that underpins a well-known decentralized cryptocurrency, bitcoin. to simply put, blockchain is a kind of distributed digital ledger on a peer-to-peer (p p) network, in which records are confirmed and encrypted. blockchain records and keeps data in the original state in a secure and tamper-proof manner[ ] by its technical implementation alone, thereby obviating the need for a third-party authority to guarantee the authenticity of the data. records in blockchain are stored in multiple ledgers in a distributed network instead of one central location. this prevents a single point of failure and secures records by protecting them from potential damage or loss. blocks in each blockchain ledger are chained to one another by the mechanism called ‘proof of work.’ (for those familiar with a version control system such as git, a blockchain ledger can be thought of as something similar to a p p hosted git repository that allows sequential commits only.[ ]) this makes records in a block immutable and irreversible, that is, tamper-proof. in areas where the authenticity and security of records is of paramount importance, such as electronic health records, digital identity authentication/authorization, digital rights management, historic records that may be contested or challenged due to the vested interests of certain groups, and digital provenance to name a few, blockchain can lead to efficiency, convenience, and cost savings. for example, with blockchain implemented in banking, one will be able to transfer funds across different countries without going through banks.[ ] this can drastically lower the fees involved, and the transaction will take effect much more quickly, if not immediately. similarly, adopted in real estate transactions, blockchain can make the process of buying and selling a property more straightforward and efficient, saving time and money.[ ] disruptive potential of blockchain the disruptive potential of blockchain lies in its aforementioned ability to render the role of a third-party authority obsolete, which records and validates transactions and guarantees their authenticity, should a dispute arise. in this respect, blockchain can serve as an alternative trust protocol that decentralizes traditional authorities. since blockchain achieves this by public key cryptography, however, if one loses one’s own personal key to the blockchain ledger holding one’s financial or real estate asset, for example, then that will result in the permanent loss of such asset. with the third-party authority gone, there will be no institution to step in and remedy the situation. issues this is only some of the issues with blockchain. other issues include (a) interoperability between different blockchain systems, (b) scalability of blockchain at a global scale with large amount of data, (c) potential security issues such as the % attack [ ], and (d) huge energy consumption [ ] that a blockchain requires to add a block to a ledger. note that the last issue of energy consumption has both environmental and economic ramifications because it can cancel out the cost savings gained from eliminating a third-party authority and related processes and fees. challenges for wider adoption there are growing interests in blockchain among information professionals, but there are also some obstacles to those interests gaining momentum and moving further towards wider trial and adoption. one obstacle is the lack of general understanding about blockchain in a larger audience of information professionals. due to its original association with bitcoin, many mistake blockchain for cryptocurrency. another obstacle is technical. the use of blockchain requires setting up and running a node in a blockchain network, such as ethereum[ ], which may be daunting to those who are not tech-savvy. this makes a barrier to entry high to those who are not familiar with command line scripting and yet still want to try out and test how a blockchain functions. the last and most important obstacle is the lack of compelling use cases for libraries, archives, and museums. to many, blockchain is an interesting new technology. but even many blockchain enthusiasts are skeptical of its practical benefits at this point when all associated costs are considered. of course, this is not an insurmountable obstacle. the more people get familiar with blockchain, the more ways people will discover to use blockchain in the information profession that are uniquely beneficial for specific purposes. suggestions for compelling use cases of blockchain in order to determine what may make a compelling use case of blockchain, the information profession would benefit from considering the following. (a) what kind of data/records (or the series thereof) must be stored and preserved exactly the way they were created. (b) what kind of information is at great risk to be altered and compromised by changing circumstances. (c) what type of interactions may need to take place between such data/records and their users.[ ] (d) how much would be a reasonable cost for implementation. these will help connecting the potential benefits of blockchain with real-world use cases and take the information profession one step closer to its wider testing and adoption. to those further interested in blockchain and libraries, i recommend the recordings from the library . online mini-conference, “blockchain applied: impact on the information profession,” held back in june. the blockchain national forum, which is funded by imls and is to take place in san jose, ca on august th, will also be livestreamed. notes [ ] for an excellent introduction to blockchain, see “the great chain of being sure about things,” the economist, october , , https://www.economist.com/news/briefing/ -technology-behind-bitcoin-lets-people-who-do-not-know-or-trust-each-other-build-dependable. [ ] justin ramos, “blockchain: under the hood,” thoughtworks (blog), august , , https://www.thoughtworks.com/insights/blog/blockchain-under-hood. [ ] the world food programme, the food-assistance branch of the united nations, is using blockchain to increase their humanitarian aid to refugees. blockchain may possibly be used for not only financial transactions but also the identity verification for refugees. russ juskalian, “inside the jordan refugee camp that runs on blockchain,” mit technology review, april , , https://www.technologyreview.com/s/ /inside-the-jordan-refugee-camp-that-runs-on-blockchain/. [ ] joanne cleaver, “could blockchain technology transform homebuying in cook county — and beyond?,” chicago tribune, july , , http://www.chicagotribune.com/classified/realestate/ct-re- -blockchain-homebuying- -story.html. [ ] “ % attack,” investopedia, september , , https://www.investopedia.com/terms/ / -attack.asp. [ ] sherman lee, “bitcoin’s energy consumption can power an entire country — but eos is trying to fix that,” forbes, april , , https://www.forbes.com/sites/shermanlee/ / / /bitcoins-energy-consumption-can-power-an-entire-country-but-eos-is-trying-to-fix-that/# ff aa bc . [ ] osita chibuike, “how to setup an ethereum node,” the practical dev, may , , https://dev.to/legobox/how-to-setup-an-ethereum-node- a . [ ] the interaction can also be a self-executing program when certain conditions are met in a blockchain ledger. this is called a “smart contract.” see mike orcutt, “states that are passing laws to govern ‘smart contracts’ have no idea what they’re doing,” mit technology review, march , , https://www.technologyreview.com/s/ /states-that-are-passing-laws-to-govern-smart-contracts-have-no-idea-what-theyre-doing/. author bohyun kimposted on july , july , categories coding, data, technologytags bitcoin, blockchain, distributed ledger technology comment on blockchain: merits, issues, and suggestions for compelling use cases introducing our new best friend, gdpr you’ve seen the letters gdpr in every single email you’ve gotten from a vendor or a mailing list lately, but you might not be exactly sure what it is. with gdpr enforcement starting on may , it’s time for a crash course in what gdpr is, and why it could be your new best friend whether you are in the eu or not. first, you can check out the eu gdpr information site (though it probably will be under heavy load for a few days!) for lots of information on this. it’s important to recognize, however, that for universities like mine with a campus located in the eu, it has created additional oversight to ensure that our own data collection practices are gdpr compliant, or that we restrict people residing in the eu from accessing those services. you should definitely work with legal counsel on your own campus in making any decisions about gdpr compliance. so what does the gdpr actually mean in practice? the requirements break down this way: any company which holds the data of any eu citizen must provide data controls, no matter where the company or the data is located. this means that every large web platform and pretty much every library vendor must comply or face heavy fines. the gdpr offers the following protections for personally identifiable information, which includes things like ip address: privacy terms and conditions must be written in easy to understand language, data breaches require quick notifications, the right to know what data is being collected and to receive a copy of it, the “right to be forgotten” or data erasure (unless it’s in the public interest for the data to be retained), ability to transfer data between providers, systems to be private by design and only collect necessary data, and for companies to appoint data privacy officers without conflicts of interest. how this all works in practice is not consistent, and there will be a lot to be worked out in the courts in the coming years. note that google recently lost several right to be forgotten cases, and were required to remove information that they had originally stated was in the public interest to retain. the gdpr has actually been around for a few years, but may , was set as the enforcement date, so many people have been scrambling to meet that deadline. if you’re reading this today, there’s probably not a lot of time to do anything about your own practices, but if you haven’t yet reviewed what your vendors are doing, this would be a good time. note too that there are no rights guaranteed for any americans, and several companies, including facebook, have moved data governance out of their irish office to california to be out of reach of suits brought in irish courts. where possible, however, we should be using all the features at our disposal. as librarians, we already tend to the “privacy by design” philosophy, even though we aren’t always perfect at it. as i wrote in my last post, my library worked on auditing our practices and creating a new privacy policy, and one of the last issues was trying to figure out how we would approach some of our third-party services which we need to provide services to our patrons but that did not allow deleting data. now some of those features are being made available. for example, google analytics now has a data retention feature, which allows you to set data to expire and be deleted after a certain amount of time. google provides some more detailed instructions to ensure that you are not accidentally collecting personally-identifiable information in your analytics data. lots of our library vendors provide personal account features, and those too are subject to these new gdpr features. this means that there are new levels of transparency about what kinds of tracking they are doing, and greater ability for patrons to control data, and for you to control data on the behalf of patrons. here are a few example vendor gdpr compliance statements or faqs: ebsco ex libris proquest springshare note that some vendors, like ebsco, are moving to https for all sites that weren’t before, and so this may require changes to proxy servers or other links. i am excited about gdpr because no matter where we are located, it gives us new tools to defend the privacy of our patrons. even better than that, it is providing lots of opportunities on our campuses to talk about privacy with all stakeholders. at my institution, the library has been able to showcase our privacy expertise and have some good conversations about data governance and future goals for privacy. it doesn’t mean that all our problems will be solved, but we are moving in a more positive direction. author margaret hellerposted on may , may , categories administration, privacytags gdpr names are hard a while ago i stumbled onto the post “falsehoods programmers believe about names” and was stunned. personal names are one of the most deceptively difficult forms of data to work with and this article touched on so many common but unaddressed problems. assumptions like “people have exactly one canonical name” and “my system will never have to deal with names from china/japan/korea” were apparent everywhere. i consider myself a fairly critical and studious person, i devote time to thinking about the consequences of design decisions and carefully attempt to avoid poor assumptions. but i’ve repeatedly run into trouble when handling personal names as data. there is a cognitive dissonance surrounding names; we treat them as rigid identifiers when they’re anything but. we acknowledge their importance but struggle to take them as seriously. names change. they change due to marriage, divorce, child custody, adoption, gender identity, religious devotion, performance art, witness protection, or none of these at all. sometimes people just want a new name. and none of these reasons for change are more or less valid than others, though our legal system doesn’t always treat them equally. we have students who change their legal name, which is often something systems expect, but then they have the audacity to want to change their username, too! and that works less often because all sorts of system integrations expect usernames to be persistent. names do not have a universal structure. there is no set quantity of components in a name nor an established order to those components. at my college, we have students without surnames. in almost all our systems, surname is a required field, so we put a period “.” there to satisfy that requirement. then, on displays in our digital repository where surnames are assumed, we end up with bolded section headers like “., johnathan” which look awkward. many western names might follow a [given name] – [middle name] – [surname] structure and an unfortunate number of the systems i have to deal with assume all names share this structure. it’s easy to see how this yields problematic results. for instance, if you want to a see a sorted list of users, you probably want to sort by family name, but many systems sort by the name in the last position causing, for instance, chinese names to be handled differently from western ones. but it’s not only that someone might not have a middle name, or might have two middle names, or might have a family name in the first position—no, even that would be too simple! some name components defy simple classifications. i once met a person named “bus stop”. “stop” is clearly not a family affiliation, despite coming in the final position of the name. sometimes the second component of a tripartite western name isn’t a middle name at all, but a maiden name or the second word of a two-word first name (e.g. “mary anne” or “lady bird”)! one cannot even determine by looking at a familiar structure the roles of all of a name’s pieces! names are also contextual. one’s name with family, with legal institutions, and with classmates can all differ. many of our international students have alternative westernized first names. their family may call them qiáng but they introduce themselves as brian in class. we ask for a “preferred name” in a lot of systems, which is a nice step forward, but don’t ask when it’s preferred. names might be meant for different situations. we have no system remotely ready for this, despite the personalization that’s been seeping into web platforms for decades. so if names are such a trouble, why not do our best and move on? aren’t these fringe cases that don’t affect the vast majority of our users? these issues simply cannot be ignored because names are vital. what one is called, even if it’s not a stable identifier, has great effects on one’s life. it’s dispiriting to witness one’s name misspelled, mispronounced, treated as an inconvenience, botched at every turn. a system that won’t adapt to suit a name delegitimizes the name. it says, “oh that’s not your real name” as if names had differing degrees of reality. but a person may have multiple names—or many overlapping names over time—and while one may be more institutionally recognized at a given time, none are less real than the others. if even a single student a year is affected, it’s the absolute least amount of respect we can show to affirm their name(s). so what do we to do? endless enumerations of the difficulties of working with names does little but paralyze us. honestly, when i consider about the best implementation of personal names, the mods metadata schema comes to mind. having a element with any number of children is the best model available. the s can be ordered in particular ways, a “@type” attribute can define a part’s function , a record can include multiple names referencing the same person, multiple names with distinct parts can be linked to the same authority record, etc. mods has a flexible and comprehensive treatment of name data. unfortunately, returning to “falsehoods programmers believe”, none of the library systems i administer do anywhere near as good a job as this metadata schema. nor is it necessarily a problem with western bias—even the chinese government can’t develop computer systems to accurately represent the names of people in the country, or even agree on what the legal character set should be! it seems that programmers start their apps by creating a “users” database table with columns for unique identifier, username, “firstname”/”lastname” [sic], and work from there. on the bright side, the name isn’t used as the identifier at least! we all learned that in databases class but we didn’t learn to make “names” a separate table linked to “users” in our relational databases. in my day-to-day work, the best i’ve done is to be sensitive to the importance of names changes specifically and how our systems handle them. after a few meetings with a cross-departmental team, we developed a name change process at our college. system administrators from across the institution are on a shared listserv where name changes are announced. in the libraries, i spoke with our frontline service staff about assisting with name changes. our people at the circulation desk know to notice name discrepancies—sometimes a name badge has been updated but not our catalog records, we can offer to make them match—but also to guide students who may need to contact the registrar or other departments on campus to initiate the top-down name change process. while most of our the library’s systems don’t easily accommodate username changes, i can write administrative scripts for our institutional repository that alter the ownership of a set of items from an old username to a new one. i think it’s important to remember that we’re inconveniencing the user with the work of implementing their name change and not the other way around. so taking whatever extra steps we can do on our own, without pushing labor onto our students and staff, is the best way we can mitigate how poorly our tools are able to support the protean nature of personal names. notes chinese names typically have the surname first, followed by the given name. ↩ another poor implementation can be seen in the chicago manual of style‘s indexing instructions, which has an extensive list of exceptions to the western norm and how to handle them. but cmos provides no guidance on how one would go about identifying a name’s cultural background or, for instance, identifying a compound surname. ↩ although the mods user guidelines sadly limit the use of the type attribute to a fixed list of values which includes “family” and “given”, rendering it subject to most of the critiques in this post. substantially expanding this list with “maiden”, “patronymic/matronymic” (names based on a parental given name, e.g. mikhailovich), and more, as well as some sort of open-ended “other” option, would be a great improvement. ↩ https://www.nytimes.com/ / / /world/asia/ china.html ↩ author eric phetteplaceposted on may , may , categories change, data, diversity comments on names are hard posts navigation page page … page next page search for: search about acrl techconnect is a moderated blog written by librarians and archivists covering innovative projects, emerging tech tools, coding, usability, design, and more. acrl techconnect serves as your source for technology-related content from the association of college and research libraries, a division of the american library association, and c&rl news magazine. cc-by-nc-nd this work is licensed under a creative commons attribution-noncommercial-noderivs . unported license. based on a work at acrl.ala.org/techconnect. recent posts broken links in the discovery layer—pt. ii: towards an ethnography of broken links broken links in the discovery layer—pt. i: researching a problem orcid for system interoperability in scholarly communication workflows creating presentations with beautiful.ai national forum on web privacy and web analytics acrl technology resources articles, books, and podcasts c&rl news column communities and groups categories academic librarianship accessibility administration algorithms api book review books careers change coding conferences continuing education copyright data design digital libraries digital scholarship digitization discovery diversity hacking ils information architecture library library as makerspace library design library instruction linked-data management marketing metadata mobile open access pedagogy planning presentation privacy publication reference scholarly communication social media technology the setup tools tutorial uncategorized usability use study version control web what-if workflow writing about authors acrl techconnect proudly powered by wordpress iwatch home - iwatch africa menu iwatch africa home education government expenditure health job creation together against corruption watch africa digital rights gender force ocean & climate action search for latest articles transforming climate finance for debt-distressed economies during covid- ec proposed carbon border adjustment mechanism: key considerations for least developed countries iwatch africa marks open data day with focus on women safety online how big tech’s content moderation policies could jeopardize users in authoritarian regimes iwatch africa launches its policy dialogue series where women journalists in ghana go to ‘die’ predictions for : digital rights, global security, climate change & expectations of the biden administration – part stolen at sea: an investigation into illegal chinese transhipment activities in ghana and nigeria on the other side of saiko value your personal and public integrity – co-founder, iwatch africa about team iwatch gallery contact transforming climate finance for debt-distressed economies during covid- one year after the world health organisation declared the covid- disease as a global pandemic, many… ec proposed carbon border adjustment mechanism: key considerations for least developed countries although most nations recognise the need to transition to a decarbonised world, carbon tax policies… iwatch africa marks open data day with focus on women safety online iwatch africa, marked the open data day last saturday with virtual event with focused… ocean & climate action transforming climate finance for debt-distressed economies during covid- one year after the world health organisation declared the covid- disease as a global pandemic, many emerging markets and developing economies… read more » ocean & climate action ec proposed carbon border adjustment mechanism: key considerations for least developed countries although most nations recognise the need to transition to a decarbonised world, carbon tax policies have usually encountered significant roadblocks,… read more » digital rights iwatch africa marks open data day with focus on women safety online iwatch africa, marked the open data day last saturday with virtual event with focused on leveraging data to promote… read more » digital rights how big tech’s content moderation policies could jeopardize users in authoritarian regimes social media advocates have historically lauded its ability to facilitate democratic progress by connecting people over space and time, enabling… read more » news iwatch africa launches its policy dialogue series iwatch africa has launched its policy dialogue series which seeks to bring diverse experts and stakeholders across the world… read more » load more follow us on facebook find us on facebook most read transforming climate finance for debt-distressed economies during covid- seconds ago ec proposed carbon border adjustment mechanism: key considerations for least developed countries weeks ago iwatch africa marks open data day with focus on women safety online march , watch video: iwatch africa open data day event march , open data day : iwatch africa to focus on safety of women journalists & equal development online march , iwatch video playlist / videos inside iwatch africa's digital rights campaign : iwatch digital rights campaign. what is doxxing and the effects of doxxing? : gideon sarpong, policy and news director at iwatch africa interviewed on plus tv africa, nigeria : iwatch africa campaign against domestic violence. : iwatch africa investigation into use of corporal punishment in ghana : iwatch africa campaign against online trolling and impersonation (cyber-stalking) : iwatch africa's video highlighting the negative impact of abuse on journalists : iwatch africa campaign against cyberstalking and its impact on journalists and rights activists : together against corruption iwatch africa, socioserve & jmk : budget tracking: key educational commitments to be tracked in : budget tracking: iwatch africa budget tracking health : iwatch africa: ministry of finance released close to gh¢ million to the electoral commission : iwatch africa assessment of gog commitment in education : iwatch africa third-quarter assessment of gog commitments - health sector, : iwatch africa assessment of planting for food and jobs program : a new age for data journalism | nana boakye-yiadom : government promise to distribute school uniforms and sandals yet to take off : iwatch progress report: one district, one factory initiative ( d f) : iwatch africa: over gh¢ million in off shore accounts at risk of abuse & recovery : iwatch review:how assemblies in ghana mismanaged their common fund-ranking : our partners quick links education government expenditure health job creation quick links education government expenditure health job creation © copyright . iwatch africa. all rights reserved back to top button close search for: popular posts watch africa missing gold: how ghana lost over $ billion in gold export revenue to major trading partners may , iwatch africa joins the world economic forum trillion trees initiative as part of our climate action march , full list: volta region ranked st for mismanagement of assemblies’ common fund august , third quarter assessment of the ‘one village one dam’ promise october , parents with wards in class a schools must be allowed to pay fees- ass. headmaster mfantsipim august , most commented seconds ago transforming climate finance for debt-distressed economies during covid- august , everybody is affected by climate change [infographic] august , reasons journalists should use data to improve their stories august , ghana’s shameful record in child marriages [infographics] august , meet maukeni padiki kodjo, an iwatch africa transparency launch facilitator august , meet sandister tei, an iwatch africa transparency project facilitator recent comments .widget-title .the-subtitle { color: # !important; } dshr's blog dshr's blog i'm david rosenthal, and this is a place to discuss the work i'm doing in digital preservation. thursday, april , dogecoin disrupts bitcoin! two topics i've posted about recently, elon musk's cult and the illusory "prices" of cryptocurrencies, just intersected in spectacular fashion. on april the bitcoin "price" peaked at $ . k. early on april , the musk cult saw this tweet from their prophet. immediately, the dogecoin "price" took off like a falcon . a day later, jemima kelley reported that if you believe, they put a dogecoin on the moon. that was to say that: dogecoin — the crypto token that was started as a joke and that is the favourite of elon musk — is having a bit of a moment. and when we say a bit of a moment, we mean that it is on a lunar trajectory (in crypto talk: it is going to da moon). at the time of writing this, it is up over per cent in the past hours — more than tripling in value (for those of you who need help on percentages, it is friday afternoon after all). over the past week it’s up more than per cent (almost seven times higher!). the headlines tell the story — timothy b. lee's dogecoin has risen percent in the last week because why not and joanna ossinger's dogecoin rips in meme-fueled frenzy on pot-smoking holiday. the dogecoin "price" graph kelly posted was almost vertical. the same day, peter schiff, the notorious gold-bug, tweeted: so far in #bitcoin has lost % of its value verses #dogecoin. the market has spoken. dogecoin is eating bitcoin. all the bitcoin pumpers who claim bitcoin is better than gold because its price has risen more than gold's must now concede that dogecoin is better than bitcoin. below the fold i look back at this revolution in crypto-land. read more » posted by david. at : am comment: labels: bitcoin what is the point? during a discussion of nfts, larry masinter pointed me to his proposal the 'tdb' and 'duri' uri schemes, based on dated uris. the proposal's abstract reads: this document defines two uri schemes. the first, 'duri' (standing for "dated uri"), identifies a resource as of a particular time. this allows explicit reference to the "time of retrieval", similar to the way in which bibliographic references containing uris are often written. the second scheme, 'tdb' ( standing for "thing described by"), provides a way of minting uris for anything that can be described, by the means of identifying a description as of a particular time. these schemes were posited as "thought experiments", and therefore this document is designated as experimental. as far as i can tell, this proposal went nowhere, but it raises a question that is also raised by nfts. what is the point of a link that is unlikely to continue to resolve to the expected content? below the fold i explore this question. read more » posted by david. at : am no comments: labels: personal digital preservation, web archiving thursday, april , nfts and web archiving one of the earliest observations of the behavior of the web at scale was "link rot". there were a lot of s, broken links. research showed that the half-life of web pages was alarmingly short. even in this problem was obvious enough for brewster kahle to found the internet archive to address it. from the wikipedia entry for link rot: a study found that on the web, about one link out of every broke each week,[ ] suggesting a half-life of weeks. this rate was largely confirmed by a – study of links in yahoo! directory (which had stopped updating in after years of development) that found the half-life of the directory's links to be two years.[ ] one might have thought that academic journals were a relatively stable part of the web, but research showed that their references decayed too, just somewhat less rapidly. a study found a half-life of . years. see my post the evanescent web. i expect you have noticed the latest outbreak of blockchain-enabled insanity, non-fungible tokens (nfts). someone "paying $ m for a jpeg" or $ k for a new york times column attracted a lot of attention. follow me below the fold for the connection between nfts, "link rot" and web archiving. read more » posted by david. at : am comments: labels: bitcoin, distributed web, web archiving tuesday, april , cryptocurrency's carbon footprint china’s bitcoin mines could derail carbon neutrality goals, study says and bitcoin mining emissions in china will hit million tonnes by , the headlines say it all. excusing this climate-destroying externality of proof-of-work blockchains requires a continuous flow of new misleading arguments. below the fold i discuss one of the more recent novelties. read more » posted by david. at : am comments: labels: bitcoin, security tuesday, april , elon musk: threat or menace? although both tesla and spacex are major engineering achievements, elon musk seems completely unable to understand the concept of externalities, unaccounted-for costs that society bears as a result of these achievements. first, in tesla: carbon offsetting, but in reverse, jaime powell reacted to tesla taking $ . b in carbon offsets which provided the only profit tesla ever made and putting them into bitcoin: looked at differently, a single bitcoin purchase at a price of ~$ , has a carbon footprint of tons, the equivalent of ice cars. tesla’s average selling price in the fourth quarter of ? $ , . we’re not sure about you, but ft alphaville is struggling to square the circle of “buy a tesla with a bitcoin and create the carbon output of internal combustion engine cars” with its legendary environmental ambitions. unless, of course, that was never the point in the first place. below the fold, more externalities musk is ignoring. read more » posted by david. at : am comments: labels: techno-hype thursday, march , internet archive storage the internet archive is a remarkable institution, which has become increasingly important during the pandemic. it has been for many years in the world's top web sites and is currently ranked # , sustaining almost gb/s outbound bandwidth from its collection of almost half a trillion archived web pages and much other content. it does this on a budget of under $ m/yr, yet maintains . % availability. jonah edwards, who runs the core infrastructure team, gave a presentation on the internet archive's storage infrastructure to the archive's staff. below the fold, some details and commentary. read more » posted by david. at : am comment: labels: storage costs, storage failures, storage media tuesday, march , correlated failures the invaluable statistics published by backblaze show that, despite being built from technologies close to the physical limits (heat-assisted magnetic recording, d nand flash), modern digital storage media are extraordinarily reliable. however, i have long believed that the models that attempt to project the reliability of digital storage systems from the statistics of media reliability are wildly optimistic. they ignore foreseeable causes of data loss such as coronal mass ejections and ransomware attacks, which cause correlated failures among the media in the system. no matter how many they are, if all replicas are destroyed or corrupted the data is irrecoverable. modelling these "black swan" events is clearly extremely difficult, but much less dramatic causes are in practice important too. it has been known at least since talagala's ph.d. thesis that media failures in storage systems are significantly correlated, and at least since jiang et al's are disks the dominant contributor for storage failures? a comprehensive study of storage subsystem failure characteristics that only about half the failures in storage systems are traceable to media failures. the rest happen in the pipeline from the media to the cpu. because this typically aggregates data from many media components, it naturally causes correlations. as i wrote in 's disk reliability, discussing backblaze's experience of a % annual failure rate (afr) in over , seagate tb drives: alas, there is a long history of high failure rates among particular batches of drives. an experience similar to backblaze's at facebook is related here, with an afr over %. my first experience of this was nearly years ago in the early days of sun microsystems. manufacturing defects, software bugs, mishandling by distributors, vibration resonance, there are many causes for these correlated failures. despite plenty of anecdotes, there is little useful data on which to base models of correlated failures in storage systems. below the fold i summarize and comment on an important paper by a team from the chinese university of hong kong and alibaba that helps remedy this. read more » posted by david. at : am no comments: labels: fault tolerance, storage failures, storage media older posts home subscribe to: posts (atom) blog rules posts and comments are copyright of their respective authors who, by posting or commenting, license their work under a creative commons attribution-share alike . united states license. off-topic or unsuitable comments will be deleted. dshr dshr in anwr recent comments full comments blog archive ▼  ( ) ▼  april ( ) dogecoin disrupts bitcoin! what is the point? nfts and web archiving cryptocurrency's carbon footprint elon musk: threat or menace? ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  february ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  november ( ) ►  october ( ) ►  september ( ) ►  july ( ) ►  june ( ) ►  february ( ) ►  ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  march ( ) ►  january ( ) ►  ( ) ►  december ( ) ►  october ( ) ►  september ( ) ►  august ( ) ►  july ( ) ►  june ( ) ►  may ( ) ►  april ( ) lockss system has permission to collect, preserve, and serve this archival unit. simple theme. powered by blogger. abdul ahad azad memorial degree college bemina || government degree college bemina-intake capacity, bemina srinagar, srinagar education,top colleges in srinagar,naac accredited colleges in srinagar. contact number : + click here to download our app home contact us our campus announcements: admissions - classcodes -department of english classwork moved to online mode till futher notification. evs -classcodes nielit, industrial skills, th sem. notifications (period ,dec bto feb ) annual college road race time table feedback organizational structure team work toggle navigation home academics courses offered subjectwise combination faculty admission intake capacity admission rules admission fee services library hostel canteen medi-care physical education about us contact us iqac student’s satisfaction survey teachers feedback survey ssr aqar notifications notice board view all admissions - classcodes -department of english evs -classcodes classwork moved to online mode till futher notification. notifications (period ,dec bto feb ) nielit, industrial skills, th sem. annual college road race feedback time table prof.(dr.) nasreen aman principal college activities campus administrative block college hostel rti seminar college campus classroom punctuality week - st april to th april main entrance carrer talk carrer talk jk scientist education and outreach programme one day awareness programme jk scientist education and outreach programme organizational structure organizational structure team work examination time table ba/bsc campus see more bemina, srinagar, kashmir + fax : - gdcbemina@gmail.com welcome to abdul ahad azad memorial degree college bemina govt. degree college bemina was established in the year to meet the educational requirements of the western part of srinagar city and the adjoining areas of district budgam. the college was subsequently re-named as ab. ahad azad memorial degree college, bemina (shortly as aaam degree college, bemina) after the name of the modernist kashmiri poet abdul ahad azad who lived in chaduara village of budgam district. over the period of past years of its existence the college has reached the pinnacle of success in every field of its activities, be it academic or sports or else other curricular activities. this mile stone would not have been achieved had there been not the hard work put in by the teaching and non-teaching as also the students of the college from time to time. their combined efforts have finally led the college to be accredited as ‘a’ graded college by the naac. our efforts will continue to achieve better in future. i welcome all the students to this college to brighten their future. prof.(dr.) nasreen aman principal study at gdc bemina programmes / courses skills examinations academics ncc fellowships and scholarships research hostel e-learning resources nss counselling cell e-learning services collage library college placement cell games and sports tenders rti grievances important links government of j&k hed government of india ministry of hrd ugc cluster university kashmir national digital library(ndl) downloads study material ba th / th sem study material bsc th/ th sem bcom/bba ( rd year , rd sem , nd sem , st sem) bsc rd sem environmental science b.a st sem / nd / rd sem environmental science ( st nd sem cbcs) b.a rd sem environmental science bsc (botany) bemina, srinagar, kashmir + fax : - gdcbemina@gmail.com menu links home courses offered about us intake capacity faculty admission rules photo gallery admission fee list of nptel courses academic streams courses offered subjectwise combination b.com m.com bba feedback and suggestions e-learning services copyright © all rights reserved designed and developed by netshell what is the bitcoin block size limit? - bitcoin magazine: bitcoin news, articles, charts, and guides events culture business technical markets store earn press releases reviews learn about bitcoin magazine advertise terms of use privacy policy b.tc inc privacy settings articles store conference buy bitcoin learn articles store conference buy bitcoin learn what is the bitcoin block size limit? author: bitcoin magazine publish date: aug , the bitcoin block size limit is a parameter in the bitcoin protocol that limits the size of bitcoin blocks, and, therefore, the number of transactions that can be confirmed on the network approximately every minutes. although bitcoin launched without this parameter, satoshi nakamoto added a megabyte block size limit back when he was still the lead developer of the project. this translated into about three to seven transactions per second, depending on the size of transactions. further reading: who created bitcoin? in , bitcoin’s block size limit was replaced by a block weight limit of million “weight units.” this changed how data in blocks is “counted”: some data weighs more than other data. perhaps more importantly, it also represented an effective block size limit increase: bitcoin blocks now have a theoretical maximum size of megabytes and a more realistic maximum size of megabytes. the exact size depends on the types of transactions included. why is the block size limit controversial? the block size limit is controversial because there is disagreement over whether or not such a limit “should be” part of the bitcoin protocol, and if it should, how big it should be. satoshi nakamoto never publicly specified why he added a block size limit to the bitcoin protocol. it has been speculated that he intended it to be an anti-spam measure, to prevent an attacker from overloading the bitcoin network with artificially large bitcoin blocks full of bogus transactions. some have also been speculated that he intended for it to be a temporary measure, but it is unclear how temporary or under what conditions he foresaw the block size limit being increased or lifted. the code itself that enforces the block size limit certainly wasn’t temporary. further reading: can bitcoin scale? a couple years after satoshi nakamoto left the project, developers and users started to disagree on the temporality and necessity of the block size limit. as bitcoin’s user base grew, some believed it was time to increase or lift the block size limit entirely, specifically before bitcoin blocks would start filling up with transactions. others came to believe that the block size limit represents a vital security parameter of the protocol and believed it should not be lifted — or at least, it should be lifted more conservatively. yet others think that the megabyte put in place by satoshi nakamoto was actually too large and advocated for a block size limit decrease .adding more complications, since bitcoin is decentralized, no particular group or person is in charge of decisions like increasing or decreasing the block size. disagreements on how such decisions should be made, by whom, or if they should be made at all, has probably led to at least as much controversy as the block size limit itself — but this aspect of the debate is outside the scope of this article. further reading: what is bitcoin? why shouldn’t bitcoin blocks be too small? note: almost anything about bitcoin’s block size limit and the risks of it being too big or too small is contested, but these are some of the more general arguments. if bitcoin blocks are too small, not many transactions can be processed by the bitcoin network. broadly speaking, proponents of a block size limit increase (“big blockers”) argue this can have two negative consequences. not enough space? firstly, smaller bitcoin blocks would mean that there isn’t enough space to include everyone’s transactions in these blocks, and the transaction fee “bidding war” to get transactions confirmed would price most people out of using bitcoin at all. instead, it could lead to a future where only bank-like institutions make transactions with one another, while regular users hold accounts with these institutions. this would, in turn, open the door to fractional reserve banking, transaction censorship and more of the problems with traditional finance that many bitcoiners hoped to get away from. deterrent to adoption secondly — and this is probably what many “big blockers” consider to be a more pressing concern — users would simply give up on bitcoin altogether because blocks are too small. perhaps users would switch to a competing cryptocurrency or they would give up on this type of technology altogether. why shouldn’t bitcoin blocks be too big? note: almost anything about bitcoin’s block size limit and the risks of it being too big or too small is contested, but these are some of the more general arguments. opponents of a block size limit increase (“small blockers”) argue there are, roughly speaking, three risks if blocks are too big, each of which have several “sub-risks” as well as nuances. increased cost for bitcoin nodes the first of these risks is that bigger blocks increase the cost of operating a bitcoin node. it increases this cost in four ways: it increases the cost of storing the blockchain, as the blockchain would grow faster. it increases bandwidth costs to download (and upload) all transactions and blocks. it increases cpu costs required to validate all transactions and blocks. the bigger the total blockchain is, the longer it takes to bootstrap a new node on the network: it has to download and validate all past transactions and blocks. if the cost to operate a bitcoin node becomes too high, and users have to (or choose to) use lightweight clients instead, they can no longer verify that the transactions they receive are valid. they could, for example, receive a transaction from an attacker that created coins out of thin air; without knowing the entire history of the bitcoin blockchain, there is no way to tell the difference. in that case, users would only find out that their coins are fake once they try to spend them later on. even if users do validate that the block that includes the transaction was mined sufficiently (which is common), miners could be colluding with the attacker. further reading: what is bitcoin mining? perhaps an even bigger risk could arise if, over time, so few users choose to run bitcoin nodes that the fraudulent coins are noticed too late or not at all. in that case, the bitcoin protocol itself effectively becomes subject to changes imposed by miners. miners could go as far as to increase the coin supply or spend coins they do not own. only a healthy ecosystem with a significant share of users validating their own transactions prevents this. in the bitcoin white paper, satoshi nakamoto acknowledged the above mentioned problems and suggested that light clients could be made secure through a technical solution called “fraud proofs.” unfortunately, however, he did not detail what these fraud proofs would look like exactly, and so far no one has been able to figure it out. (in fact, some of today’s bitcoin developers do not believe fraud proofs are viable.) mining centralization the second risk of bigger blocks is that they could lead to mining centralization. whenever a miner finds a new block, it sends this block to the rest of the network, and, in normal circumstances, bigger blocks take longer to find their way to all other miners. while the block is finding its way, however, the miner that found it can immediately start mining on top of the new block himself, giving him a head start on finding the next block. bigger miners (or pools) find more blocks than smaller miners, thereby gaining more head starts. this means that smaller miners will be less profitable and will eventually be outcompeted, leading to a more centralized mining ecosystem. if mining becomes too centralized, some miners could end up in a position where they can attack the network. that said, this is probably the most complex and nuanced argument against smaller blocks. for one, even big miners have an incentive against creating blocks that are too big: while they can benefit from a head start, too much delay can work to their detriment as a competing block may find its way through the network faster, and other miners will mine on that block instead. there are also technical solutions to speed up block relay, as well as technical solutions to limit the damage from mining centralization itself, but these solutions come with trade-offs of their own. lower block subsidies could lead to less network security the third and final risk of big blocks is that they could disincentivize users from adding fees to their transactions. as long as block space is limited, users must outbid each other to have their transactions included in blocks, and as bitcoin’s block subsidy diminishes, this will have to become a more significant part of the block reward to support bitcoin’s security model. without a block size limit, this incentive is taken away. (while individual miners can still choose to only include fees with a minimum fee, other miners would still have an incentive to include transactions below that threshold — thereby diminishing the fee incentive after all.) attentive readers will have noticed that this last argument in particular works both ways. while “big blockers” see high fees as a problem as it would make bitcoin less attractive, “small blockers” see high fees as a positive as it would benefit bitcoin’s security. will bitcoin core developers ever increase the block size limit? bitcoin core is the predominant — though not only — bitcoin implementation in use on the bitcoin network today. therefore, many “big blockers” have been looking at bitcoin core developers to implement an increase.  bitcoin core developers did indeed increase the block size limit, through the segregated witness (segwit) protocol upgrade. by replacing it for a block weight limit, blocks now have a theoretical limit of megabytes and a more realistic limit of megabytes. cleverly, this was a backwards-compatible soft fork protocol upgrade, which meant that users could opt into the change without splitting the network. however, exactly because this was a soft fork, and not a hard fork as many “big blockers” preferred, they sometimes do not “count” this increase as a block size limit increase at all. further reading: what are bitcoin forks? indeed, bitcoin core developers have not deployed a block size limit increase through a hard fork, which is a backwards-incompatible protocol upgrade. this would either require consensus from all of bitcoin’s users or possibly split the bitcoin network in two: a version of bitcoin with the current block weight limit and a version of bitcoin with the increased block size/weight limit. users of the version of bitcoin with the current block weight limit would probably not even consider the hard-forked version of bitcoin to be “bitcoin” at all; they might refer to it as “bitcoin core coin” or something along these lines. perhaps more importantly, the current group of bitcoin core contributors seem to have no desire to dictate bitcoin’s protocol rules, nor do they want to split the network. therefore, they are unlikely to deploy a hard fork (for the block size limit or otherwise) without broad consensus throughout bitcoin’s user base for such a protocol upgrade. given the controversial nature of the block size/weight parameter, it’s unlikely that such consensus will form anytime soon, but it could happen down the road. alternative solutions there are some alternative solutions to increase bitcoin’s block size limit, like extension blocks, as well as solutions that could achieve something similar, such as “big block” sidechains. it’s not clear that any of these solutions will see the light of day anytime soon either, however; current focus seems more directed toward “layer two” scaling solutions like the lightning network. further reading: what is the lightning network? is bitcoin block size limit discussion censored? the short answer is no. as for a slightly longer answer… during the heat of the block size limit debate, one of the most popular bitcoin discussion platforms on the internet, the bitcoin-focused subreddit r/bitcoin, imposed heavy-handed moderation. this moderation was intended to stop forum users from promoting consensus-breaking software before the greater user base had actually come to a consensus on the best way forward.  at the time, it was not obvious to everyone that using such software could lead to a split (a non-backwards-compatible hard fork) of the network, and it was often advertised as if it couldn’t. arguing in favor of a block size limit increase and/or hard fork without directly promoting consensus-breaking software was always allowed. whether this constituted a form of “censorship” is perhaps in the eye of the beholder, but what’s certain is that anyone who disagreed with this policy was free to start or contribute to competing bitcoin subreddits, and this is exactly what happened. the r/btc subreddit in particular become a popular discussion platform for those who favored a block size limit increase hard fork. furthermore, reddit is only a relatively small part of the internet and an even smaller part of the entire world. while there are some other platforms that have been accused of similar censorship (such as the bitcointalk forum and the bitcoin-development mailing list), it is hard to deny that the debate took place loud and clear across social media, news sites, conferences, chat groups and far beyond. anyone interested in hearing about the different arguments had every chance to inform themselves and even those who didn’t care had a hard time escaping the fallout from the debate. in the end, those who favored a block size limit increase hard fork were unable to convince enough people of their case, and it seems as if some of them have channeled their frustration about this disappointment into anger toward a particular subreddit and its moderators. (or maybe, by writing this, bitcoin magazine is just part of a great cover-up conspiracy. spooky!) what is bitcoin cash? what is bitcoin sv? when it became clear that bitcoin would increase its block size limit (among other things) through the segwit soft fork protocol upgrade, some “big blockers” decided to move forward with a block size limit increase hard fork, even knowing that they would be in a minority and split off into their own network to become a new cryptocurrency. this new network and the resulting cryptocurrency is called bitcoin cash. since bitcoin cash split off from bitcoin, it has itself implemented several more hard fork upgrades, some of which, in turn, led to even more splits in the network and new cryptocurrencies. the most notable of these is bitcoin sv, loosely centered around craig wright, one of the men who (almost certainly fraudulently) claims to have been behind the pseudonym satoshi nakamoto. it has an even bigger block size limit than bitcoin cash does. by bitcoin magazine guides what is bitcoin? by bitcoin magazine mar , guides what is bitcoin mining? by bitcoin magazine aug , guides what is quantum computing? by bitcoin magazine nov , guides what is the lightning network? by bitcoin magazine oct , guides what is segwit? by bitcoin magazine aug , technical greenaddress: increasing bitcoin's block-size limit is not scaling; it's pivoting by aaron van wirdum dec , guides what is 'the halvening'? by bitcoin magazine jul , technical roger ver is still determined to increase the bitcoin block size limit via a hard fork by kyle torpey sep , guides what is kyc? by bitcoin magazine sep , guides what are bitcoin mixers? by bitcoin magazine aug , technical is it time to take an initiative to decrease bitcoin’s block size seriously? by aaron van wirdum feb , technical settling the block size debate by eric lombrozo jul , guides what are bitcoin mining pools? by bitcoin magazine jun , guides what are bitcoin forks? by bitcoin magazine aug , guides what is a bitcoin improvement proposal (bip)? by bitcoin magazine aug , loading… see more about bitcoin magazine advertise terms of use privacy policy b.tc inc © the thingology blog the thingology blog new syndetics unbound feature: mark and boost electronic resources proquest and librarything have just introduced a major new feature to our catalog-enrichment suite, syndetics unbound, to meet the needs of libraries during the covid- crisis. our friends at proquest blogged about it briefly on the proquest blog. this blog post goes into greater detail about what we did, how we did it, and what [&# ;] introducing syndetics unbound short version today we&# ;re going public with a new product for libraries, jointly developed by librarything and proquest. it&# ;s called syndetics unbound, and it makes library catalogs better, with catalog enrichments that provide information about each item, and jumping-off points for exploring the catalog. to see it in action, check out the hartford public library [&# ;] alamw in boston (and free passes)! abby and kj will be at ala midwinter in boston this weekend, showing off librarything for libraries. since the conference is so close to librarything headquarters, chances are good that a few other lt staff members may appear, as well! visit us. stop by booth # to meet abby &# ; kj (and potential mystery guests!), [&# ;] for ala : three free opac enhancements for a limited time, librarything for libraries (ltfl) is offering three of its signature enhancements for free! there are no strings attached. we want people to see how librarything for libraries can improve your catalog. check library. the check library button is a &# ;bookmarklet&# ; that allows patrons to check if your library has a book [&# ;] ala in san francisco (free passes) our booth. but this is kate, not tim or abby. she had the baby. tim and i are headed to san francisco this weekend for the ala annual conference. visit us. stop by booth # to talk to us, get a demo, and learn about all the new and fun things we&# ;re up to with [&# ;] new &# ;more like this&# ; for librarything for libraries we&# ;ve just released &# ;more like this,&# ; a major upgrade to librarything for libraries’ &# ;similar items&# ; recommendations. the upgrade is free and automatic for all current subscribers to librarything for libraries catalog enhancement package. it adds several new categories of recommendations, as well as new features. we&# ;ve got text about it below, but here&# ;s a short [&# ;] subjects and the ship of theseus i thought i might take a break to post an amusing photo of something i wrote out today: the photo is a first draft of a database schema for a revamp of how librarything will do library subjects. all told, it has tables. gulp. about eight of the tables do what a good cataloging [&# ;] librarything recommends in bibliocommons does your library use bibliocommons as its catalog? librarything and bibliocommons now work together to give you high-quality reading recommendations in your bibliocommons catalog. you can see some examples here. look for &# ;librarything recommends&# ; on the right side. not that kind of girl (daniel boone regional library) carthage must be destroyed (ottowa public library) the [&# ;] new: annotations for book display widgets our book display widgets is getting adopted by more and more libraries, and we&# ;re busy making it better and better. last week we introduced easy share. this week we&# ;re rolling out another improvement—annotations! book display widgets is the ultimate tool for libraries to create automatic or hand-picked virtual book displays for their home page, blog, [&# ;] send us a programmer, win $ , in books. we just posted a new job post job: library developer at librarything (telecommute). to sweeten the deal, we are offering $ , worth of books to the person who finds them. that&# ;s a lot of books. rules! you get a $ , gift certificate to the local, chain or online bookseller of your choice. to qualify, you [&# ;] twarc/tags.py at main · docnow/twarc · github skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} docnow / twarc notifications star k fork code issues pull requests actions projects wiki security insights more code issues pull requests actions projects wiki security insights permalink main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags twarc/utils/tags.py / jump to code definitions no definitions found in this file. code navigation not available for this commit go to file go to file t go to line l go to definition r copy path copy permalink     cannot retrieve contributors at this time executable file lines ( sloc) bytes raw blame open with desktop view raw view blame #!/usr/bin/env python from __future__ import print_function import json import fileinput import collections counts = collections.counter() for line in fileinput.input(): tweet = json.loads(line) for tag in tweet['entities']['hashtags']: t = tag['text'].lower() counts[t] += for tag, count in counts.most_common(): print("% i %s" % (count, tag)) copy lines copy permalink view git blame reference in new issue go © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. data unbound : helping organizations access and share data effectively. special focus on web apis for data integration. data unbound helping organizations access and share data effectively. special focus on web apis for data integration. skip to content about some of what i missed from the cmd-d automation conference the cmd-d|masters of automation one-day conference in early august would have been right up my alley: it’ll be a full day of exploring the current state of automation technology on both apple platforms, sharing ideas and concepts, and showing what’s possible—all with the goal of inspiring and furthering development of your own automation projects. fortunately, those of us who missed it can still get a meaty summary of the meeting by listening to the podcast segment upgrade # : masters of automation – relay fm. i've been keen on automation for a long time now and was delighted to hear the panelists express their own enthusiasm for customizing their macs, iphones, or ipads to make repetitive tasks much easier and less time-consuming. noteworthy take-aways from the podcast include: something that i hear and believe but have yet to experience in person: non-programmers can make use of automation through applications such as automator — for macos — and workflow for ios. also mentioned often as tools that are accessible to non-geeks: hazel and alfred – productivity app for mac os x. automation can make the lives of computer users easier but it's not immediately obvious to many people exactly how. to make a lot of headway in automating your workflow, you need a problem that you are motivated to solve. many people use applescript by borrowing from others, just like how many learn html and css from copying, pasting, and adapting source on the web. once you get a taste for automation, you will seek out applications that are scriptable and avoid those that are not. my question is how to make it easier for developers to make their applications scriptable without incurring onerous development or maintenance costs? e-book production is an interesting use case for automation. people have built businesses around scripting photoshop [is there really a large enough market?] omnigroup's automation model is well worth studying and using. i hope there will be a conference next year to continue fostering this community of automation enthusists and professionals. raymond yee automation macos comments ( ) permalink fine-tuning a python wrapper for the hypothes.is web api and other #ianno followup in anticipation of #ianno hack day, i wrote about my plans for the event, one of which was to revisit my own python wrapper for the nascent hypothes.is web api. instead of spending much time on my own wrapper, i spent most of the day working with jon udell's wrapper for the api. i've been working on my own revisions of the library but haven't yet incorporated jon's latest changes. one nice little piece of the puzzle is that i learned how to introduce retries and exponential backoff into the library, thanks to a hint from nick stenning and a nice answer on stackoverflow . other matters in addition to the python wrapper, there are other pieces of follow-up for me. i hope to write more extensively on those matters down the road but simply note those topics for the moment. videos from the conference i might start by watching videos from #ianno conference: i annotate – youtube. because i didn't attend the conference per se, i might glean insight into two particular topics of interest to me (the role of page owner in annotations and the intermingling of annotations in ebooks.) an extension for embedding selectors in the url i will study and try treora/precise-links: browser extension to support web annotation selectors in uris. i've noticed that the same annotation is shown in two related forms: https://hyp.is/zj dyi teeetmxvupjlhsw/blog.dataunbound.com/ / / /revisiting-hypothes-is-at-i-annotate- / https://blog.dataunbound.com/ / / /revisiting-hypothes-is-at-i-annotate- /#annotations:zj dyi teeetmxvupjlhsw does the precise-links extension let me write the selectors into the url? raymond yee annotation comments ( ) permalink revisiting hypothes.is at i annotate i'm looking forward to hacking on web and epub annotation at the #ianno hack day. i won't be at the i annotate conference per se but will be curious to see what comes out of the annual conference. i continue to have high hopes for digital annotations, both on the web and in non-web digital contexts. i have used hypothesis on and off since oct . my experiences so far: i like the ability to highlight and comment on very granular sections of articles for comment, something the hypothes.is annotation tool makes easy to do. i appreciate being able to share annotation/highlight with others (on twitter or facebook), though i'm pretty sure most people who bother to click on the links might wonder "what's this" when they click on the link. a small user request: hypothes.is should allow a user to better customize the facebook preview image for the annotation. i've enjoyed using hypothes.is for code review on top of github. (exactly how hypothes.is complements the extensive code-commenting functionality in github might be worth a future blog post.) my plans for hack day python wrapper for hypothes.is this week, i plan to revisit rdhyee/hypothesisapi: a python wrapper for the nascent hypothes.is web api to update or abandon it in favor of new developments. (for example, i should look at kshaffer/pypothesis: python scripts for interacting with the hypothes.is api.) epubs + annotations i want to figure out the state of art for epubs and annotations. i'm happy to see the announcement of a partnership to bring open annotation to ebooks from march . i'd definitely like to figure out how to annotate epubs (e.g., oral literature in africa (at unglue.it) or moby dick). the best approach is probably for me to wait until summer at which time we'll see the fruits of the partnership: together, our goal is to complete a working integration of hypothesis with both epub frameworks by summer . nyu plans to deploy the readiumjs implementation in the nyu press enhanced networked monographs site as a first use case. based on lessons learned in the nyu deployment, we expect to see wider integration of annotation capabilities in ebooks as epub uptake continues to grow. in the meantime, i can catch up on the current state of futurepress/epub.js: enhanced ebooks in the browser., grok epub cfi updates, and relearn how to parse epubs using python (e.g., rdhyee/epub_avant_garde: an experiment to apply ideas from https://github.com/sandersk/ebook_avant_garde to arbitrary epubs). role of page owners i plan to check in on what's going on with efforts at hypothes.is to involve owners in page annotations: in the past months we launched a small research initiative to gather different points of view about website publishers and authors consent to annotation. our goal was to identify different paths forward taking into account the perspectives of publishers, engineers, developers and people working on abuse and harassment issues. we have published a first summary of our discussion on our blog post about involving page owners in annotation. i was reminded of these efforts after reading that audrey watters had blocked annotation services like hypothes.is and genius from her domains: un-annotated episode : marginalia in the spirit of communal conversation, i threw in my two cents: have there been any serious exploration of easy opt-out mechanisms for domain owners? something like robots.txt for annotation tools? raymond yee annotation comments ( ) permalink my thoughts about fargo.io using fargo.io raymond yee uncategorized comments ( ) permalink organizing your life with python: a submission for pycon ? i have penciled into my calendar a trip  to montreal to attend pycon .   in my moments of suboptimal planning, i wrote an overly ambitious abstract for a talk or poster session i was planning to submit.  as i sat down this morning to meet the deadline for submitting a proposal for a poster session (nov ), i once again encountered the ominous (but for me, definitive) admonition: avoid presenting a proposal for code that is far from completion. the program committee is very skeptical of "conference-driven development". it's true: my efforts to organize my life with python are in the early stages. i hope that i'll be able to write something like the following for pycon . organizing your life with python david allen's getting things done (gtd) system is a popular system for personal productivity. although gtd can be implemented without any computer technology, i have pursued two different digital implementations, including my current implementation using evernote, the popular note-taking program. this talk explores using python in conjunction with the evernote api to implement gtd on top of evernote. i have found that a major practical hinderance for using gtd is that it way too easy to commit to too many projects. i will discuss how to combine evernote, python, gtd with concepts from personal kanban to solve this problem. addendum: whoops…i find it embarrassing that i already quoted my abstract in a previous blog post in september that i had forgotten about. oh well. where's my fully functioning organization system when i need it! tagged pycon, python raymond yee evernote gtd comments ( ) permalink current status of data unbound llc in pennsylvania i'm currently in the process of closing down data unbound llc in pennsylvania.  i submitted the paperwork to dissolve the legal entity in april and have been amazed to learn that it may take up to a year to get the final approval done.  in the meantime, as i establishing a similar california legal entity, i will certainly continue to write on this blog about apis, mashups, and open data. raymond yee data unbound llc comments ( ) permalink must get cracking on organizing your life with python talk and tutorial proposals for pycon are due tomorrow ( / ) .  i was considering submitting a proposal until i took the heart the appropriate admonition against "conference-driven" development of the program committee.   i will nonetheless use the oct and nov deadlines for lightning talks and proposals respectively to judge whether to submit a refinement of the following proposal idea: organizing your life with python david allen's getting things done (gtd) system is a popular system for personal productivity.  although gtd can be implemented without any computer technology, i have pursued two different digital implementations, including my current implementation using evernote, the popular note-taking program.  this talk explores using python in conjunction with the evernote api to implement gtd on top of evernote. i have found that a major practical hinderance for using gtd is that it way too easy to commit to too many projects.  i will discuss how to combine evernote, python, gtd with concepts from personal kanban to solve this problem.   raymond yee getting things done python comments ( ) permalink embedding github gists in wordpress as i gear up i to write more about programming, i have installed the embed github gist plugin. so by writing [gist id= ] in the text of this post, i can embed https://gist.github.com/rdhyee/ into the post to get: from itertools import islice def triangular(): n = i = while true: yield n i += n += i # for i, n in enumerate(islice(triangular(), )): print i+ , n tagged gist, github raymond yee wordpress comments ( ) permalink working with open data i'm very excited to be teaching a new course working with open data at the uc berkeley school of information in the spring semester: open data — data that is free for use, reuse, and redistribution — is an intellectual treasure-trove that has given rise to many unexpected and often fruitful applications. in this course, students will ) learn how to access, visualize, clean, interpret, and share data, especially open data, using python, python-based libraries, and supplementary computational frameworks and ) understand the theoretical underpinnings of open data and their connections to implementations in the physical and life sciences, government, social sciences, and journalism.   raymond yee uncategorized comments ( ) permalink a mundane task: updating a config file to retain old settings i want to have a hand in creating an excellent personal information manager (pim) that can be a worthy successor to ecco pro. so far, running eccoext (a clever and expansive hack of ecco pro) has been a eminently practical solution.   you can download the most recent version of this actively developed extension from the files section of the ecco_pro yahoo! group.   i would do so regularly but one of the painful problems with unpacking (using unrar) the new files is that there wasn't an updater that would retain the configuration options of the existing setup.  so a mundane but happy-making programming task of this afternoon was to write a python script to do exact that function, making use of the builtin configparser library. """ compare eccoext.ini files my goal is to edit the new file so that any overlapping values take on the current value """ current_file_path = "/private/tmp/ /c/program files/ecco/eccoext.ini" new_file_path = "/private/tmp/ /c/utils/eccoext.ini" updated_file = "/private/tmp/ /c/utils/updated_eccoext.ini" # extract the key value pairs in both files to compare the two # http://docs.python.org/library/configparser.html import configparser def extract_values(fname): # generate a parsed configuration object, set of (section, options) config = configparser.safeconfigparser() options_set = set() config.read(fname) sections = config.sections() for section in sections: options = config.options(section) for option in options: #value = config.get(section,option) options_set.add((section,option)) return (config, options_set) # process current file and new file (current_config, current_options) = extract_values(current_file_path) (new_config, new_options) = extract_values(new_file_path) # what are the overlapping options overlapping_options = current_options & new_options # figure out which of the overlapping options are the values different for (section,option) in overlapping_options: current_value = current_config.get(section,option) new_value = new_config.get(section,option) if current_value != new_value: print section, option, current_value, new_value new_config.set(section,option,current_value) # write the updated config file with open(updated_file, 'wb') as configfile: new_config.write(configfile) raymond yee ecco pro python comments ( ) permalink « older posts pages about categories amazon annotation announcments apis architecture art history automation bibliographics bioinformatics bplan chickenfoot citizendium collaboration consulting copyright creative commons data mining data unbound llc digital scholarship ecco pro education evernote firefox flickr freebase getting things done google government gtd hardware hci higher education humanities imaging ischool journalism libraries macos mashups meta mith api workshop mixing and remixing information notelets oclc open access open data openid personal information management personal news politics processing programming tip prototype publishing python recovery.gov tracking repositories rest screen scraping screencast services soap training tutorial uc berkeley uncategorized web hosting web services web weblogging wikipedia wordpress writing zotero tags api art history books chickenfoot codepad coins creative commons data hosting data portability educause exif firefox flickr freebase jcdl jcdl kses library of congress mashups mashup symfony django metadata news nytimes amazonec amazons omb openid openlibrary openoffice.org photos politics project bamboo python pywin recovery.gov tracking screencast stimulus sychronization video webcast wikipedia windows xp wmi wordpress workshops xml in libraries zotero blogroll information services and technology, uc berkeley uc berkeley rss feeds all posts all comments meta log in blog search © | thanks, wordpress | barthelme theme by scott allan wallick | standards compliant xhtml & css | rss posts & comments unix philosophy - wikipedia unix philosophy from wikipedia, the free encyclopedia jump to navigation jump to search philosophy on developing software ken thompson and dennis ritchie, key proponents of the unix philosophy the unix philosophy, originated by ken thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. it is based on the experience of leading developers of the unix operating system. early unix developers were important in bringing the concepts of modularity and reusability into software engineering practice, spawning a "software tools" movement. over time, the leading developers of unix (and programs that ran on it) established a set of cultural norms for developing software; these norms became as important and influential as the technology of unix itself; this has been termed the "unix philosophy." the unix philosophy emphasizes building simple, short, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators. the unix philosophy favors composability as opposed to monolithic design. contents origin the unix programming environment program design in the unix environment doug mcilroy on unix programming do one thing and do it well eric raymond's unix rules mike gancarz: the unix philosophy "worse is better" criticism see also notes references external links origin[edit] the unix philosophy is documented by doug mcilroy[ ] in the bell system technical journal from :[ ] make each program do one thing well. to do a new job, build afresh rather than complicate old programs by adding new "features". expect the output of every program to become the input to another, as yet unknown, program. don't clutter output with extraneous information. avoid stringently columnar or binary input formats. don't insist on interactive input. design and build software, even operating systems, to be tried early, ideally within weeks. don't hesitate to throw away the clumsy parts and rebuild them. use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them. it was later summarized by peter h. salus in a quarter-century of unix ( ):[ ] write programs that do one thing and do it well. write programs to work together. write programs to handle text streams, because that is a universal interface. in their award-winning unix paper of [citation needed], ritchie and thompson quote the following design considerations:[ ] make it easy to write, test, and run programs. interactive use instead of batch processing. economy and elegance of design due to size constraints ("salvation through suffering"). self-supporting system: all unix software is maintained under unix. the whole philosophy of unix seems to stay out of assembler. — michael sean mahoney[ ] the unix programming environment[edit] in their preface to the book, the unix programming environment, brian kernighan and rob pike, both from bell labs, give a brief description of the unix design and the unix philosophy:[ ] rob pike, co-author of the unix programming environment even though the unix system introduces a number of innovative programs and techniques, no single program or idea makes it work well. instead, what makes it effective is the approach to programming, a philosophy of using the computer. although that philosophy can't be written down in a single sentence, at its heart is the idea that the power of a system comes more from the relationships among programs than from the programs themselves. many unix programs do quite trivial things in isolation, but, combined with other programs, become general and useful tools. the authors further write that their goal for this book is "to communicate the unix programming philosophy."[ ] program design in the unix environment[edit] brian kernighan has written at length about the unix philosophy in october , brian kernighan and rob pike published a paper called program design in the unix environment. in this paper, they criticize the accretion of program options and features found in some newer unix systems such as . bsd and system v, and explain the unix philosophy of software tools, each performing one general function:[ ] much of the power of the unix operating system comes from a style of program design that makes programs easy to use and, more important, easy to combine with other programs. this style has been called the use of software tools, and depends more on how the programs fit into the programming environment and how they can be used with other programs than on how they are designed internally. [...] this style was based on the use of tools: using programs separately or in combination to get a job done, rather than doing it by hand, by monolithic self-sufficient subsystems, or by special-purpose, one-time programs. the authors contrast unix tools such as cat, with larger program suites used by other systems.[ ] the design of cat is typical of most unix programs: it implements one simple but general function that can be used in many different applications (including many not envisioned by the original author). other commands are used for other functions. for example, there are separate commands for file system tasks like renaming files, deleting them, or telling how big they are. other systems instead lump these into a single "file system" command with an internal structure and command language of its own. (the pip file copy program found on operating systems like cp/m or rsx- is an example.) that approach is not necessarily worse or better, but it is certainly against the unix philosophy. doug mcilroy on unix programming[edit] doug mcilroy (left) with dennis ritchie mcilroy, then head of the bell labs computing sciences research center, and inventor of the unix pipe,[ ] summarized the unix philosophy as follows:[ ] this is the unix philosophy: write programs that do one thing and do it well. write programs to work together. write programs to handle text streams, because that is a universal interface. beyond these statements, he has also emphasized simplicity and minimalism in unix programming:[ ] the notion of "intricate and beautiful complexities" is almost an oxymoron. unix programmers vie with each other for "simple and beautiful" honors — a point that's implicit in these rules, but is well worth making overt. conversely, mcilroy has criticized modern linux as having software bloat, remarking that, "adoring admirers have fed linux goodies to a disheartening state of obesity."[ ] he contrasts this with the earlier approach taken at bell labs when developing and revising research unix:[ ] everything was small... and my heart sinks for linux when i see the size of it. [...] the manual page, which really used to be a manual page, is now a small volume, with a thousand options... we used to sit around in the unix room saying, 'what can we throw out? why is there this option?' it's often because there is some deficiency in the basic design — you didn't really hit the right design point. instead of adding an option, think about what was forcing you to add that option. do one thing and do it well[edit] as stated by mcilroy, and generally accepted throughout the unix community, unix programs have always been expected to follow the concept of dotadiw, or "do one thing and do it well." there are limited sources for the acronym dotadiw on the internet, but it is discussed at length during the development and packaging of new operating systems, especially in the linux community. patrick volkerding, the project lead of slackware linux, invoked this design principle in a criticism of the systemd architecture, stating that, "attempting to control services, sockets, devices, mounts, etc., all within one daemon flies in the face of the unix concept of doing one thing and doing it well."[ ] eric raymond's unix rules[edit] in his book the art of unix programming that was first published in ,[ ] eric s. raymond, an american programmer and open source advocate, summarizes the unix philosophy as kiss principle of "keep it simple, stupid."[ ] he provides a series of design rules:[ ] build modular programs write readable programs use composition separate mechanisms from policy write simple programs write small programs write transparent programs write robust programs make data complicated when required, not the program build on potential users' expected knowledge avoid unnecessary output write programs which fail in a way that is easy to diagnose value developer time over machine time write abstract programs that generate code instead of writing code by hand prototype software before polishing it write flexible and open programs make the program and protocols extensible. mike gancarz: the unix philosophy[edit] in , mike gancarz (a member of the team that designed the x window system), drew on his own experience with unix, as well as discussions with fellow programmers and people in other fields who depended on unix, to produce the unix philosophy which sums it up in nine paramount precepts: small is beautiful. make each program do one thing well. build a prototype as soon as possible. choose portability over efficiency. store data in flat text files. use software leverage to your advantage. use shell scripts to increase leverage and portability. avoid captive user interfaces. make every program a filter. "worse is better"[edit] main article: worse is better richard p. gabriel suggests that a key advantage of unix was that it embodied a design philosophy he termed "worse is better", in which simplicity of both the interface and the implementation are more important than any other attributes of the system—including correctness, consistency, and completeness. gabriel argues that this design style has key evolutionary advantages, though he questions the quality of some results. for example, in the early days unix used a monolithic kernel (which means that user processes carried out kernel system calls all on the user stack). if a signal was delivered to a process while it was blocked on a long-term i/o in the kernel, then what should be done? should the signal be delayed, possibly for a long time (maybe indefinitely) while the i/o completed? the signal handler could not be executed when the process was in kernel mode, with sensitive kernel data on the stack. should the kernel back-out the system call, and store it, for replay and restart later, assuming that the signal handler completes successfully? in these cases ken thompson and dennis ritchie favored simplicity over perfection. the unix system would occasionally return early from a system call with an error stating that it had done nothing—the "interrupted system call", or an error number (eintr) in today's systems. of course the call had been aborted in order to call the signal handler. this could only happen for a handful of long-running system calls such as read(), write(), open(), and select(). on the plus side, this made the i/o system many times simpler to design and understand. the vast majority of user programs were never affected because they did not handle or experience signals other than sigint and would die right away if one was raised. for the few other programs—things like shells or text editors that respond to job control key presses—small wrappers could be added to system calls so as to retry the call right away if this eintr error was raised. thus, the problem was solved in a simple manner. criticism[edit] in a article entitled "the truth about unix: the user interface is horrid"[ ] published in datamation, don norman criticized the design philosophy of unix for its lack of concern for the user interface. writing from his background in cognitive science and from the perspective of the then-current philosophy of cognitive engineering,[ ] he focused on how end-users comprehend and form a personal cognitive model of systems—or, in the case of unix, fail to understand, with the result that disastrous mistakes (such as losing an hour's worth of work) are all too easy. see also[edit] cognitive engineering unix architecture minimalism (computing) software engineering kiss principle hacker ethic list of software development philosophies everything is a file worse is better notes[edit] ^ a b c d e raymond, eric s. ( ). "basics of the unix philosophy". the art of unix programming. addison-wesley professional (published - - ). isbn  - - - . retrieved - - . ^ doug mcilroy, e. n. pinson, b. a. tague ( july ). "unix time-sharing system: foreword". the bell system technical journal. bell laboratories: – .cs maint: multiple names: authors list (link) ^ dennis ritchie; ken thompson ( ), "the unix time-sharing system" (pdf), communications of the acm, ( ): – , doi: . / . , s cid  ^ a b "an oral history of unix". princeton university history of science. ^ a b kernighan, brian w. pike, rob. the unix programming environment. . viii ^ a b rob pike; brian w. kernighan (october ). "program design in the unix environment" (pdf). ^ dennis ritchie ( ), "the evolution of the unix time-sharing system" (pdf), at&t bell laboratories technical journal, ( ): – , doi: . /j. - . .tb .x ^ douglas mcilroy. "remarks for japan prize award ceremony for dennis ritchie, may , , murray hill, nj" (pdf). retrieved - - . ^ bill mcgonigle. "ancestry of linux — how the fun began ( )". retrieved - - . ^ "interview with patrick volkerding of slackware". linuxquestions.org. - - . retrieved - - . ^ raymond, eric ( - - ). the art of unix programming. addison-wesley. isbn  - - - . retrieved - - . ^ raymond, eric ( - - ). "the unix philosophy in one lesson". the art of unix programming. addison-wesley. isbn  - - - . retrieved - - . ^ norman, don ( ). "the truth about unix: the user interface is horrid" (pdf). datamation. ( ). references[edit] the unix programming environment by brian kernighan and rob pike, program design in the unix environment – the paper by pike and kernighan that preceded the book. notes on programming in c, rob pike, september , a quarter century of unix, peter h. salus, addison-wesley, may , ( isbn  - - - ) philosophy — from the art of unix programming, eric s. raymond, addison-wesley, september , ( isbn  - - - ) final report of the multics kernel design project by m. d. schroeder, d. d. clark, j. h. saltzer, and d. h. wells, . the unix philosophy, mike gancarz, isbn  - - - external links[edit] basics of the unix philosophy – by catb.org the unix philosophy: a brief introduction – by the linux information project (linfo) why the unix philosophy still matters retrieved from "https://en.wikipedia.org/w/index.php?title=unix_philosophy&oldid= " categories: software development philosophies unix hidden categories: cs maint: multiple names: authors list articles with short description short description matches wikidata all articles with unsourced statements articles with unsourced statements from march navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages العربية Čeština deutsch español فارسی français 한국어 italiano 日本語 norsk bokmål português Русский 中文 edit links this page was last edited on march , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement coyle's information coyle's information comments on the digital age, which, as we all know, is . digitization wars, redux women designing ceci n'est pas une bibliothèque use the leader, luke! pamflets the work i, too, want answers i'd like to buy a vowel frbr without fr or br it's "academic" libraryland, we have a problem frbr as a data model google books and mein kampf on reading library journal, september, the work pray for peace two frbrs, many relationships if it ain't broke precipitating forward miseducation transparency of judgment all the (good) books all the books mysteries solved! none none none none news: coinbase goes public, bitcoin hashrate goes down, nfts go down, proof-of-space trashes hard disk market – attack of the foot blockchain skip to content attack of the foot blockchain blockchain and cryptocurrency news and analysis by david gerard about the author attack of the foot blockchain: the book book extras business bafflegab, but on the blockchain buterin’s quantum quest dogecoin ethereum smart contracts in practice icos: magic beans and bubble machines imogen heap: “tiny human”. total sales: $ . index libra shrugged: how facebook tried to take over the money my cryptocurrency and blockchain commentary and writing for others press coverage: attack of the foot blockchain press coverage: libra shrugged table of contents the conspiracy theory economics of bitcoin the dao: the steadfast iron will of unstoppable code search for: main menu news: coinbase goes public, bitcoin hashrate goes down, nfts go down, proof-of-space trashes hard disk market th april - by david gerard - comment if you’d like to get yourself copies of the books signed by the author, go to this post and see how much to paypal me! you can support my work by signing up for the patreon — $ or $ a month is like a few drinks down the pub while we rant about cryptos once a month. it really does help. [patreon] the patreon also has a $ /month corporate tier — the number is bigger on this tier, and will look more impressive on your analyst newsletter expense account. [patreon] and tell your friends and colleagues to sign up for this newsletter by email! [scroll down, or click here] the bernard l. madoff memorial coinbase listing on april , coinbase listed on nasdaq as a public company! on the same day the bitcoin price peaked, and bernie madoff — the patron saint of bitcoin — died. being a public company brings much closer attention to just what’s going on here, without the sort of dumb excuses that crypto bros will accept. coinbase’s stock price is unsustainable — the starting price was at times revenue, let alone earnings. for comparison, palantir’s direct listing was at times revenue. [ft alphaville, free with registration] the stock price has behaved accordingly — and went from $ . on launch day, to $ . as i write this. [marketwatch, archive] the other nice thing about a public listing is that the coinbase stock price is a proxy for the price of bitcoin — and you can’t short bitcoin reliably, but you can certainly short stocks reliably. the coinbase listing was thoroughly in the spirit of crypto offerings — insiders dumped a pile of their shares immediately, including the chief financial officer selling % of hers. apologists swooped in to say that they only sold vested shares — which means, the shares they actually had, and not the shares they didn’t have. [twitter; openinsider, archive] a lawyer — specifically, a professor of contracts — looks at the coinbase terms of service, and specifically the requirement to take disputes to arbitration. she’s unconvinced the terms are even enforceable. [contractsprof blog] martin walker and winnie mosioma: “many cryptocurrency exchanges are now making proud claims about their regulated status, but does ‘regulated’ really mean what investors think?” a review of sixteen crypto exchanges.  [lse business review] not so much a revolving door as a recirculating sewer — brian brooks, formerly of coinbase, and then of the office of the comptroller of the currency, becomes the ceo of binance us. [coindesk]   bitcoin is just avon for men in their late s don’t at me — cryptocharles (@cryptocharles__) april ,   hashrate go down, number follows bitcoin is so robustly decentralised that a power outage in a single area — or, by some reports, in a single data centre — in xinjiang took half of bitcoin’s hashpower offline, across multiple “independent” mining pools. decentralised! [nasdaq news] an accident in a coal mine on april didn’t directly stop the flow of electricity — but it did lead to widespread safety inspections in various industries. this included bitcoin mining data centres being shut down. [crypto briefing] the bitcoin hash rate dropped from exahashes per second to eh/s. the rate of new blocks slowed. the bitcoin mempool — the backlog of transactions waiting to be processed — has filled. transaction fees peaked at just over $ average on april. [johoe’s bitcoin mempool statistics, archive of april ; ycharts, archive of april ] this turned a slight dip in the btc price over the weekend into a crash — from $ , down to $ , . it’s hard to pump the market if you can’t move your coins. though that hasn’t stopped tether doing two-billion-usdt pumps. i’m sure this is all % backed with something that won’t crash if you look at it funny. binance finds itself suddenly unable to fulfil withdrawals of crypto — direct from them to you on the blockchain, without even being able to blame the legacy financial system. affected tokens: bnb (bep and bep ), usdt (trc and bep ) btc, xrp, doge, busd (bep ). but i’m sure it’ll all be fine, and binance definitely have all the cryptos they claimed to. [twitter, twitter] you can cash out any time you like! as long as nobody else is trying to.   who decided to call them nfts instead of gif certificates??? — adam j. sontag (@ajpiano) april ,   q. what do you call unsmokeable mushrooms? a. non-tokeable fungi nfts have a problem: number go … not up. it turns out there isn’t a secondary market for nfts — nobody buys them after the pumpers have had their turn. [bloomberg] “it’s not meaningful to characterize a concept as a financial bubble,” said chris wilmer, a university of pittsburgh academic who co-edits a blockchain research journal, and thinks playing with words obscures that nfts were a month-long bubble. some news stories called nfts a “stimulus-led fad”. now, you might think that was a remarkable euphemism for a blatant pump by crypto bros to fake the appearance of a market. popular nft marketplace rarible has been targeted by … scammers and malware! unheard of in crypto. [bleeping computer] brian livingston’s newsletter muscular portfolios traces a bit more of the follow-the-money on metakovan’s purchase of a $ million nft. [muscular portfolios] kim parker: most artists are not making money off nfts — and here are some graphs to prove it. [medium]   minty bingo for when nfts die and everyone comes back crying https://t.co/ acpplzdui pic.twitter.com/j jsoizq — 🕯️synthwave void gremlin 🕯️ (@lokinne) april ,   he is genius in allocation of space proof-of-space crypto may do to hard disks and ssds what proof-of-work altcoins did to video cards. bram cohen’s chia network seems to already be leading to local shortages of large hard drives — prices in hong kong for the tb and above range are up to triple the usual price.[hkepc, in chinese; wccftech] how wonderfully energy-efficient is proof-of-space? not so great — shokunin tried out the client: “i tested this chia thing overnight. gave it gb plot and two cpu threads. after hours it consumed gb temp space, didn’t sync yet, cpu usage is always %+. estimated reward time is months. this isn’t green, already being centralised on large waste producing servers.” [twitter] david s. h. rosenthal noted precisely this in : “one aspect of the talk that concerned me was that cohen didn’t seem well-informed about the landscape of storage … if the cloud companies chose to burn-in their new drives by using them for proof of space they would easily dominate the network at almost zero cost.” [blog post, ] baby’s on fire coinhive used to host crypto-miners on web pages — scraps of javascript that would use your electricity to mine for monero. the service was also popular with web malware vendors. coinhive shut down in . the coinhive.com domain name is now owned by security expert troy hunt — if you go to a page that’s still trying to load the coinhive script, you get a page that warns you about cryptos, web-based malware and cross-site scripting.  [troy hunt] there’s enough bitcoin mining in china that the bitcoin mining alone is a serious problem for the country to meet its co targets. [nature; the economist] david s. h. rosenthal on how bitcoin mining can never be green — because the carbon footprint is the point. [blog post] gothamist: andrew yang wants to turn nyc into a bitcoin megahub. that would be terrible for climate change. “bitcoin advocates never talk about displacement because it makes the numbers sound bad,” i was quoted as saying. [gothamist] the times: the idea of bitcoin going green is laughable — hey bitcoin, this is what attention from the mainstream looks like. [times, paywalled, archive]   while y'all are over here getting excited over nfts i'm making the original nft pic.twitter.com/jcf lb bz — live tucker reaction (@vogon) april ,   ico, ico the sec has sued lbry over their ico — and their still-ongoing offerings of tokens in a manner that, on the face of it, appears to be a ridiculously obvious unregistered offering of securities. the sec investigation has been going on three years. lbry decided to market more tokens last year, which may have been the last straw for the sec. [sec press release; complaint, pdf] lbry has struck back! with a site called help lbry save crypto. the faq on the site makes a string of assertions which are best answered “read the complaint”. [help lbry save crypto] paragon was an ico for “blockchain technology in the cannabis industry”. it was, as usual, an illegal offering of unregistered securities. paragon settled with the sec in — they had to return everyone’s money, and pay a $ , fine. shockingly, the pot coin guys turned out to be flakes — paragon defaulted on its settlement. [wsj, , paywalled] paragon’s founders have disappeared. aggrieved investors tried to mount a class action last year. [coindesk, ] only $ , of the sec penalty was paid, and this will be distributed to paragon’s investors. [order, pdf] in sec v. ripple, the sec has been denied access to eight years of personal financial information of ripple executives brad garlinghouse and christian larsen. [order, pdf] and ripple has gained partial access to sec discussions on whether xrp was a security, as compared to btc or eth. [cointelegraph] the independent telegram messaging service, beloved of crypto pumpers, will be a thing of the past — pavel durov was so screwed by paying back the investors in telegram’s disastrous ico that he’s now planning to take the company public. according to a claimed leak from the investment bankers preparing the offering, telegram plans to sell % to % of the company in a direct us listing, in the hope of $ to billion, likely in . [coindesk; vedomosti, in russian] the sec has published a “framework for ‘investment contract’ analysis of digital assets.” none of this should be news to anyone here, though that won’t stop the crypto bros yelling like stuck pigs. [sec]   economists may sometimes say that the sky is green. the average crypto person will fight you on a tweet thread arguing the colour of the sky is wet and in any case inflation is making the nash equilibrium llama. — 𝖤𝖽𝗆𝗎𝗇𝖽 𝖲𝖼𝗁𝗎𝗌𝗍𝖾𝗋 (@edmund_schuster) march ,   my beautiful launderette the bank for international settlements has a new report: “supervising cryptoassets for anti-money laundering.” bis concludes: “the first priority should be implementing the fatf standards wherever that has not taken place yet. this is the absolute minimum needed to mitigate the risks posed by cryptoassets at a global level.” this isn’t saying anything controversial, or advocating anything that isn’t happening — but crypto bros wishfully thinking the fatf ratchet will stop tightening on crypto are incorrect. [bis, pdf] more on signal and mobilecoin — dan davies (author of lying for money, a book that everyone reading this blog should read — uk, us) points out that the fca already considers doing financial business over whatsapp, telegram or signal “self-evidently suspicious.” in real finance, the traders’ chat channels are logged for compliance — because, without that, traders reliably dive headlong into illegal market shenanigans. and often, even with compliance logging. [financial news, paywalled; twitter] dan correctly describes the innovation of mobilecoin: “pass on illegal inside information, receive payment and launder the proceeds, all in the same app!” [twitter] the irs wants information on kraken crypto exchange customers, and on circle customers — the latter may include when they owned poloniex. [forbes; justice department] turkey gives cryptocurrencies official legal recognition as a payments mechanism, regulating their use either directly or indirectly! all use of cryptos in payments is banned. [reuters; resmi gazete, in turkish]   welcome to finance twitter. please select your guy: -programmer trading in ira -leftist sympathizer, detests coworkers -mysterious furry rumored to hav $ m aum, % returns every year somehow -phd high energy theory retired at -guy with tinder name john-mba,cfa like linkedin — diet divorced guy (@neoliberal_dad) november ,   central banking, not on the blockchain the bank of england and the uk treasury are forming a task force on central bank digital currencies (cbdcs). one of the task force’s vague and ill-specified jobs will be to look into whether they can find a use case for this in the uk — where most cash-like spending is actually a card anyway. [bank of england] the bank has been terribly excited about the fabulous possibilities of blockchain since they first noticed bitcoin in — they’ve put out a pile of speculative papers, but none with an actual use case. that’s fine — speculating on weird possibilities is one of the things a central bank research unit does. (see libra shrugged, chapter .) but starting at an idea without a use case is the problem with blockchains in general. the wall street journal has a pretty generic article on china’s dc/ep, but it includes the detail that the latest trial includes e-cny that expires — “beijing has tested expiration dates to encourage users to spend it quickly, for times when the economy needs a jump-start.” so even if dc/ep turns into alipay-but-it’s-pboc, being run by the pboc means they can do interesting things with it if they need to. [wsj, paywalled] the new republic: cryptocurrencies are the next frontier for the surveillance state — on the surveillance potential of cbdcs. with quotes and ideas from libra shrugged. [the new republic]   so far in #bitcoin has lost % of its value verses #dogecoin. the market has spoken. dogecoin is eating bitcoin. all the bitcoin pumpers who claim bitcoin is better than gold because its price has risen more than gold's must now concede that dogecoin is better than bitcoin. — peter schiff (@peterschiff) april ,   things happen dogecoin is having another price pump, firmly establishing doge as the true crypto store of value and btc as a deprecated altcoin. the big pump coincided with million tethers being deployed. everything i said in february in my foreign policy piece on dogecoin applies twice as hard. [reddit] australian plans to put disability payments on a … blockchain! it’ll work great! right? with a quote from me. this particular bad idea somewhat resembles the plan to put welfare spending onto a blockchain that the uk government put into its paper “distributed ledger technology: beyond blockchain” [gov.uk, ], which i wrote up in chapter of attack of the foot blockchain. [zdnet] the marvelous money machine! a children’s book for grown-ups. this is great. pay what you want for the pdf. [gumroad] facebook’s whatsapp pay brazil has still not been allowed to go live, in the version where it hooks into the national pix retail real-time settlement system. [reuters] der spiegel: the german covid vaccine tracker was going to use five blockchains! it will now use none. nice try, ibm. [der spiegel, archive] crypto guy loses a bet, and tries to pay the bet using the lightning network. hilarity ensues. [twitter thread, archive] paypal lets you make payments with crypto! if it’s crypto you already had in your paypal crypto holdings — which you can’t top up by depositing crypto from outside, only by buying crypto on paypal with money. [reuters] why do this? the ceo of paypal is a massive coiner, but he also has to worry about things like “the law.” so this gets crypto into news headlines on the company dime. living on video here’s the third pocast i did last week: dunc tank with duncan gammie! talking about attack of the foot blockchain and the crypto skeptic view. [podbean] i went on ntd again to talk about crypto “market cap” and how it’s a meaningless number, starting : . [youtube] and to talk about the coinbase listing, starts : . [youtube] my laptop webcam is still mediocre, but it was better than the other zoom experts’ webcams. the naked scientists podcast has done an episode on “bitcoin decrypted: cash, code, crime & power”. this is going out through bbc radio live in the uk, and radio national in australia. [my segment; whole podcast] byline times: “so who is behind the onward march of the crypto, nearly years on from the credit crunch and the arrival of bitcoin and the thousands of digital currencies in its slipstream? the short answer is: idealists, ideologues and opportunists.” with a quote from me. [byline times] sydney morning herald: ‘financial weapon’: bitcoin becomes another factor in china-us contest — with quotes from me. [smh] i spoke to cnet about altcoins. [cnet] investor’s business daily: bitcoin hits tipping point after skyrocketing on investment mania — with quotes from me. [investor’s business daily]   learning how to regurgitate on demand like a frightened vulture for the next time a man tries to explain cryptocurrencies to me — kat maddox (@ctrlshifti) april ,   your subscriptions keep this site going. sign up today! share this: click to share on twitter (opens in new window) click to share on facebook (opens in new window) click to share on linkedin (opens in new window) click to share on reddit (opens in new window) click to share on telegram (opens in new window) click to share on hacker news (opens in new window) click to email this to a friend (opens in new window) taggedaustraliabank of englandbernie madoffbinancebisbitcoinblockchainbrad garlinghousebrazilbrian brooksbrian livingstoncbdcchiachinachristian larsencirclecoinbasecoinhivedcepdogecoindunc tankibmicoirskim parkerkrakenlbrylightning networklinksmarvelous money machineminingmobilecoinnftparagonpaypalpixpodcastpoloniexproof of spaceraribleripplesecsignaltelegramtethertroy huntturkeyunited kingdomwhatsapp payxinjiang post navigation previous article stilgherrian: the pm dumb anarcho-capitalist blockchain scams with david gerard one comment on “news: coinbase goes public, bitcoin hashrate goes down, nfts go down, proof-of-space trashes hard disk market” d says: st april at : am fred flintstone and the marvelous money machine https://www.amazon.com/dp/b uzq zc reply leave a reply cancel reply your email address will not be published. required fields are marked * comment name * email * website notify me of follow-up comments by email. notify me of new posts by email. this site uses akismet to reduce spam. learn how your comment data is processed. search for: click here to get signed copies of the books!   get blog posts by email! email address subscribe support this site on patreon! hack through the blockchain bafflegab: $ /month for early access to works in progress! $ /month for early access and even greater support! $ /month corporate rate, for your analyst newsletter budget! buy the books! libra shrugged us paperback uk/europe paperback isbn- : kindle: uk, us, australia, canada (and all other kindle stores) — no drm google play books (pdf) apple books kobo smashwords other e-book stores attack of the foot blockchain us paperback uk/europe paperback isbn- : kindle: uk, us, australia, canada (and all other kindle stores) — no drm google play books (pdf) apple books kobo smashwords other e-book stores available worldwide  rss - posts  rss - comments recent blog posts news: coinbase goes public, bitcoin hashrate goes down, nfts go down, proof-of-space trashes hard disk market stilgherrian: the pm dumb anarcho-capitalist blockchain scams with david gerard podcast: i don’t speak german # : crypto fascists, with david gerard desperate investors, neoliberalism and keynes: how to increase returns new york’s excelsior pass for covid- , on ibm blockchain: doing the wrong thing, badly excerpts from the book table of contents the conspiracy theory economics of bitcoin dogecoin buterin’s quantum quest icos: magic beans and bubble machines ethereum smart contracts in practice the dao: the steadfast iron will of unstoppable code business bafflegab, but on the blockchain imogen heap: “tiny human”. total sales: $ . index about press coverage for attack of the foot blockchain press coverage for libra shrugged my cryptocurrency and blockchain press commentary and writing facebook author page about the author contact the content of this site is journalism and personal opinion. nothing contained on this site is, or should be construed as providing or offering, investment, legal, accounting, tax or other advice. do not act on any opinion expressed here without consulting a qualified professional. i do not hold a position in any crypto asset or cryptocurrency or blockchain company. amazon product links on this site are affiliate links — as an amazon associate i earn from qualifying purchases. (this doesn’t cost you any extra.) copyright © – david gerard powered by wordpress and hitmag. send to email address your name your email address cancel post was not sent - check your email addresses! email check failed, please try again sorry, your blog cannot share posts by email. none a cross disciplinary study of link decay and the effectiveness of mitigation techniques | bmc bioinformatics | full text skip to main content advertisement search explore journals get published about bmc my account search all bmc articles search bmc bioinformatics home about articles in review submission guidelines download pdf volume supplement proceedings of the tenth annual mcbios conference proceedings open access published: october a cross disciplinary study of link decay and the effectiveness of mitigation techniques jason hennessey & steven xijin ge   bmc bioinformatics volume  , article number: s ( ) cite this article accesses citations altmetric metrics details abstract background the dynamic, decentralized world-wide-web has become an essential part of scientific research and communication. researchers create thousands of web sites every year to share software, data and services. these valuable resources tend to disappear over time. the problem has been documented in many subject areas. our goal is to conduct a cross-disciplinary investigation of the problem and test the effectiveness of existing remedies. results we accessed , unique web pages found in the abstracts within thomson reuters' web of science citation index that were published between and and found that the median lifespan of these web pages was . years with % of them being archived. survival analysis and logistic regression were used to find significant predictors of url lifespan. the availability of a web page is most dependent on the time it is published and the top-level domain names. similar statistical analysis revealed biases in current solutions: the internet archive favors web pages with fewer layers in the universal resource locator (url) while webcite is significantly influenced by the source of publication. we also created a prototype for a process to submit web pages to the archives and increased coverage of our list of scientific webpages in the internet archive and webcite by % and %, respectively. conclusion our results show that link decay continues to be a problem across different disciplines and that current solutions for static web pages are helping and can be improved. background scholarly internet resources play an increasingly important role in modern research. we can see this by the increasing number of urls published in a paper's title or abstract [ ](also see figure ). until now, maintaining the availability of scientific contributions has been decentralized, mature and effective, utilizing methods developed over centuries to archive the books and journals in which they were communicated. as the internet is still a relatively new medium for communicating scientific thought, the community is still figuring out how best to use it in a way that preserves contributions for years to come. one problem is that continued availability of these online resources is at the mercy of the organizations or individuals that host them. many disappear after publication (and some even disappear before[ ]), leading to a well-documented phenomenon referred to as link rot or link decay. figure growth of scholarly online resources. not only are the number of url-containing articles (those with "http" in the title or abstract) published per year increasing (dotted line), but also the percentage of published items containing urls (solid line). the annual increase in articles according to a linear fit was with r . . the linear trend for the percentage was an increase of . % per year with r . . source: thomas reuter's web of science full size image the problem has been documented in several subject areas, with table containing a large list of these subject-specific studies. in terms of wide, cross-disciplinary analyses, the closest thus far are those of the biological and medical medline and pubmed databases by ducut [ ] and wren [ , ], in addition to yang's study of the social sciences within the chinese social sciences citation index (cssci) [ ]. table link decay has been studied for several years in specific subject areas.full size table some solutions have been proposed which attack the problem from different angles. the internet archive (ia) [ ] and webcite (wc) [ ] address the issue by archiving web pages, though their mechanisms for acquiring those pages differ. the ia, beginning from a partnership with the alexa search engine, employs an algorithm that crawls the internet at large, storing snapshots of pages it encounters along the way. in contrast, webcite archives only those pages which are submitted to it, and it is geared toward the scientific community. these two methods, however, can only capture information that is visible from the client. logic and data housed on the server are not frequently available. other tools, like the digital object identifier (doi) system [ ] and persistent uniform resource locator (purl) [ ], provide solutions for when a web resource is moved to a different url but is still available. the doi system was created by an international consortium of organizations wishing to assign unique identifiers to items such as movies, television shows, books, journal articles, web sites and data sets. it encompasses several thousand "naming authorities" organized under a few "registration agencies" that have a lot of flexibility in their business models[ ]. perhaps - % of link rot could be solved using dois and purls[ , ]. however they are not without pitfalls. one is that a researcher or company could stop caring about a particular tool for various reasons and thus not be interested in updating its permanent identifier. another is that the one wanting the permanent url (the publishing author) is frequently not the same as the person administering the site itself over the long term, thus we have an imbalance of desire vs. responsibilities between the two parties. a third in the case of the doi system is that there may be a cost in terms of money and time associated with registering their organization that could be prohibitive to authors that don't already have access to a naming authority[ ]. one example of a doi system business model would be that of the california digital library's ezid service, which charges a flat rate (currently $ , for a research institution) for up to million dois per year[ ]. in this study, we ask two questions: what are the problem's characteristics in scientific literature as a whole and how is it being addressed? to assess progress in combating the problem, we evaluate the effectiveness of the two most prevalent preservation engines: and examine the effectiveness of one prototyped solution. if a url is published in the abstract, it is assumed that the url plays a prominent role within that paper, similar to the rationale proposed by wren [ ]. results our goals are to provide some metrics that are useful in understanding the problem of link decay in a cross-disciplinary fashion and to examine the effectiveness of the existing archival methods while proposing some incremental improvements. to accomplish these tasks, we downloaded , web of science (wos) abstracts containing "http" in the title or abstract from the years under study ( - ), out of which , urls ( , unique) were extracted and used. we developed python scripts to access these urls over a -day period. for the period studied, % of the published urls ( % of the unique) were available on the live internet, the internet archive's wayback machine had archived % ( % unique) of the total and webcite had % ( % unique). overall, % of all urls ( % unique) were available from one of the two surveyed archival engines. figure contains a breakdown by year for availability on the live web as well as through the combined archives, and figure illustrates each archival engine's coverage. the median lifetime for published urls was found to be . years ( % ci [ . , . ]), with the median lifetime amongst unique urls also being . years ( % ci [ . , . ]). subject-specific lifetimes may be found in table . using a simple linear model, the chances that a url published in a particular year is still available goes down by . % for each year added to its age with an r of . . its chances of being archived go up after an initial period of flux (see figure ). submitting our list of unarchived but living urls to the archival engines showed dramatic promise, increasing the internet archive's coverage of the dataset by urls, an increase of %, and webcite's by , an increase of %. figure the accessibility of urls from a particular year is closely correlated with age. the probability of being available (solid line) declines by . % every year based on a linear model with r . . the surveyed archival engines have about a - % archival rate (dotted line) following an initial ramp time. full size image figure url presence in the archives. percentage of urls found in the archives of the internet archive (dashed line), webcite (dotted line) or in any group (solid line). ia is older, and thus accounts for the lion's share of earlier published urls, though as time goes on webcite is offering more and more. full size image table comparison of certain statistics based on the subject of a given url.full size table how common are published, scholarly online resources? for wos, both the percentage of published items which contained a url as well as their absolute number increased steadily since as seen in figure . simple linear fits showed the former's annual increase at a conservative . % per year with an r of . while the latter's increase was papers with an r of . . a total of ( unique) doi urls were identified, consisting of % of the total, while purls ( unique) were identified. due to cost[ ], it is likely that dois will remain useful for tracking commercially published content though not the scholarly online items independent of those publishers. url survival in order to shed some light on the underlying phenomena of link rot, a survival regression model was fitted with data from the unique urls. this model, shown in table , identified top-level domains, the number of times a url has been published, a url's directory structure depth (hereafter referred to as "depth", using the same definition as [ ]), the number of times the publishing article(s) has been cited, whether articles contain funding text as well as journals as having a significant impact on a url's lifetime at the p< . level. this survival regression used the logistic distribution and is interpreted similarly to logistic models. to determine the predicted outcome for a particular url, one takes the intercept ( . ) and adds to it the coefficients for the individual predictors if those predictors are different from the base level; coefficients here are given in years. if numeric, one first multiplies before adding. the result is then interpreted as the location of the peak of a bell curve for the expected lifetime, instead of a log odds ratio as a regular logistic model would give. among the two categorical predictors (domains and journals having more than samples), the three having the largest positive impact on lifetimes were the journal zoological studies (+ ) and the top-level domains org and dk (+ for both). though smaller in magnitude than the positive ones, the categorical predictors having the largest negative impact were the journals computer physics communications (- ) and bioinformatics (- ) as well as the domain kr (- ), though the p values associated with the latter two are more marginal than some of the others (. and . respectively). table results of fitting a parametric survival regression using the logistic distribution to the unique urls.full size table predictors of availability while examining url survival and archival, it is not only interesting to ask which factors significantly correlate with a url lasting but also which account for most of the differences. to that end, we fit logistic models for each of the measured outcomes (live web, internet archive and web citation availabilities) to help tease out that information. to enhance comparability, a similar list of predictors (differing only in whether the first or last year a url was published was used) without interaction terms was employed for all methods and unique deviance calculated by dropping each term from the model and measuring the change in residual deviance. results were then expressed as a percentage of the total uniquely explained deviance and are graphically shown in figure . figure how important is each predictor in predicting whether a url is available? this graph compares what portion of the overall deviance is explained uniquely by each predictor for each of the measured outcomes. a similar list of predictors (differing only in whether the first or last year a url was published) without interaction terms was employed to construct logistic regression models. the dependent variable for each of the outcomes under study (live web, internet archive and webcite) was availability at the time of measurement. unique deviance was calculated by dropping each term and measuring the change in explained deviance in the logistic model. results were then expressed as a percentage of the total uniquely explained deviance for each of the methods. full size image for live web availability, the most deviance was explained by the last year a url was published ( %) followed by the domain ( %). that these two predictors are very important agrees with much of the published literature thus far. for the internet archive, by far the most important predictor was the url depth at %. based on this, it stands to reason that the internet archive either prefers more popular urls which happen to be at lower depths or employs an algorithm that prioritizes breadth over depth. similar to the ia, wc had a single predictor that accounted for much of the explained deviance, with the publishing journal representing % of the explained deviance. this may reflect wc's efforts to work with publishers as the model shows one of the announced early adopters, biomed central [ ], as having the two measured journals (bmc bioinformatics and bmc genomics) with the highest retention rates. therefore, wc is biased towards a publication's source (journals). archive site performance another way to measure the effectiveness of the current solutions to link decay is to look at the number of "saved" urls, or those missing ones that are available through archival engines. out of the % of urls ( % of the unique) which were not accessible on the live web, % of them ( % of the unique) were available in one of the two engines, with ia having % ( % unique) and wc having % ( % unique). wc's comparatively lower performance can likely be attributed to a combination of its requirement for human interaction and its still-growing adoption. in order to address the discrepancy, all sites that were still active but not archived were submitted to the engine(s) from which they were missing. using the information gleaned from probing the sites as well as the archives, urls missing from one or both of the archives, yet still alive, were submitted programmatically. this included submitting , to the wayback machine as well as , to webcite, of which , and , were successful, respectively. discussion submission of missing urls to archives archiving missing urls in each of the archival engines had their own special nuances. for the internet archive, the lack of a practical documented way of submitting urls (see http://faq.web.archive.org/my-sites-not-archived-how-can-i-add-it/) necessitated trusting a message shown by the wayback machine when one finds a url that isn't archived and clicks the "latest" button. in this instance, the user is sent to the url "http://liveweb.archive.org/" which has a banner proclaiming that the page "will become part of the permanent archive in the next few months". interestingly, as witnessed by requests for a web page hosted on a server for which the authors could monitor the logs, only those items requested by the client were downloaded. this meant that if only a page's text were fetched, supporting items such as images and css files would not be archived. to archive the supporting items and avoid duplicating work, wget's "--page-requisites" option was used instead of a custom parser. webcite has an easy-to-use api for submitting urls, though limitations during the submission of our dataset presented some issues. the biggest issue was webcite's abuse detection process, which would flag the robot after it had made a certain number of requests. to account for this and be generally nice users, we added logic to ensure a minimum delay between archival requests submitted to both the ia and wc. exponential delay logic was implemented for wc when encountering general timeouts, other failures (like mysql error messages) or the abuse logic. eventually, we learned that certain urls would cause wc's crawler to timeout indefinitely, requiring the implementation of a maximum retry count (and a failure status) if the error wasn't caused by the abuse logic. to estimate what impact we had on the archives' coverage of the study urls, we compared a url survey done directly prior to our submission process to one done afterwards; a period of about . months. it was assumed that the contribution due to unrelated processes would not be very large given that there was only a modest increase in coverage, % for ia and % for wc, over the previous period of just under a year and a half. each of the two archival engines had interesting behaviors which required gauging successful submission of a url by whether it was archived as of a subsequent survey rather than using the statuses returned by the engines. for the internet archive, it was discovered that an error didn't always indicate failure, as there were urls for which wget returned an error but which were successfully archived. conversely, webcite returned an asynchronous status, such that even in the case of a successful return the url might fail archival; the case in out of a total of , . submitting the urls to ia took a little less than a day, whereas submitting to wc took over months. this likely reflects ia's large server capacity, funding and platform maturity due to its age. generating the list of unique urls converting some of the potential predictors from the list of published urls to the list of unique urls presented some unique issues. in particular, while converting those based on the url itself (domain, depth, whether alive or in an archive) were straightforward, those which depended upon a publishing article (number of times url was published, the number of times an article was cited, publishing journal, whether there was funding text) were estimated by collating the data from each publishing. only a small amount, %, of the unique urls, appeared more than once, and among the measured variables that pertained to the publishing there was not a large amount of variety. amongst repeatedly-published urls, % appeared in only one journal and the presence of funding text was the same % of the time. for calculating the number of times a paper was published, multiple appearances of a url within a given title/abstract were counted as one. thus, while efforts were made to provide a representative collated value where appropriate, it's expected that different methods would not have produced significantly different results. additional sources of error even though wos's index appears to have better quality optical character recognition (ocr) than pubmed, it still has ocr artifacts. to compensate for this, the url extraction script tried to use some heuristics to detect the most common sources of error and correct them. some of the biggest sources of error were: randomly inserted spaces in urls, "similar to" being substituted for the tilde character, periods being replaced with commas and extra punctuation being appended to the url (sometimes due to the logic added to address the first issue). likely the largest contributors to false negatives are errors in ocr and the attempts to compensate for them. in assessing the effectiveness of our submissions to ia, it is possible that the estimate could be understated due to urls that had been submitted but not yet made available within the wayback machine. dynamic websites with interactive content, if only present via an archiving engine, would be a source of false positives, as the person accessing the resource would presumably want to use it as opposed to viewing the design work of its landing page. if a published web site goes away and another installed in its place (especially true if a .com or .net domain is allowed to expire), then the program will not be able to tell the difference since it will see a valid (though impertinent) web site. in addition, though page contents can change and lose relevance from their original use[ ], dates of archival were not compared to the publication date. another source of false positive error would be uncaught ocr artifacts that insert spaces within urls if it truncated the path but left the correct host intact. the result would be a higher probability that the url would appear as a higher level index page, which are generally more likely to function than pages at lower levels [ , ]. bibliographic database web of science was chosen because, compared to pubmed, it was more cross-sectional and had better ocr quality based on a small sampling. many of the other evaluation criteria were similar between pubmed and wos, as both contain scholarly work and have an interface to download bibliographic data. interestingly, due to the continued presence of ocr issues in newer articles, it appears that bibliographic information for some journals is not yet passed electronically. conclusions based on the data gathered in this and other studies, it is apparent that there is still a problem with irretrievable scholarly research on the internet. we found that roughly % of urls published years prior to the survey (in ) are still left standing. interesting is that the rate of decay for late-published urls (within the past years) appears to be higher than that for the older ones, lending credence to what koehler suggested about eventual decay rate stabilization[ ]. survival rates for living urls published between and , inclusive, only vary by . % ( . % for unique) and have poor linear fits (r of . and . for unique), whereas years [ , ] have linear slope . and r . (. and r . for unique urls using the first published year) indicating that the availability between years for older urls is much more stable whereas the availability for more recent online resources follow a linear trend with a predictable loss rate. overall, % of urls ( % of the unique) were available in some manner: either via the web, ia or wc. several remedies are available to address different aspects of the link decay problem. for data-based sites that can be archived properly with an engine such as the internet archive or webcite, one remedy is to submit the missing sites which are still alive to the archiving engines. based on the results of our prototype (illustrated in figure ), this method was wildly successful, increasing ia's coverage of the study's urls by % and webcite's by %. journals could require authors to submit urls to both the internet archive and webcite, or alternatively programs similar to those employed in this study could be used to do it automatically. another way to increase archival would be for the owners of published sites to ease restrictions for archiving engines since ( unique) of the published urls had archiving disabled via robots.txt according to the internet archive. amongst these, % ( % of the unique) have already ceased being valid. while some sites may have good reason for blocking automated archivers (such as dynamic content or licensing issues), there may be others that could remove their restrictions entirely or provide an exception for preservation engines. figure coverage of the scholarly url list for each archival engine at different times. all urls marked as alive in but missing from an archive were submitted between the and surveys. the effect of submitting the urls is most evident in the webcite case though the internet archive also showed substantial improvement. implementing an automated process to do this could vastly improve the retention of scholarly static web pages. full size image to address the control issue for redirection solutions (doi, purl) mentioned in the introduction, those who administer cited tools could begin to maintain and publish a permanent url on the web site itself. perhaps an even more radical step would be for either these existing tools or some new tool to take a wikipedia approach and allow end-users to update and search a database of permanent urls. considering the studies that have shown around at least % of dead urls to be locatable using web search engines [ , ], such a peer-maintained system could be effective and efficient, though spam could be an issue if not properly addressed. for dynamic websites, the current solutions are more technically involved, potentially expensive and less feasible. these include mirroring (hosting a website on another server, possibly at another institution) and providing access to the source code, both of which require time and effort. once the source is acquired, it can sometimes take considerable expertise to make use of it as there may be complex libraries or framework configuration, local assumptions hard-coded into the software or it could be written for a different platform (gpu, unix, windows, etc.). the efforts to have reproducible research, where the underlying logic and data behind the results of a publication are made available to the greater community, have stated many of the same requirements as preserving dynamic websites [ , ]. innovation in this area could thus have multiple benefits beyond just the archival. methods data preparation and analysis the then-current year ( ) was excluded to eliminate bias from certain journals being indexed sooner than others. for analysis and statistical modeling, the r program [ ] and its "survival" library [ ] were used (scripts included in additional file ). wherever possible, statistics are presented in forms: one representing the raw list of urls extracted from abstracts and the other representing a deduplicated set of those urls. the former is most appropriate when thinking about what a researcher would encounter when trying to use a published url in an article of interest and also serves as a way to give weight to multiply-published urls. the latter is more appropriate when contemplating scholarly urls as a whole or when using statistical models that assume independence between samples. urls not the goal of this study such as journal promotions and invalid urls were excluded using computational methods as much as possible in order to minimize subjective bias. the first method, removing ( unique), looked for identical urls which comprised a large percentage of a journal's published collection within a given year. upon manual examination, a decision was then made whether to eliminate them. the second method, which identified invalid urls (all unique), consisted of checking for webcitation's "unexpectedxml" error. these urls were corrupted to the point that they interfered with xml interpretation of the request due either to an error in our parsing or the ocr. doi sites were identified by virtue of containing "http://dx.doi.org". purl sites were identified by virtue of containing "http://purl." in the url. interestingly, purl servers were identified through this mechanism: http://purl.oclc.org, http://purl.org and http://purl.access.gpo.gov. to make for results more comparable to prior work as well as easier to interpret analysis, a url was considered available if it successfully responded to at least % of the requests and unavailable if less than that. this method is similar to the method used by wren[ ], and differs from ducut's[ ] by not using a "variable availability" category defined as being available > % and < % of the time. our results show that unique urls ( . %) would have been in this middle category, a number quite similar to what wren's and ducut's would have been ( . % and . %, respectively). being such a small percentage of the total, their treatment is not likely to affect analysis much regardless of how they are interpreted. having binary data also eases interpretation of the statistical models. in addition, due to the low url counts for ( ) and ( ), these years were excluded from analysis. survival model survival analysis was chosen to analyze living urls due to its natural fit; like people, urls have lifetimes and we are interested in discussing them, what causes them to be longer or shorter and by how much. lifetimes were calculated by assuming urls were alive each time they were published, which is a potential source of error [ ]. data was coded as either right or left-censored; right-censored since living urls presumably would die at an unknown time in the future and left-censored because it was unknown when a non-responding url had died. ages were coded in months rather than years in order to increase accuracy and precision. parametric survival regression models were constructed using r's survreg(). in selecting the distribution to use, all of those available were tried, with the logistical showing the best overall fit based on akaike information criterion (aic) score. better fits for two of the numeric predictors (number of citations to a publishing paper and number of times a url was published) were obtained by taking the base logarithm. collinearity was checked by calculating the variance inflation factor against a logistic regression fit to the web outcome variable. overall lifetime estimates were made using the survfit() function from r's survival library. extracting and testing urls to prepare a list of urls (and their associated data), a collection of bibliographic data was compiled by searching wos for "http" in the title or abstract, downloading the results ( at a time), then finally collating them into a single file. a custom program (extract_urls.py in additional file ) was then used to extract the urls and associated metadata from these, after which positive and negative controls were added. a particular url was only included once per paper. with the extracted urls in hand, another custom program (check_urls_web.py in additional file ) was used to test the availability of the urls times a day over the course of days, starting april , . these times were generated randomly by scheduler.py (included in additional file ), the algorithm guaranteeing that no consecutive runs were closer than hours. a given url was only visited once per run even if it was published multiple times, saving load on the server and speeding up the total runtime (which averaged about minutes due to use of parallelism). failure was viewed as anything that caused an exception in python's "urllib " package (which includes error statuses, like ), with the exception reason being recorded for later analysis. while investigating some of the failed fetches, a curious thing was noted: there were urls that would consistently work with a web browser but not with the python program or other command line downloaders like wget. after some investigation, it was realized that the web server was denying access to unrecognized user agent strings. in response, the python program adopted the user agent of a regular browser and subsequently reduced the number of failed urls. at the end of the live web testing period, a custom program (check_urls_archived.py in additional file ) was used to programmatically query the archive engines on may , . for the internet archive's wayback machine, this was done using an http head request (which saves resources vs. get) on the url formed by "http://web.archive.org/web/*/" + . status was judged by the resulting http status code with meaning success, meaning not archived, signifying a page blocked due to robots.txt and meaning that the server was too busy. because there were a number of these codes, the script would make up to attempts to access the url, with increasing back off delays to keep from overloading ia's servers. the end result still contained , which were counted as not archived for analysis. for webcite, the documented api was used. this supports returning xml, a format very suitable to automated parsing [ ]. for sites containing multiple statuses, any successful archiving was taken as a success. references .ducut e, liu f, fontelo p: an update on uniform resource locator (url) decay in medline abstracts and measures for its mitigation. bmc med inform decis mak. , :- pubmed central  article  pubmed  google scholar  .aronsky d, madani s, carnevale rj, duda s, feyder mt: the prevalence and inaccessibility of internet references in the biomedical literature at the time of publication. j am med inform assn. , : - . . /jamia.m . article  google scholar  .wren jd: url decay in medline - a -year follow-up study. bioinformatics. , : - . . /bioinformatics/btn . cas  article  pubmed  google scholar  .wren jd: not found: the stability and persistence of urls published in medline. bioinformatics. , : -u . . /bioinformatics/btg . cas  article  pubmed  google scholar  .yang sl, qiu jp, xiong zy: an empirical study on the utilization of web academic resources in humanities and social sciences based on web citations. scientometrics. , : - . . /s - - - . article  google scholar  .the internet archive. [http://www.archive.org/web/web.php] .eysenbach g, trudell m: going, going, still there: using the webcite service to permanently archive cited web pages. journal of medical internet research. , : - . . /jmir. . .e . article  google scholar  .the doi system. [http://www.doi.org/] .purl home page. [http://purl.org] .key facts on digital object identifier system. [http://www.doi.org/factsheets/doikeyfacts.html] .wren jd, johnson kr, crockett dm, heilig lf, schilling lm, dellavalle rp: uniform resource locator decay in dermatology journals - author attitudes and preservation practices. arch dermatol. , : - . . /archderm. . . . article  pubmed  google scholar  .casserly mf, bird je: web citation availability: analysis and implications for scholarship. college & research libraries. , : - . . /crl. . . . article  google scholar  .ezid: pricing. [http://n t.net/ezid/home/pricing] .wagner c, gebremichael md, taylor mk, soltys mj: disappearing act: decay of uniform resource locators in health care management journals. j med libr assoc. , : - . . / - . . . . pubmed central  article  pubmed  google scholar  .koehler w: an analysis of web page and web site constancy and permanence. j am soc inf sci. , : - . . /(sici) - ( ) : < ::aid-asi > . .co; -b. article  google scholar  .bar-ilan j, peritz bc: evolution, continuity, and disappearance of documents on a specific topic on the web: a longitudinal study of "informetrics". journal of the american society for information science and technology. , : - . . /asi. . article  google scholar  .koehler w: a longitudinal study of web pages continued: a consideration of document persistence. information research-an international electronic journal. , : -- google scholar  .casserly mf, bird je: web citation availability - a follow-up study. libr resour tech ser. , : - . . /lrts. n . . article  google scholar  .peng rd: reproducible research and biostatistics. biostatistics. , : - . . /biostatistics/kxp . article  pubmed  google scholar  .ince dc, hatton l, graham-cumming j: the case for open computer programs. nature. , : - . . /nature . cas  article  pubmed  google scholar  .r development core team: r: a language and environment for statistical computing. book r: a language and environment for statistical computing. , city: r foundation for statistical computing google scholar  .therneau t: a package for survival analysis in s. book a package for survival analysis in s. , city, . - google scholar  .webcite technical background and best practices guide. [http://www.webcitation.org/doc/webcitebestpracticesguide.pdf] .markwell j, brooks dw: "link rot" limits the usefulness of web-based educational materials in biochemistry and molecular biology. biochemistry and molecular biology education. , : - . . /bmb. . . article  google scholar  .thorp aw, brown l: accessibility of internet references in annals of emergency medicine: is it time to require archiving?. ann emerg med. , : - . . /j.annemergmed. . . . article  pubmed  google scholar  .carnevale rj, aronsky d: the life and death of urls in five biomedical informatics journals. international journal of medical informatics. , : - . . /j.ijmedinf. . . . article  pubmed  google scholar  .dimitrova dv, bugeja m: consider the source: predictors of online citation permanence in communication journals. portal-libraries and the academy. , : - . . /pla. . . article  google scholar  .duda jj, camp rj: ecology in the information age: patterns of use and attrition rates of internet-based citations in esa journals, - . frontiers in ecology and the environment. , : - . . / . article  google scholar  .rhodes s: breaking down link rot: the chesapeake project legal information archive's examination of url stability. law library journal. , : - . google scholar  .goh dhl, ng pk: link decay in leading information science journals. journal of the american society for information science and technology. , : - . . /asi. . article  google scholar  .russell e, kane j: the missing link - assessing the reliability of internet citations in history journals. technology and culture. , : - . . /tech. . . article  google scholar  .dellavalle rp, hester ej, heilig lf, drake al, kuntzman jw, graber m, schilling lm: information science - going, going, gone: lost internet references. science. , : - . . /science. . cas  article  pubmed  google scholar  .evangelou e, trikalinos ta, ioannidis jpa: unavailability of online supplementary scientific information from articles published in major journals. faseb journal. , : - . . /fj. - lsf. cas  article  pubmed  google scholar  .sellitto c: the impact of impermanent web-located citations: a study of scholarly conference publications. journal of the american society for information science and technology. , : - . . /asi. . article  google scholar  .bar-ilan j, peritz b: the lifespan of "informetrics" on the web: an eight year study ( - ). scientometrics. , : - . . /s - - - . article  google scholar  .gomes d, silva mj: modelling information persistence on the web. book modelling information persistence on the web. , city google scholar  .markwell j, brooks dw: evaluating web-based information: access and accuracy. journal of chemical education. , : - . . /ed p . cas  article  google scholar  .wu zq: an empirical study of the accessibility of web references in two chinese academic journals. scientometrics. , : - . . /s - - - . article  google scholar  download references acknowledgements the authors would like to thank the south dakota state university departments of mathematics & statistics and biology & microbiology for their valuable feedback. declarations publication of this article was funded by the national institutes of health [gm to sxg]. this article has been published as part of bmc bioinformatics volume supplement , : proceedings of the tenth annual mcbios conference. discovery in a sea of data. the full contents of the supplement are available online at http://www.biomedcentral.com/bmcbioinformatics/supplements/ /s . author information affiliations department of mathematics and statistics, south dakota state university, box , brookings, sd, , usa jason hennessey & steven xijin ge authors jason hennesseyview author publications you can also search for this author in pubmed google scholar steven xijin geview author publications you can also search for this author in pubmed google scholar corresponding author correspondence to steven xijin ge. additional information competing interests the authors declare that they have no competing interests. authors' contributions jh implemented the tools for data acquisition and statistical analysis as well as performed a literature review and drafting of the paper. sxg implemented an initial prototype and provided valuable feedback at every step of the process, including critical revision of this manuscript. electronic supplementary material additional file : supplement.zip. contains source code used to perform the study, written in python and r. readme.txt contains descriptions for each file. (zip kb) rights and permissions this article is published under license to biomed central ltd. this is an open access article distributed under the terms of the creative commons attribution license (http://creativecommons.org/licenses/by/ . ), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. reprints and permissions about this article cite this article hennessey, j., ge, s.x. a cross disciplinary study of link decay and the effectiveness of mitigation techniques. bmc bioinformatics , s ( ). https://doi.org/ . / - - -s -s download citation published: october doi: https://doi.org/ . / - - -s -s keywords optical character recognition universal resource locator internet archive naming authority survival regression model download pdf advertisement bmc bioinformatics issn: - contact us submission enquiries: access here and click contact us general enquiries: orsupport@springernature.com read more on our blogs receive bmc newsletters manage article alerts language editing for authors scientific editing for authors policies accessibility press center support and contact leave feedback careers follow bmc bmc twitter page bmc facebook page bmc weibo page by using this website, you agree to our terms and conditions, california privacy statement, privacy statement and cookies policy. manage cookies/do not sell my data we use in the preference centre. © biomed central ltd unless otherwise stated. part of springer nature. \ documentation sprint . . - google sheets javascript isn't enabled in your browser, so this file can't be opened. enable and reload. documentation sprint . .          share sign in the version of the browser you are using is no longer supported. please upgrade to a supported browser.dismiss file edit view insert format data tools form add-ons help accessibility unsaved changes to drive see new changes                 $ %                                 conditional formatting     conditional formatting                                                                                                   sum average count max min learn more                     accessibility               a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad review complete auditor reviewer link status type audience goal problems notes about https://islandora.github.io/documentation/ good for now conceptual stranger explains at a high level what islandora does concepts structuring menu item - not a page reviewed dig ma ├── collections https://islandora.github.io/documentation/concepts/collection/ needs work conceptual newcomer explain the concept of collections in islandora, with reference to bulk management and the interaction of islandora defaults. points to page that does not exist yet (bulk editing). assumes some basic drupal knowledge and knowledge of islandora defaults, too early (because this is one of the first pages in the documentation). collections should probably not be the first page in the documentation tree. 'content types' should be in the glossary. add more links. audited mh ├── access control https://islandora.github.io/documentation/concepts/access-control/ needs work conceptual devops, repository manager explain what mechanism(s) for access control are available and how restrictions affect islandora repo content mixes documentation type and audiences; make this conceptual documentation for repository managers that explains which levels of restriction can be configured, how inheritance works (it doesn't), separate out sysadmin/devops documentation about preventing access to other components of the stack, consider moving overview over contrib modules not part of islandora core/default to a "solution gallery" or cookbook section with recommendations; fix link to documentation page on manging user accounts kc ├── accessibility https://islandora.github.io/documentation/concepts/accessibility/ conceptual ├── component overview https://islandora.github.io/documentation/installation/component_overview/ conceptual stranger give an understanding of what components islandora include and how they work together. this should have a link to the architecture diagram: https://islandora.github.io/documentation/technical-documentation/diagram/ (ma) ab ├── modelling content in islandora vs. https://islandora.github.io/documentation/user-documentation/objects_to_resource_nodes/ conceptual islandora user translate between the "object" and "datastreams" model and the "nodes" and "media" model └── islandora defaults https://islandora.github.io/documentation/reference/islandora_defaults_reference/ conceptual create sensible expectations around configurability and ongoing support installation structuring menu item - not a page proposed page under this menu item: installation overview, describing why we have so many installation methods ├── docker compose (isle-dc) https://islandora.github.io/documentation/installation/docker-compose/ conceptual reference page: what is isle. explain "best practices" like remov tutorial proposed sub-page: tutorial create a dev-environment; procedural; geared towards 'baby devs'; hand-hold walkthrough of creating a local sandbox ├── ansible playbook https://islandora.github.io/documentation/installation/playbook/ needs work procedural ├── manual installation structuring menu item - not a page procedural │ ├── introduction https://islandora.github.io/documentation/installation/manual/introduction/ procedural site builder assumes, but does not specify ubuntu (or similar) operating system cg │ ├── preparing a lapp webserver https://islandora.github.io/documentation/installation/manual/preparing_a_webserver/ needs work procedural site builder remove jargon, check specifications. is this locked to php . ? to postgresql? lapp? linux apache postgresql & php? │ ├── installing composer, drush, and drupal https://islandora.github.io/documentation/installation/manual/installing_composer_drush_and_drupal/ procedural site builder │ ├── installing tomcat and cantaloupe https://islandora.github.io/documentation/installation/manual/installing_tomcat_and_cantaloupe/ procedural site builder │ ├── installing fedora, syn, and blazegraph https://islandora.github.io/documentation/installation/manual/installing_fedora_syn_and_blazegraph/ procedural site builder │ ├── installing solr https://islandora.github.io/documentation/installation/manual/installing_solr/ procedural site builder │ ├── installing crayfish https://islandora.github.io/documentation/installation/manual/installing_crayfish/ procedural site builder │ ├── installing karaf and alpaca https://islandora.github.io/documentation/installation/manual/installing_karaf_and_alpaca/ procedural site builder │ └── configuring drupal https://islandora.github.io/documentation/installation/manual/configuring_drupal/ procedural site builder └── installing modules https://islandora.github.io/documentation/technical-documentation/install-enable-drupal-modules/ procedural site builder tutorials structuring menu item - not a page reviewed mc mac ├── create a resource node https://islandora.github.io/documentation/tutorials/create-a-resource-node/ good for now procedural islandora/drupal novice, content/collection manager hand holdy walkthrough of creating a resource node with a media file. note in tutorial to keep it simple and avoid fields with the autocomplete symbol could stand an explanation for avoiding, or a link to more information elsewhere. audited mc kc ├── create a collection https://islandora.github.io/documentation/tutorials/how-to-create-collection/ good for now procedural islandora/drupal novice, content/collection manager walkthrough of creating and populating a collection in ui minor accuracy issue: references to "collection members" tab should be changed to "children tab" as shown in screenshots. this tutorial has "introduction" section, while previous tutorial has opening "overview" section audited mc ├── configure blocks https://islandora.github.io/documentation/tutorials/blocks/ needs work procedural islandora/drupal novice, site builder walkthrough of general block layout and context configurations lack of labeled "overview" or "introduction" section. screenshots and steps in the using context section need to be updated to match current release (as seen on public sandbox). for example, context list page on sandbox shows more context groupings than screenshot; text for "click 'configure' button" step should read "click 'edit' option" i found myself wondering if there are islandora-specific blocks of interest, or if the majority of islandora-centric configurations are in the context options (which seems to be the case). reviewed mc mac ├── create or update a view https://islandora.github.io/documentation/tutorials/create_update_views/ needs work procedural islandora/drupal novice, site builder walkthrough of how to modify existing and create new views screenshot for step .a doesn't match sandbox (different button name). in create new view section, instructions include selecting "create a block." some explanation of relationship with blocks as they are explained in separate page would be helpful. audited mc └── video documentation https://islandora.github.io/documentation/user-documentation/video-docs/ needs work reference islandora/drupal novice, consumers of documentation in video format provide browsable list of video tutorials available, organized by broad categories lacks intro/overview section in toc, even though there is intro text. link to "the playlist" is a link to this page (self-referencing, instead of linking out to youtube playlist). text for "regenerating a derivative" video link has a typo. the intro text mentions that new videos are added to the playlist (and updated here on this page?) regularly, so it would be nice to place the page's last update info at the top rather than in the footer as it is currently. documentation structuring menu item - not a page ├── introduction https://islandora.github.io/documentation/user-documentation/user-intro/ conceptual ab kc ├── intro to linked data https://islandora.github.io/documentation/user-documentation/intro-to-ld-for-islandora- / conceptual audited ma ├── versioning https://islandora.github.io/documentation/user-documentation/versioning/ needs work conceptual islandora/drupal novice, site builder describes how versioning works in islandora and fedora+islandora, including the workflow specifically references islandora .x- . . this should be updated or made evergreen. this page could also be a good place to intoduce/explain semantic versioning? ├── content in islandora structuring menu item - not a page conceptual reviewed mc ma │ ├── resource nodes https://islandora.github.io/documentation/user-documentation/resource-nodes/ conceptual islandora/drupal novice, repository admins provide detailed explanation of the components and configuration options for resource nodes. lacks intro/overview section in toc, even though there is intro text. last update date at top of page doesn't match last update date in footer. islandora property/value table is missing a row for uid. field section could use expansion covering how to view/manage/configure fields, to be more consistent with other sections on page. display modes section needs more clarity in last paragraph about order and overrides. adding links between this page and the create a resource page at https://islandora.github.io/documentation/tutorials/create-a-resource-node/ would be helpful. mc │ ├── media https://islandora.github.io/documentation/user-documentation/media/ conceptual mc │ ├── paged content https://islandora.github.io/documentation/user-documentation/paged-content/ conceptual mr │ └── metadata https://islandora.github.io/documentation/user-documentation/metadata/ good for now conceptual systems admin, users, novice to describe the basic metadata configuration, how it's stored, and ways it can be configured one minor note is that i was a bit confused by the paragraph that began with "not all content types in your drupal site need be islandora "resource nodes"." it took me two reads to grasp what they were talking about. ├── configuring islandora structuring menu item - not a page procedural ab │ ├── modify or create a content type https://islandora.github.io/documentation/user-documentation/content_types/ procedural │ ├── configure search https://islandora.github.io/documentation/user-documentation/searching/ procedural rl │ ├── configure context https://islandora.github.io/documentation/user-documentation/context/ procedural mr mc │ ├── multilingual https://islandora.github.io/documentation/user-documentation/multilingual/ procedural audited ma │ ├── extending islandora https://islandora.github.io/documentation/user-documentation/extending/ good for now reference site builders to describe an dlink to additional resources for adding non-islandora drupal modules. mostly pointing to the cookbook. very brief, just pointing out. could be imporved by adding https://www.drupal.org/project/project_theme as a link when mentioning themes. audited ma │ ├── viewers https://islandora.github.io/documentation/user-documentation/file_viewers/ needs work conceptual site builders explains how viewers work, including a configuration example attempts to be procedural, but the example is not quite written step-by-step enough to follow along and accomplish a goal. audience seems to be site builders, especially based on context of the other pages in this section, but it's written a little technical. ma │ ├── iiif https://islandora.github.io/documentation/user-documentation/iiif/ reference site builders explains what iiif is and how it works in tghe islandora context. crosses the line between procedural and reference, since it both explains, and has some steps for making changes mr │ ├── oai-pmh https://islandora.github.io/documentation/user-documentation/oai/ procedural mr │ ├── rdf generation https://islandora.github.io/documentation/islandora/rdf-mapping/ procedural mr │ ├── drupal bundle configurations https://islandora.github.io/documentation/islandora/drupal-bundle-configurations/ procedural │ └── flysystem https://islandora.github.io/documentation/technical-documentation/flysystem/ procedural └── operating an islandora repository structuring menu item - not a page procedural mc . ├── create and manage user accounts https://islandora.github.io/documentation/user-documentation/users/ procedural . └── usage stats https://islandora.github.io/documentation/user-documentation/usage-stats/ procedural system administrator documentation structuring menu item - not a page reviewed mh ma ├── updating drupal https://islandora.github.io/documentation/technical-documentation/updating_drupal/ needs work procedural system administrator explain steps needed to update the drupal component of the islandora stack check if described process reflects the approach necessary for isle; page says it's missing description on updating islandora features; 'make backup' admonition should be step in the process; 'alternate syntax needed' admonition should be step in the process; highlight more explicitly if islandora pins versions of drupal components or modules missing pages: describe how to update any other component of the stack that requires special instructions audited mh rl ├── uploading large files https://islandora.github.io/documentation/technical-documentation/uploading-large-files/ good for now reference system administrator explain configuration options for use case "i want islandora users to be able to upload large files" consider moving to a new "solution gallery" section, or a new "configuration options" page under the sys admin documentation audited mh rl └── jwt authentication https://islandora.github.io/documentation/technical-documentation/jwt/ good for now reference developer and/or systems administrator lists key storage locations and explains configuration of jwt authentication for secure communication between components consider moving to installation instructions documentation for developers structuring menu item - not a page reviewed mh ma ├── architecture diagram https://islandora.github.io/documentation/technical-documentation/diagram/ needs work reference developer and system administrator overview over islandora stack components and their interaction is "syn" something that neede to feature in the diagram and list of components? check to make sure the diagram and list of components is up to date ├── rest documentation structuring menu item - not a page audited mh │ ├── introduction https://islandora.github.io/documentation/technical-documentation/using-rest-endpoints/ needs work reference developer overview over the restful api, which allows for programmatic interaction with islandora content link to drupal documentation about restful api, if it exists; documentation about authentication should have a separate page audited mh │ ├── get https://islandora.github.io/documentation/technical-documentation/rest-get/ good for now reference developer describe how to retrieve metadata for nodes, media and file entities, as well as binary file urls audited mh │ ├── post/put https://islandora.github.io/documentation/technical-documentation/rest-create/ needs work reference developer describe how to create a node, media/file entities through the rest api unclear if json data in request can contain more than just the required fields (i suppose it can, add an example?); consider creating separate pages for post and put, since the verbs are used for different things (creating node vs. creating file) and are used at slightly different endpoints (drupal vs. islandora); check and document if there are for instance file size limitations for using put requests (link to https://islandora.github.io/documentation/technical-documentation/uploading-large-files/) audited mh │ ├── patch https://islandora.github.io/documentation/technical-documentation/rest-patch/ good for now reference developer describe how to update values on fields of nodes or media using the rest api audited mh │ ├── delete https://islandora.github.io/documentation/technical-documentation/rest-delete/ needs work reference developer describe how to delete nodes, media or files using the rest api verify and document if deleting nodes/media through rest api can leave media/files orphaned, and how to mitigate that audited mh │ └── signposting https://islandora.github.io/documentation/technical-documentation/rest-signposting/ good for now reference developer, system admin describe which http link headers islandora returns in the response to a get request perhaps link to https://signposting.org/ for rationale and sample use cases? if the link headers provided by either drupal or islandora are configurable, document that ├── tests structuring menu item - not a page procedural │ ├── running tests https://islandora.github.io/documentation/technical-documentation/running-automated-tests/ procedural │ └── testing notes https://islandora.github.io/documentation/technical-documentation/testing-notes/ procedural ├── updating drupal-project https://islandora.github.io/documentation/technical-documentation/drupal-project/ procedural audited rl ├── versioning policy https://islandora.github.io/documentation/technical-documentation/versioning/ needs work reference developer describe how we version the various components of islandora? be the "versioning policy" that seems necessary. page could be more explicit about how we release major/minor versions, incorporating more of the semver explanations, such as this page: https://docs.launchdarkly.com/sdk/concepts/versioning actually, i have questions about whether the drupal / modules are still using "core compatibility" as the first number, since drupal is here (the page says no) audited rl ├── adding back ?_format=jsonld https://islandora.github.io/documentation/technical-documentation/adding_format_jsonld/ needs work procedural developer document that we changed behaviour around the . release so that devs can revert if desired this page doesn't make sense as a standalone page. it is random and bizarre. it should be part of the discussion of what milliner is, and maybe what a uri is in the context of islandora and fedora. i don't think we've had this discussion. ├── updating a `deb` and adding it to lyrasis ppa https://islandora.github.io/documentation/technical-documentation/ppa-documentation/ procedural └── alpaca structuring menu item - not a page procedural . ├── alpaca technical stack https://islandora.github.io/documentation/alpaca/alpaca-technical-stack/ procedural . └── alpaca tips https://islandora.github.io/documentation/technical-documentation/alpaca_tips/ procedural migration structuring menu item - not a page ├── migration overview https://islandora.github.io/documentation/technical-documentation/migration-overview/ procedural rl ├── csv https://islandora.github.io/documentation/technical-documentation/migrate-csv/ procedural └── islandora https://islandora.github.io/documentation/technical-documentation/migrate- x/ procedural contributing structuring menu item - not a page audited ma ├── how to contribute https://islandora.github.io/documentation/contributing/contributing/ needs work procedural new contributors explains the avenues and procedures for making contributions to the islandora codebase and documentation this is based on the contributing.md file that is standard in every islandora github repo. because those have to stand alone, it doesn't really read well as part of the larger documentation set, and it could be more verbose in this context, expecially in terms of how ot contribute to documentation. example of another contributing.md: https://github.com/islandora/islandora/blob/ .x/contributing.md audited ma |── resizing a vm https://islandora.github.io/documentation/technical-documentation/resizing_vm/ needs work procedural testers instructions for adjusting the size allocated to a virtual machine so that larger files can be adjusted. these instructions are great, but it's wierd that this is a page all on its own. it should be a section or note in a page about using an islandora vm audited ma ├── checking coding standards https://islandora.github.io/documentation/technical-documentation/checking-coding-standards/ needs work procedural developers describes the commands to run to check coding standards before making a contribution. this should be verified by some one with a dev background to make sure it's all still relevant. and it probably does not need to be its own page. it could be rolled into the description of how to do a pull request that is included in the "how to contribute" page in this same section. ├── contributing workflow https://islandora.github.io/documentation/contributing/contributing-workflow/ procedural ys ├── creating github issues https://islandora.github.io/documentation/contributing/create_issues/ procedural audited ys ├── editing documentation https://islandora.github.io/documentation/contributing/editing-docs/ needs work procedural documentation contributors, developers, committers instuctions for editing the documentation using the online github code editor and by creatign a pull request online. a) explain how markdown is a formatting language and that mkdocs uses it b) refer to "this projects documentation style guide" to exaplain the provenance of the style guide d) mention that you can request a contributor license agreement if you don't have one. e) explain that "starting from the page you want to edit" refers to any of the github.io versions of this content f) mention that there is a way o contribute docs with issues as mentioned here, by creatign an issue ...https://github.com/islandora/documentation/blob/ c de d aa e e a ace d /contributing.md g) specifically mention that docuemtnation can be built by forking then clonng a local copy of the repo and then one can follow a typical pr process audited ys ├── how to build documentation https://islandora.github.io/documentation/technical-documentation/docs-build/ needs work procedural documentation contributors, developers, committers instructions on how to build the documentation from the docuemntation repo using. including how to install the mkdocs python based software needed to build the docs. a) provide macos install syntax reffering to "pip --user" b) veriffy if we need to run git submodule update --init --recursive to build docs. c) consider spelling out the steps from linked traiing video on how to test a doc pull request. (download a zip version of pr branch/commit, mkdocs --clean mkdocs, mkdocs server) d) mention that you can use ctrl-c to quit our of mkdocs on the terminal. audited ys ├── documentation style guide https://islandora.github.io/documentation/contributing/docs_style_guide/ good for now reference documentation contributors, developers, committers list of suggestions for how to create well formatted and well style documentation. in the bullet that mentions that doc submissiosn shoudl use github prs we coudl link to the "editing documentation" page that explains the basics of prs. this page could cover cross page linking syntax for this project. audited ma └── committers https://islandora.github.io/documentation/contributing/committers/ needs work reference everyone? describes the rights and responsibilities of islandora committers, and how new committers are nominated and approved. also lists current and emeritus committers. alan stanley is listed as working for prince edward islandora [sic]. glossary https://islandora.github.io/documentation/user-documentation/glossary/ reference quotes are not sourced from all markets and may be delayed up to minutes. information is provided 'as is' and solely for informational purposes, not for trading purposes or advice.disclaimer       dig sprint april page suggestions instructions sign-up pages (pre nov ) pages (old) pages old     a browser error has occurred. please press ctrl-f to refresh the page and try again. a browser error has occurred. please hold the shift key and click the refresh button to try again. learning (lib)tech learning (lib)tech stories from my life as a technologist ubc ischool career talk series: journey from libtech to tech the ubc ischool reached out to me recently asking me to talk about my path from getting my library degree to ending up working in a tech company. below is the script for my portion of the talk, along with a transcription of the questions i answered. context to provide a bit of context (and &# ; continue reading "ubc ischool career talk series: journey from libtech to&# ;tech" choosing not to go into management (again) often, to move up and get a higher pay, you have to become a manager, but not everyone is suited to become a manager, and sometimes given the preference, it&# ;s not what someone wants to do. thankfully at gitlab, in every engineering team including support, we have two tracks: technical (individual contributor), and management. progression &# ; continue reading "choosing not to go into management&# ;(again)" prioritization in support: tickets, slack, issues, and more i mentioned in my gitlab reflection that prioritization has been quite different working in support compared to other previous work i&# ;ve done. in most of my previous work, i&# ;ve had to take &# ;desk shifts&# ; but those are discreet where you&# ;re focused on providing customer service during that period of time and you can focus on &# ; continue reading "prioritization in support: tickets, slack, issues, and&# ;more" reflection part : my second year at gitlab and on becoming senior again this reflection is a direct continuation of part of my time at gitlab so far. if you haven&# ;t, please read the first part before beginning this one. becoming an engineer ( months) the more time i spent working in support, the more i realized that the job was much more technical than i originally &# ; continue reading "reflection part : my second year at gitlab and on becoming senior&# ;again" reflection part : my first year at gitlab and becoming senior about a year ago, i wrote a reflection on summit and contribute, our all staff events, and later that year, wrote a series of posts on the gitlab values and culture from my own perspective. there is a lot that i mention in the blog post series and i&# ;ll try not to repeat myself (too &# ; continue reading "reflection part : my first year at gitlab and becoming&# ;senior" is blog reading dead? there was a bit more context to the question, but a friend recently asked me: what you do think? is blogging dead? i think blogging the way it used to work is (mostly) dead. back in the day, we had a bunch of blogs and people who subscribe to them via email and rss feeds. &# ; continue reading "is blog reading&# ;dead?" working remotely at home as a remote worker during a pandemic i&# ;m glad that i still have a job, that my life isn&# ;t wholly impacted by the pandemic we&# ;re in, but to say that nothing is different just because i was already a remote worker would be wrong. the effect the pandemic is having on everyone around you has affects your life. it seems obvious to &# ; continue reading "working remotely at home as a remote worker during a&# ;pandemic" code libbc lightning talk notes: day code libbc day lightning talk notes! code club for adults/seniors &# ; dethe elza richmond public library, digital services technician started code clubs, about years ago used to call code and coffee, chain event, got little attendance had code codes for kids, teens, so started one for adults and seniors for people who have done &# ; continue reading "code libbc lightning talk notes: day&# ; " code libbc lightning talk notes: day code libbc day lightning talk notes! scraping index pages and vufind implementation &# ; louise brittain boisvert systems librarian at legislative collection development policy: support legislators and staff, receive or collect publications, many of them digital but also some digitized (mostly pdf, but others) accessible via link in marc record previously, would create an index page &# ; continue reading "code libbc lightning talk notes: day&# ; " presentation: implementing values in practical ways this was presented at code libbc . slides slides on github hi everyone, hope you’re enjoying code libbc so far. while i’m up here, i just want to take a quick moment to thank the organizers past and present. we’re on our th one and still going strong. i hope to continue attending and see this event &# ; continue reading "presentation: implementing values in practical&# ;ways" coding confessions | normalising failure in research software. codingconfessions about read confessions make a confession normalising failure. normalising failure in research software creates an inclusive space for sharing experiences, and generates opportunity to learn. what is coding confessions? simply put: "where somebody admits to mistakes or bad practice in code they've developed." what's the problem? everybody who develops software has at some point written some software badly, quickly, cut corners or simply made a mistake that made it function incorrectly. due to imposter syndrome many people feel like this makes them less worthy developers. often the root cause is time pressure to make something that "just works" (or at least appeared to). these little short cuts often end up becoming core pieces of software upon which research conclusions and publications are based. people don't like to admit to making mistakes, cutting corners or not following best practice, sometimes hiding these problems away. why do this? we want to: change the culture of research so that mistakes can be disclosed without fear. document mistakes and allow the entire community to benefit from the lessons learned. these will be published on our blog. how to submit a confession please only submit a confession about something you did yourself, don't submit confessions about the work of others. send us one paragraph about each of the following: the background to the problem, what were you trying to do? the mistake you made. what steps can be taken to avoid this mistake in the future. you can do this publicly (with atribution) or privately (anonymously). we will then publish them on our blog. see this example blog post. see the submit a confession page for more information. submit a confession to us how to run a confessions workshop at your own event read confessions in our blog. confessions below are the latest confessions from our blog. confession dave april the typo that nearly broke my first paper eirini february confession dave february coding confessions. normalising failure in research software. software sustainability institute this project and website was created as part of the hack day in the collaborations workshop . the software sustainability institute cultivates better, more sustainable, research software to enable world-class research. they help people build better software, and we work with researchers, developers, funders and infrastructure providers to identify key issues and best practice in scientific software. privacy thanks github pages. menu falvey memorial library blog falvey memorial library blog the collection of blogs published by falvey memorial library, villanova university none documentation sprint . . - google sheets javascript isn't enabled in your browser, so this file can't be opened. enable and reload. documentation sprint . .          share sign in the version of the browser you are using is no longer supported. please upgrade to a supported browser.dismiss file edit view insert format data tools form add-ons help accessibility unsaved changes to drive see new changes                 $ %                                 conditional formatting     conditional formatting                                                                                                   sum average count max min learn more                     accessibility               a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad review complete auditor reviewer link status type audience goal problems notes about https://islandora.github.io/documentation/ good for now conceptual stranger explains at a high level what islandora does concepts structuring menu item - not a page reviewed dig ma ├── collections https://islandora.github.io/documentation/concepts/collection/ needs work conceptual newcomer explain the concept of collections in islandora, with reference to bulk management and the interaction of islandora defaults. points to page that does not exist yet (bulk editing). assumes some basic drupal knowledge and knowledge of islandora defaults, too early (because this is one of the first pages in the documentation). collections should probably not be the first page in the documentation tree. 'content types' should be in the glossary. add more links. audited mh ├── access control https://islandora.github.io/documentation/concepts/access-control/ needs work conceptual devops, repository manager explain what mechanism(s) for access control are available and how restrictions affect islandora repo content mixes documentation type and audiences; make this conceptual documentation for repository managers that explains which levels of restriction can be configured, how inheritance works (it doesn't), separate out sysadmin/devops documentation about preventing access to other components of the stack, consider moving overview over contrib modules not part of islandora core/default to a "solution gallery" or cookbook section with recommendations; fix link to documentation page on manging user accounts kc ├── accessibility https://islandora.github.io/documentation/concepts/accessibility/ conceptual ├── component overview https://islandora.github.io/documentation/installation/component_overview/ conceptual stranger give an understanding of what components islandora include and how they work together. this should have a link to the architecture diagram: https://islandora.github.io/documentation/technical-documentation/diagram/ (ma) ab ├── modelling content in islandora vs. https://islandora.github.io/documentation/user-documentation/objects_to_resource_nodes/ conceptual islandora user translate between the "object" and "datastreams" model and the "nodes" and "media" model └── islandora defaults https://islandora.github.io/documentation/reference/islandora_defaults_reference/ conceptual create sensible expectations around configurability and ongoing support installation structuring menu item - not a page proposed page under this menu item: installation overview, describing why we have so many installation methods ├── docker compose (isle-dc) https://islandora.github.io/documentation/installation/docker-compose/ conceptual reference page: what is isle. explain "best practices" like remov tutorial proposed sub-page: tutorial create a dev-environment; procedural; geared towards 'baby devs'; hand-hold walkthrough of creating a local sandbox ├── ansible playbook https://islandora.github.io/documentation/installation/playbook/ needs work procedural ├── manual installation structuring menu item - not a page procedural │ ├── introduction https://islandora.github.io/documentation/installation/manual/introduction/ procedural site builder assumes, but does not specify ubuntu (or similar) operating system cg │ ├── preparing a lapp webserver https://islandora.github.io/documentation/installation/manual/preparing_a_webserver/ needs work procedural site builder remove jargon, check specifications. is this locked to php . ? to postgresql? lapp? linux apache postgresql & php? │ ├── installing composer, drush, and drupal https://islandora.github.io/documentation/installation/manual/installing_composer_drush_and_drupal/ procedural site builder │ ├── installing tomcat and cantaloupe https://islandora.github.io/documentation/installation/manual/installing_tomcat_and_cantaloupe/ procedural site builder │ ├── installing fedora, syn, and blazegraph https://islandora.github.io/documentation/installation/manual/installing_fedora_syn_and_blazegraph/ procedural site builder │ ├── installing solr https://islandora.github.io/documentation/installation/manual/installing_solr/ procedural site builder │ ├── installing crayfish https://islandora.github.io/documentation/installation/manual/installing_crayfish/ procedural site builder │ ├── installing karaf and alpaca https://islandora.github.io/documentation/installation/manual/installing_karaf_and_alpaca/ procedural site builder │ └── configuring drupal https://islandora.github.io/documentation/installation/manual/configuring_drupal/ procedural site builder └── installing modules https://islandora.github.io/documentation/technical-documentation/install-enable-drupal-modules/ procedural site builder tutorials structuring menu item - not a page reviewed mc mac ├── create a resource node https://islandora.github.io/documentation/tutorials/create-a-resource-node/ good for now procedural islandora/drupal novice, content/collection manager hand holdy walkthrough of creating a resource node with a media file. note in tutorial to keep it simple and avoid fields with the autocomplete symbol could stand an explanation for avoiding, or a link to more information elsewhere. audited mc kc ├── create a collection https://islandora.github.io/documentation/tutorials/how-to-create-collection/ good for now procedural islandora/drupal novice, content/collection manager walkthrough of creating and populating a collection in ui minor accuracy issue: references to "collection members" tab should be changed to "children tab" as shown in screenshots. this tutorial has "introduction" section, while previous tutorial has opening "overview" section audited mc ├── configure blocks https://islandora.github.io/documentation/tutorials/blocks/ needs work procedural islandora/drupal novice, site builder walkthrough of general block layout and context configurations lack of labeled "overview" or "introduction" section. screenshots and steps in the using context section need to be updated to match current release (as seen on public sandbox). for example, context list page on sandbox shows more context groupings than screenshot; text for "click 'configure' button" step should read "click 'edit' option" i found myself wondering if there are islandora-specific blocks of interest, or if the majority of islandora-centric configurations are in the context options (which seems to be the case). reviewed mc mac ├── create or update a view https://islandora.github.io/documentation/tutorials/create_update_views/ needs work procedural islandora/drupal novice, site builder walkthrough of how to modify existing and create new views screenshot for step .a doesn't match sandbox (different button name). in create new view section, instructions include selecting "create a block." some explanation of relationship with blocks as they are explained in separate page would be helpful. audited mc └── video documentation https://islandora.github.io/documentation/user-documentation/video-docs/ needs work reference islandora/drupal novice, consumers of documentation in video format provide browsable list of video tutorials available, organized by broad categories lacks intro/overview section in toc, even though there is intro text. link to "the playlist" is a link to this page (self-referencing, instead of linking out to youtube playlist). text for "regenerating a derivative" video link has a typo. the intro text mentions that new videos are added to the playlist (and updated here on this page?) regularly, so it would be nice to place the page's last update info at the top rather than in the footer as it is currently. documentation structuring menu item - not a page ├── introduction https://islandora.github.io/documentation/user-documentation/user-intro/ conceptual ab kc ├── intro to linked data https://islandora.github.io/documentation/user-documentation/intro-to-ld-for-islandora- / conceptual audited ma ├── versioning https://islandora.github.io/documentation/user-documentation/versioning/ needs work conceptual islandora/drupal novice, site builder describes how versioning works in islandora and fedora+islandora, including the workflow specifically references islandora .x- . . this should be updated or made evergreen. this page could also be a good place to intoduce/explain semantic versioning? ├── content in islandora structuring menu item - not a page conceptual reviewed mc ma │ ├── resource nodes https://islandora.github.io/documentation/user-documentation/resource-nodes/ conceptual islandora/drupal novice, repository admins provide detailed explanation of the components and configuration options for resource nodes. lacks intro/overview section in toc, even though there is intro text. last update date at top of page doesn't match last update date in footer. islandora property/value table is missing a row for uid. field section could use expansion covering how to view/manage/configure fields, to be more consistent with other sections on page. display modes section needs more clarity in last paragraph about order and overrides. adding links between this page and the create a resource page at https://islandora.github.io/documentation/tutorials/create-a-resource-node/ would be helpful. mc │ ├── media https://islandora.github.io/documentation/user-documentation/media/ conceptual mc │ ├── paged content https://islandora.github.io/documentation/user-documentation/paged-content/ conceptual mr │ └── metadata https://islandora.github.io/documentation/user-documentation/metadata/ good for now conceptual systems admin, users, novice to describe the basic metadata configuration, how it's stored, and ways it can be configured one minor note is that i was a bit confused by the paragraph that began with "not all content types in your drupal site need be islandora "resource nodes"." it took me two reads to grasp what they were talking about. ├── configuring islandora structuring menu item - not a page procedural ab │ ├── modify or create a content type https://islandora.github.io/documentation/user-documentation/content_types/ procedural │ ├── configure search https://islandora.github.io/documentation/user-documentation/searching/ procedural rl │ ├── configure context https://islandora.github.io/documentation/user-documentation/context/ procedural mr mc │ ├── multilingual https://islandora.github.io/documentation/user-documentation/multilingual/ procedural audited ma │ ├── extending islandora https://islandora.github.io/documentation/user-documentation/extending/ good for now reference site builders to describe an dlink to additional resources for adding non-islandora drupal modules. mostly pointing to the cookbook. very brief, just pointing out. could be imporved by adding https://www.drupal.org/project/project_theme as a link when mentioning themes. audited ma │ ├── viewers https://islandora.github.io/documentation/user-documentation/file_viewers/ needs work conceptual site builders explains how viewers work, including a configuration example attempts to be procedural, but the example is not quite written step-by-step enough to follow along and accomplish a goal. audience seems to be site builders, especially based on context of the other pages in this section, but it's written a little technical. ma │ ├── iiif https://islandora.github.io/documentation/user-documentation/iiif/ reference site builders explains what iiif is and how it works in tghe islandora context. crosses the line between procedural and reference, since it both explains, and has some steps for making changes mr │ ├── oai-pmh https://islandora.github.io/documentation/user-documentation/oai/ procedural mr │ ├── rdf generation https://islandora.github.io/documentation/islandora/rdf-mapping/ procedural mr │ ├── drupal bundle configurations https://islandora.github.io/documentation/islandora/drupal-bundle-configurations/ procedural │ └── flysystem https://islandora.github.io/documentation/technical-documentation/flysystem/ procedural └── operating an islandora repository structuring menu item - not a page procedural mc . ├── create and manage user accounts https://islandora.github.io/documentation/user-documentation/users/ procedural . └── usage stats https://islandora.github.io/documentation/user-documentation/usage-stats/ procedural system administrator documentation structuring menu item - not a page reviewed mh ma ├── updating drupal https://islandora.github.io/documentation/technical-documentation/updating_drupal/ needs work procedural system administrator explain steps needed to update the drupal component of the islandora stack check if described process reflects the approach necessary for isle; page says it's missing description on updating islandora features; 'make backup' admonition should be step in the process; 'alternate syntax needed' admonition should be step in the process; highlight more explicitly if islandora pins versions of drupal components or modules missing pages: describe how to update any other component of the stack that requires special instructions audited mh rl ├── uploading large files https://islandora.github.io/documentation/technical-documentation/uploading-large-files/ good for now reference system administrator explain configuration options for use case "i want islandora users to be able to upload large files" consider moving to a new "solution gallery" section, or a new "configuration options" page under the sys admin documentation audited mh rl └── jwt authentication https://islandora.github.io/documentation/technical-documentation/jwt/ good for now reference developer and/or systems administrator lists key storage locations and explains configuration of jwt authentication for secure communication between components consider moving to installation instructions documentation for developers structuring menu item - not a page reviewed mh ma ├── architecture diagram https://islandora.github.io/documentation/technical-documentation/diagram/ needs work reference developer and system administrator overview over islandora stack components and their interaction is "syn" something that neede to feature in the diagram and list of components? check to make sure the diagram and list of components is up to date ├── rest documentation structuring menu item - not a page audited mh │ ├── introduction https://islandora.github.io/documentation/technical-documentation/using-rest-endpoints/ needs work reference developer overview over the restful api, which allows for programmatic interaction with islandora content link to drupal documentation about restful api, if it exists; documentation about authentication should have a separate page audited mh │ ├── get https://islandora.github.io/documentation/technical-documentation/rest-get/ good for now reference developer describe how to retrieve metadata for nodes, media and file entities, as well as binary file urls audited mh │ ├── post/put https://islandora.github.io/documentation/technical-documentation/rest-create/ needs work reference developer describe how to create a node, media/file entities through the rest api unclear if json data in request can contain more than just the required fields (i suppose it can, add an example?); consider creating separate pages for post and put, since the verbs are used for different things (creating node vs. creating file) and are used at slightly different endpoints (drupal vs. islandora); check and document if there are for instance file size limitations for using put requests (link to https://islandora.github.io/documentation/technical-documentation/uploading-large-files/) audited mh │ ├── patch https://islandora.github.io/documentation/technical-documentation/rest-patch/ good for now reference developer describe how to update values on fields of nodes or media using the rest api audited mh │ ├── delete https://islandora.github.io/documentation/technical-documentation/rest-delete/ needs work reference developer describe how to delete nodes, media or files using the rest api verify and document if deleting nodes/media through rest api can leave media/files orphaned, and how to mitigate that audited mh │ └── signposting https://islandora.github.io/documentation/technical-documentation/rest-signposting/ good for now reference developer, system admin describe which http link headers islandora returns in the response to a get request perhaps link to https://signposting.org/ for rationale and sample use cases? if the link headers provided by either drupal or islandora are configurable, document that ├── tests structuring menu item - not a page procedural │ ├── running tests https://islandora.github.io/documentation/technical-documentation/running-automated-tests/ procedural │ └── testing notes https://islandora.github.io/documentation/technical-documentation/testing-notes/ procedural ├── updating drupal-project https://islandora.github.io/documentation/technical-documentation/drupal-project/ procedural audited rl ├── versioning policy https://islandora.github.io/documentation/technical-documentation/versioning/ needs work reference developer describe how we version the various components of islandora? be the "versioning policy" that seems necessary. page could be more explicit about how we release major/minor versions, incorporating more of the semver explanations, such as this page: https://docs.launchdarkly.com/sdk/concepts/versioning actually, i have questions about whether the drupal / modules are still using "core compatibility" as the first number, since drupal is here (the page says no) audited rl ├── adding back ?_format=jsonld https://islandora.github.io/documentation/technical-documentation/adding_format_jsonld/ needs work procedural developer document that we changed behaviour around the . release so that devs can revert if desired this page doesn't make sense as a standalone page. it is random and bizarre. it should be part of the discussion of what milliner is, and maybe what a uri is in the context of islandora and fedora. i don't think we've had this discussion. ├── updating a `deb` and adding it to lyrasis ppa https://islandora.github.io/documentation/technical-documentation/ppa-documentation/ procedural └── alpaca structuring menu item - not a page procedural . ├── alpaca technical stack https://islandora.github.io/documentation/alpaca/alpaca-technical-stack/ procedural . └── alpaca tips https://islandora.github.io/documentation/technical-documentation/alpaca_tips/ procedural migration structuring menu item - not a page ├── migration overview https://islandora.github.io/documentation/technical-documentation/migration-overview/ procedural rl ├── csv https://islandora.github.io/documentation/technical-documentation/migrate-csv/ procedural └── islandora https://islandora.github.io/documentation/technical-documentation/migrate- x/ procedural contributing structuring menu item - not a page audited ma ├── how to contribute https://islandora.github.io/documentation/contributing/contributing/ needs work procedural new contributors explains the avenues and procedures for making contributions to the islandora codebase and documentation this is based on the contributing.md file that is standard in every islandora github repo. because those have to stand alone, it doesn't really read well as part of the larger documentation set, and it could be more verbose in this context, expecially in terms of how ot contribute to documentation. example of another contributing.md: https://github.com/islandora/islandora/blob/ .x/contributing.md audited ma |── resizing a vm https://islandora.github.io/documentation/technical-documentation/resizing_vm/ needs work procedural testers instructions for adjusting the size allocated to a virtual machine so that larger files can be adjusted. these instructions are great, but it's wierd that this is a page all on its own. it should be a section or note in a page about using an islandora vm audited ma ├── checking coding standards https://islandora.github.io/documentation/technical-documentation/checking-coding-standards/ needs work procedural developers describes the commands to run to check coding standards before making a contribution. this should be verified by some one with a dev background to make sure it's all still relevant. and it probably does not need to be its own page. it could be rolled into the description of how to do a pull request that is included in the "how to contribute" page in this same section. ├── contributing workflow https://islandora.github.io/documentation/contributing/contributing-workflow/ procedural ys ├── creating github issues https://islandora.github.io/documentation/contributing/create_issues/ procedural audited ys ├── editing documentation https://islandora.github.io/documentation/contributing/editing-docs/ needs work procedural documentation contributors, developers, committers instuctions for editing the documentation using the online github code editor and by creatign a pull request online. a) explain how markdown is a formatting language and that mkdocs uses it b) refer to "this projects documentation style guide" to exaplain the provenance of the style guide d) mention that you can request a contributor license agreement if you don't have one. e) explain that "starting from the page you want to edit" refers to any of the github.io versions of this content f) mention that there is a way o contribute docs with issues as mentioned here, by creatign an issue ...https://github.com/islandora/documentation/blob/ c de d aa e e a ace d /contributing.md g) specifically mention that docuemtnation can be built by forking then clonng a local copy of the repo and then one can follow a typical pr process audited ys ├── how to build documentation https://islandora.github.io/documentation/technical-documentation/docs-build/ needs work procedural documentation contributors, developers, committers instructions on how to build the documentation from the docuemntation repo using. including how to install the mkdocs python based software needed to build the docs. a) provide macos install syntax reffering to "pip --user" b) veriffy if we need to run git submodule update --init --recursive to build docs. c) consider spelling out the steps from linked traiing video on how to test a doc pull request. (download a zip version of pr branch/commit, mkdocs --clean mkdocs, mkdocs server) d) mention that you can use ctrl-c to quit our of mkdocs on the terminal. audited ys ├── documentation style guide https://islandora.github.io/documentation/contributing/docs_style_guide/ good for now reference documentation contributors, developers, committers list of suggestions for how to create well formatted and well style documentation. in the bullet that mentions that doc submissiosn shoudl use github prs we coudl link to the "editing documentation" page that explains the basics of prs. this page could cover cross page linking syntax for this project. audited ma └── committers https://islandora.github.io/documentation/contributing/committers/ needs work reference everyone? describes the rights and responsibilities of islandora committers, and how new committers are nominated and approved. also lists current and emeritus committers. alan stanley is listed as working for prince edward islandora [sic]. glossary https://islandora.github.io/documentation/user-documentation/glossary/ reference quotes are not sourced from all markets and may be delayed up to minutes. information is provided 'as is' and solely for informational purposes, not for trading purposes or advice.disclaimer       dig sprint april page suggestions instructions sign-up pages (pre nov ) pages (old) pages old     a browser error has occurred. please press ctrl-f to refresh the page and try again. a browser error has occurred. please hold the shift key and click the refresh button to try again. erin white – library technology, ux, the web, bikes, #rva erin white library technology, ux, the web, bikes, #rva skip to content erinrwhite in libraries, richmond | april , talk: using light from the dumpster fire to illuminate a more just digital world this february i gave a lightning talk for the richmond design group. my question: what if we use the light from the dumpster fire of to see an equitable, just digital world? how can we change our thinking to build the future web we need? presentation is embedded here; text of talk is below. hi everybody, i’m erin. before i get started i want to say thank you to the rva design group organizers. this is hard work and some folks have been doing it for years. thank you to the organizers of this group for doing this work and for inviting me to speak. this talk isn’t about . this talk is about the future. but to understand the future, we gotta look back. the web in travel with me to . twenty-five years ago! i want to transport us back to the mindset of the early web. the fundamental idea of hyperlinks, which we now take for granted, really twisted everyone’s noodles. so much of the promise of the early web was that with broad access to publish in hypertext, the opportunities were limitless. technologists saw the web as an equalizing space where systems of oppression that exist in the real world wouldn’t matter, and that we’d all be equal and free from prejudice. nice idea, right? you don’t need to’ve been around since to know that’s just not the way things have gone down. pictured before you are some of the early web pioneers. notice a pattern here? these early visions of the web, including barlow’s declaration of independence of cyberspace, while inspiring and exciting, were crafted by the same types of folks who wrote the actual declaration of independence: the landed gentry, white men with privilege. their vision for the web echoed the declaration of independence’s authors’ attempts to describe the world they envisioned. and what followed was the inevitable conflict with reality. we all now hold these truths to be self-evident: the systems humans build reflect humans’ biases and prejudices. we continue to struggle to diversify the technology industry. knowledge is interest-driven. inequality exists, online and off. celebrating, rather than diminishing, folks’ intersecting identities is vital to human flourishing. the web we have known profit first: monetization, ads, the funnel, dark patterns can we?: innovation for innovation’s sake solutionism: code will save us visual design: aesthetics over usability lone genius: “hard” skills and rock star coders short term thinking: move fast, break stuff shipping: new features, forsaking infrastructure let’s move forward quickly through the past years or so of the web, of digital design. all of the web we know today has been shaped in some way by intersecting matrices of domination: colonialism, capitalism, white supremacy, patriarchy. (thank you, bell hooks.) the digital worlds where we spend our time – and that we build!! – exist in this way. this is not an indictment of anyone’s individual work, so please don’t take it personally. what i’m talking about here is the digital milieu where we live our lives. the funnel drives everything. folks who work in nonprofits and public entities often tie ourselves in knots to retrofit our use cases in order to use common web tools (google analytics, anyone?) in chasing innovation™ we often overlook important infrastructure work, and devalue work — like web accessibility, truly user-centered design, care work, documentation, customer support and even care for ourselves and our teams — that doesn’t drive the bottom line. we frequently write checks for our future selves to cash, knowing damn well that we’ll keep burying ourselves in technical debt. that’s some tough stuff for us to carry with us every day. the “move fast” mentality has resulted in explosive growth, but at what cost? and in creating urgency where it doesn’t need to exist, focusing on new things rather than repair, the end result is that we’re building a house of cards. and we’re exhausted. to zoom way out, this is another manifestation of late capitalism. emphasis on late. because… happened. what taught us hard times amplify existing inequalities cutting corners mortgages our future infrastructure is essential “colorblind”/color-evasive policy doesn’t cut it inclusive design is vital we have a duty to each other technology is only one piece together, we rise the past year has been awful for pretty much everybody. but what the light from this dumpster fire has illuminated is that things have actually been awful for a lot of people, for a long time. this year has shown us how perilous it is to avoid important infrastructure work and to pursue innovation over access. it’s also shown us that what is sometimes referred to as colorblindness — i use the term color-evasiveness because it is not ableist and it is more accurate — a color-evasive approach that assumes everyone’s needs are the same in fact leaves people out, especially folks who need the most support. we’ve learned that technology is a crucial tool and that it’s just one thing that keeps us connected to each other as humans. finally, we’ve learned that if we work together we can actually make shit happen, despite a world that tells us individual action is meaningless. like biscuits in a pan, when we connect, we rise together. marginalized folks have been saying this shit for years. more of us than ever see these things now. and now we can’t, and shouldn’t, unsee it. the web we can build together current state: – profit first – can we? – solutionism – aesthetics – “hard” skills – rockstar coders – short term thinking – shipping future state: – people first: security, privacy, inclusion – should we? – holistic design – accessibility – soft skills – teams – long term thinking – sustaining so let’s talk about the future. i told you this would be a talk about the future. like many of y’all i have had a very hard time this year thinking about the future at all. it’s hard to make plans. it’s hard to know what the next few weeks, months, years will look like. and who will be there to see it with us. but sometimes, when i can think clearly about something besides just making it through every day, i wonder. what does a people-first digital world look like? who’s been missing this whole time? just because we can do something, does it mean we should? will technology actually solve this problem? are we even defining the problem correctly? what does it mean to design knowing that even “able-bodied” folks are only temporarily so? and that our products need to be used, by humans, in various contexts and emotional states? (there are also false binaries here: aesthetics vs. accessibility; abled and disabled; binaries are dangerous!) how can we nourish our collaborations with each other, with our teams, with our users? and focus on the wisdom of the folks in the room rather than assigning individuals as heroes? how can we build for maintenance and repair? how do we stop writing checks our future selves to cash – with interest? some of this here, i am speaking of as a web user and a web creator. i’ve only ever worked in the public sector. when i talk with folks working in the private sector i always do some amount of translating. at the end of the day, we’re solving many of the same problems. but what can private-sector workers learn from folks who come from a public-sector organization? and, as we think about what we build online, how can we also apply that thinking to our real-life communities? what is our role in shaping the public conversation around the use of technologies? i offer a few ideas here, but don’t want them to limit your thinking. consider the public sector here’s a thread about public service. ⚖️🏛️ 💪🏼💻🇺🇸 — dana chisnell (she / her) (@danachis) february , i don’t have a ton of time left today. i wanted to talk about public service like the very excellent dana chisnell here. like i said, i’ve worked in the public sector, in higher ed, for a long time. it’s my bread and butter. it’s weird, it’s hard, it’s great. there’s a lot of work to be done, and it ain’t happening at civic hackathons or from external contractors. the call needs to come from inside the house. working in the public sector government should be – inclusive of all people – responsive to needs of the people – effective in its duties & purpose — dana chisnell (she / her) (@danachis) february , i want you to consider for a minute how many folks are working in the public sector right now, and how technical expertise — especially in-house expertise — is something that is desperately needed. pictured here are the old website and new website for the city of richmond. i have a whole ‘nother talk about that new richmond website. i foia’d the contracts for this website. there are accessibility errors on the homepage alone. it’s been in development for years and still isn’t in full production. bottom line, good government work matters, and it’s hard to find. important work is put out for the lowest bidder and often external agencies don’t get it right. what would it look like to have that expertise in-house? influencing technology policy we also desperately need lawmakers and citizens who understand technology and ask important questions about ethics and human impact of systems decisions. pictured here are some headlines as well as a contract from the city of richmond. y’all know we spent $ . million on a predictive policing system that will disproportionately harm citizens of color? and that earlier this month, city council voted to allow richmond and vcu pd’s to start sharing their data in that system? the surveillance state abides. technology facilitates. i dare say these technologies are designed to bank on the fact that lawmakers don’t know what they’re looking at. my theory is, in addition to holding deep prejudices, lawmakers are also deeply baffled by technology. the hard questions aren’t being asked, or they’re coming too late, and they’re coming from citizens who have to put themselves in harm’s way to do so. technophobia is another harmful element that’s emerged in the past decades. what would a world look like where technology is not a thing to shrug off as un-understandable, but is instead deftly co-designed to meet our needs, rather than licensed to our city for . million dollars? what if everyone knew that technology is not neutral? closing this is some of the future i can see. i hope that it’s sparked new thoughts for you. let’s envision a future together. what has the light illuminated for you? thank you! april , | comment this car runs: love letter to a honda accord three years ago i sold my honda accord dx. here’s the craigslist ad love letter i wrote to it. honda accord dx – dr, automatic – this car runs. – $ (richmond, va) honda accord dx door cylinders , miles color: “eucalyptus green pearl” aka the color and year that […] in life, richmond | april , podcast interview: names, binaries and trans-affirming systems on legacy code rocks! in february i was honored to be invited to join scott ford on his podcast legacy code rocks!. i’m embedding the audio below. view the full episode transcript — thanks to trans-owned deep south transcription services! i’ve pulled out some of the topics we discussed and heavily edited/rearranged them for clarity. names in systems legal […] in libraries | march , post navigation ← older posts categories categoriesselect category bikes conferences libraries life projects richmond archives archives select month april march may march march february september august january december september august may april march march february contact e-mail me follow @erinrwhite independent publisher empowered by wordpress what i learned today… skip to the content search what i learned today... menu about me publications & presentations library mashups the accidental systems librarian open source software for libraries my presenting/learning calendar blog archives search search for: close search close menu about me publications & presentationsshow sub menu library mashups the accidental systems librarian open source software for libraries my presenting/learning calendar blog archives facebook twitter linkedin categories about me taking a break post author by nicole c. baratta post date may , no comments on taking a break i’m sure those of you who are still reading have noticed that i haven’t been updating this site much in the past few years. i was sharing my links with you all but now delicious has started adding ads to that. i’m going to rethink how i can use this site effectively going forward. for now you can read my regular content on opensource.com at https://opensource.com/users/nengard. share this: email twitter facebook tumblr linkedin reddit pocket pinterest categories link sharing bookmarks for may , post author by nicole c. baratta post date may , no comments on bookmarks for may , today i found the following resources and bookmarked them on delicious. start a fire grow and expand your audience by recommending your content within any link you share digest powered by rss digest share this: email twitter facebook tumblr linkedin reddit pocket pinterest categories link sharing bookmarks for april , post author by nicole c. baratta post date april , no comments on bookmarks for april , today i found the following resources and bookmarked them on delicious. mattermost mattermost is an open source, self-hosted slack-alternative mblock program your app, arduino projects and robots by dragging & dropping fidus writer fidus writer is an online collaborative editor especially made for academics who need to use citations and/or formulas. beek social network for booklovers open ebooks open ebooks is a partnership between digital public library of america, the new york public library, and first book, with content support from digital books distributor baker & taylor. digest powered by rss digest share this: email twitter facebook tumblr linkedin reddit pocket pinterest categories link sharing bookmarks for february , post author by nicole c. baratta post date february , no comments on bookmarks for february , today i found the following resources and bookmarked them on delicious. connfa open source ios & android app for conferences & events paperless scan, index, and archive all of your paper documents foss serve foss serve promotes student learning via participation in humanitarian free and open source software (foss) projects. disk inventory x disk inventory x is a disk usage utility for mac os x . (and later). it shows the sizes of files and folders in a special graphical way called “treemaps”. loomio loomio is the easiest way to make decisions together. loomio empowers organisations and communities to turn discussion into action, wherever people are. democracyos democracyos is an online space for deliberation and voting on political proposals. it is a platform for a more open and participatory government. the software aims to stimulate better arguments and come to better rulings, as peers. digest powered by rss digest share this: email twitter facebook tumblr linkedin reddit pocket pinterest categories link sharing bookmarks for january , post author by nicole c. baratta post date january , no comments on bookmarks for january , today i found the following resources and bookmarked them on delicious. superpowers the open source, extensible, collaborative html d+ d game maker sequel pro sequel pro is a fast, easy-to-use mac database management application for working with mysql databases. digest powered by rss digest share this: email twitter facebook tumblr linkedin reddit pocket pinterest categories link sharing bookmarks for december , post author by nicole c. baratta post date december , no comments on bookmarks for december , today i found the following resources and bookmarked them on delicious. open broadcaster software free, open source software for live streaming and recording digest powered by rss digest share this: email twitter facebook tumblr linkedin reddit pocket pinterest categories link sharing bookmarks for november , post author by nicole c. baratta post date november , no comments on bookmarks for november , today i found the following resources and bookmarked them on delicious. numfocus foundation numfocus promotes and supports the ongoing research and development of open-source computing tools through educational, community, and public channels. digest powered by rss digest share this: email twitter facebook tumblr linkedin reddit pocket pinterest categories link sharing bookmarks for november , post author by nicole c. baratta post date november , no comments on bookmarks for november , today i found the following resources and bookmarked them on delicious. smore smore makes it easy to design beautiful and effective online flyers and newsletters. ninite install and update all your programs at once digest powered by rss digest share this: email twitter facebook tumblr linkedin reddit pocket pinterest categories link sharing bookmarks for november , post author by nicole c. baratta post date november , no comments on bookmarks for november , today i found the following resources and bookmarked them on delicious. vim adventures learning vim while playing a game digest powered by rss digest share this: email twitter facebook tumblr linkedin reddit pocket pinterest categories link sharing bookmarks for november , post author by nicole c. baratta post date november , no comments on bookmarks for november , today i found the following resources and bookmarked them on delicious. star wars: building a galaxy with code digest powered by rss digest share this: email twitter facebook tumblr linkedin reddit pocket pinterest posts navigation ← newer posts … older posts → facebook twitter linkedin search for: tags amazon android ato blogging chrome cil cil cil cil cil code lib facebook feedburner firefox gmail google il il il il il koha kohacon kohacon kohacon libraries mapping nfais njla open source oscon oscon php pinterest rss sla sla special libraries association sxsw twitter valenj webinar windows wordpress zotero learn library mashups learn systems librarianship learn open source my sites library mashups practical open source for libraries the accidental systems librarian © what i learned today… powered by wordpress to the top ↑ up ↑ send to email address your name your email address cancel post was not sent - check your email addresses! email check failed, please try again sorry, your blog cannot share posts by email. beginner's guide to twitter part i: messages, followers and searching | erambler erambler jez cope's blog on becoming a research technologist home about blogroll please note: this older content has been archived and is no longer fully linked into the site. please go to the current home page for up-to-date content. beginner's guide to twitter part i: messages, followers and searching sunday march tagged with howto message social media social networking tutorial tweet twitter web . twitter home page i’ve recently signed up to twitter. it’s not a new thing; it’s been around for a few years and it’s probably safe to say that i’m way behind the curve on this one. for those who haven’t come across it yet, it’s a very, very simple social networking site which allows you to broadcast -character messages. however, in spite of this simplicity, it’s a very powerful tool, and can be quite off-putting for new users. since i’m a bit techie and tend to pick these things up quite quickly, a few friends have suggested that i lay down some words on how to get to grips with twitter. i’ve ended up breaking it into three to make it a bit more digestible: twitter basics: messages, followers and searching; confusing conventions: @s, #s and rts; useful tools to make your twittering life easier. i’ll spread them out by publishing them over a period of three days. so, without further ado, here’s the first part of my guide to making this very cool tool work for you. how does it work? when i said it was simple, i wasn’t kidding. once you’ve signed up on the twitter website, you do one of three things: send and receive messages, follow people (more on what this means in a bit), or search through the archive of old messages. that’s it. let’s have a look at those components in more detail. messages the core of twitter is the status update or tweet; that’s a brief message, broadcast to every other user, taking up no more than characters (letters, digits, punctuation, spaces). by and large, this will be some form of answer to the question “what are you doing?” you can send as many of these as you like, whenever you like. you can even split a longer message across several tweets (manually), but if you need to do this, you might want to question whether another medium might be more appropriate. you can also send direct messages to specific users: these are completely private one-to-one communications. if you’re having a conversation publicly with another user and it’s starting to ramble on, think about switching to direct messages to avoid subjecting everyone else to a conversation that doesn’t concern them. you can only send direct messages to users who are following you: more on what this means next. followers wading through the tweets of every other twitterer on the planet is going to take some time. the answer to this problem is ‘following’. you’ll notice that, to begin with, your home page shows only your own tweets. no, twitter isn’t broken: this page will only show the tweets of people you’re following. this hands control over what you read back to you: you don’t have to follow anyone you don’t want to. i can’t emphasise enough how important this is: don’t follow anyone whose tweets aren’t worth reading. by all means follow someone for a while before you make this decision, and change your mind all you want. just remember that if you’re not interested in updates on userxyz’s cat at -second intervals, no-one says you have to follow them. follow button you can follow someone by visiting their profile page, which will have the form “http://twitter.com/username”. this page lists their most recent tweets, newest first. right at the top, underneath their picture, there’s a button marked “follow”: click this and it’ll change to a message telling you that you’re now following them. to stop following someone, click this message and it’ll reveal a “remove” button for you to press. twitter will send them an email when you start following them, but not when you stop. following info on the left of your home page, there are links entitled “following” and “followers” which take you to a list of people you follow and people who follow you, respectively. on your followers list, you’ll see a tick next to anyone you’re also following, and a follow button next to anyone you’re not. following people who follow you is good for at least three reasons: it allows you to hold a conversation, and to receive direct messages from them; it's a great way to build your network; it's considered polite. that said, my previous advice still stands: you don’t have to follow anyone you don’t want to. so how do you find people to follow? you’ve got a few options here. the best way to get started is to follow people you know in real life: try searching for them. as i’ve already mentioned you can follow people who follow you. you can wade through the global list of tweets and follow people with similar interests (searching will help here: see the next section). you could have a look at the we follow directory to find people. finally, you can explore your network by looking at your followers’ followers and so on. it’s worth reiterating at this point that all your tweets are visible, ultimately, to anyone on the network. if you’re not happy with this, you can restrict access, which means that only your followers can read your tweets. it’ll also mean that you have to give your approval before someone can follow you. this might work for you, but openness has it’s benefits: you’ll find it a lot more people will follow you if you keep your account open. you’ll get a lot more out of twitter if you stay open and simply avoid saying anything that you don’t want the whole world to know. search so, you’ve got to grips with sending and reading tweets, you’ve chosen a few people to follow and started to join in the global conversation that is twitter. you’re already getting a lot out of this great tool. but what about all the tweets you’re missing? perhaps you represent a company and want to know who’s talking about your brand. maybe you’re going to attend a conference and want to connect with other delegates. maybe you just want the answer to a question and want to see if someone’s already mentioned it. for these, and many more, problems, twitter search is the answer. try searching for a brand, a conference or anything else you’re interested in, and you’ll quickly and easily discover what twitterers the world over are saying about it. you might even want to follow some of them. well, that’s it for today. tomorrow i’ll be looking at some of the initially confusing but massively useful conventions that have grown up within twitter: @replies, #hashtags and retweeting. did you find this post useful? is there something i’ve totally missed that you think should really be in there? perhaps you just think i’m great (well, it might happen). i want to bring you really high quality stuff, and the only way i do that is if you (yes, you with the web browser) tell me how i’m doing. please leave a comment below or link to me from your own blog (that’ll appear here as a comment too, with a link back to you: free publicity!). i’ll do my best to respond to feedback, correct inaccuracies in the text and write more about things that interest both me and you. finally, if you find this post useful please tell your friends and colleagues. thanks for stopping by! hi, i’m jez cope and this is my blog, where i talk about technology in research and higher education, including: research data management; e-research; learning; teaching; educational technology. me elsewhere twitter github linkedin diigo zotero google+ erambler by jez cope is licensed under a creative commons attribution-sharealike . international license the open library blog | a web page for every book the open library blog a web page for every book skip to content about « older posts introducing the open library explorer by mek | published: december , try it here! if you like it, share it. bringing years of librarian-knowledge to life by nick norman with drini cami & mek at the library leaders forum (demo), open library unveiled the beta for what it’s calling the library explorer: an immersive interface which powerfully recreates and enhances the experience of navigating a physical library. if the tagline doesn’t grab your attention, wait until you see it in action: drini showcasing library explorer at the library leaders forum get ready to explore in this article, we’ll give you a tour of the open library explorer and teach you how one may take full advantage of its features. you’ll also get a crash course on the + years of library history which led to its innovation and an opportunity to test-drive it for yourself. so let’s get started!   what better way to set the stage than by taking a trip down memory lane to the last time you were able to visit your local public library. as you pass the front desk, a friendly librarian scribbles some numbers on a piece of paper which they hand to you and points you towards a relevant section. with the list of library call numbers in your hand as your compass, you eagerly make your way through waves of towering bookshelves. suddenly, you depart from reality and find yourself navigating through a sea of books, discovering treasures you didn’t even know existed. library photo courtesy of pixy.org/ / before you know it, one book gets stuffed under one arm, two more books go under your other arm, and a few more books get positioned securely between your knees. you’re doing the math to see how close you are to your check-out limit. remember those days? what if you could replicate that same library experience and access it every single day, from the convenience of your web browser? well, thanks to the new open library explorer, you can experience the joys of a physical library right in your web browser, as well as leverage superpowers which enable you to explore in ways which may have previously been impossible. before we dive into the bells-and-whistles of the library explorer, it’s worth learning how and why such innovations came to be. who needs library explorer? this year we’ve seen systems stressed to their max due to the covid- pandemic. with libraries and schools closing their doors globally and stay-at-home orders hampering our access, there has been a paradigm shift in the needs of researchers, educators, students, and families to access fundamental resources online. getting this information online is a challenge in and of itself. making it easy to discover and use materials online is another entirely. how does one faithfully compress the entire experience of a reliable, unbiased, expansive public library and its helpful, friendly staff into a ” computer screen? some sites, like netflix or youtube, solve this problem with recommendation engines that populate information based on what people have previously seen or searched. consequently, readers may unknowingly find themselves caught in a sort of “algorithmic bubble.” an algorithmic bubble (or “filter bubble”) is a state of intellectual or informational isolation that’s perpetuated by personalized content. algorithmic bubbles can make it difficult for users to access information beyond their own opinions—effectively isolating them in their own cultural or ideological silos.  drini cami, the creator of library explorer, says that users’ caught inside these algorithmic bubbles “won’t be exposed to information that is completely foreign to [them]. there is no way to systematically and feasibly explore.” hence the reasoning behind the library explorer’s intelligence comes out of a need to discover information without the constraints of algorithmic bubbles. as readers are exposed to more information, the question becomes, how can readers fully explore swaths of new information and still enjoy the experience? let’s take a look at how the library explorer tackles that half of the problem. humanity’s knowledge brought to life earlier this year, open library added the ability to search materials by both dewey decimal classification and library of congress classification. these systems contain embedded within them over years of librarian experience, and provide a systematized approach to sort through the entirety of humanity’s knowledge embedded in books.  it is important to note, the systematization of knowledge alone does not necessarily make it easily discoverable. this is what makes the library explorer so special. its digital interface opens the door for readers to seamlessly navigate centuries of books anywhere online. thanks to innovations such as the library explorer, readers can explore more books and access more knowledge with a better experience. a tour of library explorer’s features if you’re pulling up a chair for the first time, the library explorer presents you with tall, clickable bookshelves situated across your screen. each shelf has its own identity that can morph into new classes of books and subject categories with a single click. and that’s only the beginning of what it offers. in addition to those smart filters, the library explorer wants you to steer the ship… not the other way around. in other words, you can personalize single rows of books, expand entire shelves, or construct an entire library-experience that evolves around your exact interests. you can custom tailor your own personal library from the comfort of your device, wherever you may be. quick question: as a kid, did you ever layout your newly checked-out library books on your bed to admire them? well, the creators behind the library explorer found a way to mimic that same experience. if you so choose, you can zoom out of the library explorer interface to get a complete view of the library you’ve constructed. let’s explore one more set of cool features the library explorer offers by clicking on the “filter” icon at the bottom of the page. by selecting “juvenile,” you can instantly transform your entire library into a children’s library, but keep all the useful organization and structure provided by the bookshelves. it’s as if your own personal librarian ran in at lightning speed and removed every book from each shelf that didn’t meet your criteria. or you may type in “subject:biography” and suddenly your entire library shows you a tailored collection of just biographies on every subject. the sky is your limit. if you click on the settings tab, you’re given several options to customize the look and feel of your personal library explorer. you can switch between using library of congress or dewey decimal classification to organize your shelves. you can also choose from a variety of delightful options to see your books in d. each book has the correct thickness determined by its actual number of pages. to see your favorite book in d, click the settings icon at the bottom of the screen and then press the d button. library explorer’s d view maybe you’ve experienced a time where you had limited space in your book bag. perhaps because of that, you chose to wait on checking out heavier books. or, maybe you judged a book’s strength of knowledge based on its thickness. if that’s you, guess what? the open library explorer lets you do that.  it gets personal… the primary goal of the library explorer was to create an experimental interface that ‘opens the door’ for readers to locate new books and engage with their favorite books. the library explorer is one of many steps that both the internet archive and the open library have made towards making knowledge easy to discover. as you know, such innovation couldn’t be possible without people who believe in the necessity of reading. here is a list of the names of those who contributed to the creation of the library explorer: drini cami, open library developer and library explorer creator mek karpeles, open library program lead jim shelton, ux designer, internet archive ziyad basheer, product designer tinnei pang, illustrator and product designer james hill-khurana, product designer nick norman, open library storyteller & volunteer communications lead  well, this is the moment you’ve been waiting for. go here and give the library explorer a beta test-run. also, follow @openlibrary on twitter to learn about other features as soon as they’re released. but before you go… in the comments below, tell us your favorite library experience. we’d love to hear! posted in uncategorized | comments closed importing your goodreads & accessing them with open library’s apis by mek | published: december , by mek today joe alcorn, founder of readng, published an article (https://joealcorn.co.uk/blog/ /goodreads-retiring-api) sharing news with readers that amazon’s goodreads service is in the process of retiring their developer apis, with an effective start date of last tuesday, december th, . a screenshot taken from joe alcorn’s post the topic stirred discussion among developers and book lovers alike, making the front-page of the popular hacker news website. hacker news at - - : pm pacific. the importance of apis for those who are new to the term, an api is a method of accessing data in a way which is designed for computers to consume rather than people. apis often allow computers to subscribe to (i.e. listen for) events and then take actions. for example, let’s say you wanted to tweet every time your favorite author published a new book. one could sit on goodreads and refresh the website every fifteen minutes. or, one might write a twitter bot which automatically connects to goodreads and checks real-time data using its api. in fact, the reason why twitter bots work, is that they use twitter’s api, a mechanism which lets specially designed computer programs submit tweets to the platform. as one of the more popular book services online today, tens of thousands of readers and organizations rely on amazon’s goodreads apis to lookup information about books and to power their book-related applications across the web. some authors rely on the data to showcase their works on their personal homepages, online book stores to promote their inventory, innovative new services like thestorygraph are using this data to help readers discover new insights, and even librarians and scholastic websites rely on book data apis to make sure their catalog information is as up to date and accurate as possible for their patrons. for years, the open library team has been enthusiastic to share the book space with friends like goodreads who have historically shown great commitment by enabling patrons to control (download and export) their own data and enabling developers to create flourishing ecosystems which promote books and readership through their apis. when it comes to serving an audience of book lovers, there is no “one size fits all” and we’re glad so many different platforms and apis exist to provide experiences which meet the needs of different communities. and we’d like to do our part to keep the landscape flourishing. “the sad thing is it [retiring their apis] really only hurts the hobbyist projects and goodreads users themselves.” — joe alcorn picture of aaron swartz by noah berger/landov from thedailybeast at open library, our top priority is pursuing aaron swartz‘s original mission: to serve as an open book catalog for the public (one page for every book ever published) and ensure our community always has free, open data to unlock a world of possibilities. a world which believes in the power of reading to preserve our cultural heritage and empower education and understanding. we sincerely hope that amazon will decide it’s in goodreads’ best interests to re-instate their apis. but either way, open library is committed to helping readers, developers, and all book lovers have autonomy over their data and direct access to the data they rely on. one reason patrons appreciate open library is that it aligns with their values imports & exports in august , one of our google summer of code contributors tabish shaikh helped us implement an export option for open library reading logs to help everyone retain full control of their book data. we also created a goodreads import feature to help patrons who may want an easy way to check which goodreads titles may be available to borrow from the internet archive’s controlled digital lending program via openlibrary.org and to help patrons organize all their books in one place. we didn’t make a fuss about this feature at the time, because we knew patrons have a lot of options. but things can change quickly and we want patrons to be able to make that decision for themselves. for those who may not have known, amazon’s goodreads website provides an option for downloading/exporting a list of books from one’s bookshelves. you may find instructions on this goodreads export process here. open library’s goodreads importer enables patrons to take this exported dump of their goodreads bookshelves and automatically add matching titles to their open library reading logs. the goodreads import feature from https://openlibrary.org/account/import known issues. currently, open library’s goodreads importer only works for (a) titles that are in the open library catalog and (b) which are new enough to have isbns. our staff and community are committed to continuing to improve our catalog to include more titles (we added more than m titles this year) and we plan to improve our importer to support other id types like oclc and loc. apis & data developers and book overs who have been relying on amazon’s goodreads apis are not out of luck. there are several wonderful services, many of them open-source, including open library, which offer free apis: wikidata.org (by the same group who brought us wikipedia) is a treasure trove of metadata on authors and books. open library gratefully leverages this powerful resource to enrich our pages. inventaire.io is a wonderful service which uses wikidata and openlibrary data (api: api.inventaire.io) bookbrainz.org (by the group who runs musicbrainz) is a up-and-coming catalog of books worldcat by oclc offers various metadata apis did we miss any? please let us know! we’d love to work together, build stronger integrations with, and support other book-loving services. open library’s apis. and of course, open library has a free, open, book api which spans nearly million books. bulk data. if you need access to all our data, open library releases a free monthly bulk data dump of authors, books, and more. spoiler: everything on open library is an api! one of my favorite parts of open library is that practically every page is an api. all that is required is adding “.json” to the end. here are some examples: search https://openlibrary.org/search?q=lord+of+the+rings is our search page for humans… https://openlibrary.org/search.json?q=lord+of+the+rings is our search api! books https://openlibrary.org/books/ol m/harry_potter_and_the_methods_of_rationality is the human page for harry potter and the methods of rationality… https://openlibrary.org/books/ol m.json is its api! authors https://openlibrary.org/authors/ol a/rik_roots is a human readable author page… https://openlibrary.org/authors/ol a.json and here is the api! did we mention: full-text search over m books? major hat tip to the internet archive’s giovanni damiola for this one: folks may also appreciate the ability to full-text search across m of the internet archive’s books (https://blog.openlibrary.org/ / / /search-full-text-within- m-books) on open library: you can try it directly here: http://openlibrary.org/search/inside?q=thanks% for% all% the% fish as per usual, nearly all open library urls are themselves apis, e.g.: http://openlibrary.org/search/inside.json?q=thanks% for% all% the% fish get involved questions? open library is an free, open-source, nonprofit project run by the internet archive. we do our development transparently in public (here’s our code) and our community spanning more than volunteers meets every week, tuesday @ : am pacific. please contact us to join our call and participate in the process. bugs? if something isn’t working as expected, please let us know by opening an issue or joining our weekly community calls. want to share thanks? please follow up on twitter: https://twitter.com/openlibrary and let us know how you’re using our apis! thank you a special thank you to our lead developers drini cami, chris clauss, and one of our lead volunteer engineers, aaron, for spending their weekend helping fix a python bug which was temporarily preventing goodreads imports from succeeding. a decentralized future the internet archive has a history cultivating and supporting the decentralized web. we operate a decentralized version of archive.org and host regular meetups and summits to galvanize the distributed web community. in the future, we can imagine a world where no single website controls all of your data, but rather patrons can participate in a decentralized, distributed network. you may be interested to try bookwyrm, an open-source decentralized project by mouse, former engineer on the internet archive’s archive-it team. posted in uncategorized | comments closed on bookstores, libraries & archives in the digital age by brewster kahle | published: october , the following was a guest post by brewster kahle on against the grain (atg) – linking publishers, vendors, & librarians on bookstores, libraries & archives in the digital age-an atg guest post see the original article here on atg’s website by: brewster kahle, founder & digital librarian, internet archive​​​​​​​ ​​​back in , i was honored to give a keynote at the meeting of the society of american archivists, when the president of the society presented me with a framed blown-up letter “s.”  this was an inside joke about the internet archive being named in the singular, archive, rather than the plural archives. of course, he was right, as i should have known all along. the internet archive had long since grown out of being an “archive of the internet”—a singular collection, say of web pages—to being “archives on the internet,” plural.  my evolving understanding of these different names might help focus a discussion that has become blurry in our digital times: the difference between the roles of publishers, bookstores, libraries, archives, and museums. these organizations and institutions have evolved with different success criteria, not just because of the shifting physical manifestation of knowledge over time, but because of the different roles each group plays in a functioning society. for the moment, let’s take the concepts of library and archive. the traditional definition of a library is that it is made up of published materials, while an archive is made up of unpublished materials. archives play an important function that must be maintained—we give frightfully little attention to collections of unpublished works in the digital age. think of all the drafts of books that have disappeared once we started to write with word processors and kept the files on fragile computer floppies and disks. think of all the videotapes of lectures that are thrown out or were never recorded in the first place.  bookstores: the thrill of the hunt let’s try another approach to understanding distinctions between bookstores, libraries and archives. when i was in my ’s living in boston—before amazon.com and before the world wide web (but during the early internet)—new and used bookstores were everywhere. i thought of them as catering to the specialized interests of their customers: small, selective, and only offering books that might sell and be taken away, with enough profit margin to keep the store in business. i loved them. i especially liked the used bookstore owners—they could peer into my soul (and into my wallet!) to find the right book for me. the most enjoyable aspect of the bookstore was the hunt—i arrived with a tiny sheet of paper in my wallet with a list of the books i wanted, would bring it out and ask the used bookstore owners if i might go home with a bargain. i rarely had the money to buy new books for myself, but i would give new books as gifts. while i knew it was okay to stay for awhile in the bookstore just reading, i always knew the game. libraries: offering conversations not answers the libraries that i used in boston—mit libraries, harvard libraries, the boston public library—were very different. i knew of the private boston athenæum but i was not a member, so i could not enter. libraries for me seemed infinite, but still tailored to individual interests. they had what was needed for you to explore and if they did not have it, the reference librarian would proudly proclaim: “we can get it for you!” i loved interlibrary loans—not so much in practice, because it was slow, but because they gave you a glimpse of a network of institutions sharing what they treasured with anyone curious enough to want to know more. it was a dream straight out of borges’ imagination (if you have not read borges’ short stories, they are not to be missed, and they are short. i recommend you write them on the little slip of paper you keep in your wallet.) i couldn’t afford to own many of the books i wanted, so it turned off that acquisitive impulse in me. but the libraries allowed me to read anything, old and new. i found i consumed library books very differently. i rarely even brought a book from the shelf to a table; i would stand, browse, read, learn and search in the aisles. dipping in here and there. the card catalog got me to the right section and from there i learned as i explored.  libraries were there to spark my own ideas. the library did not set out to tell a story as a museum would. it was for me to find stories, to create connections, have my own ideas by putting things together. i would come to the library with a question and end up with ideas.  rarely were these facts or statistics—but rather new points of view. old books, historical newspapers, even the collection of reference books all illustrated points of view that were important to the times and subject matter. i was able to learn from others who may have been far away or long deceased. libraries presented me with a conversation, not an answer. good libraries cause conversations in your head with many writers. these writers, those librarians, challenged me to be different, to be better.  staying for hours in a library was not an annoyance for the librarians—it was the point. yes, you could check books out of the library, and i would, but mostly i did my work in the library—a few pages here, a few pages there—a stack of books in a carrel with index cards tucked into them and with lots of handwritten notes (uh, no laptops yet). but libraries were still specialized. to learn about draft resisters during the vietnam war, i needed access to a law library. mit did not have a law collection and this was before lexis/nexis and westlaw. i needed to get to the volumes of case law of the united states.  harvard, up the road, had one of the great law libraries, but as an mit student, i could not get in. my mit professor lent me his id that fortunately did not include a photo, so i could sneak in with that. i spent hours in the basement of harvard’s law library reading about the cases of conscientious objectors and others.  but why was this library of law books not available to everyone? it stung me. it did not seem right.  a few years later i would apply to library school at simmons college to figure out how to build a digital library system that would be closer to the carved words over the boston public library’s door in copley square:  “free to all.”   archives: a wonderful place for singular obsessions when i quizzed the archivist at mit, she explained what she did and how the mit archives worked. i loved the idea, but did not spend any time there—it was not organized for the busy undergraduate. the mit library was organized for easy access; the mit archives included complete collections of papers, notes, ephemera from others, often professors. it struck me that the archives were collections of collections. each collection faithfully preserved and annotated.  i think of them as having advertisements on them, beckoning the researcher who wants to dive into the materials in the archive and the mindset of the collector. so in this formulation, an archive is a collection, archives are collections of collections.  archivists are presented with collections, usually donations, but sometimes there is some money involved to preserve and catalog another’s life work. personally, i appreciate almost any evidence of obsession—it can drive toward singular accomplishments. archives often reveal such singular obsessions. but not all collections are archived, as it is an expensive process. the cost of archiving collections is changing, especially with digital materials, as is cataloging and searching those collections. but it is still expensive. when the internet archive takes on a physical collection, say of records, or old repair manuals, or materials from an art group, we have to weigh the costs and the potential benefits to researchers in the future.  archives take the long view. one hundred years from now is not an endpoint, it may be the first time a collection really comes back to light. digital libraries: a memex dream, a global brain so when i helped start the internet archive, we wanted to build a digital library—a “complete enough” collection, and “organized enough” that everything would be there and findable. a universal library. a library of alexandria for the digital age. fulfilling the memex dream of vanevar bush (do read “as we may think“), of ted nelson‘s xanadu, of tim berners-lee‘s world wide web, of danny hillis‘ thinking machine, raj reddy’s universal access to all knowledge, and peter russell’s global brain. could we be smarter by having people, the library, networks, and computers all work together?  that is the dream i signed on to.  i dreamed of starting with a collection—an archive, an internet archive. this grew to be  a collection of collections: archives. then a critical mass of knowledge complete enough to inform citizens worldwide: a digital library. a library accessible by anyone connected to the internet, “free to all.” about the author: brewster kahle, founder & digital librarian, internet archive brewster kahle a passionate advocate for public internet access and a successful entrepreneur, brewster kahle has spent his career intent on a singular focus: providing universal access to all knowledge. he is the founder and digital librarian of the internet archive, one of the largest digital libraries in the world, which serves more than a million patrons each day. creator of the wayback machine and lending millions of digitized books, the internet archive works with more than library and university partners to create a free digital library, accessible to all. soon after graduating from the massachusetts institute of technology where he studied artificial intelligence, kahle helped found the company thinking machines, a parallel supercomputer maker. he is an internet pioneer, creating the internet’s first publishing system called wide area information server (wais). in , kahle co-founded alexa internet, with technology that helps catalog the web, selling it to amazon.com in .  elected to the internet hall of fame, kahle is also a fellow of the american academy of arts and sciences, a member of the national academy of engineering, and holds honorary library doctorates from simmons college and university of alberta. posted in discussion, librarianship, uncategorized | comments closed amplifying the voices behind books by mek | published: september , exploring how open library uses author data to help readers move from imagination to impact by nick norman, edited by mek & drini image source: pexels / pixabay from popsugar according to rené descartes, a creative mathematician, “the reading of all good books is like a conversation with the finest [people] of past centuries.” if that’s true, then who are some of the people you’re talking to? if you’re not sure how to answer that question, you’ll definitely appreciate the ‘author stats’ feature  developed  by open library. a deep dive into author stats author stats give readers clear insights about their favorite authors that go much deeper than the front cover: such as birthplace, gender, works by time, ethnicity, and country of citizenship. these bits and pieces of knowledge about authors can empower readers in some dynamic ways. but how exactly? to answer that question, consider a reader who’s passionate about the topic of cultural diversity. however, after the reader examines their personalized author stats, they realize that their reading history lacks diversity. this doesn’t mean the reader isn’t passionate about cultural diversity; rather, author stats empowers the reader to pinpoint specific stats that can be diversified. take a moment … or a day, and think about all the books you’ve read — just in the last year or as far back as you can. what if you could align the pages of each of those books with something meaningful … something that matters? what if each time you cracked open a book, the voices inside could point you to places filled with hope and opportunity? according to drini cami — open library’s lead developer behind author stats ,  “these stats let readers determine where the voices they read are coming from.” drini continues saying, “a book can be both like a conversation as well as a journey.” he also says, “statistics related to the authors might help provide readers with feedback as to where the voices they are listening to are coming from, and hopefully encourage the reading of books from a wider variety of perspectives.” take a moment to let that sink in. data with the power to change while open library’s author stats can show author-related demographics, those same stats can do a lot more than that. drini cami went on to say that, “author stats can help readers intelligently alter their  behavior (if they wish to).” a profound statement that mark twain — one of the best writers in american history — might even shout from the rooftop. broad, wholesome, charitable views of [people] … cannot be acquired by vegetating in one little corner of the earth all one’s lifetime. — mark twain in the eyes of drini cami and mark twain, books are like miniature time machines that have the power to launch readers into new spaces while changing their behaviors at the same time. for it is only when a reader steps out of their corner of the earth that they can step forward towards becoming a better person — for the entire world. connecting two worlds of data open library has gone far beyond the extra mile to provide data about author demographics that some readers may not realize. it started with open library’s commitment to providing its readers with what drini cami describes as “clean, organized, structured, queryable data.” simply put, readers can trust that open library’s data can be used to provide its audiences with maximum value. which begs the question, where is all that ‘value’ coming from? drini cami calls it “linked data”. in not so complex terms, you may think of linked data as being two or more storage sheds packed with data. when these storage sheds are connected, well… that’s when the magic happens. for open library, that magic starts at the link between wikidata and open library knowledge bases. wikidata, a non-profit community-powered project run by wikimedia, the same team which brought us wikipedia, is a “free and open knowledge base that can be read and edited by both humans and machines”. it’s like wikipedia except for storing bite-sized encyclopedic data and facts instead of articles. if you look closely, you may even find some of wikidata’s data being leveraged within wikipedia articles. wikipedia’s summary info box source data in wikidata wikidata is where open library gets its author demographic data from. this is possible because the entries on wikidata often include links to source material such as books, authors, learning materials, e-journals, and even to other knowledge bases like open library’s. because of these links, open library is able to share its data with wikidata and often times get back detailed information and structured data in return. such as author demographics. wrangling in the data linking-up services like wikidata and open library doesn’t happen automatically. it requires the hard work of “metadata wranglers”. that’s where charles horn comes in, the lead data engineer at open library — without his work, author stats would not be possible. charles horn works closely with drini cami and also the team at wikidata to connect book and author resources on open library with the data kept inside wikidata. by writing clever bots and scripts, charles and drini are able to make tens of thousands of connections at scale. to put it simply, as both open library and wikidata grow, their resources and data will become better connected and more accurate.  thanks to the help of “metadata wranglers”, open library users will always have the smartest results — right at their fingertips.  it’s in a book … once upon a time, ten-time grammy award winner chaka kahn greeted television viewers with her bright voice on the once-popular book reading program, reading rainbow. in her words, she sang … “friends to know, and ways to grow, a reading rainbow. i can be anything. take a look, it’s in a book …” thanks to open library’s author stats, not only do readers have the power to “take a look” into books, they can see further, and truly change what they see. try browsing your author stats and consider following open library on twitter. the “my reading stats” option may be found under the “my books” drop down menu within the main site’s top navigation. what did you learn about your favorite authors? please share in the comments below. posted in community, cultural resources, data | comments closed giacomo cignoni: my internship at the internet archive by drini cami | published: august , this summer, open library and the internet archive took part in google summer of code (gsoc), a google initiative to help students gain coding experience by contributing to open source projects. i was lucky enough to mentor giacomo while he worked on improving our bookreader experience and infrastructure. we have invited giacomo to write a blog post to share some of the wonderful work he has done and his learnings. it was a pleasure working with you giacomo, and we all wish you the best of luck with the rest of your studies! – drini hi, i am giacomo cignoni, a nd year computer science student from italy. i submitted my google summer of code (gsoc) project to work with the internet archive and i was selected for it. in this blogpost, i want to tell you about my experience and my accomplishments working this summer on bookreader, internet archive’s open source book reading web application. the bookreader features i enjoyed the most working on are page filters (which includes “dark mode”) and the text selection layer for certain public domain books. they were both challenging, but mostly had a great impact on the user experience of bookreader. the first allows text to be selected and copied directly from the page images (currently in internal testing), and the second permits turning white-background black-text pages into black-background-white-text ones. short summary of implemented features: end-to-end testing (search, autoplay, right-to-left books) generic book from internet archive demo mobile bookreader table of contents checkbox for filters on book pages (including dark mode) text selection layer plugin for public domain books bug fixes for page flipping using high resolution book images bug fix first approach to gsoc experience once i received the news that i had been selected for gsoc with internet archive for my bookreader project, i was really excited, as it was the beginning of a new experience for me. for the same reason, i will not hide that i was a little bit nervous because it was my first internship-like experience. fortunately, even from the start, my mentor drini and also mek were supportive and also ready to offer help. moreover, the fact that i was already familiar with bookreader was helpful, as i had already used it (and even modified it a little bit) for a personal project. for most of the month of may, since the th, the day of the gsoc selection, i mainly focused on getting to know the other members of the ux team at internet archive, whom i would be working with for the rest of the summer, and also define a more precise roadmap of my future work with my mentor, as my proposed project was open to any improvements for bookreader. end to end testing the first tasks i worked on, as stated in the project, were about end-to-end testing for bookreader. i learned about the testcafe tool that was to be used, and my first real task was to remove and explore some old qunit tests (# ). then i started to make end-to-end tests for the search feature in bookreader, both for desktop (# ) and mobile (# ). lastly, i fixed the existent autoplay end-to-end test (# ) that was causing problems and i also had prepared end-to-end tests for right-to-left books (# ), but it wasn’t merged immediately because it needed a feature that i would have implemented later; a system to choose different books from the ia servers to be displayed specifying the book id in the url. this work on testing (which lasted until the ~ th of june) was really helpful at the beginning as it allowed me to gain more confidence with the codebase without trying immediately harder tasks and also to gain more confidence with javascript es . the frequent meetings with my mentor and other members of the team made me really feel part of the workplace. working on the source code the table of contents panel in bookreader mobile my first experience working on core bookreader source code was during the internet archive hackathon on may the th when, with the help of my mentor, i created the first draft for the table of content panel for mobile bookreader. i would then resume to work on this feature in july, refining it until it was released (# ). i then worked on a checkbox to apply different filters to the book page images, still on mobile bookreader (# ), which includes a sort of “dark mode”. this feature was probably the one i enjoyed the most working on, as it was challenging but not too difficult, it included some planning and was not purely technical and received great appreciation from users. page filters for bookreader mobile let you read in a “dark mode” https://twitter.com/openlibrary/status/ then i worked on the generic demo feature; a particular demo for bookreader which allows you to choose a book  from the internet archive servers to be displayed, by simply adding the book id in the url as a parameter (# ). this allowed the right to left e e test to be merged and proved to be useful for manually testing the text selection plugin. in this period i also fixed two page flipping issues: one more critical (when flipping pages in quick succession the pages started turning back and forth randomly) (# ), and the other one less urgent, but it was an issue a user specifically pointed out (in an old bookreader demo it was impossible to turn pages at all) (# ). another issue i solved was bookreader not correctly displaying high resolution images on high resolution displays (# ). open source project experience one aspect i really enjoyed of my gsoc is the all-around experience of working on an open source project. this includes leaving more approachable tasks for the occasional member of the community to take on and helping them out. also, i found it interesting working with other members of the team aside from my mentor, both for more technical reasons and for help in ui designing and feedback about the user experience: i always liked having more points of view about my work. moreover, direct user feedback from the users, which showed appreciation for the new implemented features (such as bookreader “dark mode”), was very motivating and pushed me to do better in the following tasks. text selection layer the normally invisible text layer shown red here for debugging the biggest feature of my gsoc was implementing the ability to select text directly on the page image from bookreader for public domain books, in order to copy and paste it elsewhere (# ). this was made possible because internet archive books have information about each word and its placement in the page, which is collected by doing ocr. to implement this feature we decided to use an invisible text layer placed on top of the page image, with words being correctly positioned and scaled. this made it possible to use the browser’s text selection system instead of creating a new one. the text layer on top of the page was implemented using an svg element, with subelements for each paragraph and word in the page. the use of the svg instead of normal html text elements made it a lot easier to overcome most of the problems we expected to find regarding the correct placement and scaling of words in the layer. i started working sporadically on this feature since the start of july and this led to having a workable demo by the first day of august. the rest of the month of august was spent refining this feature to make it production-ready. this included refining word placement in the layer, adding unit tests, adding support for more browsers, refactoring some functions, making the experience more fluid, making the selected text to be accurate for newlines and spaces on copy. the most challenging part was probably to integrate well the text selection actions in the two page view of bookreader, without disrupting the click-to-flip-page and other functionalities related to mouse-click events. this feature is currently in internal testing, and scheduled for release in the next few weeks. the text selection experience conclusions overall, i was extremely satisfied with my gsoc at the internet archive. it was a great opportunity to learn new things for me. i got much more fluent in javascript and css, thanks to both my mentor and using these languages in practice while coding. i learnt a lot about working on an open source project, but a part that i probably found really interesting was attending and participating in the decision making processes, even about projects i was not involved in. it was also interesting for me to apply concepts i had studied on a more theoretical level at university in a real workplace environment. to sum things up, the ability to work on something i liked that had an impact on users and the ability to learn useful things for my personal development really made this experience worthwhile for me. i would % recommend doing a gsoc at the internet archive! posted in bookreader, community, google summer of code (gsoc), open source | comments closed open library is an initiative of the internet archive, a (c)( ) non-profit, building a digital library of internet sites and other cultural artifacts in digital form. other projects include the wayback machine, archive.org and archive-it.org. your use of the open library is subject to the internet archive's terms of use. « older posts search recent posts introducing the open library explorer importing your goodreads & accessing them with open library’s apis on bookstores, libraries & archives in the digital age amplifying the voices behind books giacomo cignoni: my internship at the internet archive archives archives select month december october september august july may november october january october august july june may march december october june may february january november february january december november october august july june may april march april january august december november october july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november theme customized from thematic theme framework. collaborations workshop : talks & panel session erambler home about series tags talks rdm resources collaborations workshop : talks & panel session date: - - series: collaborations workshop tags: [technology] [conference] [ssi] [research] [disability] [equality, diversity & inclusion] series this post is part of a series on the ssi collaborations workshop in . collaborations workshop : collaborative ideas & hackday > collaborations workshop : talks & panel session < contents provocations fair research software equality, diversity & inclusion: how to go about it equality, diversity & inclusion: disability issues lightning talks data & metadata learning & teaching/community wrapping up i’ve just finished attending (online) the three days of this year’s ssi collaborations workshop (cw for short), and once again it’s been a brilliant experience, as well as mentally exhausting, so i thought i’d better get a summary down while it’s still fresh it my mind. collaborations workshop is, as the name suggests, much more focused on facilitating collaborations than a typical conference, and has settled into a structure that starts off with with longer keynotes and lectures, and progressively gets more interactive culminating with a hack day on the third day. that’s a lot to write about, so for this post i’ll focus on the talks and panel session, and follow up with another post about the collaborative bits. i’ll also probably need to come back and add in more links to bits and pieces once slides and the “official” summary of the event become available. updates - - added links to recordings of keynotes and panel sessions provocations the first day began with two keynotes on this year’s main themes: fair research software and diversity & inclusion, and day had a great panel session focused on disability. all three were streamed live and the recordings remain available on youtube: view the keynotes recording; google-free alternative link view the panel session recording; google-free alternative link fair research software dr michelle barker, director of the research software alliance, spoke on the challenges to recognition of software as part of the scholarly record: software is not often cited. the fair rs working group has been set up to investigate and create guidance on how the fair principles for data can be adapted to research software as well; as they stand, the principles are not ideally suited to software. this work will only be the beginning though, as we will also need metrics, training, career paths and much more. resa itself has focus areas: people, policy and infrastructure. if you’re interested in getting more involved in this, you can join the resa email list. equality, diversity & inclusion: how to go about it dr chonnettia jones, vice president of research, michael smith foundation for health research spoke extensively and persuasively on the need for equality, diversity & inclusion (edi) initiatives within research, as there is abundant robust evidence that all research outcomes are improved. she highlighted the difficulties current approaches to edi have effecting structural change, and changing not just individual behaviours but the cultures & practices that perpetuate iniquity. what initiatives are often constructed around making up for individual deficits, a bitter framing is to start from an understanding of individuals having equal stature but having different tired experiences. commenting on the current focus on “research excellent” she pointed out that the hyper-competition this promotes is deeply unhealthy. suggesting instead that true excellence requires diversity, and we should focus on an inclusive excellence driven by inclusive leadership. equality, diversity & inclusion: disability issues day ’s edi panel session brought together five disabled academics to discuss the problems of disability in research. dr becca wilson, ukri innovation fellow, institute of population health science, university of liverpool (chair) phoenix c s andrews (phd student, information studies, university of sheffield and freelance writer) dr ella gale (research associate and machine learning subject specialist, school of chemistry, university of bristol) prof robert stevens (professor and head of department of computer science, university of manchester) dr robin wilson (freelance data scientist and ssi fellow) nb. the discussion flowed quite freely so the following summary, so the following summary mixes up input from all the panel members. researchers are often assumed to be single-minded in following their research calling, and aptness for jobs is often partly judged on “time send”, which disadvantages any disabled person who has been forced to take a career break. on top of this disabled people are often time-poor because of the extra time needed to manage their condition, leaving them with less “output” to show for their time served on many common metrics. this can partially affect early-career researchers, since resources for these are often restricted on a “years-since-phd” criterion. time poverty also makes funding with short deadlines that much harder to apply for. employers add more demands right from the start: new starters are typically expected to complete a health and safety form, generally a brief affair that will suddenly become an -page bureaucratic nightmare if you tick the box declaring a disability. many employers claim to be inclusive yet utterly fail to understand the needs of their disabled staff. wheelchairs are liberating for those who use them (despite the awful but common phrase “wheelchair-bound”) and yet employers will refuse to insure a wheelchair while travelling for work, classifying it as a “high value personal item” that the owner would take the same responsibility for as an expensive camera. computers open up the world for blind people in a way that was never possible without them, but it’s not unusual for mandatory training to be inaccessible to screen readers. some of these barriers can be overcome, but doing so takes yet more time that could and should be spent on more important work. what can we do about it? academia works on patronage whether we like it or not, so be the person who supports people who are different to you rather than focusing on the one you “recognise yourself in” to mentor. as a manager, it’s important to ask each individual what they need and believe them: they are the expert in their own condition and their lived experience of it. don’t assume that because someone else in your organisation with the same disability needs one set of accommodations, it’s invalid for your staff member to require something totally different. and remember: disability is unusual as a protected characteristic in that anyone can acquire it at any time without warning! lightning talks lightning talk sessions are always tricky to summarise, and while this doesn’t do them justice, here are a few highlights from my notes. data & metadata malin sandstrom talked about a much-needed refinement of contributor role taxonomies for scientific computing stephan druskat showcased a project to crowdsource a corpus of research software for further analysis learning & teaching/community matthew bluteau introduced the concept of the “coding dojo” as a way to enhance community of practice. a group of coders got together to practice & learn by working together to solve a problem and explaining their work as they go he described models: a code jam, where people work in small groups, and the randori method, where people do pair programming while the rest observe. i’m excited to try this out! steve crouch talked about intermediate skills and helping people take the next step, which i’m also very interested in with the glam data science network esther plomp recounted experience of running multiple carpentry workshops online, while diego alonso alvarez discussed planned workshops on making research software more usable with guis shoaib sufi showcased the ssi’s new event organising guide caroline jay reported on a diary study into autonomy & agency in rse during covid lopez, t., jay, c., wermelinger, m., & sharp, h. ( ). how has the covid- pandemic affected working conditions for research software engineers? unpublished manuscript. wrapping up that’s not everything! but this post is getting pretty long so i’ll wrap up for now. i’ll try to follow up soon with a summary of the “collaborative” part of collaborations workshop: the idea-generating sessions and hackday! comments you can comment on this post, "collaborations workshop : talks & panel session", by: replying to its tweet on twitter or its toot on mastodon sending a webmention from your own site to https://erambler.co.uk/blog/collabw -part- / using this button: comments & reactions haven't loaded yet. you might have javascript disabled but that's cool 😎. me elsewhere :: keyoxide | keybase | mastodon | matrix | twitter | github | gitlab | orcid | pypi | linkedin © jez cope | built by: hugo | theme: mnemosyne build status: except where noted, this work is licensed under a creative commons attribution . international license. api - wikipedia api from wikipedia, the free encyclopedia jump to navigation jump to search set of subroutine definitions, protocols, and tools for building software and applications for other uses, see api (disambiguation). "api.php" redirects here. for the wikipedia api, see special:apihelp. in computing, an application programming interface (api) is an interface that defines interactions between multiple software applications or mixed hardware-software intermediaries.[ ] it defines the kinds of calls or requests that can be made, how to make them, the data formats that should be used, the conventions to follow, etc. it can also provide extension mechanisms so that users can extend existing functionality in various ways and to varying degrees.[ ] an api can be entirely custom, specific to a component, or designed based on an industry-standard to ensure interoperability. through information hiding, apis enable modular programming, allowing users to use the interface independently of the implementation. reference to web apis is currently the most common use of the term.[ ] there are also apis for programming languages, software libraries, computer operating systems, and computer hardware. apis originated in the s, though the term api did not emerge until the s and s. contents purpose history of the term usage . libraries and frameworks . operating systems . remote apis . web apis design release policies . public api implications documentation dispute over copyright protection for apis examples see also references further reading purpose[edit] in building applications, an api (application programming interface) simplifies programming by abstracting the underlying implementation and only exposing objects or actions the developer needs. while a graphical interface for an email client might provide a user with a button that performs all the steps for fetching and highlighting new emails, an api for file input/output might give the developer a function that copies a file from one location to another without requiring that the developer understand the file system operations occurring behind the scenes.[ ] history of the term[edit] a diagram from proposing the expansion of the idea of the api to become a general programming interface, beyond application programs alone.[ ] the meaning of the term api has expanded over its history. it first described an interface only for end-user-facing programs, known as application programs. this origin is still reflected in the name "application programming interface." today, the term api is broader, including also utility software and even hardware interfaces.[ ] the idea of the api is much older than the term. british computer scientists wilkes and wheeler worked on modular software libraries in the s for the edsac computer. their book the preparation of programs for an electronic digital computer contains the first published api specification. joshua bloch claims that wilkes and wheeler "latently invented" the api, because it is more of a concept that is discovered than invented.[ ] although the people who coined the term api were implementing software on a univac , the goal of their api was to make hardware independent programs possible.[ ] the term "application program interface" (without an -ing suffix) is first recorded in a paper called data structures and techniques for remote computer graphics presented at an afips conference in .[ ][ ] the authors of this paper use the term to describe the interaction of an application — a graphics program in this case — with the rest of the computer system. a consistent application interface (consisting of fortran subroutine calls) was intended to free the programmer from dealing with idiosyncrasies of the graphics display device, and to provide hardware independence if the computer or the display were replaced.[ ] the term was introduced to the field of databases by c. j. date[ ] in a paper called the relational and network approaches: comparison of the application programming interface.[ ] an api became a part of ansi/sparc framework for database management systems. this framework treated the application programming interface separately from other interfaces, such as the query interface. database professionals in the s observed these different interfaces could be combined; a sufficiently rich application interface could support the other interfaces as well.[ ] this observation led to apis that supported all types of programming, not just application programming. by , the api was defined simply as "a set of services available to a programmer for performing certain tasks" by technologist carl malamud.[ ] the conception of the api was expanded again with the dawn of web apis. roy fielding's dissertation architectural styles and the design of network-based software architectures at uc irvine in outlined representational state transfer (rest) and described the idea of a "network-based application programming interface" that fielding contrasted with traditional "library-based" apis.[ ] xml and json web apis saw widespread commercial adoption beginning in and continuing as of . the web api is now the most common meaning of the term api.[ ] when used in this way, the term api has some overlap in meaning with the terms communication protocol and remote procedure call. the semantic web proposed by tim berners-lee in included "semantic apis" that recast the api as an open, distributed data interface rather than a software behavior interface.[ ] instead, proprietary interfaces and agents became more widespread. usage[edit] libraries and frameworks[edit] the interface to a software library is one type of api. the api describes and prescribes the "expected behavior" (a specification) while the library is an "actual implementation" of this set of rules. a single api can have multiple implementations (or none, being abstract) in the form of different libraries that share the same programming interface. the separation of the api from its implementation can allow programs written in one language to use a library written in another. for example, because scala and java compile to compatible bytecode, scala developers can take advantage of any java api.[ ] api use can vary depending on the type of programming language involved. an api for a procedural language such as lua could consist primarily of basic routines to execute code, manipulate data or handle errors while an api for an object-oriented language, such as java, would provide a specification of classes and its class methods.[ ][ ] language bindings are also apis. by mapping the features and capabilities of one language to an interface implemented in another language, a language binding allows a library or service written in one language to be used when developing in another language.[ ] tools such as swig and f py, a fortran-to-python interface generator, facilitate the creation of such interfaces.[ ] an api can also be related to a software framework: a framework can be based on several libraries implementing several apis, but unlike the normal use of an api, the access to the behavior built into the framework is mediated by extending its content with new classes plugged into the framework itself. moreover, the overall program flow of control can be out of the control of the caller and in the framework's hands by inversion of control or a similar mechanism.[ ][ ] operating systems[edit] an api can specify the interface between an application and the operating system.[ ] posix, for example, specifies a set of common apis that aim to enable an application written for a posix conformant operating system to be compiled for another posix conformant operating system. linux and berkeley software distribution are examples of operating systems that implement the posix apis.[ ] microsoft has shown a strong commitment to a backward-compatible api, particularly within its windows api (win ) library, so older applications may run on newer versions of windows using an executable-specific setting called "compatibility mode".[ ] an api differs from an application binary interface (abi) in that an api is source code based while an abi is binary based. for instance, posix provides apis while the linux standard base provides an abi.[ ][ ] remote apis[edit] remote apis allow developers to manipulate remote resources through protocols, specific standards for communication that allow different technologies to work together, regardless of language or platform. for example, the java database connectivity api allows developers to query many different types of databases with the same set of functions, while the java remote method invocation api uses the java remote method protocol to allow invocation of functions that operate remotely, but appear local to the developer.[ ][ ] therefore, remote apis are useful in maintaining the object abstraction in object-oriented programming; a method call, executed locally on a proxy object, invokes the corresponding method on the remote object, using the remoting protocol, and acquires the result to be used locally as a return value. a modification of the proxy object will also result in a corresponding modification of the remote object.[ ] web apis[edit] main article: web api web apis are the defined interfaces through which interactions happen between an enterprise and applications that use its assets, which also is a service level agreement (sla) to specify the functional provider and expose the service path or url for its api users. an api approach is an architectural approach that revolves around providing a program interface to a set of services to different applications serving different types of consumers.[ ] when used in the context of web development, an api is typically defined as a set of specifications, such as hypertext transfer protocol (http) request messages, along with a definition of the structure of response messages, usually in an extensible markup language (xml) or javascript object notation (json) format. an example might be a shipping company api that can be added to an ecommerce-focused website to facilitate ordering shipping services and automatically include current shipping rates, without the site developer having to enter the shipper's rate table into a web database. while "web api" historically has been virtually synonymous with web service, the recent trend (so-called web . ) has been moving away from simple object access protocol (soap) based web services and service-oriented architecture (soa) towards more direct representational state transfer (rest) style web resources and resource-oriented architecture (roa).[ ] part of this trend is related to the semantic web movement toward resource description framework (rdf), a concept to promote web-based ontology engineering technologies. web apis allow the combination of multiple apis into new applications known as mashups.[ ] in the social media space, web apis have allowed web communities to facilitate sharing content and data between communities and applications. in this way, content that is created in one place dynamically can be posted and updated to multiple locations on the web.[ ] for example, twitter's rest api allows developers to access core twitter data and the search api provides methods for developers to interact with twitter search and trends data.[ ] design[edit] the design of an api has significant impact on its usage.[ ] the principle of information hiding describes the role of programming interfaces as enabling modular programming by hiding the implementation details of the modules so that users of modules need not understand the complexities inside the modules.[ ] thus, the design of an api attempts to provide only the tools a user would expect.[ ] the design of programming interfaces represents an important part of software architecture, the organization of a complex piece of software.[ ] release policies[edit] apis are one of the more common ways technology companies integrate. those that provide and use apis are considered as being members of a business ecosystem.[ ] the main policies for releasing an api are:[ ] private: the api is for internal company use only. partner: only specific business partners can use the api. for example, vehicle for hire companies such as uber and lyft allow approved third-party developers to directly order rides from within their apps. this allows the companies to exercise quality control by curating which apps have access to the api, and provides them with an additional revenue stream.[ ] public: the api is available for use by the public. for example, microsoft makes the windows api public, and apple releases its api cocoa, so that software can be written for their platforms. not all public apis are generally accessible by everybody. for example, internet service providers like cloudflare or voxility, use restful apis to allow customers and resellers access to their infrastructure information, ddos stats, network performance or dashboard controls.[ ] access to such apis is granted either by “api tokens”, or customer status validations.[ ] public api implications[edit] an important factor when an api becomes public is its "interface stability". changes to the api—for example adding new parameters to a function call—could break compatibility with the clients that depend on that api.[ ] when parts of a publicly presented api are subject to change and thus not stable, such parts of a particular api should be documented explicitly as "unstable". for example, in the google guava library, the parts that are considered unstable, and that might change soon, are marked with the java annotation @beta.[ ] a public api can sometimes declare parts of itself as deprecated or rescinded. this usually means that part of the api should be considered a candidate for being removed, or modified in a backward incompatible way. therefore, these changes allow developers to transition away from parts of the api that will be removed or not supported in the future.[ ] client code may contain innovative or opportunistic usages that were not intended by the api designers. in other words, for a library with a significant user base, when an element becomes part of the public api, it may be used in diverse ways.[ ] on february , , akamai published their annual “state of the internet” report, showcasing the growing trend of cybercriminals targeting public api platforms at financial services worldwide. from december through november , akamai witnessed . billion credential violation attacks. about %, or . billion, were against hostnames defined as api endpoints. of these, . million have targeted financial services sector organizations.[ ] documentation[edit] api documentation describes what services an api offers and how to use those services, aiming to cover everything a client would need to know for practical purposes. documentation is crucial for the development and maintenance of applications using the api.[ ] api documentation is traditionally found in documentation files but can also be found in social media such as blogs, forums, and q&a websites.[ ] traditional documentation files are often presented via a documentation system, such as javadoc or pydoc, that has a consistent appearance and structure. however, the types of content included in the documentation differs from api to api.[ ] in the interest of clarity, api documentation may include a description of classes and methods in the api as well as "typical usage scenarios, code snippets, design rationales, performance discussions, and contracts", but implementation details of the api services themselves are usually omitted. restrictions and limitations on how the api can be used are also covered by the documentation. for instance, documentation for an api function could note that its parameters cannot be null, that the function itself is not thread safe,[ ] because api documentation tends to be comprehensive, it is a challenge for writers to keep the documentation updated and for users to read it carefully, potentially yielding bugs.[ ] api documentation can be enriched with metadata information like java annotations. this metadata can be used by the compiler, tools, and by the run-time environment to implement custom behaviors or custom handling.[ ] it is possible to generate api documentation in a data-driven manner. by observing many programs that use a given api, it is possible to infer the typical usages, as well the required contracts and directives.[ ] then, templates can be used to generate natural language from the mined data. dispute over copyright protection for apis[edit] main article: oracle america, inc. v. google, inc. in , oracle corporation sued google for having distributed a new implementation of java embedded in the android operating system.[ ] google had not acquired any permission to reproduce the java api, although permission had been given to the similar openjdk project. judge william alsup ruled in the oracle v. google case that apis cannot be copyrighted in the u.s and that a victory for oracle would have widely expanded copyright protection to a "functional set of symbols" and allowed the copyrighting of simple software commands: to accept oracle's claim would be to allow anyone to copyright one version of code to carry out a system of commands and thereby bar all others from writing its different versions to carry out all or part of the same commands.[ ][ ] in , however, alsup's ruling was overturned on appeal to the court of appeals for the federal circuit, though the question of whether such use of apis constitutes fair use was left unresolved. [ ][ ] in , following a two-week trial, a jury determined that google's reimplementation of the java api constituted fair use, but oracle vowed to appeal the decision.[ ] oracle won on its appeal, with the court of appeals for the federal circuit ruling that google's use of the apis did not qualify for fair use.[ ] in , google appealed to the supreme court of the united states over both the copyrightability and fair use rulings, and the supreme court granted review.[ ] due to the covid- pandemic, the oral hearings in the case were delayed until october .[ ] examples[edit] main category: application programming interfaces aspi for scsi device interfacing cocoa and carbon for the macintosh directx for microsoft windows ehllapi java apis odbc for microsoft windows openal cross-platform sound api opencl cross-platform api for general-purpose computing for cpus & gpus opengl cross-platform graphics api openmp api that supports multi-platform shared memory multiprocessing programming in c, c++, and fortran on many architectures, including unix and microsoft windows platforms. server application programming interface (sapi) simple directmedia layer (sdl) see also[edit] api testing api writer augmented web calling convention common object request broker architecture (corba) comparison of application virtual machines document object model (dom) double-chance function foreign function interface front and back ends interface (computing) interface control document list of d graphics apis microservices name mangling open api open service interface definitions parsing plugin raml (software) software development kit (sdk) web api web content vendor xpcom references[edit] ^ "what is an api". hubspire. ^ fisher, sharon ( ). "os/ ee to get interface early". google books. ^ a b lane, kin (october , ). "intro to apis: history of apis". postman. retrieved september , . when you hear the acronym “api” or its expanded version “application programming interface,” it is almost always in reference to our modern approach, in that we use http to provide access to machine readable data in a json or xml format, often simply referred to as “web apis.” apis have been around almost as long as computing, but modern web apis began taking shape in the early s. ^ a b c clarke, steven ( ). "measuring api usability". dr. dobb's. retrieved july . ^ a b database architectures—a feasibility workshop (report). washington d.c.: u.s. department of commerce, national bureau of standards. april . pp.  – . hdl: /mdp. . lccn  . nbs special publication - . retrieved september , . ^ a b c bloch, joshua (august , ). a brief, opinionated history of the api (speech). qcon. san francisco: infoq. retrieved september , . ^ a b cotton, ira w.; greatorex, frank s. (december ). "data structures and techniques for remote computer graphics". afips ' : proceedings of the december - , , fall joint computer conference. afips fall joint computer conference. i. san francisco, california: association for computing machinery. pp.  – . doi: . / . . isbn  - . oclc  . ^ "application program interface". oxford english dictionary (online ed.). oxford university press. (subscription or participating institution membership required.) ^ date, c. j. (july , ). e. f. codd and relational theory: a detailed review and analysis of codd's major database writings. p.  . isbn  - . ^ date, c. j.; codd, e. f. (january ). "the relational and network approaches: comparison of the application programming interfaces". in randall rustin (ed.). proceedings of acm-sigmod workshop on data description, access and control. sigmod workshop . . ann arbor, michigan: association for computing machinery. pp.  – . doi: . / . . isbn  - . oclc  . ^ carl, malamud ( ). analyzing novell networks. van nostrand reinhold. p.  . isbn  - . ^ fielding, roy ( ). architectural styles and the design of network-based software architectures (phd). retrieved september , . ^ dotsika, fefie (august ). "semantic apis: scaling up towards the semantic web". international journal of information management. ( ): – . doi: . /j.ijinfomgt. . . . ^ odersky, martin; spoon, lex; venners, bill ( december ). "combining scala and java". www.artima.com. retrieved july . ^ de figueiredo, luiz henrique; ierusalimschy, roberto; filho, waldemar celes. "the design and implementation of a language for extending applications". tecgraf grupo de tecnologia em computacao grafica. citeseerx  . . . . . s cid  . retrieved july . ^ sintes, tony ( july ). "just what is the java api anyway?". javaworld. retrieved - - . ^ emery, david. "standards, apis, interfaces and bindings". acm.org. archived from the original on - - . retrieved - - . ^ "f py.org". f py.org. retrieved - - . ^ fowler, martin. "inversion of control". ^ fayad, mohamed. "object-oriented application frameworks". ^ lewine, donald a. ( ). posix programmer's guide. o'reilly & associates, inc. p.  . isbn  . retrieved august . ^ west, joel; dedrick, jason ( ). "open source standardization: the rise of linux in the network era" (pdf). knowledge, technology & policy. ( ): – . retrieved august . ^ microsoft (october ). "support for windows xp". microsoft. p.  . archived from the original on - - . ^ "lsb introduction". linux foundation. june . retrieved - - . ^ stoughton, nick (april ). "update on standards" (pdf). usenix. retrieved - - . ^ bierhoff, kevin ( april ). "api protocol compliance in object-oriented software" (pdf). cmu institute for software research. retrieved july . ^ wilson, m. jeff ( november ). "get smart with proxies and rmi". javaworld. retrieved - - . ^ henning, michi; vinoski, steve ( ). advanced corba programming with c++. addison-wesley. isbn  - . retrieved june . ^ "api-fication" (pdf download). www.hcltech.com. august . ^ benslimane, djamal; schahram dustdar; amit sheth ( ). "services mashups: the new generation of web applications". ieee internet computing, vol. , no. . institute of electrical and electronics engineers. pp.  – . archived from the original on - - . retrieved - - . ^ niccolai, james ( - - ), "so what is an enterprise mashup, anyway?", pc world ^ parr, ben. "the evolution of the social media api". mashable. retrieved july . ^ "get trends/place". developer.twitter.com. retrieved - - . ^ parnas, d.l. ( ). "on the criteria to be used in decomposing systems into modules" (pdf). communications of the acm. ( ): – . doi: . / . . s cid  . ^ garlan, david; shaw, mary (january ). "an introduction to software architecture" (pdf). advances in software engineering and knowledge engineering. . retrieved august . ^ de ternay, guerric (oct , ). "business ecosystem: creating an economic moat". boostcompanies. retrieved - - . ^ boyd, mark ( - - ). "private, partner or public: which api strategy is best for business?". programmableweb. retrieved august . ^ weissbrot, alison ( july ). "car service apis are everywhere, but what's in it for partner apps?". adexchanger. ^ "cloudflare api v documentation". cloudflare. february . retrieved february . ^ liew, zell ( january ). "car service apis are everywhere, but what's in it for partner apps". smashing magazine. retrieved february . ^ a b shi, lin; zhong, hao; xie, tao; li, mingshu ( ). an empirical study on evolution of api documentation. international conference on fundamental approaches to software engineering. lecture notes in computer science. . pp.  – . doi: . / - - - - _ . isbn  - - - - . retrieved july . ^ "guava-libraries - guava: google core libraries for java . + - google project hosting". - - . retrieved - - . ^ oracle. "how and when to deprecate apis". java se documentation. retrieved august . ^ mendez, diego; baudry, benoit; monperrus, martin ( ). "empirical evidence of large-scale diversity in api usage of object-oriented software". ieee th international working conference on source code analysis and manipulation (scam). pp.  – . arxiv: . . doi: . /scam. . . isbn  - - - - . s cid  . ^ takanashi, dean ( february ). "akamai: cybercriminals are attacking apis at financial services firms". venture beat. retrieved february . ^ dekel, uri; herbsleb, james d. (may ). "improving api documentation usability with knowledge pushing". institute for software research, school of computer science. citeseerx  . . . . . ^ parnin, chris; treude, cristoph (may ). "measuring api documentation on the web". web se: – . doi: . / . . isbn  . s cid  . retrieved july . ^ maalej, waleed; robillard, martin p. (april ). "patterns of knowledge in api reference documentation" (pdf). ieee transactions on software engineering. retrieved july . ^ monperrus, martin; eichberg, michael; tekes, elif; mezini, mira ( december ). "what should developers be aware of? an empirical study on the directives of api documentation". empirical software engineering. ( ): – . arxiv: . . doi: . /s - - - . s cid  . ^ "annotations". sun microsystems. archived from the original on - - . retrieved - - .. ^ bruch, marcel; mezini, mira; monperrus, martin ( ). "mining subclassing directives to improve framework reuse". th ieee working conference on mining software repositories (msr ). pp.  – . citeseerx  . . . . . doi: . /msr. . . isbn  - - - - . s cid  . ^ "oracle and the end of programming as we know it". drdobbs. - - . retrieved - - . ^ "apis can't be copyrighted says judge in oracle case". tgdaily. - - . retrieved - - . ^ "oracle america, inc. vs. google inc" (pdf). wired. - - . retrieved - - . ^ "oracle am., inc. v. google inc., no. - , fed. cir. ". ^ rosenblatt, seth (may , ). "court sides with oracle over android in java patent appeal". cnet. retrieved - - . ^ "google beats oracle—android makes "fair use" of java apis". ars technica. - - . retrieved - - . ^ decker, susan (march , ). "oracle wins revival of billion-dollar case against google". bloomberg businessweek. retrieved march , . ^ lee, timothy (january , ). "google asks supreme court to overrule disastrous ruling on api copyrights". ars technica. retrieved february , . ^ vkimber ( - - ). "google llc v. oracle america, inc". lii / legal information institute. retrieved - - . further reading[edit] taina bucher ( november ). "objects of intense feeling: the case of the twitter api". computational culture ( ). issn  - . argues that "apis are far from neutral tools" and form a key part of contemporary programming, understood as a fundamental part of culture. what is an api? - in the u.s. supreme court opinion, google v. oracle , pp. - - "for each task, there is computer code; api (also known as application program interface) is the method for calling that 'computer code' (instruction - like a recipe - rather than cooking instruction, this is machine instruction) to be carry out" v t e operating systems general advocacy comparison forensic engineering history hobbyist development list timeline usage share user features comparison variants disk operating system distributed operating system embedded operating system mobile operating system network operating system object-oriented operating system real-time operating system supercomputer operating system kernel architectures exokernel hybrid microkernel monolithic vkernel rump kernel unikernel components device driver loadable kernel module user space process management concepts computer multitasking (cooperative, preemptive) context switch interrupt ipc process process control block real-time thread time-sharing scheduling algorithms fixed-priority preemptive multilevel feedback queue round-robin shortest job next memory management, resource protection bus error general protection fault memory protection paging protection ring segmentation fault virtual memory storage access, file systems boot loader defragmentation device file file attribute inode journal partition virtual file system virtual tape library supporting concepts api computer network hal live cd live usb os shell cli gui d gui nui tui vui zui pxe authority control bnf: cb v (data) gnd: - lccn: sh ma: retrieved from "https://en.wikipedia.org/w/index.php?title=api&oldid= " categories: application programming interfaces technical communication hidden categories: articles with short description short description matches wikidata wikipedia articles with bnf identifiers wikipedia articles with gnd identifiers wikipedia articles with lccn identifiers wikipedia articles with ma identifiers navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version in other projects wikimedia commons languages العربية asturianu azərbaycanca বাংলা Български boarisch bosanski català Čeština dansk deutsch eesti Ελληνικά español esperanto euskara فارسی français gaeilge galego 한국어 हिन्दी hrvatski bahasa indonesia italiano עברית ქართული latviešu lietuvių magyar മലയാളം bahasa melayu Монгол nederlands 日本語 nordfriisk norsk bokmål norsk nynorsk piemontèis polski português română Русский shqip simple english slovenčina slovenščina کوردی Српски / srpski srpskohrvatski / српскохрватски suomi svenska tagalog தமிழ் ไทย türkçe Українська tiếng việt 吴语 中文 edit links this page was last edited on april , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement sybil attack - wikipedia sybil attack from wikipedia, the free encyclopedia jump to navigation jump to search attack done by multiple fake identities in a sybil attack, the attacker subverts the reputation system of a network service by creating a large number of pseudonymous identities and uses them to gain a disproportionately large influence. it is named after the subject of the book sybil, a case study of a woman diagnosed with dissociative identity disorder.[ ] the name was suggested in or before by brian zill at microsoft research.[ ] the term pseudospoofing had previously been coined by l. detweiler on the cypherpunks mailing list and used in the literature on peer-to-peer systems for the same class of attacks prior to , but this term did not gain as much influence as "sybil attack".[ ] sybil attacks are also called sock puppetry. contents description example prevention . identity validation . social trust graphs . economic costs . personhood validation . application-specific defenses see also references external links description[edit] the sybil attack in computer security is an attack wherein a reputation system is subverted by creating multiple identities.[ ] a reputation system's vulnerability to a sybil attack depends on how cheaply identities can be generated, the degree to which the reputation system accepts inputs from entities that do not have a chain of trust linking them to a trusted entity, and whether the reputation system treats all entities identically. as of [update], evidence showed that large-scale sybil attacks could be carried out in a very cheap and efficient way in extant realistic systems such as bittorrent mainline dht.[ ][ ] an entity on a peer-to-peer network is a piece of software which has access to local resources. an entity advertises itself on the peer-to-peer network by presenting an identity. more than one identity can correspond to a single entity. in other words, the mapping of identities to entities is many to one. entities in peer-to-peer networks use multiple identities for purposes of redundancy, resource sharing, reliability and integrity. in peer-to-peer networks, the identity is used as an abstraction so that a remote entity can be aware of identities without necessarily knowing the correspondence of identities to local entities. by default, each distinct identity is usually assumed to correspond to a distinct local entity. in reality, many identities may correspond to the same local entity. an adversary may present multiple identities to a peer-to-peer network in order to appear and function as multiple distinct nodes. the adversary may thus be able to acquire a disproportionate level of control over the network, such as by affecting voting outcomes. in the context of (human) online communities, such multiple identities are sometimes known as sockpuppets. example[edit] a notable sybil attack (in conjunction with a traffic confirmation attack) was launched against the tor anonymity network for several months in by unknown perpetrators.[ ][ ] prevention[edit] known approaches to sybil attack prevention include identity validation, social trust graph algorithms, or economic costs, personhood validation, and application-specific defenses. identity validation[edit] validation techniques can be used to prevent sybil attacks and dismiss masquerading hostile entities. a local entity may accept a remote identity based on a central authority which ensures a one-to-one correspondence between an identity and an entity and may even provide a reverse lookup. an identity may be validated either directly or indirectly. in direct validation the local entity queries the central authority to validate the remote identities. in indirect validation the local entity relies on already-accepted identities which in turn vouch for the validity of the remote identity in question. practical network applications and services often use a variety of identity proxies to achieve limited sybil attack resistance, such as telephone number verification, credit card verification, or even based on the ip address of a client. these methods have the limitations that it is usually possible to obtain multiple such identity proxies at some cost—or even to obtain many at low cost through techniques such as sms spoofing or ip address spoofing. use of such identity proxies can also exclude those without ready access to the required identity proxy: e.g., those without their own mobile phone or credit card, or users located behind carrier-grade network address translation who share their ip addresses with many others. identity-based validation techniques generally provide accountability at the expense of anonymity, which can be an undesirable tradeoff especially in online forums that wish to permit censorship-free information exchange and open discussion of sensitive topics. a validation authority can attempt to preserve users' anonymity by refusing to perform reverse lookups, but this approach makes the validation authority a prime target for attack. protocols using threshold cryptography can potentially distribute the role of such a validation authority among multiple servers, protecting users' anonymity even if one or a limited number of validation servers is compromised.[ ] social trust graphs[edit] sybil prevention techniques based on the connectivity characteristics of social graphs can also limit the extent of damage that can be caused by a given sybil attacker while preserving anonymity. examples of such prevention techniques include sybilguard,[ ] sybillimit,[ ] the advogato trust metric,[ ] and the sparsity based metric to identify sybil clusters in a distributed p p based reputation system.[ ] these techniques cannot prevent sybil attacks entirely, and may be vulnerable to widespread small-scale sybil attacks. in addition, it is not clear whether real-world online social networks will satisfy the trust or connectivity assumptions that these algorithms assume.[ ] economic costs[edit] alternatively, imposing economic costs as artificial barriers to entry may be used to make sybil attacks more expensive. proof of work, for example, requires a user to prove that they expended a certain amount of computational effort to solve a cryptographic puzzle. in bitcoin and related permissionless cryptocurrencies, miners compete to append blocks to a blockchain and earn rewards roughly in proportion to the amount of computational effort they invest in a given time period. investments in other resources such as storage or stake in existing cryptocurrency may similarly be used to impose economic costs. personhood validation[edit] as an alternative to identity verification that attempts to maintain a strict "one-per-person" allocation rule, a validation authority can use some mechanism other than knowledge of a user's real identity - such as verification of an unidentified person's physical presence at a particular place and time as in a pseudonym party[ ] - to enforce a one-to-one correspondence between online identities and real-world users. such proof of personhood approaches have been proposed as a basis for permissionless blockchains and cryptocurrencies in which each human participant would wield exactly one vote in consensus.[ ][ ] a variety of approaches to proof of personhood have been proposed, some with deployed implementations, although many usability and security issues remain.[ ] application-specific defenses[edit] a number of distributed protocols have been designed with sybil attack protection in mind. sumup[ ] and dsybil[ ] are sybil-resistant algorithms for online content recommendation and voting. whānau is a sybil-resistant distributed hash table algorithm.[ ] i p's implementation of kademlia also has provisions to mitigate sybil attacks.[ ] see also[edit] astroturfing ballot stuffing social bot sockpuppetry references[edit] ^ lynn neary ( october ). real 'sybil' admits multiple personalities were fake. npr. retrieved february . ^ douceur, john r ( ). "the sybil attack". peer-to-peer systems. lecture notes in computer science. . pp.  – . doi: . / - - - _ . isbn  - - - - . ^ oram, andrew. peer-to-peer: harnessing the benefits of a disruptive technology. ^ trifa, zied; khemakhem, maher ( ). "sybil nodes as a mitigation strategy against sybil attack". procedia computer science. : – . doi: . /j.procs. . . . ^ wang, liang; kangasharju, jussi ( ). "real-world sybil attacks in bittorrent mainline dht". ieee global communications conference (globecom). pp.  – . doi: . /glocom. . . isbn  - - - - . ^ wang, liang; kangasharju, jussi ( ). "measuring large-scale distributed systems: case of bittorrent mainline dht". ieee p p proceedings. pp.  – . doi: . /p p. . . isbn  - - - - . ^ ( july ). tor security advisory: "relay early" traffic confirmation attack. ^ dan goodin ( july ). active attack on tor network tried to decloak users for five months. ^ john maheswaran, daniel jackowitz, ennan zhai, david isaac wolinsky, and bryan ford ( march ). building privacy-preserving cryptographic credentials from federated online identities (pdf). th acm conference on data and application security and privacy (codaspy).cs maint: uses authors parameter (link) ^ yu, haifeng; kaminsky, michael; gibbons, phillip b; flaxman, abraham ( ). sybilguard: defending against sybil attacks via social networks. conference on applications, technologies, architectures, and protocols for computer communications - sigcomm ' . pp.  – . doi: . / . . isbn  - - - - . ^ sybillimit: a near-optimal social network defense against sybil attacks. ieee symposium on security and privacy. may . ^ o'whielacronx, zooko. "levien's attack-resistant trust metric".

    . gmane.org. retrieved february . cs maint: discouraged parameter (link) ^ kurve, aditya; kesidis, george ( ). "sybil detection via distributed sparse cut monitoring". ieee international conference on communications (icc). pp.  – . doi: . /icc. . . isbn  - - - - . ^ bimal viswanath, ansley post, krishna phani gummadi, and alan e mislove (august ). "an analysis of social network-based sybil defenses". acm sigcomm computer communication review. doi: . / . .cs maint: uses authors parameter (link) ^ ford, bryan; strauss, jacob ( april ). an offline foundation for online accountable pseudonyms. st workshop on social network systems - socialnets ' . pp.  – . doi: . / . . isbn  - - - - . ^ maria borge, eleftherios kokoris-kogias, philipp jovanovic, linus gasser, nicolas gailly, bryan ford ( april ). proof-of-personhood: redemocratizing permissionless cryptocurrencies. ieee security & privacy on the blockchain (ieee s&b).cs maint: uses authors parameter (link) ^ ford, bryan (december ). "technologizing democracy or democratizing technology? a layered-architecture perspective on potentials and challenges". in lucy bernholz; hélène landemore; rob reich (eds.). digital technology and democratic theory. university of chicago press. isbn  . ^ divya siddarth, sergey ivliev, santiago siri, paula berman ( october ). "who watches the watchmen? a review of subjective approaches for sybil-resistance in proof of personhood protocols". arxiv: . .cs maint: uses authors parameter (link) ^ nguyen tran, bonan min, jinyang li, and lakshminarayanan subramanian ( april ). sybil-resilient online content voting (pdf). nsdi ’ : th usenix symposium on networked systems design and implementation.cs maint: uses authors parameter (link) ^ haifeng yu, chenwei shi, michael kaminsky, phillip b. gibbons, and feng xiao ( may ). dsybil: optimal sybil-resistance for recommendation systems. th ieee symposium on security and privacy.cs maint: uses authors parameter (link) ^ chris lesniewski-laas and m. frans kaashoek ( april ). whānau: a sybil-proof distributed hash table (pdf). th usenix symposium on network systems design and implementation (nsdi).cs maint: uses authors parameter (link) ^ "the network database - i p". external links[edit] querci, daniele; hailes, stephen ( ). "sybil attacks against mobile users: friends and foes to the rescue". proceedings ieee infocom. pp.  – . citeseerx  . . . . . doi: . /infcom. . . isbn  - - - - . bazzi, rida a; konjevod, goran ( ). "on the establishment of distinct identities in overlay networks". distributed computing. ( ): – . doi: . /s - - -y. lesniewski-laas, chris ( ). "a sybil-proof one-hop dht". proceedings of the st workshop on social network systems - socialnets ' . pp.  – . doi: . / . . isbn  - - - - . newsome, james; shi, elaine; song, dawn; perrig, adrian ( ). "the sybil attack in sensor networks". proceedings of the third international symposium on information processing in sensor networks - ipsn' . pp.  – . doi: . / . . isbn  - . a survey of solutions to the sybil attack on network formation: sybil attacks and reputation systems seigneur, jean-marc; gray, alan; jensen, christian damsgaard ( ). "trust transfer: encouraging self-recommendations without sybil attack". trust management. lecture notes in computer science. . pp.  – . citeseerx  . . . . . doi: . / _ . isbn  - - - - . a survey of dht security techniques by guido urdaneta, guillaume pierre and maarten van steen. acm computing surveys, . an experiment on the weakness of reputation algorithms used in professional social networks: the case of naymz by marco lazzari. proceedings of the iadis international conference e-society . retrieved from "https://en.wikipedia.org/w/index.php?title=sybil_attack&oldid= " categories: computer network security reputation management hidden categories: cs maint: uses authors parameter cs maint: discouraged parameter articles with short description short description matches wikidata articles containing potentially dated statements from all articles containing potentially dated statements use dmy dates from april navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages deutsch español فارسی français italiano português Русский Українська edit links this page was last edited on january , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement enabling the future of academic research with the twitter api developer blog back developer blog tips community tools spotlight sign up ‎english (us)‎ ‎日本語‎ ‎english (us)‎ ‎日本語‎ sign up tools enabling the future of academic research with the twitter api by adam tornes and leanne trujillo tuesday, january link copied successfully when we introduced the next generation of the twitter api in july , we also shared our plans to invest in the success of the academic research community with tailored solutions that better serve their goals. today, we’re excited to launch the academic research product track on the new twitter api.  why we’re launching this & how we got here since the twitter api was first introduced in , academic researchers have used data from the public conversation to study topics as diverse as the conversation on twitter itself - from state-backed efforts to disrupt the public conversation to floods and climate change, from attitudes and perceptions about covid- to efforts to promote healthy conversation online. today, academic researchers are one of the largest groups of people using the twitter api.  our developer platform hasn’t always made it easy for researchers to access the data they need, and many have had to rely on their own resourcefulness to find the right information. despite this, for over a decade, academic researchers have used twitter data for discoveries and innovations that help make the world a better place. over the past couple of years, we’ve taken iterative steps to improve the experience for researchers, like when we launched a webpage dedicated to academic research, and updated our twitter developer policy to make it easier to validate or reproduce others’ research using twitter data. we’ve also made improvements to help academic researchers use twitter data to advance their disciplines, answer urgent questions during crises, and even help us improve twitter. for example, in april , we released the covid- stream endpoint - the first free, topic-based stream built solely for researchers to use data from the global conversation for the public good. researchers from around the world continue to use this endpoint for a number of projects. over two years ago, we started our own extensive research to better understand the needs, constraints and challenges that researchers have when studying the public conversation. in october , we tested this product track in a private beta program where we gathered additional feedback. this gave us a glimpse into some of the important work that the free academic research product track we’re launching today can now enable. “the academic research product track gives researchers a window into understanding the use of twitter and social media at large, and is an important step by twitter to support the scientific community.” - dr. sarah shugars, assistant professor at new york university “twitter's enhancements for academic research have the potential to eliminate many of the bottlenecks that scholars confront in working with twitter's api, and allow us to better evaluate the impact and origin of trends we discover.” - dr. david lazer, professor at northeastern university what’s launching today with the new academic research product track, qualified researchers will have access to all v endpoints released to date, as well as: free access to the full history of public conversation via the full-archive search endpoint, which was previously limited to paid premium or enterprise customers higher levels of access to the twitter developer platform for free, including a significantly higher monthly tweet volume cap of million ( x higher than what’s available on the standard product track today) more precise filtering capabilities across all v endpoints to limit data collection to what is relevant for your study and minimize data cleaning requirements new technical and methodological guides to maximize the success of your studies the release of the academic research product track is just a starting point. this initial solution is intended to address the most requested, biggest challenges faced when conducting research on the platform. we are excited to enable even more research that can create a positive impact on the world, and on twitter, in the future.    for more in-depth details about what’s available, see our post on the twitter community forum. where do i start? to use this track, new and existing twitter developers will need to apply for access with the academic research application. this tweet is unavailable this tweet is unavailable. an improved developer portal experience guides you to the product track that best fits your needs. we require this additional application step to help protect the security and privacy of people who use twitter and our developer platform. each application will go through a manual review process to determine whether the described use cases for accessing our academic research product track adhere to our developer policy, and that applicants meet these three requirements: you are either a master’s student, doctoral candidate, post-doc, faculty, or research-focused employee at an academic institution or university. you have a clearly defined research objective, and you have specific plans for how you intend to use, analyze, and share twitter data from your research. learn more about the application. you will use this product track for non-commercial purposes. learn about non-commercial use. we understand that these requirements are not representative of everyone doing academic research with twitter data (for example, if you are an undergraduate, independent researcher, or a non-profit). our future goal is to serve the complete range of research use cases for public twitter data. in the meantime, anyone can apply to start with our v endpoints on the standard product track. this tweet is unavailable this tweet is unavailable. the new application for the academic research track asks specific questions related to your academic profile and research project details. learn more about the application here. what’s next for the twitter api v ? today’s launch marks the beginning of how we plan to support this community with unprecedented access to data that can advance research objectives for nearly any discipline. while we recognize what we’re launching today may not address all needs of the community, this is a starting point and we are committed to continued support for academic researchers in the future. we’ll continue to listen and learn from you all, and welcome your feedback on how we can continue to improve and best serve your needs. as we’ve seen over the last years, the research topics that can be studied with twitter data are vast, and the future possibilities are endless. we hope you are as excited as we are about the possibilities this new product track creates for your research. in coming months, we will introduce a specialized business product track, as well as additional levels of access within our academic research, standard, and business product tracks. we are also exploring more flexible access terms, support for additional projects with unique use cases within your product track, and other improvements intended to help researchers and developers to get started, grow, and scale their projects all within the same api. to follow our planned releases, check out the product roadmap. eventually, the new twitter api will fully replace the v . standard, premium, and enterprise apis. though before that can happen, we have a lot more to build, which is why we are referring to today’s launch as early access. early access gives you a chance to get started and get ahead on using our new, v endpoints. learn more about how we plan to roll out the new twitter api here. have questions or want to connect with other researchers using the twitter api? check out our academic research community forum. have ideas about how we can improve the new twitter api? upvote ideas or add your own in the v api feedback channel. this tweet is unavailable this tweet is unavailable. adam tornes ‎@atornes‎ staff product manager, developer & enterprise solutions leanne trujillo ‎@leanne_tru‎ sr. program manager, developer & enterprise solutions only on twitter #twitterapi #academicresearch tweet twitter logo icon tags: api academicresearch link copied successfully more from tools prototyping in production for rapid user feedback by daniele bernardi on thursday, december introducing a new and improved twitter api by ian cairns and priyanka shetty on thursday, july previewing changes to the user and mentions timeline api endpoints by ‎@robjohnson ‎ and ‎@yoyoel ‎ on tuesday, march designing the new twitter developer experience by alyssa reese on wednesday, august see what's happening ‎@twitter‎ twitter platform twitter.com status card validator privacy center transparency center twitter, inc. about the company twitter for good company news brand toolkit jobs and internships investors help help center using twitter twitter media ads help center managing your account safety and security rules and policies contact us developer resources developer home documentation forums communities developer blog engineering blog developer terms business resources advertise twitter for business resources and guides twitter for marketers marketing insights brand inspiration twitter data twitter flight school ‎© twitter, inc.‎ cookies privacy terms and conditions by using twitter’s services you agree to our cookies use. we use cookies for purposes including analytics, personalisation, and ads. ok bethany nowviskie bethany nowviskie foreword (to the past) congratulations to melissa terras and paul gooding on the publication of an important new collection of essays entitled electronic legal... a pledge: self-examination and concrete action in the jmu libraries “the beauty of anti-racism is that you don’t have to pretend to be free of racism to be an anti-racist.... change us, too [the following is a brief talk i gave at the opening plenary of rbms , a meeting of the rare... from the grass roots [this is a cleaned-up version of the text from which i spoke at the conference of research libraries uk,... how the light gets in i took a chance on a hackberry bowl at a farmer’s market—blue-stained and turned like a drop of water. it’s... reconstitute the world [what follows is the text of a talk i gave in two different contexts last week, as &# ;reconstitute the world:... spectra for speculative knowledge design [last weekend, i joined the inspiring, interdisciplinary ecotopian toolkit gathering hosted by penn&# ;s program in environmental humanities. (how lucky was i? we even got... we raise our voices [crossposted statement on us administration budget proposal from the &# ;director&# ;s desk&# ; at the digital library federation blog.] last night, the... iv. coda: speculative computing ( ) [shannon mattern&# ;s wry observation that &# ;speculative now seems to be the universal prefix&# ; got me thinking about time and unpredictability, and reminded me... inauguration day january th has inaugurated the worst and longest case of writer’s block of my life. i hate to write, under... open invitations [these are unedited remarks from the closing plenary of the dlf forum, written about minutes before it began,... speculative collections [this is the text of a talk i gave last week, as &# ;speculative collections and the emancipatory library,&# ; to close... alternate futures/usable pasts [while i&# ;m cleaning up the text of a talk i gave at harvard&# ;s hazen symposium last week (see #hazenatharvard or merrilee&# ;s... everywhere, every when this is the text of a presentation i made yesterday at a wonderful columbia university symposium called insuetude (still ongoing),... capacity through care [this is the draft of an invited contribution to a forum on &# ;care&# ; that will appear in debates in the... hallowmas [trigger warning: miscarriage.] ten years ago today, i lost the baby that might have come after my son, and not... on capacity and care [this is the blended and edited text of two talks i gave last week. one, titled &# ;on capacity and care,&# ;... supporting practice in community [here&# ;s a cleaned-up version of brief remarks i made in a panel discussion on &# ;cultivating digital library professionals,&# ; at tuesday&# ;s... a game nonetheless [i recently had the pleasure of responding to a creative and beautifully grounded talk by kevin hamilton of the university... open and shut i recently collaborated on a project a little outside the ordinary for me: a case study for a chapter in... all at once thirteen years ago, i was a graduate student in english literature when the twin towers collapsed, a fireball erupted from... charter-ing a path [cross-posted from the re:thinking blog at clir, the council on library and information resources, where i&# ;m honored to serve as... speculative computing & the centers to come [this is a short talk i prepared for a panel discussion today with brett bobley, ed ayers, and stephen robertson,... johannes factotum & the ends of expertise [this—more or less—is the text of a keynote talk i delivered last week in atlanta, at the dlf forum:... neatline & visualization as interpretation [this post is re-published from an invited response to a february  mediacommons question of the week: &# ;how can we better... a kit for hosting speaking in code [cross-posted from the re:thinking blog at clir, the council on library and information resources, where i&# ;m honored to be serving... digital humanities in the anthropocene [update: i&# ;ve made low-res versions of my slides and an audio reading available for download on vimeo, alex gil has... anthropocene abstract i am deeply honored to have been invited to give a plenary lecture at this year&# ;s digital humanities conference, planned... asking for it a report published this week by oclc research asks the burning question of no one, no where: &# ;does every research... on the origin of “hack” and “yack” one of the least helpful constructs of our “digital humanities” moment has been a supposed active opposition, drawn out over... the open library blog the open library blog a web page for every book introducing the open library explorer try it here! if you like it, share it. bringing years of librarian-knowledge to life by nick norman with drini cami &# ; mek at the library leaders forum (demo), open library unveiled the beta for what it&# ;s calling the library explorer: an immersive interface which powerfully recreates and enhances the experience of navigating [&# ;] importing your goodreads & accessing them with open library’s apis by mek today joe alcorn, founder of readng, published an article (https://joealcorn.co.uk/blog/ /goodreads-retiring-api) sharing news with readers that amazon&# ;s goodreads service is in the process of retiring their developer apis, with an effective start date of last tuesday, december th, . the topic stirred discussion among developers and book lovers alike, making the front-page of the [&# ;] on bookstores, libraries & archives in the digital age the following was a guest post by brewster kahle on against the grain (atg) &# ; linking publishers, vendors, &# ; librarians by:&# ;brewster kahle, founder &# ; digital librarian, internet archive​​​​​​​ ​​​back in ,&# ;i was honored to give a keynote at the meeting of the&# ;society of american archivists, when the president of the society presented me with a [&# ;] amplifying the voices behind books exploring how open library uses author data to help readers move from imagination to impact by nick norman, edited by mek &# ; drini according to rené descartes, a creative mathematician, “the reading of all good books is like a conversation with the finest [people] of past centuries.” if that’s true, then who are some of [&# ;] giacomo cignoni: my internship at the internet archive this summer, open library and the internet archive took part in google summer of code (gsoc), a google initiative to help students gain coding experience by contributing to open source projects. i was lucky enough to mentor giacomo while he worked on improving our bookreader experience and infrastructure. we have invited giacomo to write a [&# ;] google summer of code : adoption by book lovers by tabish shaikh &# ; mek openlibrary.org,the world’s best-kept library secret: let’s make it easier for book lovers to discover and get started with open library. hi, my name is tabish shaikh and this summer i participated in the google summer of code program with open library to develop improvements which will help book lovers discover [&# ;] open library for language learners by guyrandy jean-gilles - - a quick browse through the app store and aspiring language learners will find themselves swimming in useful programs. but for experienced linguaphiles, the never-ending challenge is finding enough raw content and media to consume in their adopted tongue. open library can help. earlier this year, open library added reading levels to [&# ;] meet the librarians of open library by lisa seaberg are you a book lover looking to contribute to a warm, inclusive library community? we’d love to work with you: learn more about volunteering @ open library behind the scenes of open library is a whole team of developers, data scientists, outreach experts, and librarians working together to make open library better [&# ;] re-thinking open library’s book pages by mek karpeles, tabish shaikh we&# ;ve redesigned our book pages: before →after. please share your feedback with us. a web page for every book&# ; this is the mission of open library: a free, inclusive, online digital library catalog which helps readers find information about any book ever published. millions of books in open library&# ;s catalog [&# ;] reading logs: going public & helping book lovers share hi book lovers, starting - - , reading logs for new open library accounts will be public by default. readers may go here to view or manage their reading log privacy preferences. this will not affect the privacy of your reading history &# ; only books which you explicitly mark as want to read, currently reading, or already [&# ;] hawa feminist coalition – coalition of young feminists in somalia skip to content news home     |     hawa feminist coalition coalition of young feminists in somalia email info@femsom.org call now donate menu home about us our vision our mission our team our members our governance structure our work advocacy & awareness rising leadership development & empowerment collective action and feminist movement building publications blog join us contact us coalition of young feminists working to promote the safety, equality, justice, rights and dignity of girls and young women in somalia. join us! we strive to providing a brighter future for our sisters in somalia. join us! we do mobilize collective action and meaningful ways of working with each other…. join us! home who we are about us hawa feminist coalition was founded by young feminists all under the age of in with aim of promoting the safety, equality, justice, rights and dignity of girls and young women in somalia where women and girls bear an unequal brunt of hardships exacerbated by poverty, conflict, religious and cultural limitations which promotes strict male authority. read more our vision somalia where gender equality is achieved and women and girls enjoy all their rights and live in dignity. read more our mission mobilisation of somali young women and girls for achievement of gender equality and the realisation of women’s and girls’ rights at all levels to enjoy all their rights and live in dignity. read more we are coalition of young feminists all under the age of all standing for promoting the safety, equality, justice, rights and dignity of girls and young women in somalia. join us! if you are interesting to be part of collective feminist movement. join us! member groups / clubs members what we do collective action & feminist movement building we mobilize and strengthen feminist based collective actions and practice meaningful ways of working with each other to be visible, strong and diverse enough to result in concrete and sustainable change in achieving gender equality in somalia. read more leadership development & empowerment we provide capacity development and empowerment for our members and feminist grassroots groups to build stronger grassroots movements with the confidence, information, skills and strategies they need to bring dramatic changes in norms, laws, policies and practices toward achieving gender equality in somalia. read more advocacy & awareness rising we use the influence of art, music, culture, poetry, social media, feminist activism to promote the safety, equality, justice, rights and dignity of girls, young women and other marginalized groups. read more latest news statement: hawa feminist coalition condemns two sisters killed in mogadishu hawa feminist coalition condemns the death of fahdi adow abdi and faiza adow abdi in mogadishu in the night of april , after a mortar landed in their house ... read more hawa feminist coalition advocates promotion of sex-disaggregated data in the event of commemoration of open data day in commemoration of open data day; an annual celebration event held all over the world in the first week of march in every year, hawa feminist coalition organized an online ... read more join us in promotion of sex-disaggregated data in the event of commemoration of open day open data day is an annual celebration of open data all over the world. groups from around the world create local events on the day where they will use open ... read more awareness rising on raise of domestic violence amid the covid- health crisis in puntland gender-based violence (gbv) increases during every type of emergency – whether economic crises, conflict or disease outbreaks. pre-existing toxic social norms and gender inequalities, economic and social stress caused by ... read more statement: hawa feminist coalition condemns arbitrary arrest of daljir journalists for reporting on gbv cases we understand that reporting on these topics is a difficult task, and we appreciate the media’s commitment to doing so with integrity. we strongly condemn the arbitrary arrest of these journalists ... read more statetement: call for immediate action on rape and murder of innocent girl in bosaso very sad! a body of young girl horrifically murdered was found lying on bosaso street. the young girl seems to be raped and then murdered with her face beaten terribly, ... read more our team jawahir a. mohamed executive director mariam m. hussein head of operations kowsar abdisalam guled head of programs linda s. mohamed membership officer learn more our partners previous next who we are coalition of young feminists in somalia, all under the age of working to promote the safety, equality, justice, rights and dignity of girls and young women in somalia. our office hawa feminist coalition hq laanta hawada, airport road bosaso puntland somalia email: info@femsom.org tell: + join us! join us!, if you are a young girl under the age of years, interesting to be part of collective feminist movement working to promote the safety, equality, justice, rights and dignity of girls and young women in somalia. hawa feminist coalition theme by grace themes islandora open meeting: april , - google docs javascript isn't enabled in your browser, so this file can't be opened. enable and reload. islandora open meeting: april ,        share sign in the version of the browser you are using is no longer supported. please upgrade to a supported browser.dismiss file edit view tools help accessibility debug see new changes code lib | we are developers and technologists for libraries, museums, and archives who are dedicated to being a diverse and inclusive community, seeking to share ideas and build collaboration. about chat conference jobs journal local mailing list planet wiki code lib.org was migrated from drupal to jekyll in june . some links may still be broken. to report issues or help fix see: https://github.com/code lib/code lib.github.io posts nov , code lib sep , code lib aug , code lib apr , code lib journal issue call for papers oct , issue of the code lib journal aug , code lib jul , issue of the code lib journal jun , code lib journal issue call for papers oct , code lib journal # oct , c l : call for presentation/panel proposals oct , code lib jul , code lib journal # apr , code lib journal # sep , jobs.code lib.org studied aug , code lib jul , code lib northern california: stanford, ca jul , code lib journal # apr , code lib journal # : special issue on diversity in library technology mar , code lib will be in philadelphia mar , code lib conference proposals feb , code lib north : st. catharines, on feb , code lib videos jan , code of conduct dec , code lib diversity scholarships dec , your code does not exist in a vacuum dec , your chocolate is in my peanut butter! mixing up content and presentation layers to build smarter books in browsers with rdfa, schema.org, and linked data topics dec , you gotta keep 'em separated: the case for "bento box" discovery interfaces dec , refinery — an open source locally deployable web platform for the analysis of large document collections dec , programmers are not projects: lessons learned from managing humans dec , our $ , problem: why library school? dec , making your digital objects embeddable around the web dec , leveling up your git workflow dec , level up your coding with code club (yes, you can talk about it) dec , how to hack it as a working parent: or, should your face be bathed in the blue glow of a phone at am? dec , helping google (and scholars, researchers, educators, & the public) find archival audio dec , heiðrún: dpla's metadata harvesting, mapping and enhancement system dec , got git? getting more out of your github repositories dec , feminist human computer interaction (hci) in library software dec , dynamic indexing: a tragic solr story dec , docker? vms? ec ? yes! with packer.io dec , digital content integrated with ils data for user discovery: lessons learned dec , designing and leading a kick a** tech team dec , consuming big linked open data in practice: authority shifts and identifier drift dec , byob: build your own bootstrap dec , book reader bingo: which page-turner should i use? dec , beyond open source dec , awesome pi, lol! dec , annotations as linked data with fedora and triannon (a real use case for rdf!) dec , american (archives) horror story: lto failure and data loss dec , a semantic makeover for cms data dec , code lib lighting talks nov , store nov , voting for code lib prepared talks is now open. nov , keynote voting for the conference is now open! sep , code lib : call for proposals sep , code lib north (ottawa): tuesday october th, sep , code libbc: november and , sep , conference schedule jul , code lib journal issue jul , code lib norcal july in san mateo jul , code lib apr , code lib trip report - zahra ashktorab apr , code lib trip report- nabil kashyap apr , code lib trip report - junior tidal apr , code lib trip report - jennifer maiko kishi apr , code lib trip report - j. (jenny) gubernick apr , code lib trip report - emily reynolds apr , code lib trip report - coral sheldon hess apr , code lib trip report - christina harlow apr , code lib trip report - arie nugraha mar , call for proposals: code lib journal, issue feb , code of conduct jan , code lib call for host proposals jan , code lib sponsors jan , websockets for real-time and interactive interfaces jan , we are all disabled! universal web design making web services accessible for everyone jan , visualizing solr search results with d .js for user-friendly navigation of large results sets jan , visualizing library resources as networks jan , under the hood of hadoop processing at oclc research jan , towards pasta code nirvana: using javascript mvc to fill your programming ravioli jan , sustaining your open source project through training jan , structured data now: seeding schema.org in library systems jan , quick and easy data visualization with google visualization api and google chart libraries jan , queue programming -- how using job queues can make the library coding world a better place jan , phantomjs+selenium: easy automated testing of ajax-y uis jan , personalize your google analytics data with custom events and variables jan , organic free-range api development - making web services that you will actually want to consume jan , next generation catalogue - rdf as a basis for new services jan , more like this: approaches to recommending related items using subject headings jan , lucene's latest (for libraries) jan , discovering your discovery system in real time jan , dead-simple video content management: let your filesystem do the work jan , building for others (and ourselves): the avalon media system jan , behold fedora : the incredible shrinking repository! jan , all tiled up jan , a reusable application to enable self deposit of complex objects into a digital preservation environment jan , a book, a web browser and a tablet: how bibliotheca alexandrina's book viewer framework makes it possible jan , conference schedule jan , code lib conference diversity scholarship recipients nov , code lib diversity scholarships (application deadline: dec. , , pm est) nov , code lib keynote speakers sep , code lib jun , code lib conference prospectus for sponsors mar , code lib conference proposals jan , ask anything! dec , code lib call for host proposals dec , the care and feeding of a crowd dec , the avalon media system: a next generation hydra head for audio and video delivery dec , solr update dec , rest is your mobile strategy dec , practical relevance ranking for million books. dec , pitfall! working with legacy born digital materials in special collections dec , n characters in search of an author dec , linked open communism: better discovery through data dis- and re- aggregation dec , hybrid archival collections using blacklight and hydra dec , html video now! dec , hands off! best practices and top ten lists for code handoffs dec , hacking the dpla dec , google analytics, event tracking and discovery tools dec , evolving towards a consortium marcr redis datastore dec , ead without xslt: a practical new approach to web-based finding aids dec , de-sucking the library user experience dec , data-driven documents: visualizing library data with d .js dec , creating a commons dec , citation search in solr and second-order operators dec , browser/javascript integration testing with ruby dec , architecting scholarsphere: how we built a repository app that doesn't feel like yet another janky old repository app dec , all teh metadatas re-revisited dec , actions speak louder than words: analyzing large-scale query logs to improve the research experience nov , code lib scholarship (deadline: december , ) nov , code lib nov , code lib schedule oct , code lib conference call for propoosals sep , keynote voting for the conference is now open! jul , dates set for code lib in chicago may , code lib journal - call for proposals may , ruby-marc . . released apr , code lib journal: editors wanted feb , code lib journal issue is published! feb , ask anything! – facilitated by carmen mitchell- code lib jan , relevance ranking in the scholarly domain - tamar sadeh, phd jan , kill the search button ii - the handheld devices are coming - jørn thøgersen, michael poltorak nielsen jan , stack view: a library browsing tool - annie cain jan , search engine relevancy tuning - a static rank framework for solr/lucene - mike schultz jan , practical agile: what's working for stanford, blacklight, and hydra - naomi dushay jan , nosql bibliographic records: implementing a native frbr datastore with redis - jeremy nelson jan , lies, damned lies, and lines of code per day - james stuart jan , indexing big data with tika, solr & map-reduce - scott fisher, erik hetzner jan , in-browser data storage and me - jason casden jan , how people search the library from a single search box - cory lown jan , discovering digital library user behavior with google analytics - kirk hess jan , building research applications with mendeley - william gunn jan , your ui can make or break the application (to the user, anyway) - robin schaaf jan , your catalog in linked data - tom johnson jan , the golden road (to unlimited devotion): building a socially constructed archive of grateful dead artifacts - robin chandler jan , quick and dirty clean usability: rapid prototyping with bootstrap - shaun ellis jan , “linked-data-ready” software for libraries - jennifer bowen jan , html microdata and schema.org - jason ronallo jan , hathitrust large scale search: scalability meets usability - tom burton-west jan , design for developers - lisa kurt jan , beyond code: versioning data with git and mercurial - charlie collett, martin haye jan , all teh metadatas! or how we use rdf to keep all of the digital object metadata formats thrown at us - declan fleming dec , discussion for elsevier app challenge during code lib dec , so you want to start a kindle lending program dec , code lib call for host proposals nov , code lib scholarship (deadline: december , ) oct , code lib sponsor listing oct , code lib schedule jul , code lib feb , code lib sponsorship jan , vufind beyond marc: discovering everything else - demian katz jan , one week | one tool: ultra-rapid open source development among strangers - scott hanrath jan , letting in the light: using solr as an external search component - jay luker and benoit thiell jan , kuali ole: architecture for diverse and linked data - tim mcgeary and brad skiles jan , keynote address - diane hillmann jan , hey, dilbert. where's my data?! - thomas barker jan , enhancing the mobile experience: mobile library services at illinois - josh bishoff - josh bishoff jan , drupal as rapid application development tool - cary gordon jan , code lib in seattle jan , lightning talks jan , breakout sessions jan , (yet another) home-grown digital library system, built upon open source xml technologies and metadata standards - david lacy jan , why (code ) libraries exist - eric hellman jan , visualizing library data - karen coombs jan , sharing between data repositories - kevin s. clarke jan , practical relevancy testing - naomi dushay jan , opinionated metadata (om): bringing a bit of sanity to the world of xml metadata - matt zumwalt jan , mendeley's api and university libraries: three examples to create value - ian mulvany jan , let's get small: a microservices approach to library websites - sean hannan jan , gis on the cheap - mike graves jan , fiwalk with me: building emergent pre-ingest workflows for digital archival records using open source forensic software - mark m jan , enhancing the performance and extensibility of the xc’s metadataservicestoolkit - ben anderson jan , chicago underground library’s community-based cataloging system - margaret heller and nell taylor jan , building an open source staff-facing tablet app for library assessment - jason casden and joyce chapman jan , beyond sacrilege: a couchapp catalog - gabriel farrell jan , ask anything! – facilitated by dan chudnov jan , a community-based approach to developing a digital exhibit at notre dame using the hydra framework - rick johnson and dan brubak dec , code lib schedule dec , code lib call for host proposals nov , scholarships to attend the code lib conference (deadline dec. , ) sep , code lib sponsorship jun , issue of the code lib journal mar , location of code lib mar , code lib : get ready for the best code lib conference yet! mar , issue of the code lib journal mar , vote on code lib hosting proposals feb , you either surf or you fight: integrating library services with google wave - sean hannan - code lib feb , vampires vs. werewolves: ending the war between developers and sysadmins with puppet - bess sadler - code lib feb , the linked library data cloud: stop talking and start doing - ross singer - code lib feb , taking control of library metadata and websites using the extensible catalog - jennifer bowen - code lib feb , public datasets in the cloud - rosalyn metz and michael b. klein - code lib feb , mobile web app design: getting started - michael doran - code lib feb , metadata editing – a truly extensible solution - david kennedy and david chandek-stark - code lib feb , media, blacklight, and viewers like you (pdf, . mb) - chris beer - code lib feb , matching dirty data – yet another wheel - anjanette young and jeff sherwood - code lib feb , library/mobile: developing a mobile catalog - kim griggs - code lib feb , keynote # : catfish, cthulhu, code, clouds and levenshtein distance - paul jones - code lib feb , keynote # : cathy marshall - code lib feb , iterative development done simply - emily lynema - code lib feb , i am not your mother: write your test code - naomi dushay, willy mene, and jessie keck - code lib feb , how to implement a virtual bookshelf with solr - naomi dushay and jessie keck - code lib feb , hive: a new tool for working with vocabularies - ryan scherle and jose aguera - code lib feb , enhancing discoverability with virtual shelf browse - andreas orphanides, cory lown, and emily lynema - code lib feb , drupal : a more powerful platform for building library applications - cary gordon - code lib feb , do it yourself cloud computing with apache and r - harrison dekker - code lib feb , cloud lib - jeremy frumkin and terry reese - code lib feb , becoming truly innovative: migrating from millennium to koha - ian walls - code lib feb , ask anything! – facilitated by dan chudnov - code lib feb , a better advanced search - naomi dushay and jessie keck - code lib feb , ways to enhance library interfaces with oclc web services - karen coombs - code lib feb , code lib lightning talks feb , code lib breakout sessions feb , code lib participant release form feb , code lib hosting proposals solicited jan , code lib scholarship recipients jan , code lib north dec , scholarships to attend the code lib conference dec , code lib registration dec , conference info dec , code lib schedule dec , code lib sponsorship nov , code lib conference prepared talks voting now open! oct , code lib call for prepared talk proposals sep , vote for code lib keynotes! jul , code lib jun , code lib journal: new issue now available may , visualizing media archives: a case study may , the open platform strategy: what it means for library developers may , if you love something...set it free may , what we talk about when we talk about frbr may , the rising sun: making the most of solr power may , great facets, like your relevance, but can i have links to amazon and google book search? may , freecite - an open source free-text citation parser may , freebasing for fun and enhancement may , extending biblios, the open source web based metadata editor may , complete faceting may , a new platform for open data - introducing ‡biblios.net web services may , sebastian hammer, keynote address may , blacklight as a unified discovery platform may , a new frontier - the open library environment (ole) may , the dashboard initiative may , restafarian-ism at the nla may , open up your repository with a sword! may , lusql: (quickly and easily) getting your data from your dbms into lucene may , like a can opener for your data silo: simple access through atompub and jangle may , libx . may , how i failed to present on using dvcs for managing archival metadata may , djatoka for djummies may , a bookless future for libraries: a comedy in acts may , why libraries should embrace linked data mar , code lib journal: new issue now available feb , see you next year in asheville feb , code lib lightning talks feb , code lib venue voting feb , oclc grid services boot camp ( preconference) feb , code lib hosting proposals jan , code lib logo jan , code lib logo debuts jan , code lib breakout sessions jan , call for code lib hosting proposals jan , code lib scholarship recipients jan , code lib t-shirt design contest dec , code lib registration open! dec , code lib journal issue published dec , code lib gender diversity and minority scholarships dec , calling all code libers attending midwinter dec , logo design process launched dec , code lib schedule dec , pre-conferences nov , voting on presentations for code lib open until december nov , drupal lib unconference ( / / darien, ct) oct , call for proposals, code lib conference oct , ne.code lib.org sep , code lib keynote voting sep , logo? you decide sep , solrpy google code project sep , code lib sep , code lib sponsorship aug , code libnyc aug , update from linkedin jul , linkedin group growing fast jul , code lib group on linkedin apr , elpub open scholarship: authority, community and sustainability in the age of web . mar , code libcon lightning talks mar , brown university to host code lib feb , desktop presenter software feb , presentations from libraryfind pre-conference feb , vote for code lib host! feb , karen coyle keynote - r&d: can resource description become rigorous data? feb , code libcon breakout sessions feb , call for code lib hosting proposals jan , code lib conference t-shirt design jan , code lib registration now open! dec , zotero and you, or bibliography on the semantic web dec , xforms for metadata creation dec , working with the worldcat api dec , using a css framework dec , the wayback machine dec , the making of the code lib journal dec , the code lib future dec , show your stuff, using omeka dec , second life web interoperability - moodle and merlot.org dec , rdf and rda: declaring and modeling library metadata dec , ÖpënÜrl dec , oss web-based cataloging tool dec , marcthing dec , losing sleep over rest? dec , from idea to open source dec , finding relationships in marc data dec , dlf ils discovery interface task force api recommendation dec , delivering library services in the web . environment: osu libraries publishing system for and by librarians dec , couchdb is sacrilege... mmm, delicious sacrilege dec , building the open library dec , building mountains out of molehills dec , a metadata registry dec , code lib gender diversity and minority scholarships dec , conference schedule nov , code lib keynote survey oct , code lib call for proposals oct , code lib schedule jul , code lib conference jul , random #code lib quotes jun , request for proposals: innovative uses of crossref metadata may , library camp nyc, august , apr , code lib - video, audio and podcast available mar , code lib - day video available mar , erik hatcher keynote mar , my adventures in getting data into the archiviststoolkit mar , karen schneider keynote "hurry up please it's time" mar , code lib conference feedback available mar , code lib video trickling in mar , code lib.org restored feb , code lib will be in portland, or feb , code lib blog anthology feb , the intellectual property disclosure process: releasing open source software in academia feb , polling for interest in a european code lib feb , call for proposals to host code lib feb , code lib scholarship recipients feb , delicious! flare + simile exhibit jan , open access self-archiving mandate jan , evergreen keynote jan , code lib t-shirt contest jan , stone soup jan , #code lib logging jan , two scholarships to attend the code lib conference dec , conference schedule now available dec , code lib pre-conference workshop: lucene, solr, and your data dec , traversing the last mile dec , the xquery exposé: practical experiences from a digital library dec , the bibapp dec , smart subjects - application independent subject recommendations dec , open-source endeca in lines or less dec , on the herding of cats dec , obstacles to agility dec , myresearch portal: an xml based catalog-independent opac dec , libraryfind dec , library-in-a-box dec , library data apis abound! dec , get groovy at your public library dec , fun with zeroconfmetaopensearch dec , free the data: creating a web services interface to the online catalog dec , forget the lipstick. this pig just needs social skills. dec , atom publishing protocol primer nov , barton data nov , mit catalog data oct , code lib downtime oct , call for proposals aug , code lib audio aug , book club jul , code libcon site proposals jul , improving code libcon * jun , code lib conference hosting jun , learning to scratch our own itches jun , code lib conference jun , code lib conference schedule jun , code lib conference lightning talks jun , code lib conference breakouts mar , results of the journal name vote mar , #dspace mar , #code lib logging mar , regulars on the #code lib irc channel mar , code lib journal name vote mar , code lib journal: mission, format, guidelines mar , #code lib irc channel faq feb , cufts aim/aol/icq bot feb , code lib journal: draft purpose, format, and guidelines feb , code lib breakout sessions feb , unapi revision feb , code lib presentations will be available feb , planet update feb , weather in corvallis for code lib feb , holiday inn express feb , conference wiki jan , portland hostel jan , lightning talks jan , code lib t-shirt design vote! jan , portland jazz festival jan , unapi version jan , conference schedule in hcalendar jan , code lib t-shirt design contest jan , conference schedule set jan , code lib registration count pool jan , wikid jan , the case for code lib c( ) jan , teaching the library and information community how to remix information jan , practical aspects of implementing open source in armenia jan , lipstick on a pig: ways to improve the sex life of your opac jan , generating recommendations in opacs: initial results and open areas for exploration jan , erp options in an oss world jan , ahah: when good is better than best jan , , lines of code, and other topics from oclc research jan , what blog applications can teach us about library software architecture jan , standards, reusability, and the mating habits of learning content jan , quality metrics jan , library text mining jan , connecting everything with unapi and opa jan , chasing babel jan , anatomy of adore jan , voting on code lib presentation proposals jan , one more week for proposals dec , code lib card dec , planet facelift dec , registration is open dec , planet code lib & blogs dec , code lib call for proposals nov , code lib conference : schedule nov , panizzi nov , drupal installed nov , code lib subscribe via rss code lib code lib code lib code lib.social code lib code lib we are developers and technologists for libraries, museums, and archives who are dedicated to being a diverse and inclusive community, seeking to share ideas and build collaboration. the carpentries the carpentries nav donate search contact home about about us our values code of conduct governance supporters testimonials annual reports equity, inclusion, and accessibility teach what is a workshop? data carpentry lessons software carpentry lessons library carpentry lessons community lessons become an instructor for instructors online workshop recommendations learn our workshops our curricula upcoming workshops past workshops our impact join us get involved help develop lessons become a member organisation job vacancies our community our team core team projects community overview our instructors our maintainers our mentors our regional coordinators our trainers committees and task forces current member organisations connect blog community calendar community discussions community handbook newsletter carpentries podcast twitter we teach foundational coding and data science skills to researchers worldwide. what we do the carpentries teaches foundational coding, and data science skills to researchers worldwide. software carpentry, data carpentry, and library carpentry workshops are based on our lessons. workshop hosts, instructors, and learners must be prepared to follow our code of conduct. more › who we are our diverse, global community includes instructors, helpers, trainers, maintainers, mentors, community champions, member organisations, supporters, workshop organisers, staff and a whole lot more. more › get involved see all the ways you can engage with the carpentries. get information about upcoming events such as workshops, meetups, and discussions from our community calendar, or from our twice-monthly newsletter, carpentry clippings. follow us on twitter, facebook, and slack. more › subscribe to our newsletter "carpentry clippings" events, community updates, teaching tips, in your inbox, twice a month new blog posts core team 'acc-athon' to add alt text across carpentries curricula carpentries core team gets a start on alt text updates for carpentries lessons read more › more posts incubator lesson spotlight: python for business the carpentries strategic plan: one year update foundations of astronomical data science - call for beta pilot applications more › resources for online workshops official carpentries' recommendations this page holds an official set of recommendations by the carpentries to help you organise and run online carpentries workshops. the page is updated periodically as we continue to receive input and feedback from our community. go to page. community-created resources this resource is a section in our handbook containing an evolving list of all community-created resources and conversations around teaching carpentries workshops online. the section is updated periodically to include newer resources and emerging conversations on the subject. go to page. upcoming carpentries workshops click on an individual event to learn more about that event, including contact information and registration instructions. brac university (online) ** instructors: annajiat alim rasel, benson muite feb - may , brac university (online) ** instructors: annajiat alim rasel feb - may , university of edinburgh ** instructors: fran baseby, chris wood, charlotte desvages, alex casper cline helpers: jen harris, marco crotti, robert smith, graham blyth, matthew fellion, francine millard mar - may , enes unidad león, licenciatura en ciencias agrogenómicas ** instructors: tania vanessa arellano fernández, j abraham avelar-rivas helpers: maria cambero, nelly sélem, aarón jaime mar - may , king's college london instructors: rohit goswami, sanjay fuloria, annajiat alim rasel helpers: fursham hamid, james cain, kai lim apr - apr , ucla (online) instructors: jamie jamison, scott gruber, kristian allen, elizabeth mcaulay helpers: tim dennis, geno sanchez, leigh phan, zhiyuan yao, dave george apr - may , institute for modeling collaboration and innovation @ the university of idaho (online) instructors: erich seamon helpers: travis seaborn apr - apr , swansea university (online) instructors: ed bennett, vladimir khodygo, ben thorpe, michele mesiti helpers: tom pritchard apr - apr , united states department of agriculture (usda) instructors: meghan sposato, aditya bandla, adrienne traxler, kristina riemer apr - may , workshop on programming using python ** instructors: bezaye tesfaye belayneh, christian meeßen, hannes fuchs, maximilian dolling helpers: stefan lüdtke apr - apr , united states geological survey instructors: anthony valente, ainhoa oliden sanchez, ian carroll, melissa fabros apr - apr , emerging public leaders (online) instructors: benson muite helpers: selorm tamakloe may - may , uw-madison (online) ** instructors: trisha adamus, clare michaud, tobin magle, sailendharan sudakaran helpers: karl broman, erin jonaitis, casey schacher, heather shimon, sarah stevens may - may , queensland cyber infrastructure foundation ** instructors: david green, paula andrea martinez helpers: marlies hankel, betsy alpert may - may , university of california, santa barbara (online) instructors: torin white, camila vargas, greg janée helpers: kristi liu, renata curty may - may , national oceanic and atmospheric administration instructors: callum rollo, d. sarah stamps, jonathan guyer, annajiat alim rasel may - may , king's college london (online) ** instructors: stefania marcotti, flavia flaviani, alessia visconti helpers: fursham hamid, alejandro santana-bonilla may - may , uw-madison (online) instructors: trisha adamus, clare michaud, sarah stevens, erwin lares helpers: karl broman, casey schacher, sarah stevens, heather shimon may - may , netherlands escience center (online) instructors: pablo rodríguez-sánchez, alessio sclocco helpers: barbara vreede, lieke de boer may - may , openscapes instructors: jake szamosi, bia villas boas, makhan virdi, negin valizadegan may - may , nhs library and health services instructors: jez cope, fran baseby, annajiat alim rasel may - may , queensland cyber infrastructure foundation ** instructors: jason bell, dag evensberget, kasia koziara helpers: david green, marlies hankel, betsy alpert, stéphane guillou, shern tee may - may , auc data science initiative instructors: monah abou alezz, muhammad zohaib anwar, yaqing xu, jason williams may - may , joint genome institute/uc merced ** instructors: rhondene wint jun - jun , king's college london (online) ** instructors: alessia visconti, stefania marcotti, flavia flaviani helpers: fursham hamid, alejandro santana-bonilla jun - jun , nwu, south africa instructors: sebastian mosidi, martin dreyer aug - aug , ** workshops marked with asterisks are based on curriculum from the carpentries lesson programs but may not follow our standard workshop format. workshops with a globe icon are being held online. the corresponding flag notes the country where the host organization is based. click here to see our past workshops.  about the carpentries the carpentries is a fiscally sponsored project of community initiatives, a registered (c) non-profit organisation based in california, usa. we are a global community teaching foundational computational and data science skills to researchers in academia, industry and government. more › services contact rss atom sitemap.xml links our code of conduct our community handbook our privacy policy our annual reports software carpentry website data carpentry website library carpentry website erambler erambler home about series tags talks rdm resources a blog about research communication & higher education & open culture & technology & making & librarianship & stuff intro to the fediverse date: - - tags: [fediverse] [social media] [twitter] wow, it turns out to be years since i wrote this beginners guide to twitter. things have moved on a loooooong way since then. far from being the interesting, disruptive technology it was back then, twitter has become part of the mainstream, the establishment. almost everyone and everything is on twitter now, which has both pros and cons. so what’s the problem? it’s now possible to follow all sorts of useful information feeds, from live updates on transport delays to your favourite sports team’s play-by-play performance to an almost infinite number of cat pictures. read more... collaborations workshop : collaborative ideas & hackday date: - - series: collaborations workshop tags: [technology] [conference] [ssi] [research] [disability] [equality, diversity & inclusion] my last post covered the more “traditional” lectures-and-panel-sessions approach of the first half of the ssi collaborations workshop. the rest of the workshop was much more interactive, consisting of a discussion session, a collaborative ideas session, and a whole-day hackathon! the discussion session on day one had us choose a topic (from a list of topics proposed leading up to the workshop) and join a breakout room for that topic with the aim of producing a “speed blog” by then end of minutes. read more... collaborations workshop : talks & panel session date: - - series: collaborations workshop tags: [technology] [conference] [ssi] [research] [disability] [equality, diversity & inclusion] i’ve just finished attending (online) the three days of this year’s ssi collaborations workshop (cw for short), and once again it’s been a brilliant experience, as well as mentally exhausting, so i thought i’d better get a summary down while it’s still fresh it my mind. collaborations workshop is, as the name suggests, much more focused on facilitating collaborations than a typical conference, and has settled into a structure that starts off with with longer keynotes and lectures, and progressively gets more interactive culminating with a hack day on the third day. read more... date: - - tags: [meta] [design] i’ve decided to try switching this website back to using hugo to manage the content and generate the static html pages. i’ve been on the python-based nikola for a few years now, but recently i’ve been finding it quite slow, and very confusing to understand how to do certain things. i used hugo recently for the glam data science network website and found it had come on a lot since the last time i was using it, so i thought i’d give it another go, and redesign this site to be a bit more minimal at the same time. the theme is still a work in progress so it’ll probably look a bit rough around the edges for a while, but i think i’m happy enough to publish it now. when i get round to it i might publish some more detailed thoughts on the design. ideas for accessible communications date: - - tags: [stuff] [accessibility] [ablism] the disability support network at work recently ran a survey on “accessible communications”, to develop guidance on how to make communications (especially internal staff comms) more accessible to everyone. i grabbed a copy of my submission because i thought it would be useful to share more widely, so here it is. please note that these are based on my own experiences only. i am in no way suggesting that these are the only things you would need to do to ensure your communications are fully accessible. read more... matrix self-hosting date: - - tags: [technology] [matrix] [communication] [self-hosting] [dweb] i started running my own matrix server a little while ago. matrix is something rather cool, a chat system similar to irc or slack, but open and federated. open in that the standard is available for anyone to view, but also the reference implementations of server and client are open source, along with many other clients and a couple of nascent alternative servers. federated in that, like email, it doesn’t matter what server you sign up with, you can talk to users on your own or any other server. read more... what do you miss least about pre-lockdown life? date: - - tags: [stuff] [reflection] [pandemic] @janethughes on twitter: what do you miss the least from pre-lockdown life? i absolutely do not miss wandering around the office looking for a meeting room for a confidential call or if i hadn’t managed to book a room in advance. let’s never return to that joyless frustration, hey? : am · feb , after seeing terence eden taking janet hughes' tweet from earlier this month as a writing prompt, i thought i might do the same. read more... remarkable blogging date: - - tags: [technology] [writing] [gadgets] and the handwritten blog saga continues, as i’ve just received my new remarkable tablet, which is designed for reading, writing and nothing else. it uses a super-responsive e-ink display and writing on it with a stylus is a dream. it has a slightly rough texture with just a bit of friction that makes my writing come out a lot more legibly than on a slippery glass touchscreen. if that was all there was to it, i might not have wasted my money, but it turns out that it runs on linux and the makers have wisely decided not to lock it down but to give you full root mess. read more... glam data science network fellow travellers date: - - series: glam data science network tags: [data science] [glam] [librarianship] [humanities] [cultural heritage] updates - - thanks to gene @dzshuniper@ausglam.space for suggesting adho and a better attribution for the opening quote (see comments below for details) see comments & webmentions for details. “if you want to go fast, go alone. if you want to go far, go together.” — african proverb, probably popularised in english by kenyan church leader rev. samuel kobia (original) this quote is a popular one in the carpentries community, and i interpret it in this context to mean that a group of people working together is more sustainable than individuals pursuing the same goal independently. read more... date: - - tags: [font] [writing] [stuff] i’ve updated my blog theme to use the quasi-proportional fonts iosevka aile and iosevka etoile. i really like the aesthetic, as they look like fixed-width console fonts (i use the true fixed-width version of iosevka in my terminal and text editor) but they’re actually proportional which makes them easier to read. https://typeof.net/iosevka/ of next page me elsewhere :: keyoxide | keybase | mastodon | matrix | twitter | github | gitlab | orcid | pypi | linkedin © jez cope | built by: hugo | theme: mnemosyne build status: except where noted, this work is licensed under a creative commons attribution . international license. the thingology blog the librarything blog thingology monday, april th, new syndetics unbound feature: mark and boost electronic resources proquest and librarything have just introduced a major new feature to our catalog-enrichment suite, syndetics unbound, to meet the needs of libraries during the covid- crisis. our friends at proquest blogged about it briefly on the proquest blog. this blog post goes into greater detail about what we did, how we did it, and what efforts like this may mean for library catalogs in the future. what it does the feature, “mark and boost electronic resources,” turns syndetics unbound from a general catalog enrichment tool to one focused on your library’s electronic resources—the resources patrons can access during a library shutdown. we hope it encourages libraries to continue to promote their catalog, the library’s own and most complete collection repository, instead of sending patrons to a host of partial, third-party eresource platforms. the new feature marks the library’s electronic resources and “boosts,” or promotes, them in syndetics unbound’s discovery enhancements, such as “you may also like,” “other editions,” “tags” and “reading levels.” here’s a screenshot showing the feature in action. how it works the feature is composed of three settings. by default, they all turn on together, but they can be independently turned off and on. boost electronic resources chooses to show electronic editions of an item where they exist, and boosts such items within discovery elements. mark electronic resources with an “e” icon marks all electronic resources—ebooks, eaudio, and streaming video. add electronic resources message at top of page adds a customizable message to the top of the syndetics unbound area. “mark and boost electronic holdings” works across all enrichments. it is particularly important for “also available as” which lists all the other formats for a given title. enabling this feature sorts electronic resources to the front of the list. we also suggest that, for now, libraries may want to put “also available as” at the top of their enrichment order. why we did it your catalog is only as good as your holdings. faced with a world in which physical holdings are off-limits and electronic resources essential, many libraries have discouraged use of the catalog, which is dominated by non-digital resources, in favor of linking directly to overdrive, hoopla, freegal and so forth. unfortunately, these services are silos, containing only what you bought from that particular vendor. “mark and boost electronic resources” turns your catalog toward digital resources, while preserving what makes a catalog important—a single point of access to all library resources, not a vendor silo. maximizing your electronic holdings to make the best use of “mark and boost electronic resources,” we need to know about all your electronic resources. unfortunately, some systems separate marc holdings and electronic holdings; all resources appear in the catalog, but only some are available for export to syndetics unbound. other libraries send us holding files with everything, but they are unable to send us updates every time new electronic resources are added. to address this issue, we have therefore advanced a new feature—”auto-discover electronic holdings.” turn this on and we build up an accurate representation of your library’s electronic resource holdings, without requiring any effort on your part. adapting to change “mark and boost electronic resources” is our first feature change to address the current crisis. but we are eager to do others, and to adapt the feature over time, as the situation develops. we are eager to get feedback from librarians and patrons! — the proquest and librarything teams labels: new features, new product, syndetics unbound posted by tim @ : pm comments » share thursday, october th, introducing syndetics unbound short version today we’re going public with a new product for libraries, jointly developed by librarything and proquest. it’s called syndetics unbound, and it makes library catalogs better, with catalog enrichments that provide information about each item, and jumping-off points for exploring the catalog. to see it in action, check out the hartford public library in hartford, ct. here are some sample links: the raven boys by maggie stiefvater alexander hamilton by ron chernow faithful place by tana french we’ve also got a press release and a nifty marketing site. update: webinars every week! we’re now having weekly webinars, in which you can learn all about syndetics unbound, and ask us questions. visit proquest’s webex portal to see the schedule and sign up! long version the basic idea syndetics unbound aims to make patrons happier and increase circulation. it works by enhancing discovery within your opac, giving patrons useful information about books, movies, music, and video games, and helping them find other things they like. this means adding elements like cover images, summaries, recommendations, series, tags, and both professional and user reviews. in one sense, syndetics unbound combines products—the proquest product syndetics plus and the librarything products librarything for libraries and book display widgets. in a more important sense, however, it leaps forward from these products to something new, simple, and powerful. new elements were invented. static elements have become newly dynamic. buttons provide deep-dives into your library’s collection. and—we think—everything looks better than anything syndetics or librarything have done before! (that’s one of only two exclamation points in this blog post, so we mean it.) simplicity syndetics unbound is a complete and unified solution, not a menu of options spread across one or even multiple vendors. this simplicity starts with the design, which is made to look good out of the box, already configured for your opac and look. the installation requirements for syndetics unbound are minimal. if you already have syndetics plus or librarything for libraries, you’re all set. if you’ve never been a customer, you only need to add a line of html to your opac, and to upload your holdings. although it’s simple, we didn’t neglect options. libraries can reorder elements, or drop them entirely. we expect libraries will pick and choose, and evaluate elements according to patron needs, or feedback from our detailed usage stats. libraries can also tweak the look and feel with custom css stylesheets. and simplicity is cheap. to assemble a not-quite-equivalent bundle from proquest’s and librarything’s separate offerings would cost far more. we want everyone who has syndetics unbound to have it in its full glory. comprehensiveness and enrichments syndetics unbound enriches your catalog with some sixteen enrichments, but the number is less important than the options they encompass. these include both professional and user-generated content, information about the item you’re looking at, and jumping-off points to explore similar items. quick descriptions of the enrichments: boilterplate covers for items without covers. premium cover service. syndetics offers the most comprehensive cover database in existence for libraries—over million full-color cover images for books, videos, dvds, and cds, with thousands of new covers added every week. for syndetics unbound, we added boilerplate covers for items that don’t have a cover, which include the title, author, and media type. summaries. over million essential summaries and annotations, so patrons know what the book’s about. about the author. this section includes the author biography and a small shelf of other items by the author. the section is also adorned by a small author photo—a first in the catalog, although familiar elsewhere on the web. look inside. includes three previous syndetics enrichments—first chapters or excerpts, table of contents and large-size covers—newly presented as a “peek inside the book” feature. series. shows a book’s series, including reading order. if the library is missing part of the series, those covers are shown but grayed out. you may also like. provides sharp, on-the-spot readers advisory in your catalog, with the option to browse a larger world of suggestions, drawn from librarything members and big-data algorithms. in this and other enrichments, syndetics unbound only recommends items that your library owns. the syndetics unbound recommendations cover far more of your collection than any similar service. for example, statistics from the hartford public library show this feature on % of items viewed. professional reviews includes more than . million reviews from library journal, school library journal, new york times, the guardian, the horn book, booklist, bookseller + publisher magazine, choice, publisher’s weekly, and kirkus. a la carte review sources include voice of youth advocates: voya, doody’s medical reviews and quill and quire. reader reviews includes more than . million vetted, reader reviews from librarything members. it also allows patrons and librarians to add their own ratings and reviews, right in your catalog, and then showcase them on a library’s home page and social media. also available as helps patrons find other available formats and versions of a title in your collection, including paper, audio, ebook, and translations. exploring the tag system tags rethinks librarything’s celebrated tag clouds—redesigning them toward simplicity and consistency, and away from the “ransom note” look of most clouds. as data, tags are based on over million tags created by librarything members, and hand-vetted by our staff librarians for quality. a new exploration interface allows patrons to explore what librarything calls “tag mashes”—finding books by combinations of tags—in a simple faceted way. i’m going to be blogging about the redesign of tag clouds in the near future. considering dozens of designs, we decided on a clean break with the past. (i expect it will get some reactions.) book profile is a newly dynamic version of what bowker has done for years—analyzing thousands of new works of fiction, short-story collections, biographies, autobiographies, and memoirs annually. now every term is clickable, and patrons can search and browse over one million profiles. explore reading levels reading level is a newly dynamic way to see and explore other books in the same age and grade range. reading level also includes metametrics lexile® framework for reading. click the “more” button to get a new, super-powered reading-level explorer. this is one my favorite features! (second and last exclamation point.) awards highlights the awards a title has won, and helps patrons find highly-awarded books in your collection. includes biggies like the national book award and the booker prize, but also smaller awards like the bram stoker award and oklahoma’s sequoyah book award. browse shelf gives your patrons the context and serendipity of browsing a physical shelf, using your call numbers. includes a mini shelf-browser that sits on your detail pages, and a full-screen version, launched from the detail page. video and music adds summaries and other information for more than four million video and music titles including annotations, performers, track listings, release dates, genres, keywords, and themes. video games provides game descriptions, esrb ratings, star ratings, system requirements, and even screenshots. book display widgets. finally, syndetics unbound isn’t limited to the catalog, but includes the librarything product book display widgets—virtual book displays that go on your library’s homepage, blog, libguides, facebook, twitter, pinterest, or even in email newsletters. display widgets can be filled with preset content, such as popular titles, new titles, dvds, journals, series, awards, tags, and more. or you point them at a web page, rss feed, or list of isbns, upcs, or issns. if your data is dynamic, the widget updates automatically. here’s a page of book display widget examples. find out more made it this far? you really need to see syndetics unbound in action. check it out. again, here are some sample links of syndetics unbound at hartford public library in hartford, ct: the raven boys by maggie stiefvater, alexander hamilton by ron chernow, faithful place by tana french. webinars. we hold webinars every tuesday and walk you through the different elements and answer questions. to sign up for a webinar, visit this webex page and search for “syndetics unbound.” interested in syndetics unbound at your library? go here to contact a representative at proquest. or read more about at the syndetics unbound website. or email us at ltflsupport@librarything.com and we’ll help you find the right person or resource. labels: librarything for libraries, new feature, new features, new product posted by tim @ : am comments » share thursday, january th, alamw in boston (and free passes)! abby and kj will be at ala midwinter in boston this weekend, showing off librarything for libraries. since the conference is so close to librarything headquarters, chances are good that a few other lt staff members may appear, as well! visit us. stop by booth # to meet abby & kj (and potential mystery guests!), get a demo, and learn about all the new and fun things we’re up to with librarything for libraries, tinycat, and librarything. get in free. are you in the boston area and want to go to alamw? we have free exhibit only passes. click here to sign up and get one! note: it will get you just into the exhibit hall, not the conference sessions themselves. labels: uncategorized posted by kate @ : pm comments » share thursday, june th, for ala : three free opac enhancements for a limited time, librarything for libraries (ltfl) is offering three of its signature enhancements for free! there are no strings attached. we want people to see how librarything for libraries can improve your catalog. check library. the check library button is a “bookmarklet” that allows patrons to check if your library has a book while on amazon and most other book websites. unlike other options, librarything knows all of the editions out there, so it finds the edition your library has. learn more about check library other editions let your users know everything you have. don’t let users leave empty-handed when the record that came up is checked out. other editions links all your holdings together in a frbr model—paper, audiobook, ebook, even translations. lexile measures put metametrics’ the lexile framework® for reading in your catalog, to help librarians and patrons find material based on reading level. in addition to showing the lexile numbers, we also include an interactive browser. easy to add ltfl enhancements are easy to install and can be added to every major ils/opac system and most of the minor ones. enrichments can be customized and styled to fit your catalog, and detailed usage reporting lets you know how they’re doing. see us at ala. stop by booth at ala annual this weekend in san francisco to talk to tim and abby and see how these enhancements work. if you need a free pass to the exhibit hall, details are in this blog post. sign up we’re offering these three enhancements free, for at least two years. we’ll probably send you links showing you how awesome other enhancements would look in your catalog, but that’s it. find out more http://www.librarything.com/forlibraries or email abby blachly at abby@librarything.com. labels: alaac , lexile measures, librarything for libraries, ltfl posted by abby @ : pm comments » share tuesday, june rd, ala in san francisco (free passes) our booth. but this is kate, not tim or abby. she had the baby. tim and i are headed to san francisco this weekend for the ala annual conference. visit us. stop by booth # to talk to us, get a demo, and learn about all the new and fun things we’re up to with librarything for libraries! stay tuned this week for more announcements of what we’ll be showing off. no, really. it’s going to be awesome. get in free. in the sf area and want to go to ala? we have free exhibit only passes. click here to sign up and get one. it will get you just into the exhibit hall, not the conference sessions themselves. labels: ala, alaac posted by abby @ : pm comments » share monday, february th, new “more like this” for librarything for libraries we’ve just released “more like this,” a major upgrade to librarything for libraries’ “similar items” recommendations. the upgrade is free and automatic for all current subscribers to librarything for libraries catalog enhancement package. it adds several new categories of recommendations, as well as new features. we’ve got text about it below, but here’s a short ( : ) video: what’s new similar items now has a see more link, which opens more like this. browse through different types of recommendations, including: similar items more by author similar authors by readers same series by tags by genre you can also choose to show one or several of the new categories directly on the catalog page. click a book in the lightbox to learn more about it—a summary when available, and a link to go directly to that item in the catalog. rate the usefulness of each recommended item right in your catalog—hovering over a cover gives you buttons that let you mark whether it’s a good or bad recommendation. try it out! click “see more” to open the more like this browser in one of these libraries: spokane county library district arapahoe public library waukegan public library cape may public library sails library network find out more find more details for current customers on what’s changing and what customizations are available on our help pages. for more information on librarything for libraries or if you’re interested in a free trial, email abby@librarything.com, visit http://www.librarything.com/forlibraries, or register for a webinar. labels: librarything for libraries, ltfl, recommendations, similar books posted by abby @ : pm comments » share thursday, february th, subjects and the ship of theseus i thought i might take a break to post an amusing photo of something i wrote out today: the photo is a first draft of a database schema for a revamp of how librarything will do library subjects. all told, it has tables. gulp. about eight of the tables do what a good cataloging system would do: distinguishes the various subject systems (lcsh, medical subjects, etc.) preserves the semantic richness of subject cataloging, including the stuff that never makes it into library systems. breaks subjects into their facets (e.g., “man-woman relationships — fiction”) has two subject facets most of the tables, however, satisfy librarything’s unusual core commitments: to let users do their own thing, like their own little library, but also to let them benefit from and participate in the data and contributions of others.( ) so it: links to subjects from various “levels,” including book-level, edition-level, isbn-level and work-level. allows members to use their own data, or “inherit” subjects from other levels. allows for members to “play librarian,” improving good data and suppressing bad data.( ) allows for real-time, fully reversible aliasing of subjects and subject facets. the last is perhaps the hardest. nine years ago (!) i compared librarything to the “ship of theseus,” a ship which is “preserved” although its components are continually changed. the same goes for much of its data, although “shifting sands” might be a better analogy. accounting for this makes for some interesting database structures, and interesting programming. not every system at librarything does this perfectly. but i hope this structure will help us do that better for subjects.( ) weird as all this is, i think it’s the way things are going. at present most libraries maintain their own data, which, while generally copied from another library, is fundamentally siloed. like an evolving species, library records descend from each other; they aren’t dynamically linked. the data inside the records are siloed as well, trapped in a non-relational model. the profession that invented metadata, and indeed invented sharing metadata, is, at least as far as its catalogs go, far behind. eventually that will end. it may end in a “library goodreads,” every library sharing the same data, with global changes possible, but reserved for special catalogers. but my bet is on a more librarything-like future, where library systems will both respect local cataloging choices and, if they like, benefit instantly from improvements made elsewhere in the system. when that future arrives, we got the schema! . i’m betting another ten tables are added before the system is complete. . the system doesn’t presume whether changes will be made unilaterally, or voted on. voting, like much else, existings in a separate system, even if it ends up looking like part of the subject system. . this is a long-term project. our first steps are much more modest–the tables have an order-of-use, not shown. first off we’re going to duplicate the current system, but with appropriate character sets and segmentation by thesaurus and language. labels: cataloging, subjects posted by tim @ : pm comments » share tuesday, january th, librarything recommends in bibliocommons does your library use bibliocommons as its catalog? librarything and bibliocommons now work together to give you high-quality reading recommendations in your bibliocommons catalog. you can see some examples here. look for “librarything recommends” on the right side. not that kind of girl (daniel boone regional library) carthage must be destroyed (ottowa public library) the martian (edmonton public library) little bear (west vancouver memorial library) station eleven (chapel hill public library) the brothers karamazov (calgary public library) quick facts: as with all librarything for libraries products, librarything recommends only recommends other books within a library’s catalog. librarything recommends stretches across media, providing recommendations not just for print titles, but also for ebooks, audiobooks, and other media. librarything recommends shows up to two titles up front, with up to three displayed under “show more.” recommendations come from librarything’s recommendations system, which draws on hundreds of millions of data points in readership patterns, tags, series, popularity, and other data. not using bibliocommons? well, you can get librarything recommendations—and much more—integrated in almost every catalog (opac and ils) on earth, with all the same basic functionality, like recommending only books in your catalog, as well as other librarything for libraries feaures, like reviews, series and tags. check out some examples on different systems here. sirsidynix enterprise (saint louis public library) sirsidynix horizon information portal (hume libraries) sirsidynix elibrary (spokane county public library) iii encore (arapahoe public library) iii webpac pro (waukegan public library) polaris (cape may county library) ex libris voyager (university of wisconsin-eau claire) interested? bibliocommons: email info@bibliocommons.com or visit http://www.bibliocommons.com/augmentedcontent. see the full specifics here. other systems: email abby@librarything.com or visit http://www.librarything.com/forlibraries. labels: uncategorized posted by tim @ : pm comments » share thursday, october th, new: annotations for book display widgets our book display widgets is getting adopted by more and more libraries, and we’re busy making it better and better. last week we introduced easy share. this week we’re rolling out another improvement—annotations! book display widgets is the ultimate tool for libraries to create automatic or hand-picked virtual book displays for their home page, blog, facebook or elsewhere. annotations allows libraries to add explanations for their picks. some ways to use annotations . explain staff picks right on your homepage. . let students know if a book is reserved for a particular class. . add context for special collections displays. how it works check out the librarything for libraries wiki for instructions on how to add annotations to your book display widgets. it’s pretty easy. interested? watch a quick screencast explaining book display widgets and how you can use them. find out more about librarything for libraries and book display widgets. and sign up for a free trial of either by contacting ltflsupport@librarything.com. labels: book display widgets, librarything for libraries, new feature, new features, widgets posted by kj @ : am comments » share tuesday, october th, send us a programmer, win $ , in books. we just posted a new job post job: library developer at librarything (telecommute). to sweeten the deal, we are offering $ , worth of books to the person who finds them. that’s a lot of books. rules! you get a $ , gift certificate to the local, chain or online bookseller of your choice. to qualify, you need to connect us to someone. either you introduce them to us—and they follow up by applying themselves—or they mention your name in their email (“so-and-so told me about this”). you can recommend yourself, but if you found out about it from someone else, we hope you’ll do the right thing and make them the beneficiary. small print: our decision is final, incontestable, irreversible and completely dictatorial. it only applies when an employee is hired full-time, not part-time, contract or for a trial period. if we don’t hire someone for the job, we don’t pay. the contact must happen in the next month. if we’ve already been in touch with the candidate, it doesn’t count. void where prohibited. you pay taxes, and the insidious hidden tax of shelving. employees and their families are eligible to win, provided they aren’t work contacts. tim is not. » job: library developer at librarything (telecommute) labels: jobs posted by tim @ : am comment » share page of ... ...»last » thingology is librarything's ideas blog, on the philosophy and methods of tags, libraries and suchnot. the librarything blog rss feed combined feed search for: recent posts new syndetics unbound feature: mark and boost electronic resources introducing syndetics unbound alamw in boston (and free passes)! for ala : three free opac enhancements ala in san francisco (free passes) recent comments máy phun phân bón on the librarything programming quiz! janis jones on book display widgets from librarything for libraries marie seltenrych on book display widgets from librarything for libraries tye bishop on introducing thingisbn walter clark on new group: “books in —the future of the book world” archives april october january june february january october june may april march december october september june april march february january november october august june april march february january november october september august july june may april march february january december november october august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may categories signals aaron swartz academics ads ahml ala ala ala anaheim ala midwinter ala ala ala ala alaac alamw alamw alamw alamw aleph alexandria egypt amazon amusement android apis app arl arlington heights armenian astroturfing ato attention australia australian australian tax office authenticity awards barcode scanning bea ben franklin berkman center bhutan biblios bigwig blogging book blogs book covers book display widgets book reviews bookpsychic books bookstores booksurge boston bowdoin bowker branded apps brigadoon library britney spears business c.s. lewis canton cataloging categories censorship charleston chick lit chris catalfo christmas cig cil cil cil cil cil city planning claremont colleges clay shirky cluetrain code codi cognitive cost collection development commemorations common knowledge communiation computers in libraries conference conferencething contests copyright covers coverthing crime csuci curiosities cutter danmarc david weinberger ddc dead or alive department of commerce department of defense department of labor dewey decimal dewey decimal classification discovery layer django doc searls dr. horrible drm durham early reviewers east brunswick ebooks ebpl ebscohost economics elton john email employment enhancement enterprise ereaders erotica event evergreen everything is miscellaneous exlibris facebook fake steve federal libraries feedback flash-mob cataloging folksonomy frbr freedom fun future of cataloging future of the book gbs gene smith getting real giraffe gmilcs google google book search groups guardian harry potter harvard coop hidden images hiring homophily houghton mifflin humor ibistro iii il indexing indiebound inspiration instruction international internet archive internet librarians internships interviews iphone app isbns it conversations itt tallaght jacob nielsen jason griffey javascript jeff atwood jobs json kelly vista kils kindle kingston koha languages lccn lccns lcsh legacies legacy libraries legacy mob lexile measures lianza lianza lib . liblime librarians libraries libraries of the dead library . gang library anywhere library blogging library journal library of congress library of congress report library of the futurue library science library technology librarycampnyc librarything librarything for libraries librarything for publishers librarything local linden labs lis los gatos lter ltfl ltfl categories ltfl libraries ltfl reviews maine marc marcthing marié digby mashups masonic control masons meet-up metadata metasexdactyly michael gorman michael porter microsoft microsoft songsmith mike wesch milestone mobile mobile catalog mobile web monopoly moose movers and shakers nc ncsu neil gaiman nela new feature new features new product newspapers nipply nook north carolina oclc oclc numbers oh opacs open data open library open shelves classification open source openness osc overdrive paid memberships palinet pay what you want physical world pla pla pla podcasts policy politics polls portland portland public library power laws print culture profile pictures qr code ra radiohead randolph county public library rcpl readers advisory reading recommendations reloadevery remixability reviews rhinos richland county rights riverine metaphors roy tennant rusa mars safe for work if you're a cataloger san francisco state university santathing scanning schaufferwaffer screencasts seattle public library second life secret santas serendipity series sfsu shelf browse shelfari shirky similar books sincerity sirsidynix slco small libraries social cataloging social media social networking songsmith sony reader sopac spam stack map stats steve lawson strangeness subjects syndetics unbound syria tag mirror tagging tagmash tags talis talks tax exemption the thingisbn tim tipping points tools translation twitter uclassify ugc uncategorized usability user generated content users utnapishtim vc vertical social networks very short list visualizations voyager vufind web web . webinars weddings weinberger west virginia westlaw widgets wikimania wikimania wirral wirral libraries work disambiguation working group on the future of bibliographic control works worldcat worldcat local xisbn youtube zombies zoomii meta register log in entries rss comments rss wordpress.org help/faqs | about | privacy/terms | blog | contact | apis | wikithing | common knowledge | legacy libraries | early reviewers | zeitgeist copyright librarything and/or members of librarything, authors, publishers, libraries, cover designers, amazon, bol, bruna, etc. shure sm - wikipedia shure sm from wikipedia, the free encyclopedia jump to navigation jump to search the shure sm microphone the shure sm is a professional cardioid dynamic microphone, commonly used in live vocal applications. produced since by shure incorporated, it has built a strong reputation among musicians for its durability and sound, and half a century later it is still considered the industry standard for live vocal performance microphones.[ ][ ][ ] the sm and its sibling, the sm , are the best-selling microphones in the world.[ ] the sm stands for studio microphone.[ ] like all directional microphones, the sm is subject to proximity effect, a low frequency boost when used close to the source. the cardioid response reduces pickup from the side and rear, helping to avoid feedback onstage. there are wired (with and without on/off switch) and wireless versions. the wired version provides balanced audio through a male xlr connector. the sm uses an internal shock mount to reduce handling noise. a distinctive feature of the sm is its pneumatic suspension system for the microphone capsule.[ ] the capsule, a readily replaceable component, is surrounded by a soft rubber balloon, rather than springs or solid rubber. this gives notably good isolation from handling noise; one reason for its being a popular microphone for stage vocalists. microphones with this feature are intended primarily for hand-held use, rather than on a stand or for instrument miking. the sm is unswitched, while the otherwise identical sm s has a sliding on-off switch on the body. other suffixes refer to any accessories supplied with the microphone: when a cable is provided, the model is actually sm -cn, while the sm -lc has no provided cable; the sm -x u kit consists of the sm -lc and an inline x u xlr-to-usb signal adaptor (capable of providing phantom power for condenser microphones, and offering an in-built headphone jack for monitoring).[ ] contents specifications awards counterfeiting see also references external links specifications[edit] robert lockwood, jr using an sm patti smith performing with an sm in finland randall bramblett with an sm lower-cost sd, circa [ ] type: dynamic[ ] (moving coil) frequency response to ,  hz[ ] polar pattern cardioid,[ ] rotationally symmetrical about microphone axis, uniform with frequency sensitivity (at ,  hz open circuit voltage) − . dbv/pa ( . mv); pa = db spl[ ] impedance rated impedance is ohms ( ohms actual) for connection to microphone inputs rated low impedance[ ] polarity positive pressure on diaphragm produces positive voltage on pin with respect to pin [ ] connector three-pin male xlr[ ] net weight grams ( .  oz)[ ] awards[edit] in , for the second year running, the sm microphone won the mi pro retail survey "best live microphone" award.[ ] in , acoustic guitar magazine honored the sm with a gold medal in the player's choice awards.[ ] counterfeiting[edit] the sm and sm have been extensively counterfeited.[ ][ ][ ][ ][ ][ ] most of these counterfeit microphones are at least functional, but have poorer performance and do not have the pneumatic suspension. there are many other subtle details which can reveal most of these fakes.[ ][ ] see also[edit] shure sm shure beta a references[edit] ^ live sound international, september/october . real world: wired vocal microphones archived - - at the wayback machine ^ miller, peter l. ( ). speaking skills for every occasion. blake's guides. pascal press. p.  . isbn  . ^ morris, tee; tomasi, chuck; terra, evo ( ). podcasting for dummies (  ed.). john wiley & sons. p.  . isbn  x. ^ paul stamler, shure sm impedance modification, recording magazine, archived from the original on - - , retrieved - - cs maint: discouraged parameter (link) ^ history of shure incorporated ^ goodwyn, peterson. "shure's secret, invisible shockmount". recording hacks. retrieved november . cs maint: discouraged parameter (link) ^ "sm +x u usb digital bundle". shure europe. ^ shure webpage ^ a b c d e f g h product specifications (pdf), shure, retrieved - - cs maint: discouraged parameter (link) ^ http://www.shure.com/americas/about-shure/history/index.htm ^ gerken, teja. "acoustic guitar player's choice awards - shure sm ". acoustic guitar. string letter publishing. retrieved august , . cs maint: discouraged parameter (link) ^ "sennheiser, shure team up for counterfeit raid", december , , mix ^ "counterfeit shure microphones destroyed", october , , mix ^ "thai-based counterfeit ring smashed", february , , music trades. "among the products in this shipment was a large quantity of counterfeit sm microphones destined for retail outlets around thailand." ^ "auction websites' threat to legitimate brands", january , , pro sound news europe. "the sm , sm , beta and beta are among the fixities proving most attractive to counterfeiters." ^ ""shure seizes counterfeit microphones in china", november , , mix ^ "counterfeit shure gear seized: thousands of counterfeit microphones were recently confiscated in peru and paraguay by customs officials", february , , broadcasting & cable ^ "spotting a fake shure microphone: how to tell if your mic is genuine -- or not". about.com home recording ^ [ ]" tips on spotting a fake shure sm " external links[edit] sm official page shure asia sm official page shure sm history page retrieved from "https://en.wikipedia.org/w/index.php?title=shure_sm &oldid= " categories: microphones hidden categories: webarchive template wayback links cs maint: discouraged parameter navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version in other projects wikimedia commons languages català deutsch español français italiano nederlands 日本語 Русский suomi edit links this page was last edited on august , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement shure sm - wikipedia shure sm from wikipedia, the free encyclopedia jump to navigation jump to search the shure sm microphone the shure sm is a low-impedance cardioid dynamic microphone made by shure incorporated and commonly used in live sound reinforcement and studio recording. it is one of the best-selling microphones in the world. it is used extensively in amplified music and has been used for speeches by every u.s. president since its introduction in .[ ] in , honoring its four decades of "solid, dependable performance", it was inducted into the first-ever tec awards tecnology hall of fame.[ ] contents background characteristics use specifications see also references external links background[edit] the origin of sm may be traced to , when shure engineer benjamin bauer developed the first single-element directional microphone, the unidyne, which had a cardioid pickup pattern.[ ] in , another shure engineer, ernie seeler, advanced the art of microphone design significantly with the unidyne iii.[ ] seeler torture-tested the unidyne iii during three years of research and development and thereby, produced the sm series of rugged and reliable shure microphone capsules.[ ] the "sm" stands for studio microphone;[ ] seeler was an aficionado of classical music and expected the sm to be used for orchestras. because he "despised" rock music, the tec foundation said that it was ironic that the microphone has become "a mainstay of rock music."[ ] characteristics[edit] the sm uses the same capsule as the popular sm . like the sm , the sm is fitted with an xlr connector and features a balanced output, which helps to minimize electrical hum and noise pickup. according to shure, the frequency response extends from  hertz (hz) to  khz. the sm is manufactured in the united states, mexico, and china. the shure a ws is an accessory windscreen for the sm that attenuates wind noise and plosives ("pop" sounds), and protects the microphone capsule. use[edit] shure sm microphones with a ws windscreens installed on the lectern of former united states president barack obama. the microphone kit (two sm microphones, windscreens, microphone stands, and black right-angle xlr cables) is referred to as the vip/high-profile microphone kit. the sm is a popular choice of musicians due to its sturdy construction and ability to work well with instruments that produce high sound pressure levels, such as percussion instruments and electric guitars. the school of audio engineering (sae) recommends the sm (along with other makes and models) for four roles in a drum kit: kick drum, snare drum, rack toms, and floor tom.[ ] the cardioid pickup pattern of the microphone reduces the pickup of unwanted background sound and the generation of acoustic feedback. sm s have also been a staple when reinforcing the sound from guitar amplifiers. in a more unconventional fashion, the sm has been favoured by some as a vocal mic, both live and in the studio. notable singers known to have recorded vocals with an sm include anthony kiedis, brandon flowers,[ ] madonna,[ ] david bowie,[ ] john lennon,[ ] jack white,[ ] bjork,[ ] peter gabriel,[ ] paul rodgers,[ ] tom waits,[ ] wayne coyne,[ ] tom petty [ ]alice cooper, erykah badu,[ ] caleb followill[ ] and raphael saadiq.[ ] an early model of the mic, the unidyne was used on pet sounds for brian wilson's vocal tracks. every u.s. president since lyndon b. johnson has delivered speeches through an sm .[ ] it became the lectern microphone of the white house communications agency in , the year of its introduction, and remains so.[ ] due to its popularity, the sm has been counterfeited frequently by manufacturers in china and thailand.[ ] shure distribution uk reports that the sm , sm , beta a, and beta a are their microphones that are most commonly counterfeited.[ ] in , shure mounted a campaign against the trading of counterfeit microphones.[ ] specifications[edit] sm unidyne iii, ca. type dynamic frequency response to ,  hz polar pattern cardioid sensitivity (at ,  hz open circuit voltage) − . dbv/pa (at ,  hz) impedance rated impedance is ohms ( ohms actual) for connection to microphone inputs rated low impedance connector three-pin professional audio connector (male xlr type) produced –present see also[edit] shure sm references[edit] ^ a b c d e f g tecnology hall of fame: archived - - at the wayback machine ^ history of shure incorporated archived - - at the wayback machine ^ "microphone placement: let's take a look at a standard drum kit". sae. retrieved april , . cs maint: discouraged parameter (link) ^ https://reverb.com/news/gear-tribute-the-shure-sm -from-rumours-to-the-white-house ^ https://web.archive.org/web/ /http://www.sheppettibone.com/sp_erotica_diaries.htm ^ https://timpalmer.com/wp-content/themes/timpalmer/pdfs/melody_maker_ .pdf ^ https://www.soundonsound.com/people/john-lennon-whatever-gets-you-thru-night ^ https://www.soundonsound.com/techniques/inside-track-jack-white ^ http://www.moredarkthanshark.org/eno_int_audproint-oct .html ^ https://www.youtube.com/watch?v=scmyg pv _q&feature=youtu.be&t= m s ^ https://www.analogplanet.com/content/royal-sessions-finds-paul-rodgers-fine-voice ^ https://www.soundonsound.com/people/bones-howe-tom-waits ^ https://www.youtube.com/watch?v=zzk akzw vc&feature=youtu.be&t= ^ https://www.soundonsound.com/techniques/inside-track-tom-pettys-hypnotic-eye ^ https://web.archive.org/web/ /http://www.emusician.com/gear/ /earth-sun-moon/ ^ https://www.mixonline.com/recording/kings-leon- ^ farinella, david john (january , ). "music: raphael saadiq". mix. archived from the original on september , . retrieved april , . cs maint: discouraged parameter (link) ^ charles j. kouri; rose l. shure; hayward blake; john lee ( ). shure: sound people, products, and values. . shure inc. p. xiii. isbn  - - - . ^ home recording. joe shambro, spotting a fake shure microphone: how to tell if your mic is genuine—or not ^ shure distribution uk. what is a counterfeit? archived - - at the wayback machine ^ shure distribution uk. shure distribution uk clamp down on counterfeiters archived - - at the wayback machine external links[edit] sm official page sound&recording - years of shure sm retrieved from "https://en.wikipedia.org/w/index.php?title=shure_sm &oldid= " categories: microphones hidden categories: webarchive template wayback links cs maint: discouraged parameter navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version in other projects wikimedia commons languages català deutsch español français italiano nederlands 日本語 suomi edit links this page was last edited on january , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement fields | twitter developer fields introduction the twitter api v endpoints are equipped with a new set of parameters called fields, which allows you to select just the data that you want from each of our objects in your endpoint response. for example, if you only need to retrieve a tweet’s created date, or a user’s bio description, you can specifically request that data to return with a set of other default fields without the full set of fields that associate with that data object. this provides a higher degree of customization by enabling you to only request the fields you require depending on your use case. default fields will always be returned in the response. with the fields query parameters, you can request additional fields of the object to include in the response. this is done by specifying one of the below parameters, including a comma-separated list of fields that you would like to return. each object has its own parameter which is used to specifically request the fields that are associated with that object. here are the different fields parameters that are currently available: tweet → tweet.fields user → user.fields media → media.fields poll → poll.fields place → place.fields when using an endpoint that primarily returns a particular object, simply use the matching field parameter and specify the field(s) desired in a comma-separated list as the value to that parameter to retrieve those fields in the response.   for example, if you are using the get /tweets/search/recent endpoint, you will primarily receive tweet objects in that response. without specifying any fields parameters, you will just receive the default values, id and text. if you are interested in receiving the public metrics of the tweets that are returned in the response, you will want to include the tweet.fields parameter in your request, with public_metrics set as the value.  this request would look like the following. if you would like to use this request, make sure to replace $bearer_token with your bearer token and send it using your command line tool. curl --request get \ --url 'https://api.twitter.com/ /tweets/search/recent?query=from% atwitterdev&tweet.fields=public_metrics' \ --header 'authorization: bearer $bearer_token' code copied to clipboard if you send this request in your terminal, then each of the tweets that return will include the following fields: { "data": { "id": " ", "public_metrics": { "retweet_count": , "reply_count": , "like_count": , "quote_count": }, "text": "do you 👀our new tweet settings?\n\nwe want to know how and why you’d use a feature like this in the api. get the details and let us know what you think👇\nhttps://t.co/rtmhhfacib https://t.co/ wxez fjer" } } if you would like to retrieve a set of fields from a secondary object that is associated with the primary object returned by an endpoint, you will need to include an additional expansions parameter.  for example, if you were using the same get search/tweets/recent endpoint as earlier, and you wanted to retrieve the author's profile description, you will have to pass the expansions=author_id and user.fields=description with your request. here is an example of what this might look like. if you would like to try this request, make sure to replace the $bearer_token with your bearer token before pasting it into your command line tool. curl --request get \ --url 'https://api.twitter.com/ /tweets/search/recent?query=from% atwitterdev&tweet.fields=public_metrics&expansions=author_id&user.fields=description' \ --header 'authorization: bearer $bearer_token' code copied to clipboard if you specify this in the request, then each of the tweets that deliver will have the following fields, and the related user object's default and specified fields will return within includes. the user object can be mapped back to the corresponding tweet(s) by matching the tweet.author_id and users.id fields.   { "data": [ { "id": " ", "author_id": " ", "text": "do you 👀our new tweet settings?\n\nwe want to know how and why you’d use a feature like this in the api. get the details and let us know what you think👇\nhttps://t.co/rtmhhfacib https://t.co/ wxez fjer", "public_metrics": { "retweet_count": , "reply_count": , "like_count": , "quote_count": } } ], "includes": { "users": [ { "id": " ", "username": "twitterdev", "description": "the voice of the #twitterdev team and your official source for updates, news, and events, related to the #twitterapi.", "name": "twitter dev" } ] } } bear in mind that you cannot request specific subfields (for example, public_metrics.retweet_count). all subfields will be returned when the top-level field (public_metrics) is specified. we have listed all possible fields that you can request in each endpoints' api reference page's parameters table.  a full list of fields are listed in the object model. to expand and request fields on an object that is not that endpoint’s primary resource, use the expansions parameter with fields. next step learn how to use fields with expansions review the different data objects available with twitter api v make your first request with fields and expansions was this document helpful? thank you for the feedback. we’re really glad we could help! thank you for the feedback. how could we improve this document? this page is missing information. the information was hard to follow or confusing. there is inaccurate information. there is a broken link or typo. specific feedback submit feedback skip thank you for the feedback. your comments will help us improve our documents in the future. developer agreement, policy & terms follow @twitterdev subscribe to developer news twitter platform twitter.com status card validator privacy center transparency center twitter, inc. about the company twitter for good company news brand toolkit jobs and internships investors help help center using twitter twitter media ads help center managing your account safety and security rules and policies contact us developer resources developer home documentation forums communities developer blog engineering blog developer terms business resources advertise twitter for business resources and guides twitter for marketers marketing insights brand inspiration twitter data twitter flight school © twitter, inc. cookies privacy terms and conditions language developer by using twitter’s services you agree to our cookies use. we use cookies for purposes including analytics, personalisation, and ads. ok this page and certain other twitter sites place and read third party cookies on your browser that are used for non-essential purposes including targeting of ads. through these cookies, google, linkedin and demandbase collect personal data about you for their own purposes. learn more. accept decline learning (lib)tech – stories from my life as a technologist skip to content learning (lib)tech stories from my life as a technologist menu about me about this blog contact me twitter github linkedin flickr rss ubc ischool career talk series: journey from libtech to tech the ubc ischool reached out to me recently asking me to talk about my path from getting my library degree to ending up working in a tech company. below is the script for my portion of the talk, along with a transcription of the questions i answered. continue reading “ubc ischool career talk series: journey from libtech to tech” author cynthiaposted on march , march , categories events, librarianshiptags career growth, reflectionleave a comment on ubc ischool career talk series: journey from libtech to tech choosing not to go into management (again) often, to move up and get a higher pay, you have to become a manager, but not everyone is suited to become a manager, and sometimes given the preference, it’s not what someone wants to do. thankfully at gitlab, in every engineering team including support, we have two tracks: technical (individual contributor), and management. continue reading “choosing not to go into management (again)” author cynthiaposted on february , march , categories work culturetags career growth, management, reflectionleave a comment on choosing not to go into management (again) prioritization in support: tickets, slack, issues, and more i mentioned in my gitlab reflection that prioritization has been quite different working in support compared to other previous work i’ve done. in most of my previous work, i’ve had to take “desk shifts” but those are discreet where you’re focused on providing customer service during that period of time and you can focus on other things the rest of the time. in support, we have to constantly balance all the different work that we have, especially in helping to ensure that tickets are responded to within the service level agreement (sla). it doesn’t always happen, but i ultimately try to reach inbox (with read-only items possibly left), and gitlab to-do by the end of the every week. people often ask me how i manage to do that, so hopefully this provides a bit of insight. continue reading “prioritization in support: tickets, slack, issues, and more” author cynthiaposted on december , december , categories methodologytags productivityleave a comment on prioritization in support: tickets, slack, issues, and more reflection part : my second year at gitlab and on becoming senior again this reflection is a direct continuation of part of my time at gitlab so far. if you haven’t, please read the first part before beginning this one. continue reading “reflection part : my second year at gitlab and on becoming senior again” author cynthiaposted on june , january , categories update, work culturetags gitlab, organizational culture, reflectionleave a comment on reflection part : my second year at gitlab and on becoming senior again reflection part : my first year at gitlab and becoming senior about a year ago, i wrote a reflection on summit and contribute, our all staff events, and later that year, wrote a series of posts on the gitlab values and culture from my own perspective. there is a lot that i mention in the blog post series and i’ll try not to repeat myself (too much), but i realize i never wrote a general reflection at year , so i’ve decided to write about both years now but split into parts. continue reading “reflection part : my first year at gitlab and becoming senior” author cynthiaposted on june , january , categories update, work culturetags gitlab, organizational culture, reflectionleave a comment on reflection part : my first year at gitlab and becoming senior is blog reading dead? there was a bit more context to the question, but a friend recently asked me: what you do think? is blogging dead? continue reading “is blog reading dead?” author cynthiaposted on may , may , categories updatetags reflectionleave a comment on is blog reading dead? working remotely at home as a remote worker during a pandemic i’m glad that i still have a job, that my life isn’t wholly impacted by the pandemic we’re in, but to say that nothing is different just because i was already a remote worker would be wrong. the effect the pandemic is having on everyone around you has affects your life. it seems obvious to me, but apparently that fact is lost on a lot of people. i’d expect that’s not the case for those who read my blog, but i thought it’d be worth reflecting on anyway. continue reading “working remotely at home as a remote worker during a pandemic” author cynthiaposted on may , may , categories work culturetags remoteleave a comment on working remotely at home as a remote worker during a pandemic code libbc lightning talk notes: day  code libbc day lightning talk notes! continue reading “code libbc lightning talk notes: day  ” author cynthiaposted on november , categories eventstags authentication, big data, c lbc, code, code lib, digital collections, privacy, reference, teachingleave a comment on code libbc lightning talk notes: day  code libbc lightning talk notes: day  code libbc day lightning talk notes! continue reading “code libbc lightning talk notes: day  ” author cynthiaposted on november , categories eventstags c lbc, digital collections, intranet, marc, metadata, teachingleave a comment on code libbc lightning talk notes: day  presentation: implementing values in practical ways this was presented at code libbc . continue reading “presentation: implementing values in practical ways” author cynthiaposted on november , november , categories events, work culturetags c lbc, organizational culture, presentation, valuesleave a comment on presentation: implementing values in practical ways posts navigation page page … page next page cynthia technologist, librarian, metadata and technical services expert, educator, mentor, web developer, uxer, accessibility advocate, documentarian view full profile → follow us twitter linkedin github telegram search for: search categories events librarianship library academic public special tours methodology project work technology tools update web design work culture follow via email enter your email address to receive notifications of new posts by email. email address: follow about me about this blog contact me twitter github linkedin flickr rss learning (lib)tech you must be logged in to post a comment. loading comments... comment × guide to the future of the twitter api | twitter developer early access guide to the future of the twitter api overview support for diverse use cases new access options to get started and grow bringing it all together evolution of the developer portal support for oauth and new permissions versioning rolling out the new twitter api at twitter, our purpose is to serve the public conversation and we believe developers play a critical role in achieving this. twitter wouldn’t be what it is today if it weren’t for you. your creativity and work with our api make twitter, and the world, a better place.  we’re building the next generation of the twitter api to better serve our diverse community of developers. our api gives you the ability to learn from and engage with the conversation on twitter and we want to give you tools to further uncover, build on, and share the value of this conversation with the world.  to serve our diverse ecosystem, we plan to introduce a few new concepts and components to the platform. consider this page your guide to the future of the twitter api. as we build, we’ll update our product roadmap and will be keeping you updated here about the details of our plans. and with our new api foundation, we'll be better able to incorporate your feedback and make improvements along the way.  if you missed our recent announcements, make sure to read our blog posts introducing the new and improved twitter api, and the academic research product track. if you have questions, feedback, or suggestions about any of the following, let us know. share your feedback last updated: january ,   support for diverse use cases understanding the global conversation engaging with people on twitter improving twitter   understanding the global conversation engaging with people on twitter improving twitter we’ve always known that our developer ecosystem is diverse, but our api has long taken a one-size-fits-all approach. you helped us to understand the use cases you have when you work with the twitter api and we're building the new api to help support these use cases—releasing new functionality in phases, each supporting the core use cases that we’ve heard from you.   understanding the global conversation our first few releases will be focused on making it easier to understand the public conversation. one of the most common reasons developers use the twitter api is to listen to and analyze the conversation happening on twitter. we’re not done yet. in the coming months, we will continue to release additional endpoints to help you understand the conversation, to discover insights, or to make informed decisions.  explore the listen & analyze use case   engaging with people on twitter people come to twitter to connect and interact with each other, with their favorite teams, celebrities, or musicians, with world leaders, with their communities, with brands, with fun bots, and more. developers play a critical role in creating content and engaging in various ways on the platform. in the coming months, we’ll release a number of endpoints (including new versions of endpoints for creating tweets) to early access to support these use cases.   improving twitter developers have played a key part in making twitter healthier and more engaging since the beginning. your love for twitter shows through your work and we want to make it easy for you to channel your passion for twitter into actively making it better. we want to empower you to give people more control over their experience on twitter. the new academic research product track represents a crucial beginning to this process, as their research and discoveries can help make the world a better place, even help improve experiences on twitter. although we started with academic researchers, keep an eye open for new endpoints, guidance, and tools to fuel this kind of work across our standard, academic research, and business product tracks.   new access options to get started and grow access levels product tracks new license terms supporting the health of the public conversation   access levels product tracks new license terms supporting the health of the public conversation your feedback helped us see the importance of making the new twitter api more flexible and scalable to fit your needs. with the new api, we are building new access options and product tracks so more developers can find options to support their use cases.   access levels within the new twitter api, we intend to introduce three core access levels which make it easy to grow and scale. the three access levels include: basic access:  free, default access to endpoints for developers with an approved developer account. based on research over the past few years, we expect that the large majority of developers (> %) will find the access they need within this tier to get started and build something awesome. elevated access: increased access to collections of relevant endpoints that include access to more tweets, increased rate limits, and more advanced reliability features. custom access: while the majority of developers’ goals will be met by basic and elevated access, for those who need more, we can help get you what you need.   product tracks we love the incredible diversity of developers who use our api. and we want to provide a platform that: serves many types of developers with access and tools that fit their use cases continues to offer free and open access for developers, and provides a dedicated and supported path for both commercial and non-commercial services built with the api to accomplish these, we're introducing new, distinct product tracks to better serve different groups of developers and provide them with a tailored experience and support, a range of relevant access levels, and appropriate pricing (where applicable).  developers who already have a developer account will start in the standard product track and will be able to apply for others. new developers will be able to apply for the tracks that are relevant to you.  standard: the default product track for most developers, including those building something for fun, for a good cause, to learn or teach. academic research: academic researchers are one of the largest groups looking to understand what’s happening in the public conversation. within this track, qualified academic researchers will get increased levels of access to a relevant collection of endpoints, including a new full-archive search endpoint. we’re also providing resources for researchers to make it easier to conduct academic research with the twitter api. business: developers build businesses on the twitter api. and we love that their products help other people and businesses better understand and engage with the conversation on twitter. this track will include the option for elevated access to relevant collections of endpoints, or custom access. a key part of our strategy is our commitment to working with a diverse set of developers to enable their success. some developers, including those building client-like applications, deserve more clarity in how to operate with the new twitter api.  though too early to share any specifics, reaching this clarity may require a fresh look at policy and product access details that affect them. we’re looking ahead and seek to determine how best to work with these groups to serve the public conversation together.   new license terms we’re designing these tracks with products, pricing, and access level options to better serve the unique needs of different types of developers. to support this, certain product tracks are reserved for non-commercial purposes only. we’ve therefore introduced new commercial use terms to the developer agreement that govern how the api can be used in product tracks designated as non-commercial. the academic research product track is the first product track we’ve released that is reserved for non-commercial purposes. as we continue introducing additional product tracks, namely the business product track, we will provide more information about serving commercial use of the twitter api. for now, commercial use cases are supported through the standard basic access or the v . twitter api.  know that if you are using the api for commercial purposes, this does not necessarily mean that you are required to pay for access (for example, basic access on any of our product tracks will be available for free).  we want to continue learning more from you about this approach. if you’re interested, let us know your thoughts on these plans with this short survey.     supporting the health of the public conversation as with the introduction of our developer application a few years ago, we are committed to a developer platform that works in service of the overall health of conversation on twitter. simultaneously, we are committed to a developer platform that is open and serves diverse needs. the introduction of these new access levels and product tracks allows us to offer more options and access with increased trust, as well as more controls to help address platform abuse and to keep the twitter service safe and secure for everyone. our hope is that you find that these paths provide even more clarity about how to adhere to our developer terms and make it easier to scale your use of the twitter api for years to come.   bringing it all together with work underway and several new access levels and product tracks planned, we want to share an illustration of how they may all come together. this is an evolving vision and it will take some time before all of these access options are available. we hope this will be helpful to understand which path may eventually make sense for you. overview standard academic research business overview standard academic research business we want to continue learning more from you to be sure our approach is right. if you’re interested, please share your feedback with us about these plans.   evolution of the developer portal evolution of the developer portal   evolution of the developer portal   over the last few months, all developers saw a new interface when they logged in to their developer accounts. this new developer portal is the home base for managing your use of the new twitter api, with continual improvements and new features to help you build. we’re planning to create new ways to manage access for multiple development environments, to help you rethink how you manage a team of collaborators, track and understand your api usage, move up and down between access levels, and find resources to help you be successful. if you have other ideas you’d like to see, let us know and share your feedback! we’ve also introduced "projects" within the developer portal as a way to organize your work and manage your access to the twitter api for each use case you’re building with it. we’re starting with just one project per developer account for the first early access release, so you can begin using basic access to the new twitter api. with the recent release of the academic research product track, eligible researchers can now add a project in the academic research product track. they may also create or maintain another project in the standard product track for a distinct, and separate use case. as we roll out further access levels and product tracks, you’ll be able to create multiple projects for different use cases. we plan to support separate production, staging and development apps within a project as distinct environments to help you better manage your integration, and make it easier for a team to manage a project and its apps. for now, you can still use your existing, standalone apps and create new ones if you need to; eventually, all api access will be through projects.   support for oauth and new permissions support for oauth and new permissions   support for oauth and new permissions   we are working to add support for oauth . in doing so, we intend to improve the developer experience with more granular permissions to give you more control and to serve the expectations of people authorizing your application. it will be some time before we make this available, however, this is a path we are actively pursuing. we'll share more in the future about how to test this. share your feedback and suggestions as we build.   versioning versioning   versioning   we expect to launch new major api versions more often than we have in the past ( years ago!), but we'll still make it a goal to avoid doing so unless there's a compelling reason. we don't expect to make major version updates more often than once every months, and when we do, it will be our goal to support the previous version for at least year until retirement. between major version changes, you’ll continue to see us add non-breaking improvements as they’re ready. our goal is that you will only need to update your integration if you’d like to take advantage of new functionality.   rolling out the new twitter api early access deprecations and migrations expected sequence of events   early access deprecations and migrations expected sequence of events   early access in august , we released early access to the new twitter api v . eventually, the new api will fully replace the v . standard, premium, and enterprise apis. before that can happen, we have more to build. since our initial release, we’ve added a handful of new features including the new hide replies endpoint, the user tweet timeline and user mention timeline endpoints, and the new follows lookup endpoints.  additionally, we launched the academic research product track on the new twitter api. this specialized track for researchers offers higher levels of access, free access to full-archive search, and other v endpoints for approved developers, as well as enhanced features and functionality to get more precise and complete data for analyzing the public conversation. please note that this product track does have increased eligibility requirements. academics with a specific research use case for using twitter data can now apply for the academic research product track. for all other developers, we continue to encourage usage of early access. everything we’ve released and will continue releasing into early access is fully supported and ready for you to build in production. once we've completed releasing new versions of core functionality, we’ll move the new api version (v ) into the general availability (ga) phase and make it the new default version of the twitter api. to learn more, visit the early access overview. for a preview of what’s to come, and what we have planned, check out our expected sequence of events, below! get started with early access if you don't yet have a developer account, apply to get started.   deprecations and migrations we know migrations can be challenging and we’re committed to doing our part to make migrating to our new api as easy as we can. whether you use the current standard v . , premium, or enterprise endpoints — or a combination — you likely won’t need to migrate for some time. our intent is to provide plenty of migration time (along with resources to help) when we deprecate existing endpoints. our goal is to wait until we have completed releasing new versions of core functionality, but there may be exceptions where we need to turn off some legacy services sooner, including: standard v . statuses/sample and statuses/filter endpoints. later this year we plan to announce a shorter deprecation window for these two endpoints. the replacements for these endpoints are available in early access: the filtered stream and sampled stream endpoints. we're giving you this heads up so you can begin exploring these replacements now. for specific requests or to provide your thoughts on this update, please share your feedback. for those that want to get ahead and migrate early, check out our migration resources for the twitter api v .   expected sequence of updates the effort to replace the v . , premium, and enterprise apis will take some time. to help you plan, we want to share a rough outline of the order in which we hope to roll out changes. should our plans evolve, we will do our best to keep it updated here. to receive notification about the progress of specific items, sign up to "watch" any cards within our product roadmap.   timeline endpoints product tracks deprecation timeline endpoints product tracks deprecation stay tuned! we will continue to evolve and improve our plans as we learn. have specific thoughts you'd like to share? we're always listening, so please share your feedback. we'd love to hear from you! developer agreement, policy & terms follow @twitterdev subscribe to developer news twitter platform twitter.com status card validator privacy center transparency center twitter, inc. about the company twitter for good company news brand toolkit jobs and internships investors help help center using twitter twitter media ads help center managing your account safety and security rules and policies contact us developer resources developer home documentation forums communities developer blog engineering blog developer terms business resources advertise twitter for business resources and guides twitter for marketers marketing insights brand inspiration twitter data twitter flight school © twitter, inc. cookies privacy terms and conditions language developer by using twitter’s services you agree to our cookies use. we use cookies for purposes including analytics, personalisation, and ads. ok this page and certain other twitter sites place and read third party cookies on your browser that are used for non-essential purposes including targeting of ads. through these cookies, google, linkedin and demandbase collect personal data about you for their own purposes. learn more. accept decline análise de planos – clima de eleição home sobre nosso time lideranças pelo clima análise de planos publicações contato brasil + climadeeleicao@gmail.com joaohencer@gmail.com entre em contato nosso e-mail → climadeeleicao@gmail.com entrar em contato projeto clima de eleição capacita centenas de candidaturas sobre a crise climática durante as eleições municipais de . links úteis sobre nós candidatos nosso time contato © , clima de eleição. todos direitos reservados. digital public library of america skip to main content digital public library of americashow menu browse by topic browse by partner exhibitions primary source sets my lists about dpla news dpla pro browse by topic browse by partner exhibitions primary source sets my lists about dpla news dpla pro digital public library of america donate discover , , images, texts, videos, and sounds from across the united states search browse by topicnew? start here dpla ebooks ebook services are core to our commitment to a library-led digital future. we've redesigned our dpla ebooks site to showcase how we are helping libraries take control of acquisition and delivery and make more diverse materials easily available while advocating for the needs of libraries in the marketplace. explore now online exhibitions browse all exhibitions recreational tourism in the mountain west the show must go on! american theater in the great depression race to the moon a history of us public libraries in focus: the evolution of the personal camera activism in the us primary source sets browse all sets voting rights act of ida b. wells and anti-lynching activism the poetry of maya angelou the new woman lyndon johnson's great society the fifteenth amendment immigration and americanization, - space race how can i use dpla? education educators and students explore our primary source sets to discover history and culture through primary sources and ideas for classroom use. family research genealogists use our search tools to find free materials for their family history research projects. lifelong learning lifelong learners enjoy browsing by topic and viewing online exhibitions to learn more about their interests. scholarly research scholarly researchers use dpla to find open access sources from archives across the country through a single portal. if you’re new to dpla, these research guides will give you a head start using our site. the guides reflect a few key activities that attract visitors to dpla, but you can explore many other interests here too. view all user guides dpla news browse the archives flexible licensing models from the dpla exchange april , dpla’s ebooks program serves our mission of maximizing access to digital content by giving libraries across the country greater control over their acquisition and delivery of ebooks and audiobooks dpla to host book talk on mistrust, by ethan zuckerman, on april nd at pm et april , we are pleased to invite you to join us at the inaugural dpla book talk, which will feature a conversation between mistrust author ethan zuckerman and wikimedia foundation ceo and… join the dpla community + open board meeting on april th march , with expanded vaccine access, many of us have begun to conceive of what our post-covid worlds might look like. these visions are necessarily colored by all that we have learned… stay informed get the latest dpla news in your inbox general news ebooks education genealogy dpla frequently asked questions how can i use dpla? terms & conditions harmful content about dpla contact us feedback news tools primary source sets browse by partner browse by topic exhibitions my lists search dpla pro dpla pro home prospective hubs community reps hub network developers education projects ebooks events donate bitcoin shorts vs longs - click for btc margin charts - datamish about bitcoin bitcoin is the revolutionary p p digital cash envisioned by satoshi nakamoto. many attempts have been made to dethrone bitcoin, but real connoisseurs accept no imitations. bitcoin is referred to as digital gold with good reason. it is borderless, decentralized, censorship resistant, and open source. trade bitcoin the bitcoin market is not the most volatile crypto market, but is by far the most liquid and most traded. futures: spot: bitcoin development the network has been running for years, but development is in no way stagnant. bitcoin developers are some of the best in the space, and they are constantly looking for safe ways to improve and upgrade the system. recent highlights: segwit lightning network smart contracts (via rsk) read the bitcoin white paper or see this page if you want to learn more about bitcoin. d d d d d d d h h h h h h dashboards bitcoin btc litecoin ltc ethereum eth cardano ada monero xmr zcash zec iota iot eos ripple xrp help & contact help page contact share this page: bitcoin margin data - btc h bitcoin btcusd hour timeframe adage - a low fee cardano stake pool price {{ price }} {{ daily_change_pct }}% from ath {{ ath_change_pct }}% year to date {{ ytd_change_pct }}% longs {{ total_longs }} {{ symbol_longs_amount_pct_change }}% usd lending rate {{ usd_rate }}% usd available {{ usd_funding_available }} shorts {{ total_shorts }} {{ symbol_shorts_amount_pct_change }}% btc lending rate {{ symbol_rate }}% btc available {{ symbol_funding_available }} : london : berlin : athens : moscow : dubai : hong kong : beijing : seoul : tokyo : melbourne : los angeles : mexico city : new york bitcoin price & total long and short interest left y: btc total longs & shorts right y: price usd {{ price }} mana vs. pain h health score longs shorts pain {{ long_pain_ h }} {{ short_pain_ h }} mana {{ long_mana_ h }} {{ short_mana_ h }} d health score longs shorts pain {{ long_pain_ d }} {{ short_pain_ d }} mana {{ long_mana_ d }} {{ short_mana_ d }} d health score longs shorts pain {{ long_pain_ d }} {{ short_pain_ d }} mana {{ long_mana_ d }} {{ short_mana_ d }} longs & usd interest rate left y: usd daily interest rate right y: btc longs shorts & btc interest rate left y: btc daily interest rate right y: btc shorts percent longs and shorts left y: percent short vs. long hedged and unhedged shorts left y: btc shorts today's sentiment changes (past h) left y: btc sentiment change bitfinex long & short liquidations past d left y: btc volume liquidated bitfinex total long & short liquidations (timeframe) left y: btc volume liquidated bitmex long & short liquidations past d left y: usd/contract volume liquidated bitmex total long & short liquidations (timeframe) left y: usd/contract volume liquidated never leave without a song. close new version! × welcome to the new version of datamish.com! a lot of hours has gone into making the new version more user friendly and informative. hope you like it :-) the old version will be made available on https://old.datamish.com within a few days. close longs vs. shorts × live data bfx on the bitcoin price chart you can see: bitcoin price in usd (white line) total bitcoin longs (green line) total bitcoin short (red line) both longs and shorts are measured in btc. on shorter timeframes (say below one week) longs and shorts are typically almost straight lines because they don't fluctuate much and because of y-axis scaling. the two charts below the price chart show the same values for total longs and shorts, but capture the short term flucturations much better. esc to close pain & mana score × live data pain and mana is a health-score that is calculated by datamish. both longs and shorts have a pain and a mana score. pain is bad and mana is good. pain score increases when traders are adding to bitcoin positions while the market is moving against them. so they could be in for a squeeze. increased mana score happens when traders are closing their bitcoin positions while price is moving with them. they are regaining energy. a positive mana score can sometimes happen after the other side has been squeezed successfully. pain and mana score is dependent on timeframe, so datamish calculates the scores for three different timeframes: h, d, and d. pain and mana score does not tell you anything you couldn’t figure out for yourself by looking at the price chart, the longs chart, and the shorts chart. if you want to learn more the about how pain and mana score works then go to one of the time three frames and consider how price, shorts, and longs have developed within in that timeframe. esc to close longs and usd interest rate × live data bfx on the chart you can see: left-y: daily interest rate for usd (grey line) right-y: total longs measured in bitcoin (green line) changes in long positions are important to consider. increasing longs express a bullish sentiment, and decreasing longs express a bearish sentiment. if usd interest rate is high, traders are less likely to borrow usd to go long bitcoin. interest rate can be pushed up if there is little funding available, so it is a good idea to keep an eye on both interest rates and available funding. at the top of the page there is a section where you can see how much usd funding is available. the risk of liquidation means that margin traders are "weak hands" that can easily be shaken out of their positions. if there are too many longs this can result in a long squeeze. esc to close shorts and bitcoin interest rate × live data bfx on the chart you can see: left-y: daily interest rate for bitcoin (grey line) right-y: total shorts measured in btc (red line) if bitcoin interest rate is high, traders are less likely to borrow bitcoin to go short. interest rate can be pushed up if there is little bitcoin funding available, so that is worth considering. at the top of the page there is a section where you can see how much bitcoin funding is available. changes in short positions are important to consider. if shorts increase then sentiment is bearish, and if shorts decrease then bearish sentiment is decreasing. the risk of liquidation means that margin traders are "weak hands" that can easily be shaken out of their positions. if there are too many shorters then that can lead to a short squeeze. esc to close percent longs and shorts × live data bfx this chart shows the distribution of longs and shorts as a percentage of the total margin interest, and tracks how this distribution has changed over time. esc to close hedged and unhedged shorts × live data bfx on this chart you can see: yellow line: the amount of btc shorts that are known to be hedged. red line: the amount of btc shorts that are unhedged (or rather not known to be hedged). adding hedged and unhedged shorts gives you the total amount of shorts. sometimes you will see a sudden and substantial drop in the total amount of shorts that has no effect on price. this can seem surprising because you usually complete a trade when you close a short position. the explanation is that the closed short position was hedged. in other words the trader that closed his position did not need to go into the market to buy cover when the position was closed. esc to close todays sentiment changes × live data bfx on this chart you can see sentiment changes for the past hours (the timeframe is fixed). essentially the chart is reflecting how much btc has been added or removed on the short side (red line) and how much btc that has been added or removed on the long side (green line). if the green line is above the red line then sentiment can be said to be more bullish than bearish. likewise sentiment can be said to be more bearish than bullish if the red line is above the green line. esc to close bitcoin liquidations on bitfinex past d × live data bfx this chart shows the volume liquidated each day for the past two weeks (timeframe is fixed). short liquidations are green, and long liquidations are red. bitcoin liquidations on bitfinex are measured in btc. for bitcoin and ethereum the charts include liquidation data from both spot and futures exchanges. esc to close total long & short bitcoin liquidations on bitfinex (timeframe) × live data bfx this chart shows the total btc volume liquidated for the selected timeframe. short liquidations are green, and long liquidations are red. liquidations on bitfinex are measured in btc so this is what we have on the y-axis. above each bar you can see how many positions has been liquidated in total. for bitcoin and ethereum the charts include liquidation data from both spot and futures exchanges. esc to close bitcoin liquidations on bitmex for the past d × live data bitmex this chart shows the volume liquidated for the bitcoin-usd trading pair each day for the past two weeks (timeframe is fixed). short liquidations are green, and long liquidations are red. liquidations on bitmex are measured in contracts. each contract is usd. esc to close total bitcoin liquidations on bitmex (timeframe) × live data bitmex this chart shows the total volume liquidated for the selected timeframe. short liquidations are green, and long liquidations are red. bitcoin liquidations on bitmex are measured in contracts ( usd), so this is what we have on the y-axis. above each bar you can see how many positions have been liquidated in total. esc to close collaborations workshop : collaborative ideas & hackday erambler home about series tags talks rdm resources collaborations workshop : collaborative ideas & hackday date: - - series: collaborations workshop tags: [technology] [conference] [ssi] [research] [disability] [equality, diversity & inclusion] series this post is part of a series on the ssi collaborations workshop in . > collaborations workshop : collaborative ideas & hackday < collaborations workshop : talks & panel session my last post covered the more “traditional” lectures-and-panel-sessions approach of the first half of the ssi collaborations workshop. the rest of the workshop was much more interactive, consisting of a discussion session, a collaborative ideas session, and a whole-day hackathon! the discussion session on day one had us choose a topic (from a list of topics proposed leading up to the workshop) and join a breakout room for that topic with the aim of producing a “speed blog” by then end of minutes. those speed blogs will be published on the ssi blog over the coming weeks, so i won’t go into that in more detail. the collaborative ideas session is a way of generating hackday ideas, by putting people together at random into small groups to each raise a topic of interest to them before discussing and coming up with a combined idea for a hackday project. because of the serendipitous nature of the groupings, it’s a really good way of generating new ideas from unexpected combinations of individual interests. after that, all the ideas from the session, along with a few others proposed by various participants, were pitched as ideas for the hackday and people started to form teams. not every idea pitched gets worked on during the hackday, but in the end teams of roughly equal size formed to spend the third day working together. my team’s project: “aha! an arts & humanities adventure” there’s a lot of fomo around choosing which team to join for an event like this: there were so many good ideas and i wanted to work on several of them! in the end i settled on a team developing an escape room concept to help arts & humanities scholars understand the benefits of working with research software engineers for their research. five of us rapidly mapped out an example storyline for an escape room, got a website set up with github and populated it with the first few stages of the game. we decided to focus on a story that would help the reader get to grips with what an api is and i’m amazed how much we managed to get done in less than a day’s work! you can try playing through the escape room (so far) yourself on the web, or take a look at the github repository, which contains the source of the website along with a list of outstanding tasks to work on if you’re interested in contributing. i’m not sure yet whether this project has enough momentum to keep going, but it was a really valuable way both of getting to know and building trust with some new people and demonstrating the concept is worth more work. other projects here’s a brief rundown of the other projects worked on by teams on the day. coding confessions everyone starts somewhere and everyone cuts corners from time to time. real developers copy and paste! fight imposter syndrome by looking through some of these confessions or contributing your own. https://coding-confessions.github.io/ carpenpi a template to set up a raspberry pi with everything you need to run a carpentries (https://carpentries.org/) data science/software engineering workshop in a remote location without internet access. https://github.com/carpenpi/docs/wiki research dugnads a guide to running an event that is a coming together of a research group or team to share knowledge, pass on skills, tidy and review code, among other software and working best practices (based on the norwegian concept of a dugnad, a form of “voluntary work done together with other people”) https://research-dugnads.github.io/dugnads-hq/ collaborations workshop ideas a meta-project to collect together pitches and ideas from previous collaborations workshop conferences and hackdays, to analyse patterns and revisit ideas whose time might now have come. https://github.com/robintw/cw-ideas howdescribedis integrate existing tools to improve the machine-readable metadata attached to open research projects by integrating projects like somef, codemeta.json and howfairis (https://howfairis.readthedocs.io/en/latest/index.html). complete with ci and badges! https://github.com/knowledgecaptureanddiscovery/somef-github-action software end-of-project plans develop a template to plan and communicate what will happen when the fixed-term project funding for your research software ends. will maintenance continue? when will the project sunset? who owns the ip? https://github.com/elichad/software-twilight habeas corpus a corpus of machine readable data about software used in covid- related research, based on the cord dataset. https://github.com/softwaresaved/habeas-corpus credit-all extend the all-contributors github bot (https://allcontributors.org/) to include rich information about research project contributions such as the casrai contributor roles taxonomy (https://casrai.org/credit/) https://github.com/dokempf/credit-all i’m excited to see so many metadata-related projects! i plan to take a closer look at what the habeas corpus, credit-all and howdescribedis teams did when i get time. i also really want to try running a dugnad with my team or for the glam data science network. comments you can comment on this post, "collaborations workshop : collaborative ideas & hackday", by: replying to its tweet on twitter or its toot on mastodon sending a webmention from your own site to https://erambler.co.uk/blog/collabw -part- / using this button: comments & reactions haven't loaded yet. you might have javascript disabled but that's cool 😎. me elsewhere :: keyoxide | keybase | mastodon | matrix | twitter | github | gitlab | orcid | pypi | linkedin © jez cope | built by: hugo | theme: mnemosyne build status: except where noted, this work is licensed under a creative commons attribution . international license. home | docnow tweet catalog the docnow catalog is a collectively curated listing of twitter datasets. public datasets are shared as tweet ids, which can be hydrated back into full datasets using our hydrator desktop application. records comprising tweets add record subjectsall tweets start tweets end search note: all metadata is shared under a cc license. please read our code of conduct for more information about contributing datasets. added date range title tweet count creators subjects repository credit - contributor roles taxonomy skip to content casrai less burden. more research. menu about blog resources supporters more credit – contributor roles taxonomy credit (contributor roles taxonomy) is high-level taxonomy, including roles, that can be used to represent the roles typically played by contributors to scientific scholarly output. the roles describe each contributor’s specific contribution to the scholarly output. contributor roles conceptualization data curation formal analysis funding acquisition investigation methodology project administration resources software supervision validation visualization writing – original draft writing – review & editing contributor roles defined conceptualization – ideas; formulation or evolution of overarching research goals and aims. data curation – management activities to annotate (produce metadata), scrub data and maintain research data (including software code, where it is necessary for interpreting the data itself) for initial use and later re-use. formal analysis – application of statistical, mathematical, computational, or other formal techniques to analyze or synthesize study data. funding acquisition ​- acquisition of the financial support for the project leading to this publication. investigation – ​conducting a research and investigation process, specifically performing the experiments, or data/evidence collection. methodology – development or design of methodology; creation of models. project administration – management and coordination responsibility for the research activity planning and execution. resources – provision of study materials, reagents, materials, patients, laboratory samples, animals, instrumentation, computing resources, or other analysis tools. software – programming, software development; designing computer programs; implementation of the computer code and supporting algorithms; testing of existing code components. supervision – oversight and leadership responsibility for the research activity planning and execution, including mentorship external to the core team. validation – verification, whether as a part of the activity or separate, of the overall replication/reproducibility of results/experiments and other research outputs. visualization – preparation, creation and/or presentation of the published work, specifically visualization/data presentation. writing – original draft – ​preparation, creation and/or presentation of the published work, specifically writing the initial draft (including substantive translation). writing – review & editing – preparation, creation and/or presentation of the published work by those from the original research group, specifically critical review, commentary or revision – including pre- or post-publication stages. background credit grew from a practical realization that bibliographic conventions for describing and listing authors on scholarly outputs are increasingly outdated and fail to represent the range of contributions that researchers make to published output. furthermore, there is growing interest among researchers, funding agencies, academic institutions, editors, and publishers in increasing both the transparency and accessibility of research contributions. most publishers require author and contribution disclosure statements upon article submission – some in structured form, some in free-text form – at the same time that funders are developing more scientifically rigorous ways to track the outputs and impact of their research investments. in mid- the wellcome trust and harvard university co-hosted a workshop to bring together members of the academic, publishing, and funder communities interested in exploring alternative contributorship and attribution models. following the workshop (see workshop report), and working initially with a group of mainly biomedical journal editors (and members of the icmje a pilot project was established to develop a controlled vocabulary of contributor roles (taxonomy) that could be used to describe the typical range of ‘contributions’ to scholarly published output for biomedical and science more broadly. the aim was to develop a taxonomy that was both practical and easy to understand while minimizing the potential for misuse. a draft taxonomy was tested with a sample of recent corresponding authors publishing across science and was relatively well received. the outcomes of the pilot test are described in nature commentary (april ). benefits since , the contributor taxonomy – otherwise known as credit (contributor roles taxonomy) has been widely adopted across a range of publishers to improve accessibility and visibility of the range of contribution to published research outputs, bringing a number of important and practical benefits to the research ecosystem more broadly, including: helping to reduce the potential for author disputes. supporting adherence to authorship/contributorship processes and policies. enabling visibility and recognition of the different contributions of researchers, particularly in multi-authored works – across all aspects of the research being reported (including data curation, statistical analysis, etc.) support identification of peer reviewers and specific expertise. ​support grant making by enabling funders to more easily identify those responsible for specific research products, developments or breakthroughs. improving the ability to track the outputs and contributions of individual research specialists and grant recipients. easy identification of potential collaborators and opportunities for research networking. further developments in data management and nano-publication. ​inform ‘science of science’ (‘meta-research) to help enhance scientific efficacy and effectiveness. ​enable new indicators of research value, use and re-use, credit and attribution. adopters this list is constantly evolving and will be frequently updated. to share information about a credit adoption, please email: [credit] at [casrai] dot [org] ​publishers american association of petroleum geologists bmj british psychological society cell press “cpc” business perspectives dartmouth journal services de gruyter open duke university press elife elsevier evidence based communications f research geological society of london health & medical publishing group international centre of insect physiology and ecology the journal of bone & joint surgery kamje press lippincott williams & wilkins ma healthcare mdpi mit press oman medical specialty board oxford university press public library of science (plos) sae international sage publishing scholarone slack incorporated springer springer publishing company virtus interpress wiley vch wolters kluwer institutions university of glasgow integrators allen press/ peer track aries systems/ editorial manager clarivate analytics/ scholarone coko foundation/ pubsweet openconf river valley/ review ejournalpress rescognito ​worktribe publishing outlets gates open research hrb open research wellcome open research how to implement credit for academics just begin allocating the terms appropriately to your contributors within research outputs. advocate that your institution and any publications you’re submitting to acknowledge and adopt the taxonomy. for publishers credit adoption can be achieved via a manual workflow outside of submission and peer review systems, or through using a system with an existing credit integration. the roles given in the above taxonomy include, but are not limited to, traditional authorship roles. the roles are not intended to define what constitutes authorship, but instead to capture all the work that allows scholarly publications to be produced. recommendations for applying the credit taxonomy are: list all contributions – all contributions should be listed, whether from those listed as authors or individuals named in acknowledgements; multiple roles possible – individual contributors can be assigned multiple roles, and a given role can be assigned to multiple contributors; degree of contribution optional – where multiple individuals serve in the same role, the degree of contribution can optionally be specified as ‘lead’, ‘equal’, or ‘supporting’; shared responsibility – corresponding authors should assume responsibility for role assignment, and all contributors should be given the opportunity to review and confirm assigned roles; make credit machine readable – credit tagged contributions should be coded in jats xml v . ​the taxonomy has been refined by consortia advancing standards in research administration (casrai) and national information standards organization (niso). it is in adoption by cell press, plos and many other publishers, and has been integrated into some submission and peer review systems including aries’ editorial manager, and river valley’s review. it will be integrated into coko foundation’s xpub. for publishers to make credit machine readable and with full meta-data available, credit should be  coded in jats xml v . , described via this link: https://jats r.org/credit-taxonomy links of interest resources plos & credit cell press adoption interview, council for science editors’ science editor aries systems credit integration faq aries systems credit integration video​ aries systems/ jbjs credit integration case study articles & publications how can we ensure visibility and diversity in research contributions? how the contributor role taxonomy (credit) is helping the shift from authorship to contributorship making research contributions more transparent: report of a force workshop farewell authors, hello contributors contributorship, not authorship: use credit to indicate who did what now is the time for a team-based approach to team science credit where credit is due now is the time for a team-based approach to team science increase transparency by adding credit to workflow with pubsweet credit data generators for data reuse report on the international workshop on contributorship and scholarly attribution ( ) guglielmi, giorgia, who gets credit? survey digs into the thorny question of authorship. nature news. doi: . /d - - - brand, a.; allen, l.; altman, m.; hlava, m.; scott, j., beyond authorship: attribution, contribution, collaboration, and credit. learned publishing , ( ), - . allen, l.; brand, a.; scott, j.; altman, m.; hlava, m., credit where credit is due. nature , ( ), - . “academic recognition of team science: how to optimize the canadian academic system,” (canadian academy of health sciences, ottawa (on), ). “improving recognition of team science contributions in biomedical research careers,” (academy of medical sciences ). v. ilik, m. conlon, g. triggs, m. haendel, k. l. holmes, openvivo: transparency in scholarship. frontiers in research metrics and analytics preprint ( ). interview with @dkingsley, cambridge university meet the chairs liz allen, director of strategic initiatives, f research alison mcgonagle-o’connell, founder, o’connell consulting. get involved we have been overwhelmed by the interest in credit to date and are working to support adoption and encourage practical usage. we are also working to ensure that credit is tied to orcid and included in the crossref metadata capture. credit is currently managed as an informal standard at casrai and we are working towards formal standardisation of the taxonomy at niso. but please do get involved by joining the community credit interest group, spreading the word, and providing feedback! proudly powered by wordpress | theme: business max planck vlib news max planck vlib news   mpg/sfx server maintenance, tuesday december, - pm the database of the mpg/sfx server will undergo scheduled maintenance. the downtime will start at pm. services are expected to be back after minutes. we apologize for any inconvenience. how to get elsevier articles after december , the max planck digital library has been mandated to discontinue their elsevier subscription when the current agreement expires on december , . read more about the background in the full press release. nevertheless, most journal articles published until that date will remain available, due to the rights stipulated in the mpg contracts to date. to &# ; continue reading how to get elsevier articles after december , &# ; aleph multipool-recherche: parallele suche in mpg-bibliothekskatalogen update, . . : die multipool-suche gibt es jetzt auch als webinterface. der multipool-expertenmodus im aleph katalogisierungs-client dient der schnellen recherche in mehreren datenbanken gleichzeitig. dabei können die datenbanken entweder direkt auf dem aleph-server liegen oder als externe ressourcen über das z . -protokoll angebunden sein. zus&# ;tzlich zu den lokalen bibliotheken ist der mpi bibliothekskatalog im gbv auf dem &# ; continue reading aleph multipool-recherche: parallele suche in mpg-bibliothekskatalogen &# ; goodbye vlib! shutdown after october , in the max planck virtual library (vlib) was launched, with the idea of making all information resources relevant for max planck users simultaneously searchable under a common user interface. since then, the vlib project partners from the max planck libraries, information retrieval services groups, the gwdg and the mpdl invested much time and effort &# ; continue reading goodbye vlib! shutdown after october , &# ; https only for mpg/sfx and mpg.ebooks as of next week, all http requests to the mpg/sfx link resolver will be redirected to a corresponding https request. the max planck society electronic book index is scheduled to be switched to https only access the week after, starting on november , . regular web browser use of the above services should not be &# ; continue reading https only for mpg/sfx and mpg.ebooks &# ; https enabled for mpg/sfx the mpg/sfx link resolver is now alternatively accessible via the https protocol. the secure base url of the productive mpg/sfx instance is: https://sfx.mpg.de/sfx_local. https support enables secure third-party sites to load or to embed content from mpg/sfx without causing mixed content errors. please feel free to update your applications or your links to the mpg/sfx &# ; continue reading https enabled for mpg/sfx &# ; citation trails in primo central index (pci) the may release brought an interesting functionality to the mpg/sfx server maintenance, wednesday april, - am the mpg/sfx server updates to a new database (mariadb) on wednesday morning. the downtime will begin at am and is scheduled to last until am. we apologize for any inconvenience. proquest illustrata databases discontinued last year, the information provider proquest decided to discontinue its &# ;illustrata technology&# ; and &# ;illustrata natural science&# ; databases. unfortunately, this represents a preliminary end to proquest&# ;s long-year investment into deep indexing content. in a corresponding support article proquest states that there &# ;[&# ;] will be no loss of full text and full text + graphics images because &# ; continue reading proquest illustrata databases discontinued &# ; mpg.rena via https only the mpg resource navigator mpg.rena is now accessible via https only. if in doubt, please double-check any routines and applications loading or embedding content via mpg.rena apis. please note that you may need to re-subscribe to resource feeds, or update urls of rss widgets in your content management system, etc. we apologize for any inconvenience. datafest speakers agenda partners about passes past editions x speakers agenda partners about passes past editions - december watch the recordings! follow us: #datafesttbilisi online celebration for data lovers online celebration for data lovers datafest tbilisi is the th edition of an annual international data conference happening in the vibrant capital of georgia. this time, it will take place online and, traditionally, will bring together hundreds of data professionals from all around the world, to inspire and encourage, and to create meaningful connections.    journalism human rights & democracy design analytics technology business speakers all speakers gert franke co-founder / managing director @ clever°franke | the netherlands nasser oudjidane co-founder & ceo @ intrro | uk devendra vyavahare senior data engineer @ delivery hero | germany rocío joo statistician, researcher, data scientist @ university of florida | usa gev sogomonian co-founder @ aimhub | armenia tetyana bohdanova fellow @ prague civil society centre | ukraine anahit karapetyan compliance investigator / aml trainer @ revolut | poland wael eskandar analyst @ tactical tech | germany erekle magradze director of engineering @ maxinai, associate professor @ ilia state university | georgia lasha pertakhia machine learning engineer @ maxinai | georgia dr. divya seernani psychologist, researcher, co-organizer @ r-ladies freiburg | germany luca borella business development @ tesobe | germany yulia kim business intelligence manager @ gocardless | uk stefanie posavec designer, artist, author | uk henrietta ross course leader on ma data visualisation @ london college of communication | uk varlam ebanoidze co-founder @ risktech fintech | uk gianluigi davassi ceo @ faire.ai | germany miriam quick data journalist, researcher, author | uk rodrigo menegat data journalist | brazil mara pometti data strategist @ ibm | italy / uk charles frye deep learning educator @ weights & biases | usa viktor nestulia senior manager @ open contracting partnership | ukraine ana brandusescu mcconnell foundation professor of practice | canada all speakers duncan geere generative artist & information designer | sweden lauren klein associate professor @ emory university | usa denise ajiri adjunct assistant professor @ columbia university | usa pedro ecija serrano head of actuarial and analytics @ grant thornton ireland | ireland uli köppen head of ai + automation lab @ german public broadcaster | germany irakli gogatishvili head of data research lab @ bank of georgia | georgia natalia voutova head @ council of europe office in georgia | georgia omar ferwati researcher @ forensic architecture | canada caroline lair founder @ the good ai | france shabnam mojtahedi sr. program manager @ benetech | usa bilal mateen clinical technology lead @ wellcome trust | uk david mark human rights adviser @ odihr | poland michela graziani co-founder & product designer @ symbolikon | italy sandra rendgen author, visualization strategist | germany adina renner visual data journalist @ neue zürcher zeitung | switzerland evelina judeikyte data analyst @ iziwork | france evelyn münster data visualization designer | germany barnaby skinner head of visuals @ neue zürcher zeitung | switzerland kathy rowell co-founder & principal @ healthdataviz | usa jane zhang data visualization designer | canada frederico pires senior customer growth manager @ utrust | portugal carlotta dotto senior data journalist @ first draft | uk ashish singh co-founder @ scatterpie analytics | india don't miss the event get your pass organizers & partners questions? contact us: hello@datafest.ge follow us: #datafesttbilisi subscribe here for news: send made by forset, wandio with news: vanishing nfts, free keene not so free, coinbase wash-trading litecoin – attack of the foot blockchain skip to content attack of the foot blockchain blockchain and cryptocurrency news and analysis by david gerard about the author attack of the foot blockchain: the book book extras business bafflegab, but on the blockchain buterin’s quantum quest dogecoin ethereum smart contracts in practice icos: magic beans and bubble machines imogen heap: “tiny human”. total sales: $ . index libra shrugged: how facebook tried to take over the money my cryptocurrency and blockchain commentary and writing for others press coverage: attack of the foot blockchain press coverage: libra shrugged table of contents the conspiracy theory economics of bitcoin the dao: the steadfast iron will of unstoppable code search for: main menu news: vanishing nfts, free keene not so free, coinbase wash-trading litecoin th march th april - by david gerard - leave a comment i have printed copies of libra shrugged and attack of the foot blockchain here — if you’d like to get yourself copies of the books signed by the author, go to this post and see how much to paypal me. you can support my work by signing up for the patreon — a few dollars every month ensures the continuing flow of delights. it really does help. [patreon] i added a $ /month corporate tier to the patreon — you get early access to stories i’m working on, and the opportunity to ask your blockchain questions and have me answer! you get that on the other tiers too — but the number is bigger on this tier, and will look more impressive on your analyst newsletter expense account. [patreon] and tell your friends and colleagues to sign up for this newsletter by email! [scroll down, or click here] prole art threat i’m an “is it art?” maximalist. nfts can be used for creative artistic value — just as anything can. the creator and the buyers are playing a game together; there can be genuine appreciation and participation there. i’m not gonna tell ’em they’re wrong. of course, it may be art, but it can also be a reprehensible scam. the serious problems with the wider nft market remain. and when the klf burnt a million quid, they only set it on fire once. if you think of the most absolutely inept and trash-tier way of performing any real-world function, then crypto will reliably not meet even that bar. the pictures for nfts are often stored on the interplanetary file system, or ipfs. blockchain promoters talk like ipfs is some sort of bulletproof cloud storage that works by magic and unicorns. but functionally, ipfs works the same way as bittorrent with magnet links — if nobody bothers seeding your file, there’s no file there. nifty gateway turn out not to bother to seed literally the files they sold, a few weeks later. [twitter; twitter] how does the opensea nft platform deal with copyright violations? they keep the unfortunate buyer’s money — and tell them they should have done their own research. (story by ben munster.) [vice] beeple has made the wisest play in the nft game — he got the $ million in ether for his jpeg, and sold it for dollars immediately. [new yorker]   woopsie pic.twitter.com/saqbee yj — kim parker (@thatkimparker) march ,   this is radio freedom activists from the free keene movement, who seek to turn keene, new hampshire into a libertarian paradise, are being ground under the statist jackboot — just for using sound money on a website! well, running a money transmission business — specifically, exchanging cryptocurrency for actual money — that wasn’t “licensed” by the bureaucratic oppressors who hate freedom. and something about opening bank accounts in the names of churches — “the shire free church”, “the crypto church of nh”, “the church of the invisible hand”, and “the reformed satanic church” — and pretending that the money coming in was tax-deductible religious donations. the usual governmental overreach. [justice department; patch; indictment, pdf; case docket] ian freeman (on the land?) had $ . million worth of bitcoins, and $ , in a safe, when the fbi raided the house where the arrestees lived — which was owned by “shire free church monadnock.” the same house was raided by the fbi in — on an investigation into child pornography. must be one of those coincidences. [keene sentinel, archive; union leader, archive] for those whose day isn’t complete without some cheering cantwell news — you know who you are — this particular bunch are all ex-friends of chris “the crying nazi” cantwell, who moved to keene specifically to join free keene. the recently-arrested activists now claim cantwell was never part of free keene, but that’s completely false — they showed up as moral support to cantwell’s recent trial on threats of rape, only to throw him under the bus when he was convicted. [manchester ink link] in my foreign policy piece on the ways neo-nazis used bitcoin, this bit at the end was about cantwell: [foreign policy, ] one neo-nazi podcaster found a credit card processor that was fine with the content of his show but said he was untouchable for another reason: he was considered a money laundering risk because he dealt in cryptocurrency. one story that didn’t get into that piece is how cantwell got out of jail after the unite the right neo-nazi rally in charlottesville, north carolina in and bought up big into bitcoin! … right at the december peak of the bubble. he lost so much money on bitcoin that he had to sell his guns to pay his lawyer.   every crypto vision of the future is trying to take a technology developed for hyperadversarial contexts and being like let's build a society on this. like saying all transit should take place in armored tanks, or all interpersonal disputes should go through full legal discovery — stephanie (@isosteph) march ,   lie dream of a casino soul coinbase has had to pay a $ . million fine to the cftc for allowing an unnamed employee to wash-trade litecoin on the platform. on some days, the employee’s wash-trading was % of the litecoin/bitcoin trading pair’s volume. coinbase also operated two trading bots, “hedger and replicator,” which often matched each others’ orders, and reported these matches to the market. [press release; order, pdf] cftc commissioner dawn stump issued an opinion that concurred with the stated facts, but disputes that the issue was within cftc’s jurisdiction, and says that the reporting didn’t affect the market. this appears not to be the case — it did affect the markets that depended on coinbase’s numbers. [cftc; new money review] coinbase’s direct listing public offering has been pushed back at least to april — no reason given, but doubtless coincidental with coinbase getting caught letting an employee run wild wash-trading on the exchange. [bloomberg quint] if coinbase — one of the more regulated exchanges — did this, just think what the unregulated exchanges get up to. bloomberg reports a cftc probe into binance, and whether the non-us exchange had us customers — attributed to unnamed “people familiar with the matter.” there doesn’t seem to be further news on this one as yet. [bloomberg] ben delo and arthur hayes from bitmex will be surrendering to us authorities to face the department of justice charges against them. [bloomberg; twitter] bennett tomlin summarises what bitfinex/tether executives did before bitfinex or tether. [blog post]   said differently – unfortunately coinbase requires its customers to retain counsel to get customer service… — david silver (silver miller) (@dcsilver) march ,   baby’s on fire alex de vries (digiconomist) has a study published in joule on what the rising bitcoin price means for the bitcoin network’s energy consumption. he thinks the bitcoin network could already ues as much energy as every other data centre in the world — with a carbon footprint the size of london. [joule] “coin miners have basically added a province’s worth of electricity consumption without adding a province’s worth of economic output, so bitcoin mining is actually a net drag on the economy as a whole,” tim swanson told al jazeera. [al jazeera] in late , benjamin reynolds of control-finance ltd ran a bitcoin investment scam in the uk. the cftc, in association with the fca, now have a $ million default judgement against him. the hard part: finding him. [press release] new bitcoin use case found! selling fake insider trading tips on the dark web. [sec; complaint, pdf]   an entire generation (or maybe just a cargo cult on twitter/reddit) read the inflation chapter of an econ textbook, panicked & stopped before they read the rest. maybe the fed should do some psas or something. pay @cullenroche or @thestalwart to do a youtube series. — adam singer (@adamsinger) march ,   be less brenda the advertising standards authority (uk) has finally acted against an ad for bitcoin — in this case, a coinfloor ad running in local papers, featuring a woman buying bitcoins with a third of her pension. the complainant said the ad was: misleading, because it failed to make clear the risks associated with bitcoin investments, including loss of capital, and that neither coinfloor ltd nor the general bitcoin market were regulated in the uk; and socially irresponsible, because it suggested that purchasing bitcoin was a good or secure way to invest one’s savings or pension. the asa upheld both objections. [asa]   in , a mcdonald's hamburger cost $ . . today, they're worth $ . each. if you had bought , of them for just $ , and never sold, those burgers would be worth $ , , today.#investing #cfa #compounders — abstractify 📚 (@abstractify) march ,   carpe diem facebook’s diem applied for a money transmitter licence to finma, the swiss regulator, in april — back when it was still called libra. the application is still pending, nearly a year later. finma apparently has internal disagreements on whether to let diem go forward — and they know they absolutely need this to be okay with regulators in the us and eu before they proceed. [srf, audio in german; twitter] kevin weil, one of libra/diem’s four founders, and co-author of the libra white paper, has quit facebook finance. he’s moving to satellite surveillance startup planet.com. “i’m beyond excited to be working on a non-zombie project,” weil didn’t quite say. [twitter; planet] i’m wondering how long before david marcus gets bored running whatsapp pay and wanders off too. there’s still active contributions to the diem github repo, if only from facebook staff. [github] the east caribbean central bank is launching its dcash cbdc pilot on march. [eccb, archive] the european central bank has blogged on their plans for a digital euro! that is: no specific plans whatsoever, and repeated reassurances that they’re not about to replace cash, impose negative interest rates, or push out the commercial banks. and they don’t have a consumer use case as yet. [ecb]   facebook's strategy for protecting their crypto projects from regulators is to rename the project and cycle out all the executives every months so that no regulator can possibly remember if "that libra or diem thing" is still around — kyle s. gibson (@kylesgibson) march ,   ico, ico telegram’s ico failed so hard that founder pavel durov ended up owing $ million to investors — specifically, the sort of investors who have robust ideas on how to deal with perceived shenanigans. “pavel’s got a smart team, i’m sure they’ll come up with something,” said one creditor. durov announced in december that telegram would start running advertising in public channels. [telegram] now durov has announced a $ billion bond issue. [telegram] he is delighted to share that he can finally pay back the guys who put money into the ico, and that he will continue to enjoy the use of his limbs. sec’s action against ripple labs, claiming xrp is a security, continues — and so far, they’re still sniping over what the case will cover: the sec asks to strike ripple’s fourth affirmative defense, “lack of due process and fair notice”; ripple complains that the sec won’t submit documents in discovery on what it thinks of bitcoin and ethereum; ripple executives brad garlinghouse and christian larsen ask to quash the sec subpoenas to look into their personal bank accounts; and john deaton, representing a group calling itself the xrp holders, wishes to join the case on the grounds that the sec has damaged the value of their xrp. much of this will be dealt with in pleadings to be filed over april, may and june. [case docket, with linked pdfs] trailofbits has been fuzz-testing the compiler for solidity — the language most blockchain smart contracts are written in — for bugs and vulnerabilities. [trailofbits]   we do have proof that the ftc did, in fact, say “buttcoin”https://t.co/ eywxuxso https://t.co/qaxyl ofyg — buttcoin (@buttcoin) march ,   things happen the crypto ban in india looks set to go ahead, penalising miners and traders — “officials are confident of getting the bill enacted into law as prime minister narendra modi’s government holds a comfortable majority in parliament.” you’ll have six months to liquidate your holding. [reuters] in the meantime, indian companies will have to disclose their crypto holdings in their profit-and-loss and balance sheets. [ministry of corporate affairs, pdf; finance magnates] how’s reddit’s subforum crypto token experiment going? well, /r/cryptocurrency is now pay-to-post — moon tokens a month, or $ . you can imagine my surprise at seeing the scheme end up being run as a scam to enrich local forum moderators. [reddit] visa moves to allow payment settlements using dollar-substitute stablecoin usdc, in a pilot programme with anchorage and crypto.com: “visa has launched a pilot that allows crypto.com to send usdc to visa to settle a portion of its obligations for the crypto.com visa card program.” the size of the “portion” is not specified. visa also tweeted some non-detail details. [press release; reuters; twitter] former sec chair jay clayton has his first post-sec crypto consulting gig — as an advisor to one river digital asset management. [press release]   i have digitized your plums and sold them although, strictly speaking, i sold a hash of a url to a json file describing your plums in perpetuity or, for as long as https://t.co/ jkctohqbo stays in business the plums themselves? i burned them forgive me they made a lot of smoke — ian holmes (@ianholmes) march ,   living on video i did a ton of media on nfts in the past month, including the bbc’s explainer: what are nfts and why are some worth millions? “the same guys who’ve always been at it, trying to come up with a new form of worthless magic bean that they can sell for money.” [bbc] business insider writes on nfts, quoting me — and the independent quotes business insider quoting me. [business insider, independent] i went on the coingeek conversations podcast again, to talk about nfts with josh petty, a.k.a. elon moist of twetch. we ended up agreeing on most stuff — that you can definitely do good and fun things with nfts, but the present mainstream market is awful. [coingeek] i don’t yet know of anyone busted for money-laundering through nfts, but it’s the obvious use case for objects of purely subjective value being traded in an art market at the speed of crypto. crypto news has an article, with quotes from me. [crypto news] i was interviewed on ntd about nfts: expert warns about nft digital crypto art. [ntd] kenny schachter from artnet writes about nfts. he’s an art professor, and very much into the potential of nfts, but he was great to talk to about this stuff. [artnet] i can’t name it until it airs — they’re worried about their competition sniping them — but i recorded a segment this evening on nfts for a tv show with quite a large and important audience. should be out tomorrow, or maybe the day after. someone sold a house for $ . million in bitcoins. i went on a tv segment about it, to explain what the heck a bitcoin is. [video; transcript] sky news arabia has a -minute bitcoin documentary, with me in — my bits are : – : , : – : (holding up one book backwards) and : – : . it’s all in arabic, so i have no idea of its quality, but they’re part of the sane sky news (uk), not the crazy one (australia). i’m told the voiceover translations of my bits are accurate. [youtube] i talked about celebrity crypto scams on ntd — the elon musk scams on twitter, and the instagram influencer who conned his followers out of bitcoins. had to use the laptop camera, but ehh, it gave usable results. my segment starts : . [youtube] not cryptocurrency related — that’s coming later, when we do the “bitcoin nazis” episode — but i’m on the podcast i don’t speak german, talking to a couple of antifa commies about scott alexander, author of the intellectual dark web rationalist blog slate star codex. i don’t speak german is mostly about neo-nazis and white nationalists, and slate star codex isn’t really that — but scott alexander is a massive and explicit fan of eugenics, “human biodiversity” (scientific racism), sterilising those he sees as unfit, and the neoreactionary movement, so that was close enough for our purposes. (for cites on all those claims, listen to the podcast.) it was a fun episode. also appearing is elizabeth sandifer, author of neoreaction a basilisk (uk, us), and the person responsible for me starting attack of the foot blockchain. [i don’t speak german] hint for crypto video media: when sending a query, say who the hosts and all the guests are, and what the format is. the media arm of one crypto news site that’s definitely large enough to know better nearly (inadvertently) sprang an ambush live debate on me, until i questioned more closely. don’t be the outlet that your prospective subjects warn each other about.   rare that a single tweet so perfectly encapsulates everything that makes my skin crawl about sf bay area's moneyed, whitebread techie monoculture. truly the most cursed thing i have seen in recent memory. https://t.co/ ecwpglu o — kc 🏴 (@kdotcdot) march ,   check out my technical analysis on the stuck boat, big breakout incoming. should be unstuck any time now. very bullish pic.twitter.com/u bknxuyqt — g. kennedy fuld jr., cfa, mba, chea, frm (@membersee) march ,   your subscriptions keep this site going. sign up today! share this: click to share on twitter (opens in new window) click to share on facebook (opens in new window) click to share on linkedin (opens in new window) click to share on reddit (opens in new window) click to share on telegram (opens in new window) click to share on hacker news (opens in new window) click to email this to a friend (opens in new window) taggedanchoragearthur hayesasabeepleben delobenjamin reynoldsbinancebitfinexbitmexcftcchristopher cantwellcoinbasecoinfloorcontrol-financecrypto.comdawn stumpdcashdiemdigiconomistecbeccbfacebook financefinmafree keeneian freemanicoindiaipfsjay claytonkevin weillinkslitecoinnftnifty gatewayone riveropenseapavel durovredditripplesecsolidityswitzerlandtelegramtethertim swansontrailofbitsusdcvisaxrp post navigation previous article quadriga documentary ‘dead man’s switch’ — the trailer is out next article tether produces a new attestation — it says nothing useful leave a reply cancel reply your email address will not be published. required fields are marked * comment name * email * website notify me of follow-up comments by email. notify me of new posts by email. this site uses akismet to reduce spam. learn how your comment data is processed. search for: click here to get signed copies of the books!   get blog posts by email! email address subscribe support this site on patreon! hack through the blockchain bafflegab: $ /month for early access to works in progress! $ /month for early access and even greater support! $ /month corporate rate, for your analyst newsletter budget! buy the books! libra shrugged us paperback uk/europe paperback isbn- : kindle: uk, us, australia, canada (and all other kindle stores) — no drm google play books (pdf) apple books kobo smashwords other e-book stores attack of the foot blockchain us paperback uk/europe paperback isbn- : kindle: uk, us, australia, canada (and all other kindle stores) — no drm google play books (pdf) apple books kobo smashwords other e-book stores available worldwide  rss - posts  rss - comments recent blog posts news: coinbase goes public, bitcoin hashrate goes down, nfts go down, proof-of-space trashes hard disk market stilgherrian: the pm dumb anarcho-capitalist blockchain scams with david gerard podcast: i don’t speak german # : crypto fascists, with david gerard desperate investors, neoliberalism and keynes: how to increase returns new york’s excelsior pass for covid- , on ibm blockchain: doing the wrong thing, badly excerpts from the book table of contents the conspiracy theory economics of bitcoin dogecoin buterin’s quantum quest icos: magic beans and bubble machines ethereum smart contracts in practice the dao: the steadfast iron will of unstoppable code business bafflegab, but on the blockchain imogen heap: “tiny human”. total sales: $ . index about press coverage for attack of the foot blockchain press coverage for libra shrugged my cryptocurrency and blockchain press commentary and writing facebook author page about the author contact the content of this site is journalism and personal opinion. nothing contained on this site is, or should be construed as providing or offering, investment, legal, accounting, tax or other advice. do not act on any opinion expressed here without consulting a qualified professional. i do not hold a position in any crypto asset or cryptocurrency or blockchain company. amazon product links on this site are affiliate links — as an amazon associate i earn from qualifying purchases. (this doesn’t cost you any extra.) copyright © – david gerard powered by wordpress and hitmag. send to email address your name your email address cancel post was not sent - check your email addresses! email check failed, please try again sorry, your blog cannot share posts by email. twarc/utils at main · docnow/twarc · github skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} docnow / twarc notifications star k fork code issues pull requests actions projects wiki security insights more code issues pull requests actions projects wiki security insights main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags twarc/utils/ go to file twarc/utils/ latest commit edsu commit on every insert is slow when writing to a usb thumbdrive appar… … dd feb , commit on every insert is slow when writing to a usb thumbdrive appar… …ently dd git stats history files permalink failed to load latest commit information. type name latest commit message commit time . . auth_timing.py     deduplicate.py     deleted.py     deleted_users.py     deletes.py     embeds.py     emojis.py     extractor.py     filter_date.py     filter_users.py     flakey.py     foaf.py     gender.py     geo.py     geofilter.py     geojson.py     json csv.py     media warc.py     media_urls.py     network.py     noretweets.py     oembeds.py     remove_limit.py     retweets.py     search.py     sensitive.py     sort_by_id.py     source.py     tags.py     times.py     twarc-archive.py     tweet.py     tweet_compliance.py     tweet_text.py     tweet_urls.py     tweetometer.py     tweets.py     unshrtn.py     urls.py     users.py     validate.py     wall.py     wayback.py     webarchives.py     wordcloud.py     youtubedl.py     © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. expansions | twitter developer expansions overview with expansions, developers can expand objects referenced in the payload. objects available for expansion are referenced by id. for example, the referenced_tweets.id and author_id fields returned in the tweets lookup payload can be expanded into complete objects. if you would like to request fields related to the user that posted that tweet, or the media, poll, or place that was included in that tweet, you will need to pass the related expansion query parameter in your request to receive that data in your response. when including an expansion in your request, we will include that expanded object’s default fields within the same response. it helps return additional data in the same response without the need for separate requests. if you would like to request additional fields related to the expanded object, you can include the field parameter associated with that expanded object, along with a comma-separated list of fields that you would like to receive in your response. please note fields are not always returned in the same order they were requested in the query. { "data": { "attachments": { "media_keys": [ " _ " ] }, "author_id": " ", "id": " ", "referenced_tweets": [ { "type": "replied_to", "id": " " } ], "text": "we believe the best future version of our api will come from building it with you. here’s to another great year with everyone who builds on the twitter platform. we can’t wait to continue working with you in the new year. https://t.co/yvxdk aoo " } } the tweet payload above contains some reference ids for complementary objects we can expand on. we can expand on attachments.media_keys to view the media object, author_id to view the user object, and referenced_tweets.id to view the tweet object the originally requested tweet was referencing. expanded objects will be nested in the "includes" object, as can be seen in the sample response below.   available expansions in a tweet payload expansion description author_id returns a user object representing the tweet’s author referenced_tweets.id returns a tweet object that this tweet is referencing (either as a retweet, quoted tweet, or reply) in_reply_to_user_id returns a user object representing the tweet author this requested tweet is a reply of attachments.media_keys returns a media object representing the images, videos, gifs included in the tweet attachments.poll_ids returns a poll object containing metadata for the poll included in the tweet geo.place_id returns a place object containing metadata for the location tagged in the tweet entities.mentions.username returns a user object for the user mentioned in the tweet referenced_tweets.id.author_id returns a user object for the author of the referenced tweet   available expansion in a user payload expansion description pinned_tweet_id returns a tweet object representing the tweet pinned to the top of the user’s profile   expanding the media, tweet, and user objects in the following request, we are requesting the following expansions to include alongside the default tweet fields.  be sure to replace $bearer_token with your own generated bearer token. attachments.media_keys referenced_tweets.id author_id   sample request   curl 'https://api.twitter.com/ /tweets/ ?expansions=attachments.media_keys,referenced_tweets.id,author_id' --header 'authorization: bearer $bearer_token' code copied to clipboard   sample response { "data": { "attachments": { "media_keys": [ " _ " ] }, "author_id": " ", "id": " ", "referenced_tweets": [ { "type": "replied_to", "id": " " } ], "text": "we believe the best future version of our api will come from building it with you. here’s to another great year with everyone who builds on the twitter platform. we can’t wait to continue working with you in the new year. https://t.co/yvxdk aoo " }, "includes": { "media": [ { "media_key": " _ ", "type": "animated_gif" } ], "users": [ { "id": " ", "name": "twitter dev", "username": "twitterdev" } ], "tweets": [ { "author_id": " ", "id": " ", "referenced_tweets": [ { "type": "replied_to", "id": " " } ], "text": "these launches would not be possible without the feedback you provided along the way, so thank you to everyone who has contributed your time and ideas. have more feedback? let us know ⬇️ https://t.co/vxp uknuj " } ] } } expanding the poll object in the following request, we are requesting the following expansions to include alongside the default tweet fields: attachments.poll_ids   sample request curl 'https://api.twitter.com/ /tweets/ ?expansions=attachments.poll_ids' --header 'authorization: bearer $bearer_token' code copied to clipboard sample response { "data": { "attachments": { "poll_ids": [ " " ] }, "id": " ", "text": "c#" }, "includes": { "polls": [ { "id": " ", "options": [ { "position": , "label": "“c sharp”", "votes": }, { "position": , "label": "“c hashtag”", "votes": } ] } ] } } expanding the place object in the following request, we are requesting the following expansions to include alongside the default tweet fields: geo.place_id   sample request curl 'https://api.twitter.com/ /tweets/:id?expansions=geo.place_id’ --header 'authorization: bearer $bearer_token' code copied to clipboard sample response { "data": { "geo": { "place_id": " a a b f " }, "id": "id", "text": "test" }, "includes": { "places": [ { "full_name": "manhattan, ny", "id": " a a b f " } ] } } next step learn how to use fields with expansions review the different data objects available with twitter api v was this document helpful? thank you for the feedback. we’re really glad we could help! thank you for the feedback. how could we improve this document? this page is missing information. the information was hard to follow or confusing. there is inaccurate information. there is a broken link or typo. specific feedback submit feedback skip thank you for the feedback. your comments will help us improve our documents in the future. developer agreement, policy & terms follow @twitterdev subscribe to developer news twitter platform twitter.com status card validator privacy center transparency center twitter, inc. about the company twitter for good company news brand toolkit jobs and internships investors help help center using twitter twitter media ads help center managing your account safety and security rules and policies contact us developer resources developer home documentation forums communities developer blog engineering blog developer terms business resources advertise twitter for business resources and guides twitter for marketers marketing insights brand inspiration twitter data twitter flight school © twitter, inc. cookies privacy terms and conditions language developer by using twitter’s services you agree to our cookies use. we use cookies for purposes including analytics, personalisation, and ads. ok this page and certain other twitter sites place and read third party cookies on your browser that are used for non-essential purposes including targeting of ads. through these cookies, google, linkedin and demandbase collect personal data about you for their own purposes. learn more. accept decline home - duraspace.org projects dspace fedora vivo who’s using services archivesdirect dspacedirect duracloud community our users community programs service providers strategic partners membership values and benefits current members financial contributors become a member support choosing a project choosing a service technical specifications wiki contact us news & events latest news event calendar webinars monthly newsletter about duraspace projects services community membership support news & events projects dspace fedora vivo who’s using services archivesdirect dspacedirect duracloud community our users community programs service providers strategic partners membership values and benefits current members financial contributors become a member support choosing a project choosing a service technical specifications wiki contact us news & events latest news event calendar webinars monthly newsletter help us preserve and provide access to the world's intellectual, cultural and scientific heritage join us learn more latest news . . fedora . : a migration story – the berlin state library . . dspace . beta now available . . dspace . testathon: how you can help us build a better dspace through testing & reporting our global community the community duraspace serves is alive with ideas and innovation aimed at collaboratively meeting the needs of the scholarly ecosystem that connects us all. our global community contributes to the advancement of dspace, fedora and vivo. at the same time subscribers to duraspace services are helping to build best practices for delivery of high quality customer service. we are grateful for our community’s continued support and engagement in the enterprise we share as we work together to provide enduring access to the world’s digital heritage. join us   open source projects the fedora, dspace and vivo community-supported projects are proud to provide more than users worldwide from more than countries with freely-available open source software. fedora is a flexible repository platform with native linked data capabilities. dspace is a turnkey institutional repository application. vivo creates an integrated record of the scholarly work of your organization.   our services archivesdirect, dspacedirect, and duracloud services from duraspace provide access to institutional resources, preservation of treasured collections, and simplified data management tools. our services are built on solid open source software platforms, can be set up quickly, and are competitively priced. staff experts work directly with customers to provide personalized on-boarding and superb customer support. duracloud is a hosted service that lets you control where and how your content is preserved in the cloud. dspacedirect is a hosted turnkey repository solution. archivesdirect is a complete, hosted archiving solution.   about about duraspace history what we do board of directors meet the team policies reports community our users community programs service providers strategic partners membership values & benefits current members financial contributors become a member support choosing a project choosing a service technical specifications wiki contact us news & events latest news event calendar webinars monthly newsletter this work is licensed under a creative commons attribution . international license should all conference talks be pre-recorded? | disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email should all conference talks be pre-recorded? posted on april , and updated on april ,     minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and conference organizers. should all talks be pre-recorded, even when we are back face-to-face? note! after i posted a link to this article on twitter, there was a great response of thoughtful comments. i've included new bullet points below and summarized the responses in another blog post. as an entirely virtual conference, i think we can call code lib a success. success ≠ perfect, of course, and last week the conference coordinating team got together on a zoom call for a debriefing session. we had a lengthy discussion about what we learned and what we wanted to take forward to the conference, which we’re anticipating will be something with a face-to-face component. that last sentence was tough to compose: “…will be face-to-face”? “…will be both face-to-face and virtual”? (or another fully virtual event?) truth be told, i don’t think we know yet. i think we know with some certainty that the covid pandemic will become much more manageable by this time next year—at least in north america and europe. (code lib draws from primarily north american library technologists with a few guests from other parts of the world.) i’m hearing from higher education institutions, though, that travel is going to be severely curtailed…if not for health risk reasons, then because budgets have been slashed. so one has to wonder what a conference will look like next year. i’ve been to two online conferences this year: nisoplus and code lib. both meetings recorded talks in advance and started playback of the recordings at a fixed point in time. this was beneficial for a couple of reasons. for organizers and presenters, pre-recording allowed technical glitches to be worked through without the pressure of a live event happening. technology is not nearly perfect enough or ubiquitously spread to count on it working in real-time. nisoplus also used the recordings to get transcribed text for the videos. (code lib used live transcriptions on the synchronous playback.) attendees and presenters benefited from pre-recording because the presenters could be in the text chat channel to answer questions and provide insights. having the presenter free during the playback offers new possibilities for making talks more engaging: responding in real-time to polls, getting forehand knowledge of topics for subsequent real-time question/answer sessions, and so forth. the synchronous playback time meant that there was a point when (almost) everyone was together watching the same talk—just as in face-to-face sessions. during the code lib conference coordinating debrief call, i asked the question: “if we saw so many benefits to pre-recording talks, do we want to pre-record them all next year?” in addition to the reasons above, pre-recorded talks benefit those who are not comfortable speaking english or are first-time presenters. (they have a chance to re-do their talk as many times as they need in a much less stressful environment.) “live” demos are much smoother because a recording can be restarted if something goes wrong. each year, at least one presenter needs to use their own machine (custom software, local development environment, etc.), and swapping out presenter computers in real-time is risky. and it is undoubtedly easier to impose time requirements with recorded sessions. so why not pre-record all of the talks? i get it—it would be different to sit in a ballroom watching a recording play on big screens at the front of the room while the podium is empty. but is it so different as to dramatically change the experience of watching a speaker at a podium? in many respects, we had a dry-run of this during code lib . it was at the early stages of the coming lockdowns when institutions started barring employee travel, and we had to bring in many presenters remotely. i wrote a blog post describing the setup we used for remote presenters, and at the end, i said: i had a few people comment that they were taken aback when they realized that there was no one standing at the podium during the presentation. some attendees, at least, quickly adjusted to this format. for those with the means and privilege of traveling, there can still be face-to-face discussions in the hall, over meals, and social activities. for those that can’t travel (due to risks of traveling, family/personal responsibilities, or budget cuts), the attendee experience is a little more level—everyone is watching the same playback and in the same text backchannels during the talk. i can imagine a conference tool capable of segmenting chat sessions during the talk playback to “tables” where you and close colleagues can exchange ideas and then promote the best ones to a conference-wide chat room. something like that would be beneficial as attendance grows for events with an online component, and it would be a new form of engagement that isn’t practical now. there are undoubtedly reasons not to pre-record all session talks (beyond the feels-weird-to-stare-at-an-unoccupied-ballroom-podium reasons). during the debriefing session, one person brought up that having all pre-recorded talks erodes the justification for in-person attendance. i can see a manager saying, “all of the talks are online…just watch it from your desk. even your own presentation is pre-recorded, so there is no need for you to fly to the meeting.” that’s legitimate. so if you like bullet points, here’s how it lays out. pre-recording all talks is better for: accessibility: better transcriptions for recorded audio versus real-time transcription (and probably at a lower cost, too) engagement: the speaker can be in the text chat during playback, and there could be new options for backchannel discussions better quality: speakers can re-record their talk as many times as needed closer equality: in-person attendees are having much the same experience during the talk as remote attendees downsides for pre-recording all talks: feels weird: yeah, it would be different erodes justification: indeed a problem, especially for those for whom giving a speech is the only path to getting the networking benefits of face-to-face interaction limits presentation format: it forces every session into being a lecture. for two decades cfps have emphasized how will this season be engaging/not just a talking head? (lisa janicke hinchliffe) increased technical burden on speaker and organizers: conference organizers asking presenters to do their own pre-recording is a barrier (junior tidal), and organizers have added new requirements for themselves no audience feedback: pre-recording forces the presenter into an unnatural state relative to the audience (andromeda yelton) currency of information: pre-recording talks before en event naturally introduces a delay between the recording and the playback. (lisa janicke hinchliffe) i’m curious to hear of other reasons, for and against. reach out to me on twitter if you have some. the covid- pandemic has changed our society and will undoubtedly transform it in ways that we can’t even anticipate. is the way that we hold professional conferences one of them? can we just pause for a moment and consider the decades of work and layers of technology that make a modern teleconference call happen? for you younger folks, there was a time when one couldn’t assume the network to be there. as in: the operating system on your computer couldn’t be counted on to have a network stack built into it. in the earliest years of my career, we were tickled pink to have macintoshes at the forefront of connectivity through gatorboxes. go read the first paragraph of that wikipedia article on gatorboxes…tcp/ip was tunneled through localtalk running over phonenet on unshielded twisted pairs no faster than about kbit/second. (and we loved it!) now the network is expected; needing to know about tcp/ip is pushed so far down the stack as to be forgotten…assumed. sure, the software on top now is buggy and bloated—is my zoom client working? has zoom’s service gone down?—but the network…we take that for granted. ↩ tags: code lib, covid , meeting planning, nisoplus categories: l/is profession twitter facebook linkedin previous next you may also enjoy more thoughts on pre-recording conference talks minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion abo... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... running an all-online conference with zoom [post removed] less than minute read this is an article draft that was accidentally published. i hope to work on a final version soon. if you really want to see it, i saved a copy on the interne... enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. should all conference talks be pre-recorded? | disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email should all conference talks be pre-recorded? posted on april , and updated on april ,     minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and conference organizers. should all talks be pre-recorded, even when we are back face-to-face? note! after i posted a link to this article on twitter, there was a great response of thoughtful comments. i've included new bullet points below and summarized the responses in another blog post. as an entirely virtual conference, i think we can call code lib a success. success ≠ perfect, of course, and last week the conference coordinating team got together on a zoom call for a debriefing session. we had a lengthy discussion about what we learned and what we wanted to take forward to the conference, which we’re anticipating will be something with a face-to-face component. that last sentence was tough to compose: “…will be face-to-face”? “…will be both face-to-face and virtual”? (or another fully virtual event?) truth be told, i don’t think we know yet. i think we know with some certainty that the covid pandemic will become much more manageable by this time next year—at least in north america and europe. (code lib draws from primarily north american library technologists with a few guests from other parts of the world.) i’m hearing from higher education institutions, though, that travel is going to be severely curtailed…if not for health risk reasons, then because budgets have been slashed. so one has to wonder what a conference will look like next year. i’ve been to two online conferences this year: nisoplus and code lib. both meetings recorded talks in advance and started playback of the recordings at a fixed point in time. this was beneficial for a couple of reasons. for organizers and presenters, pre-recording allowed technical glitches to be worked through without the pressure of a live event happening. technology is not nearly perfect enough or ubiquitously spread to count on it working in real-time. nisoplus also used the recordings to get transcribed text for the videos. (code lib used live transcriptions on the synchronous playback.) attendees and presenters benefited from pre-recording because the presenters could be in the text chat channel to answer questions and provide insights. having the presenter free during the playback offers new possibilities for making talks more engaging: responding in real-time to polls, getting forehand knowledge of topics for subsequent real-time question/answer sessions, and so forth. the synchronous playback time meant that there was a point when (almost) everyone was together watching the same talk—just as in face-to-face sessions. during the code lib conference coordinating debrief call, i asked the question: “if we saw so many benefits to pre-recording talks, do we want to pre-record them all next year?” in addition to the reasons above, pre-recorded talks benefit those who are not comfortable speaking english or are first-time presenters. (they have a chance to re-do their talk as many times as they need in a much less stressful environment.) “live” demos are much smoother because a recording can be restarted if something goes wrong. each year, at least one presenter needs to use their own machine (custom software, local development environment, etc.), and swapping out presenter computers in real-time is risky. and it is undoubtedly easier to impose time requirements with recorded sessions. so why not pre-record all of the talks? i get it—it would be different to sit in a ballroom watching a recording play on big screens at the front of the room while the podium is empty. but is it so different as to dramatically change the experience of watching a speaker at a podium? in many respects, we had a dry-run of this during code lib . it was at the early stages of the coming lockdowns when institutions started barring employee travel, and we had to bring in many presenters remotely. i wrote a blog post describing the setup we used for remote presenters, and at the end, i said: i had a few people comment that they were taken aback when they realized that there was no one standing at the podium during the presentation. some attendees, at least, quickly adjusted to this format. for those with the means and privilege of traveling, there can still be face-to-face discussions in the hall, over meals, and social activities. for those that can’t travel (due to risks of traveling, family/personal responsibilities, or budget cuts), the attendee experience is a little more level—everyone is watching the same playback and in the same text backchannels during the talk. i can imagine a conference tool capable of segmenting chat sessions during the talk playback to “tables” where you and close colleagues can exchange ideas and then promote the best ones to a conference-wide chat room. something like that would be beneficial as attendance grows for events with an online component, and it would be a new form of engagement that isn’t practical now. there are undoubtedly reasons not to pre-record all session talks (beyond the feels-weird-to-stare-at-an-unoccupied-ballroom-podium reasons). during the debriefing session, one person brought up that having all pre-recorded talks erodes the justification for in-person attendance. i can see a manager saying, “all of the talks are online…just watch it from your desk. even your own presentation is pre-recorded, so there is no need for you to fly to the meeting.” that’s legitimate. so if you like bullet points, here’s how it lays out. pre-recording all talks is better for: accessibility: better transcriptions for recorded audio versus real-time transcription (and probably at a lower cost, too) engagement: the speaker can be in the text chat during playback, and there could be new options for backchannel discussions better quality: speakers can re-record their talk as many times as needed closer equality: in-person attendees are having much the same experience during the talk as remote attendees downsides for pre-recording all talks: feels weird: yeah, it would be different erodes justification: indeed a problem, especially for those for whom giving a speech is the only path to getting the networking benefits of face-to-face interaction limits presentation format: it forces every session into being a lecture. for two decades cfps have emphasized how will this season be engaging/not just a talking head? (lisa janicke hinchliffe) increased technical burden on speaker and organizers: conference organizers asking presenters to do their own pre-recording is a barrier (junior tidal), and organizers have added new requirements for themselves no audience feedback: pre-recording forces the presenter into an unnatural state relative to the audience (andromeda yelton) currency of information: pre-recording talks before en event naturally introduces a delay between the recording and the playback. (lisa janicke hinchliffe) i’m curious to hear of other reasons, for and against. reach out to me on twitter if you have some. the covid- pandemic has changed our society and will undoubtedly transform it in ways that we can’t even anticipate. is the way that we hold professional conferences one of them? can we just pause for a moment and consider the decades of work and layers of technology that make a modern teleconference call happen? for you younger folks, there was a time when one couldn’t assume the network to be there. as in: the operating system on your computer couldn’t be counted on to have a network stack built into it. in the earliest years of my career, we were tickled pink to have macintoshes at the forefront of connectivity through gatorboxes. go read the first paragraph of that wikipedia article on gatorboxes…tcp/ip was tunneled through localtalk running over phonenet on unshielded twisted pairs no faster than about kbit/second. (and we loved it!) now the network is expected; needing to know about tcp/ip is pushed so far down the stack as to be forgotten…assumed. sure, the software on top now is buggy and bloated—is my zoom client working? has zoom’s service gone down?—but the network…we take that for granted. ↩ tags: code lib, covid , meeting planning, nisoplus categories: l/is profession twitter facebook linkedin previous next you may also enjoy more thoughts on pre-recording conference talks minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion abo... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... running an all-online conference with zoom [post removed] less than minute read this is an article draft that was accidentally published. i hope to work on a final version soon. if you really want to see it, i saved a copy on the interne... enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email recent posts more thoughts on pre-recording conference talks minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion abo... should all conference talks be pre-recorded? minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and con... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... running an all-online conference with zoom [post removed] less than minute read this is an article draft that was accidentally published. i hope to work on a final version soon. if you really want to see it, i saved a copy on the interne... previous … next enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. twarc/expansions.py at main · docnow/twarc · github skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} docnow / twarc notifications star k fork code issues pull requests actions projects wiki security insights more code issues pull requests actions projects wiki security insights permalink main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags twarc/twarc/expansions.py / jump to code definitions extract_includes function flatten function expand_payload function code navigation index up-to-date go to file go to file t go to line l go to definition r copy path copy permalink     cannot retrieve contributors at this time lines ( sloc) . kb raw blame open with desktop view raw view blame """ this module contains a list of the known twitter v + api expansions and fields for each expansion, and a function for "flattening" a result set, including all expansions inline """ from collections import defaultdict expansions = [ "author_id", "in_reply_to_user_id", "referenced_tweets.id", "referenced_tweets.id.author_id", "entities.mentions.username", "attachments.poll_ids", "attachments.media_keys", "geo.place_id", ] user_fields = [ "created_at", "description", "entities", "id", "location", "name", "pinned_tweet_id", "profile_image_url", "protected", "public_metrics", "url", "username", "verified", "withheld", ] tweet_fields = [ "attachments", "author_id", "context_annotations", "conversation_id", "created_at", "entities", "geo", "id", "in_reply_to_user_id", "lang", "public_metrics", # "non_public_metrics", # private # "organic_metrics", # private # "promoted_metrics", # private "text", "possibly_sensitive", "referenced_tweets", "reply_settings", "source", "withheld", ] media_fields = [ "duration_ms", "height", "media_key", "preview_image_url", "type", "url", "width", # "non_public_metrics", # private # "organic_metrics", # private # "promoted_metrics", # private "public_metrics", ] poll_fields = ["duration_minutes", "end_datetime", "id", "options", "voting_status"] place_fields = [ "contained_within", "country", "country_code", "full_name", "geo", "id", "name", "place_type", ] everything = { "expansions": ",".join(expansions), "user.fields": ",".join(user_fields), "tweet.fields": ",".join(tweet_fields), "media.fields": ",".join(media_fields), "poll.fields": ",".join(poll_fields), "place.fields": ",".join(place_fields), } # for endpoints focused on user objects such as looking up users and followers. # not all of the expansions are available for these endpoints. user_everything = { "expansions": "pinned_tweet_id", "tweet.fields": ",".join(tweet_fields), "user.fields": ",".join(user_fields), } def extract_includes(response, expansion, _id="id"): if "includes" in response and expansion in response["includes"]: return defaultdict( lambda: {}, {include[_id]: include for include in response["includes"][expansion]}, ) else: return defaultdict(lambda: {}) def flatten(response): """ flatten the response. expects an entire page response from the api (data, includes, meta) defaults: return empty objects for things missing in includes. doesn't modify tweets, only adds extra data. """ # users extracted both by id and by username for expanding mentions includes_users = defaultdict( lambda: {}, { **extract_includes(response, "users", "id"), **extract_includes(response, "users", "username"), }, ) # media is by media_key, not id includes_media = extract_includes(response, "media", "media_key") includes_polls = extract_includes(response, "polls") includes_places = extract_includes(response, "places") # tweets in includes will themselves be expanded includes_tweets = extract_includes(response, "tweets") # errors are returned but unused here for now includes_errors = extract_includes(response, "errors") def expand_payload(payload): """ recursively step through an object and sub objects and append extra data. can be applied to any tweet, list of tweets, sub object of tweet etc. """ # don't try to expand on primitive values, return strings as is: if isinstance(payload, (str, bool, int, float)): return payload # expand list items individually: elif isinstance(payload, list): payload = [expand_payload(item) for item in payload] return payload # try to expand on dicts within dicts: elif isinstance(payload, dict): for key, value in payload.items(): payload[key] = expand_payload(value) if "author_id" in payload: payload["author"] = includes_users[payload["author_id"]] if "in_reply_to_user_id" in payload: payload["in_reply_to_user"] = includes_users[payload["in_reply_to_user_id"]] if "media_keys" in payload: payload["media"] = list( includes_media[media_key] for media_key in payload["media_keys"] ) if "poll_ids" in payload and len(payload["poll_ids"]) > : poll_id = payload["poll_ids"][- ] # only ever poll per tweet. payload["poll"] = includes_polls[poll_id] if "geo" in payload and "place_id" in payload["geo"]: place_id = payload["geo"]["place_id"] payload["geo"] = {**payload["geo"], **includes_places[place_id]} if "mentions" in payload: payload["mentions"] = list( {**referenced_user, **includes_users[referenced_user["username"]]} for referenced_user in payload["mentions"] ) if "referenced_tweets" in payload: payload["referenced_tweets"] = list( {**referenced_tweet, **includes_tweets[referenced_tweet["id"]]} for referenced_tweet in payload["referenced_tweets"] ) if "pinned_tweet_id" in payload: payload["pinned_tweet"] = includes_tweets[payload["pinned_tweet_id"]] return payload # first, expand the included tweets, before processing actual result tweets: for included_id, included_tweet in extract_includes(response, "tweets").items(): includes_tweets[included_id] = expand_payload(included_tweet) # now flatten the list of tweets or an individual tweet if "data" in response: response["data"] = expand_payload(response["data"]) # add the __twarc metadata to each tweet if it's a result set if "__twarc" in response and isinstance(response["data"], list): for tweet in response["data"]: tweet["__twarc"] = response["__twarc"] return response copy lines copy permalink view git blame reference in new issue go © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. should all conference talks be pre-recorded? | disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email should all conference talks be pre-recorded? posted on april , and updated on april ,     minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and conference organizers. should all talks be pre-recorded, even when we are back face-to-face? note! after i posted a link to this article on twitter, there was a great response of thoughtful comments. i've included new bullet points below and summarized the responses in another blog post. as an entirely virtual conference, i think we can call code lib a success. success ≠ perfect, of course, and last week the conference coordinating team got together on a zoom call for a debriefing session. we had a lengthy discussion about what we learned and what we wanted to take forward to the conference, which we’re anticipating will be something with a face-to-face component. that last sentence was tough to compose: “…will be face-to-face”? “…will be both face-to-face and virtual”? (or another fully virtual event?) truth be told, i don’t think we know yet. i think we know with some certainty that the covid pandemic will become much more manageable by this time next year—at least in north america and europe. (code lib draws from primarily north american library technologists with a few guests from other parts of the world.) i’m hearing from higher education institutions, though, that travel is going to be severely curtailed…if not for health risk reasons, then because budgets have been slashed. so one has to wonder what a conference will look like next year. i’ve been to two online conferences this year: nisoplus and code lib. both meetings recorded talks in advance and started playback of the recordings at a fixed point in time. this was beneficial for a couple of reasons. for organizers and presenters, pre-recording allowed technical glitches to be worked through without the pressure of a live event happening. technology is not nearly perfect enough or ubiquitously spread to count on it working in real-time. nisoplus also used the recordings to get transcribed text for the videos. (code lib used live transcriptions on the synchronous playback.) attendees and presenters benefited from pre-recording because the presenters could be in the text chat channel to answer questions and provide insights. having the presenter free during the playback offers new possibilities for making talks more engaging: responding in real-time to polls, getting forehand knowledge of topics for subsequent real-time question/answer sessions, and so forth. the synchronous playback time meant that there was a point when (almost) everyone was together watching the same talk—just as in face-to-face sessions. during the code lib conference coordinating debrief call, i asked the question: “if we saw so many benefits to pre-recording talks, do we want to pre-record them all next year?” in addition to the reasons above, pre-recorded talks benefit those who are not comfortable speaking english or are first-time presenters. (they have a chance to re-do their talk as many times as they need in a much less stressful environment.) “live” demos are much smoother because a recording can be restarted if something goes wrong. each year, at least one presenter needs to use their own machine (custom software, local development environment, etc.), and swapping out presenter computers in real-time is risky. and it is undoubtedly easier to impose time requirements with recorded sessions. so why not pre-record all of the talks? i get it—it would be different to sit in a ballroom watching a recording play on big screens at the front of the room while the podium is empty. but is it so different as to dramatically change the experience of watching a speaker at a podium? in many respects, we had a dry-run of this during code lib . it was at the early stages of the coming lockdowns when institutions started barring employee travel, and we had to bring in many presenters remotely. i wrote a blog post describing the setup we used for remote presenters, and at the end, i said: i had a few people comment that they were taken aback when they realized that there was no one standing at the podium during the presentation. some attendees, at least, quickly adjusted to this format. for those with the means and privilege of traveling, there can still be face-to-face discussions in the hall, over meals, and social activities. for those that can’t travel (due to risks of traveling, family/personal responsibilities, or budget cuts), the attendee experience is a little more level—everyone is watching the same playback and in the same text backchannels during the talk. i can imagine a conference tool capable of segmenting chat sessions during the talk playback to “tables” where you and close colleagues can exchange ideas and then promote the best ones to a conference-wide chat room. something like that would be beneficial as attendance grows for events with an online component, and it would be a new form of engagement that isn’t practical now. there are undoubtedly reasons not to pre-record all session talks (beyond the feels-weird-to-stare-at-an-unoccupied-ballroom-podium reasons). during the debriefing session, one person brought up that having all pre-recorded talks erodes the justification for in-person attendance. i can see a manager saying, “all of the talks are online…just watch it from your desk. even your own presentation is pre-recorded, so there is no need for you to fly to the meeting.” that’s legitimate. so if you like bullet points, here’s how it lays out. pre-recording all talks is better for: accessibility: better transcriptions for recorded audio versus real-time transcription (and probably at a lower cost, too) engagement: the speaker can be in the text chat during playback, and there could be new options for backchannel discussions better quality: speakers can re-record their talk as many times as needed closer equality: in-person attendees are having much the same experience during the talk as remote attendees downsides for pre-recording all talks: feels weird: yeah, it would be different erodes justification: indeed a problem, especially for those for whom giving a speech is the only path to getting the networking benefits of face-to-face interaction limits presentation format: it forces every session into being a lecture. for two decades cfps have emphasized how will this season be engaging/not just a talking head? (lisa janicke hinchliffe) increased technical burden on speaker and organizers: conference organizers asking presenters to do their own pre-recording is a barrier (junior tidal), and organizers have added new requirements for themselves no audience feedback: pre-recording forces the presenter into an unnatural state relative to the audience (andromeda yelton) currency of information: pre-recording talks before en event naturally introduces a delay between the recording and the playback. (lisa janicke hinchliffe) i’m curious to hear of other reasons, for and against. reach out to me on twitter if you have some. the covid- pandemic has changed our society and will undoubtedly transform it in ways that we can’t even anticipate. is the way that we hold professional conferences one of them? can we just pause for a moment and consider the decades of work and layers of technology that make a modern teleconference call happen? for you younger folks, there was a time when one couldn’t assume the network to be there. as in: the operating system on your computer couldn’t be counted on to have a network stack built into it. in the earliest years of my career, we were tickled pink to have macintoshes at the forefront of connectivity through gatorboxes. go read the first paragraph of that wikipedia article on gatorboxes…tcp/ip was tunneled through localtalk running over phonenet on unshielded twisted pairs no faster than about kbit/second. (and we loved it!) now the network is expected; needing to know about tcp/ip is pushed so far down the stack as to be forgotten…assumed. sure, the software on top now is buggy and bloated—is my zoom client working? has zoom’s service gone down?—but the network…we take that for granted. ↩ tags: code lib, covid , meeting planning, nisoplus categories: l/is profession twitter facebook linkedin previous next you may also enjoy more thoughts on pre-recording conference talks minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion abo... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... running an all-online conference with zoom [post removed] less than minute read this is an article draft that was accidentally published. i hope to work on a final version soon. if you really want to see it, i saved a copy on the interne... enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. max planck vlib news |   max planck vlib news search primary menu skip to content home about contact disclaimer privacy policy search for: sfx link resolver mpg/sfx server maintenance, tuesday december, - pm . november eia the database of the mpg/sfx server will undergo scheduled maintenance. the downtime will start at pm. services are expected to be back after minutes. we apologize for any inconvenience. outage resources, sfx link resolver how to get elsevier articles after december , . december inga the max planck digital library has been mandated to discontinue their elsevier subscription when the current agreement expires on december , . read more about the background in the full press release. nevertheless, most journal articles published until that date will remain available, due to the rights stipulated in the mpg contracts to date. to fulfill the content needs of max planck researchers when elsevier shuts off access to recent content at the beginning of january, the max planck libraries and mpdl have coordinated the setup of a common document order service. this will be integrated into the mpg/sfx interface and can be addressed as follows: step : search in sciencedirect, start in any other database or enter the article details into the mpg/sfx citation linker. step : click the mpg/sfx button. note: in sciencedirect, it appears in the “get access” section at the top of those article pages for which the full text is no longer available: step : check the options in the service menu presented to you, e.g. free available full text versions (if available). step : to order the article via your local library or the mpdl, select the corresponding link, e.g. "request document via your local library". please note that the wording might differ slightly according to your location. step : add your personal details to the order form in the next screen and submit your document request. the team in your local library or at the mpdl will get back to you as soon as possible. please feel free to contact us if you face any problem or want to raise a question. update, . . : check out our new flyer "how to deal with no subscription deal" prepared in cooperation with max planck’s phdnet. elsevier document-delivery resources aleph multipool-recherche: parallele suche in mpg-bibliothekskatalogen . november inga update, . . : die multipool-suche gibt es jetzt auch als webinterface. der multipool-expertenmodus im aleph katalogisierungs-client dient der schnellen recherche in mehreren datenbanken gleichzeitig. dabei können die datenbanken entweder direkt auf dem aleph-server liegen oder als externe ressourcen über das z . -protokoll angebunden sein. zusätzlich zu den lokalen bibliotheken ist der mpi bibliothekskatalog im gbv auf dem aleph-sever bereits vorkonfiguriert. die multipool-funktion ist im aleph katalogisierungs-client im recherche-bereich zu finden ( . tab): unterhalb des bereichs zur auswahl der relevanten datenbanken kann man die suchanfrage eintragen. hinweise zur verwendeten kommandosprache finden sich in der aleph-hilfe. nach dem absenden der suchanfrage wird die ergebnisliste mit den datenbanken und der jeweiligen treffermenge im unteren rahmen angezeigt: zum Öffnen eines einzelnen sets genügt ein doppelklick: bei gemeinsamen katalogen – wie z.b. dem mpi bibliothekskatalog im gbv – findet sich der hinweis auf die bestandshaltende bibliothek in der datensatz-vollanzeige: zur einrichtung der multipool-suche müssen die vom lokalen aleph-client genutzten konfigurationsdateien (library.ini und searbase.dat) erweitert werden. bei bedarf stellen wir die von uns genutzten dateien gerne zur verfügung. weiterführende informationen finden sich auch im aleph wiki: download und installation des aleph clients einrichtung weiterer z . -zugänge aleph vlib portal goodbye vlib! shutdown after october , . october inga in the max planck virtual library (vlib) was launched, with the idea of making all information resources relevant for max planck users simultaneously searchable under a common user interface. since then, the vlib project partners from the max planck libraries, information retrieval services groups, the gwdg and the mpdl invested much time and effort to integrate various library catalogs, reference databases, full-text collections and other information resources into metalib, a federated search system developed by ex libris. with the rise of large search engines and discovery tools in recent years, usage slowly shifted away and the metasearch technology applied was no longer fulfilling user’s expection. therefore, the termination of most vlib services was announced two years ago and now we are approaching the final shutdown: the vlib portal will cease to operate after the th of october . as you know, there are many alternatives to the former vlib services: mpg.rena will remain available for browsing and discovering electronic resources available to max planck users. in addition, we’ll post some information on how to cross search max planck library catalogs soon. let us take the opportunity to send a big "thank you!" to all vlib users and collaborators within and outside the max planck society. it always was and will continue to be a pleasure to work with and for you. goodbye!… and please feel free to contact us in case of any further question. mpg.ebooks, sfx link resolver https only for mpg/sfx and mpg.ebooks . november eia as of next week, all http requests to the mpg/sfx link resolver will be redirected to a corresponding https request. the max planck society electronic book index is scheduled to be switched to https only access the week after, starting on november , . regular web browser use of the above services should not be affected. please thoroughly test any solutions that integrate these services via their web apis. please consider re-subscribing to mpg.ebooks rss feeds. ebookshttpsrss sfx link resolver https enabled for mpg/sfx . june inga the mpg/sfx link resolver is now alternatively accessible via the https protocol. the secure base url of the productive mpg/sfx instance is: https://sfx.mpg.de/sfx_local. https support enables secure third-party sites to load or to embed content from mpg/sfx without causing mixed content errors. please feel free to update your applications or your links to the mpg/sfx server. https resources citation trails in primo central index (pci) . june inga the may release brought an interesting functionality to the primo central index (pci): the new "citation trail" capability enables pci users to discover relevant materials by providing cited and citing publications for selected article records. at this time the only data source for the citation trail feature is crossref, thus the number of citing articles will be below the "cited by" counts in other sources like scopus and web of science. further information: short video demonstrating the citation trail feature (by ex libris). detailed feature description (by ex libris) pciprimo-central-indexscopusweb-of-science sfx link resolver mpg/sfx server maintenance, wednesday april, - am . april inga the mpg/sfx server updates to a new database (mariadb) on wednesday morning. the downtime will begin at am and is scheduled to last until am. we apologize for any inconvenience. outage resources proquest illustrata databases discontinued . april inga last year, the information provider proquest decided to discontinue its "illustrata technology" and "illustrata natural science" databases. unfortunately, this represents a preliminary end to proquest’s long-year investment into deep indexing content. in a corresponding support article proquest states that there "[…] will be no loss of full text and full text + graphics images because of the removal of deep indexed content". in addition, they announce to "[…] develop an even better way for researchers to discover images, figures, tables, and other relevant visual materials related to their research tasks". the mpg.rena records for proquest illustrata: technology and proquest illustrata: natural science have been marked as "terminating" and will be deactivated soon. proquest mpg.rena mpg.rena via https only . march eia the mpg resource navigator mpg.rena is now accessible via https only. if in doubt, please double-check any routines and applications loading or embedding content via mpg.rena apis. please note that you may need to re-subscribe to resource feeds, or update urls of rss widgets in your content management system, etc. we apologize for any inconvenience. https posts navigation … next → in short in this blog you'll find updates on information resources, vendor platform and access systems provided by the max planck digital library. use mpg.rena to search and browse through the journal collections, ebook collections and databases available to mpg researchers. new resources in mpg.rena australian education index (proquest) . april riffreporter . march journal on excellence in college teaching . march persian e-bookds miras maktoob (brill) . february translated cia documents with global perspectives (newsbank) . february mpdl news   news categories coins ( ) exlibris ( ) localization ( ) materials ( ) mpg.ebooks ( ) mpg.rena ( ) question and answer ( ) resources ( ) sfx link resolver ( ) tools ( ) vlib portal ( ) related blogs fhi library mpis stuttgart library pubman blog proudly powered by wordpress twarc/network.py at main · docnow/twarc · github skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} docnow / twarc notifications star k fork code issues pull requests actions projects wiki security insights more code issues pull requests actions projects wiki security insights permalink main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags twarc/utils/network.py / jump to code definitions no definitions found in this file. code navigation not available for this commit go to file go to file t go to line l go to definition r copy path copy permalink     cannot retrieve contributors at this time executable file lines ( sloc) . kb raw blame open with desktop view raw view blame #!/usr/bin/env python # build a reply, quote, retweet network from a file of tweets and write it # out as a gexf, dot, json or html file. you will need to have networkx # installed and pydotplus if you want to use dot. the html presentation # uses d to display the network graph in your browser. # # ./network.py tweets.jsonl network.html # # or # ./network.py tweets.jsonl network.dot # # or # # ./network.py tweets.jsonl network.gexf # # if you would rather have the network oriented around nodes that are users # instead of tweets use the --users flag # # ./network.py --users tweets.jsonl network.gexf # # if you would rather have the network oriented around nodes that are hashtags # instead of tweets or users, use the --hashtags flag # # todo: this is mostly here some someone can improve it :) import sys import json import networkx import optparse import itertools import time from networkx import nx_pydot from networkx.readwrite import json_graph usage = "network.py tweets.jsonl graph.html" opt_parser = optparse.optionparser(usage=usage) opt_parser.add_option( "--retweets", dest="retweets", action="store_true", help="include retweets" ) opt_parser.add_option( "--min_subgraph_size", dest="min_subgraph_size", type="int", help="remove any subgraphs with a size smaller than this number" ) opt_parser.add_option( "--max_subgraph_size", dest="max_subgraph_size", type="int", help="remove any subgraphs with a size larger than this number" ) opt_parser.add_option( "--users", dest="users", action="store_true", help="show user relations instead of tweet relations" ) opt_parser.add_option( "--hashtags", dest="hashtags", action="store_true", help="show hashtag relations instead of tweet relations" ) options, args = opt_parser.parse_args() if len(args) != : opt_parser.error("must supply input and output file names") tweets, output = args g = networkx.digraph() def add(from_user, from_id, to_user, to_id, type, created_at=none): "adds a relation to the graph" # storing start_data will allow for timestamps for gephi timeline, where nodes will appear on screen at their start dataset # and stay on forever after if (options.users or options.hashtags) and to_user: g.add_node(from_user, screen_name=from_user, start_date=created_at) g.add_node(to_user, screen_name=to_user, start_date=created_at) if g.has_edge(from_user, to_user): weight = g[from_user][to_user]['weight'] + else: weight = g.add_edge(from_user, to_user, type=type, weight=weight) elif not options.users and to_id: g.add_node(from_id, screen_name=from_user, type=type) if to_user: g.add_node(to_id, screen_name=to_user) else: g.add_node(to_id) g.add_edge(from_id, to_id, type=type) def to_json(g): j = {"nodes": [], "links": []} for node_id, node_attrs in g.nodes(true): j["nodes"].append({ "id": node_id, "type": node_attrs.get("type"), "screen_name": node_attrs.get("screen_name") }) for source, target, attrs in g.edges(data=true): j["links"].append({ "source": source, "target": target, "type": attrs.get("type") }) return j for line in open(tweets): try: t = json.loads(line) except: continue from_id = t['id_str'] from_user = t['user']['screen_name'] from_user_id = t['user']['id_str'] to_user = none to_id = none # standardize raw created at date to dd/mm/yyyy hh:mm:ss created_at_date = time.strftime('%d/%m/%y %h:%m:%s', time.strptime(t["created_at"],'%a %b %d %h:%m:%s + %y')) if options.users: for u in t['entities'].get('user_mentions', []): add(from_user, from_id, u['screen_name'], none, 'reply', created_at_date) elif options.hashtags: hashtags = t['entities'].get('hashtags', []) hashtag_pairs = list(itertools.combinations(hashtags, )) # list of all possible hashtag pairs for u in hashtag_pairs: # source hashtag: u[ ]['text'] # target hashtag: u[ ]['text'] add('#' + u[ ]['text'], none, '#' + u[ ]['text'], none, 'hashtag', created_at_date) else: if t.get('in_reply_to_status_id_str'): to_id = t['in_reply_to_status_id_str'] to_user = t['in_reply_to_screen_name'] add(from_user, from_id, to_user, to_id, "reply") if t.get('quoted_status'): to_id = t['quoted_status']['id_str'] to_user = t['quoted_status']['user']['screen_name'] to_user_id = t['quoted_status']['user']['id_str'] add(from_user, from_id, to_user, to_id, "quote") if options.retweets and t.get('retweeted_status'): to_id = t['retweeted_status']['id_str'] to_user = t['retweeted_status']['user']['screen_name'] to_user_id = t['retweeted_status']['user']['id_str'] add(from_user, from_id, to_user, to_id, "retweet") if options.min_subgraph_size or options.max_subgraph_size: g_copy = g.copy() for g in networkx.connected_component_subgraphs(g): if options.min_subgraph_size and len(g) < options.min_subgraph_size: g_copy.remove_nodes_from(g.nodes()) elif options.max_subgraph_size and len(g) > options.max_subgraph_size: g_copy.remove_nodes_from(g.nodes()) g = g_copy if output.endswith(".gexf"): networkx.write_gexf(g, output) elif output.endswith(".gml"): networkx.write_gml(g, output) elif output.endswith(".dot"): nx_pydot.write_dot(g, output) elif output.endswith(".json"): json.dump(to_json(g), open(output, "w"), indent= ) elif output.endswith(".html"): graph_data = json.dumps(to_json(g), indent= ) html = """

    """ % graph_data open(output, "w").write(html) copy lines copy permalink view git blame reference in new issue go © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. none should all conference talks be pre-recorded? | disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email should all conference talks be pre-recorded? posted on april , and updated on april ,     minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and conference organizers. should all talks be pre-recorded, even when we are back face-to-face? note! after i posted a link to this article on twitter, there was a great response of thoughtful comments. i've included new bullet points below and summarized the responses in another blog post. as an entirely virtual conference, i think we can call code lib a success. success ≠ perfect, of course, and last week the conference coordinating team got together on a zoom call for a debriefing session. we had a lengthy discussion about what we learned and what we wanted to take forward to the conference, which we’re anticipating will be something with a face-to-face component. that last sentence was tough to compose: “…will be face-to-face”? “…will be both face-to-face and virtual”? (or another fully virtual event?) truth be told, i don’t think we know yet. i think we know with some certainty that the covid pandemic will become much more manageable by this time next year—at least in north america and europe. (code lib draws from primarily north american library technologists with a few guests from other parts of the world.) i’m hearing from higher education institutions, though, that travel is going to be severely curtailed…if not for health risk reasons, then because budgets have been slashed. so one has to wonder what a conference will look like next year. i’ve been to two online conferences this year: nisoplus and code lib. both meetings recorded talks in advance and started playback of the recordings at a fixed point in time. this was beneficial for a couple of reasons. for organizers and presenters, pre-recording allowed technical glitches to be worked through without the pressure of a live event happening. technology is not nearly perfect enough or ubiquitously spread to count on it working in real-time. nisoplus also used the recordings to get transcribed text for the videos. (code lib used live transcriptions on the synchronous playback.) attendees and presenters benefited from pre-recording because the presenters could be in the text chat channel to answer questions and provide insights. having the presenter free during the playback offers new possibilities for making talks more engaging: responding in real-time to polls, getting forehand knowledge of topics for subsequent real-time question/answer sessions, and so forth. the synchronous playback time meant that there was a point when (almost) everyone was together watching the same talk—just as in face-to-face sessions. during the code lib conference coordinating debrief call, i asked the question: “if we saw so many benefits to pre-recording talks, do we want to pre-record them all next year?” in addition to the reasons above, pre-recorded talks benefit those who are not comfortable speaking english or are first-time presenters. (they have a chance to re-do their talk as many times as they need in a much less stressful environment.) “live” demos are much smoother because a recording can be restarted if something goes wrong. each year, at least one presenter needs to use their own machine (custom software, local development environment, etc.), and swapping out presenter computers in real-time is risky. and it is undoubtedly easier to impose time requirements with recorded sessions. so why not pre-record all of the talks? i get it—it would be different to sit in a ballroom watching a recording play on big screens at the front of the room while the podium is empty. but is it so different as to dramatically change the experience of watching a speaker at a podium? in many respects, we had a dry-run of this during code lib . it was at the early stages of the coming lockdowns when institutions started barring employee travel, and we had to bring in many presenters remotely. i wrote a blog post describing the setup we used for remote presenters, and at the end, i said: i had a few people comment that they were taken aback when they realized that there was no one standing at the podium during the presentation. some attendees, at least, quickly adjusted to this format. for those with the means and privilege of traveling, there can still be face-to-face discussions in the hall, over meals, and social activities. for those that can’t travel (due to risks of traveling, family/personal responsibilities, or budget cuts), the attendee experience is a little more level—everyone is watching the same playback and in the same text backchannels during the talk. i can imagine a conference tool capable of segmenting chat sessions during the talk playback to “tables” where you and close colleagues can exchange ideas and then promote the best ones to a conference-wide chat room. something like that would be beneficial as attendance grows for events with an online component, and it would be a new form of engagement that isn’t practical now. there are undoubtedly reasons not to pre-record all session talks (beyond the feels-weird-to-stare-at-an-unoccupied-ballroom-podium reasons). during the debriefing session, one person brought up that having all pre-recorded talks erodes the justification for in-person attendance. i can see a manager saying, “all of the talks are online…just watch it from your desk. even your own presentation is pre-recorded, so there is no need for you to fly to the meeting.” that’s legitimate. so if you like bullet points, here’s how it lays out. pre-recording all talks is better for: accessibility: better transcriptions for recorded audio versus real-time transcription (and probably at a lower cost, too) engagement: the speaker can be in the text chat during playback, and there could be new options for backchannel discussions better quality: speakers can re-record their talk as many times as needed closer equality: in-person attendees are having much the same experience during the talk as remote attendees downsides for pre-recording all talks: feels weird: yeah, it would be different erodes justification: indeed a problem, especially for those for whom giving a speech is the only path to getting the networking benefits of face-to-face interaction limits presentation format: it forces every session into being a lecture. for two decades cfps have emphasized how will this season be engaging/not just a talking head? (lisa janicke hinchliffe) increased technical burden on speaker and organizers: conference organizers asking presenters to do their own pre-recording is a barrier (junior tidal), and organizers have added new requirements for themselves no audience feedback: pre-recording forces the presenter into an unnatural state relative to the audience (andromeda yelton) currency of information: pre-recording talks before en event naturally introduces a delay between the recording and the playback. (lisa janicke hinchliffe) i’m curious to hear of other reasons, for and against. reach out to me on twitter if you have some. the covid- pandemic has changed our society and will undoubtedly transform it in ways that we can’t even anticipate. is the way that we hold professional conferences one of them? can we just pause for a moment and consider the decades of work and layers of technology that make a modern teleconference call happen? for you younger folks, there was a time when one couldn’t assume the network to be there. as in: the operating system on your computer couldn’t be counted on to have a network stack built into it. in the earliest years of my career, we were tickled pink to have macintoshes at the forefront of connectivity through gatorboxes. go read the first paragraph of that wikipedia article on gatorboxes…tcp/ip was tunneled through localtalk running over phonenet on unshielded twisted pairs no faster than about kbit/second. (and we loved it!) now the network is expected; needing to know about tcp/ip is pushed so far down the stack as to be forgotten…assumed. sure, the software on top now is buggy and bloated—is my zoom client working? has zoom’s service gone down?—but the network…we take that for granted. ↩ tags: code lib, covid , meeting planning, nisoplus categories: l/is profession twitter facebook linkedin previous next you may also enjoy more thoughts on pre-recording conference talks minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion abo... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... running an all-online conference with zoom [post removed] less than minute read this is an article draft that was accidentally published. i hope to work on a final version soon. if you really want to see it, i saved a copy on the interne... enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. publishers going-it-alone (for now?) with getftr | disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email publishers going-it-alone (for now?) with getftr posted on december , and updated on april ,     minute read in early december , a group of publishers announced get-full-text-research, or getftr for short. i read about this first in roger schonfeld’s “publishers announce a major new service to plug leakage” piece in the scholarly kitchen via jeff pooley’s twitter thread and blog post. details about how this works are thin, so i’m leaning heavily on roger’s description. i’m not as negative about this as jeff, and i’m probably a little more opinionated than roger. this is an interesting move by publishers, and—as the title of this post suggests—i am critical of the publisher’s “go-it-alone” approach. first, some disclosure might be in order. my background has me thinking of this in the context of how it impacts libraries and library consortia. for the past four years, i’ve been co-chair of the niso information discovery and interchange topic committee (and its predecessor, the “discovery to delivery” topic committee), so this is squarely in what i’ve been thinking about in the broader library-publisher professional space. i also traced the early development of ra and more recently am volunteering on the seamlessaccess entity category and attribute bundles working group; that’ll become more important a little further down this post. i was nodding along with roger’s narrative until i stopped short here: the five major publishing houses that are the driving forces behind getftr are not pursuing this initiative through one of the major industry collaborative bodies. all five are leading members of the stm association, niso, orcid, crossref, and chorus, to name several major industry groups. but rather than working through one of these existing groups, the houses plan instead to launch a new legal entity.  while [vice president of product strategy & partnerships for wiley todd] toler and [senior director, technology strategy & partnerships for the american chemical society ralph] youngen were too politic to go deeply into the details of why this might be, it is clear that the leadership of the large houses have felt a major sense of mismatch between their business priorities on the one hand and the capabilities of these existing industry bodies. at recent industry events, publishing house ceos have voiced extensive concerns about the lack of cooperation-driven innovation in the sector. for example, judy verses from wiley spoke to this issue in spring , and several executives did so at frankfurt this fall. in both cases, long standing members of the scholarly publishing sector questioned if these executives perhaps did not realize the extensive collaborations driven through crossref and orcid, among others. it is now clear to me that the issue is not a lack of knowledge but rather a concern at the executive level about the perceived inability of existing collaborative vehicles to enable the new strategic directions that publishers feel they must pursue.  this is the publishers going-it-alone. to see roger describe it, they are going to create this web service that allows publishers to determine the appropriate copy for a patron and do it without input from the libraries. librarians will just be expected to put this web service widget into their discovery services to get “colored buttons indicating that the link will take [patrons] to the version of record, an alternative pathway, or (presumably in rare cases) no access at all.” (let’s set aside for the moment the privacy implications of having a fourth-party web service recording all of the individual articles that come up in a patron’s search results.) librarians will not get to decide the “alternative pathway” that is appropriate for the patron: “some publishers might choose to provide access to a preprint or a read-only version, perhaps in some cases on some kind of metered basis.” (roger goes on to say that he “expect[s] publishers will typically enable some alternative version for their content, in which case the vast majority of scholarly content will be freely available through publishers even if it is not open access in terms of licensing.” i’m not so confident.) no, thank you. if publishers want to engage in technical work to enable libraries and others to build web services that determine the direct link to an article based on a doi, then great. libraries can build a tool that consumes that information as well as takes into account information about preprint services, open access versions, interlibrary loan and other methods of access. but to ask libraries to accept this publisher-controlled access button in their discovery layers, their learning management systems, their scholarly profile services, and their other tools? that sounds destined for disappointment. i am only somewhat encouraged by the fact that ra started out as a small, isolated collaboration of publishers before they brought in niso and invited libraries to join the discussion. did it mean that it slowed down deployment of ra ? undoubtedly yes. did persnickety librarians demand transparent discussions and decisions about privacy-related concerns like what attributes the publisher would get about the patron in the shibboleth-powered backchannel? yes, but because the patrons weren’t there to advocate for themselves. will it likely mean wider adoption? i’d like to think so. have publishers learned that forcing these kinds of technologies onto users without consultation is a bad idea? at the moment it would appear not. some of what publishers are seeking with getftr can be implemented with straight-up openurl or—at the very least—limited-scope additions to openurl (the z . open standard!). so that they didn’t start with openurl, a robust existing standard, is both concerning and annoying. i’ll be watching and listening for points of engagement, so i remain hopeful. a few words about jeff pooley’s five-step “laughably creaky and friction-filled effort” that is seamlessaccess. many of the steps jeff describes are invisible and well-established technical protocols. what jeff fails to take into account is the very visible and friction-filled effect of patrons accessing content beyond the boundaries of campus-recognized internet network addresses. those patrons get stopped at step two with a “pay $ please” message. i’m all for removing that barrier entirely by making all published content “open access”. it is folly to think, though, that researchers and readers can enforce an open access business model on all publishers, so solutions like seamlessaccess will have a place. (which is to say nothing of the benefit of inter-institutional resource collaboration opened up by a more widely deployed shibboleth infrastructure powered by seamlessaccess.) tags: discovery, getftr, niso, openurl, ra , seamlessaccess categories: linking technologies twitter facebook linkedin previous next you may also enjoy more thoughts on pre-recording conference talks minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion abo... should all conference talks be pre-recorded? minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and con... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. none dan cohen – vice provost, dean, and professor at northeastern university skip to the content search dan cohen vice provost, dean, and professor at northeastern university menu about blog newsletter podcast publications social media cv rss search search for: close search close menu about blog newsletter podcast publications social media cv rss what’s new podcast humane ingenuity newsletter blog publications © dan cohen powered by wordpress to the top ↑ up ↑ publishers going-it-alone (for now?) with getftr | disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email publishers going-it-alone (for now?) with getftr posted on december , and updated on april ,     minute read in early december , a group of publishers announced get-full-text-research, or getftr for short. i read about this first in roger schonfeld’s “publishers announce a major new service to plug leakage” piece in the scholarly kitchen via jeff pooley’s twitter thread and blog post. details about how this works are thin, so i’m leaning heavily on roger’s description. i’m not as negative about this as jeff, and i’m probably a little more opinionated than roger. this is an interesting move by publishers, and—as the title of this post suggests—i am critical of the publisher’s “go-it-alone” approach. first, some disclosure might be in order. my background has me thinking of this in the context of how it impacts libraries and library consortia. for the past four years, i’ve been co-chair of the niso information discovery and interchange topic committee (and its predecessor, the “discovery to delivery” topic committee), so this is squarely in what i’ve been thinking about in the broader library-publisher professional space. i also traced the early development of ra and more recently am volunteering on the seamlessaccess entity category and attribute bundles working group; that’ll become more important a little further down this post. i was nodding along with roger’s narrative until i stopped short here: the five major publishing houses that are the driving forces behind getftr are not pursuing this initiative through one of the major industry collaborative bodies. all five are leading members of the stm association, niso, orcid, crossref, and chorus, to name several major industry groups. but rather than working through one of these existing groups, the houses plan instead to launch a new legal entity.  while [vice president of product strategy & partnerships for wiley todd] toler and [senior director, technology strategy & partnerships for the american chemical society ralph] youngen were too politic to go deeply into the details of why this might be, it is clear that the leadership of the large houses have felt a major sense of mismatch between their business priorities on the one hand and the capabilities of these existing industry bodies. at recent industry events, publishing house ceos have voiced extensive concerns about the lack of cooperation-driven innovation in the sector. for example, judy verses from wiley spoke to this issue in spring , and several executives did so at frankfurt this fall. in both cases, long standing members of the scholarly publishing sector questioned if these executives perhaps did not realize the extensive collaborations driven through crossref and orcid, among others. it is now clear to me that the issue is not a lack of knowledge but rather a concern at the executive level about the perceived inability of existing collaborative vehicles to enable the new strategic directions that publishers feel they must pursue.  this is the publishers going-it-alone. to see roger describe it, they are going to create this web service that allows publishers to determine the appropriate copy for a patron and do it without input from the libraries. librarians will just be expected to put this web service widget into their discovery services to get “colored buttons indicating that the link will take [patrons] to the version of record, an alternative pathway, or (presumably in rare cases) no access at all.” (let’s set aside for the moment the privacy implications of having a fourth-party web service recording all of the individual articles that come up in a patron’s search results.) librarians will not get to decide the “alternative pathway” that is appropriate for the patron: “some publishers might choose to provide access to a preprint or a read-only version, perhaps in some cases on some kind of metered basis.” (roger goes on to say that he “expect[s] publishers will typically enable some alternative version for their content, in which case the vast majority of scholarly content will be freely available through publishers even if it is not open access in terms of licensing.” i’m not so confident.) no, thank you. if publishers want to engage in technical work to enable libraries and others to build web services that determine the direct link to an article based on a doi, then great. libraries can build a tool that consumes that information as well as takes into account information about preprint services, open access versions, interlibrary loan and other methods of access. but to ask libraries to accept this publisher-controlled access button in their discovery layers, their learning management systems, their scholarly profile services, and their other tools? that sounds destined for disappointment. i am only somewhat encouraged by the fact that ra started out as a small, isolated collaboration of publishers before they brought in niso and invited libraries to join the discussion. did it mean that it slowed down deployment of ra ? undoubtedly yes. did persnickety librarians demand transparent discussions and decisions about privacy-related concerns like what attributes the publisher would get about the patron in the shibboleth-powered backchannel? yes, but because the patrons weren’t there to advocate for themselves. will it likely mean wider adoption? i’d like to think so. have publishers learned that forcing these kinds of technologies onto users without consultation is a bad idea? at the moment it would appear not. some of what publishers are seeking with getftr can be implemented with straight-up openurl or—at the very least—limited-scope additions to openurl (the z . open standard!). so that they didn’t start with openurl, a robust existing standard, is both concerning and annoying. i’ll be watching and listening for points of engagement, so i remain hopeful. a few words about jeff pooley’s five-step “laughably creaky and friction-filled effort” that is seamlessaccess. many of the steps jeff describes are invisible and well-established technical protocols. what jeff fails to take into account is the very visible and friction-filled effect of patrons accessing content beyond the boundaries of campus-recognized internet network addresses. those patrons get stopped at step two with a “pay $ please” message. i’m all for removing that barrier entirely by making all published content “open access”. it is folly to think, though, that researchers and readers can enforce an open access business model on all publishers, so solutions like seamlessaccess will have a place. (which is to say nothing of the benefit of inter-institutional resource collaboration opened up by a more widely deployed shibboleth infrastructure powered by seamlessaccess.) tags: discovery, getftr, niso, openurl, ra , seamlessaccess categories: linking technologies twitter facebook linkedin previous next you may also enjoy more thoughts on pre-recording conference talks minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion abo... should all conference talks be pre-recorded? minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and con... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. falvey memorial library :: the collection of blogs published by falvey memorial library, villanova university skip navigation falvey memorial library visit / apply / give my library account collections research services using the library about falvey memorial library search everything books & media title journal title author subject call number isbn/issn tag articles & more article title article author other libraries (ill) ill title ill author ill subject ill call number ill isbn/issn library website guides digital library search for books, articles, library site, almost anything advanced you are exploring: home > blogs falvey memorial library blog falvey library blogs dig deeper: award-winning children’s author beverly cleary april , library newsbeverly cleary, dig deeper, library resources disappointed with the children’s books she read growing up, beverly cleary was determined to tell stories kids could relate to. ”i wanted to read funny stories about the sort of children i knew,” she wrote, ”and i decided ... read more in praise of scrapple april , blue electrode: sparking between silicon and paperdigital library, distinctive collections, national poetry month, poems in honor of national poetry month, i thought i would share this poem by philadelphia poet and villanova alumnus thomas augustine daly ( - ). the poem appears in mcaroni ballads and other verses ( ), newly digitized in our digital library ... read more from the archives: owl hop april , blue electrode: sparking between silicon and paperdistinctive collections, university archives when you step onto campus, you’ll discover villanova’s many unique traditions. some you may find are as old as the university itself and others are much more recent—but they all play an important role in the life of villanova students. ... read more new resource: eighteenth century collections online april , library newseighteenth century collections online, gale primary sources, library resources eighteenth century collections online is broken into two parts and offers full text access to nearly every english-language and foreign-language title printed in the united kingdom, alongside thousands of works published in the americas, between ... read more an evening with sr. thea bowman ( - ): songs, service, struggle on april april , library newsafrican american spirituality, african american studies, biblical interpretation, black history, campus ministry, sr. thea bowman the villanova campus community is invited to join campus ministry for an evening of prayer and reflection, april , - : p.m., with the song and spirit of sr. thea bowman, fspa. presenters rev. naomi washington-leapheart and michelle sherman ... read more happy world book day and shakespeare day april , library news"william shakespeare", book, falvey memorial library, photo friday, world book day happy world book day and shakespeare day! to celebrate the bard’s many contributions to culture and language, we wanted to share this striking edition that is contained in our physical collection. while the collection indeed contains several ... read more content roundup – third week – april , blue electrode: sparking between silicon and papercontent roundup this week sees the addition of materials digitized recently, including more dime novels and story papers and newly acquired letters written from william t. sherman to mrs. mary c. audenried, widow of sherman’s longtime aide-de-camp. dime novel ... read more villanova open educational resource (oer) adoption grant april , library news the affordable materials project (amp)  is offering grants in the amount of $ to tenure track or continuing faculty to encourage the adoption of an open educational resource (oer) as the primary course material for a class offered in the ... read more tbt: climate strikes april , library newsclimate change, earth day, earth week, earth week , tbt, throwback, throwback thursday here comes a bonus tbt in honor of earth day! the photos featured here come from the march ,  climate strike at villanova. this was just one of many climate strikes taking place on college campuses across the country. these strikes were ... read more search falvey library blogs categories blue electrode: sparking between silicon and paper library news resources technology developments feeds content comments archives compass ( - ) meta log in   last modified: december , lancaster ave., villanova, pa . . contact directions privacy & security diversity higher education act my nova villanova a-z directory work at villanova accessibility ask us: live chat erambler erambler recent content on erambler intro to the fediverse wow, it turns out to be years since i wrote this beginners guide to twitter. things have moved on a loooooong way since then. far from being the interesting, disruptive technology it was back then, twitter has become part of the mainstream, the establishment. almost everyone and everything is on twitter now, which has both pros and cons. so what’s the problem? it’s now possible to follow all sorts of useful information feeds, from live updates on transport delays to your favourite sports team’s play-by-play performance to an almost infinite number of cat pictures. in my professional life it’s almost guaranteed that anyone i meet will be on twitter, meaning that i can contact them to follow up at a later date without having to exchange contact details (and they have options to block me if they don’t like that). on the other hand, a medium where everyone’s opinion is equally valid regardless of knowledge or life experience has turned some parts of the internet into a toxic swamp of hatred and vitriol. it’s easier than ever to forget that we have more common ground with any random stranger than we have similarities, and that’s led to some truly awful acts and a poisonous political arena. part of the problem here is that each of the social media platforms is controlled by a single entity with almost no accountability to anyone other than shareholders. technological change has been so rapid that the regulatory regime has no idea how to handle them, leaving them largely free to operate how they want. this has led to a whole heap of nasty consequences that many other people have done a much better job of documenting than i could (shoshana zuboff’s book the age of surveillance capitalism is a good example). what i’m going to focus on instead are some possible alternatives. if you accept the above argument, one obvious solution is to break up the effective monopoly enjoyed by facebook, twitter et al. we need to be able to retain the wonderful affordances of social media but democratise control of it, so that it can never be dominated by a small number of overly powerful players. what’s the solution? there’s actually a thing that already exists, that almost everyone is familiar with and that already works like this. it’s email. there are a hundred thousand email servers, but my email can always find your inbox if i know your address because that address identifies both you and the email service you use, and they communicate using the same protocol, simple mail transfer protocol (smtp) . i can’t send a message to your twitter from my facebook though, because they’re completely incompatible, like oil and water. facebook has no idea how to talk to twitter and vice versa (and the companies that control them have zero interest in such interoperability anyway). just like email, a federated social media service like mastodon allows you to use any compatible server, or even run your own, and follow accounts on your home server or anywhere else, even servers running different software as long as they use the same activitypub protocol. there’s no lock-in because you can move to another server any time you like, and interact with all the same people from your new home, just like changing your email address. smaller servers mean that no one server ends up with enough power to take over and control everything, as the social media giants do with their own platforms. but at the same time, a small server with a small moderator team can enforce local policy much more easily and block accounts or whole servers that host trolls, nazis or other poisonous people. how do i try it? i have no problem with anyone for choosing to continue to use what we’re already calling “traditional” social media; frankly, facebook and twitter are still useful for me to keep in touch with a lot of my friends. however, i do think it’s useful to know some of the alternatives if only to make a more informed decision to stick with your current choices. most of these services only ask for an email address when you sign up and use of your real name vs a pseudonym is entirely optional so there’s not really any risk in signing up and giving one a try. that said, make sure you take sensible precautions like not reusing a password from another account. instead of… try… twitter, facebook mastodon, pleroma, misskey slack, discord, irc matrix whatsapp, fb messenger, telegram also matrix instagram, flickr pixelfed youtube peertube the web interplanetary file system (ipfs) which, if you can believe it, was formalised nearly years ago in and has only had fairly minor changes since then! &#x a ;þ e; collaborations workshop : collaborative ideas & hackday my last post covered the more “traditional” lectures-and-panel-sessions approach of the first half of the ssi collaborations workshop. the rest of the workshop was much more interactive, consisting of a discussion session, a collaborative ideas session, and a whole-day hackathon! the discussion session on day one had us choose a topic (from a list of topics proposed leading up to the workshop) and join a breakout room for that topic with the aim of producing a “speed blog” by then end of minutes. those speed blogs will be published on the ssi blog over the coming weeks, so i won’t go into that in more detail. the collaborative ideas session is a way of generating hackday ideas, by putting people together at random into small groups to each raise a topic of interest to them before discussing and coming up with a combined idea for a hackday project. because of the serendipitous nature of the groupings, it’s a really good way of generating new ideas from unexpected combinations of individual interests. after that, all the ideas from the session, along with a few others proposed by various participants, were pitched as ideas for the hackday and people started to form teams. not every idea pitched gets worked on during the hackday, but in the end teams of roughly equal size formed to spend the third day working together. my team’s project: “aha! an arts & humanities adventure” there’s a lot of fomo around choosing which team to join for an event like this: there were so many good ideas and i wanted to work on several of them! in the end i settled on a team developing an escape room concept to help arts & humanities scholars understand the benefits of working with research software engineers for their research. five of us rapidly mapped out an example storyline for an escape room, got a website set up with github and populated it with the first few stages of the game. we decided to focus on a story that would help the reader get to grips with what an api is and i’m amazed how much we managed to get done in less than a day’s work! you can try playing through the escape room (so far) yourself on the web, or take a look at the github repository, which contains the source of the website along with a list of outstanding tasks to work on if you’re interested in contributing. i’m not sure yet whether this project has enough momentum to keep going, but it was a really valuable way both of getting to know and building trust with some new people and demonstrating the concept is worth more work. other projects here’s a brief rundown of the other projects worked on by teams on the day. coding confessions everyone starts somewhere and everyone cuts corners from time to time. real developers copy and paste! fight imposter syndrome by looking through some of these confessions or contributing your own. https://coding-confessions.github.io/ carpenpi a template to set up a raspberry pi with everything you need to run a carpentries (https://carpentries.org/) data science/software engineering workshop in a remote location without internet access. https://github.com/carpenpi/docs/wiki research dugnads a guide to running an event that is a coming together of a research group or team to share knowledge, pass on skills, tidy and review code, among other software and working best practices (based on the norwegian concept of a dugnad, a form of “voluntary work done together with other people”) https://research-dugnads.github.io/dugnads-hq/ collaborations workshop ideas a meta-project to collect together pitches and ideas from previous collaborations workshop conferences and hackdays, to analyse patterns and revisit ideas whose time might now have come. https://github.com/robintw/cw-ideas howdescribedis integrate existing tools to improve the machine-readable metadata attached to open research projects by integrating projects like somef, codemeta.json and howfairis (https://howfairis.readthedocs.io/en/latest/index.html). complete with ci and badges! https://github.com/knowledgecaptureanddiscovery/somef-github-action software end-of-project plans develop a template to plan and communicate what will happen when the fixed-term project funding for your research software ends. will maintenance continue? when will the project sunset? who owns the ip? https://github.com/elichad/software-twilight habeas corpus a corpus of machine readable data about software used in covid- related research, based on the cord dataset. https://github.com/softwaresaved/habeas-corpus credit-all extend the all-contributors github bot (https://allcontributors.org/) to include rich information about research project contributions such as the casrai contributor roles taxonomy (https://casrai.org/credit/) https://github.com/dokempf/credit-all i’m excited to see so many metadata-related projects! i plan to take a closer look at what the habeas corpus, credit-all and howdescribedis teams did when i get time. i also really want to try running a dugnad with my team or for the glam data science network. collaborations workshop : talks & panel session i’ve just finished attending (online) the three days of this year’s ssi collaborations workshop (cw for short), and once again it’s been a brilliant experience, as well as mentally exhausting, so i thought i’d better get a summary down while it’s still fresh it my mind. collaborations workshop is, as the name suggests, much more focused on facilitating collaborations than a typical conference, and has settled into a structure that starts off with with longer keynotes and lectures, and progressively gets more interactive culminating with a hack day on the third day. that’s a lot to write about, so for this post i’ll focus on the talks and panel session, and follow up with another post about the collaborative bits. i’ll also probably need to come back and add in more links to bits and pieces once slides and the “official” summary of the event become available. updates - - added links to recordings of keynotes and panel sessions provocations the first day began with two keynotes on this year’s main themes: fair research software and diversity & inclusion, and day had a great panel session focused on disability. all three were streamed live and the recordings remain available on youtube: view the keynotes recording; google-free alternative link view the panel session recording; google-free alternative link fair research software dr michelle barker, director of the research software alliance, spoke on the challenges to recognition of software as part of the scholarly record: software is not often cited. the fair rs working group has been set up to investigate and create guidance on how the fair principles for data can be adapted to research software as well; as they stand, the principles are not ideally suited to software. this work will only be the beginning though, as we will also need metrics, training, career paths and much more. resa itself has focus areas: people, policy and infrastructure. if you’re interested in getting more involved in this, you can join the resa email list. equality, diversity & inclusion: how to go about it dr chonnettia jones, vice president of research, michael smith foundation for health research spoke extensively and persuasively on the need for equality, diversity & inclusion (edi) initiatives within research, as there is abundant robust evidence that all research outcomes are improved. she highlighted the difficulties current approaches to edi have effecting structural change, and changing not just individual behaviours but the cultures & practices that perpetuate iniquity. what initiatives are often constructed around making up for individual deficits, a bitter framing is to start from an understanding of individuals having equal stature but having different tired experiences. commenting on the current focus on “research excellent” she pointed out that the hyper-competition this promotes is deeply unhealthy. suggesting instead that true excellence requires diversity, and we should focus on an inclusive excellence driven by inclusive leadership. equality, diversity & inclusion: disability issues day ’s edi panel session brought together five disabled academics to discuss the problems of disability in research. dr becca wilson, ukri innovation fellow, institute of population health science, university of liverpool (chair) phoenix c s andrews (phd student, information studies, university of sheffield and freelance writer) dr ella gale (research associate and machine learning subject specialist, school of chemistry, university of bristol) prof robert stevens (professor and head of department of computer science, university of manchester) dr robin wilson (freelance data scientist and ssi fellow) nb. the discussion flowed quite freely so the following summary, so the following summary mixes up input from all the panel members. researchers are often assumed to be single-minded in following their research calling, and aptness for jobs is often partly judged on “time send”, which disadvantages any disabled person who has been forced to take a career break. on top of this disabled people are often time-poor because of the extra time needed to manage their condition, leaving them with less “output” to show for their time served on many common metrics. this can partially affect early-career researchers, since resources for these are often restricted on a “years-since-phd” criterion. time poverty also makes funding with short deadlines that much harder to apply for. employers add more demands right from the start: new starters are typically expected to complete a health and safety form, generally a brief affair that will suddenly become an -page bureaucratic nightmare if you tick the box declaring a disability. many employers claim to be inclusive yet utterly fail to understand the needs of their disabled staff. wheelchairs are liberating for those who use them (despite the awful but common phrase “wheelchair-bound”) and yet employers will refuse to insure a wheelchair while travelling for work, classifying it as a “high value personal item” that the owner would take the same responsibility for as an expensive camera. computers open up the world for blind people in a way that was never possible without them, but it’s not unusual for mandatory training to be inaccessible to screen readers. some of these barriers can be overcome, but doing so takes yet more time that could and should be spent on more important work. what can we do about it? academia works on patronage whether we like it or not, so be the person who supports people who are different to you rather than focusing on the one you “recognise yourself in” to mentor. as a manager, it’s important to ask each individual what they need and believe them: they are the expert in their own condition and their lived experience of it. don’t assume that because someone else in your organisation with the same disability needs one set of accommodations, it’s invalid for your staff member to require something totally different. and remember: disability is unusual as a protected characteristic in that anyone can acquire it at any time without warning! lightning talks lightning talk sessions are always tricky to summarise, and while this doesn’t do them justice, here are a few highlights from my notes. data & metadata malin sandstrom talked about a much-needed refinement of contributor role taxonomies for scientific computing stephan druskat showcased a project to crowdsource a corpus of research software for further analysis learning & teaching/community matthew bluteau introduced the concept of the “coding dojo” as a way to enhance community of practice. a group of coders got together to practice & learn by working together to solve a problem and explaining their work as they go he described models: a code jam, where people work in small groups, and the randori method, where people do pair programming while the rest observe. i’m excited to try this out! steve crouch talked about intermediate skills and helping people take the next step, which i’m also very interested in with the glam data science network esther plomp recounted experience of running multiple carpentry workshops online, while diego alonso alvarez discussed planned workshops on making research software more usable with guis shoaib sufi showcased the ssi’s new event organising guide caroline jay reported on a diary study into autonomy & agency in rse during covid lopez, t., jay, c., wermelinger, m., & sharp, h. ( ). how has the covid- pandemic affected working conditions for research software engineers? unpublished manuscript. wrapping up that’s not everything! but this post is getting pretty long so i’ll wrap up for now. i’ll try to follow up soon with a summary of the “collaborative” part of collaborations workshop: the idea-generating sessions and hackday! time for a new look... i’ve decided to try switching this website back to using hugo to manage the content and generate the static html pages. i’ve been on the python-based nikola for a few years now, but recently i’ve been finding it quite slow, and very confusing to understand how to do certain things. i used hugo recently for the glam data science network website and found it had come on a lot since the last time i was using it, so i thought i’d give it another go, and redesign this site to be a bit more minimal at the same time. the theme is still a work in progress so it’ll probably look a bit rough around the edges for a while, but i think i’m happy enough to publish it now. when i get round to it i might publish some more detailed thoughts on the design. ideas for accessible communications the disability support network at work recently ran a survey on “accessible communications”, to develop guidance on how to make communications (especially internal staff comms) more accessible to everyone. i grabbed a copy of my submission because i thought it would be useful to share more widely, so here it is. please note that these are based on my own experiences only. i am in no way suggesting that these are the only things you would need to do to ensure your communications are fully accessible. they’re just some things to keep in mind. policies/procedures/guidance can be stressful to use if anything is vague or inconsistent, or if it looks like there might be more information implied than is explicitly given (a common cause of this is use of jargon in e.g. hr policies). emails relating to these policies have similar problems, made worse because they tend to be very brief. online meetings can be very helpful, but can also be exhausting, especially if there are too many people, or not enough structure. larger meetings & webinars without agendas (or where the agenda is ignored, or timings are allowed to drift without acknowledgement) are very stressful, as are those where there is not enough structure to ensure fair opportunities to contribute. written reference documents and communications should: be carefully checked for consistency and clarity have all all key points explicitly stated explicitly acknowledge the need for flexibility where it is necessary, rather than implying or hinting at it clearly define jargon & acronyms where they are necessary to the point being made, and avoid them otherwise include links to longer, more explicit versions where space is tight provide clear bullet-point summaries with links to the details online meetings should: include sufficient break time (at least minutes out of every hour) and not allow this to be compromised just because a speaker has misjudged the length of their talk include initial “settling-in” time in agendas to avoid timing getting messed up from the start ensure the agenda is stuck to, or that divergence from the agenda is acknowledged explicitly by the chair and updated timing briefly discussed to ensure everyone is clear establish a norm for participation at the start of the meeting and stick to it e.g. ask people to raise hands when they have a point to make, or have specific time for round-robin contributions ensure quiet/introverted people have space to contribute, but don’t force them to do so if they have nothing to add at the time offer a text-based alternative to contributing verbally if appropriate, at the start of the meeting assign specific roles of: gatekeeper: ensures everyone has a chance to contribute timekeeper: ensures meeting runs to time scribe: ensures a consistent record of the meeting be chaired by someone with the confidence to enforce the above: offer training to all staff on chairing meetings to ensure everyone has the skills to run a meeting effectively matrix self-hosting i started running my own matrix server a little while ago. matrix is something rather cool, a chat system similar to irc or slack, but open and federated. open in that the standard is available for anyone to view, but also the reference implementations of server and client are open source, along with many other clients and a couple of nascent alternative servers. federated in that, like email, it doesn’t matter what server you sign up with, you can talk to users on your own or any other server. i decided to host my own for three reasons. firstly, to see if i could and to learn from it. secondly, to try and rationalise the cambrian explosion of slack teams i was being added to in . thirdly, to take some control of the loss of access to historical messages in some communities that rely on slack (especially the carpentries and rse communities). since then, i’ve also added a fourth goal: taking advantage of various bridges to bring other messaging network i use (such as signal and telegram) into a consistent ui. i’ve also found that my use of matrix-only rooms has grown as more individuals & communities have adopted the platform. so, i really like matrix and i use it daily. my problem now is whether to keep self-hosting. synapse, the only full server implementation at the moment, is really heavy on memory, so i’ve ended up running it on a much bigger server than i thought i’d need, which seems overkill for a single-user instance. so now i have to make a decision about whether it’s worth keeping going, or shutting it down and going back to matrix.org, or setting up on one of the other servers that have sprung up in the last couple of years. there are a couple of other considerations here. firstly, synapse resource usage is entirely down to the size of the rooms joined by users of the homeowner, not directly the number of users. so if users have mostly overlapping interests, and thus keep to the same rooms, you can support quite a large community without significant extra resource usage. secondly, there are a couple of alternative server implementations in development specifically addressing this issue for small servers. dendrite and conduit. neither are quite ready for what i want yet, but are getting close, and when ready that will allow running small homeservers with much more sensible resource usage. so i could start opening up for other users, and at least justify the size of the server that way. i wouldn’t ever want to make it a paid-for service but perhaps people might be willing to make occasional donations towards running costs. that still leaves me with the question of whether i’m comfortable running a service that others may come to rely on, or being responsible for the safety of their information. i could also hold out for dendrite or conduit to mature enough that i’m ready to try them, which might not be more than a few months off. hmm, seems like i’ve convinced myself to stick with it for now, and we’ll see how it goes. in the meantime, if you know me and you want to try it out let me know and i might risk setting you up with an account! what do you miss least about pre-lockdown life? @janethughes on twitter: what do you miss the least from pre-lockdown life? i absolutely do not miss wandering around the office looking for a meeting room for a confidential call or if i hadn’t managed to book a room in advance. let’s never return to that joyless frustration, hey? : am · feb , after seeing terence eden taking janet hughes' tweet from earlier this month as a writing prompt, i thought i might do the same. the first thing that leaps to my mind is commuting. at various points in my life i’ve spent between one and three hours a day travelling to and from work and i’ve never more than tolerated it at best. it steals time from your day, and societal norms dictate that it’s your leisure & self-care time that must be sacrificed. longer commutes allow more time to get into a book or podcast, especially if not driving, but i’d rather have that time at home rather than trying to be comfortable in a train seat designed for some mythical average man shaped nothing like me! the other thing i don’t miss is the colds and flu! before the pandemic, british culture encouraged working even when ill, which meant constantly coming into contact with people carrying low-grade viruses. i’m not immunocompromised but some allergies and residue of being asthmatic as a child meant that i would get sick - times a year. a pleasant side-effect of the covid precautions we’re all taking is that i haven’t been sick for over months now, which is amazing! finally, i don’t miss having so little control over my environment. one of the things that working from home has made clear is that there are certain unavoidable aspects of working in my shared office that cause me sensory stress, and that are completely unrelated to my work. working (or trying to work) next to a noisy automatic scanner; trying to find a light level that works for different people doing different tasks; lacking somewhere quiet and still to eat lunch and recover from a morning of meetings or the constant vaguely-distracting bustle of a large shared office. it all takes energy. although it’s partly been replaced by the new stress of living through a global pandemic, that old stress was a constant drain on my productivity and mood that had been growing throughout my career as i moved (ironically, given the common assumption that seniority leads to more privacy) into larger and larger open plan offices. remarkable blogging and the handwritten blog saga continues, as i’ve just received my new remarkable tablet, which is designed for reading, writing and nothing else. it uses a super-responsive e-ink display and writing on it with a stylus is a dream. it has a slightly rough texture with just a bit of friction that makes my writing come out a lot more legibly than on a slippery glass touchscreen. if that was all there was to it, i might not have wasted my money, but it turns out that it runs on linux and the makers have wisely decided not to lock it down but to give you full root mess. yes, you read that right: root access. it presents as an ethernet device over usb, so you can ssh in with a password found in the settings and have full control over your own devices. what a novel concept. this fact alone has meant it’s built a small yet devoted community of users who have come up with some clever ways of extending its functionality. in fact, many of these are listed on this github repository. finally, from what i’ve seen so far, the handwriting recognition is impressive to say the least. this post was written on it and needed only a little editing. i think this is a device that will get a lot of use! glam data science network fellow travellers updates - - thanks to gene @dzshuniper@ausglam.space for suggesting adho and a better attribution for the opening quote (see comments below for details) see comments & webmentions for details. “if you want to go fast, go alone. if you want to go far, go together.” — african proverb, probably popularised in english by kenyan church leader rev. samuel kobia (original) this quote is a popular one in the carpentries community, and i interpret it in this context to mean that a group of people working together is more sustainable than individuals pursuing the same goal independently. that’s something that speaks to me, and that i want to make sure is reflected in nurturing this new community for data science in galleries, archives, libraries & museums (glam). to succeed, this work needs to be complementary and collaborative, rather than competitive, so i want to acknowledge a range of other networks & organisations whose activities complement this. the rest of this article is an unavoidably incomplete list of other relevant organisations whose efforts should be acknowledged and potentially built on. and it should go without saying, but just in case: if the work i’m planning fits right into an existing initiative, then i’m happy to direct my resources there rather than duplicate effort. inspirations & collaborators groups with similar goals or undertaking similar activities, but focused on a different sector, geographic area or topic. i think we should make as much use of and contribution to these existing communities as possible since there will be significant overlap. code lib probably the closest existing community to what i want to build, but primarily based in the us, so timezones (and physical distance for in-person events) make it difficult to participate fully. this is a well-established community though, with regular events including an annual conference so there’s a lot to learn here. newcardigan similar to code lib but an australian focus, so the timezone problem is even bigger! glam labs focused on supporting the people experimenting with and developing the infrastructure to enable scholars to access glam materials in new ways. in some ways, a glam data science network would be complementary to their work, by providing people not directly involved with building glam labs with the skills to make best use of glam labs infrastructure. uk government data science community another existing community with very similar intentions, but focused on uk government sector. clearly the british library and a few national & regional museums & archives fall into this, but much of the rest of the glam sector does not. artifical intelligence for libraries, archives & museums (ai lam) a multinational collaboration between several large libraries, archives and museums with a specific focus on the artificial intelligence (ai) subset of data science uk reproducibility network a network of researchers, primarily in heis, with an interest in improving the transparency and reliability of academic research. mostly science-focused but with some overlap of goals around ethical and robust use of data. museums computer group i’m less familiar with this than the others, but it seems to have a wider focus on technology generally, within the slightly narrower scope of museums specifically. again, a lot of potential for collaboration. training several organisations and looser groups exist specifically to develop and deliver training that will be relevant to members of this network. the network also presents an opportunity for those who have done a workshop with one of these and want to know what the “next steps” are to continue their data science journey. the carpentries, aka: library carpentry data carpentry software carpentry data science training for librarians (dst l) the programming historian cdh cultural heritage data school supporters these misson-driven organisations have goals that align well with what i imagine for the glam dsn, but operate at a more strategic level. they work by providing expert guidance and policy advice, lobbying and supporting specific projects with funding and/or effort. in particular, the ssi runs a fellowship programme which is currently providing a small amount of funding to this project. digital preservation coalition (dpc) software sustainability institute (ssi) research data alliance (rda) alliance of digital humanities organizations (adho) … and its libraries and digital humanities special interest group (lib&dh sig) professional bodies these organisations exist to promote the interests of professionals in particular fields, including supporting professional development. i hope they will provide communication channels to their various members at the least, and may be interested in supporting more directly, depending on their mission and goals. society of research software engineering chartered institute of library and information professionals archives & records association museums association conclusion as i mentioned at the top of the page, this list cannot possibly be complete. this is a growing area and i’m not the only or first person to have this idea. if you can think of anything glaring that i’ve missed and you think should be on this list, leave a comment or tweet/toot at me! a new font for the blog i’ve updated my blog theme to use the quasi-proportional fonts iosevka aile and iosevka etoile. i really like the aesthetic, as they look like fixed-width console fonts (i use the true fixed-width version of iosevka in my terminal and text editor) but they’re actually proportional which makes them easier to read. https://typeof.net/iosevka/ training a model to recognise my own handwriting if i’m going to train an algorithm to read my weird & awful writing, i’m going to need a decent-sized training set to work with. and since one of the main things i want to do with it is to blog “by hand” it makes sense to focus on that type of material for training. in other words, i need to write out a bunch of blog posts on paper, scan them and transcribe them as ground truth. the added bonus of this plan is that after transcribing, i also end up with some digital text i can use as an actual post — multitasking! so, by the time you read this, i will have already run it through a manual transcription process using transkribus to add it to my training set, and copy-pasted it into emacs for posting. this is a fun little project because it means i can: write more by hand with one of my several nice fountain pens, which i enjoy learn more about the operational process some of my colleagues go through when digitising manuscripts learn more about the underlying technology & maths, and how to tune the process produce more lovely content! for you to read! yay! write in a way that forces me to put off editing until after a first draft is done and focus more on getting the whole of what i want to say down. that’s it for now — i’ll keep you posted as the project unfolds. addendum tee hee! i’m actually just enjoying the process of writing stuff by hand in long-form prose. it’ll be interesting to see how the accuracy turns out and if i need to be more careful about neatness. will it be better or worse than the big but generic models used by samsung notes or onenote. maybe i should include some stylus-written text for comparison. blogging by hand i wrote the following text on my tablet with a stylus, which was an interesting experience: so, thinking about ways to make writing fun again, what if i were to write some of them by hand? i mean i have a tablet with a pretty nice stylus, so maybe handwriting recognition could work. one major problem, of course, is that my handwriting is awful! i guess i’ll just have to see whether the ocr is good enough to cope… it’s something i’ve been thinking about recently anyway: i enjoy writing with a proper fountain pen, so is there a way that i can have a smooth workflow to digitise handwritten text without just typing it back in by hand? that would probably be preferable to this, which actually seems to work quite well but does lead to my hand tensing up to properly control the stylus on the almost-frictionless glass screen. i’m surprised how well it worked! here’s a sample of the original text: and here’s the result of converting that to text with the built-in handwriting recognition in samsung notes: writing blog posts by hand so, thinking about ways to make writing fun again, what if i were to write some of chum by hand? i mean, i have a toldest winds a pretty nice stylus, so maybe handwriting recognition could work. one major problems, ofcourse, is that my , is awful! iguess i’ll just have to see whattime the ocu is good enough to cope… it’s something i’ve hun tthinking about recently anyway: i enjoy wilting with a proper fountain pion, soischeme a way that i can have a smooch workflow to digitise handwritten text without just typing it back in by hand? that wouldprobally be preferableto this, which actually scams to work quito wall but doers load to my hand tensing up to properly couldthe stylus once almost-frictionlessg lass scream. it’s pretty good! it did require a fair bit of editing though, and i reckon we can do better with a model that’s properly trained on a large enough sample of my own handwriting. what i want from a glam/cultural heritage data science network introduction as i mentioned last year, i was awarded a software sustainability institute fellowship to pursue the project of setting up a cultural heritage/glam data science network. obviously, the global pandemic has forced a re-think of many plans and this is no exception, so i’m coming back to reflect on it and make sure i’m clear about the core goals so that everything else still moves in the right direction. one of the main reasons i have for setting up a glam data science network is because it’s something i want. the advice to “scratch your own itch” is often given to people looking for an open project to start or contribute to, and the lack of a community of people with whom to learn & share ideas and practice is something that itches for me very much. the “motivation” section in my original draft project brief for this work said: cultural heritage work, like all knowledge work, is increasingly data-based, or at least gives opportunities to make use of data day-to-day. the proper skills to use this data enable more effective working. knowledge and experience thus gained improves understanding of and empathy with users also using such skills. but of course, i have my own reasons for wanting to do this too. in particular, i want to: advocate for the value of ethical, sustainable data science across a wide range of roles within the british library and the wider sector advance the sector to make the best use of data and digital sources in the most ethical and sustainable way possible understand how and why people use data from the british library, and plan/deliver better services to support that keep up to date with relevant developments in data science learn from others' skills and experiences, and share my own in turn those initial goals imply some further supporting goals: build up the confidence of colleagues who might benefit from data science skills but don’t feel they are “technical” or “computer literate” enough further to that, build up a base of colleagues with the confidence to share their skills & knowledge with others, whether through teaching, giving talks, writing or other channels identify common awareness gaps (skills/knowledge that people don’t know they’re missing) and address them develop a communal space (primarily online) in which people feel safe to ask questions develop a body of professional practice and help colleagues to learn and contribute to the evolution of this, including practices of data ethics, software engineering, statistics, high performance computing, … break down language barriers between data scientists and others i’ll expand on this separately as my planning develops, but here are a few specific activities that i’d like to be able to do to support this: organise less-formal learning and sharing events to complement the more formal training already available within organisations and the wider sector, including “show and tell” sessions, panel discussions, code cafés, masterclasses, guest speakers, reading/study groups, co-working sessions, … organise training to cover intermediate skills and knowledge currently missing from the available options, including the awareness gaps and professional practice mentioned above collect together links to other relevant resources to support self-led learning decisions to be made there are all sorts of open questions in my head about this right now, but here are some of the key ones. is it glam or cultural heritage? when i first started planning this whole thing, i went with “cultural heritage”, since i was pretty transparently targeting my own organisation. the british library is fairly unequivocally a ch organisation. but as i’ve gone along i’ve found myself gravitating more towards the term “glam” (which stands for galleries, libraries, archives, museums) as it covers a similar range of work but is clearer (when you spell out the acronym) about what kinds of work are included. what skills are relevant? this turns out to be surprisingly important, at least in terms of how the community is described, as they define the boundaries of the community and can be the difference between someone feeling welcome or excluded. for example, i think that some introductory statistics training would be immensely valuable for anyone working with data to understand what options are open to them and what limitations those options have, but is the word “statistics” offputting per se to those who’ve chosen a career in arts & humanities? i don’t know because i don’t have that background and perspective. keep it internal to the bl, or open up early on? i originally planned to focus primarily on my own organisation to start with, feeling that it would be easier to organise events and build a network within a single organisation. however, the pandemic has changed my thinking significantly. firstly, it’s now impossible to organise in-person events and that will continue for quite some time to come, so there is less need to focus on the logistics of getting people into the same room. secondly, people within the sector are much more used to attending remote events, which can easily be opened up to multiple organisations in many countries, timezones allowing. it now makes more sense to focus primarily on online activities, which opens up the possibility of building a critical mass of active participants much more quickly by opening up to the wider sector. conclusion this is the type of post that i could let run and run without ever actually publishing, but since it’s something i need feedback and opinions on from other people, i’d better ship it! i really want to know what you think about this, whether you feel it’s relevant to you and what would make it useful. comments are open below, or you can contact me via mastodon or twitter. writing about not writing under construction grunge sign by nicolas raymond — cc by . every year, around this time of year, i start doing two things. first, i start thinking i could really start to understand monads and write more than toy programs in haskell. this is unlikely to ever actually happen unless and until i get a day job where i can justify writing useful programs in haskell, but advent of code always gets me thinking otherwise. second, i start mentally writing this same post. you know, the one about how the blogger in question hasn’t had much time to write but will be back soon? “sorry i haven’t written much lately…” it’s about as cliché as a geocities site with a permanent “under construction” gif. at some point, not long after the dawn of ~time~ the internet, most people realised that every website was permanently under construction and publishing something not ready to be published was just pointless. so i figured this year i’d actually finish writing it and publish it. after all, what’s the worst that could happen? if we’re getting all reflective about this, i could probably suggest some reasons why i’m not writing much: for a start, there’s a lot going on in both my world and the world right now, which doesn’t leave a lot of spare energy after getting up, eating, housework, working and a few other necessary activities. as a result, i’m easily distracted and i tend to let myself get dragged off in other directions before i even get to writing much of anything. if i do manage to focus on this blog in general, i’ll often end up working on some minor tweak to the theme or functionality. i mean, right now i’m wondering if i can do something clever in my text-editor (emacs, since you’re asking) to streamline my writing & editing process so it’s more elegant, efficient, ergonomic and slightly closer to perfect in every way. it also makes me much more likely to self-censor, and to indulge my perfectionist tendencies to try and tweak the writing until it’s absolutely perfect, which of course never happens. i’ve got a whole heap of partly-written posts that are juuuust waiting for the right motivation for me to just finish them off. the only real solution is to accept that: i’m not going to write much and that’s probably ok what i do write won’t always be the work of carefully-researched, finely crafted genius that i want it to be, and that’s probably ok too also to remember why i started writing and publishing stuff in the first place: to reflect and get my thoughts out onto a (virtual) page so that i can see them, figure out whether i agree with myself and learn; and to stimulate discussion and get other views on my (possibly uninformed, incorrect or half-formed) thoughts, also to learn. in other words, a thing i do for me. it’s easy to forget that and worry too much about whether anyone else wants to read my s—t. will you notice any changes? maybe? maybe not? who knows. but it’s a new year and that’s as good a time for a change as any. when is a persistent identifier not persistent? or an identifier? i wrote a post on the problems with isbns as persistent identifiers (pids) for work, so check it out if that sounds interesting. idcc reflections i’m just back from idcc , so here are a few reflections on this year’s conference. you can find all the available slides and links to shared notes on the conference programme. there’s also a list of all the posters and an overview of the unconference skills for curation of diverse datasets here in the uk and elsewhere, you’re unlikely to find many institutions claiming to apply a deep level of curation to every dataset/software package/etc deposited with them. there are so many different kinds of data and so few people in any one institution doing “curation” that it’s impossible to do this for everything. absent the knowledge and skills required to fully evaluate an object the best that can be done is usually to make a sense check on the metadata and flag up with the depositor potential for high-level issues such as accidental disclosure of sensitive personal information. the data curation network in the united states is aiming to address this issue by pooling expertise across multiple organisations. the pilot has been highly successful and they’re now looking to obtain funding to continue this work. the swedish national data service is experimenting with a similar model, also with a lot of success. as well as sharing individual expertise, the dcn collaboration has also produced some excellent online quick-reference guides for curating common types of data. we had some further discussion as part of the unconference on the final day about what it would look like to introduce this model in the uk. there was general agreement that this was a good idea and a way to make optimal use of sparse resources. there were also very valid concerns that it would be difficult in the current financial climate for anyone to justify doing work for another organisation, apparently for free. in my mind there are two ways around this, which are not mutually exclusive by any stretch of the imagination. first is to just do it: form an informal network of curators around something simple like a mailing list, and give it a try. second is for one or more trusted organisations to provide some coordination and structure. there are several candidates for this including dcc, jisc, dpc and the british library; we all have complementary strengths in this area so it’s my hope that we’ll be able to collaborate around it. in the meantime, i hope the discussion continues. artificial intelligence, machine learning et al as you might expect at any tech-oriented conference there was a strong theme of ai running through many presentations, starting from the very first keynote from francine berman. her talk, the internet of things: utopia or dystopia? used self-driving cars as a case study to unpack some of the ethical and privacy implications of ai. for example, driverless cars can potentially increase efficiency, both through route-planning and driving technique, but also by allowing fewer vehicles to be shared by more people. however, a shared vehicle is not a private space in the way your own car is: anything you say or do while in that space is potentially open to surveillance. aside from this, there are some interesting ideas being discussed, particularly around the possibility of using machine learning to automate increasingly complex actions and workflows such as data curation and metadata enhancement. i didn’t get the impression anyone is doing this in the real world yet, but i’ve previously seen theoretical concepts discussed at idcc make it into practice so watch this space! playing games! training is always a major idcc theme, and this year two of the most popular conference submissions described games used to help teach digital curation concepts and skills. mary donaldson and matt mahon of the university of glasgow presented their use of lego to teach the concept of sufficient metadata. participants build simple models before documenting the process and breaking them down again. then everyone had to use someone else’s documentation to try and recreate the models, learning important lessons about assumptions and including sufficient detail. kirsty merrett and zosia beckles from the university of bristol brought along their card game “researchers, impact and publications (rip)”, based on the popular “cards against humanity”. rip encourages players to examine some of the reasons for and against data sharing with plenty of humour thrown in. both games were trialled by many of the attendees during thursday’s unconference. summary i realised in dublin that it’s years since i attended my first idcc, held at the university of bristol in december while i was still working at the nearby university of bath. while i haven’t been every year, i’ve been to every one held in europe since then and it’s interesting to see what has and hasn’t changed. we’re no longer discussing data management plans, data scientists or various other things as abstract concepts that we’d like to encourage, but dealing with the real-world consequences of them. the conference has also grown over the years: this year was the biggest yet, boasting over attendees. there has been especially big growth in attendees from north america, australasia, africa and the middle east. that’s great for the diversity of the conference as it brings in more voices and viewpoints than ever. with more people around to interact with i have to work harder to manage my energy levels but i think that’s a small price to pay. iosevka: a nice fixed-width-font iosevka is a nice, slender monospace font with a lot of configurable variations. check it out: https://typeof.net/iosevka/ replacing comments with webmentions just a quickie to say that i’ve replaced the comment section at the bottom of each post with webmentions, which allows you to comment by posting on your own site and linking here. it’s a fundamental part of the indieweb, which i’m slowly getting to grips with having been a halfway member of it for years by virtue of having my own site on my own domain. i’d already got rid of google analytics to stop forcing that tracking on my visitors, i wanted to get rid of disqus too because i’m pretty sure the only way that is free for me is if they’re selling my data and yours to third parties. webmention is a nice alternative because it relies only on open standards, has no tracking and allows people to control their own comments. while i’m currently using a third-party service to help, i can switch to self-hosted at any point in the future, completely transparently. thanks to webmention.io, which handles incoming webmentions for me, and webmention.js, which displays them on the site, i can keep it all static and not have to implement any of this myself, which is nice. it’s a bit harder to comment because you have to be able to host your own content somewhere, but then almost no-one ever commented anyway, so it’s not like i’ll lose anything! plus, if i get bridgy set up right, you should be able to comment just by replying on mastodon, twitter or a few other places. a spot of web searching shows that i’m not the first to make the disqus -> webmentions switch (yes, i’m putting these links in blatantly to test outgoing webmentions with telegraph…): so long disqus, hello webmention — nicholas hoizey bye disqus, hello webmention! — evert pot implementing webmention on a static site — deluvi let’s see how this goes! bridging carpentries slack channels to matrix it looks like i’ve accidentally taken charge of bridging a bunch of the carpentries slack channels over to matrix. given this, it seems like a good idea to explain what that sentence means and reflect a little on my reasoning. i’m more than happy to discuss the pros and cons of this approach if you just want to try chatting in matrix, jump to the getting started section what are slack and matrix? slack (see also on wikipedia), for those not familiar with it, is an online text chat platform with the feel of irc (internet relay chat), a modern look and feel and both web and smartphone interfaces. by providing a free tier that meets many peoples' needs on its own slack has become the communication platform of choice for thousands of online communities, private projects and more. one of the major disadvantages of using slack’s free tier, as many community organisations do, is that as an incentive to upgrade to a paid service your chat history is limited to the most recent , messages across all channels. for a busy community like the carpentries, this means that messages older than about - weeks are already inaccessible, rendering some of the quieter channels apparently empty. as slack is at pains to point out, that history isn’t gone, just archived and hidden from view unless you pay the low, low price of $ /user/month. that doesn’t seem too pricy, unless you’re a non-profit organisation with a lot of projects you want to fund and an active membership of several hundred worldwide, at which point it soon adds up. slack does offer to waive the cost for registered non-profit organisations, but only for one community. the carpentries is not an independent organisation, but one fiscally sponsored by community initiatives, which has already used its free quota of one elsewhere rendering the carpentries ineligible. other umbrella organisations such as numfocus (and, i expect, mozilla) also run into this problem with slack. so, we have a community which is slowly and inexorably losing its own history behind a paywall. for some people this is simply annoying, but from my perspective as a facilitator of the preservation of digital things the community is haemhorraging an important record of its early history. enter matrix. matrix is a chat platform similar to irc, slack or discord. it’s divided into separate channels, and users can join one or more of these to take part in the conversation happening in those channels. what sets it apart from older technology like irc and walled gardens like slack & discord is that it’s federated. federation means simply that users on any server can communicate with users and channels on any other server. usernames and channel addresses specify both the individual identifier and the server it calls home, just as your email address contains all the information needed for my email server to route messages to it. while users are currently tied to their home server, channels can be mirrored and synchronised across multiple servers making the overall system much more resilient. can’t connect to your favourite channel on server x? no problem: just connect via its alias on server y and when x comes back online it will be resynchronised. the technology used is much more modern and secure than the aging irc protocol, and there’s no vender lock-in like there is with closed platforms like slack and discord. on top of that, matrix channels can easily be “bridged” to channels/rooms on other platforms, including, yes, slack, so that you can join on matrix and transparently talk to people connected to the bridged room, or vice versa. so, to summarise: the current carpentries slack channels could be bridged to matrix at no cost and with no disruption to existing users the history of those channels from that point on would be retained on matrix.org and accessible even when it’s no longer available on slack if at some point in the future the carpentries chose to invest in its own matrix server, it could adopt and become the main matrix home of these channels without disruption to users of either matrix or (if it’s still in use at that point) slack matrix is an open protocol, with a reference server implementation and wide range of clients all available as free software, which aligns with the values of the carpentries community on top of this: i’m fed up of having so many different slack teams to switch between to see the channels in all of them, and prefer having all the channels i regularly visit in a single unified interface; i wanted to see how easy this would be and whether others would also be interested. given all this, i thought i’d go ahead and give it a try to see if it made things more manageable for me and to see what the reaction would be from the community. how can i get started? !!! reminder please remember that, like any other carpentries space, the code of conduct applies in all of these channels. first, sign up for a matrix account. the quickest way to do this is on the matrix “try now” page, which will take you to the riot web client which for many is synonymous with matrix. other clients are also available for the adventurous. second, join one of the channels. the links below will take you to a page that will let you connect via your preferred client. you’ll need to log in as they are set not to allow guest access, but, unlike slack, you won’t need an invitation to be able to join. #general — the main open channel to discuss all things carpentries #random — anything that would be considered offtopic elsewhere #welcome — join in and introduce yourself! that’s all there is to getting started with matrix. to find all the bridged channels there’s a matrix “community” that i’ve added them all to: carpentries matrix community. there’s a lot more, including how to bridge your favourite channels from slack to matrix, but this is all i’ve got time and space for here! if you want to know more, leave a comment below, or send me a message on slack (jezcope) or maybe matrix (@petrichor:matrix.org)! i’ve also made a separate channel for matrix-slack discussions: #matrix on slack and carpentries matrix discussion on matrix mozfest first reflections discussions of neurodiversity at #mozfest photo by jennifer riggins the other weekend i had my first experience of mozilla festival, aka #mozfest. it was pretty awesome. i met quite a few people in real life that i’ve previously only known (/stalked) on twitter, and caught up with others that i haven’t seen for a while. i had the honour of co-facilitating a workshop session on imposter syndrome and how to deal with it with the wonderful yo yehudi and emmy tsang. we all learned a lot and hope our participants did too; we’ll be putting together a summary blog post as soon as we can get our act together! i also attended a great session, led by kiran oliver (psst, they’re looking for a new challenge), on how to encourage and support a neurodiverse workforce. i was only there for the one day, and i really wish that i’d taken the plunge and committed to the whole weekend. there’s always next year though! to be honest, i’m just disappointed that i never had the courage to go sooner, music for working today the office conversation turned to blocking out background noise. (no, the irony is not lost on me.) like many people i work in a large, open-plan office, and i’m not alone amongst my colleagues in sometimes needing to find a way to boost concentration by blocking out distractions. not everyone is like this, but i find music does the trick for me. i also find that different types of music are better for different types of work, and i use this to try and manage my energy better. there are more distractions than auditory noise, and at times i really struggle with visual noise. rather than have this post turn into a rant about the evils of open-plan offices, i’ll just mention that the scientific evidence doesn’t paint them in a good light , or at least suggests that the benefits are more limited in scope than is commonly thought , and move on to what i actually wanted to share: good music for working to. there are a number of genres that i find useful for working. generally, these have in common a consistent tempo, a lack of lyrics, and enough variation to prevent boredom without distracting. familiarity helps my concentration too so i’ll often listen to a restricted set of albums for a while, gradually moving on by dropping one out and bringing in another. in my case this includes: traditional dance music, generally from northern and western european traditions for me. this music has to be rhythmically consistent to allow social dancing, and while the melodies are typically simple repeated phrases, skilled musicians improvise around that to make something beautiful. i tend to go through phases of listening to particular traditions; i’m currently listening to a lot of french, belgian and scandinavian. computer game soundtracks, which are specifically designed to enhance gameplay without distracting, making them perfect for other activities requiring a similar level of concentration. chiptunes and other music incorporating it; partly overlapping with the previous category, chiptunes is music made by hacking the audio chips from (usually) old computers and games machines to become an instrument for new music. because of the nature of the instrument, this will have millisecond-perfect rhythm and again makes for undistracting noise blocking with an extra helping of nostalgia! purists would disagree with me, but i like artists that combine chiptunes with other instruments and effects to make something more complete-sounding. retrowave/synthwave/outrun, synth-driven music that’s instantly familiar as the soundtrack to many s sci-fi and thriller movies. atmospheric, almost dreamy, but rhythmic with a driving beat, it’s another genre that fits into the “pleasing but not too surprising” category for me. so where to find this stuff? one of the best resources i’ve found is music for programming which provides carefully curated playlists of mostly electronic music designed to energise without distracting. they’re so well done that the tracks move seamlessly, one to the next, without ever getting boring. spotify is an obvious option, and i do use it quite a lot. however, i’ve started trying to find ways to support artists more directly, and bandcamp seems to be a good way of doing that. it’s really easy to browse by genre, or discover artists similar to what you’re currently hearing. you can listen for free as long as you don’t mind occasional nags to buy the music you’re hearing, but you can also buy tracks or albums. music you’ve paid for is downloadable in several open, drm-free formats for you to keep, and you know that a decent chunk of that cash is going directly to that artist. i also love noise generators; not exactly music, but a variety of pleasant background noises, some of which nicely obscure typical office noise. i particularly like mynoise.net, which has a cornucopia of different natural and synthetic noises. each generator comes with a range of sliders allowing you to tweak the composition and frequency range, and will even animate them randomly for you to create a gently shifting soundscape. a much simpler, but still great, option is noisli with it’s nice clean interface. both offer apps for ios and android. for bonus points, you can always try combining one or more of the above. adding in a noise generator allows me to listen to quieter music while still getting good environmental isolation when i need concentration. another favourite combo is to open both the cafe and rainfall generators from mynoise, made easier by the ability to pop out a mini-player then open up a second generator. i must be missing stuff though. what other musical genres should i try? what background sounds are nice to work to? well, you know. the other day. whatever. &#x a ;þ e; see e.g.: lee, so young, and jay l. brand. ‘effects of control over office workspace on perceptions of the work environment and work outcomes’. journal of environmental psychology , no. ( september ): – . https://doi.org/ . /j.jenvp. . . . &#x a ;þ e; open plan offices can actually work under certain conditions, the conversation &#x a ;þ e; working at the british library: months in it barely seems like it, but i’ve been at the british library now for nearly months. it always takes a long time to adjust and from experience i know it’ll be another year before i feel fully settled, but my team, department and other colleagues have really made me feel welcome and like i belong. one thing that hasn’t got old yet is the occasional thrill of remembering that i work at my national library now. every now and then i’ll catch a glimpse of the collections at boston spa or step into one of the reading rooms and think “wow, i actually work here!” i also like having a national and international role to play, which means i get to travel a bit more than i used to. budgets are still tight so there are limits, and i still prefer to be home more often than not, but there is more scope in this job than i’ve had previously for travelling to conferences, giving talks that change the way people think, and learning in different contexts. i’m learning a lot too, especially how to work with and manage people split across multiple sites, and the care and feeding of budgets. as well as missing mo old team at sheffield, i do also miss some of the direct contact i had with researchers in he. i especially miss the teaching work, but also the higher-level influencing of more senior academics to change practices on a wider scale. still, i get to use those influencing skills in different ways now, and i’m still involved with the carpentries which should let me keep my hand in with teaching. i still deal with my general tendency to try and do all the things, and as before i’m slowly learning to recognise it, tame it and very occasionally turn it to my advantage. that also leads to feelings of imposterism that are only magnified by the knowledge that i now work at a national institution! it’s a constant struggle some days to believe that i’ve actually earned my place here through hard work, even if i don’t always feel that i have, my colleagues here certainly have, so i should have more faith in their opinion of me. finally, i couldn’t write this type of thing without mentioning the commute. i’ve gone from minutes each way on a good day (up to twice that if the trains were disrupted) to minutes each way along fairly open roads. i have less time to read, but much more time at home. on top of that, the library has implemented flexitime across all pay grades, with even senior managers strongly encouraged to make full use. not only is this an important enabler of equality across the organisation, it relieves for me personally the pressure to work over my contracted hours and the guilt i’ve always felt at leaving work even minutes early. if i work late, it’s now a choice i’m making based on business needs instead of guilt and in full knowledge that i’ll get that time back later. so that’s where i am right now. i’m really enjoying the work and the culture, and i look forward to what the next months will bring! rda plenary reflection photo by me i sit here writing this in the departure lounge at philadelphia international airport, waiting for my aer lingus flight back after a week at the th research data alliance (rda) plenary (although i’m actually publishing this a week or so later at home). i’m pretty exhausted, partly because of the jet lag, and partly because it’s been a very full week with so much to take in. it’s my first time at an rda plenary, and it was quite a new experience for me! first off, it’s my first time outside europe, and thus my first time crossing quite so many timezones. i’ve been waking at am and ready to drop by pm, but i’ve struggled on through! secondly, it’s the biggest conference i’ve been to for a long time, both in number of attendees and number of parallel sessions. there’s been a lot of sustained input so i’ve been very glad to have a room in the conference hotel and be able to escape for a few minutes when i needed to recharge. thirdly, it’s not really like any other conference i’ve been to: rather than having large numbers of presentations submitted by attendees, each session comprises lots of parallel meetings of rda interest groups and working groups. it’s more community-oriented: an opportunity for groups to get together face to face and make plans or show off results. i found it pretty intense and struggled to take it all in, but incredibly valuable nonetheless. lots of information to process (i took a lot of notes) and a few contacts to follow up on too, so overall i loved it! using pipfile in binder photo by sear greyson on unsplash i recently attended a workshop, organised by the excellent team of the turing way project, on a tool called binderhub. binderhub, along with public hosting platform mybinder, allows you to publish computational notebooks online as “binders” such that they’re not static but fully interactive. it’s able to do this by using a tool called repo docker to capture the full computational environment and dependencies required to run the notebook. !!! aside “what is the turing way?” the turing way is, in its own words, “a lightly opinionated guide to reproducible data science.” the team is building an open textbook and running a number of workshops for scientists and research software engineers, and you should check out the project on github. you could even contribute! the binder process goes roughly like this: do some work in a jupyter notebook or similar put it into a public git repository add some extra metadata describing the packages and versions your code relies on go to mybinder.org and tell it where to find your repository open the url it generates for you profit other than step , which can take some time to build the binder, this is a remarkably quick process. it supports a number of different languages too, including built-in support for r, python and julia and the ability to configure pretty much any other language that will run on linux. however, the python support currently requires you to have either a requirements.txt or conda-style environment.yml file to specify dependencies, and i commonly use a pipfile for this instead. pipfile allows you to specify a loose range of compatible versions for maximal convenience, but then locks in specific versions for maximal reproducibility. you can upgrade packages any time you want, but you’re fully in control of when that happens, and the locked versions are checked into version control so that everyone working on a project gets consistency. since pipfile is emerging as something of a standard thought i’d see if i could use that in a binder, and it turns out to be remarkably simple. the reference implementation of pipfile is a tool called pipenv by the prolific kenneth reitz. all you need to use this in your binder is two files of one line each. requirements.txt tells repo binder to build a python-based binder, and contains a single line to install the pipenv package: pipenv then postbuild is used by repo binder to install all other dependencies using pipenv: pipenv install --system the --system flag tells pipenv to install packages globally (its default behaviour is to create a python virtualenv). with these two files, the binder builds and runs as expected. you can see a complete example that i put together during the workshop here on gitlab. what do you think i should write about? i’ve found it increasingly difficult to make time to blog, and it’s not so much not having the time — i’m pretty privileged in that regard — but finding the motivation. thinking about what used to motivate me, one of the big things was writing things that other people wanted to read. rather than try to guess, i thought i’d ask! those who know what i&# ;m about, what would you read about, if it was written by me?i&# ;m trying to break through the blog-writers block and would love to know what other people would like to see my ill-considered opinions on.— jez cope (@jezcope) march , i’m still looking for ideas, so please tweet me or leave me a comment below. below are a few thoughts that i’m planning to do something with. something taking one of the more techy aspects of open research, breaking it down and explaining the benefits for non-techy folks?— dr beth 🏳️‍🌈 🐺 (@phdgeek) march , skills (both techy and non techy) that people need to most effectively support rdm— kate o&# ;neill (@katefoneill) march , sometimes i forget that my background makes me well-qualified to take some of these technical aspects of the job and break them down for different audiences. there might be a whole series in this… carrying on our conversation last week i&# ;d love to hear more about how you&# ;ve found moving from an he lib to a national library and how you see the bl&# ;s role in rdm. appreciate this might be a bit niche/me looking for more interesting things to cite :)— rosie higman (@rosiehlib) march , this is interesting, and something i’d like to reflect on; moving from one job to another always has lessons and it’s easy to miss them if you’re not paying attention. another one for the pile. life without admin rights to your computer— mike croucher (@walkingrandomly) march , this is so frustrating as an end user, but at the same time i get that endpoint security is difficult and there are massive risks associated with letting end users have admin rights. this is particularly important at the bl: as custodian’s of a nation’s cultural heritage, the risk for us is bigger than for many and for this reason we are now cyber essentials plus certified. at some point i’d like to do some research and have a conversation with someone who knows a lot more about infosec to work out what the proper approach to this, maybe involving vms and a demilitarized zone on the network. i’m always looking for more inspiration, so please leave a comment if you’ve got anything you’d like to read my thoughts on. if you’re not familiar with my writing, please take a minute or two to explore the blog; the tags page is probably a good place to get an overview. ultimate hacking keyboard: first thoughts following on from the excitement of having built a functioning keyboard myself, i got a parcel on monday. inside was something that i’ve been waiting for since september: an ultimate hacking keyboard! where the custom-built laplace is small and quiet for travelling, the uhk is to be my main workhorse in the study at home. here are my first impressions: key switches i went with kailh blue switches from the available options. in stark contrast to the quiet blacks on the laplace, blues are noisy! they have an extra piece of plastic inside the switch that causes an audible and tactile click when the switch activates. this makes them very satisfying to type on and should help as i train my fingers not to bottom out while typing, but does make them unsuitable for use in a shared office! here are some animations showing how the main types of key switch vary. layout this keyboard has what’s known as a % layout: no number pad, arrows or function keys. as with the more spartan laplace, these “missing” keys are made up for with programmable layers. for example, the arrow keys are on the mod layer on the i/j/k/l keys, so i can access them without moving from the home row. i actually find this preferable to having to move my hand to the right to reach them, and i really never used the number pad in any case. split this is a split keyboard, which means that the left and right halves can be separated to place the hands further apart which eases strain across the shoulders. the uhk has a neat coiled cable joining the two which doesn’t get in the way. a cool design feature is that the two halves can be slotted back together and function perfectly well as a non-split keyboard too, held together by magnets. there are even electrical contacts so that when the two are joined you don’t need the linking cable. programming the board is fully programmable, and this is achieved via a custom (open source) gui tool which talks to the (open source) firmware on the board. you can have multiple keymaps, each of which has a separate base, mod, fn and mouse layer, and there’s an led display that shows a short mnemonic for the currently active map. i already have a customised dvorak layout for day-to-day use, plus a standard qwerty for not-me to use and an alternative qwerty which will be slowly tweaked for games that don’t work well with dvorak. mouse keys one cool feature that the designers have included in the firmware is the ability to emulate a mouse. there’s a separate layer that allows me to move the cursor, scroll and click without moving my hands from the keyboard. palm rests not much to say about the palm rests, other than they are solid wood, and chunky, and really add a little something. i have to say, i really like it so far! overall it feels really well designed, with every little detail carefully thought out and excellent build quality and a really solid feeling. custom-built keyboard i’m typing this post on a keyboard i made myself, and i’m rather excited about it! why make my own keyboard? i wanted to learn a little bit about practical electronics, and i like to learn by doing i wanted to have the feeling of making something useful with my own hands i actually need a small, keyboard with good-quality switches now that i travel a fair bit for work and this lets me completely customise it to my needs just because! while it is possible to make a keyboard completely from scratch, it makes much more sense to put together some premade parts. the parts you need are: pcb (printed circuit board): the backbone of the keyboard, to which all the other electrical components attach, this defines the possible physical locations for each key switches: one for each key to complete a circuit whenever you press it keycaps: switches are pretty ugly and pretty uncomfortable to press, so each one gets a cap; these are what you probably think of as the “keys” on your keyboard and come in almost limitless variety of designs (within the obvious size limitation) and are the easiest bit of personalisation controller: the clever bit, which detects open and closed switches on the pcb and tells your computer what keys you pressed via a usb cable firmware: the program that runs on the controller starts off as source code like any other program, and altering this can make the keyboard behave in loads of different ways, from different layouts to multiple layers accessed by holding a particular key, to macros and even emulating a mouse! in my case, i’ve gone for the following: pcb laplace from keeb.io, a very compact -key (“ %") board, with no number pad, function keys or number row, but a lot of flexibility for key placement on the bottom row. one of my key design goals was small size so i can just pop it in my bag and have on my lap on the train. controller elite-c, designed specifically for keyboard builds to be physically compatible with the cheaper pro micro, with a more-robust usb port (the pro micro’s has a tendency to snap off), and made easier to program with a built-in reset button and better bootloader. switches gateron black: gateron is one of a number of manufacturers of mechanical switches compatible with the popular cherry range. the black switch is linear (no click or bump at the activation point) and slightly heavier sprung than the more common red. cherry also make a black switch but the gateron version is slightly lighter and having tested a few i found them smoother too. my key goal here was to reduce noise, as the stronger spring will help me type accurately without hitting the bottom of the keystroke with an audible sound. keycaps blank grey pbt in dsa profile: this keyboard layout has a lot of non-standard sized keys, so blank keycaps meant that i wouldn’t be putting lots of keys out of their usual position; they’re also relatively cheap, fairly classy imho and a good placeholder until i end up getting some really cool caps on a group buy or something; oh, and it minimises the chance of someone else trying the keyboard and getting freaked out by the layout… firmware qmk (quantum mechanical keyboard), with a work-in-progress layout, based on dvorak. qmk has a lot of features and allows you to fully program each and every key, with multiple layers accessed through several different routes. because there are so few keys on this board, i’ll need to make good use of layers to make all the keys on a usual keyboard available. dvorak simplified keyboard i’m grateful to the folks of the leeds hack space, especially nav & mark who patiently coached me in various soldering techniques and good practice, but also everyone else who were so friendly and welcoming and interested in my project. i’m really pleased with the result, which is small, light and fully customisable. playing with qmk firmware features will keep me occupied for quite a while! this isn’t the end though, as i’ll need a case to keep the dust out. i’m hoping to be able to d print this or mill it from wood with a cnc mill, for which i’ll need to head back to the hack space! less, but better “wenniger aber besser” — dieter rams {:.big-quote} i can barely believe it’s a full year since i published my intentions for . a lot has happened since then. principally: in november i started a new job as data services lead at the british library. one thing that hasn’t changed is my tendency to try to do too much, so this year i’m going to try and focus on a single intention, a translation of designer dieter rams' famous quote above: less, but better. this chimes with a couple of other things i was toying with over the christmas break, as they’re essentially other ways of saying the same thing: take it steady one thing at a time i’m also going to keep in mind those touchstones from last year: what difference is this making? am i looking after myself? do i have evidence for this? i mainly forget to think about them, so i’ll be sticking up post-its everywhere to help me remember! how to extend python with rust: part python is great, but i find it useful to have an alternative language under my belt for occasions when no amount of pythonic cleverness will make some bit of code run fast enough. one of my main reasons for wanting to learn rust was to have something better than c for that. not only does rust have all sorts of advantages that make it a good choice for code that needs to run fast and correctly, it’s also got a couple of rather nice crates (libraries) that make interfacing with python a lot nicer. here’s a little tutorial to show you how easy it is to call a simple rust function from python. if you want to try it yourself, you’ll find the code on github. !!! prerequisites i’m assuming for this tutorial that you’re already familiar with writing python scripts and importing & using packages, and that you’re comfortable using the command line. you’ll also need to have installed rust. the rust bit the quickest way to get compiled code into python is to use the builtin ctypes package. this is python’s “foreign function interface” or ffi: a means of calling functions outside the language you’re using to make the call. ctypes allows us to call arbitrary functions in a shared library , as long as those functions conform to certain standard c language calling conventions. thankfully, rust tries hard to make it easy for us to build such a shared library. the first thing to do is to create a new project with cargo, the rust build tool: $ cargo new rustfrompy created library `rustfrompy` project $ tree . ├── cargo.toml └── src └── lib.rs directory, files !!! aside i use the fairly common convention that text set in fixed-width font is either example code or commands to type in. for the latter, a $ precedes the command that you type (omit the $), and lines that don’t start with a $ are output from the previous command. i assume a basic familiarity with unix-style command line, but i should probably put in some links to resources if you need to learn more! we need to edit the cargo.toml file and add a [lib] section: [package] name = &# ;rustfrompy&# ; version = &# ; . . &# ; authors = [&# ;jez cope <j.cope@erambler.co.uk>&# ;] [dependencies] [lib] name = &# ;rustfrompy&# ; crate-type = [&# ;cdylib&# ;] this tells cargo that we want to make a c-compatible dynamic library (crate-type = ["cdylib"]) and what to call it, plus some standard metadata. we can then put our code in src/lib.rs. we’ll just use a simple toy function that adds two numbers together: #[no_mangle] pub fn add(a: i , b: i ) -> i { a + b } notice the pub keyword, which instructs the compiler to make this function accessible to other modules, and the #[no_mangle] annotation, which tells it to use the standard c naming conventions for functions. if we don’t do this, then rust will generate a new name for the function for its own nefarious purposes, and as a side effect we won’t know what to call it when we want to use it from python. being good developers, let’s also add a test: #[cfg(test)] mod test { use ::*; #[test] fn test_add() { assert_eq!( , add( , )); } } we can now run cargo test which will compile that code and run the test: $ cargo test compiling rustfrompy v . . (file:///home/jez/personal/projects/rustfrompy) finished dev [unoptimized + debuginfo] target(s) in . secs running target/debug/deps/rustfrompy- caaa f f aa running test test test::test_add ... ok test result: ok. passed; failed; ignored; measured; filtered out everything worked! now just to build that shared library and we can try calling it from python: $ cargo build compiling rustfrompy v . . (file:///home/jez/personal/projects/rustfrompy) finished dev [unoptimized + debuginfo] target(s) in . secs notice that the build is unoptimized and includes debugging information: this is useful in development, but once we’re ready to use our code it will run much faster if we compile it with optimisations. cargo makes this easy: $ cargo build --release compiling rustfrompy v . . (file:///home/jez/personal/projects/rustfrompy) finished release [optimized] target(s) in . secs the python bit after all that, the python bit is pretty short. first we import the ctypes package (which is included in all recent python versions): from ctypes import cdll cargo has tidied our shared library away into a folder, so we need to tell python where to load it from. on linux, it will be called lib<something>.so where the “something” is the crate name from cargo.toml, “rustfrompy”: lib = cdll.loadlibrary(&# ;target/release/librustfrompy.so&# ;) finally we can call the function anywhere we want. here it is in a pytest-style test: def test_rust_add(): assert lib.add( , ) == if you have pytest installed (and you should!) you can run the whole test like this: $ pytest --verbose test.py ====================================== test session starts ====================================== platform linux -- python . . , pytest- . . , py- . . , pluggy- . . -- /home/jez/.virtualenvs/datasci/bin/python cachedir: .cache rootdir: /home/jez/personal/projects/rustfrompy, inifile: collected items test.py::test_rust_add passed it worked! i’ve put both the rust and python code on github if you want to try it for yourself. shortcomings ok, so that was a pretty simple example, and i glossed over a lot of things. for example, what would happen if we did lib.add( . , )? this causes python to throw an error because our rust function only accepts integers ( -bit signed integers, i , to be precise), and we gave it a floating point number. ctypes can’t guess what type(s) a given function will work with, but it can at least tell us when we get it wrong. to fix this properly, we need to do some extra work, telling the ctypes library what the argument and return types for each function are. for a more complex library, there will probably be more housekeeping to do, such as translating return codes from functions into more pythonic-style errors. for a small example like this there isn’t much of a problem, but the bigger your compiled library the more extra boilerplate is required on the python side just to use all the functions. when you’re working with an existing library you don’t have much choice about this, but if you’re building it from scratch specifically to interface with python, there’s a better way using the python c api. you can call this directly in rust, but there are a couple of rust crates that make life much easier, and i’ll be taking a look at those in a future blog post. .so on linux, .dylib on mac and .dll on windows &#x a ;þ e; new years's irresolution photo by andrew hughes on unsplash i’ve chosen not to make any specific resolutions this year; i’ve found that they just don’t work for me. like many people, all i get is a sense of guilt when i inevitably fail to live up to the expectations i set myself at the start of the year. however, i have set a couple of what i’m referring to as “themes” for the year: touchstones that i’ll aim to refer to when setting priorities or just feeling a bit overwhelmed or lacking in direction. they are: contribution self-care measurement i may do some blog posts expanding on these, but in the meantime, i’ve put together a handful of questions to help me think about priorities and get perspective when i’m doing (or avoiding doing) something. what difference is this making? i feel more motivated when i can figure out how i’m contributing to something bigger than myself. in society? in my organisation? to my friends & family? am i looking after myself? i focus a lot on the expectations have (or at least that i think others have) of me, but i can’t do anything well unless i’m generally happy and healthy. is this making me happier and healthier? is this building my capacity to to look after myself, my family & friends and do my job? is this worth the amount of time and energy i’m putting in? do i have evidence for this? i don’t have to base decisions purely on feelings/opinions: i have the skills to obtain, analyse and interpret data. is this fact or opinion? what are the facts? am i overthinking this? can i put a confidence interval for this? build documents from code and data with saga !!! tldr “tl;dr” i’ve made saga, a thing for compiling documents by combining code and data with templates. what is it? saga is a very simple command-line tool that reads in one or more data files, runs one or more scripts, then passes the results into a template to produce a final output document. it enables you to maintain a clean separation between data, logic and presentation and produce data-based documents that can easily be updated. that allows the flow of data through the document to be easily understood, a cornerstone of reproducible analysis. you run it like this: saga build -d data.yaml -d other_data.yaml \ -s analysis.py -t report.md.tmpl \ -o report.md any scripts specified with -s will have access to the data in local variables, and any changes to local variables in a script will be retained when everything is passed to the template for rendering. for debugging, you can also do: saga dump -d data.yaml -d other_data.yaml -s analysis.py which will print out the full environment that would be passed to your template with saga build. features right now this is a really early version. it does the job but i have lots of ideas for features to add if i ever have time. at present it does the following: reads data from one or more yaml files transforms data with one or more python scripts renders a template in mako format works with any plain-text output format, including markdown, latex and html use cases write reproducible reports & papers based on machine-readable data separate presentation from content in any document, e.g. your cv (example coming soon) yours here? get it! i haven’t released this on pypi yet, but all the code is available on github to try out. if you have pipenv installed (and if you use python you should!), you can try it out in an isolated virtual environment by doing: git clone https://github.com/jezcope/sagadoc.git cd sagadoc pipenv install pipenv run saga or you can set up for development and run some tests: pipenv install --dev pipenv run pytest why? like a lot of people, i have to produce reports for work, often containing statistics computed from data. although these generally aren’t academic research papers, i see no reason not to aim for a similar level of reproducibility: after all, if i’m telling other people to do it, i’d better take my own advice! a couple of times now i’ve done this by writing a template that holds the text of the report and placeholders for values, along with a python script that reads in the data, calculates the statistics i want and completes the template. this is valuable for two main reasons: if anyone wants to know how i processed the data and calculated those statistics, it’s all there: no need to try and remember and reproduce a series of button clicks in excel; if the data or calculations change, i just need to update the relevant part and run it again, and all the relevant parts of the document will be updated. this is particularly important if changing a single data value requires recalculation of dozens of tables, charts, etc. it also gives me the potential to factor out and reuse bits of code in the future, add tests and version control everything. now that i’ve done this more than once (and it seems likely i’ll do it again) it makes sense to package that script up in a more portable form so i don’t have to write it over and over again (or, shock horror, copy & paste it!). it saves time, and gives others the possibility to make use of it. prior art i’m not the first person to think of this, but i couldn’t find anything that did exactly what i needed. several tools will let you interweave code and prose, including the results of evaluating each code snippet in the document: chief among these are jupyter and rmarkdown. there are also tools that let you write code in the order that makes most sense to read and then rearrange it into the right order to execute, so-call literate programming. the original tool for this is the venerable noweb. sadly there is very little that combine both of these and allow you to insert the results of various calculations at arbitrary points in a document, independent of the order of either presenting or executing the code. the only two that i’m aware of are: dexy and org-mode. unfortunately, dexy currently only works on legacy python (/python ) and org-mode requires emacs (which is fine but not exactly portable). rmarkdown comes close and supports a range of languages but the full feature set is only available with r. actually, my ideal solution is org-mode without the emacs dependency, because that’s the most flexible solution; maybe one day i’ll have both the time and skill to implement that. it’s also possible i might be able to figure out dexy’s internals to add what i want to it, but until then saga does the job! future work there are lots of features that i’d still like to add when i have time: some actual documentation! and examples! more data formats (e.g. csv, json, toml) more languages (e.g. r, julia) fetching remote data over http caching of intermediate results to speed up rebuilds for now, though, i’d love for you to try it out and let me know what you think! as ever, comment here, tweet me or start an issue on github. why try rust for scientific computing? when you’re writing analysis code, python (or r, or javascript, or …) is usually the right choice. these high-level languages are set up to make you as productive as possible, and common tasks like array manipulation have been well optimised. however, sometimes you just can’t get enough speed and need to turn to a lower-level compiled language. often that will be c, c++ or fortran, but i thought i’d do a short post on why i think you should consider rust. one of my goals for ’s advent of code was to learn a modern, memory-safe, statically-typed language. i now know that there are quite a lot of options in this space, but two seem to stand out: go & rust. i gave both of them a try, and although i’ll probably go back to give go a more thorough test at some point i found i got quite hooked on rust. both languages, though young, are definitely production-ready. servo, the core of the new firefox browser, is entirely written in rust. in fact, mozilla have been trying to rewrite the rendering core in c for nearly a decade, and switching to rust let them get it done in just a couple of years. !!! tldr “tl;dr” - it’s fast: competitive with idiomatic c/c++, and no garbage-collection overhead - it’s harder to write buggy code, and compiler errors are actually helpful - it’s c-compatible: you can call into rust code anywhere you’d call into c, call c/c++ from rust, and incrementally replace c/c++ code with rust - it has sensible modern syntax that makes your code clearer and more concise - support for scientific computing are getting better all the time (matrix algebra libraries, built-in simd, safe concurrency) - it has a really friendly and active community - it’s production-ready: servo, the new rendering core in firefox, is built entirely in rust performance to start with, as a compiled language rust executes much faster than a (pseudo-)interpreted language like python or r; the price you pay for this is time spent compiling during development. however, having a compile step also allows the language to enforce certain guarantees, such as type-correctness and memory safety, which between them prevent whole classes of bugs from even being possible. unlike go (which, like many higher-level languages, uses a garbage collector), rust handles memory safety at compile time through the concepts of ownership and borrowing. these can take some getting used to and were a big source of frustration when i was first figuring out the language, but ultimately contribute to rust’s reliably-fast performance. performance can be unpredictable in a garbage-collected language because you can’t be sure when the gc is going to run and you need to understand it really well to stand a chance of optimising it if becomes a problem. on the other hand, code that has the potential to be unsafe will result in compilation errors in rust. there are a number of benchmarks (example) that show rust’s performance on a par with idiomatic c & c++ code, something that very few languages can boast. helpful error messages because beginner rust programmers often get compile errors, it’s really important that those errors are easy to interpret and fix, and rust is great at this. not only does it tell you what went wrong, but wherever possible it prints out your code annotated with arrows to show exactly where the error is, and makes specific suggestions how to fix the error which usually turn out to be correct. it also has a nice suite of warnings (things that don’t cause compilation to fail but may indicate bugs) that are just as informative, and this can be extended even further by using the clippy linting tool to further analyse your code. warning: unused variable: `y` --> hello.rs: : | | let y = x; | ^ | = note: #[warn(unused_variables)] on by default = note: to avoid this warning, consider using `_y` instead easy to integrate with other languages if you’re like me, you’ll probably only use a low-level language for performance-critical code that you can call from a high-level language, and this is an area where rust shines. most programmers will turn to c, c++ or fortran for this because they have a well established abi (application binary interface) which can be understood by languages like python and r . in rust, it’s trivial to make a c-compatible shared library, and the standard library includes extra features for working with c types. that also means that existing c code can be incrementally ported to rust: see remacs for an example. on top of this, there are projects like rust-cpython and pyo which provide macros and structures that wrap the python c api to let you build python modules in rust with minimal glue code; rustr does a similar job for r. nice language features rust has some really nice features, which let you write efficient, concise and correct code. several feel particularly comfortable as they remind me of similar things available in haskell, including: enums, a super-powered combination of c enums and unions (similar to haskell’s algebraic data types) that enable some really nice code with no runtime cost generics and traits that let you get more done with less code pattern matching, a kind of case statement that lets you extract parts of structs, tuples & enums and do all sorts of other clever things lazy computation based on an iterator pattern, for efficient processing of lists of things: you can do for item in list { ... } instead of the c-style use of an index , or you can use higher-order functions like map and filter functions/closures as first-class citizens scientific computing although it’s a general-purpose language and not designed specifically for scientific computing, rust’s support is improving all the time. there are some interesting matrix algebra libraries available, and built-in simd is incoming. the memory safety features also work to ensure thread safety, so it’s harder to write concurrency bugs. you should be able to use your favourite mpi implementation too, and there’s at least one attempt to portably wrap mpi in a more rust-like way. active development and friendly community one of the things you notice straight away is how active and friendly the rust community is. there are several irc channels on irc.mozilla.org including #rust-beginners, which is a great place to get help. the compiler is under constant but carefully-managed development, so that new features are landing all the time but without breaking existing code. and the fabulous cargo build tool and crates.io are enabling the rapid growth of a healthy ecosystem of open source libraries that you can use to write less code yourself. summary so, next time you need a compiled language to speed up hotspots in your code, try rust. i promise you won’t regret it! julia actually allows you to call c and fortran functions as a first-class language feature &#x a ;þ e; actually, since c++ there’s for (auto item : list) { ... } but still… &#x a ;þ e; reflections on #aoc trees reflected in a lake joshua reddekopp on unsplash it seems like ages ago, but way back in november i committed to completing advent of code. i managed it all, and it was fun! all of my code is available on github if you’re interested in seeing what i did, and i managed to get out a blog post for every one with a bit more commentary, which you can see in the series list above. how did i approach it? i’ve not really done any serious programming challenges before. i don’t get to write a lot of code at the moment, so all i wanted from aoc was an excuse to do some proper problem-solving. i never really intended to take a polyglot approach, though i did think that i might use mainly python with a bit of haskell. in the end, though, i used: python (× ); haskell (× ); rust (× ); go; c++; ruby; julia; and coconut. for the most part, my priorities were getting the right answer, followed by writing readable code. i didn’t specifically focus on performance but did try to avoid falling into traps that i knew about. what did i learn? i found python the easiest to get on with: it’s the language i know best and although i can’t always remember exact method names and parameters i know what’s available and where to look to remind myself, as well as most of the common idioms and some performance traps to avoid. python was therefore the language that let me focus most on solving the problem itself. c++ and ruby were more challenging, and it was harder to write good idiomatic code but i can still remember quite a lot. haskell i haven’t used since university, and just like back then i really enjoyed working out how to solve problems in a functional style while still being readable and efficient (not always something i achieved…). i learned a lot about core haskell concepts like monads & functors, and i’m really amazed by the way the haskell community and ecosystem has grown up in the last decade. i also wanted to learn at least one modern, memory-safe compiled language, so i tried both go and rust. both seem like useful languages, but rust really intrigued me with its conceptual similarities to both haskell and c++ and its promise of memory safety without a garbage collector. i struggled a lot initially with the “borrow checker” (the component that enforces memory safety at compile time) but eventually started thinking in terms of ownership and lifetimes after which things became easier. the rust community seems really vibrant and friendly too. what next? i really want to keep this up, so i’m going to look out some more programming challenges (project euler looks interesting). it turns out there’s a regular code dojo meetup in leeds, so hopefully i’ll try that out too. i’d like to do more realistic data-science stuff, so i’ll be taking a closer look at stuff like kaggle too, and figuring out how to do a bit more analysis at work. i’m also feeling motivated to find an open source project to contribute to and/or release a project of my own, so we’ll see if that goes anywhere! i’ve always found the advice to “scratch your own itch” difficult to follow because everything i think of myself has already been done better. most of the projects i use enough to want to contribute to tend to be pretty well developed with big communities and any bugs that might be accessible to me will be picked off and fixed before i have a chance to get started. maybe it’s time to get over myself and just reimplement something that already exists, just for the fun of it! the halting problem — python — #adventofcode day today’s challenge, takes us back to a bit of computing history: a good old-fashioned turing machine. → full code on github !!! commentary today’s challenge was a nice bit of nostalgia, taking me back to my university days learning about the theory of computing. turing machines are a classic bit of computing theory, and are provably able to compute any value that is possible to compute: a value is computable if and only if a turing machine can be written that computes it (though in practice anything non-trivial is mind-bendingly hard to write as a tm). a bit of a library-fest today, compared to other days! from collections import deque, namedtuple from collections.abc import iterator from tqdm import tqdm import re import fileinput as fi these regular expressions are used to parse the input that defines the transition table for the machine. re_istate = re.compile(r&# ;begin in state (?p<state>\w+)\.&# ;) re_runtime = re.compile( r&# ;perform a diagnostic checksum after (?p<steps>\d+) steps.&# ;) re_statetrans = re.compile( r&# ;in state (?p<state>\w+):\n&# ; r&# ; if the current value is (?p<read >\d+):\n&# ; r&# ; - write the value (?p<write >\d+)\.\n&# ; r&# ; - move one slot to the (?p<move >left|right).\n&# ; r&# ; - continue with state (?p<next >\w+).\n&# ; r&# ; if the current value is (?p<read >\d+):\n&# ; r&# ; - write the value (?p<write >\d+)\.\n&# ; r&# ; - move one slot to the (?p<move >left|right).\n&# ; r&# ; - continue with state (?p<next >\w+).&# ;) move = {&# ;left&# ;: - , &# ;right&# ;: } a namedtuple to provide some sugar when using a transition rule. rule = namedtuple(&# ;rule&# ;, &# ;write move next_state&# ;) the turingmachine class does all the work. class turingmachine: def __init__(self, program=none): self.tape = deque() self.transition_table = {} self.state = none self.runtime = self.steps = self.pos = self.offset = if program is not none: self.load(program) def __str__(self): return f&# ;current: {self.state}; steps: {self.steps} of {self.runtime}&# ; some jiggery-pokery to allow us to use self[pos] to reference an infinite tape. def __getitem__(self, i): i += self.offset if i < or i >= len(self.tape): return else: return self.tape[i] def __setitem__(self, i, x): i += self.offset if i >= and i < len(self.tape): self.tape[i] = x elif i == - : self.tape.appendleft(x) self.offset += elif i == len(self.tape): self.tape.append(x) else: raise indexerror(&# ;tried to set position off end of tape&# ;) parse the program and set up the transtion table. def load(self, program): if isinstance(program, iterator): program = &# ;&# ;.join(program) match = re_istate.search(program) self.state = match[&# ;state&# ;] match = re_runtime.search(program) self.runtime = int(match[&# ;steps&# ;]) for match in re_statetrans.finditer(program): self.transition_table[match[&# ;state&# ;]] = { int(match[&# ;read &# ;]): rule(write=int(match[&# ;write &# ;]), move=move[match[&# ;move &# ;]], next_state=match[&# ;next &# ;]), int(match[&# ;read &# ;]): rule(write=int(match[&# ;write &# ;]), move=move[match[&# ;move &# ;]], next_state=match[&# ;next &# ;]), } run the program for the required number of steps (given by self.runtime). tqdm isn’t in the standard library but it should be: it shows a lovely text-mode progress bar as we go. def run(self): for _ in tqdm(range(self.runtime), desc=&# ;running&# ;, unit=&# ;steps&# ;, unit_scale=true): read = self[self.pos] rule = self.transition_table[self.state][read] self[self.pos] = rule.write self.pos += rule.move self.state = rule.next_state calculate the “diagnostic checksum” required for the answer. @property def checksum(self): return sum(self.tape) aaand go! machine = turingmachine(fi.input()) machine.run() print(&# ;checksum:&# ;, machine.checksum) electromagnetic moat — rust — #adventofcode day today’s challenge, the penultimate, requires us to build a bridge capable of reaching across to the cpu, our final destination. → full code on github !!! commentary we have a finite number of components that fit together in a restricted way from which to build a bridge, and we have to work out both the strongest and the longest bridge we can build. the most obvious way to do this is to recursively build every possible bridge and select the best, but that’s an o(n!) algorithm that could blow up quickly, so might as well go with a nice fast language! might have to try this in haskell too, because it’s the type of algorithm that lends itself naturally to a pure functional approach. i feel like i've applied some of the things i've learned in previous challenges i used rust for, and spent less time mucking about with ownership, and made better use of various language features, including structs and iterators. i'm rather pleased with how my learning of this language is progressing. i'm definitely overusing `option.unwrap` at the moment though: this is a lazy way to deal with `option` results and will panic if the result is not what's expected. i'm not sure whether i need to be cloning the components `vector` either, or whether i could just be passing iterators around. first, we import some bits of standard library and define some data types. the bridgeresult struct lets us use the same algorithm for both parts of the challenge and simply change the value used to calculate the maximum. use std::io; use std::fmt; use std::io::bufread; #[derive(debug, copy, clone, partialeq, eq, hash)] struct component(u , u ); #[derive(debug, copy, clone, default)] struct bridgeresult { strength: u , length: u , } impl component { fn from_str(s: &str) -> component { let parts: vec<&str> = s.split(&# ;/&# ;).collect(); assert!(parts.len() == ); component(parts[ ].parse().unwrap(), parts[ ].parse().unwrap()) } fn fits(self, port: u ) -> bool { self. == port || self. == port } fn other_end(self, port: u ) -> u { if self. == port { return self. ; } else if self. == port { return self. ; } else { panic!(&# ;{} doesn&# ;t fit port {}&# ;, self, port); } } fn strength(self) -> u { self. as u + self. as u } } impl fmt::display for bridgeresult { fn fmt(&self, f: &mut fmt::formatter) -> fmt::result { write!(f, &# ;(s: {}, l: {})&# ;, self.strength, self.length) } } best_bridge calculates the length and strength of the “best” bridge that can be built from the remaining components and fits the required port. whether this is based on strength or length is given by the key parameter, which is passed to iter.max_by_key. fn best_bridge<f>(port: u , key: &f, components: &vec<component>) -> option<bridgeresult> where f: fn(&bridgeresult) -> u { if components.len() == { return none; } components.iter() .filter(|c| c.fits(port)) .map(|c| { let b = best_bridge(c.other_end(port), key, &components.clone().into_iter() .filter(|x| x != c).collect()) .unwrap_or_default(); bridgeresult{strength: c.strength() + b.strength, length: + b.length} }) .max_by_key(key) } now all that remains is to read the input and calculate the result. i was rather pleasantly surprised to find that in spite of my pessimistic predictions about efficiency, when compiled with optimisations turned on this terminates in less than s on my laptop. fn main() { let stdin = io::stdin(); let components: vec<_> = stdin.lock() .lines() .map(|l| component::from_str(&l.unwrap())) .collect(); match best_bridge( , &|b: &bridgeresult| b.strength, &components) { some(b) => println!(&# ;strongest bridge is {}&# ;, b), none => println!(&# ;no strongest bridge found&# ;) }; match best_bridge( , &|b: &bridgeresult| b.length, &components) { some(b) => println!(&# ;longest bridge is {}&# ;, b), none => println!(&# ;no longest bridge found&# ;) }; } coprocessor conflagration — haskell — #adventofcode day today’s challenge requires us to understand why a coprocessor is working so hard to perform an apparently simple calculation. → full code on github !!! commentary today’s problem is based on an assembly-like language very similar to day , so i went back and adapted my code from that, which works well for the first part. i’ve also incorporated some advice from /r/haskell, and cleaned up all warnings shown by the -wall compiler flag and the hlint tool. part requires the algorithm to run with much larger inputs, and since some analysis shows that it's an `o(n^ )` algorithm it gets intractible pretty fast. there are several approaches to this. first up, if you have a fast enough processor and an efficient enough implementation i suspect that the simulation would probably terminate eventually, but that would likely still take hours: not good enough. i also thought about doing some peephole optimisations on the instructions, but the last time i did compiler optimisation was my degree so i wasn't really sure where to start. what i ended up doing was actually analysing the input code by hand to figure out what it was doing, and then just doing that calculation in a sensible way. i'd like to say i managed this on my own (and i ike to think i would have) but i did get some tips on [/r/adventofcode](https://reddit.com/r/adventofcode). the majority of this code is simply a cleaned-up version of day , with some tweaks to accommodate the different instruction set: module main where import qualified data.vector as v import qualified data.map.strict as m import control.monad.state.strict import text.parsercombinators.parsec hiding (state) type register = char type value = int type argument = either value register data instruction = set register argument | sub register argument | mul register argument | jnz argument argument deriving show type program = v.vector instruction data result = cont | halt deriving (eq, show) type registers = m.map char int data machine = machine { dregisters :: registers , dptr :: !int , dmulcount :: !int , dprogram :: program } instance show machine where show d = show (dregisters d) ++ &# ; @&# ; ++ show (dptr d) ++ &# ; ×&# ; ++ show (dmulcount d) defaultmachine :: machine defaultmachine = machine m.empty v.empty type machinestate = state machine program :: genparser char st program program = do instructions <- endby instruction eol return $ v.fromlist instructions where instruction = try (regop &# ;set&# ; set) <|> regop &# ;sub&# ; sub <|> regop &# ;mul&# ; mul <|> jump &# ;jnz&# ; jnz regop n c = do string n >> spaces val <- oneof &# ;abcdefgh&# ; secondarg c val jump n c = do string n >> spaces val <- regorval secondarg c val secondarg c val = do spaces val <- regorval return $ c val val regorval = register <|> value register = do name <- lower return $ right name value = do val <- many $ oneof &# ;- &# ; return $ left $ read val eol = char &# ;\n&# ; parseprogram :: string -> either parseerror program parseprogram = parse program &# ;&# ; getreg :: char -> machinestate int getreg r = do st <- get return $ m.findwithdefault r (dregisters st) putreg :: char -> int -> machinestate () putreg r v = do st <- get let current = dregisters st new = m.insert r v current put $ st { dregisters = new } modreg :: (int -> int -> int) -> char -> argument -> machinestate () modreg op r v = do u <- getreg r v&# ; <- getregorval v putreg r (u `op` v&# ;) incptr getregorval :: argument -> machinestate int getregorval = either return getreg addptr :: int -> machinestate () addptr n = do st <- get put $ st { dptr = n + dptr st } incptr :: machinestate () incptr = addptr execinst :: instruction -> machinestate () execinst (set reg val) = do newval <- getregorval val putreg reg newval incptr execinst (mul reg val) = do result <- modreg (*) reg val st <- get put $ st { dmulcount = + dmulcount st } return result execinst (sub reg val) = modreg (-) reg val execinst (jnz val val ) = do test <- getregorval val jump <- if test /= then getregorval val else return addptr jump execnext :: machinestate result execnext = do st <- get let prog = dprogram st p = dptr st if p >= length prog then return halt else do execinst (prog v.! p) return cont rununtilterm :: machinestate () rununtilterm = do result <- execnext unless (result == halt) rununtilterm this implements the actual calculation: the number of non-primes between (for my input) and : optimisedcalc :: int -> int -> int -> int optimisedcalc a b k = sum $ map (const ) $ filter notprime [a,a+k..b] where notprime n = elem $ map (mod n) [ ..(floor $ sqrt (fromintegral n :: double))] main :: io () main = do input <- getcontents case parseprogram input of right prog -> do let c = defaultmachine { dprogram = prog } (_, c&# ;) = runstate rununtilterm c putstrln $ show (dmulcount c&# ;) ++ &# ; multiplications made&# ; putstrln $ &# ;calculation result: &# ; ++ show (optimisedcalc ) left e -> print e sporifica virus — rust — #adventofcode day today’s challenge has us helping to clean up (or spread, i can’t really tell) an infection of the “sporifica” virus. → full code on github !!! commentary i thought i’d have another play with rust, as its haskell-like features resonate with me at the moment. i struggled quite a lot with the rust concepts of ownership and borrowing, and this is a cleaned-up version of the code based on some good advice from the folks on /r/rust. use std::io; use std::env; use std::io::bufread; use std::collections::hashmap; #[derive(partialeq, clone, copy, debug)] enum direction {up, right, down, left} #[derive(partialeq, clone, copy, debug)] enum infection {clean, weakened, infected, flagged} use self::direction::*; use self::infection::*; type grid = hashmap<(isize, isize), infection>; fn turn_left(d: direction) -> direction { match d {up => left, right => up, down => right, left => down} } fn turn_right(d: direction) -> direction { match d {up => right, right => down, down => left, left => up} } fn turn_around(d: direction) -> direction { match d {up => down, right => left, down => up, left => right} } fn make_move(d: direction, x: isize, y: isize) -> (isize, isize) { match d { up => (x- , y), right => (x, y+ ), down => (x+ , y), left => (x, y- ), } } fn basic_step(grid: &mut grid, x: &mut isize, y: &mut isize, d: &mut direction) -> usize { let mut infect = ; let current = match grid.get(&(*x, *y)) { some(v) => *v, none => clean, }; if current == infected { *d = turn_right(*d); } else { *d = turn_left(*d); infect = ; }; grid.insert((*x, *y), match current { clean => infected, infected => clean, x => panic!(&# ;unexpected infection state {:?}&# ;, x), }); let new_pos = make_move(*d, *x, *y); *x = new_pos. ; *y = new_pos. ; infect } fn nasty_step(grid: &mut grid, x: &mut isize, y: &mut isize, d: &mut direction) -> usize { let mut infect = ; let new_state: infection; let current = match grid.get(&(*x, *y)) { some(v) => *v, none => infection::clean, }; match current { clean => { *d = turn_left(*d); new_state = weakened; }, weakened => { new_state = infected; infect = ; }, infected => { *d = turn_right(*d); new_state = flagged; }, flagged => { *d = turn_around(*d); new_state = clean; } }; grid.insert((*x, *y), new_state); let new_pos = make_move(*d, *x, *y); *x = new_pos. ; *y = new_pos. ; infect } fn virus_infect<f>(mut grid: grid, mut step: f, mut x: isize, mut y: isize, mut d: direction, n: usize) -> usize where f: fnmut(&mut grid, &mut isize, &mut isize, &mut direction) -> usize, { ( ..n).map(|_| step(&mut grid, &mut x, &mut y, &mut d)) .sum() } fn main() { let args: vec<string> = env::args().collect(); let n_basic: usize = args[ ].parse().unwrap(); let n_nasty: usize = args[ ].parse().unwrap(); let stdin = io::stdin(); let lines: vec<string> = stdin.lock() .lines() .map(|x| x.unwrap()) .collect(); let mut grid: grid = hashmap::new(); let x = (lines.len() / ) as isize; let y = (lines[ ].len() / ) as isize; for (i, line) in lines.iter().enumerate() { for (j, c) in line.chars().enumerate() { grid.insert((i as isize, j as isize), match c {&# ;#&# ; => infected, _ => clean}); } } let basic_steps = virus_infect(grid.clone(), basic_step, x , y , up, n_basic); println!(&# ;basic: infected {} times&# ;, basic_steps); let nasty_steps = virus_infect(grid, nasty_step, x , y , up, n_nasty); println!(&# ;nasty: infected {} times&# ;, nasty_steps); } fractal art — python — #adventofcode day today’s challenge asks us to assist an artist building fractal patterns from a rulebook. → full code on github !!! commentary another fairly straightforward algorithm: the really tricky part was breaking the pattern up into chunks and rejoining it again. i could probably have done that more efficiently, and would have needed to if i had to go for a few more iterations and the grid grows with every iteration and gets big fast. still behind on the blog posts… import fileinput as fi from math import sqrt from functools import reduce, partial import operator initial_pattern = (( , , ), ( , , ), ( , , )) decode = [&# ;.&# ;, &# ;#&# ;] encode = {&# ;.&# ;: , &# ;#&# ;: } concat = partial(reduce, operator.concat) def rotate(p): size = len(p) return tuple(tuple(p[i][j] for i in range(size)) for j in range(size - , - , - )) def flip(p): return tuple(p[i] for i in range(len(p) - , - , - )) def permutations(p): yield p yield flip(p) for _ in range( ): p = rotate(p) yield p yield flip(p) def print_pattern(p): print(&# ;-&# ; * len(p)) for row in p: print(&# ; &# ;.join(decode[x] for x in row)) print(&# ;-&# ; * len(p)) def build_pattern(s): return tuple(tuple(encode[c] for c in row) for row in s.split(&# ;/&# ;)) def build_pattern_book(lines): book = {} for line in lines: source, target = line.strip().split(&# ; => &# ;) for rotation in permutations(build_pattern(source)): book[rotation] = build_pattern(target) return book def subdivide(pattern): size = if len(pattern) % == else n = len(pattern) // size return (tuple(tuple(pattern[i][j] for j in range(y * size, (y + ) * size)) for i in range(x * size, (x + ) * size)) for x in range(n) for y in range(n)) def rejoin(parts): n = int(sqrt(len(parts))) size = len(parts[ ]) return tuple(concat(parts[i + k][j] for i in range(n)) for k in range( , len(parts), n) for j in range(size)) def enhance_once(p, book): return rejoin(tuple(book[part] for part in subdivide(p))) def enhance(p, book, n, progress=none): for _ in range(n): p = enhance_once(p, book) return p book = build_pattern_book(fi.input()) intermediate_pattern = enhance(initial_pattern, book, ) print(&# ;after iterations:&# ;, sum(sum(row) for row in intermediate_pattern)) final_pattern = enhance(intermediate_pattern, book, ) print(&# ;after iterations:&# ;, sum(sum(row) for row in final_pattern)) particle swarm — python — #adventofcode day today’s challenge finds us simulating the movements of particles in space. → full code on github !!! commentary back to python for this one, another relatively straightforward simulation, although it’s easier to calculate the answer to part than to simulate. import fileinput as fi import numpy as np import re first we parse the input into d arrays: using numpy enables us to do efficient arithmetic across the whole set of particles in one go. particle_re = re.compile(r&# ;p=<(-?\d+),(-?\d+),(-?\d+)>, &# ; r&# ;v=<(-?\d+),(-?\d+),(-?\d+)>, &# ; r&# ;a=<(-?\d+),(-?\d+),(-?\d+)>&# ;) def parse_input(lines): x = [] v = [] a = [] for l in lines: m = particle_re.match(l) x.append([int(x) for x in m.group( , , )]) v.append([int(x) for x in m.group( , , )]) a.append([int(x) for x in m.group( , , )]) return (np.arange(len(x)), np.array(x), np.array(v), np.array(a)) i, x, v, a = parse_input(fi.input()) now we can calculate which particle will be closest to the origin in the long-term: this is simply the particle with the smallest acceleration. it turns out that several have the same acceleration, so of these, the one we want is the one with the lowest starting velocity. this is only complicated slightly by the need to get the number of the particle rather than its other information, hence the need to use numpy.argmin. a_abs = np.sum(np.abs(a), axis= ) a_min = np.min(a_abs) a_i = np.squeeze(np.argwhere(a_abs == a_min)) closest = i[a_i[np.argmin(np.sum(np.abs(v[a_i]), axis= ))]] print(&# ;closest: &# ;, closest) now we define functions to simulate collisions between particles. we have to use the return_index and return_counts options to numpy.unique to be able to get rid of all the duplicate positions (the standard usage is to keep one of each duplicate). def resolve_collisions(x, v, a): (_, i, c) = np.unique(x, return_index=true, return_counts=true, axis= ) i = i[c == ] return x[i], v[i], a[i] the termination criterion for this loop is an interesting aspect: the most robust to my mind seems to be that eventually the particles will end up sorted in order of their initial acceleration in terms of distance from the origin, so you could check for this but that’s pretty computationally expensive. in the end, all that was needed was a bit of trial and error: terminating arbitrarily after , iterations seems to work! in fact, all the collisions are over after about iterations for my input but there was always the possibility that two particles with very slightly different accelerations would eventually intersect much later. def simulate_collisions(x, v, a, iterations= ): for _ in range(iterations): v += a x += v x, v, a = resolve_collisions(x, v, a) return len(x) print(&# ;remaining particles: &# ;, simulate_collisions(x, v, a)) a series of tubes — rust — #adventofcode day today’s challenge asks us to help a network packet find its way. → full code on github !!! commentary today’s challenge was fairly straightforward, following an ascii art path, so i thought i’d give rust another try. i’m a bit behind on the blog posts, so i’m presenting the code below without any further commentary. i’m not really convinced this is good idiomatic rust, and it was interesting turning a set of strings into a d array of characters because there are both u (byte) and char types to deal with. use std::io; use std::io::bufread; const alpha: &&# ;static str = &# ;abcdefghijklmnopqrstuvwxyz&# ;; fn change_direction(dia: &vec<vec<u >>, x: usize, y: usize, dx: &mut i , dy: &mut i ) { assert_eq!(dia[x][y], b&# ;+&# ;); if dx.abs() == { *dx = ; if y + < dia[x].len() && (dia[x][y + ] == b&# ;-&# ; || alpha.contains(dia[x][y + ] as char)) { *dy = ; } else if dia[x][y - ] == b&# ;-&# ; || alpha.contains(dia[x][y - ] as char) { *dy = - ; } else { panic!(&# ;huh? {} {}&# ;, dia[x][y+ ] as char, dia[x][y- ] as char); } } else { *dy = ; if x + < dia.len() && (dia[x + ][y] == b&# ;|&# ; || alpha.contains(dia[x + ][y] as char)) { *dx = ; } else if dia[x - ][y] == b&# ;|&# ; || alpha.contains(dia[x - ][y] as char) { *dx = - ; } else { panic!(&# ;huh?&# ;); } } } fn follow_route(dia: vec<vec<u >>) -> (string, i ) { let mut x: i = ; let mut y: i ; let mut dx: i = ; let mut dy: i = ; let mut result = string::new(); let mut steps = ; match dia[ ].iter().position(|x| *x == b&# ;|&# ;) { some(i) => y = i as i , none => panic!(&# ;could not find &# ;|&# ; in first row&# ;), } loop { x += dx; y += dy; match dia[x as usize][y as usize] { b&# ;a&# ;...b&# ;z&# ; => result.push(dia[x as usize][y as usize] as char), b&# ;+&# ; => change_direction(&dia, x as usize, y as usize, &mut dx, &mut dy), b&# ; &# ; => return (result, steps), _ => (), } steps += ; } } fn main() { let stdin = io::stdin(); let lines: vec<vec<u >> = stdin.lock().lines() .map(|l| l.unwrap().into_bytes()) .collect(); let result = follow_route(lines); println!(&# ;route: {}&# ;, result. ); println!(&# ;steps: {}&# ;, result. ); } duet — haskell — #adventofcode day today’s challenge introduces a type of simplified assembly language that includes instructions for message-passing. first we have to simulate a single program (after humorously misinterpreting the snd and rcv instructions as “sound” and “recover”), but then we have to simulate two concurrent processes and the message passing between them. → full code on github !!! commentary well, i really learned a lot from this one! i wanted to get to grips with more complex stuff in haskell and this challenge seemed like an excellent opportunity to figure out a) parsing with the parsec library and b) using the state monad to keep the state of the simulator. as it turned out, that wasn't all i'd learned: i also ran into an interesting situation whereby lazy evaluation was creating an infinite loop where there shouldn't be one, so i also had to learn how to selectively force strict evaluation of values. i'm pretty sure this isn't the best haskell in the world, but i'm proud of it. first we have to import a bunch of stuff to use later, but also notice the pragma on the first line which instructs the compiler to enable the bangpatterns language extension, which will be important later. {-# language bangpatterns #-} module main where import qualified data.vector as v import qualified data.map.strict as m import data.list import data.either import data.maybe import control.monad.state.strict import control.monad.loops import text.parsercombinators.parsec hiding (state) first up we define the types that will represent the program code itself. data duetval = reg char | val int deriving show type duetqueue = [int] data duetinstruction = snd duetval | rcv duetval | jgz duetval duetval | set duetval duetval | add duetval duetval | mul duetval duetval | mod duetval duetval deriving show type duetprogram = v.vector duetinstruction next we define the types to hold the machine state, which includes: registers, instruction pointer, send & receive buffers and the program code, plus a counter of the number of sends made (to provide the solution). type duetregisters = m.map char int data duet = duet { dregisters :: duetregisters , dptr :: int , dsendcount :: int , drcvbuf :: duetqueue , dsndbuf :: duetqueue , dprogram :: duetprogram } instance show duet where show d = show (dregisters d) ++ &# ; @&# ; ++ show (dptr d) ++ &# ; s&# ; ++ show (dsndbuf d) ++ &# ; r&# ; ++ show (drcvbuf d) defaultduet = duet m.empty [] [] v.empty type duetstate = state duet program is a parser built on the cool parsec library to turn the program text into a haskell format that we can work with, a vector of instructions. yes, using a full-blown parser is overkill here (it would be much simpler just to split each line on whitespace, but i wanted to see how parsec works. i’m using vector here because we need random access to the instruction list, which is much more efficient with vector: o( ) compared with the o(n) of the built in haskell list ([]) type. parseprogram applies the parser to a string and returns the result. program :: genparser char st duetprogram program = do instructions <- endby instruction eol return $ v.fromlist instructions where instruction = try (onearg &# ;snd&# ; snd) <|> onearg &# ;rcv&# ; rcv <|> twoarg &# ;set&# ; set <|> twoarg &# ;add&# ; add <|> try (twoarg &# ;mul&# ; mul) <|> twoarg &# ;mod&# ; mod <|> twoarg &# ;jgz&# ; jgz onearg n c = do string n >> spaces val <- regorval return $ c val twoarg n c = do string n >> spaces val <- regorval spaces val <- regorval return $ c val val regorval = register <|> value register = do name <- lower return $ reg name value = do val <- many $ oneof &# ;- &# ; return $ val $ read val eol = char &# ;\n&# ; parseprogram :: string -> either parseerror duetprogram parseprogram = parse program &# ;&# ; next up we have some utility functions that sit in the duetstate monad we defined above and perform common manipulations on the state: getting/setting/updating registers, updating the instruction pointer and sending/receiving messages via the relevant queues. getreg :: char -> duetstate int getreg r = do st <- get return $ m.findwithdefault r (dregisters st) putreg :: char -> int -> duetstate () putreg r v = do st <- get let current = dregisters st new = m.insert r v current put $ st { dregisters = new } modreg :: (int -> int -> int) -> char -> duetval -> duetstate bool modreg op r v = do u <- getreg r v&# ; <- getregorval v putreg r (u `op` v&# ;) incptr return false getregorval :: duetval -> duetstate int getregorval (reg r) = getreg r getregorval (val v) = return v addptr :: int -> duetstate () addptr n = do st <- get put $ st { dptr = n + dptr st } incptr = addptr send :: int -> duetstate () send v = do st <- get put $ st { dsndbuf = (dsndbuf st ++ [v]), dsendcount = dsendcount st + } recv :: duetstate (maybe int) recv = do st <- get case drcvbuf st of (x:xs) -> do put $ st { drcvbuf = xs } return $ just x [] -> return nothing execinst implements the logic for each instruction. it returns false as long as the program can continue, but true if the program tries to receive from an empty buffer. execinst :: duetinstruction -> duetstate bool execinst (set (reg reg) val) = do newval <- getregorval val putreg reg newval incptr return false execinst (mul (reg reg) val) = modreg (*) reg val execinst (add (reg reg) val) = modreg (+) reg val execinst (mod (reg reg) val) = modreg mod reg val execinst (jgz val val ) = do st <- get test <- getregorval val jump <- if test > then getregorval val else return addptr jump return false execinst (snd val) = do v <- getregorval val send v st <- get incptr return false execinst (rcv (reg r)) = do st <- get v <- recv handle v where handle :: maybe int -> duetstate bool handle (just x) = putreg r x >> incptr >> return false handle nothing = return true execinst x = error $ &# ;execinst not implemented yet for &# ; ++ show x execnext looks up the next instruction and executes it. rununtilwait runs the program until execnext returns true to signal the wait state has been reached. execnext :: duetstate bool execnext = do st <- get let prog = dprogram st p = dptr st if p >= length prog then return true else execinst (prog v.! p) rununtilwait :: duetstate () rununtilwait = do waiting <- execnext unless waiting rununtilwait runtwoprograms handles the concurrent running of two programs, by running first one and then the other to a wait state, then swapping each program’s send buffer to the other’s receive buffer before repeating. if you look carefully, you’ll see a “bang” (!) before the two arguments of the function: runtwoprograms !d !d . haskell is a lazy language and usually doesn’t evaluate a computation until you ask for a result, instead carrying around a “thunk” or plan for how to carry out the computation. sometimes that can be a problem because the amount of memory your program is using can explode unnecessarily as a long computation turns into a large thunk which isn’t evaluated until the very end. that’s not the problem here though. what happens here without the bangs is another side-effect of laziness. the exit condition of this recursive function is that a deadlock has been reached: both programs are waiting to receive, but neither has sent anything, so neither can ever continue. the check for this is (null $ dsndbuf d ') && (null $ dsndbuf d '). as long as the first program has something in its send buffer, the test fails without ever evaluating the second part, which means the result d ' of running the second program is never needed. the function immediately goes to the recursive case and tries to continue the first program again, which immediately returns because it’s still waiting to receive. the same thing happens again, and the result is that instead of running the second program to obtain something for the first to receive, we get into an infinite loop trying and failing to continue the first program. the bang forces both d and d to be evaluated at the point we recurse, which forces the rest of the computation: running the second program and swapping the send/receive buffers. with that, the evaluation proceeds correctly and we terminate with a result instead of getting into an infinite loop! runtwoprograms :: duet -> duet -> (int, int) runtwoprograms !d !d | (null $ dsndbuf d &# ;) && (null $ dsndbuf d &# ;) = (dsendcount d &# ;, dsendcount d &# ;) | otherwise = runtwoprograms d &# ;&# ; d &# ;&# ; where (_, d &# ;) = runstate rununtilwait d (_, d &# ;) = runstate rununtilwait d d &# ;&# ; = d &# ; { dsndbuf = [], drcvbuf = dsndbuf d &# ; } d &# ;&# ; = d &# ; { dsndbuf = [], drcvbuf = dsndbuf d &# ; } all that remains to be done now is to run the programs and see how many messages were sent before the deadlock. main = do prog <- fmap (fromright v.empty . parseprogram) getcontents let d = defaultduet { dprogram = prog, dregisters = m.fromlist [(&# ;p&# ;, )] } d = defaultduet { dprogram = prog, dregisters = m.fromlist [(&# ;p&# ;, )] } (send , send ) = runtwoprograms d d putstrln $ &# ;program sent &# ; ++ show send ++ &# ; messages&# ; putstrln $ &# ;program sent &# ; ++ show send ++ &# ; messages&# ; spinlock — rust/python — #adventofcode day in today’s challenge we deal with a monstrous whirlwind of a program, eating up cpu and memory in equal measure. → full code on github (and python driver script) !!! commentary one of the things i wanted from aoc was an opportunity to try out some popular languages that i don’t currently know, including the memory-safe, strongly-typed compiled languages go and rust. realistically though, i’m likely to continue doing most of my programming in python, and use one of these other languages when it has better tools or i need the extra speed. in which case, what i really want to know is how i can call functions written in go or rust from python. i thought i'd try rust first, as it seems to be designed to be c-compatible and that makes it easy to call from python using [`ctypes`](https://docs.python.org/ . /library/ctypes.html). part was another straightforward simulation: translate what the "spinlock" monster is doing into code and run it. it was pretty obvious from the story of this challenge and experience of the last few days that this was going to be another one where the simulation is too computationally expensive for part two, which turns out to be correct. so, first thing to do is to implement the meat of the solution in rust. spinlock solves the first part of the problem by doing exactly what the monster does. since we only have to go up to iterations, this is very tractable. the last number we insert is , so we just return the number immediately after that. #[no_mangle] pub extern fn spinlock(n: usize, skip: usize) -> i { let mut buffer: vec<i > = vec::with_capacity(n+ ); buffer.push( ); buffer.push( ); let mut pos = ; for i in ..n+ { pos = (pos + skip + ) % buffer.len(); buffer.insert(pos, i as i ); } pos = (pos + ) % buffer.len(); return buffer[pos]; } for the second part, we have to do million iterations instead, which is a lot. given that every time you insert an item in the list it has to move up all the elements after that position, i’m pretty sure the algorithm is o(n^ ), so it’s going to take a lot longer than , ish times the first part. thankfully, we don’t need to build the whole list, just keep track of where is and what number is immediately after it. there may be a closed-form solution to simply calculate the result, but i couldn’t think of it and this is good enough. #[no_mangle] pub extern fn spinlock (n: usize, skip: usize) -> i { let mut pos = ; let mut pos_ = ; let mut after_ = ; for i in ..n+ { pos = (pos + skip + ) % i; if pos == pos_ + { after_ = i; } if pos <= pos_ { pos_ += ; } } return after_ as i ; } now it’s time to call this code from python. notice the #[no_mangle] pragmas and pub extern declarations for each function above, which are required to make sure the functions are exported in a c-compatible way. we can build this into a shared library like this: rustc --crate-type=cdylib -o spinlock.so -spinlock.rs the python script is as simple as loading this library, reading the puzzle input from the command line and calling the functions. the ctypes module does a lot of magic so that we don’t have to worry about converting from python types to native types and back again. import ctypes import sys lib = ctypes.cdll.loadlibrary(&# ;./spinlock.so&# ;) skip = int(sys.argv[ ]) print(&# ;part :&# ;, lib.spinlock( , skip)) print(&# ;part :&# ;, lib.spinlock ( _ _ , skip)) this is a toy example as far as calling rust from python is concerned, but it’s worth noting that already we can play with the parameters to the two rust functions without having to recompile. for more serious work, i’d probably be looking at something like pyo to make a proper python module. looks like there’s also a very early rust numpy integration for integrating numerical stuff. you can also do the same thing from julia, which has a ccall function built in: ccall((:spinlock, &# ;./spinlock.so&# ;), int , (uint , uint ), , ) my next thing to try might be haskell → python though… permutation promenade — julia — #adventofcode day today’s challenge rather appeals to me as a folk dancer, because it describes a set of instructions for a dance and asks us to work out the positions of the dancing programs after each run through the dance. → full code on github !!! commentary so, part is pretty straight forward: parse the set of instructions, interpret them and keep track of the dancer positions as you go. one time through the dance. however, part asks for the positions after billion (yes, that’s , , , ) times through the dance. in hindsight i should have immediately become suspicious, but i thought i’d at least try the brute force approach first because it was simpler to code. so i give it a try, and after waiting for a while, having a cup of tea etc. it still hasn't terminated. i try reducing the number of iterations to , . now it terminates, but takes about seconds. a spot of arithmetic suggests that running the full version will take a little over years. there must be a better way than that! i'm a little embarassed that i didn't spot the solution immediately (blaming julia) and tried again in python to see if i could get it to terminate quicker. when that didn't work i had to think again. a little further investigation with a while loop shows that in fact the dance position repeats (in the case of my input) every times. after that it becomes much quicker! oh, and it was time for a new language, so i wasted some extra time working out the quirks of [julia][]. first, a function to evaluate a single move — for neatness, this dispatches to a dedicated function depending on the type of move, although this isn’t really necessary to solve the challenge. ending a function name with a bang (!) is a julia convention to indicate that it has side-effects. function eval_move!(move, dancers) move_type = move[ ] params = move[ :end] if move_type == &# ;s&# ; # spin eval_spin!(params, dancers) elseif move_type == &# ;x&# ; # exchange eval_exchange!(params, dancers) elseif move_type == &# ;p&# ; # partner swap eval_partner!(params, dancers) end end these take care of the individual moves. parsing the parameters from a string every single time probably isn’t ideal, but as it turns out, that optimisation isn’t really necessary. note the + in eval_exchange!, which is necessary because julia is one of those crazy languages where indexes start from instead of . these actions are pretty nice to implement, because julia has circshift as a builtin to rotate a list, and allows you to assign to list slices and swap values in place with a single statement. function eval_spin!(params, dancers) shift = parse(int, params) dancers[ :end] = circshift(dancers, shift) end function eval_exchange!(params, dancers) i, j = map(x -> parse(int, x) + , split(params, &# ;/&# ;)) dancers[i], dancers[j] = dancers[j], dancers[i] end function eval_partner!(params, dancers) a, b = split(params, &# ;/&# ;) ia = findfirst([x == a for x in dancers]) ib = findfirst([x == b for x in dancers]) dancers[ia], dancers[ib] = b, a end dance! takes a list of moves and takes the dances once through the dance. function dance!(moves, dancers) for m in moves eval_move!(m, dancers) end end to solve part , we simply need to read the moves in, set up the initial positions of the dances and run the dance through once. join is necessary to a) turn characters into length- strings, and b) convert the list of strings back into a single string to print out. moves = split(readchomp(stdin), &# ;,&# ;) dancers = collect(join(c) for c in &# ;a&# ;:&# ;p&# ;) orig_dancers = copy(dancers) dance!(moves, dancers) println(join(dancers)) part requires a little more work. we run the dance through again and again until we get back to the initial position, saving the intermediate positions in a list. the list now contains every possible position available from that starting point, so we can find position billion by taking , , , modulo the list length (plus because -based indexing) and use that to index into the list to get the final position. dance_cycle = [orig_dancers] while dancers != orig_dancers push!(dance_cycle, copy(dancers)) dance!(moves, dancers) end println(join(dance_cycle[ _ _ _ % length(dance_cycle) + ])) this terminates on my laptop in about . s: brute force ; careful thought ! dueling generators — rust — #adventofcode day today’s challenge introduces two pseudo-random number generators which are trying to agree on a series of numbers. we play the part of the “judge”, counting the number of times their numbers agree in the lowest bits. → full code on github ever since i used go to solve day , i’ve had a hankering to try the other new kid on the memory-safe compiled language block, rust. i found it a bit intimidating at first because the syntax wasn’t as close to the c/c++ i’m familiar with and there are quite a few concepts unique to rust, like the use of traits. but i figured it out, so i can tick another language of my to-try list. i also implemented a version in python for comparison: the python version is more concise and easier to read but the rust version runs about × faster. first we include the std::env “crate” which will let us get access to commandline arguments, and define some useful constants for later. use std::env; const m: i = ; const mask: i = b ; const factor_a: i = ; const factor_b: i = ; gen_next generates the next number for a given generator’s sequence. gen_next_picky does the same, but for the “picky” generators, only returning values that meet their criteria. fn gen_next(factor: i , current: i ) -> i { return (current * factor) % m; } fn gen_next_picky(factor: i , current: i , mult: i ) -> i { let mut next = gen_next(factor, current); while next % mult != { next = gen_next(factor, next); } return next; } duel runs a single duel, and returns the number of times the generators agreed in the lowest bits (found by doing a binary & with the mask defined above). rust allows functions to be passed as parameters, so we use this to be able to run both versions of the duel using only this one function. fn duel<f, g>(n: i , next_a: f, mut value_a: i , next_b: g, mut value_b: i ) -> i where f: fn(i ) -> i , g: fn(i ) -> i , { let mut count = ; for _ in ..n { value_a = next_a(value_a); value_b = next_b(value_b); if (value_a & mask) == (value_b & mask) { count += ; } } return count; } finally, we read the start values from the command line and run the two duels. the expressions that begin |n| are closures (anonymous functions, often called lambdas in other languages) that we use to specify the generator functions for each duel. fn main() { let args: vec<string> = env::args().collect(); let start_a: i = args[ ].parse().unwrap(); let start_b: i = args[ ].parse().unwrap(); println!( &# ;duel : {}&# ;, duel( , |n| gen_next(factor_a, n), start_a, |n| gen_next(factor_b, n), start_b, ) ); println!( &# ;duel : {}&# ;, duel( , |n| gen_next_picky(factor_a, n, ), start_a, |n| gen_next_picky(factor_b, n, ), start_b, ) ); } disk defragmentation — haskell — #adventofcode day today’s challenge has us helping a disk defragmentation program by identifying contiguous regions of used sectors on a d disk. → full code on github !!! commentary wow, today’s challenge had a pretty steep learning curve. day was the first to directly reuse code from a previous day: the “knot hash” from day . i solved day in haskell, so i thought it would be easier to stick with haskell for today as well. the first part was straightforward, but the second was pretty mind-bending in a pure functional language! i ended up solving it by implementing a [flood fill algorithm][flood]. it's recursive, which is right in haskell's wheelhouse, but i ended up using `data.sequence` instead of the standard list type as its api for indexing is better. i haven't tried it, but i think it will also be a little faster than a naive list-based version. it took a looong time to figure everything out, but i had a day off work to be able to concentrate on it! a lot more imports for this solution, as we’re exercising a lot more of the standard library. module main where import prelude hiding (length, filter, take) import data.char (ord) import data.sequence import data.foldable hiding (length) import data.ix (inrange) import data.function ((&)) import data.maybe (fromjust, mapmaybe, isjust) import qualified data.set as set import text.printf (printf) import system.environment (getargs) also we’ll extract the key bits from day into a module and import that. import knothash now we define a few data types to make the code a bit more readable. sector represent the state of a particular disk sector, either free, used (but unmarked) or used and marked as belonging to a given integer-labelled group. grid is a d matrix of sector, as a sequence of sequences. data sector = free | used | mark int deriving (eq) instance show sector where show free = &# ; .&# ; show used = &# ; #&# ; show (mark i) = printf &# ;% d&# ; i type gridrow = seq sector type grid = seq (gridrow) some utility functions to make it easier to view the grids (which can be quite large): used for debugging but not in the finished solution. subgrid :: int -> grid -> grid subgrid n = fmap (take n) . take n printrow :: gridrow -> io () printrow row = do mapm_ (putstr . show) row putstr &# ;\n&# ; printgrid :: grid -> io () printgrid = mapm_ printrow makekey generates the hash key for a given row. makekey :: string -> int -> string makekey input n = input ++ &# ;-&# ; ++ show n stringtogridrow converts a binary string of ‘ ’ and ‘ ’ characters to a sequence of sector values. stringtogridrow :: string -> gridrow stringtogridrow = fromlist . map convert where convert x | x == &# ; &# ; = used | x == &# ; &# ; = free makerow and makegrid build up the grid to use based on the provided input string. makerow :: string -> int -> gridrow makerow input n = stringtogridrow $ concatmap (printf &# ;% b&# ;) $ dense $ fullknothash $ map ord $ makekey input n makegrid :: string -> grid makegrid input = fromlist $ map (makerow input) [ .. ] utility functions to count the number of used and free sectors, to give the solution to part . countequal :: sector -> grid -> int countequal x = sum . fmap (length . filter (==x)) countused = countequal used countfree = countequal free now the real meat begins! fundunmarked finds the location of the next used sector that we haven’t yet marked. it returns a maybe value, which is just (x, y) if there is still an unmarked block or nothing if there’s nothing left to mark. findunmarked :: grid -> maybe (int, int) findunmarked g | y == nothing = nothing | otherwise = just (fromjust x, fromjust y) where hasunmarked row = isjust $ elemindexl used row x = findindexl hasunmarked g y = case x of nothing -> nothing just x&# ; -> elemindexl used $ index g x&# ; floodfill implements a very simple recursive flood fill. it takes a target and replacement value and a starting location, and fills in the replacement value for every connected location that currently has the target value. we use it below to replace a connected used region with a marked region. floodfill :: sector -> sector -> (int, int) -> grid -> grid floodfill t r (x, y) g | inrange ( , length g - ) x && inrange ( , length g - ) y && elem == t = let newrow = update y r row newgrid = update x newrow g in newgrid & floodfill t r (x+ , y) & floodfill t r (x- , y) & floodfill t r (x, y+ ) & floodfill t r (x, y- ) | otherwise = g where row = g `index` x elem = row `index` y marknextgroup looks for an unmarked group and marks it if found. if no more groups are found it returns nothing. markallgroups then repeatedly applies marknextgroup until nothing is returned. marknextgroup :: int -> grid -> maybe grid marknextgroup i g = case findunmarked g of nothing -> nothing just loc -> just $ floodfill used (mark i) loc g markallgroups :: grid -> grid markallgroups g = markallgroups&# ; g where markallgroups&# ; i g = case marknextgroup i g of nothing -> g just g&# ; -> markallgroups&# ; (i+ ) g&# ; onlymarks filters a grid row and returns a list of (possibly duplicated) group numbers in the row. onlymarks :: gridrow -> [int] onlymarks = mapmaybe getmark . tolist where getmark free = nothing getmark used = nothing getmark (mark i) = just i finally, countgroups puts all the group numbers into a set to get rid of duplicates and returns the size of the set, i.e. the total number of separate groups. countgroups :: grid -> int countgroups g = set.size groupset where groupset = foldl&# ; set.union set.empty $ fmap rowtoset g rowtoset = set.fromlist . tolist . onlymarks as always, every haskell program needs a main function to drive the i/o and produce the actual result. main = do input <- fmap head getargs let grid = makegrid input used = countused grid marked = countgroups $ markallgroups grid putstrln $ &# ;used sectors: &# ; ++ show used putstrln $ &# ;groups: &# ; ++ show marked packet scanners — haskell — #adventofcode day today’s challenge requires us to sneak past a firewall made up of a series of scanners. → full code on github !!! commentary i wasn’t really thinking straight when i solved this challenge. i got a solution without too much trouble, but i ended up simulating the step-by-step movement of the scanners. i finally realised that i could calculate whether or not a given scanner was safe at a given time directly with modular arithmetic, and it bugged me so much that i reimplemented the solution. both are given below, the faster one first. first we introduce some standard library stuff and define some useful utilities. module main where import qualified data.text as t import data.maybe (mapmaybe) strip :: string -> string strip = t.unpack . t.strip . t.pack spliton :: string -> string -> [string] spliton sep = map t.unpack . t.spliton (t.pack sep) . t.pack parsescanner :: string -> (int, int) parsescanner s = (d, r) where [d, r] = map read $ spliton &# ;: &# ; s traversefw does all the hard work: it checks for each scanner whether or not it’s safe as we pass through, and returns a list of the severities of each time we’re caught. mapmaybe is like the standard map in many languages, but operates on a list of haskell maybe values, like a combined map and filter. if the value is just x, x gets included in the returned list; if the value is nothing, then it gets thrown away. traversefw :: int -> [(int, int)] -> [int] traversefw delay = mapmaybe caught where caught (d, r) = if (d + delay) `mod` ( *(r- )) == then just (d * r) else nothing then the total severity of our passage through the firewall is simply the sum of each individual severity. severity :: [(int, int)] -> int severity = sum . traversefw but we don’t want to know how badly we got caught, we want to know how long to wait before setting off to get through safely. finddelay tries traversing the firewall with increasing delay, and returns the delay for the first pass where we predict not getting caught. finddelay :: [(int, int)] -> int finddelay scanners = head $ filter (null . flip traversefw scanners) [ ..] and finally, we put it all together and calculate and print the result. main = do scanners <- fmap (map parsescanner . lines) getcontents putstrln $ &# ;severity: &# ; ++ (show $ severity scanners) putstrln $ &# ;delay: &# ; ++ (show $ finddelay scanners) i’m not generally bothered about performance for these challenges, but here i’ll note that my second attempt runs in a little under seconds on my laptop: $ time ./ -packet-scanners-redux < -input.txt severity: delay: ./ -packet-scanners-redux < -input.txt . s user . s system % cpu . total compare that with the first, simulation-based one, which takes nearly a full minute: $ time ./ -packet-scanners < -input.txt severity: delay: ./ -packet-scanners < -input.txt . s user . s system % cpu . total and for good measure, here’s the code. notice the tick and tickone functions, which together simulate moving all the scanners by one step; for this to work we have to track the full current state of each scanner, which is easier to read with a haskell record-based custom data type. traversefw is more complicated because it has to drive the simulation, but the rest of the code is mostly the same. module main where import qualified data.text as t import control.monad (form_) data scanner = scanner { depth :: int , range :: int , pos :: int , dir :: int } instance show scanner where show (scanner d r p dir) = show d ++ &# ;/&# ; ++ show r ++ &# ;/&# ; ++ show p ++ &# ;/&# ; ++ show dir strip :: string -> string strip = t.unpack . t.strip . t.pack spliton :: string -> string -> [string] spliton sep str = map t.unpack $ t.spliton (t.pack sep) $ t.pack str parsescanner :: string -> scanner parsescanner s = scanner d r where [d, r] = map read $ spliton &# ;: &# ; s tickone :: scanner -> scanner tickone (scanner depth range pos dir) | pos <= = scanner depth range (pos+ ) | pos >= range - = scanner depth range (pos- ) (- ) | otherwise = scanner depth range (pos+dir) dir tick :: [scanner] -> [scanner] tick = map tickone traversefw :: [scanner] -> [(int, int)] traversefw = traversefw&# ; where traversefw&# ; _ [] = [] traversefw&# ; layer scanners@((scanner depth range pos _):rest) -- | layer == depth && pos == = (depth*range) + (traversefw&# ; (layer+ ) $ tick rest) | layer == depth && pos == = (depth,range) : (traversefw&# ; (layer+ ) $ tick rest) | layer == depth && pos /= = traversefw&# ; (layer+ ) $ tick rest | otherwise = traversefw&# ; (layer+ ) $ tick scanners severity :: [scanner] -> int severity = sum . map (uncurry (*)) . traversefw empty :: [a] -> bool empty [] = true empty _ = false finddelay :: [scanner] -> int finddelay scanners = delay where (delay, _) = head $ filter (empty . traversefw . snd) $ zip [ ..] $ iterate tick scanners main = do scanners <- fmap (map parsescanner . lines) getcontents putstrln $ &# ;severity: &# ; ++ (show $ severity scanners) putstrln $ &# ;delay: &# ; ++ (show $ finddelay scanners) digital plumber — python — #adventofcode day today’s challenge has us helping a village of programs who are unable to communicate. we have a list of the the communication channels between their houses, and need to sort them out into groups such that we know that each program can communicate with others in its own group but not any others. then we have to calculate the size of the group containing program and the total number of groups. → full code on github !!! commentary this is one of those problems where i’m pretty sure that my algorithm isn’t close to being the most efficient, but it definitely works! for the sake of solving the challenge that’s all that matters, but it still bugs me. by now i’ve become used to using fileinput to transparently read data either from files given on the command-line or standard input if no arguments are given. import fileinput as fi first we make an initial pass through the input data, creating a group for each line representing the programs on that line (which can communicate with each other). we store this as a python set. groups = [] for line in fi.input(): head, rest = line.split(&# ; <-> &# ;) group = set([int(head)]) group.update([int(x) for x in rest.split(&# ;, &# ;)]) groups.append(group) now we iterate through the groups, starting with the first, and merging any we find that overlap with our current group. i = while i < len(groups): current = groups[i] each pass through the groups brings more programs into the current group, so we have to go through and check their connections too. we make several merge passes, until we detect that no more merges took place. num_groups = len(groups) + while num_groups > len(groups): j = i+ num_groups = len(groups) this inner loop does the actual merging, and deletes each group as it’s merged in. while j < len(groups): if len(current & groups[j]) > : current.update(groups[j]) del groups[j] else: j += i += all that’s left to do now is to display the results. print(&# ;number in group :&# ;, len([g for g in groups if in g][ ])) print(&# ;number of groups:&# ;, len(groups)) hex ed — python — #adventofcode day today’s challenge is to help a program find its child process, which has become lost on a hexagonal grid. we need to follow the path taken by the child (given as input) and calculate the distance it is from home along with the furthest distance it has been at any point along the path. → full code on github !!! commentary i found this one quite interesting in that it was very quick to solve. in fact, i got lucky and my first quick implementation (max(abs(l)) below) gave the correct answer in spite of missing an obvious not-so-edge case. thinking about it, there’s only a ⅓ chance that the first incorrect implementation would give the wrong answer! the code is shorter, so you get more words today. ☺ there are a number of different co-ordinate systems on a hexagonal grid (i discovered while reading up after solving it…). i intuitively went for the system known as ‘axial’ coordinates, where you pick two directions aligned to the grid as your x and y axes: note that these won’t be perpendicular. i chose ne/sw as the x axis and se/nw as y, but there are three other possible choices. that leads to the following definition for the directions, encoded as numpy arrays because that makes some of the code below neater. import numpy as np steps = {d: np.array(v) for d, v in [(&# ;ne&# ;, ( , )), (&# ;se&# ;, ( , - )), (&# ;s&# ;, (- , - )), (&# ;sw&# ;, (- , )), (&# ;nw&# ;, ( , )), (&# ;n&# ;, ( , ))]} hex_grid_dist, given a location l calculates the number of steps needed to reach that location from the centre at ( , ). notice that we can’t simply use the manhattan distance here because, for example, one step north takes us to ( , ), which would give a manhattan distance of . instead, we can see that moving in the n/s direction allows us to increment or decrement both coordinates at the same time: if the coordinates have the same sign: move n/s until one of them is zero, then move along the relevant ne or se axis back to the origin; in this case the number of steps is greatest of the absolute values of the two coordinates if the coordinates have opposite signs: move independently along the ne and se axes to reduce each to ; this time the number of steps is the sum of the absolute values of the two coordinates def hex_grid_distance(l): if sum(np.sign(l)) == : # i.e. opposite signs return sum(abs(l)) else: return max(abs(l)) now we can read in the path followed by the child and follow it ourselves, tracking the maximum distance from home along the way. path = input().strip().split(&# ;,&# ;) location = np.array(( , )) max_distance = for step in map(steps.get, path): location += step max_distance = max(max_distance, hex_grid_distance(location)) distance = hex_grid_distance(location) print(&# ;child process is at&# ;, location, &# ;which is&# ;, distance, &# ;steps away&# ;) print(&# ;greatest distance was&# ;, max_distance) knot hash — haskell — #adventofcode day today’s challenge asks us to help a group of programs implement a (highly questionable) hashing algorithm that involves repeatedly reversing parts of a list of numbers. → full code on github !!! commentary i went with haskell again today, because it’s the weekend so i have a bit more time, and i really enjoyed yesterday’s haskell implementation. today gave me the opportunity to explore the standard library a bit more, as well as lending itself nicely to being decomposed into smaller parts to be combined using higher-order functions. you know the drill by know: import stuff we’ll use later. module main where import data.char (ord) import data.bits (xor) import data.function ((&)) import data.list (unfoldr) import text.printf (printf) import qualified data.text as t the worked example uses a concept of the “current position” as a pointer to a location in a static list. in haskell it makes more sense to instead use the front of the list as the current position, and rotate the whole list as we progress to bring the right element to the front. rotate :: int -> [int] -> [int] rotate xs = xs rotate n xs = drop n&# ; xs ++ take n&# ; xs where n&# ; = n `mod` length xs the simple version of the hash requires working through the input list, modifying the working list as we go, and incrementing a “skip” counter with each step. converting this to a functional style, we simply zip up the input with an infinite list [ , , , , ...] to give the counter values. notice that we also have to calculate how far to rotate the working list to get back to its original position. foldl lets us specify a function that returns a modified version of the working list and feeds the input list in one at a time. simpleknothash :: int -> [int] -> [int] simpleknothash size input = foldl step [ ..size- ] input&# ; & rotate (negate finalpos) where input&# ; = zip input [ ..] finalpos = sum $ zipwith (+) input [ ..] reversepart xs n = (reverse $ take n xs) ++ drop n xs step xs (n, skip) = reversepart xs n & rotate (n+skip) the full version of the hash (part of the challenge) starts the same way as the simple version, except making passes instead of one: we can do this by using replicate to make a list of copies, then collapse that into a single list with concat. fullknothash :: int -> [int] -> [int] fullknothash size input = simpleknothash size input&# ; where input&# ; = concat $ replicate input the next step in calculating the full hash collapses the full -element “sparse” hash down into elements by xoring groups of together. unfoldr is a nice efficient way of doing this. dense :: [int] -> [int] dense = unfoldr dense&# ; where dense&# ; [] = nothing dense&# ; xs = just (foldl xor $ take xs, drop xs) the final hash step is to convert the list of integers into a hexadecimal string. hexify :: [int] -> string hexify = concatmap (printf &# ;% x&# ;) these two utility functions put together building blocks from the data.text module to parse the input string. note that no arguments are given: the functions are defined purely by composing other functions using the . operator. in haskell this is referred to as “point-free” style. strip :: string -> string strip = t.unpack . t.strip . t.pack parseinput :: string -> [int] parseinput = map (read . t.unpack) . t.spliton (t.singleton &# ;,&# ;) . t.pack now we can put it all together, including building the weird input for the “full” hash. main = do input <- fmap strip getcontents let simpleinput = parseinput input asciiinput = map ord input ++ [ , , , , ] (a:b:_) = simpleknothash simpleinput print $ (a*b) putstrln $ fullknothash asciiinput & dense & hexify stream processing — haskell — #adventofcode day in today’s challenge we come across a stream that we need to cross. but of course, because we’re stuck inside a computer, it’s not water but data flowing past. the stream is too dangerous to cross until we’ve removed all the garbage, and to prove we can do that we have to calculate a score for the valid data “groups” and the number of garbage characters to remove. → full code on github !!! commentary one of my goals for this process was to knock the rust of my functional programming skills in haskell, and i haven’t done that for the whole of the first week. processing strings character by character and acting according to which character shows up seems like a good choice for pattern-matching though, so here we go. i also wanted to take a bash at test-driven development in haskell, so i also loaded up the test.hspec module to give it a try. i did find keeping track of all the state in arguments a bit mind boggling, and i think it could have been improved through use of a data type using record syntax and the `state` monad, so that's something to look at for a future challenge. first import the extra bits we’ll need. module main where import test.hspec import data.function ((&)) countgroups solves the first part of the problem, counting up the “score” of the valid data in the stream. countgroups' is an auxiliary function that holds some state in its arguments. we use pattern matching for the base case: [] represents the empty list in haskell, which indicates we’ve finished the whole stream. otherwise, we split the remaining stream into its first character and remainder, and use guards to decide how to interpret it. if skip is true, discard the character and carry on with skip set back to false. if we find a “!”, that tells us to skip the next. other characters mark groups or sets of garbage: groups increase the score when they close and garbage is discarded. we continue to progress the list by recursing with the remainder of the stream and any updated state. countgroups :: string -> int countgroups = countgroups&# ; false false where countgroups&# ; score _ _ _ [] = score countgroups&# ; score level garbage skip (c:rest) | skip = countgroups&# ; score level garbage false rest | c == &# ;!&# ; = countgroups&# ; score level garbage true rest | garbage = case c of &# ;>&# ; -> countgroups&# ; score level false false rest _ -> countgroups&# ; score level true false rest | otherwise = case c of &# ;{&# ; -> countgroups&# ; score (level+ ) false false rest &# ;}&# ; -> countgroups&# ; (score+level) (level- ) false false rest &# ;,&# ; -> countgroups&# ; score level false false rest &# ;<&# ; -> countgroups&# ; score level true false rest c -> error $ &# ;garbage character found outside garbage: &# ; ++ show c countgarbage works almost identically to countgroups, except it ignores groups and counts garbage. they are structured so similarly that it would probably make more sense to combine them to a single function that returns both counts. countgarbage :: string -> int countgarbage = countgarbage&# ; false false where countgarbage&# ; count _ _ [] = count countgarbage&# ; count garbage skip (c:rest) | skip = countgarbage&# ; count garbage false rest | c == &# ;!&# ; = countgarbage&# ; count garbage true rest | garbage = case c of &# ;>&# ; -> countgarbage&# ; count false false rest _ -> countgarbage&# ; (count+ ) true false rest | otherwise = case c of &# ;<&# ; -> countgarbage&# ; count true false rest _ -> countgarbage&# ; count false false rest hspec gives us a domain-specific language heavily inspired by the rspec library for ruby: the tests read almost like natural language. i built up these tests one-by-one, gradually implementing the appropriate bits of the functions above, a process known as test-driven development. runtests = hspec $ do describe &# ;countgroups&# ; $ do it &# ;counts valid groups&# ; $ do countgroups &# ;{}&# ; `shouldbe` countgroups &# ;{{{}}}&# ; `shouldbe` countgroups &# ;{{{},{},{{}}}}&# ; `shouldbe` countgroups &# ;{{},{}}&# ; `shouldbe` it &# ;ignores garbage&# ; $ do countgroups &# ;{<a>,<a>,<a>,<a>}&# ; `shouldbe` countgroups &# ;{{<ab>},{<ab>},{<ab>},{<ab>}}&# ; `shouldbe` it &# ;skips marked characters&# ; $ do countgroups &# ;{{<!!>},{<!!>},{<!!>},{<!!>}}&# ; `shouldbe` countgroups &# ;{{<a!>},{<a!>},{<a!>},{<ab>}}&# ; `shouldbe` describe &# ;countgarbage&# ; $ do it &# ;counts garbage characters&# ; $ do countgarbage &# ;<>&# ; `shouldbe` countgarbage &# ;<random characters>&# ; `shouldbe` countgarbage &# ;<<<<>&# ; `shouldbe` it &# ;ignores non-garbage&# ; $ do countgarbage &# ;{{},{}}&# ; `shouldbe` countgarbage &# ;{{<ab>},{<ab>},{<ab>},{<ab>}}&# ; `shouldbe` it &# ;skips marked characters&# ; $ do countgarbage &# ;<{!>}>&# ; `shouldbe` countgarbage &# ;<!!>&# ; `shouldbe` countgarbage &# ;<!!!>&# ; `shouldbe` countgarbage &# ;<{o\&# ;i!a,<{i<a>&# ; `shouldbe` finally, the main function reads in the challenge input and calculates the answers, printing them on standard output. main = do runtests repeat &# ;=&# ; & take & putstrln input <- getcontents & fmap (filter (/=&# ;\n&# ;)) putstrln $ &# ;found &# ; ++ show (countgroups input) ++ &# ; groups&# ; putstrln $ &# ;found &# ; ++ show (countgarbage input) ++ &# ; characters garbage&# ; i heard you like registers — python — #adventofcode day today’s challenge describes a simple instruction set for a cpu, incrementing and decrementing values in registers according to simple conditions. we have to interpret a stream of these instructions, and to prove that we’ve done so, give the highest value of any register, both at the end of the program and throughout the whole program. → full code on github !!! commentary this turned out to be a nice straightforward one to implement, as the instruction format was easily parsed by regular expression, and python provides the eval function which made evaluating the conditions a doddle. import various standard library bits that we’ll use later. import re import fileinput as fi from math import inf from collections import defaultdict we could just parse the instructions by splitting the string, but using a regular expression is a little bit more robust because it won’t match at all if given an invalid instruction. instruction_re = re.compile(r&# ;(\w+) (inc|dec) (-?\d+) if (.+)\s*&# ;) def parse_instruction(instruction): match = instruction_re.match(instruction) return match.group( , , , ) executing an instruction simply checks the condition and if it evaluates to true updates the relevant register. def exec_instruction(registers, instruction): name, op, value, cond = instruction value = int(value) if op == &# ;dec&# ;: value = -value if eval(cond, globals(), registers): registers[name] += value highest_value returns the maximum value found in any register. def highest_value(registers): return sorted(registers.items(), key=lambda x: x[ ], reverse=true)[ ][ ] finally, loop through all the instructions and carry them out, updating global_max as we go. we need to be able to deal with registers that haven’t been accessed before. keeping the registers in a dictionary means that we can evaluate the conditions directly using eval above, passing it as the locals argument. the standard dict will raise an exception if we try to access a key that doesn’t exist, so instead we use collections.defaultdict, which allows us to specify what the default value for a non-existent key will be. new registers start at , so we use a simple lambda to define a function that always returns . global_max = -inf registers = defaultdict(lambda: ) for i in map(parse_instruction, fi.input()): exec_instruction(registers, i) global_max = max(global_max, highest_value(registers)) print(&# ;max value:&# ;, highest_value(registers)) print(&# ;all-time max:&# ;, global_max) recursive circus — ruby — #adventofcode day today’s challenge introduces a set of processes balancing precariously on top of each other. we find them stuck and unable to get down because one of the processes is the wrong size, unbalancing the whole circus. our job is to figure out the root from the input and then find the correct weight for the single incorrect process. → full code on github !!! commentary so i didn’t really intend to take a full polyglot approach to advent of code, but it turns out to have been quite fun, so i made a shortlist of languages to try. building a tree is a classic application for object-orientation using a class to represent tree nodes, and i’ve always liked the feel of ruby’s class syntax, so i gave it a go. first make sure we have access to set, which we’ll use later. require &# ;set&# ; now to define the circusnode class, which represents nodes in the tree. attr :s automatically creates a function s that returns the value of the instance attribute @s class circusnode attr :name, :weight def initialize(name, weight, children=nil) @name = name @weight = weight @children = children || [] end add a << operator (the same syntax for adding items to a list) that adds a child to this node. def <<(c) @children << c @total_weight = nil end total_weight recursively calculates the weight of this node and everything above it. the @total_weight ||= blah idiom caches the value so we only calculate it once. def total_weight @total_weight ||= @weight + @children.map {|c| c.total_weight}.sum end balance_weight does the hard work of figuring out the proper weight for the incorrect node by recursively searching through the tree. def balance_weight(target=nil) by_weight = hash.new{|h, k| h[k] = []} @children.each{|c| by_weight[c.total_weight] << c} if by_weight.size == then if target return @weight - (total_weight - target) else raise argumenterror, &# ;this tree seems balanced!&# ; end else odd_one_out = by_weight.select {|k, v| v.length == }.first[ ][ ] child_target = by_weight.select {|k, v| v.length > }.first[ ] return odd_one_out.balance_weight child_target end end a couple of utility functions for displaying trees finish off the class. def to_s &# ;#{@name} (#{@weight})&# ; end def print_tree(n= ) puts &# ;#{&# ; &# ;*n}#{self} -> #{self.total_weight}&# ; @children.each do |child| child.print_tree n+ end end end build_circus takes input as a list of lists [name, weight, children]. we make two passes over this list, first creating all the nodes, then building the tree by adding children to parents. def build_circus(data) all_nodes = {} all_children = set.new data.each do |name, weight, children| all_nodes[name] = circusnode.new name, weight end data.each do |name, weight, children| children.each {|child| all_nodes[name] << all_nodes[child]} all_children.merge children end root_name = (all_nodes.keys.to_set - all_children).first return all_nodes[root_name] end finally, build the tree and solve the problem! note that we use string.to_sym to convert the node names to symbols (written in ruby as :symbol), because they’re faster to work with in hashes and sets as we do above. data = readlines.map do |line| match = /(?<parent>\w+) \((?<weight>\d+)\)(?: -> (?<children>.*))?/.match line [match[&# ;parent&# ;].to_sym, match[&# ;weight&# ;].to_i, match[&# ;children&# ;] ? match[&# ;children&# ;].split(&# ;, &# ;).map {|x| x.to_sym} : []] end root = build_circus data puts &# ;root node: #{root}&# ; puts root.balance_weight memory reallocation — python — #adventofcode day today’s challenge asks us to follow a recipe for redistributing objects in memory that bears a striking resemblance to the rules of the african game mancala. → full code on github !!! commentary when i was doing my msci, one of our programming exercises was to write (in haskell, iirc) a program to play a mancala variant called oware, so this had a nice ring of nostalgia. back to python today: it's already become clear that it's by far my most fluent language, which makes sense as it's the only one i've used consistently since my schooldays. i'm a bit behind on the blog posts, so you get this one without any explanation, for now at least! import math def reallocate(mem): max_val = -math.inf size = len(mem) for i, x in enumerate(mem): if x > max_val: max_val = x max_index = i i = max_index mem[i] = remaining = max_val while remaining > : i = (i + ) % size mem[i] += remaining -= return mem def detect_cycle(mem): mem = list(mem) steps = prev_states = {} while tuple(mem) not in prev_states: prev_states[tuple(mem)] = steps steps += mem = reallocate(mem) return (steps, steps - prev_states[tuple(mem)]) initial_state = map(int, input().split()) print(&# ;initial state is &# ;, initial_state) steps, cycle = detect_cycle(initial_state) print(&# ;steps to cycle: &# ;, steps) print(&# ;steps in cycle: &# ;, cycle) a maze of twisty trampolines — c++ — #adventofcode day today’s challenge has us attempting to help the cpu escape from a maze of instructions. it’s not quite a turing machine, but it has that feeling of moving a read/write head up and down a tape acting on and changing the data found there. → full code on github !!! commentary i haven’t written anything in c++ for over a decade. it sounds like there have been lots of interesting developments in the language since then, with c++ , c++ and the freshly finalised c++ standards (built-in parallelism in the stl!). i won’t use any of those, but i thought i’d dust off my c++ and see what happened. thankfully the standard template library classes still did what i expected! as usual, we first include the parts of the standard library we’re going to use: iostream for input & output; vector for the container. we also declare that we’re using the std namespace, so that we don’t have to prepend vector and the other classes with std::. #include <iostream> #include <vector> using namespace std; steps_to_escape_part implements part of the challenge: we read a location, move forward/backward by the number of steps given in that location, then add one to the location before repeating. the result is the number of steps we take before jumping outside the list. int steps_to_escape_part (vector<int>& instructions) { int pos = , iterations = , new_pos; while (pos < instructions.size()) { new_pos = pos + instructions[pos]; instructions[pos]++; pos = new_pos; iterations++; } return iterations; } steps_to_escape_part solves part , which is very similar, except that an offset greater than is decremented instead of incremented before moving on. int steps_to_escape_part (vector<int>& instructions) { int pos = , iterations = , new_pos, offset; while (pos < instructions.size()) { offset = instructions[pos]; new_pos = pos + offset; instructions[pos] += offset >= ? - : ; pos = new_pos; iterations++; } return iterations; } finally we pull it all together and link it up to the input. int main() { vector<int> instructions , instructions ; int n; the cin class lets us read data from standard input, which we then add to a vector of ints to give our list of instructions. while (true) { cin >> n; if (cin.eof()) break; instructions .push_back(n); } solving the problem modifies the input, so we need to take a copy to solve part as well. thankfully the stl makes this easy with iterators. instructions .insert(instructions .begin(), instructions .begin(), instructions .end()); finally, compute the result and print it on standard output. cout << steps_to_escape_part (instructions ) << endl; cout << steps_to_escape_part (instructions ) << endl; return ; } high entropy passphrases — python — #adventofcode day today’s challenge describes some simple rules supposedly intended to enforce the use of secure passwords. all we have to do is test a list of passphrase and identify which ones meet the rules. → full code on github !!! commentary fearing that today might be as time-consuming as yesterday, i returned to python and it’s hugely powerful “batteries-included” standard library. thankfully this challenge was more straightforward, and i actually finished this before finishing day . first, let’s import two useful utilities. from fileinput import input from collections import counter part requires simply that a passphrase contains no repeated words. no problem: we split the passphrase into words and count them, and check if any was present more than once. counter is an amazingly useful class to have in a language’s standard library. all it does is count things: you add objects to it, and then it will tell you how many of a given object you have. we’re going to use it to count those potentially duplicated words. def is_valid(passphrase): counter = counter(passphrase.split()) return counter.most_common( )[ ][ ] == part requires that no word in the passphrase be an anagram of any other word. since we don’t need to do anything else with the words afterwards, we can check for anagrams by sorting the letters in each word: “leaf” and “flea” both become “aefl” and can be compared directly. then we count as before. def is_valid_ana(passphrase): counter = counter(&# ;&# ;.join(sorted(word)) for word in passphrase.split()) return counter.most_common( )[ ][ ] == finally we pull everything together. sum(map(boolean_func, list)) is a common idiom in python for counting the number of times a condition (checked by boolean_func) is true. in python, true and false can be treated as the numbers and respectively, so that summing a list of boolean values gives you the number of true values in the list. lines = list(input()) print(sum(map(is_valid, lines))) print(sum(map(is_valid_ana, lines))) spiral memory — go — #adventofcode day today’s challenge requires us to perform some calculations on an “experimental memory layout”, with cells moving outwards from the centre of a square spiral (squiral?). → full code on github !!! commentary i’ve been wanting to try my hand at go, the memory-safe, statically typed compiled language from google for a while. today’s challenge seemed a bit more mathematical in nature, meaning that i wouldn’t need too many advanced language features or knowledge of a standard library, so i thought i’d give it a “go”. it might have been my imagination, but it was impressive how quickly the compiled program chomped through different input values while i was debugging. i actually spent far too long on this problem because my brain led me down a blind alley trying to do the wrong calculation, but i got there in the end! the solution is a bit difficult to explain without diagrams, which i don't really have time to draw right now, but fear not because several other people have. first take a look at [the challenge itself which explains the spiral memory concept](http://adventofcode.com/ /day/ ). then look at the [nice diagrams that phil tooley made with python](http://acceleratedscience.co.uk/blog/adventofcode-day- -spiral-memory/) and hopefully you'll be able to see what's going on! it's interesting to note that this challenge also admits of an algorithmic solution instead of the mathematical one: you can model the memory as an infinite grid using a suitable data structure and literally move around it in a spiral. in hindsight this is a much better way of solving the challenge quickly because it's easier and less error-prone to code. i'm quite pleased with my maths-ing though, and it's much quicker than the algorithmic version! first some go boilerplate: we have to define the package we’re in (main, because it’s an executable we’re producing) and import the libraries we’ll use. package main import ( &# ;fmt&# ; &# ;math&# ; &# ;os&# ; ) weirdly, go doesn’t seem to have these basic mathematics functions for integers in its standard library (please someone correct me if i’m wrong!) so i’ll define them instead of mucking about with data types. go doesn’t do any implicit type conversion, even between numeric types, and the math builtin package only operates on float values. func abs(n int) int { if n < { return -n } return n } func min(x, y int) int { if x < y { return x } return y } func max(x, y int) int { if x > y { return x } return y } this does the heavy lifting for part one: converting from a position on the spiral to a column and row in the grid. ( , ) is the centre of the spiral. this actually does a bit more than is necessary to calculate the distance as required for part , but we’ll use it again for part . func spiral_to_xy(n int) (int, int) { if n == { return , } r := int(math.floor((math.sqrt(float (n- )) + ) / )) n_r := n - ( *r- )*( *r- ) o := ((n_r - ) % ( * r)) - r + sector := (n_r - ) / ( * r) switch sector { case : return r, o case : return -o, r case : return -r, -o case : return o, -r } return , } now use spiral_to_xy to calculate the manhattan distance that the value at location n in the spiral memory are carried to reach the “access port” at . func distance(n int) int { x, y := spiral_to_xy(n) return abs(x) + abs(y) } this function does the opposite of spiral_to_xy, translating a grid position back to its position on the spiral. this is the one that took me far too long to figure out because i had a brain bug and tried to calculate the value s (which sector or quarter of the spiral we’re looking at) in a way that was never going to work! fortunately i came to my senses. func xy_to_spiral(x, y int) int { if x == && y == { return } r := max(abs(x), abs(y)) var s, o, n int if x+y > && x-y >= { s = } else if x-y < && x+y >= { s = } else if x+y < && x-y <= { s = } else { s = } switch s { case : o = y case : o = -x case : o = -y case : o = x } n = o + r*( *s+ ) + ( *r- )*( *r- ) return n } this is a utility function that uses xy_to_spiral to fetch the value at a given (x, y) location, and returns zero if we haven’t filled that location yet. func get_spiral(mem []int, x, y int) int { n := xy_to_spiral(x, y) - if n < len(mem) { return mem[n] } return } finally we solve part of the problem, which involves going round the spiral writing values into it that are the sum of some values already written. the result is the first of these sums that is greater than or equal to the given input value. func stress_test(input int) int { mem := make([]int, ) n := mem[ ] = for mem[n] < input { n++ x, y := spiral_to_xy(n + ) mem = append(mem, get_spiral(mem, x+ , y)+ get_spiral(mem, x+ , y+ )+ get_spiral(mem, x, y+ )+ get_spiral(mem, x- , y+ )+ get_spiral(mem, x- , y)+ get_spiral(mem, x- , y- )+ get_spiral(mem, x, y- )+ get_spiral(mem, x+ , y- )) } return mem[n] } now the last part of the program puts it all together, reading the input value from a commandline argument and printing the results of the two parts of the challenge: func main() { var n int fmt.sscanf(os.args[ ], &# ;%d&# ;, &n) fmt.printf(&# ;input is %d\n&# ;, n) fmt.printf(&# ;distance is %d\n&# ;, distance(n)) fmt.printf(&# ;stress test result is %d\n&# ;, stress_test(n)) } corruption checksum — python — #adventofcode day today’s challenge is to calculate a rather contrived “checksum” over a grid of numbers. → full code on github !!! commentary today i went back to plain python, and i didn’t do formal tests because only one test case was given for each part of the problem. i just got stuck in. i did write part out in as nested `for` loops as an intermediate step to working out the generator expression. i think that expanded version may have been more readable. having got that far, i couldn't then work out how to finally eliminate the need for an auxiliary function entirely without either sorting the same elements multiple times or sorting each row as it's read. first we read in the input, split it and convert it to numbers. fileinput.input() returns an iterator over the lines in all the files passed as command-line arguments, or over standard input if no files are given. from fileinput import input sheet = [[int(x) for x in l.split()] for l in input()] part of the challenge calls for finding the difference between the largest and smallest number in each row, and then summing those differences: print(sum(max(x) - min(x) for x in sheet)) part is a bit more involved: for each row we have to find the unique pair of elements that divide into each other without remainder, then sum the result of those divisions. we can make it a little easier by sorting each row; then we can take each number in turn and compare it only with the numbers after it (which are guaranteed to be larger). doing this ensures we only make each comparison once. def rowsum_div(row): row = sorted(row) return sum(y // x for i, x in enumerate(row) for y in row[i+ :] if y % x == ) print(sum(map(rowsum_div, sheet))) we can make this code shorter (if not easier to read) by sorting each row as it’s read: sheet = [sorted(int(x) for x in l.split()) for l in input()] then we can just use the first and last elements in each row for part , as we know those are the smallest and largest respectively in the sorted row: print(sum(x[- ] - x[ ] for x in sheet)) part then becomes a sum over a single generator expression: print(sum(y // x for row in sheet for i, x in enumerate(row) for y in row[i+ :] if y % x == )) very satisfying! inverse captcha — coconut — #adventofcode day well, december’s here at last, and with it day of advent of code. … it goes on to explain that you may only leave by solving a captcha to prove you’re not a human. apparently, you only get one millisecond to solve the captcha: too fast for a normal human, but it feels like hours to you. … as well as posting solutions here when i can, i’ll be putting them all on https://github.com/jezcope/aoc too. !!! commentary after doing some challenges from last year in haskell for a warm up, i felt inspired to try out the functional-ish python dialect, coconut. now that i’ve done it, it feels a bit of an odd language, neither fish nor fowl. it’ll look familiar to any pythonista, but is loaded with features normally associated with functional languages, like pattern matching, destructuring assignment, partial application and function composition. that makes it quite fun to work with, as it works similarly to haskell, but because it's restricted by the basic rules of python syntax everything feels a bit more like hard work than it should. the accumulator approach feels clunky, but it's necessary to allow [tail call elimination](https://en.wikipedia.org/wiki/tail_call), which coconut will do and i wanted to see in action. lo and behold, if you take a look at the [compiled python version](https://github.com/jezcope/aoc /blob/ c bda b e db e d b be a / -inverse-captcha.py#l ) you'll see that my recursive implementation has been turned into a non-recursive `while` loop. then again, maybe i'm just jealous of phil tooley's [one-liner solution in python](https://github.com/ptooley/aocgolf/blob/ d f ccfc cfd baf d / .py#l ). import sys def inverse_captcha_(s, acc= ): case reiterable(s): match (|d, d|) :: rest: return inverse_captcha_((|d|) :: rest, acc + int(d)) match (|d , d |) :: rest: return inverse_captcha_((|d |) :: rest, acc) return acc def inverse_captcha(s) = inverse_captcha_(s :: s[ ]) def inverse_captcha_ _(s , s , acc= ): case (reiterable(s ), reiterable(s )): match ((|d |) :: rest , (|d |) :: rest ): return inverse_captcha_ _(rest , rest , acc + int(d )) match ((|d |) :: rest , (|d |) :: rest ): return inverse_captcha_ _(rest , rest , acc) return acc def inverse_captcha_ (s) = inverse_captcha_ _(s, s$[len(s)// :] :: s) def test_inverse_captcha(): assert " " |> inverse_captcha == assert " " |> inverse_captcha == assert " " |> inverse_captcha == assert " " |> inverse_captcha == def test_inverse_captcha_ (): assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == if __name__ == "__main__": sys.argv[ ] |> inverse_captcha |> print sys.argv[ ] |> inverse_captcha_ |> print advent of code : introduction it’s a common lament of mine that i don’t get to write a lot of code in my day-to-day job. i like the feeling of making something from nothing, and i often look for excuses to write bits of code, both at work and outside it. advent of code is a daily series of programming challenges for the month of december, and is about to start its third annual incarnation. i discovered it too late to take part in any serious way last year, but i’m going to give it a try this year. there are no restrictions on programming language (so of course some people delight in using esoteric languages like brainf**k), but i think i’ll probably stick with python for the most part. that said, i miss my haskell days and i’m intrigued by new kids on the block go and rust, so i might end up throwing in a few of those on some of the simpler challenges. i’d like to focus a bit more on how i solve the puzzles. they generally come in two parts, with the second part only being revealed after successful completion of the first part. with that in mind, test-driven development makes a lot of sense, because i can verify that i haven’t broken the solution to the first part in modifying to solve the second. i may also take a literate programming approach with org-mode or jupyter notebooks to document my solutions a bit more, and of course that will make it easier to publish solutions here so i’ll do that as much as i can make time for. on that note, here are some solutions for that i’ve done recently as a warmup. day : python day instructions import numpy as np import pytest as t import sys turn = { &# ;l&# ;: np.array([[ , ], [- , ]]), &# ;r&# ;: np.array([[ , - ], [ , ]]) } origin = np.array([ , ]) north = np.array([ , ]) class santa: def __init__(self, location, heading): self.location = np.array(location) self.heading = np.array(heading) self.visited = [( , )] def execute_one(self, instruction): start_loc = self.location.copy() self.heading = self.heading @ turn[instruction[ ]] self.location += self.heading * int(instruction[ :]) self.mark(start_loc, self.location) def execute_many(self, instructions): for i in instructions.split(&# ;,&# ;): self.execute_one(i.strip()) def distance_from_start(self): return sum(abs(self.location)) def mark(self, start, end): for x in range(min(start[ ], end[ ]), max(start[ ], end[ ])+ ): for y in range(min(start[ ], end[ ]), max(start[ ], end[ ])+ ): if any((x, y) != start): self.visited.append((x, y)) def find_first_crossing(self): for i in range( , len(self.visited)): for j in range(i): if self.visited[i] == self.visited[j]: return self.visited[i] def distance_to_first_crossing(self): crossing = self.find_first_crossing() if crossing is not none: return abs(crossing[ ]) + abs(crossing[ ]) def __str__(self): return f&# ;santa @ {self.location}, heading {self.heading}&# ; def test_execute_one(): s = santa(origin, north) s.execute_one(&# ;l &# ;) assert all(s.location == np.array([- , ])) assert all(s.heading == np.array([- , ])) s.execute_one(&# ;l &# ;) assert all(s.location == np.array([- , - ])) assert all(s.heading == np.array([ , - ])) s.execute_one(&# ;r &# ;) assert all(s.location == np.array([- , - ])) assert all(s.heading == np.array([- , ])) s.execute_one(&# ;r &# ;) assert all(s.location == np.array([- , ])) assert all(s.heading == np.array([ , ])) def test_execute_many(): s = santa(origin, north) s.execute_many(&# ;l , l , r &# ;) assert all(s.location == np.array([- , - ])) assert all(s.heading == np.array([- , ])) def test_distance(): assert santa(origin, north).distance_from_start() == assert santa(( , ), north).distance_from_start() == assert santa((- , ), north).distance_from_start() == def test_turn_left(): east = north @ turn[&# ;l&# ;] south = east @ turn[&# ;l&# ;] west = south @ turn[&# ;l&# ;] assert all(east == np.array([- , ])) assert all(south == np.array([ , - ])) assert all(west == np.array([ , ])) def test_turn_right(): west = north @ turn[&# ;r&# ;] south = west @ turn[&# ;r&# ;] east = south @ turn[&# ;r&# ;] assert all(east == np.array([- , ])) assert all(south == np.array([ , - ])) assert all(west == np.array([ , ])) if __name__ == &# ;__main__&# ;: instructions = sys.stdin.read() santa = santa(origin, north) santa.execute_many(instructions) print(santa) print(&# ;distance from start:&# ;, santa.distance_from_start()) print(&# ;distance to target: &# ;, santa.distance_to_first_crossing()) day : haskell day instructions module main where data pos = pos int int deriving (show) -- magrittr-style pipe operator (|>) :: a -> (a -> b) -> b x |> f = f x swappos :: pos -> pos swappos (pos x y) = pos y x clamp :: int -> int -> int -> int clamp lower upper x | x < lower = lower | x > upper = upper | otherwise = x clamph :: pos -> pos clamph (pos x y) = pos x&# ; y&# ; where y&# ; = clamp y r = abs ( - y&# ;) x&# ; = clamp r ( -r) x clampv :: pos -> pos clampv = swappos . clamph . swappos buttonforpos :: pos -> string buttonforpos (pos x y) = [buttons !! y !! x] where buttons = [&# ; d &# ;, &# ; abc &# ;, &# ; &# ;, &# ; &# ;, &# ; &# ;] decodechar :: pos -> char -> pos decodechar (pos x y) &# ;r&# ; = clamph $ pos (x+ ) y decodechar (pos x y) &# ;l&# ; = clamph $ pos (x- ) y decodechar (pos x y) &# ;u&# ; = clampv $ pos x (y+ ) decodechar (pos x y) &# ;d&# ; = clampv $ pos x (y- ) decodeline :: pos -> string -> pos decodeline p &# ;&# ; = p decodeline p (c:cs) = decodeline (decodechar p c) cs makecode :: string -> string makecode instructions = lines instructions -- split into lines |> scanl decodeline (pos ) -- decode to positions |> tail -- drop start position |> concatmap buttonforpos -- convert to buttons main = do input <- getcontents putstrln $ makecode input research data management forum , manchester !!! intro "" monday and tuesday november i’m at the research data management forum in manchester. i thought i’d use this as an opportunity to try liveblogging, so during the event some notes should appear in the box below (you may have to manually refresh your browser tab periodically to get the latest version). i've not done this before, so if the blog stops updating then it's probably because i've stopped updating it to focus on the conference instead! this was made possible using github's cool [gist](https://gist.github.com) tool. draft content policy i thought it was about time i had some sort of content policy on here so this is a first draft. it will eventually wind up as a separate page. feedback welcome! !!! aside “content policy” this blog’s primary purpose is as a reflective learning tool for my own development; my aim in writing any given post is mainly to expose and develop my own thinking on a topic. my reasons for making a public blog rather than a private journal are: . if i'm lucky, someone smarter than me will provide feedback that will help me and my readers to learn more . if i'm extra lucky, someone else might learn from the material as well each post, therefore, represents the state of my thinking at the time i wrote it, or perhaps a deliberate provocation or exaggeration; either way, if you don't know me personally please don't judge me based entirely on my past words. this is a request though, not an attempt to excuse bad behaviour on my part. i accept full responsibility for any consequences of my words, whether intended or not. i will not remove comments or ban individuals for disagreeing with me, only for behaving offensively or disrespectfully. i will do my best to be fair and balanced and explain decisions that i take, but i reserve the right to take those decisions without making any explanation at all if it seems likely to further inflame a situation. if i end up responding to anything simply with a link to this policy, that's probably all the explanation you're going to get. it should go without saying, but the opinions presented in this blog are my own and not those of my employer or anyone else i might at times represent. learning to live with anxiety !!! intro "" this is a post that i’ve been writing for months, and writing in my head for years. for some it will explain aspects of my personality that you might have wondered about. for some it will just be another person banging on self-indulgently about so-called “mental health issues”. hopefully, for some it will demystify some stuff and show that you’re not alone and things do get better. for as long as i can remember i’ve been a worrier. i’ve also suffered from bouts of what i now recognise as depression, on and off since my school days. it’s only relatively recently that i’ve come to the realisation that these two might be connected and that my ‘worrying’ might in fact be outside the normal range of healthy human behaviour and might more accurately be described as chronic anxiety. you probably won’t have noticed it, but it’s been there. more recently i’ve begun feeling like i’m getting on top of it and feeling “normal” for the first time in my life. things i’ve found that help include: getting out of the house more and socialising with friends; and getting a range of exercise, outdoors and away from the city (rock climbing is mentally and physically engaging and open water swimming is indescribably joyful). but mostly it’s the cognitive behavioural therapy (cbt) and the antidepressants. before i go any further, a word about drugs (“don’t do drugs, kids”): i’m on the lowest available dose of a common antidepressant. this isn’t because it stops me being sad all the time (i’m not) or because it makes all my problems go away (it really doesn’t). it’s because the scientific evidence points to a combination of cbt and antidepressants as being the single most effective treatment for generalised anxiety disorder. the reason for this is simple: cbt isn’t easy, because it asks you to challenge habits and beliefs you’ve held your whole life. in the short term there is going to be more anxiety and some antidepressants are also effective at blunting the effect of this additional anxiety. in short, cbt is what makes you better, and the drugs just make it a little bit more effective. a lot of people have misconceptions about what it means to be ‘in therapy’. i suspect a lot of these are derived from the psychoanalysis we often see portrayed in (primarily us) film and tv. the problem with that type of navel-gazing therapy is that you can spend years doing it, finally reach some sort of breakthrough insight, and still not have no idea what the supposed insight means for your actual life. cbt is different in that rather than addressing feelings directly it focuses on habits in your thoughts (cognitive) and actions (behavioural) with feeling better as an outcome (therapy). cbt and related forms of therapy now have decades of clinical evidence showing that they really work. it uses a wide range of techniques to identify, challenge and reduce various common unhelpful thoughts and behaviours. by choosing and practicing these, you can break bad mental habits that you’ve been carrying around, often for decades. for me this means giving fair weight to my successes as well as my failings, allowing flexibility into the rigid rules that i have always, subconsciously, lived by, and being a bit kinder to myself when i make mistakes. it’s not been easy and i have to remind myself to practice this every day, but it’s really helped. !!! aside “more info” if you live in the uk, you might not be aware that you can get cbt and other psychological therapies on the nhs through a scheme called iapt (improving access to psychological therapies). you can self-refer so you don’t need to see a doctor first, but you might want to anyway if you think medication might help. they also have a progression of treatments, so you might be offered a course of “guided self-help” and then progressed to cbt or another talking therapy if need be. this is what happened to me, and it did help a bit but it was cbt that helped me the most. becoming a librarian what is a librarian? is it someone who has a masters degree in librarianship and information science? is it someone who looks after information for other people? is it simply someone who works in a library? i’ve been grappling with this question a lot lately because i’ve worked in academic libraries for about years now and i never really thought that’s something that might happen. people keep referring to me as “a librarian” but there’s some imposter feelings here because all the librarians around me have much more experience, have skills in areas like cataloguing and collection management and, generally, have a librarian masters degree. so i’ve been thinking about what it actually means to me to be a librarian or not. nb. some of these may be tongue-in-cheek ways in which i am a librarian: i work in a library i help people to access and organise information i have a cat i like gin ways in which i am not a librarian: i don’t have a librarianship qualification i don’t work with books 😉 i don’t knit (though i can probably remember how if pressed) i don’t shush people or wear my hair in a bun (i can confirm that this is also true of every librarian i know) ways in which i am a shambrarian: i like beer i have more it experience and qualification than librarianship at the end of the day, i still don’t know how i feel about this or, for that matter, how important it is. i’m probably going to accept whatever title people around me choose to bestow, though any label will chafe at times! lean libraries: applying agile practices to library services kanban board jeff lasovski (via wikimedia commons) i’ve been working with our it services at work quite closely for the last year as product owner for our new research data portal, orda. that’s been a fascinating process for me as i’ve been able to see first-hand some of the agile techniques that i’ve been reading about from time-to-time on the web over the last few years. they’re in the process of adopting a specific set of practices going under the name “scrum”, which is fun because it uses some novel terminology that sounds pretty weird to non-it folks, like “scrum master”, “sprint” and “product backlog”. on my small project we’ve had great success with the short cycle times and been able to build trust with our stakeholders by showing concrete progress on a regular basis. modern librarianship is increasingly fluid, particularly in research services, and i think that to handle that fluidity it’s absolutely vital that we are able to work in a more agile way. i’m excited about the possibilities of some of these ideas. however, scrum as implemented by our it services doesn’t seem something that transfers directly to the work that we do: it’s too specialised for software development to adapt directly. what i intend to try is to steal some of the individual practices on an experimental basis and simply see what works and what doesn’t. the lean concepts currently popular in it were originally developed in manufacturing: if they can be translated from the production of physical goods to it, i don’t see why we can’t make the ostensibly smaller step of translating them to a different type of knowledge work. i’ve therefore started reading around this subject to try and get as many ideas as possible. i’m generally pretty rubbish at taking notes from books, so i’m going to try and record and reflect on any insights i make on this blog. the framework for trying some of these out is clearly a plan-do-check-act continuous improvement cycle, so i’ll aim to reflect on that process too. i’m sure there will have been people implementing lean in libraries already, so i’m hoping to be able to discover and learn from them instead of starting froms scratch. wish me luck! mozilla global sprint photo by lena bell on unsplash every year, the mozilla foundation runs a two-day global sprint, giving people around the world hours to work on projects supporting and promoting open culture and tech. though much of the work during the sprint is, of course, technical software development work, there are always tasks suited to a wide range of different skill sets and experience levels. the participants include writers, designers, teachers, information professionals and many others. this year, for the first time, the university of sheffield hosted a site, providing a space for local researchers, developers and others to get out of their offices, work on #mozsprint and link up with others around the world. the sheffield site was organised by the research software engineering group in collaboration with the university library. our site was only small compared to others, but we still had people working on several different projects. my reason for taking part in the sprint was to contribute to the international effort on the library carpentry project. a team spread across four continents worked throughout the whole sprint to review and develop our lesson material. as there were no other library carpentry volunteers at the sheffield site, i chose to work on some urgent work around improving the presentation of our workshops and lessons on the web and related workflows. it was a really nice subproject to work on, requiring not only cleaning up and normalising the metadata we hold on workshops and lessons, but also digesting and formalising our current ad hoc process of lesson development. the largest group were solar physicists from the school of maths and statistics, working on the sunpy project, an open source environment for solar data analysis. they pushed loads of bug fixes and documentation improvements, and also mentored a new contributor through their first additions to the project. anna krystalli from research software engineering worked on the echoburst project, which is building a web browser extension to help people break out of their online echo chambers. it does this by using natural language processing techniques to highlight well-written, logically sound articles that disagree with the reader’s stated views on particular topics of interest. anna was part of an effort to begin extending this technology to online videos. we had a couple of individuals simply taking the opportunity to break out of their normal work environments to work or learn, including a couple of members of library staff show up for a couple of hours to learn how to use git on a new project! idcc reflection for most of the last few years i&# ;ve been lucky enough to attend the international digital curation conference (idcc). one of the main audiences attending is people who, like me, work on research data management at universities around the world and it&# ;s begun to feel like a sort of &# ;home&# ; conference to me. this year, idcc was held at the royal college of surgeons in the beautiful city of edinburgh. for the last couple of years, my overall impression has been that, as a community, we&# ;re moving away from the &# ;first-order&# ; problem of trying to convince people (from phd students to senior academics) to take rdm seriously and into a rich set of &# ;second-order&# ; problems around how to do things better and widen support to more people. this year has been no exception. here are a few of my observations and takeaway points. everyone has a repository now only last year, the most common question you&# ;d get asked by strangers in the coffee break would be &# ;do you have a data repository?&# ; now the question is more likely to be &# ;what are you using for your data repository?&# ;, along with more subtle questions about specific components of systems and how they interact. integrating active storage and archival systems now that more institutions have data worth preserving, there is more interest in (and in many cases experience of) setting up more seamless integrations between active and archival storage. there are lessons here we can learn. freezing in amber vs actively maintaining assets there seemed to be an interesting debate going on throughout the conference around the aim of preservation: should we be faithfully preserving the bits and bytes provided without trying to interpret them, or should we take a more active approach by, for example, migrating obsolete formats to newer alternatives. if the former, should we attempt to preserve the software required to access the data as well? if the latter, how much effort do we invest and how do we ensure nothing is lost or altered in the migration? demonstrating data science instead of debating what it is the phrase &# ;data science&# ; was once again one of the most commonly uttered of the conference. however, there is now less abstract discussion about what, exactly, is meant by this &# ;data science&# ; thing; this has been replaced more by concrete demonstrations. this change was exemplified perfectly by the keynote by data scientist alice daish, who spent a riveting minutes or so enthusing about all the cool stuff she does with data at the british museum. recognition of software as an issue even as recently as last year, i&# ;ve struggled to drum up much interest in discussing software sustainability and preservation at events like this; the interest was there, but there were higher priorities. so i was completely taken by surprise when we ended up with + people in the software preservation birds of a feather (bof) session, and when very little input was needed from me as chair to keep a productive discussion going for a full minutes. unashamed promotion of openness as a community we seem to have nearly overthrown our collective embarrassment about the phrase &# ;open data&# ; (although maybe this is just me). we&# ;ve always known it was a good thing, but i know i&# ;ve been a bit of an apologist in the past, feeling that i had to &# ;soften the blow&# ; when asking researchers to be more open. now i feel more confident in leading with the benefits of openness, and it felt like that&# ;s a change reflected in the community more widely. becoming more involved in the conference this year, i took a decision to try and do more to contribute to the conference itself, and i felt like this was pretty successful both in making that contribution and building up my own profile a bit. i presented a paper on one of my current passions, library carpentry; it felt really good to be able to share my enthusiasm. i presented a poster on our work integrating our data repository and digital preservation platform; this gave me more of a structure for networking during breaks, as i was able to stand by the poster and start discussions with anyone who seemed interested. i chaired a parallel session; a first for me, and a different challenge from presenting or simply attending the talks. and finally, i proposed and chaired the software preservation bof session (blog post forthcoming). renewed excitement it&# ;s weird, and possibly all in my imagination, but there seemed to be more energy at this conference than at the previous couple i&# ;ve been to. more people seemed to be excited about the work we&# ;re all doing, recent achievements and the possibilities for the future. introducing pyrefine: openrefine meets python i’m knocking the rust off my programming skills by attempting to write a pure-python interpreter for openrefine “scripts”. openrefine is a great tool for exploring and cleaning datasets prior to analysing them. it also records an undo history of all actions that you can export as a sort of script in json format. one thing that bugs me though is that, having spent some time interactively cleaning up your dataset, you then need to fire up openrefine again and do some interactive mouse-clicky stuff to apply that cleaning routine to another dataset. you can at least re-import the json undo history to make that as quick as possible, but there’s no getting around the fact that there’s no quick way to do it from a cold start. there is a project, batchrefine, that extends the openrefine server to accept batch requests over a http api, but that isn’t useful when you can’t or don’t want to keep a full java stack running in the background the whole time. my concept is this: you use or to explore the data interactively and design a cleaning process, but then export the process to json and integrate it into your analysis in python. that way it can be repeated ad nauseam without having to fire up a full java stack. i’m taking some inspiration from the great talk “so you want to be a wizard?" by julia evans (@b rk), who recommends trying experiments as a way to learn. she gives these rules of programming experiments: “it doesn’t have to be good it doesn’t have to work you have to learn something” in that spirit, my main priorities are: to see if this can be done; to see how far i can get implementing it; and to learn something. if it also turns out to be a useful thing, well, that’s a bonus. some of the interesting possible challenges here: implement all core operations; there are quite a lot of these, some of which will be fun (i.e. non-trivial) to implement implement (a subset of?) grel, the general refine expression language; i guess my undergrad course on implementing parsers and compilers will come in handy after all! generate clean, sane python code from the json rather than merely executing it; more than anything, this would be a nice educational tool for users of openrefine who want to see how to do equivalent things in python selectively optimise key parts of the process; this will involve profiling the code to identify bottlenecks as well as tweaking the actual code to go faster potentially handle contributions to the code from other people; i’d be really happy if this happened but i’m realistic… if you’re interested, the project is called pyrefine and it’s on github. constructive criticism, issues & pull requests all welcome! implementing yesterbox in emacs with mu e i’ve been meaning to give yesterbox a try for a while. the general idea is that each day you only deal with email that arrived yesterday or earlier. this forms your inbox for the day, hence “yesterbox”. once you’ve emptied your yesterbox, or at least got through some minimum number ( is recommended) then you can look at emails from today. even then you only really want to be dealing with things that are absolutely urgent. anything else can wait til tomorrow. the motivation for doing this is to get away from the feeling that we are king canute, trying to hold back the tide. i find that when i’m processing my inbox toward zero there’s always a temptation to keep skipping to the new stuff that’s just come in. hiding away the new email until i’ve dealt with the old is a very interesting idea. i use mu e in emacs for reading my email, and handily the mu search syntax is very flexible so you’d think it would be easy to create a yesterbox filter: maildir:"/inbox" date:.. d unfortunately, d is interpreted as “ hours ago from right now” so this filter misses everything that was sent yesterday but less than hours ago. there was a feature request raised on the mu github repository to implement an additional date filter syntax but it seems to have died a death for now. in the meantime, the answer to this is to remember that my workplace observes fairly standard office hours, so that anything sent more than hours ago is unlikely to have been sent today. the following does the trick: maildir:"/inbox" date:.. h in my mu e bookmarks list, that looks like this: (setq mu e-bookmarks &# ;((&# ;flag:unread and not flag:trashed&# ; &# ;unread messages&# ; ?u) (&# ;flag:flagged maildir:/archive&# ; &# ;starred messages&# ; ?s) (&# ;date:today..now&# ; &# ;today&# ;s messages&# ; ?t) (&# ;date: d..now&# ; &# ;last days&# ; ?w) (&# ;maildir:\&# ;/mailing lists.*\&# ; (flag:unread or flag:flagged)&# ; &# ;unread in mailing lists&# ; ?m) (&# ;maildir:\&# ;/inbox\&# ; date:.. d&# ; &# ;yesterbox&# ; ?y))) ;; <- this is the new one rewarding good practice in research from opensource.com on flickr whenever i’m involved in a discussion about how to encourage researchers to adopt new practices, eventually someone will come out with some variant of the following phrase: “that’s all very well, but researchers will never do xyz until it’s made a criterion in hiring and promotion decisions.” with all the discussion of carrots and sticks i can see where this attitude comes from, and strongly empathise with it, but it raises two main problems: it’s unfair and more than a little insulting to anyone to be lumped into one homogeneous group; and taking all the different possible xyzs into account, that’s an awful lot of hoops to expect anyone to jump through. firstly, “researchers” are as diverse as the rest of us in terms of what gets them out of bed in the morning. some of us want prestige; some want to contribute to a greater good; some want to create new things; some just enjoy the work. one thing i’d argue we all have in common is this: nothing is more offputting than feeling like you’re being strongarmed into something you don’t want to do. if we rely on simplistic metrics, people will focus on those and miss the point. at best people will disengage and at worst they will actively game the system. i’ve got to do these ten things to get my next payrise, and still retain my sanity? ok, what’s the least i can get away with and still tick them off. you see it with students taking poorly-designed assessments and grown-ups are no difference. we do need to wield carrots as well as sticks, but the whole point is that these practices are beneficial in and of themselves. the carrots are already there if we articulate them properly and clear the roadblocks (don’t you enjoy mixed metaphors?). creating artificial benefits will just dilute the value of the real ones. secondly, i’ve heard a similar argument made for all of the following practices and more: research data management open access publishing public engagement new media (e.g. blogging) software management and sharing some researchers devote every waking hour to their work, whether it’s in the lab, writing grant applications, attending conferences, authoring papers, teaching, and so on and so on. it’s hard to see how someone with all this in their schedule can find time to exercise any of these new skills, let alone learn them in the first place. and what about the people who sensibly restrict the hours taken by work to spend more time doing things they enjoy? yes, all of the above practices are valuable, both for the individual and the community, but they’re all new (to most) and hence require more effort up front to learn. we have to accept that it’s inevitably going to take time for all of them to become “business as usual”. i think if the hiring/promotion/tenure process has any role in this, it’s in asking whether the researcher can build a coherent narrative as to why they’ve chosen to focus their efforts in this area or that. you’re not on twitter but your data is being used by research groups across the world? great! you didn’t have time to tidy up your source code for github but your work is directly impacting government policy? brilliant! we still need convince more people to do more of these beneficial things, so how? call me naïve, but maybe we should stick to making rational arguments, calming fears and providing low-risk opportunities to learn new skills. acting (compassionately) like a stuck record can help. and maybe we’ll need to scale back our expectations in other areas (journal impact factors, anyone?) to make space for the new stuff. software carpentry: sc test; does your software do what you meant? “the single most important rule of testing is to do it.” — brian kernighan and rob pike, the practice of programming (quote taken from sc test page one of the trickiest aspects of developing software is making sure that it actually does what it’s supposed to. sometimes failures are obvious: you get completely unreasonable output or even (shock!) a comprehensible error message. but failures are often more subtle. would you notice if your result was out by a few percent, or consistently ignored the first row of your input data? the solution to this is testing: take some simple example input with a known output, run the code and compare the actual output with the expected one. implement a new feature, test and repeat. sounds easy, doesn’t it? but then you implement a new bit of code. you test it and everything seems to work fine, except that your new feature required changes to existing code and those changes broke something else. so in fact you need to test everything, and do it every time you make a change. further than that, you probably want to test that all your separate bits of code work together properly (integration testing) as well as testing the individual bits separately (unit testing). in fact, splitting your tests up like that is a good way of holding on to your sanity. this is actually a lot less scary than it sounds, because there are plenty of tools now to automate that testing: you just type a simple test command and everything is verified. there are even tools that enable you to have tests run automatically when you check the code into version control, and even automatically deploy code that passes the tests, a process known as continuous integration or ci. the big problems with testing are that it’s tedious, your code seems to work without it and no-one tells you off for not doing it. at the time when the software carpentry competition was being run, the idea of testing wasn’t new, but the tools to help were in their infancy. “existing tools are obscure, hard to use, expensive, don’t actually provide much help, or all three.” the sc test category asked entrants “to design a tool, or set of tools, which will help programmers construct and maintain black box and glass box tests of software components at all levels, including functions, modules, and classes, and whole programs.” the sc test category is interesting in that the competition administrators clearly found it difficult to specify what they wanted to see in an entry. in fact, the whole category was reopened with a refined set of rules and expectations. ultimately, it’s difficult to tell whether this category made a significant difference. where the tools to write tests used to be very sparse and difficult to use they are now many and several options exist for most programming languages. with this proliferation, several tried-and-tested methodologies have emerged which are consistent across many different tools, so while things still aren’t perfect they are much better. in recent years there has been a culture shift in the wider software development community towards both testing in general and test-first development, where the tests for a new feature are written first, and then the implementation is coded incrementally until all tests pass. the current challenge is to transfer this culture shift to the academic research community! tools for collaborative markdown editing photo by alan cleaver i really love markdown . i love its simplicity; its readability; its plain-text nature. i love that it can be written and read with nothing more complicated than a text-editor. i love how nicely it plays with version control systems. i love how easy it is to convert to different formats with pandoc and how it’s become effectively the native text format for a wide range of blogging platforms. one frustration i’ve had recently, then, is that it’s surprisingly difficult to collaborate on a markdown document. there are various solutions that almost work but at best feel somehow inelegant, especially when compared with rock solid products like google docs. finally, though, we’re starting to see some real possibilities. here are some of the things i’ve tried, but i’d be keen to hear about other options. . just suck it up to be honest, google docs isn’t that bad. in fact it works really well, and has almost no learning curve for anyone who’s ever used word (i.e. practically anyone who’s used a computer since the s). when i’m working with non-technical colleagues there’s nothing i’d rather use. it still feels a bit uncomfortable though, especially the vendor lock-in. you can export a google doc to word, odt or pdf, but you need to use google docs to do that. plus as soon as i start working in a word processor i get tempted to muck around with formatting. . git(hub) the obvious solution to most techies is to set up a github repo, commit the document and go from there. this works very well for bigger documents written over a longer time, but seems a bit heavyweight for a simple one-page proposal, especially over short timescales. who wants to muck around with pull requests and merging changes for a document that’s going to take days to write tops? this type of project doesn’t need a bug tracker or a wiki or a public homepage anyway. even without github in the equation, using git for such a trivial use case seems clunky. . markdown in etherpad/google docs etherpad is great tool for collaborative editing, but suffers from two key problems: no syntax highlighting or preview for markdown (it’s just treated as simple text); and you need to find a server to host it or do it yourself. however, there’s nothing to stop you editing markdown with it. you can do the same thing in google docs, in fact, and i have. editing a fundamentally plain-text format in a word processor just feels weird though. . overleaf/authorea overleaf and authorea are two products developed to support academic editing. authorea has built-in markdown support but lacks proper simultaneous editing. overleaf has great simultaneous editing but only supports markdown by wrapping a bunch of latex boilerplate around it. both ok but unsatisfactory. . stackedit now we’re starting to get somewhere. stackedit has both markdown syntax highlighting and near-realtime preview, as well as integrating with google drive and dropbox for file synchronisation. . hackmd hackmd is one that i only came across recently, but it looks like it does exactly what i’m after: a simple markdown-aware editor with live preview that also permits simultaneous editing. i’m a little circumspect simply because i know simultaneous editing is difficult to get right, but it certainly shows promise. . classeur i discovered classeur literally today: it’s developed by the same team as stackedit (which is now apparently no longer in development), and is currently in beta, but it looks to offer two killer features: real-time collaboration, including commenting, and pandoc-powered export to loads of different formats. anything else? those are the options i’ve come up with so far, but they can’t be the only ones. is there anything i’ve missed? other plain-text formats are available. i’m also a big fan of org-mode. &#x a ;þ e; software carpentry: sc track; hunt those bugs! this competition will be an opportunity for the next wave of developers to show their skills to the world — and to companies like ours. — dick hardt, activestate (quote taken from sc track page) all code contains bugs, and all projects have features that users would like but which aren’t yet implemented. open source projects tend to get more of these as their user communities grow and start requesting improvements to the product. as your open source project grows, it becomes harder and harder to keep track of and prioritise all of these potential chunks of work. what do you do? the answer, as ever, is to make a to-do list. different projects have used different solutions, including mailing lists, forums and wikis, but fairly quickly a whole separate class of software evolved: the bug tracker, which includes such well-known examples as bugzilla, redmine and the mighty jira. bug trackers are built entirely around such requests for improvement, and typically track them through workflow stages (planning, in progress, fixed, etc.) with scope for the community to discuss and add various bits of metadata. in this way, it becomes easier both to prioritise problems against each other and to use the hive mind to find solutions. unfortunately most bug trackers are big, complicated beasts, more suited to large projects with dozens of developers and hundreds or thousands of users. clearly a project of this size is more difficult to manage and requires a certain feature set, but the result is that the average bug tracker is non-trivial to set up for a small single-developer project. the sc track category asked entrants to propose a better bug tracking system. in particular, the judges were looking for something easy to set up and configure without compromising on functionality. the winning entry was a bug-tracker called roundup, proposed by ka-ping yee. here we have another tool which is still in active use and development today. given that there is now a huge range of options available in this area, including the mighty github, this is no small achievement. these days, of course, github has become something of a de facto standard for open source project management. although ostensibly a version control hosting platform, each github repository also comes with a built-in issue tracker, which is also well-integrated with the “pull request” workflow system that allows contributors to submit bug fixes and features themselves. github’s competitors, such as gitlab and bitbucket, also include similar features. not everyone wants to work in this way though, so it’s good to see that there is still a healthy ecosystem of open source bug trackers, and that software carpentry is still having an impact. software carpentry: sc config; write once, compile anywhere nine years ago, when i first release python to the world, i distributed it with a makefile for bsd unix. the most frequent questions and suggestions i received in response to these early distributions were about building it on different unix platforms. someone pointed me to autoconf, which allowed me to create a configure script that figured out platform idiosyncracies unfortunately, autoconf is painful to use – its grouping, quoting and commenting conventions don’t match those of the target language, which makes scripts hard to write and even harder to debug. i hope that this competition comes up with a better solution — it would make porting python to new platforms a lot easier! — guido van rossum, technical director, python consortium (quote taken from sc config page) on to the next software carpentry competition category, then. one of the challenges of writing open source software is that you have to make it run on a wide range of systems over which you have no control. you don’t know what operating system any given user might be using or what libraries they have installed, or even what versions of those libraries. this means that whatever build system you use, you can’t just send the makefile (or whatever) to someone else and expect everything to go off without a hitch. for a very long time, it’s been common practice for source packages to include a configure script that, when executed, runs a bunch of tests to see what it has to work with and sets up the makefile accordingly. writing these scripts by hand is a nightmare, so tools like autoconf and automake evolved to make things a little easier. they did, and if the tests you want to use are already implemented they work very well indeed. unfortunately they’re built on an unholy combination of shell scripting and the archaic gnu m macro language. that means if you want to write new tests you need to understand both of these as well as the architecture of the tools themselves — not an easy task for the average self-taught research programmer. sc conf, then, called for a re-engineering of the autoconf concept, to make it easier for researchers to make their code available in a portable, platform-independent format. the second round configuration tool winner was sapcat, “a tool to help make software portable”. unfortunately, this one seems not to have gone anywhere, and i could only find the original proposal on the internet archive. there were a lot of good ideas in this category about making catalogues and databases of system quirks to avoid having to rerun the same expensive tests again the way a standard ./configure script does. i think one reason none of these ideas survived is that they were overly ambitions, imagining a grand architecture where their tool provide some overarching source of truth. this is in stark contrast to the way most unix-like systems work, where each tool does one very specific job well and tools are easy to combine in various ways. in the end though, i think moore’s law won out here, making it easier to do the brute-force checks each time than to try anything clever to save time — a good example of avoiding unnecessary optimisation. add to that the evolution of the generic pkg-config tool from earlier package-specific tools like gtk-config, and it’s now much easier to check for particular versions and features of common packages. on top of that, much of the day-to-day coding of a modern researcher happens in interpreted languages like python and r, which give you a fully-functioning pre-configured environment with a lot less compiling to do. as a side note, tom tromey, another of the shortlisted entrants in this category, is still a major contributor to the open source world. he still seems to be involved in the automake project, contributes a lot of code to the emacs community too and blogs sporadically at the cliffs of inanity. semantic linefeeds: one clause per line i’ve started using “semantic linefeeds”, a concept i discovered on brandon rhodes' blog, when writing content, an idea described in that article far better than i could. i turns out this is a very old idea, promoted way back in the day by brian w kernighan, contributor to the original unix system, co-creator of the awk and ampl programming languages and co-author of a lot of seminal programming textbooks including “the c programming language”. the basic idea is that you break lines at natural gaps between clauses and phrases, rather than simply after the last word before you hit characters. keeping line lengths strictly to characters isn’t really necessary in these days of wide aspect ratios for screens. breaking lines at points that make semantic sense in the sentence is really helpful for editing, especially in the context of version control, because it isolates changes to the clause in which they occur rather than just the nearest -character block. i also like it because it makes my crappy prose feel just a little bit more like poetry. ☺ software carpentry: sc build; or making a better make software tools often grow incrementally from small beginnings into elaborate artefacts. each increment makes sense, but the final edifice is a mess. make is an excellent example: a simple tool that has grown into a complex domain-specific programming language. i look forward to seeing the improvements we will get from designing the tool afresh, as a whole… — simon peyton-jones, microsoft research (quote taken from sc build page) most people who have had to compile an existing software tool will have come across the venerable make tool (which usually these days means gnu make). it allows the developer to write a declarative set of rules specifying how the final software should be built from its component parts, mostly source code, allowing the build itself to be carried out by simply typing make at the command line and hitting enter. given a set of rules, make will work out all the dependencies between components and ensure everything is built in the right order and nothing that is up-to-date is rebuilt. great in principle but make is notoriously difficult for beginners to learn, as much of the logic for how builds are actually carried out is hidden beneath the surface. this also makes it difficult to debug problems when building large projects. for these reasons, the sc build category called for a replacement build tool engineered from the ground up to solve these problems. the second round winner, sccons, is a python-based make-like build tool written by steven knight. while i could find no evidence of any of the other shortlisted entries, this project (now renamed scons) continues in active use and development to this day. i actually use this one myself from time to time and to be honest i prefer it in many cases to trendy new tools like rake or grunt and the behemoth that is apache ant. its python-based sconstruct file syntax is remarkably intuitive and scales nicely from very simple builds up to big and complicated project, with good dependency tracking to avoid unnecessary recompiling. it has a lot of built-in rules for performing common build & compile tasks, but it’s trivial to add your own, either by combining existing building blocks or by writing a new builder with the full power of python. a minimal sconstruct file looks like this: program(&# ;hello.c&# ;) couldn’t be simpler! and you have the full power of python syntax to keep your build file simple and readable. it’s interesting that all the entries in this category apart from one chose to use a python-derived syntax for describing build steps. python was clearly already a language of choice for flexible multi-purpose computing. the exception is the entry that chose to use xml instead, which i think is a horrible idea (oh how i used to love xml!) but has been used to great effect in the java world by tools like ant and maven. what happened to the original software carpentry? “software carpentry was originally a competition to design new software tools, not a training course. the fact that you didn’t know that tells you how well it worked.” when i read this in a recent post on greg wilson’s blog, i took it as a challenge. i actually do remember the competition, although looking at the dates it was long over by the time i found it. i believe it did have impact; in fact, i still occasionally use one of the tools it produced, so greg’s comment got me thinking: what happened to the other competition entries? working out what happened will need a bit of digging, as most of the relevant information is now only available on the internet archive. it certainly seems that by november the domain name had been allowed to lapse and had been replaced with a holding page by the registrar. there were four categories in the competition, each representing a category of tool that the organisers thought could be improved: sc build: a build tool to replace make sc conf: a configuration management tool to replace autoconf and automake sc track: a bug tracking tool sc test: an easy to use testing framework i’m hoping to be able to show that this work had a lot more impact than greg is admitting here. i’ll keep you posted on what i find! changing static site generators: nanoc → hugo i’ve decided to move the site over to a different static site generator, hugo. i’ve been using nanoc for a long time and it’s worked very well, but lately it’s been taking longer and longer to compile the site and throwing weird errors that i can’t get to the bottom of. at the time i started using nanoc, static site generators were in their infancy. there weren’t the huge number of feature-loaded options that there are now, so i chose one and i built a whole load of blogging-related functionality myself. i did it in ways that made sense at the time but no longer work well with nanoc’s latest versions. so it’s time to move to something that has blogging baked-in from the beginning and i’m taking the opportunity to overhaul the look and feel too. again, when i started there weren’t many pre-existing themes so i built the whole thing myself and though i’m happy with the work i did on it it never quite felt polished enough. now i’ve got the opportunity to adapt one of the many well-designed themes already out there, so i’ve taken one from the hugo themes gallery and tweaked the colours to my satisfaction. hugo also has various features that i’ve wanted to implement in nanoc but never quite got round to it. the nicest one is proper handling of draft posts and future dates, but i keep finding others. there’s a lot of old content that isn’t quite compatible with the way hugo does things so i’ve taken the old nanoc-compiled content and frozen it to make sure that old links should still work. i could probably fiddle with it for years without doing much so it’s probably time to go ahead and publish it. i’m still not completely happy with my choice of theme but one of the joys of hugo is that i can change that whenever i want. let me know what you think! license except where otherwise stated, all content on erambler by jez cope is licensed under a creative commons attribution-sharealike . international license. rdm resources i occasionally get asked for resources to help someone learn more about research data management (rdm) as a discipline (i.e. for those providing rdm support rather than simply wanting to manage their own data). i’ve therefore collected a few resources together on this page. if you’re lucky i might even update it from time to time! first, a caveat: this is very focussed on uk higher education, though much of it will still be relevant for people outside that narrow demographic. my general recommendation would be to start with the digital curation centre (dcc) website and follow links out from there. i also have a slowly growing list of rdm links on diigo, and there’s an rdm section in my list of blogs and feeds too. mailing lists jiscmail is a popular list server run for the benefit of further and higher education in the uk; the following lists are particularly relevant: research-dataman data-publication digital-preservation lis-researchsupport the research data alliance have a number of interest groups and working groups that discuss issues by email events international digital curation conference — major annual conference research data management forum — roughly every six months, places are limited! rda plenary — also every months, but only about in every in europe books in no particular order: martin, victoria. demystifying eresearch: a primer for librarians. libraries unlimited, . borgman, christine l. big data, little data, no data: scholarship in the networked world. cambridge, massachusetts: the mit press, . corti, louise, veerle van den eynden, and libby bishop. managing and sharing research data. thousand oaks, ca: sage publications ltd, . pryor, graham, ed. managing research data. facet publishing, . pryor, graham, sarah jones, and angus whyte, eds. delivering research data management services: fundamentals of good practice. facet publishing, . ray, joyce m., ed. research data management: practical strategies for information professionals. west lafayette, indiana: purdue university press, . reports ‘ten recommendations for libraries to get started with research data management’. liber, august . http://libereurope.eu/news/ten-recommendations-for-libraries-to-get-started-with-research-data-management/. ‘science as an open enterprise’. royal society, june . https://royalsociety.org/policy/projects/science-public-enterprise/report/. mary auckland. ‘re-skilling for research’. rluk, january . http://www.rluk.ac.uk/wp-content/uploads/ / /rluk-re-skilling.pdf. journals international journal of digital curation (ijdc) journal of escience librarianship (jeslib) fairphone : initial thoughts on the original ethical smartphone i’ve had my eye on the fairphone for a while now, and when my current phone, an aging samsung galaxy s , started playing up i decided it was time to take the plunge. a few people have asked for my thoughts on the fairphone so here are a few notes. why i bought it the thing that sparked my interest, and the main reason for buying the phone really, was the ethical stance of the manufacturer. the small swedish company have gone to great lengths to ensure that both labour and materials are sourced as responsibly as possible. they regularly inspect the factories where the parts are made and assembled to ensure fair treatment of the workers and they source all the raw materials carefully to minimise the environmental impact and the use of conflict minerals. another side to this ethical stance is a focus on longevity of the phone itself. this is not a product with an intentionally limited lifespan. instead, it’s designed to be modular and as repairable as possible, by the owner themselves. spares are available for all of the parts that commonly fail in phones (including screen and camera), and at the time of writing the fairphone is the only phone to receive / for reparability from ifixit. there are plans to allow hardware upgrades, including an expansion port on the back so that nfc or wireless charging could be added with a new case, for example. what i like so far, the killer feature for me is the dual sim card slots. i have both a personal and a work phone, and the latter was always getting left at home or in the office or running out of charge. now i have both sims in the one phone: i can recieve calls on either number, turn them on and off independently and choose which account to use when sending a text or making a call. the os is very close to “standard” android, which is nice, and i really don’t miss all the extra bloatware that came with the galaxy s . it also has twice the storage of that phone, which is hardly unique but is still nice to have. overall, it seems like a solid, reliable phone, though it’s not going to outperform anything else at the same price point. it certainly feels nice and snappy for everything i want to use it for. i’m no mobile gamer, but there is that distant promise of upgradability on the horizon if you are. what i don’t like i only have two bugbears so far. once or twice it’s locked up and become unresponsive, requiring a “manual reset” (removing and replacing the battery) to get going again. it also lacks nfc, which isn’t really a deal breaker, but i was just starting to make occasional use of it on the s (mostly experimenting with my yubikey neo) and it would have been nice to try out android pay when it finally arrives in the uk. overall it’s definitely a serious contender if you’re looking for a new smartphone and aren’t bothered about serious mobile gaming. you do pay a premium for the ethical sourcing and modularity, but i feel that’s worth it for me. i’m looking forward to seeing how it works out as a phone. wiring my web i’m a nut for automating repetitive tasks, so i was dead pleased a few years ago when i discovered that ifttt let me plug different bits of the web together. i now use it for tasks such as: syndicating blog posts to social media creating scheduled/repeating todo items from a google calendar making a note to revisit an article i’ve starred in feedly i’d probably only be half-joking if i said that i spend more time automating things than i save not having to do said things manually. thankfully it’s also a great opportunity to learn, and recently i’ve been thinking about reimplementing some of my ifttt workflows myself to get to grips with how it all works. there are some interesting open source projects designed to offer a lot of this functionality, such as huginn, but i decided to go for a simpler option for two reasons: i want to spend my time learning about the apis of the services i use and how to wire them together, rather than learning how to use another big framework; and i only have a small amazon ec server to pay with and a heavy ruby on rails app like huginn (plus web server) needs more memory than i have. instead i’ve gone old-school with a little collection of individual scripts to do particular jobs. i’m using the built-in scheduling functionality of systemd, which is already part of a modern linux operating system, to get them to run periodically. it also means i can vary the language i use to write each one depending on the needs of the job at hand and what i want to learn/feel like at the time. currently it’s all done in python, but i want to have a go at lisp sometime, and there are some interesting new languages like go and julia that i’d like to get my teeth into as well. you can see my code on github as it develops: https://github.com/jezcope/web-plumbing. comments and contributions are welcome (if not expected) and let me know if you find any of the code useful. image credit: xkcd # , automation data is like water, and language is like clothing i admit it: i’m a grammar nerd. i know the difference between ‘who’ and ‘whom’, and i’m proud. i used to be pretty militant, but these days i’m more relaxed. i still take joy in the mechanics of the language, but i also believe that english is defined by its usage, not by a set of arbitrary rules. i’m just as happy to abuse it as to use it, although i still think it’s important to know what rules you’re breaking and why. my approach now boils down to this: language is like clothing. you (probably) wouldn’t show up to a job interview in your pyjamas , but neither are you going to wear a tuxedo or ballgown to the pub. getting commas and semicolons in the right place is like getting your shirt buttons done up right. getting it wrong doesn’t mean you’re an idiot. everyone will know what you meant. it will affect how you’re perceived, though, and that will affect how your message is perceived. and there are former rules that some still enforce that are nonetheless dropping out of regular usage. there was a time when everyone in an office job wore formal clothing. then it became acceptable just to have a blouse, or a shirt and tie. then the tie became optional and now there are many professions where perfectly well-respected and competent people are expected to show up wearing nothing smarter than jeans and a t-shirt. one such rule imho is that ‘data’ is a plural and should take pronouns like ‘they’ and ‘these’. the origin of the word ‘data’ is in the latin plural of ‘datum’, and that idea has clung on for a considerable period. but we don’t speak latin and the english language continues to evolve: ‘agenda’ also began life as a latin plural, but we don’t use the word ‘agendum’ any more. it’s common everyday usage to refer to data with singular pronouns like ‘it’ and ‘this’, and it’s very rare to see someone referring to a single datum (as opposed to ‘data point’ or something). if you want to get technical, i tend to think of data as a mass noun, like ‘water’ or ‘information’. it’s uncountable: talking about ‘a water’ or ‘an information’ doesn’t make much sense, but it uses singular pronouns, as in ‘this information’. if you’re interested, the oxford english dictionary also takes this position, while chambers leaves the choice of singular or plural noun up to you. there is absolutely nothing wrong, in my book, with referring to data in the plural as many people still do. but it’s no longer a rule and for me it’s weakened further from guideline to preference. it’s like wearing a bow-tie to work. there’s nothing wrong with it and some people really make it work, but it’s increasingly outdated and even a little eccentric. or maybe you’d totally rock it. &#x a ;þ e; like not starting a sentence with a conjunction… &#x a ;þ e; #idcc day : new ideas well, i did a great job of blogging the conference for a couple of days, but then i was hit by the bug that’s been going round and didn’t have a lot of energy for anything other than paying attention and making notes during the day! i’ve now got round to reviewing my notes so here are a few reflections on day . day was the day of many parallel talks! so many great and inspiring ideas to take in! here are a few of my take-home points. big science and the long tail the first parallel session had examples of practical data management in the real world. jian qin & brian dobreski (school of information studies, syracuse university) worked on reproducibility with one of the research groups involved with the recent gravitational wave discovery. “reproducibility” for this work (as with much of physics) mostly equates to computational reproducibility: tracking the provenance of the code and its input and output is key. they also found that in practice the scientists' focus was on making the big discovery, and ensuring reproducibility was seen as secondary. this goes some way to explaining why current workflows and tools don’t really capture enough metadata. milena golshan & ashley sands (center for knowledge infrastructures, ucla) investigated the use of software-as-a-service (saas, such as google drive, dropbox or more specialised tools) as a way of meeting the needs of long-tail science research such as ocean science. this research is characterised by small teams, diverse data, dynamic local development of tools, local practices and difficulty disseminating data. this results in a need for researchers to be generalists, as opposed to “big science” research areas, where they can afford to specialise much more deeply. such generalists tend to develop their own isolated workflows, which can differ greatly even within a single lab. long-tail research also often struggles from a lack of dedicated it support. they found that use of saas could help to meet these challenges, but with a high cost required to cover the needed guarantees of security and stability. education & training this session focussed on the professional development of library staff. eleanor mattern (university of pittsburgh) described the immersive training introduced to improve librarians' understanding of the data needs of their subject areas in delivering their rdm service delivery model. the participants each conducted a “disciplinary deep dive”, shadowing researchers and then reporting back to the group on their discoveries with a presentation and discussion. liz lyon (also university of pittsburgh, formerly ukoln/dcc) gave a systematic breakdown of the skills, knowledge and experience required in different data-related roles, obtained from an analysis of job adverts. she identified distinct roles of data analyst, data engineer and data journalist, and as well as each role’s distinctive skills, pinpointed common requirements of all three: python, r, sql and excel. this work follows on from an earlier phase which identified an allied set of roles: data archivist, data librarian and data steward. data sharing and reuse this session gave an overview of several specific workflow tools designed for researchers. marisa strong (university of california curation centre/california digital libraries) presented dash, a highly modular tool for manual data curation and deposit by researchers. it’s built on their flexible backend, stash, and though it’s currently optimised to deposit in their merritt data repository it could easily be hooked up to other repositories. it captures datacite metadata and a few other fields, and is integrated with orcid to uniquely identify people. in a different vein, eleni castro (institute for quantitative social science, harvard university) discussed some of the ways that harvard’s dataverse repository is streamlining deposit by enabling automation. it provides a number of standardised endpoints such as oai-pmh for metadata harvest and sword for deposit, as well as custom apis for discovery and deposit. interesting use cases include: an addon for the open science framework to deposit in dataverse via sword an r package to enable automatic deposit of simulation and analysis results integration with publisher workflows open journal systems a growing set of visualisations for deposited data in the future they’re also looking to integrate with dmptool to capture data management plans and with archivematica for digital preservation. andrew treloar (australian national data service) gave us some reflections on the ands “applications programme”, a series of small funded projects intended to address the fourth of their strategic transformations, single use → reusable. he observed that essentially these projects worked because they were able to throw money at a problem until they found a solution: not very sustainable. some of them stuck to a traditional “waterfall” approach to project management, resulting in “the right solution years late”. every researcher’s needs are “special” and communities are still constrained by old ways of working. the conclusions from this programme were that: “good enough” is fine most of the time adopt/adapt/augment is better than build existing toolkits let you focus on the % functionality that’s missing succussful projects involved research champions who can: ) articulate their community’s requirements; and ) promote project outcomes summary all in all, it was a really exciting conference, and i’ve come home with loads of new ideas and plans to develop our services at sheffield. i noticed a continuation of some of the trends i spotted at last year’s idcc, especially an increasing focus on “second-order” problems: we’re no longer spending most of our energy just convincing researchers to take data management seriously and are able to spend more time helping them to do it better and get value out of it. there’s also a shift in emphasis (identified by closing speaker cliff lynch) from sharing to reuse, and making sure that data is not just available but valuable. #idcc day : open data the main conference opened today with an inspiring keynote by barend mons, professor in biosemantics, leiden university medical center. the talk had plenty of great stuff, but two points stood out for me. first, prof mons described a newly discovered link between huntingdon’s disease and a previously unconsidered gene. no-one had previously recognised this link, but on mining the literature, an indirect link was identified in more than % of the roughly million scientific claims analysed. this is knowledge for which we already had more than enough evidence, but which could never have been discovered without such a wide-ranging computational study. second, he described a number of behaviours which should be considered “malpractice” in science: relying on supplementary data in articles for data sharing: the majority of this is trash (paywalled, embedded in bitmap images, missing) using the journal impact factor to evaluate science and ignoring altmetrics not writing data stewardship plans for projects (he prefers this term to “data management plan”) obstructing tenure for data experts by assuming that all highly-skilled scientists must have a long publication record a second plenary talk from andrew sallons of the centre for open science introduced a number of interesting-looking bits and bobs, including the transparency & openness promotion (top) guidelines which set out a pathway to help funders, publishers and institutions move towards more open science. the rest of the day was taken up with a panel on open data, a poster session, some demos and a birds-of-a-feather session on sharing sensitive/confidential data. there was a great range of posters, but a few that stood out to me were: lessons learned about iso (“audit and certification of trustworthy digital repositories”) certification from the british library two separate posters (from the universities of toronto and colorado) about disciplinary rdm information & training for liaison librarians a template for sharing psychology data developed by a psychologist-turned-information researcher from carnegie mellon university more to follow, but for now it’s time for the conference dinner! #idcc day : business models for research data management i’m at the international digital curation conference (#idcc ) in amsterdam this week. it’s always a good opportunity to pick up some new ideas and catch up with colleagues from around the world, and i always come back full of new possibilities. i’ll try and do some more reflective posts after the conference but i thought i’d do some quick reactions while everything is still fresh. monday and thursday are pre- and post-conference workshop days, and today i attended developing research data management services. joy davidson and jonathan rans from the digital curation centre (dcc) introduced us to the business model canvas, a template for designing a business model on a single sheet of paper. the model prompts you to think about all of the key facets of a sustainable, profitable business, and can easily be adapted to the task of building a service model within a larger institution. the dcc used it as part of the collaboration to clarify curation costs ( c) project, whose output the curation costs exchange is also worth a look. it was a really useful exercise to be able to work through the whole process for an aspect of research data management (my table focused on training & guidance provision), both because of the ideas that came up and also the experience of putting the framework into practice. it seems like a really valuable tool and i look forward to seeing how it might help us with our rdm service development. tomorrow the conference proper begins, with a range of keynotes, panel sessions and birds-of-a-feather meetings so hopefully more then! about me i help people in higher education communicate and collaborate more effectively using technology. i currently work at the university of sheffield focusing on research data management policy, practice, training and advocacy. in my free time, i like to: run; play the accordion; morris dance; climb; cook; read (fiction and non-fiction); write. better science through better data #scidata better science through better doughnutsjez cope update: fixed the link to the slides so it works now! last week i had the honour of giving my first ever keynote talk, at an event entitled better science through better data hosted jointly by springer nature and the wellcome trust. it was nerve-wracking but exciting and seemed to go down fairly well. i even got accidentally awarded a phd in the programme — if only it was that easy! the slides for the talk, “supporting open research: the role of an academic library”, are available online (doi: . /shef.data. ), and the whole event was video’d for posterity and viewable online. i got some good questions too, mainly from the clever online question system. i didn’t get to answer all of them, so i’m thinking of doing a blog post or two to address a few more. there were loads of other great presentations as well, both keynotes and -minute lightning talks, so i’d encourage you to take a look at at least some of it. i’ll pick out a few of my highlights. dr aled edwards (university of toronto) there’s a major problem with science funding that i hadn’t really thought about before. the available funding pool for research is divided up into pots by country, and often by funding body within a country. each of these pots have robust processes to award funding to the most important problems and most capable researchers. the problem comes because there is no coordination between these pots, so researchers all over the world end up getting funded to research the most popular problems leading to a lot of duplication of effort. industry funding suffers from a similar problem, particularly the pharmaceutical industry. because there is no sharing of data or negative results, multiple companies spend billions researching the same dead ends chasing after the same drugs. this is where the astronomical costs of drug development come from. dr edwards presented one alternative, modelled by a company called m k pharma. the idea is to use existing ip laws to try and give academic researchers a reasonable, morally-justifiable and sustainable profit on drugs they develop, in contrast to the current model where basic research is funded by governments while large corporations hoover up as much profit as they possibly can. this new model would develop drugs all the way to human trial within academia, then license the resulting drugs to companies to manufacture with a price cap to keep the medicines affordable to all who need them. core to this effort is openness with data, materials and methodology, and dr edwards presented several examples of how this approach benefited academic researchers, industry and patients compared with a closed, competitive focus. dr kirstie whitaker (alan turing institute) this was a brilliant presentation, presenting a practical how-to guide to doing reproducible research, from one researcher to another. i suggest you take a look at her slides yourself: showing your working: a how-to guide to reproducible research. dr whitaker briefly addressed a number of common barriers to reproducible research: is not considered for promotion: so it should be! held to higher standards than others: reviewers should be discouraged from nitpicking just because the data/code/whatever is available (true unbiased peer review of these would be great though) publication bias towards novel findings: it is morally wrong to not publish reproductions, replications etc. so we need to address the common taboo on doing so plead the th: if you share, people may find flaws, but if you don’t they can’t — if you’re worried about this you should ask yourself why! support additional users: some (much?) of the burden should reasonably on the reuser, not the sharer takes time: this is only true if you hack it together after the fact; if you do it from the start, the whole process will be quicker! requires additional skills: important to provide training, but also to judge phd students on their ability to do this, not just on their thesis & papers the rest of the presentation, the “how-to” guide of the title' was a well-chosen and passionately delivered set of recommendations, but the thing that really stuck out for me is how good dr whitaker is at making the point that you only have to do one of these things to improve the quality of your research. it’s easy to get the impression at the moment that you have to be fully, perfectly open or not at all, but it’s actually ok to get there one step at a time, or even not to go all the way at all! anyway, i think this is a slide deck that speaks for itself, so i won’t say any more! lightning talk highlights there was plenty of good stuff in the lightning talks, which were constrained to minutes each, but a few of the things that stood out for me were, in no particular order: code ocean — share and run code in the cloud dat project — peer to peer data syncronisation tool can automate metadata creation, data syncing, versioning set up a secure data sharing network that keeps the data in sync but off the cloud berlin institute of health — open science course for students pre-print paper course materials intermine — taking the pain out of data cleaning & analysis nix/nixos as a component of a reproducible paper bonej (imagej plugin for bone analysis) — developed by a scientist, used a lot, now has a wellcome-funded rse to develop next version esasky — amazing live, online archive of masses of astronomical data coda i really enjoyed the event (and the food was excellent too). my thanks go out to: the programme committee for asking me to come and give my take — i hope i did it justice! the organising team who did a brilliant job of keeping everything running smoothly before and during the event the university of sheffield for letting me get away with doing things like this! blog platform switch i’ve just switched my blog over to the nikola static site generator. hopefully you won’t notice a thing, but there might be a few weird spectres around til i get all the kinks ironed out. i’ve made the switch for a couple of main reasons: nikola supports jupyter notebooks as a source format for blog posts, which will be useful to include code snippets it’s written in python, a language which i actually know, so i’m more likely to be able to fix things that break, customise it and potentially contribute to the open source project (by contrast, hugo is written in go, which i’m not really familiar with) chat rooms vs twitter: how i communicate now cc , pixabay this time last year, brad colbow published a comic in his “the brads” series entitled “the long slow death of twitter”. it really encapsulates the way i’ve been feeling about twitter for a while now. go ahead and take a look. i’ll still be here when you come back. according to my twitter profile, i joined in february as user # , , . it was nearing its rd birthday and, though there were clearly a lot of people already signed up at that point, it was still relatively quiet, especially in the uk. i was a lonely phd student just starting to get interested in educational technology, and one thing that twitter had in great supply was (and still is) people pushing back the boundaries of what tech can do in different contexts. somewhere along the way twitter got really noisy, partly because more people (especially commercial companies) are using it more to talk about stuff that doesn’t interest me, and partly because i now follow , + people and find i get several tweets a second at peak times, which no-one could be expected to handle. more recently i’ve found my attention drawn to more focussed communities instead of that big old shouting match. i find i’m much more comfortable discussing things and asking questions in small focussed communities because i know who might be interested in what. if i come across an article about a cool new python library, i’ll geek out about it with my research software engineer friends; if i want advice on an aspect of my emacs setup, i’ll ask a bunch of emacs users. i feel like i’m talking to people who want to hear what i’m saying. next to that experience, twitter just feels like standing on a street corner shouting. irc channels (mostly on freenode), and similar things like slack and gitter form the bulk of this for me, along with a growing number of whatsapp group chats. although online chat is theoretically a synchronous medium, i find that i can treat it more as “semi-synchronous”: i can have real-time conversations as they arise, but i can also close them and tune back in later to catch up if i want. now i come to think about it, this is how i used to treat twitter before the , follows happened. i also find i visit a handful of forums regularly, mostly of the reddit link-sharing or stackexchange q&a type. /r/buildapc was invaluable when i was building my latest box, /r/earthporn (very much not nsfw) is just beautiful. i suppose the risk of all this is that i end up reinforcing my own echo chamber. i’m not sure how to deal with that, but i certainly can’t deal with it while also suffering from information overload. not just certifiable… a couple of months ago, i went to oxford for an intensive, -day course run by software carpentry and data carpentry for prospective new instructors. i’ve now had confirmation that i’ve completed the checkout procedure so it’s official: i’m now a certified data carpentry instructor! as far as i’m aware, the certification process is now combined, so i’m also approved to teach software carpentry material too. and of course there’s library carpentry too… ssi fellowship i’m honoured and excited to be named one of this year’s software sustainability institute fellows. there’s not much to write about yet because it’s only just started, but i’m looking forward to sharing more with you. in the meantime, you can take a look at the fellowship announcement and get an idea of my plans from my application video: talks here is a selection of talks that i’ve given. {{% template %}} <%! import arrow %> date title location % for talk in post.data("talks"): % if 'date' in talk: ${date.format('ddd d mmm yyyy')} % endif % if 'url' in talk: % endif ${talk['title']} % if 'url' in talk: % endif ${talk.get('location', '')} % endfor {{% /template %}} bittorrent - wikipedia bittorrent from wikipedia, the free encyclopedia jump to navigation jump to search peer-to-peer file sharing protocol this article is about the file sharing protocol. for other uses, see bittorrent (disambiguation). bittorrent original author(s) bram cohen developer(s) bittorrent, inc initial release ;  years ago ( ) repository github.com/bittorrent/bittorrent.org operating system android ios linux macos windows other standard(s) the bittorrent protocol specification[ ] type peer-to-peer file sharing license unknown website www.bittorrent.org part of a series on file sharing technologies file hosting services online video platform peer to peer usenet web hosting webrtc xdcc video sharing sites movies dailymotion peertube putlocker youtube bittorrent sites x demonoid extratorrent eztv isohunt kickasstorrents nyaa torrents rarbg tamil rockers the pirate bay yify academic #icanhazpdf internet archive library genesis sci-hub academic torrents z-library file sharing networks bittorrent direct connect edonkey freenet gnutella gnutella ipfs lbry ares galaxy list of p p protocols opennap webtorrent p p clients bitcomet dc++ deluge emule μtorrent qbittorrent shareaza soulseek transmission tribler vuze winmx napster streaming programs butter project popcorn time torrents-time anonymous file sharing anonymous p p darknet freenet friend-to-friend i p private p p proxy server seedbox tor vpn development and societal aspects timeline legality bittorrent issues by country or region canada japan singapore uk us comparisons comparison of bittorrent clients comparison of bittorrent sites comparison of edonkey software comparison of internet relay chat clients comparison of usenet newsreaders v t e bittorrent (abbreviated to bt) is a communication protocol for peer-to-peer file sharing (p p), which enables users to distribute data and electronic files over the internet in a decentralized manner. bittorrent is one of the most common protocols for transferring large files; such as, digital video files containing tv shows and video clips, or digital audio files containing songs. p p networks have been estimated to, collectively, account for approximately % to % of internet traffic depending on location, as of february  [update].[ ] in february , bittorrent was responsible for . % of all worldwide bandwidth—more than half of the % of total bandwidth dedicated to file sharing.[ ] in , bittorrent was a dominant file sharing protocol and generated a substantial amount of internet traffic, with . % of downstream, and . % of upstream traffic.[ ] to send or receive files, a person uses a bittorrent client, on their internet-connected computer. a bittorrent client is a computer program that implements the bittorrent protocol. popular clients include μtorrent, xunlei thunder,[ ][ ] transmission, qbittorrent, vuze, deluge, bitcomet and tixati. bittorrent trackers provide a list of files available for transfer and allow the client to find peer users, known as "seeds", who may transfer the files. programmer bram cohen, a university at buffalo alumnus,[ ] designed the protocol in april , and released the first available version on july .[ ] as of june  [update], the most recent version was implemented in .[ ] bittorrent clients are available for a variety of computing platforms and operating systems, including an official client released by bittorrent, inc. as of [update], bittorrent has –  million concurrent users at any time.[ ] as of january  [update], bittorrent is utilized by million active users. based on this figure, the total number of monthly users may be estimated to more than a quarter of a billion (≈ million).[ ] torrenting may sometimes be limited by internet service providers (isps), on legal or copyright grounds. in turn, users may choose to run seedboxes or virtual private networks (vpns) as an alternative. on may , , an update to the protocol specification was released by bittorrent, called bittorrent v .[ ][ ] libtorrent was updated to support the new version on september , .[ ] animation of protocol use: the colored dots beneath each computer in the animation represent different parts of the file being shared. by the time a copy to a destination computer of each of those parts completes, a copy to another destination computer of that part (or other parts) is already taking place between users. contents description operation . search queries . downloading torrents and sharing files . creating and publishing torrents . anonymity . bittorrent v adoption . film, video, and music . broadcasters . personal works . software . government . education . others technologies built on bittorrent . distributed trackers . web seeding . . hash web seeding . . http web seeding . . other . rss feeds . throttling and encryption . multitracker . peer selection implementations legal issues security problems . malware see also references further reading external links description[edit] the middle computer is acting as a "seed" to provide a file to the other computers which act as peers. the bittorrent protocol can be used to reduce the server and network impact of distributing large files. rather than downloading a file from a single source server, the bittorrent protocol allows users to join a "swarm" of hosts to upload to/download from each other simultaneously. the protocol is an alternative to the older single source, multiple mirror sources technique for distributing data, and can work effectively over networks with lower bandwidth. using the bittorrent protocol, several basic computers, such as home computers, can replace large servers while efficiently distributing files to many recipients. this lower bandwidth usage also helps prevent large spikes in internet traffic in a given area, keeping internet speeds higher for all users in general, regardless of whether or not they use the bittorrent protocol. the first release of the bittorrent client had no search engine and no peer exchange, so users who wanted to upload a file had to create a small torrent descriptor file that they would upload to a torrent index site. the first uploader acted as a seed, and downloaders would initially connect as peers (see diagram on the right). those who wish to download the file would download the torrent, which their client would use to connect to a tracker which had a list of the ip addresses of other seeds and peers in the swarm. once a peer completed a download of the complete file, it could in turn function as a seed. the file being distributed is divided into segments called pieces. as each peer receives a new piece of the file, it becomes a source (of that piece) for other peers, relieving the original seed from having to send that piece to every computer or user wishing a copy. with bittorrent, the task of distributing the file is shared by those who want it; it is entirely possible for the seed to send only a single copy of the file itself and eventually distribute to an unlimited number of peers. each piece is protected by a cryptographic hash contained in the torrent descriptor.[ ] this ensures that any modification of the piece can be reliably detected, and thus prevents both accidental and malicious modifications of any of the pieces received at other nodes. if a node starts with an authentic copy of the torrent descriptor, it can verify the authenticity of the entire file it receives. pieces are typically downloaded non-sequentially, and are rearranged into the correct order by the bittorrent client, which monitors which pieces it needs, and which pieces it has and can upload to other peers. pieces are of the same size throughout a single download (for example, a  mb file may be transmitted as ten  mb pieces or as forty  kb pieces). due to the nature of this approach, the download of any file can be halted at any time and be resumed at a later date, without the loss of previously downloaded information, which in turn makes bittorrent particularly useful in the transfer of larger files. this also enables the client to seek out readily available pieces and download them immediately, rather than halting the download and waiting for the next (and possibly unavailable) piece in line, which typically reduces the overall time of the download. this eventual transition from peers to seeders determines the overall "health" of the file (as determined by the number of times a file is available in its complete form). the distributed nature of bittorrent can lead to a flood-like spreading of a file throughout many peer computer nodes. as more peers join the swarm, the likelihood of a successful download by any particular node increases. relative to traditional internet distribution schemes, this permits a significant reduction in the original distributor's hardware and bandwidth resource costs. distributed downloading protocols in general provide redundancy against system problems, reduce dependence on the original distributor,[ ] and provide sources for the file which are generally transient and therefore there is no single point of failure as in one way server-client transfers. operation[edit] a bittorrent client is capable of preparing, requesting, and transmitting any type of computer file over a network, using the protocol. up until , the only way to share files was by creating a small text file called a "torrent". these files contain metadata about the files to be shared and the trackers which keep track of the other seeds and peers. users that want to download the file first obtain a torrent file for it, and connect to the tracker or seeds. in , first vuze and then the bittorrent client introduced distributed tracking using distributed hash tables which allowed clients to exchange data on swarms directly without the need for a torrent file. in , peer exchange functionality was added allowing clients to add peers based on the data found on connected nodes. though both ultimately transfer files over a network, a bittorrent download differs from a one way server-client download (as is typical with an http or ftp request, for example) in several fundamental ways: bittorrent makes many small data requests over different ip connections to different machines, while server-client downloading is typically made via a single tcp connection to a single machine. bittorrent downloads in a random or in a "rarest-first"[ ] approach that ensures high availability, while classic downloads are sequential. taken together, these differences allow bittorrent to achieve much lower cost to the content provider, much higher redundancy, and much greater resistance to abuse or to "flash crowds" than regular server software. however, this protection, theoretically, comes at a cost: downloads can take time to rise to full speed because it may take time for enough peer connections to be established, and it may take time for a node to receive sufficient data to become an effective uploader. this contrasts with regular downloads (such as from an http server, for example) that, while more vulnerable to overload and abuse, rise to full speed very quickly, and maintain this speed throughout. in the beginning, bittorrent's non-contiguous download methods made it harder to support "streaming playback". in , the client popcorn time allowed for streaming of bittorrent video files. since then, more and more clients are offering streaming options. search queries[edit] the bittorrent protocol provides no way to index torrent files. as a result, a comparatively small number of websites have hosted a large majority of torrents, many linking to copyrighted works without the authorization of copyright holders, rendering those sites especially vulnerable to lawsuits.[ ] a bittorrent index is a "list of .torrent files, which typically includes descriptions" and information about the torrent's content.[ ] several types of websites support the discovery and distribution of data on the bittorrent network. public torrent-hosting sites such as the pirate bay allow users to search and download from their collection of torrent files. users can typically also upload torrent files for content they wish to distribute. often, these sites also run bittorrent trackers for their hosted torrent files, but these two functions are not mutually dependent: a torrent file could be hosted on one site and tracked by another unrelated site. private host/tracker sites operate like public ones except that they may restrict access to registered users and may also keep track of the amount of data each user uploads and downloads, in an attempt to reduce "leeching". web search engines allow the discovery of torrent files that are hosted and tracked on other sites; examples include the pirate bay, torrentz, isohunt and btdigg. these sites allow the user to ask for content meeting specific criteria (such as containing a given word or phrase) and retrieve a list of links to torrent files matching those criteria. this list can often be sorted with respect to several criteria, relevance (seeders-leechers ratio) being one of the most popular and useful (due to the way the protocol behaves, the download bandwidth achievable is very sensitive to this value). metasearch engines allow one to search several bittorrent indices and search engines at once. the tribler bittorrent client was among the first to incorporate built-in search capabilities. with tribler, users can find .torrent files held by random peers and taste buddies.[ ] it adds such an ability to the bittorrent protocol using a gossip protocol, somewhat similar to the exeem network which was shut down in . the software includes the ability to recommend content as well. after a dozen downloads, the tribler software can roughly estimate the download taste of the user, and recommend additional content.[ ] in may , researchers at cornell university published a paper proposing a new approach to searching a peer-to-peer network for inexact strings,[ ] which could replace the functionality of a central indexing site. a year later, the same team implemented the system as a plugin for vuze called cubit[ ] and published a follow-up paper reporting its success.[ ] a somewhat similar facility but with a slightly different approach is provided by the bitcomet client through its "torrent exchange"[ ] feature. whenever two peers using bitcomet (with torrent exchange enabled) connect to each other they exchange lists of all the torrents (name and info-hash) they have in the torrent share storage (torrent files which were previously downloaded and for which the user chose to enable sharing by torrent exchange). thus each client builds up a list of all the torrents shared by the peers it connected to in the current session (or it can even maintain the list between sessions if instructed). at any time the user can search into that torrent collection list for a certain torrent and sort the list by categories. when the user chooses to download a torrent from that list, the .torrent file is automatically searched for (by info-hash value) in the dht network and when found it is downloaded by the querying client which can after that create and initiate a downloading task. downloading torrents and sharing files[edit] users find a torrent of interest on a torrent index site or by using a search engine built into the client, download it, and open it with a bittorrent client. the client connects to the tracker(s) or seeds specified in the torrent file, from which it receives a list of seeds and peers currently transferring pieces of the file(s). the client connects to those peers to obtain the various pieces. if the swarm contains only the initial seeder, the client connects directly to it, and begins to request pieces. clients incorporate mechanisms to optimize their download and upload rates. the effectiveness of this data exchange depends largely on the policies that clients use to determine to whom to send data. clients may prefer to send data to peers that send data back to them (a "tit for tat" exchange scheme), which encourages fair trading. but strict policies often result in suboptimal situations, such as when newly joined peers are unable to receive any data because they don't have any pieces yet to trade themselves or when two peers with a good connection between them do not exchange data simply because neither of them takes the initiative. to counter these effects, the official bittorrent client program uses a mechanism called "optimistic unchoking", whereby the client reserves a portion of its available bandwidth for sending pieces to random peers (not necessarily known good partners, so called preferred peers) in hopes of discovering even better partners and to ensure that newcomers get a chance to join the swarm.[ ] although "swarming" scales well to tolerate "flash crowds" for popular content, it is less useful for unpopular or niche market content. peers arriving after the initial rush might find the content unavailable and need to wait for the arrival of a "seed" in order to complete their downloads. the seed arrival, in turn, may take long to happen (this is termed the "seeder promotion problem"). since maintaining seeds for unpopular content entails high bandwidth and administrative costs, this runs counter to the goals of publishers that value bittorrent as a cheap alternative to a client-server approach. this occurs on a huge scale; measurements have shown that % of all new torrents become unavailable within the first month.[ ] a strategy adopted by many publishers which significantly increases availability of unpopular content consists of bundling multiple files in a single swarm.[ ] more sophisticated solutions have also been proposed; generally, these use cross-torrent mechanisms through which multiple torrents can cooperate to better share content.[ ] creating and publishing torrents[edit] the peer distributing a data file treats the file as a number of identically sized pieces, usually with byte sizes of a power of , and typically between  kb and  mb each. the peer creates a hash for each piece, using the sha- hash function, and records it in the torrent file. pieces with sizes greater than  kb will reduce the size of a torrent file for a very large payload, but is claimed to reduce the efficiency of the protocol.[ ] when another peer later receives a particular piece, the hash of the piece is compared to the recorded hash to test that the piece is error-free.[ ] peers that provide a complete file are called seeders, and the peer providing the initial copy is called the initial seeder. the exact information contained in the torrent file depends on the version of the bittorrent protocol. by convention, the name of a torrent file has the suffix .torrent. torrent files have an "announce" section, which specifies the url of the tracker, and an "info" section, containing (suggested) names for the files, their lengths, the piece length used, and a sha- hash code for each piece, all of which are used by clients to verify the integrity of the data they receive. though sha- has shown signs of cryptographic weakness, bram cohen did not initially consider the risk big enough for a backward incompatible change to, for example, sha- . as of bittorrent v the hash function has been updated to sha- .[ ] in the early days, torrent files were typically published to torrent index websites, and registered with at least one tracker. the tracker maintained lists of the clients currently connected to the swarm.[ ] alternatively, in a trackerless system (decentralized tracking) every peer acts as a tracker. azureus was the first[ ] bittorrent client to implement such a system through the distributed hash table (dht) method. an alternative and incompatible dht system, known as mainline dht, was released in the mainline bittorrent client three weeks later (though it had been in development since )[ ] and subsequently adopted by the μtorrent, transmission, rtorrent, ktorrent, bitcomet, and deluge clients. after the dht was adopted, a "private" flag – analogous to the broadcast flag – was unofficially introduced, telling clients to restrict the use of decentralized tracking regardless of the user's desires.[ ] the flag is intentionally placed in the info section of the torrent so that it cannot be disabled or removed without changing the identity of the torrent. the purpose of the flag is to prevent torrents from being shared with clients that do not have access to the tracker. the flag was requested for inclusion in the official specification in august , but has not been accepted yet.[ ] clients that have ignored the private flag were banned by many trackers, discouraging the practice.[ ] anonymity[edit] bittorrent does not, on its own, offer its users anonymity. one can usually see the ip addresses of all peers in a swarm in one's own client or firewall program. this may expose users with insecure systems to attacks.[ ] in some countries, copyright organizations scrape lists of peers, and send takedown notices to the internet service provider of users participating in the swarms of files that are under copyright. in some jurisdictions, copyright holders may launch lawsuits against uploaders or downloaders for infringement, and police may arrest suspects in such cases. various means have been used to promote anonymity. for example, the bittorrent client tribler makes available a tor-like onion network, optionally routing transfers through other peers to obscure which client has requested the data. the exit node would be visible to peers in a swarm, but the tribler organization provides exit nodes. one advantage of tribler is that clearnet torrents can be downloaded with only a small decrease in download speed from one "hop" of routing. i p provides a similar anonymity layer although in that case, one can only download torrents that have been uploaded to the i p network.[ ] the bittorrent client vuze allows users who are not concerned about anonymity to take clearnet torrents, and make them available on the i p network.[ ] most bittorrent clients are not designed to provide anonymity when used over tor,[ ] and there is some debate as to whether torrenting over tor acts as a drag on the network.[ ] private torrent trackers are usually invitation only, and require members to participate in uploading, but have the downside of a single centralized point of failure. oink's pink palace and what.cd are examples of private trackers which have been shut down. seedbox services download the torrent files first to the company's servers, allowing the user to direct download the file from there.[ ][ ] one's ip address would be visible to the seedbox provider, but not to third parties. virtual private networks encrypt transfers, and substitute a different ip address for the user's, so that anyone monitoring a torrent swarm will only see that address. bittorrent v [edit] bittorrent v is intended to work seamlessly with previous versions of the bittorrent protocol. the main reason for the update was that the old cryptographic hash function, sha- is no longer considered safe from malicious attacks by the developers, and as such, v uses sha- . to ensure backwards compatibility, the v .torrent file format supports a hybrid mode where the torrents are hashed through both the new method and the old method, with the intent that the files will be shared with peers on both v and v swarms. another update to the specification is adding a hash tree to speed up time from adding a torrent to downloading files, and to allow more granular checks for file corruption. in addition, each file is now hashed individually, enabling files in the swarm to be deduplicated, so that if multiple torrents include the same files, but seeders are only seeding the file from some, downloaders of the other torrents can still download the file. magnet links for v also support a hybrid mode to ensure support for legacy clients.[ ] adoption[edit] a growing number of individuals and organizations are using bittorrent to distribute their own or licensed works (e.g. indie bands distributing digital files of their new songs). independent adopters report that without using bittorrent technology, and its dramatically reduced demands on their private networking hardware and bandwidth, they could not afford to distribute their files.[ ] some uses of bittorrent for file sharing may violate laws in some jurisdictions (see legal issues section). film, video, and music[edit] bittorrent inc. has obtained a number of licenses from hollywood studios for distributing popular content from their websites.[citation needed] sub pop records releases tracks and videos via bittorrent inc.[ ] to distribute its + albums. babyshambles and the libertines (both bands associated with pete doherty) have extensively used torrents to distribute hundreds of demos and live videos. us industrial rock band nine inch nails frequently distributes albums via bittorrent. podcasting software is starting to integrate bittorrent to help podcasters deal with the download demands of their mp "radio" programs. specifically, juice and miro (formerly known as democracy player) support automatic processing of .torrent files from rss feeds. similarly, some bittorrent clients, such as μtorrent, are able to process web feeds and automatically download content found within them. dgm live purchases are provided via bittorrent.[ ] vodo, a service which distributes "free-to-share" movies and tv shows via bittorrent.[ ][ ][ ] broadcasters[edit] in , the cbc became the first public broadcaster in north america to make a full show (canada's next great prime minister) available for download using bittorrent.[ ] the norwegian broadcasting corporation (nrk) has since march experimented with bittorrent distribution, available online.[ ] only selected works in which nrk owns all royalties are published. responses have been very positive, and nrk is planning to offer more content. the dutch vpro broadcasting organization released four documentaries in and under a creative commons license using the content distribution feature of the mininova tracker.[ ][ ][ ] personal works[edit] the amazon s "simple storage service" is a scalable internet-based storage service with a simple web service interface, equipped with built-in bittorrent support.[ ] software[edit] blizzard entertainment uses bittorrent (via a proprietary client called the "blizzard downloader", associated with the blizzard "battlenet" network) to distribute content and patches for diablo iii, starcraft ii and world of warcraft, including the games themselves.[ ] wargaming uses bittorrent in their popular titles world of tanks, world of warships and world of warplanes to distribute game updates.[ ] ccp games, maker of the space simulation mmorpg eve online, has announced that a new launcher will be released that is based on bittorrent.[ ][ ] many software games, especially those whose large size makes them difficult to host due to bandwidth limits, extremely frequent downloads, and unpredictable changes in network traffic, will distribute instead a specialized, stripped down bittorrent client with enough functionality to download the game from the other running clients and the primary server (which is maintained in case not enough peers are available). many major open source and free software projects encourage bittorrent as well as conventional downloads of their products (via http, ftp etc.) to increase availability and to reduce load on their own servers, especially when dealing with larger files.[ ] government[edit] the british government used bittorrent to distribute details about how the tax money of british citizens was spent.[ ][ ] education[edit] florida state university uses bittorrent to distribute large scientific data sets to its researchers.[ ] many universities that have boinc distributed computing projects have used the bittorrent functionality of the client-server system to reduce the bandwidth costs of distributing the client-side applications used to process the scientific data. if a boinc distributed computing application needs to be updated (or merely sent to a user), it can do so with little impact on the boinc server.[ ] the developing human connectome project uses bittorrent to share their open dataset.[ ] academic torrents is a bittorrent tracker for use by researchers in fields that need to share large datasets[ ][ ] others[edit] facebook uses bittorrent to distribute updates to facebook servers.[ ] twitter uses bittorrent to distribute updates to twitter servers.[ ][ ] the internet archive added bittorrent to its file download options for over .  million existing files, and all newly uploaded files, in august .[ ][ ] this method is the fastest means of downloading media from the archive.[ ][ ] as of [update], bittorrent had million users and a greater share of network bandwidth than netflix and hulu combined.[ ][ ] in early , at&t estimates that bittorrent represents % of all broadband traffic.[ ] routers that use network address translation (nat) must maintain tables of source and destination ip addresses and ports. typical home routers are limited to about table entries[citation needed] while some more expensive routers have larger table capacities. bittorrent frequently contacts – servers per second, rapidly filling the nat tables. this is a known cause of some home routers ceasing to work correctly.[ ][ ] technologies built on bittorrent[edit] distributed trackers[edit] on may , azureus . . . (now known as vuze) was released,[ ] introducing support for "trackerless" torrents through a system called the "distributed database." this system is a distributed hash table implementation which allows the client to use torrents that do not have a working bittorrent tracker. instead just bootstrapping server is used (router.bittorrent.com, dht.transmissionbt.com or router.utorrent.com[ ][ ]). the following month, bittorrent, inc. released version . . of the mainline bittorrent client, which supported an alternative dht implementation (popularly known as "mainline dht", outlined in a draft on their website) that is incompatible with that of azureus. in , measurement showed concurrent users of mainline dht to be from million to  million, with a daily churn of at least  million.[ ] current versions of the official bittorrent client, μtorrent, bitcomet, transmission and bitspirit all share compatibility with mainline dht. both dht implementations are based on kademlia.[ ] as of version . . . , azureus also supports mainline dht in addition to its own distributed database through use of an optional application plugin.[ ] this potentially allows the azureus/vuze client to reach a bigger swarm. another idea that has surfaced in vuze is that of virtual torrents. this idea is based on the distributed tracker approach and is used to describe some web resource. currently, it is used for instant messaging. it is implemented using a special messaging protocol and requires an appropriate plugin. anatomic p p is another approach, which uses a decentralized network of nodes that route traffic to dynamic trackers. most bittorrent clients also use peer exchange (pex) to gather peers in addition to trackers and dht. peer exchange checks with known peers to see if they know of any other peers. with the . . . release of vuze, all major bittorrent clients now have compatible peer exchange. web seeding[edit] web "seeding" was implemented in as the ability of bittorrent clients to download torrent pieces from an http source in addition to the "swarm". the advantage of this feature is that a website may distribute a torrent for a particular file or batch of files and make those files available for download from that same web server; this can simplify long-term seeding and load balancing through the use of existing, cheap, web hosting setups. in theory, this would make using bittorrent almost as easy for a web publisher as creating a direct http download. in addition, it would allow the "web seed" to be disabled if the swarm becomes too popular while still allowing the file to be readily available. this feature has two distinct specifications, both of which are supported by libtorrent and the + clients that use it. hash web seeding[edit] the first was created by john "theshad w" hoffman, who created bittornado.[ ][ ] this first specification requires running a web service that serves content by info-hash and piece number, rather than filename. http web seeding[edit] the other specification is created by getright authors and can rely on a basic http download space (using byte serving).[ ][ ] other[edit] in september , a new service named burnbit was launched which generates a torrent from any url using webseeding.[ ] there are server-side solutions that provide initial seeding of the file from the web server via standard bittorrent protocol and when the number of external seeders reach a limit, they stop serving the file from the original source.[ ] rss feeds[edit] main article: broadcatching a technique called broadcatching combines rss feeds with the bittorrent protocol to create a content delivery system, further simplifying and automating content distribution. steve gillmor explained the concept in a column for ziff-davis in december .[ ] the discussion spread quickly among bloggers (ernest miller,[ ] chris pirillo, etc.). in an article entitled broadcatching with bittorrent, scott raymond explained: i want rss feeds of bittorrent files. a script would periodically check the feed for new items, and use them to start the download. then, i could find a trusted publisher of an alias rss feed, and "subscribe" to all new episodes of the show, which would then start downloading automatically – like the "season pass" feature of the tivo. — scott raymond, scottraymond.net[ ] the rss feed will track the content, while bittorrent ensures content integrity with cryptographic hashing of all data, so feed subscribers will receive uncorrupted content. one of the first and popular software clients (free and open source) for broadcatching is miro. other free software clients such as penguintv and katchtv are also now supporting broadcatching. the bittorrent web-service movedigital added the ability to make torrents available to any web application capable of parsing xml through its standard rest-based interface in ,[ ] though this has since been discontinued. additionally, torrenthut is developing a similar torrent api that will provide the same features, and help bring the torrent community to web . standards. alongside this release is a first php application built using the api called pep, which will parse any really simple syndication (rss . ) feed and automatically create and seed a torrent for each enclosure found in that feed.[ ] throttling and encryption[edit] main article: bittorrent protocol encryption since bittorrent makes up a large proportion of total traffic, some isps have chosen to "throttle" (slow down) bittorrent transfers. for this reason, methods have been developed to disguise bittorrent traffic in an attempt to thwart these efforts.[ ] protocol header encrypt (phe) and message stream encryption/protocol encryption (mse/pe) are features of some bittorrent clients that attempt to make bittorrent hard to detect and throttle. as of november , vuze, bitcomet, ktorrent, transmission, deluge, μtorrent, moopolice, halite, qbittorrent, rtorrent, and the latest official bittorrent client (v ) support mse/pe encryption. in august , comcast was preventing bittorrent seeding by monitoring and interfering with the communication between peers. protection against these efforts is provided by proxying the client-tracker traffic via an encrypted tunnel to a point outside of the comcast network.[ ] in , comcast called a "truce" with bittorrent, inc. with the intention of shaping traffic in a protocol-agnostic manner.[ ] questions about the ethics and legality of comcast's behavior have led to renewed debate about net neutrality in the united states.[ ] in general, although encryption can make it difficult to determine what is being shared, bittorrent is vulnerable to traffic analysis. thus, even with mse/pe, it may be possible for an isp to recognize bittorrent and also to determine that a system is no longer downloading but only uploading data, and terminate its connection by injecting tcp rst (reset flag) packets. multitracker[edit] another unofficial feature is an extension to the bittorrent metadata format proposed by john hoffman[ ] and implemented by several indexing websites. it allows the use of multiple trackers per file, so if one tracker fails, others can continue to support file transfer. it is implemented in several clients, such as bitcomet, bittornado, bittorrent, ktorrent, transmission, deluge, μtorrent, rtorrent, vuze, and frostwire. trackers are placed in groups, or tiers, with a tracker randomly chosen from the top tier and tried, moving to the next tier if all the trackers in the top tier fail. torrents with multiple trackers can decrease the time it takes to download a file, but also have a few consequences: poorly implemented[ ] clients may contact multiple trackers, leading to more overhead-traffic. torrents from closed trackers suddenly become downloadable by non-members, as they can connect to a seed via an open tracker. peer selection[edit] as of december  [update], bittorrent, inc. is working with oversi on new policy discover protocols that query the isp for capabilities and network architecture information. oversi's isp hosted netenhancer box is designed to "improve peer selection" by helping peers find local nodes, improving download speeds while reducing the loads into and out of the isp's network.[ ] implementations[edit] main article: comparison of bittorrent clients the bittorrent specification is free to use and many clients are open source, so bittorrent clients have been created for all common operating systems using a variety of programming languages. the official bittorrent client, μtorrent, qbittorrent, transmission, vuze, and bitcomet are some of the most popular clients.[ ][ ][ ][ ] some bittorrent implementations such as mldonkey and torrentflux are designed to run as servers. for example, this can be used to centralize file sharing on a single dedicated server which users share access to on the network.[ ] server-oriented bittorrent implementations can also be hosted by hosting providers at co-located facilities with high bandwidth internet connectivity (e.g., a datacenter) which can provide dramatic speed benefits over using bittorrent from a regular home broadband connection. services such as imageshack can download files on bittorrent for the user, allowing them to download the entire file by http once it is finished. the opera web browser supports bittorrent,[ ] as does wyzo and brave.[ ] bitlet allows users to download torrents directly from their browser using a java applet. an increasing number of hardware devices are being made to support bittorrent. these include routers and nas devices containing bittorrent-capable firmware like openwrt. proprietary versions of the protocol which implement drm, encryption, and authentication are found within managed clients such as pando. legal issues[edit] main article: legal issues with bittorrent although the protocol itself is legal,[ ] problems stem from using the protocol to traffic copyright infringing works, since bittorrent is often used to download otherwise paid content, such as movies and video games. there has been much controversy over the use of bittorrent trackers. bittorrent metafiles themselves do not store file contents. whether the publishers of bittorrent metafiles violate copyrights by linking to copyrighted works without the authorization of copyright holders is controversial. various jurisdictions have pursued legal action against websites that host bittorrent trackers. high-profile examples include the closing of suprnova.org, torrentspy, lokitorrent, btjunkie, mininova, oink's pink palace and what.cd. the pirate bay torrent website, formed by a swedish group, is noted for the "legal" section of its website in which letters and replies on the subject of alleged copyright infringements are publicly displayed. on may , the pirate bay's servers in sweden were raided by swedish police on allegations by the mpaa of copyright infringement;[ ] however, the tracker was up and running again three days later. in the study used to value nbc universal in its merger with comcast, envisional examined the , torrent swarms managed by publicbt which had the most active downloaders. after excluding pornographic and unidentifiable content, it was found that only one swarm offered legitimate content.[ ] in the united states, more than , lawsuits have been filed for copyright infringement on bittorrent since .[ ] on april , the high court of justice ordered five isps to block bittorrent search engine the pirate bay.[ ] (see list of websites blocked in the united kingdom) security problems[edit] one concern is the udp flood attack. bittorrent implementations often use μtp for their communication. to achieve high bandwidths, the underlying protocol used is udp, which allows spoofing of source addresses of internet traffic. it has been possible to carry out denial-of-service attacks in a p p lab environment, where users running bittorrent clients act as amplifiers for an attack at another service.[ ] however this is not always an effective attack because isps can check if the source address is correct. malware[edit] several studies on bittorrent found files containing malware, available for download. in particular, one small sample[ ] indicated that % of all executable programs available for download contained malware. another study[ ] claims that as much as . % of bittorrent downloads contain zero-day malware, and that bittorrent was used as the distribution mechanism for % of all zero-day malware they have found. see also[edit] anonymous p p napster gnutella anti-counterfeiting trade agreement bencode cache discovery protocol comparison of bittorrent clients comparison of bittorrent sites comparison of bittorrent tracker software fasttrack glossary of bittorrent terms magnet uri scheme μtp (micro transport protocol) peer-to-peer file sharing segmented file transfer simple file verification super-seeding torrent file torrent poisoning vpn references[edit] ^ a b c d e cohen, bram (october ). "bittorrent protocol . ". bittorrent.org. archived from the original on february . retrieved june . ^ schulze, hendrik; klaus mochalski ( ). "internet study / " (pdf). leipzig, germany: ipoque. archived from the original (pdf) on june . retrieved october . peer-to-peer file sharing (p p) still generates by far the most traffic in all monitored regions – ranging from % in northern africa to % eastern europe. ^ "application usage & threat report". palo alto networks. . archived from the original on october . retrieved april . ^ marozzo, fabrizio; talia, domenico; trunfio, paolo ( ). "a sleep-and-wake technique for reducing energy consumption in bittorrent networks". concurrency and computation: practice and experience. ( ). doi: . /cpe. . issn  - . s cid  . ^ van der sar, ernesto ( december ). "thunder blasts utorrent's market share away - torrentfreak". torrentfreak. archived from the original on february . retrieved june . ^ "迅雷-全球共享计算与区块链创领者". www.xunlei.com. retrieved november . ^ "ub engineering tweeter". university at buffalo's school of engineering and applied sciences. archived from the original on november . ^ cohen, bram ( july ). "bittorrent – a new p p app". yahoo egroups. archived from the original on january . retrieved april . ^ wang, liang; kangasharju, j. ( september ). "measuring large-scale distributed systems: case of bit torrent mainline dht". ieee p p proceedings. pp.  – . doi: . /p p. . . isbn  - - - - . s cid  . archived from the original on november . retrieved january . ^ "bittorrent and μtorrent software surpass million user milestone". bittorrent.com. january . archived from the original on march . retrieved july . ^ https://github.com/bittorrent/bittorrent.org/commit/ fe e ed f fb eea fe e b aaed ^ cohen, bram. "the bittorrent protocol specification v ". bittorrent.org. bittorrent. retrieved october . ^ "bittorrent-v ". libbittorrent.org. libbittorrent. retrieved october . ^ menasche, daniel s.; rocha, antonio a. a.; de souza e silva, edmundo a.; leao, rosa m.; towsley, don; venkataramani, arun ( ). "estimating self-sustainability in peer-to-peer swarming systems". performance evaluation. ( ): – . arxiv: . . doi: . /j.peva. . . . s cid  . by d. menasche, a. rocha, e. de souza e silva, r. m. leao, d. towsley, a. venkataramani. ^ urvoy-keller (december ). "rarest first and choke algorithms are enough" (pdf). sigcomm. archived (pdf) from the original on may . retrieved march . ^ ernesto ( july ). "publicbt tracker set to patch bittorrent' achilles' heel". torrentfreak. archived from the original on march . retrieved july . ^ chwan-hwa (john) wu, j. david irwin. introduction to computer networks and cybersecurity. chapter . .: partially centralized architectures. crc press. february , . isbn  ^ zeilemaker, n., capotă, m., bakker, a., & pouwelse, j. ( ). "tribler p p media search and sharing." proceedings of the th acm international conference on multimedia - mm ’ . ^ "decentralizedrecommendation –". tribler.org. archived from the original on december . retrieved july . ^ wong, bernard; vigfusson, ymir; gun sirer, emin ( may ). "hyperspaces for object clustering and approximate matching in peer-to-peer overlays" (pdf). cornell university. archived (pdf) from the original on june . retrieved april . ^ wong, bernard ( ). "cubit: approximate matching for peer-to-peer overlays". cornell university. archived from the original on december . retrieved may . ^ wong, bernard. "approximate matching for peer-to-peer overlays with cubit" (pdf). cornell university. archived (pdf) from the original on october . retrieved may . ^ "torrent exchange". archived from the original on october . retrieved january . the torrent sharing feature of bitcomet. bitcomet.com. ^ a b tamilmani, karthik ( october ). "studying and enhancing the bittorrent protocol". stony brook university. archived from the original (doc) on november . retrieved may . ^ kaune, sebastian; et al. ( ). "unraveling bittorrent's file unavailability: measurements and analysis". arxiv: . [cs.ni]. ^ d. menasche; et al. ( – december ). content availability and bundling in swarming systems (pdf). conext' . rome, italy: acm via sigcomm.org. isbn  - - - - . archived (pdf) from the original on may . retrieved december . ^ kaune, sebastian; et al. "the seeder promotion problem: measurements, analysis and solution space" (pdf). queen mary's university london. archived (pdf) from the original on august . retrieved july . ^ "bittorrent specification". wiki.theory.org. archived from the original on june . retrieved july .[dubious – discuss] ^ "» bittorrent v ". retrieved september . ^ a b jones, ben ( june ). "bittorrent's dht turns years old". torrentfreak. archived from the original on june . retrieved july . ^ "unofficial bittorrent protocol specification v . ". archived from the original on december . retrieved october .[dubious – discuss] ^ harrison, david ( august ). "private torrents". bittorrent.org. archived from the original on march . retrieved october . ^ "bitcomet banned from growing number of private trackers". archived from the original on march . retrieved october . ^ "i p compared to tor - i p". archived from the original on december . retrieved december . ^ "i phelper howto - vuzewiki". archived from the original on october . retrieved december . ^ "bittorrent over tor isn't a good idea - the tor blog". archived from the original on october . retrieved october . ^ inc., the tor project. "tor project: faq". archived from the original on october . retrieved october . ^ "this website could be the ultimate all-in-one torrent machine". april . archived from the original on april . ^ "torrent from the cloud with seedr - torrentfreak". january . archived from the original on april . retrieved april . ^ "bittorrent-v ". libbittorrent.org. libbittorrent. retrieved october . ^ see, for example, "why bit torrent". archived from the original on january .. tasvideos.org. ^ "sub pop page on bittorrent.com". archived from the original on january . retrieved december . ^ "dgmlive.com". dgmlive.com. archived from the original on november . retrieved july . ^ "vodo – about...". retrieved april . (webcite). ^ cory doctorow ( october ). "vodo: a filesharing service for film-makers". boing boing. happy mutants llc. retrieved april . (webcite) ^ ernesto. "pioneer one, the bittorrent exclusive tv-series continues". torrentfreak. retrieved april . (webcite) ^ "cbc to bittorrent canada's next great prime minister". cbc news. march . archived from the original on june . retrieved march . ^ "bittorrent" (in norwegian). nrkbeta.no. . archived from the original on october . retrieved april . ^ "torrents uploaded by eeuwvandestad". mininova. . archived from the original on november . retrieved april . ^ denters, m. ( august ). "tegenlicht – download california dreaming". vpro.nl. archived from the original on march . retrieved april . ^ bol, m. ( october ). "tegenlicht – vpro gemeengoed" (in dutch). vpro.nl. archived from the original on march . retrieved april . ^ "using bittorrent with amazon s ". archived from the original on march . ^ "blizzard downloader". curse inc. november . archived from the original on march . retrieved november . ^ "world of tanks faq". wargaming. december . archived from the original on december . retrieved december . ^ mj guthrie ( march ). "eve online reconfiguring launcher to use bittorrent". massively.joystiq.com. archived from the original on february . retrieved april . ^ ccp games ( july ). "all quiet on the eve launcher front? – eve community". community.eveonline.com. archived from the original on march . retrieved april . ^ "complete download options list – bittorrent". ubuntu.com. archived from the original on april . retrieved may . ^ hm government ( september ). "combined online information system". data.gov.uk beta. controller of her majesty's stationery office. archived from the original on march . retrieved september . ^ ernesto ( june ). "uk government uses bittorrent to share public spending data". torrentfreak. archived from the original on october . retrieved september . ^ "hpc data repository". florida state university. archived from the original on april . retrieved april . ^ costa, fernando; silva, luis; fedak, gilles; kelley, ian ( ). "optimizing the data distribution layer of boinc with bit torrent". ieee international symposium on parallel and distributed processing. ieee international symposium on parallel and distributed processing, . ipdps . ieee. p.  . doi: . /ipdps. . . isbn  - - - - . s cid  .(registration required) ^ "torrents help researchers worldwide to study babies' brains". torrent freak. june . archived from the original on january . retrieved january . ^ "academic torrents website". retrieved may . ^ miccoli, fräntz ( ). "academic torrents: bringing p p technology to the academic world". mysciencework. retrieved may . ^ ernesto ( june ). "facebook uses bittorrent, and they love it". torrent freak. torrent freak. archived from the original on april . retrieved september . ^ ernesto ( february ). "twitter uses bittorrent for server deployment". torrent freak. torrent freak. archived from the original on march . retrieved september . ^ ernesto ( july ). "bittorrent makes twitter's server deployment x faster". torrent freak. torrent freak. archived from the original on march . retrieved september . ^ a b ernesto ( august ). "internet archive starts seeding , , torrents". torrentfreak. archived from the original on august . retrieved august . ^ "hot list for bt .us.archive.org (updated august , , :  pm pdt)". archived from the original on august . retrieved august .. archive.org. ^ "welcome to archive torrents". archived from the original on january . retrieved december .. archive.org. . ^ carr, austin ( january ). "bittorrent has more users than netflix and hulu combined—and doubled". fastcompany.com. archived from the original on january . retrieved july . ^ hartley, matt ( july ). "bittorrent turns ten". financialpost.com. archived from the original on november . retrieved july . ^ "at&t patents system to 'fast-lane' bittorrent traffic". thestack.com. may . archived from the original on february . retrieved march . ^ "faq:modems/routers that are known to have problems with p p apps". utorrent.com. archived from the original on september . retrieved april . ^ halkes, gertjan; pouwelse, johan ( ). jordi domingo-pascual; et al. (eds.). udp nat and firewall puncturing in the wild. networking : th international ifip tc networking conference, valencia, spain, may – , , proceedings. springer. p.  . isbn  . archived from the original on may . retrieved april . ^ "vuze changelog". azureus.sourceforge.net. archived from the original on december . ^ "dht bootstrap update | the bittorrent engineering blog". engineering.bittorrent.com. retrieved november . ^ github - bittorrent/bootstrap-dht: dht bootstrap server, bittorrent inc., november , retrieved november ^ wang, liang; kangasharju, jussi. ( ). "measuring large-scale distributed systems: case of bittorrent mainline dht" (pdf). ieee peer-to-peer. archived (pdf) from the original on may . retrieved may . ^ "khashmir.sourceforge.net". khashmir.sourceforge.net. archived from the original on july . retrieved july . ^ "plugins.vuze.com". plugins.vuze.com. archived from the original on august . retrieved july . ^ "http-based seeding specification". bittornado.com. archived from the original (txt) on march . retrieved may . ^ john hoffman, dehacked ( february ). "http seeding – bittorrent enhancement proposal № ". archived from the original on december . retrieved february . ^ "http/ftp seeding for bittorrent". getright.com. archived from the original on december . retrieved march . ^ michael burford ( february ). "webseed – http/ftp seeding (getright style) – bittorrent enhancement proposal № ". bittorrent.org. archived from the original on december . retrieved february . ^ "burn any web-hosted file into a torrent with burnbit". torrentfreak. september . archived from the original on august . retrieved july . ^ "php based torrent file creator, tracker and seed server". phptracker. archived from the original on december . retrieved july . ^ gillmor, steve ( december ). "bittorrent and rss create disruptive revolution". eweek.com. retrieved april . ^ miller, ernest ( march ). "bittorrent + rss = the new broadcast". archived from the original on october .. the importance of... corante.com. ^ raymond, scott ( december ). "broadcatching with bittorrent". scottraymond.net. archived from the original on february . ^ "movedigital api rest functions". move digital. . archived from the original on august . retrieved may . documentation. ^ "prodigem enclosure puller(pep.txt)". prodigem.com. archived from the original (txt) on may . retrieved may . via internet wayback machine. ^ "encrypting bittorrent to take out traffic shapers". torrentfreak.com. february . archived from the original on march . retrieved may . ^ "comcast throttles bittorrent traffic, seeding impossible". archived from the original on october ., torrentfreak, august . ^ broache, anne ( march ). "comcast and bittorrent agree to collaborate". news.com. archived from the original on may . retrieved july . ^ soghoian, chris ( september ). "is comcast's bittorrent filtering violating the law?". cnet.com. archived from the original on july . retrieved july . ^ "bep : multitracker metadata extension". bittorrent inc. archived from the original on december . retrieved march . ^ "p p:protocol:specifications:multitracker". wiki.depthstrike.com. archived from the original on march . retrieved november .[dubious – discuss] ^ johnston, casey ( december ). "arstechnica.com". arstechnica.com. archived from the original on december . retrieved july . ^ van der sar, ernesto ( december ). "thunder blasts utorrent's market share away". torrentfreak. archived from the original on december . retrieved september . ^ "utorrent dominates bittorrent client market share". torrentfreak. june . archived from the original on april . retrieved june . ^ "windows public file sharing market share ". opswat. archived from the original on april . retrieved april . ^ henry, alan. "most popular bittorrent client ". lifehacker. archived from the original on april . retrieved april . ^ "torrent server combines a file server with p p file sharing". turnkeylinux.org. archived from the original on july . retrieved july . ^ anderson, nate ( february ). "does network neutrality mean an end to bittorrent throttling?". ars technica, llc. archived from the original on december . retrieved february . ^ mark. "how to stream movies and download torrent files in brave browser". browser pulse. retrieved october . ^ "is torrenting safe? is it illegal? are you likely to be caught?". november . archived from the original on october . retrieved october . ^ "the piratebay is down: raided by the swedish police". torrentfreak. may . archived from the original on april . retrieved may . ^ "technical report: an estimate of infringing use of the internet" (pdf). envisional. january . archived (pdf) from the original on april . retrieved may . ^ "bittorrent: copyright lawyers' favourite target reaches , lawsuits". the guardian. august . archived from the original on december . retrieved january . ^ albanesius, chloe ( april ). "u.k. high court orders isps to block the pirate bay". pc magazine. archived from the original on may . retrieved may . ^ adamsky, florian ( ). "p p file-sharing in hell: exploiting bittorrent vulnerabilities to launch distributed reflective dos attacks". archived from the original on october . retrieved august . ^ berns, andrew d.; jung, eunjin (ej) ( april ). "searching for malware in bit torrent". university of iowa, via techrepublic. archived from the original on may . retrieved april .(registration required) ^ vegge, håvard; halvorsen, finn michael; nergård, rune walsø ( ), "where only fools dare to tread: an empirical study on the prevalence of zero-day malware" (pdf), fourth international conference on internet monitoring and protection, ieee computer society, p.  , doi: . /icimp. . , isbn  - - - - , s cid  , archived from the original (pdf (orig. work + pub. paper)) on june further reading[edit] pouwelse, johan; et al. ( ). "the bittorrent p p file-sharing system: measurements and analysis". peer-to-peer systems iv. lecture notes in computer science. . berlin: springer. pp.  – . doi: . / _ . isbn  - - - - . retrieved september . external links[edit] wikimedia commons has media related to bittorrent. official website specification bittorrent at curlie interview with chief executive ashwin navin unofficial bittorrent protocol specification v . at wiki.theory.org unofficial bittorrent location-aware protocol . specification at wiki.theory.org czerniawski, michal ( december ). "responsibility of bittorrent search engines for copyright infringements". ssrn. doi: . /ssrn. . ssrn  . cite journal requires |journal= (help) cohen, bram ( february ). "under the hood of bittorrent". computer systems colloquium (ee ). stanford university. v t e cloud computing as a service content as a service data as a service desktop as a service function as a service infrastructure as a service integration platform as a service mobile backend as a service network as a service platform as a service security as a service software as a service technologies cloud database cloud storage data centers distributed file system for cloud hardware virtualization internet native cloud application networking security structured storage virtual appliance web apis virtual private cloud applications box dropbox google workspace drive hp cloud (closed) ibm cloud microsoft office onedrive oracle cloud rackspace salesforce workday zoho platforms alibaba cloud amazon web services appscale box bluemix cloudbolt cloud foundry cocaine (paas) creatio engine yard helion ge predix google app engine greenqloud heroku ibm cloud inktank jelastic mendix microsoft azure mindsphere netlify oracle cloud outsystems openqrm openshift pythonanywhere rightscale scalr force.com sap cloud platform splunk vmware vcloud air wavemaker infrastructure alibaba cloud amazon web services abiquo enterprise edition cloudstack citrix cloud ctrls digitalocean emc atmos eucalyptus fujitsu gogrid google cloud platform greenbutton greenqloud ibm cloud iland joyent linode lunacloud microsoft azure mirantis netlify nimbula nimbus openio opennebula openstack oracle cloud orionvm rackspace cloud safe swiss cloud softlayer zadara storage libvirt libguestfs ovirt virtual machine manager wakame-vdc virtual private cloud ondemand category commons v t e bittorrent companies bittorrent, inc. vuze, inc. people bram cohen ross cohen eric klinker ashwin navin justin sun technology glossary broadcatching distributed hash tables dna i p index local peer discovery peer exchange protocol encryption super-seeding tracker torrent file tcp udp µtp webrtc webtorrent clients (comparison, usage share) ares galaxy bittorrent (original client) bitcomet bitlord deluge free download manager flashget frostwire getright go!zilla ktorrent libtorrent (library) limewire µtorrent miro mldonkey qbittorrent rtorrent shareaza tixati transmission tribler vuze (formerly azureus) webtorrent desktop xunlei tracker software (comparison) opentracker peertracker torrentpier xbt tracker search engines (comparison) x btdigg demonoid etree extratorrent eztv isohunt karagarga kickasstorrents nyaa torrents the pirate bay rarbg tamil rockers torrentz yify yourbittorrent defunct websites btjunkie burnbit lokitorrent mininova oink's pink palace openbittorrent suprnova.org t torrent project torrentspy what.cd youtorrent related topics axxo bittorrent open source license glossary of bittorrent terms popcorn time slyck.com torrentfreak category commons v t e peer-to-peer file sharing networks, protocols centralized direct connect opennap soribada soulseek decentralized ares bittorrent dat edonkey fasttrack freenet gnunet gnutella gnutella i p ipfs kad lbry openft perfect dark retroshare share tribler webtorrent winmx winny zeronet historic audiogalaxy cutemx entropy kazaa limewire morpheus overnet napster scour waste comparisons of clients advanced direct connect bittorrent direct connect edonkey gnutella gnutella webtorrent hyperlinks ed k magnet metalink uses backup broadcatching segmented file transfer disk sharing game & video sharing image sharing music sharing peercasting sharing software web hosting (freesite, ipfs, zeronet) legal aspects concepts privacy anonymous p p darknet darkweb friend-to-friend open music model private p p tor internal technologies dht merkle tree nat traversal pex protocol encryption sha- super-seeding tracker udp hole punching µtp retrieved from "https://en.wikipedia.org/w/index.php?title=bittorrent&oldid= " categories: bittorrent computer-related introductions in application layer protocols web . file sharing hidden categories: all accuracy disputes articles with disputed statements from april cs norwegian-language sources (no) cs dutch-language sources (nl) pages with login required references or sources articles with short description short description matches wikidata use dmy dates from july articles containing potentially dated statements from february all articles containing potentially dated statements articles containing potentially dated statements from june articles containing potentially dated statements from articles containing potentially dated statements from january all articles with unsourced statements articles with unsourced statements from january articles containing potentially dated statements from articles with unsourced statements from november articles containing potentially dated statements from december commons category link is on wikidata official website different in wikidata and wikipedia articles with curlie links cs errors: missing periodical navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version in other projects wikimedia commons languages afrikaans العربية asturianu azərbaycanca Беларуская Български bosanski català Čeština cymraeg dansk deutsch eesti Ελληνικά español esperanto euskara فارسی français galego 한국어 हिन्दी hrvatski ilokano bahasa indonesia italiano עברית ქართული kurdî latviešu lietuvių magyar മലയാളം मराठी bahasa melayu nederlands 日本語 norsk bokmål norsk nynorsk polski português română Русский shqip සිංහල simple english slovenčina slovenščina Српски / srpski srpskohrvatski / српскохрватски suomi svenska தமிழ் Татарча/tatarça ไทย türkçe Українська اردو tiếng việt 吴语 粵語 中文 edit links this page was last edited on april , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement library tech talk blog | u-m library skip to main content log in library tech talk technology innovations and project updates from the u-m library i.t. division search library tech talk subscribe to rss feed get updates via email (u-m only) popular posts for library tech talk library it services portfolio keys to a dazzling library website redesign sweet sixteen: digital collections completed july - june adding ordered metadata fields to samvera hyrax sinking our teeth into metadata improvement tags in library tech talk hathitrust library website mlibrary labs dlxs web content strategy mirlyn digital collections digitization search design mtagger oai accessibility usability group ux archive for library tech talk show october ( ) september ( ) august ( ) july ( ) june ( ) april ( ) march ( ) january ( ) show october ( ) june ( ) april ( ) february ( ) january ( ) show december ( ) november ( ) september ( ) july ( ) april ( ) february ( ) show older show november ( ) september ( ) august ( ) june ( ) april ( ) march ( ) february ( ) january ( ) show december ( ) november ( ) august ( ) june ( ) april ( ) march ( ) february ( ) january ( ) show december ( ) november ( ) october ( ) september ( ) july ( ) june ( ) may ( ) april ( ) march ( ) february ( ) january ( ) show december ( ) november ( ) october ( ) september ( ) august ( ) july ( ) june ( ) show december ( ) october ( ) september ( ) april ( ) march ( ) january ( ) show august ( ) july ( ) june ( ) may ( ) show december ( ) november ( ) september ( ) july ( ) may ( ) april ( ) march ( ) show december ( ) october ( ) september ( ) august ( ) july ( ) may ( ) february ( ) january ( ) show december ( ) november ( ) october ( ) september ( ) august ( ) july ( ) june ( ) may ( ) library it services portfolio academic library service portfolios are mostly a mix of big to small strategic initiatives and tactical projects. systems developed in the past can become a durable bedrock of workflows and services around the library, remaining relevant and needed for five, ten, and sometimes as long as twenty years. there is, of course, never enough time and resources to do everything. the challenge faced by library it divisions is to balance the tension of sustaining these legacy systems while continuing to... october , see all posts by nabeela jaffer keys to a dazzling library website redesign the u-m library launched a completely new primary website in july after years of work. the redesign project team focused on building a strong team, internal communication, content strategy, and practicing needs informed design and development to make the project a success. september , see all posts by heidi steiner burkhardt sweet sixteen: digital collections completed july - june digital content & collections (dcc) relies on content and subject experts to bring us new digital collections. this year, digital collections were created or significantly enhanced. here you will find links to videos and articles by the subject experts speaking in their own words about the digital collections they were involved in and why they found it so important to engage in this work with us. thank you to all of the people involved in each of these digital collections! august , see all posts by lauren havens adding ordered metadata fields to samvera hyrax how to add ordered metadata fields in samvera hyrax. includes example code and links to actual code. july , see all posts by fritz freiheit sinking our teeth into metadata improvement like many attempts at revisiting older materials, working with a couple dozen volumes of dental pamphlets started very simply but ended up being an interesting opportunity to explore the challenges of making the diverse range of materials held in libraries accessible to patrons in a digital environment. and while improving metadata may not sound glamorous, having sufficient metadata for users to be able to find what they are looking for is essential for the utility of digital libraries. june , see all posts by jackson huang collaboration and generosity provide the missing issue of the american jewess what started with a bit of wondering and conversation within our unit of the library led to my reaching out to princeton university with a request but no expectations of having that request fulfilled. individuals at princeton, however, considered the request and agreed to provide us with the single issue of the american jewess that we needed to complete the full run of the periodical within our digital collection. especially in these stressful times, we are delighted to bring you a positive... june , see all posts by lauren havens how to stop being negative, or digitizing the harry a. franck film collection this article reviews how , + frames of photographic negatives from the harry a. franck collection are being digitally preserved. april , see all posts by larry wentzel pager page of … older posts library contact information university of michigan library hatcher graduate library south, s. university avenue ann arbor, mi - ( ) - | contact-mlibrary@umich.edu except where otherwise noted, this work is subject to a creative commons attribution . license. for details and exceptions, see the library copyright policy. © , regents of the university of michigan participatory mapping with google forms, google sh... - esri community community all communities products arcgis survey arcgis pro arcgis online arcgis enterprise data management geoprocessing arcgis web appbuilder arcgis collector arcgis spatial analyst arcgis cityengine imagery and remote sensing arcgis dashboards all products communities industries education water resources gas and pipeline state & local government transportation water utilities telecommunications roads and highways natural resources electric science commercial all industries communities developers python arcgis api for javascript arcgis runtime sdks arcobjects sdk arcgis api for python arcgis pro sdk developers - general arcgis api for silverlight (retired) arcgis api for flex (retired) arcgis rest api arcgis for windows mobile (retired) file geodatabase api all developers communities worldwide comunidad esri colombia - ecuador - panamá arcgis 開発者コミュニティ arcnesia esri india geodev germany czech gis arcgis content - esri nederland esri italia community swiss geo community geodev switzerland comunidad geotec esri ireland all worldwide communities all communities products developers user groups industries services worldwide community basics events arcgis topics learning networks view all communities arcgis ideas community basics community help documents community blog community feedback member introductions sign in cancel turn on suggestions auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type. showing results for  show  only  | search instead for  did you mean:  cancel home : all communities : industries : education : education blog : participatory mapping with google forms, google sh... participatory mapping with google forms, google sheets, and arcgis online subscribe - - : am labels ( ) labels higher education schools (k - ) by josephkerski esri frequent contributor , subscribe to rss feed mark as new mark as read bookmark subscribe email to a friend printer friendly page report inappropriate content ‎ - - : am i have been receiving questions from schools that have become "google schools" as well as universities and individual researchers who want to use google sheets in arcgis online.  what are the advantages of using google sheets (spreadsheets, really, is what they are) over using an excel spreadsheet on your own computer? google sheets live in the cloud, just like arcgis online, so they can be edited from any device, anywhere, and the author of the sheet can invite others to add data to it, so they can accept input from multiple collaborators, students, and faculty. some educators want to map data that they have input into google sheets.  others want to go to the next level, where multiple students or researchers edit google sheets in a participatory mapping or citizen science environment, and the resulting data is mapped and automatically refreshes as the data continues to be added. both of these scenarios are possible with arcgis online.  to illustrate, i created a form where students are asked, "what country have you visited?", shown below. after students fill out the form, i go to the "responses" zone in google forms, and access the spreadsheet that is created from the data.  now that my data is in my google sheet, i access > file > publish to the web > and change "web page" to "comma separated values (.csv)" file > publish.   then, i copy the resulting url: then, i access my arcgis online account, open a new or existing map > add > add layer from web - csv file > paste your url for my google sheet here.   next, i > add layer > i indicate which fields contain my location information (address, latitude-longitude, city/state/country combination).   that's really all there is to it!  my results are in this map linked here, and shown below: note that i used one of the fun new basemaps in arcgis online that i wrote about here. in another example, this time using cities instead of countries, see this map of the most polluted and least polluted large cities of the world.  students examine spatial patterns and reasons for the pollution (or lack of it) in each city using the map and the metadata here.  i created this map by populating this google sheet, below.  my students could add or more to this sheet and their changes would be reflected in my arcgis online map. here is the map from the data, below.  for those explanatory labels, i used this custom label expression:   $feature.city + " is the #" + " " + $feature.rank + " " + $feature.variable and set the text color to match the point symbol color for clarity.  for more about expressions, see my blog post here. in another example, my colleague created this google sheet of some schools in india by latitude-longitude. then she added the published content from google to her map.  let's explore a bit deeper.  let's say that i wanted to visualize the most commonly visited countries among my students.  i can certainly examine the statistics from my google form, as seen below: however, my goal is really to see this data on a map.  with the analysis tools in arcgis online, this too is quickly done. the aggregate points tool will summarize points in polygons.  for my polygons, i added a generalized world countries map layer, and then used aggregate points to summarize my point data within those countries.  the result is shown below and is visible as a layer in the map i referenced above.  another point worth noting is that you can adjust the settings of how your map interacts with your google sheet.  go to the layer's metadata page, and under “published content & settings”, select "automatically republish when changes are made." you can set the refresh interval to, for example,  minute, but the actual refresh on your map may take somewhat longer because google’s “auto re-publish” isn’t quite "real-time".  then do the following for the layer: note that if you are geocoding by address (such as city/country, as i did above, or street address), the automatic refresh option is not available: to get around this challenge, i manually added the latitude-longitude values to my cities spreadsheet.  thanks to the measure tool in arcgis online, this took less than minute per city.  i simply typed in the city name in arcgis online, and used the location button under the measure tools, clicked on the map where the city was located, and entered the resulting coordinates into my spreadsheet. for more information, see this blog essay.   labels higher education schools (k - ) tags ( ) tags: citizen science crowdsourcing google forms google sheets participatory mapping kudos share comments by josephkerski esri frequent contributor ‎ - - : pm mark as read mark as new bookmark permalink print email to a friend report inappropriate content important update!  because of my experience with not being able to flip the ramp in the top polluted cities map, our awesome development team added the invert button in smart mapping. now you don’t need to write an equation and have a legend from to . see below.  very useful indeed! --joseph kerski  kudo by haleynelson new contributor ii ‎ - - : pm mark as read mark as new bookmark permalink print email to a friend report inappropriate content this is great! will this process work in reverse? for example, will (or can) the google sheets be automatically updated if new points are added to the map, or attributes are updated in the web map? is this a possible workflow? for example, can i connect a feature layer to a google sheet, collect data on that feature layer in survey , and have this data populate in a connected google sheet based on the web map refresh interval? kudo by deleted-user- es ljx rcy new contributor ii ‎ - - : am mark as read mark as new bookmark permalink print email to a friend report inappropriate content anybody knows how to secure the published google sheets data? we want to bring the google sheet data to agol but google clearly states that data is not secured.  kudos by florentbigirimana new contributor iii ‎ - - : am mark as read mark as new bookmark permalink print email to a friend report inappropriate content i have created a google sheet with some records and managed to have the data from it on my web map as a web layer. one thing i was expecting is when values are updated form the google sheet, automatically the value is also updated on my layer in web map. however this is not happening. what am i missing ? kudos you must be a registered user to add a comment. if you've already registered, sign in. otherwise, register and sign in. comment about the author i believe that spatial thinking can transform education and society through the application of geographic information systems for instruction, research, administration, and policy. i hold degrees in geography, have served at noaa, the us census bureau, and usgs as a cartographer and geographer, and teach a variety of f f (face to face) (including t g) and online courses. i have authored a variety of books and textbooks about the environment, stem, gis, and education. these include "interpreting our world", "essentials of the environment", "tribal gis", "the gis guide to public domain data", "international perspectives on teaching and learning with gis in secondary education", "spatial mathematics" and others. i write for blogs, monthly podcasts, and a variety of journals, and have created over , videos on the our earth youtube channel. yet, as time passes, the more i realize my own limitations and that this is a lifelong learning endeavor and thus i actively seek mentors and collaborators. labels curriculum-learning resources education facilities geoinquiries higher education informal education licensing best practices pedagogy and education theory schools (k - ) schools (k- ) stem students - higher education students - k- schools success stories teacherdesk tech tips terms of use community guidelines community basics privacy trust center legal contact esri link rot - wikipedia link rot from wikipedia, the free encyclopedia jump to navigation jump to search for link rot in wikipedia, see wikipedia:link rot. phenomenon of urls tending to cease functioning link rot (also called link death, link breaking, or reference rot) is the phenomenon of hyperlinks tending over time to cease to point to their originally targeted file, web page, or server due to that resource being relocated to a new address or becoming permanently unavailable. a link that no longer points to its target, often called a broken or dead link, is a specific form of dangling pointer. the rate of link rot is a subject of study and research due to its significance to the internet's ability to preserve information. estimates of that rate vary dramatically between studies. contents prevalence causes prevention and detection see also further reading notes & references external links prevalence[edit] a number of studies have examined the prevalence of link rot within the world wide web, in academic literature that uses urls to cite web content, and within digital libraries. a study found that on the web, about one link out of every broke each week,[ ] suggesting a half-life of weeks. this rate was largely confirmed by a – study of links in yahoo! directory (which had stopped updating in after years of development) that found the half-life of the directory's links to be two years.[ ] a study showed that subsets of web links (such as those targeting specific file types or those hosted by academic institution) could have dramatically different half-lives.[ ] the urls selected for publication appear to have greater longevity than the average url. a study by weblock analyzed more than , links from references in the full-text corpora of three major open access publishers and found a half-life of about years,[ ] generally confirming a study that found that half of the urls cited in d-lib magazine articles were active years after publication.[ ] other studies have found higher rates of link rot in academic literature but typically suggest a half-life of four years or greater.[ ][ ] a study in bmc bioinformatics analyzed nearly , links in abstracts from thomson reuters's web of science citation index and found that the median lifespan of web pages was . years, and just % were archived.[ ] a study suggested that link rot within digital libraries is considerably slower than on the web, finding that about % of the objects were no longer accessible after one year[ ] (equating to a half-life of nearly years). causes[edit] link rot can result from several occurrences. a target web page may be removed. the server that hosts the target page could fail, be removed from service, or relocate to a new domain name. a domain name's registration may lapse or be transferred to another party. some causes will result in the link failing to find any target and returning an error such as http . other causes will cause a link to target content other than what was intended by the link's author. other reasons for broken links include: the restructuring of websites that causes changes in urls (e.g. domain.net/pine_tree might be moved to domain.net/tree/pine) relocation of formerly free content to behind a paywall a change in server architecture that results in code such as php functioning differently dynamic page content such as search results that changes by design the presence of user-specific information (such as a login name) within the link deliberate blocking by content filters or firewalls the removal of gtlds[ ] prevention and detection[edit] strategies for preventing link rot can focus on placing content where its likelihood of persisting is higher, authoring links that are less likely to be broken, taking steps to preserve existing links, or repairing links whose targets have been relocated or removed. the creation of urls that will not change with time is the fundamental method of preventing link rot. preventive planning has been championed by tim berners-lee and other web pioneers.[ ] strategies pertaining to the authorship of links include: linking to primary rather than secondary sources and prioritizing stable sites[citation needed] avoiding links that point to resources on researchers' personal pages[ ] using clean urls[ ] or otherwise employing url normalization or url canonicalization using permalinks and persistent identifiers such as arks, dois, handle system references, and purls avoiding linking to documents other than web pages[ ] avoiding deep linking linking to web archives such as the internet archive,[ ] webcite,[ ] archive.is, perma.cc,[ ] or amber[ ] strategies pertaining to the protection of existing links include: using redirection mechanisms such as http to automatically refer browsers and crawlers to relocated content using content management systems which can automatically update links when content within the same site is relocated or automatically replace links with canonical urls[ ] integrating search resources into http pages[ ] the detection of broken links may be done manually or automatically. automated methods include plug-ins for content management systems as well as standalone broken-link checkers such as like xenu's link sleuth. automatic checking may not detect links that return a soft or links that return a ok response but point to content that has changed.[ ] see also[edit] software rot digital preservation deletionism and inclusionism in wikipedia further reading[edit] markwell, john; brooks, david w. ( ). "broken links: the ephemeral nature of educational www hyperlinks". journal of science education and technology. ( ): – . doi: . /a: . gomes, daniel; silva, mário j. ( ). "modelling information persistence on the web" (pdf). proceedings of the th international conference on web engineering. icwe' . archived from the original (pdf) on - - . retrieved september . dellavalle, robert p.; hester, eric j.; heilig, lauren f.; drake, amanda l.; kuntzman, jeff w.; graber, marla; schilling, lisa m. ( ). "going, going, gone: lost internet references". science. ( ): – . doi: . /science. . pmid  . koehler, wallace ( ). "an analysis of web page and web site constancy and permanence". journal of the american society for information science. ( ): – . doi: . /(sici) - ( ) : < ::aid-asi > . .co; -b. sellitto, carmine ( ). "the impact of impermanent web-located citations: a study of scholarly conference publications" (pdf). journal of the american society for information science and technology. ( ): – . citeseerx  . . . . . doi: . /asi. . notes & references[edit] notes references ^ fetterly, dennis; manasse, mark; najork, marc; wiener, janet ( ). "a large-scale study of the evolution of web pages". proceedings of the th international conference on world wide web. archived from the original on july . retrieved september . ^ van der graaf, hans. "the half-life of a link is two year". zomdir's blog. archived from the original on - - . retrieved - - . ^ koehler, wallace ( ). "a longitudinal study of web pages continued: a consideration of document persistence". information research. ( ). archived from the original on - - . retrieved - - . ^ "all-time weblock report". august . archived from the original on march . retrieved january . ^ a b mccown, frank; chan, sheffan; nelson, michael l.; bollen, johan ( ). "the availability and persistence of web references in d-lib magazine" (pdf). proceedings of the th international web archiving workshop and digital preservation (iwaw' ). archived from the original (pdf) on - - . retrieved - - . ^ spinellis, diomidis ( ). "the decay and failures of web references". communications of the acm. ( ): – . citeseerx  . . . . . doi: . / . . archived from the original on - - . retrieved - - . ^ steve lawrence; david m. pennock; gary william flake; et al. (march ). "persistence of web references in scientific research". computer. ( ): – . citeseerx  . . . . . doi: . / . . issn  - . wikidata q . ^ hennessey, jason; xijin ge, steven ( ). "a cross disciplinary study of link decay and the effectiveness of mitigation techniques". bmc bioinformatics. : s . doi: . / - - -s -s . pmc  . pmid  . ^ nelson, michael l.; allen, b. danette ( ). "object persistence and availability in digital libraries". d-lib magazine. ( ). doi: . /january -nelson. archived from the original on - - . retrieved - - . ^ "the death of a tld". blog.benjojo.co.uk. archived from the original on - - . retrieved - - . ^ berners-lee, tim ( ). "cool uris don't change". archived from the original on - - . retrieved - - . ^ a b kille, leighton walter ( november ). "the growing problem of internet "link rot" and best practices for media and online publishers". journalist's resource, harvard kennedy school. archived from the original on january . retrieved january . ^ "internet archive: digital library of free books, movies, music & wayback machine". - - . archived from the original on january . retrieved october . ^ eysenbach, gunther; trudel, mathieu ( ). "going, going, still there: using the webcite service to permanently archive cited web pages". journal of medical internet research. ( ): e . doi: . /jmir. . .e . pmc  . pmid  . ^ zittrain, jonathan; albert, kendra; lessig, lawrence ( june ). "perma: scoping and addressing the problem of link and reference rot in legal citations" (pdf). legal information management. ( ): – . doi: . /s . archived (pdf) from the original on november . retrieved june . ^ "harvard university's berkman center releases amber, a "mutual aid" tool for bloggers & website owners to help keep the web available | berkman center". cyber.law.harvard.edu. archived from the original on - - . retrieved - - . ^ rønn-jensen, jesper ( - - ). "software eliminates user errors and linkrot". justaddwater.dk. archived from the original on october . retrieved october . ^ mueller, john ( - - ). "fyi on google toolbar's latest features". google webmaster central blog. archived from the original on september . retrieved july . ^ bar-yossef, ziv; broder, andrei z.; kumar, ravi; tomkins, andrew ( ). "sic transit gloria telae: towards an understanding of the web's decay". proceedings of the th international conference on world wide web – www ' . pp.  – . citeseerx  . . . . . doi: . / . . isbn  - . external links[edit] the wikibook authoring webpages has a page on the topic of: preventing link rot future-proofing your uris jakob nielsen, "fighting linkrot", jakob nielsen's alertbox, june , . retrieved from "https://en.wikipedia.org/w/index.php?title=link_rot&oldid= " categories: url data quality product expiration hidden categories: articles with short description short description is different from wikidata all articles with unsourced statements articles with unsourced statements from january articles prone to spam from november navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version in other projects wikimedia commons languages bosanski dansk deutsch eesti español فارسی français 한국어 bahasa indonesia nederlands 日本語 norsk bokmål polski português Русский suomi svenska ไทย türkçe edit links this page was last edited on april , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement erambler erambler recent content on erambler intro to the fediverse wow, it turns out to be years since i wrote this beginners guide to twitter. things have moved on a loooooong way since then. far from being the interesting, disruptive technology it was back then, twitter has become part of the mainstream, the establishment. almost everyone and everything is on twitter now, which has both pros and cons. so what’s the problem? it’s now possible to follow all sorts of useful information feeds, from live updates on transport delays to your favourite sports team’s play-by-play performance to an almost infinite number of cat pictures. in my professional life it’s almost guaranteed that anyone i meet will be on twitter, meaning that i can contact them to follow up at a later date without having to exchange contact details (and they have options to block me if they don’t like that). on the other hand, a medium where everyone’s opinion is equally valid regardless of knowledge or life experience has turned some parts of the internet into a toxic swamp of hatred and vitriol. it’s easier than ever to forget that we have more common ground with any random stranger than we have similarities, and that’s led to some truly awful acts and a poisonous political arena. part of the problem here is that each of the social media platforms is controlled by a single entity with almost no accountability to anyone other than shareholders. technological change has been so rapid that the regulatory regime has no idea how to handle them, leaving them largely free to operate how they want. this has led to a whole heap of nasty consequences that many other people have done a much better job of documenting than i could (shoshana zuboff’s book the age of surveillance capitalism is a good example). what i’m going to focus on instead are some possible alternatives. if you accept the above argument, one obvious solution is to break up the effective monopoly enjoyed by facebook, twitter et al. we need to be able to retain the wonderful affordances of social media but democratise control of it, so that it can never be dominated by a small number of overly powerful players. what’s the solution? there’s actually a thing that already exists, that almost everyone is familiar with and that already works like this. it’s email. there are a hundred thousand email servers, but my email can always find your inbox if i know your address because that address identifies both you and the email service you use, and they communicate using the same protocol, simple mail transfer protocol (smtp) . i can’t send a message to your twitter from my facebook though, because they’re completely incompatible, like oil and water. facebook has no idea how to talk to twitter and vice versa (and the companies that control them have zero interest in such interoperability anyway). just like email, a federated social media service like mastodon allows you to use any compatible server, or even run your own, and follow accounts on your home server or anywhere else, even servers running different software as long as they use the same activitypub protocol. there’s no lock-in because you can move to another server any time you like, and interact with all the same people from your new home, just like changing your email address. smaller servers mean that no one server ends up with enough power to take over and control everything, as the social media giants do with their own platforms. but at the same time, a small server with a small moderator team can enforce local policy much more easily and block accounts or whole servers that host trolls, nazis or other poisonous people. how do i try it? i have no problem with anyone for choosing to continue to use what we’re already calling “traditional” social media; frankly, facebook and twitter are still useful for me to keep in touch with a lot of my friends. however, i do think it’s useful to know some of the alternatives if only to make a more informed decision to stick with your current choices. most of these services only ask for an email address when you sign up and use of your real name vs a pseudonym is entirely optional so there’s not really any risk in signing up and giving one a try. that said, make sure you take sensible precautions like not reusing a password from another account. instead of… try… twitter, facebook mastodon, pleroma, misskey slack, discord, irc matrix whatsapp, fb messenger, telegram also matrix instagram, flickr pixelfed youtube peertube the web interplanetary file system (ipfs) which, if you can believe it, was formalised nearly years ago in and has only had fairly minor changes since then! &#x a ;þ e; collaborations workshop : collaborative ideas & hackday my last post covered the more “traditional” lectures-and-panel-sessions approach of the first half of the ssi collaborations workshop. the rest of the workshop was much more interactive, consisting of a discussion session, a collaborative ideas session, and a whole-day hackathon! the discussion session on day one had us choose a topic (from a list of topics proposed leading up to the workshop) and join a breakout room for that topic with the aim of producing a “speed blog” by then end of minutes. those speed blogs will be published on the ssi blog over the coming weeks, so i won’t go into that in more detail. the collaborative ideas session is a way of generating hackday ideas, by putting people together at random into small groups to each raise a topic of interest to them before discussing and coming up with a combined idea for a hackday project. because of the serendipitous nature of the groupings, it’s a really good way of generating new ideas from unexpected combinations of individual interests. after that, all the ideas from the session, along with a few others proposed by various participants, were pitched as ideas for the hackday and people started to form teams. not every idea pitched gets worked on during the hackday, but in the end teams of roughly equal size formed to spend the third day working together. my team’s project: “aha! an arts & humanities adventure” there’s a lot of fomo around choosing which team to join for an event like this: there were so many good ideas and i wanted to work on several of them! in the end i settled on a team developing an escape room concept to help arts & humanities scholars understand the benefits of working with research software engineers for their research. five of us rapidly mapped out an example storyline for an escape room, got a website set up with github and populated it with the first few stages of the game. we decided to focus on a story that would help the reader get to grips with what an api is and i’m amazed how much we managed to get done in less than a day’s work! you can try playing through the escape room (so far) yourself on the web, or take a look at the github repository, which contains the source of the website along with a list of outstanding tasks to work on if you’re interested in contributing. i’m not sure yet whether this project has enough momentum to keep going, but it was a really valuable way both of getting to know and building trust with some new people and demonstrating the concept is worth more work. other projects here’s a brief rundown of the other projects worked on by teams on the day. coding confessions everyone starts somewhere and everyone cuts corners from time to time. real developers copy and paste! fight imposter syndrome by looking through some of these confessions or contributing your own. https://coding-confessions.github.io/ carpenpi a template to set up a raspberry pi with everything you need to run a carpentries (https://carpentries.org/) data science/software engineering workshop in a remote location without internet access. https://github.com/carpenpi/docs/wiki research dugnads a guide to running an event that is a coming together of a research group or team to share knowledge, pass on skills, tidy and review code, among other software and working best practices (based on the norwegian concept of a dugnad, a form of “voluntary work done together with other people”) https://research-dugnads.github.io/dugnads-hq/ collaborations workshop ideas a meta-project to collect together pitches and ideas from previous collaborations workshop conferences and hackdays, to analyse patterns and revisit ideas whose time might now have come. https://github.com/robintw/cw-ideas howdescribedis integrate existing tools to improve the machine-readable metadata attached to open research projects by integrating projects like somef, codemeta.json and howfairis (https://howfairis.readthedocs.io/en/latest/index.html). complete with ci and badges! https://github.com/knowledgecaptureanddiscovery/somef-github-action software end-of-project plans develop a template to plan and communicate what will happen when the fixed-term project funding for your research software ends. will maintenance continue? when will the project sunset? who owns the ip? https://github.com/elichad/software-twilight habeas corpus a corpus of machine readable data about software used in covid- related research, based on the cord dataset. https://github.com/softwaresaved/habeas-corpus credit-all extend the all-contributors github bot (https://allcontributors.org/) to include rich information about research project contributions such as the casrai contributor roles taxonomy (https://casrai.org/credit/) https://github.com/dokempf/credit-all i’m excited to see so many metadata-related projects! i plan to take a closer look at what the habeas corpus, credit-all and howdescribedis teams did when i get time. i also really want to try running a dugnad with my team or for the glam data science network. collaborations workshop : talks & panel session i’ve just finished attending (online) the three days of this year’s ssi collaborations workshop (cw for short), and once again it’s been a brilliant experience, as well as mentally exhausting, so i thought i’d better get a summary down while it’s still fresh it my mind. collaborations workshop is, as the name suggests, much more focused on facilitating collaborations than a typical conference, and has settled into a structure that starts off with with longer keynotes and lectures, and progressively gets more interactive culminating with a hack day on the third day. that’s a lot to write about, so for this post i’ll focus on the talks and panel session, and follow up with another post about the collaborative bits. i’ll also probably need to come back and add in more links to bits and pieces once slides and the “official” summary of the event become available. updates - - added links to recordings of keynotes and panel sessions provocations the first day began with two keynotes on this year’s main themes: fair research software and diversity & inclusion, and day had a great panel session focused on disability. all three were streamed live and the recordings remain available on youtube: view the keynotes recording; google-free alternative link view the panel session recording; google-free alternative link fair research software dr michelle barker, director of the research software alliance, spoke on the challenges to recognition of software as part of the scholarly record: software is not often cited. the fair rs working group has been set up to investigate and create guidance on how the fair principles for data can be adapted to research software as well; as they stand, the principles are not ideally suited to software. this work will only be the beginning though, as we will also need metrics, training, career paths and much more. resa itself has focus areas: people, policy and infrastructure. if you’re interested in getting more involved in this, you can join the resa email list. equality, diversity & inclusion: how to go about it dr chonnettia jones, vice president of research, michael smith foundation for health research spoke extensively and persuasively on the need for equality, diversity & inclusion (edi) initiatives within research, as there is abundant robust evidence that all research outcomes are improved. she highlighted the difficulties current approaches to edi have effecting structural change, and changing not just individual behaviours but the cultures & practices that perpetuate iniquity. what initiatives are often constructed around making up for individual deficits, a bitter framing is to start from an understanding of individuals having equal stature but having different tired experiences. commenting on the current focus on “research excellent” she pointed out that the hyper-competition this promotes is deeply unhealthy. suggesting instead that true excellence requires diversity, and we should focus on an inclusive excellence driven by inclusive leadership. equality, diversity & inclusion: disability issues day ’s edi panel session brought together five disabled academics to discuss the problems of disability in research. dr becca wilson, ukri innovation fellow, institute of population health science, university of liverpool (chair) phoenix c s andrews (phd student, information studies, university of sheffield and freelance writer) dr ella gale (research associate and machine learning subject specialist, school of chemistry, university of bristol) prof robert stevens (professor and head of department of computer science, university of manchester) dr robin wilson (freelance data scientist and ssi fellow) nb. the discussion flowed quite freely so the following summary, so the following summary mixes up input from all the panel members. researchers are often assumed to be single-minded in following their research calling, and aptness for jobs is often partly judged on “time send”, which disadvantages any disabled person who has been forced to take a career break. on top of this disabled people are often time-poor because of the extra time needed to manage their condition, leaving them with less “output” to show for their time served on many common metrics. this can partially affect early-career researchers, since resources for these are often restricted on a “years-since-phd” criterion. time poverty also makes funding with short deadlines that much harder to apply for. employers add more demands right from the start: new starters are typically expected to complete a health and safety form, generally a brief affair that will suddenly become an -page bureaucratic nightmare if you tick the box declaring a disability. many employers claim to be inclusive yet utterly fail to understand the needs of their disabled staff. wheelchairs are liberating for those who use them (despite the awful but common phrase “wheelchair-bound”) and yet employers will refuse to insure a wheelchair while travelling for work, classifying it as a “high value personal item” that the owner would take the same responsibility for as an expensive camera. computers open up the world for blind people in a way that was never possible without them, but it’s not unusual for mandatory training to be inaccessible to screen readers. some of these barriers can be overcome, but doing so takes yet more time that could and should be spent on more important work. what can we do about it? academia works on patronage whether we like it or not, so be the person who supports people who are different to you rather than focusing on the one you “recognise yourself in” to mentor. as a manager, it’s important to ask each individual what they need and believe them: they are the expert in their own condition and their lived experience of it. don’t assume that because someone else in your organisation with the same disability needs one set of accommodations, it’s invalid for your staff member to require something totally different. and remember: disability is unusual as a protected characteristic in that anyone can acquire it at any time without warning! lightning talks lightning talk sessions are always tricky to summarise, and while this doesn’t do them justice, here are a few highlights from my notes. data & metadata malin sandstrom talked about a much-needed refinement of contributor role taxonomies for scientific computing stephan druskat showcased a project to crowdsource a corpus of research software for further analysis learning & teaching/community matthew bluteau introduced the concept of the “coding dojo” as a way to enhance community of practice. a group of coders got together to practice & learn by working together to solve a problem and explaining their work as they go he described models: a code jam, where people work in small groups, and the randori method, where people do pair programming while the rest observe. i’m excited to try this out! steve crouch talked about intermediate skills and helping people take the next step, which i’m also very interested in with the glam data science network esther plomp recounted experience of running multiple carpentry workshops online, while diego alonso alvarez discussed planned workshops on making research software more usable with guis shoaib sufi showcased the ssi’s new event organising guide caroline jay reported on a diary study into autonomy & agency in rse during covid lopez, t., jay, c., wermelinger, m., & sharp, h. ( ). how has the covid- pandemic affected working conditions for research software engineers? unpublished manuscript. wrapping up that’s not everything! but this post is getting pretty long so i’ll wrap up for now. i’ll try to follow up soon with a summary of the “collaborative” part of collaborations workshop: the idea-generating sessions and hackday! time for a new look... i’ve decided to try switching this website back to using hugo to manage the content and generate the static html pages. i’ve been on the python-based nikola for a few years now, but recently i’ve been finding it quite slow, and very confusing to understand how to do certain things. i used hugo recently for the glam data science network website and found it had come on a lot since the last time i was using it, so i thought i’d give it another go, and redesign this site to be a bit more minimal at the same time. the theme is still a work in progress so it’ll probably look a bit rough around the edges for a while, but i think i’m happy enough to publish it now. when i get round to it i might publish some more detailed thoughts on the design. ideas for accessible communications the disability support network at work recently ran a survey on “accessible communications”, to develop guidance on how to make communications (especially internal staff comms) more accessible to everyone. i grabbed a copy of my submission because i thought it would be useful to share more widely, so here it is. please note that these are based on my own experiences only. i am in no way suggesting that these are the only things you would need to do to ensure your communications are fully accessible. they’re just some things to keep in mind. policies/procedures/guidance can be stressful to use if anything is vague or inconsistent, or if it looks like there might be more information implied than is explicitly given (a common cause of this is use of jargon in e.g. hr policies). emails relating to these policies have similar problems, made worse because they tend to be very brief. online meetings can be very helpful, but can also be exhausting, especially if there are too many people, or not enough structure. larger meetings & webinars without agendas (or where the agenda is ignored, or timings are allowed to drift without acknowledgement) are very stressful, as are those where there is not enough structure to ensure fair opportunities to contribute. written reference documents and communications should: be carefully checked for consistency and clarity have all all key points explicitly stated explicitly acknowledge the need for flexibility where it is necessary, rather than implying or hinting at it clearly define jargon & acronyms where they are necessary to the point being made, and avoid them otherwise include links to longer, more explicit versions where space is tight provide clear bullet-point summaries with links to the details online meetings should: include sufficient break time (at least minutes out of every hour) and not allow this to be compromised just because a speaker has misjudged the length of their talk include initial “settling-in” time in agendas to avoid timing getting messed up from the start ensure the agenda is stuck to, or that divergence from the agenda is acknowledged explicitly by the chair and updated timing briefly discussed to ensure everyone is clear establish a norm for participation at the start of the meeting and stick to it e.g. ask people to raise hands when they have a point to make, or have specific time for round-robin contributions ensure quiet/introverted people have space to contribute, but don’t force them to do so if they have nothing to add at the time offer a text-based alternative to contributing verbally if appropriate, at the start of the meeting assign specific roles of: gatekeeper: ensures everyone has a chance to contribute timekeeper: ensures meeting runs to time scribe: ensures a consistent record of the meeting be chaired by someone with the confidence to enforce the above: offer training to all staff on chairing meetings to ensure everyone has the skills to run a meeting effectively matrix self-hosting i started running my own matrix server a little while ago. matrix is something rather cool, a chat system similar to irc or slack, but open and federated. open in that the standard is available for anyone to view, but also the reference implementations of server and client are open source, along with many other clients and a couple of nascent alternative servers. federated in that, like email, it doesn’t matter what server you sign up with, you can talk to users on your own or any other server. i decided to host my own for three reasons. firstly, to see if i could and to learn from it. secondly, to try and rationalise the cambrian explosion of slack teams i was being added to in . thirdly, to take some control of the loss of access to historical messages in some communities that rely on slack (especially the carpentries and rse communities). since then, i’ve also added a fourth goal: taking advantage of various bridges to bring other messaging network i use (such as signal and telegram) into a consistent ui. i’ve also found that my use of matrix-only rooms has grown as more individuals & communities have adopted the platform. so, i really like matrix and i use it daily. my problem now is whether to keep self-hosting. synapse, the only full server implementation at the moment, is really heavy on memory, so i’ve ended up running it on a much bigger server than i thought i’d need, which seems overkill for a single-user instance. so now i have to make a decision about whether it’s worth keeping going, or shutting it down and going back to matrix.org, or setting up on one of the other servers that have sprung up in the last couple of years. there are a couple of other considerations here. firstly, synapse resource usage is entirely down to the size of the rooms joined by users of the homeowner, not directly the number of users. so if users have mostly overlapping interests, and thus keep to the same rooms, you can support quite a large community without significant extra resource usage. secondly, there are a couple of alternative server implementations in development specifically addressing this issue for small servers. dendrite and conduit. neither are quite ready for what i want yet, but are getting close, and when ready that will allow running small homeservers with much more sensible resource usage. so i could start opening up for other users, and at least justify the size of the server that way. i wouldn’t ever want to make it a paid-for service but perhaps people might be willing to make occasional donations towards running costs. that still leaves me with the question of whether i’m comfortable running a service that others may come to rely on, or being responsible for the safety of their information. i could also hold out for dendrite or conduit to mature enough that i’m ready to try them, which might not be more than a few months off. hmm, seems like i’ve convinced myself to stick with it for now, and we’ll see how it goes. in the meantime, if you know me and you want to try it out let me know and i might risk setting you up with an account! what do you miss least about pre-lockdown life? @janethughes on twitter: what do you miss the least from pre-lockdown life? i absolutely do not miss wandering around the office looking for a meeting room for a confidential call or if i hadn’t managed to book a room in advance. let’s never return to that joyless frustration, hey? : am · feb , after seeing terence eden taking janet hughes' tweet from earlier this month as a writing prompt, i thought i might do the same. the first thing that leaps to my mind is commuting. at various points in my life i’ve spent between one and three hours a day travelling to and from work and i’ve never more than tolerated it at best. it steals time from your day, and societal norms dictate that it’s your leisure & self-care time that must be sacrificed. longer commutes allow more time to get into a book or podcast, especially if not driving, but i’d rather have that time at home rather than trying to be comfortable in a train seat designed for some mythical average man shaped nothing like me! the other thing i don’t miss is the colds and flu! before the pandemic, british culture encouraged working even when ill, which meant constantly coming into contact with people carrying low-grade viruses. i’m not immunocompromised but some allergies and residue of being asthmatic as a child meant that i would get sick - times a year. a pleasant side-effect of the covid precautions we’re all taking is that i haven’t been sick for over months now, which is amazing! finally, i don’t miss having so little control over my environment. one of the things that working from home has made clear is that there are certain unavoidable aspects of working in my shared office that cause me sensory stress, and that are completely unrelated to my work. working (or trying to work) next to a noisy automatic scanner; trying to find a light level that works for different people doing different tasks; lacking somewhere quiet and still to eat lunch and recover from a morning of meetings or the constant vaguely-distracting bustle of a large shared office. it all takes energy. although it’s partly been replaced by the new stress of living through a global pandemic, that old stress was a constant drain on my productivity and mood that had been growing throughout my career as i moved (ironically, given the common assumption that seniority leads to more privacy) into larger and larger open plan offices. remarkable blogging and the handwritten blog saga continues, as i’ve just received my new remarkable tablet, which is designed for reading, writing and nothing else. it uses a super-responsive e-ink display and writing on it with a stylus is a dream. it has a slightly rough texture with just a bit of friction that makes my writing come out a lot more legibly than on a slippery glass touchscreen. if that was all there was to it, i might not have wasted my money, but it turns out that it runs on linux and the makers have wisely decided not to lock it down but to give you full root mess. yes, you read that right: root access. it presents as an ethernet device over usb, so you can ssh in with a password found in the settings and have full control over your own devices. what a novel concept. this fact alone has meant it’s built a small yet devoted community of users who have come up with some clever ways of extending its functionality. in fact, many of these are listed on this github repository. finally, from what i’ve seen so far, the handwriting recognition is impressive to say the least. this post was written on it and needed only a little editing. i think this is a device that will get a lot of use! glam data science network fellow travellers updates - - thanks to gene @dzshuniper@ausglam.space for suggesting adho and a better attribution for the opening quote (see comments below for details) see comments & webmentions for details. “if you want to go fast, go alone. if you want to go far, go together.” — african proverb, probably popularised in english by kenyan church leader rev. samuel kobia (original) this quote is a popular one in the carpentries community, and i interpret it in this context to mean that a group of people working together is more sustainable than individuals pursuing the same goal independently. that’s something that speaks to me, and that i want to make sure is reflected in nurturing this new community for data science in galleries, archives, libraries & museums (glam). to succeed, this work needs to be complementary and collaborative, rather than competitive, so i want to acknowledge a range of other networks & organisations whose activities complement this. the rest of this article is an unavoidably incomplete list of other relevant organisations whose efforts should be acknowledged and potentially built on. and it should go without saying, but just in case: if the work i’m planning fits right into an existing initiative, then i’m happy to direct my resources there rather than duplicate effort. inspirations & collaborators groups with similar goals or undertaking similar activities, but focused on a different sector, geographic area or topic. i think we should make as much use of and contribution to these existing communities as possible since there will be significant overlap. code lib probably the closest existing community to what i want to build, but primarily based in the us, so timezones (and physical distance for in-person events) make it difficult to participate fully. this is a well-established community though, with regular events including an annual conference so there’s a lot to learn here. newcardigan similar to code lib but an australian focus, so the timezone problem is even bigger! glam labs focused on supporting the people experimenting with and developing the infrastructure to enable scholars to access glam materials in new ways. in some ways, a glam data science network would be complementary to their work, by providing people not directly involved with building glam labs with the skills to make best use of glam labs infrastructure. uk government data science community another existing community with very similar intentions, but focused on uk government sector. clearly the british library and a few national & regional museums & archives fall into this, but much of the rest of the glam sector does not. artifical intelligence for libraries, archives & museums (ai lam) a multinational collaboration between several large libraries, archives and museums with a specific focus on the artificial intelligence (ai) subset of data science uk reproducibility network a network of researchers, primarily in heis, with an interest in improving the transparency and reliability of academic research. mostly science-focused but with some overlap of goals around ethical and robust use of data. museums computer group i’m less familiar with this than the others, but it seems to have a wider focus on technology generally, within the slightly narrower scope of museums specifically. again, a lot of potential for collaboration. training several organisations and looser groups exist specifically to develop and deliver training that will be relevant to members of this network. the network also presents an opportunity for those who have done a workshop with one of these and want to know what the “next steps” are to continue their data science journey. the carpentries, aka: library carpentry data carpentry software carpentry data science training for librarians (dst l) the programming historian cdh cultural heritage data school supporters these misson-driven organisations have goals that align well with what i imagine for the glam dsn, but operate at a more strategic level. they work by providing expert guidance and policy advice, lobbying and supporting specific projects with funding and/or effort. in particular, the ssi runs a fellowship programme which is currently providing a small amount of funding to this project. digital preservation coalition (dpc) software sustainability institute (ssi) research data alliance (rda) alliance of digital humanities organizations (adho) … and its libraries and digital humanities special interest group (lib&dh sig) professional bodies these organisations exist to promote the interests of professionals in particular fields, including supporting professional development. i hope they will provide communication channels to their various members at the least, and may be interested in supporting more directly, depending on their mission and goals. society of research software engineering chartered institute of library and information professionals archives & records association museums association conclusion as i mentioned at the top of the page, this list cannot possibly be complete. this is a growing area and i’m not the only or first person to have this idea. if you can think of anything glaring that i’ve missed and you think should be on this list, leave a comment or tweet/toot at me! a new font for the blog i’ve updated my blog theme to use the quasi-proportional fonts iosevka aile and iosevka etoile. i really like the aesthetic, as they look like fixed-width console fonts (i use the true fixed-width version of iosevka in my terminal and text editor) but they’re actually proportional which makes them easier to read. https://typeof.net/iosevka/ training a model to recognise my own handwriting if i’m going to train an algorithm to read my weird & awful writing, i’m going to need a decent-sized training set to work with. and since one of the main things i want to do with it is to blog “by hand” it makes sense to focus on that type of material for training. in other words, i need to write out a bunch of blog posts on paper, scan them and transcribe them as ground truth. the added bonus of this plan is that after transcribing, i also end up with some digital text i can use as an actual post — multitasking! so, by the time you read this, i will have already run it through a manual transcription process using transkribus to add it to my training set, and copy-pasted it into emacs for posting. this is a fun little project because it means i can: write more by hand with one of my several nice fountain pens, which i enjoy learn more about the operational process some of my colleagues go through when digitising manuscripts learn more about the underlying technology & maths, and how to tune the process produce more lovely content! for you to read! yay! write in a way that forces me to put off editing until after a first draft is done and focus more on getting the whole of what i want to say down. that’s it for now — i’ll keep you posted as the project unfolds. addendum tee hee! i’m actually just enjoying the process of writing stuff by hand in long-form prose. it’ll be interesting to see how the accuracy turns out and if i need to be more careful about neatness. will it be better or worse than the big but generic models used by samsung notes or onenote. maybe i should include some stylus-written text for comparison. blogging by hand i wrote the following text on my tablet with a stylus, which was an interesting experience: so, thinking about ways to make writing fun again, what if i were to write some of them by hand? i mean i have a tablet with a pretty nice stylus, so maybe handwriting recognition could work. one major problem, of course, is that my handwriting is awful! i guess i’ll just have to see whether the ocr is good enough to cope… it’s something i’ve been thinking about recently anyway: i enjoy writing with a proper fountain pen, so is there a way that i can have a smooth workflow to digitise handwritten text without just typing it back in by hand? that would probably be preferable to this, which actually seems to work quite well but does lead to my hand tensing up to properly control the stylus on the almost-frictionless glass screen. i’m surprised how well it worked! here’s a sample of the original text: and here’s the result of converting that to text with the built-in handwriting recognition in samsung notes: writing blog posts by hand so, thinking about ways to make writing fun again, what if i were to write some of chum by hand? i mean, i have a toldest winds a pretty nice stylus, so maybe handwriting recognition could work. one major problems, ofcourse, is that my , is awful! iguess i’ll just have to see whattime the ocu is good enough to cope… it’s something i’ve hun tthinking about recently anyway: i enjoy wilting with a proper fountain pion, soischeme a way that i can have a smooch workflow to digitise handwritten text without just typing it back in by hand? that wouldprobally be preferableto this, which actually scams to work quito wall but doers load to my hand tensing up to properly couldthe stylus once almost-frictionlessg lass scream. it’s pretty good! it did require a fair bit of editing though, and i reckon we can do better with a model that’s properly trained on a large enough sample of my own handwriting. what i want from a glam/cultural heritage data science network introduction as i mentioned last year, i was awarded a software sustainability institute fellowship to pursue the project of setting up a cultural heritage/glam data science network. obviously, the global pandemic has forced a re-think of many plans and this is no exception, so i’m coming back to reflect on it and make sure i’m clear about the core goals so that everything else still moves in the right direction. one of the main reasons i have for setting up a glam data science network is because it’s something i want. the advice to “scratch your own itch” is often given to people looking for an open project to start or contribute to, and the lack of a community of people with whom to learn & share ideas and practice is something that itches for me very much. the “motivation” section in my original draft project brief for this work said: cultural heritage work, like all knowledge work, is increasingly data-based, or at least gives opportunities to make use of data day-to-day. the proper skills to use this data enable more effective working. knowledge and experience thus gained improves understanding of and empathy with users also using such skills. but of course, i have my own reasons for wanting to do this too. in particular, i want to: advocate for the value of ethical, sustainable data science across a wide range of roles within the british library and the wider sector advance the sector to make the best use of data and digital sources in the most ethical and sustainable way possible understand how and why people use data from the british library, and plan/deliver better services to support that keep up to date with relevant developments in data science learn from others' skills and experiences, and share my own in turn those initial goals imply some further supporting goals: build up the confidence of colleagues who might benefit from data science skills but don’t feel they are “technical” or “computer literate” enough further to that, build up a base of colleagues with the confidence to share their skills & knowledge with others, whether through teaching, giving talks, writing or other channels identify common awareness gaps (skills/knowledge that people don’t know they’re missing) and address them develop a communal space (primarily online) in which people feel safe to ask questions develop a body of professional practice and help colleagues to learn and contribute to the evolution of this, including practices of data ethics, software engineering, statistics, high performance computing, … break down language barriers between data scientists and others i’ll expand on this separately as my planning develops, but here are a few specific activities that i’d like to be able to do to support this: organise less-formal learning and sharing events to complement the more formal training already available within organisations and the wider sector, including “show and tell” sessions, panel discussions, code cafés, masterclasses, guest speakers, reading/study groups, co-working sessions, … organise training to cover intermediate skills and knowledge currently missing from the available options, including the awareness gaps and professional practice mentioned above collect together links to other relevant resources to support self-led learning decisions to be made there are all sorts of open questions in my head about this right now, but here are some of the key ones. is it glam or cultural heritage? when i first started planning this whole thing, i went with “cultural heritage”, since i was pretty transparently targeting my own organisation. the british library is fairly unequivocally a ch organisation. but as i’ve gone along i’ve found myself gravitating more towards the term “glam” (which stands for galleries, libraries, archives, museums) as it covers a similar range of work but is clearer (when you spell out the acronym) about what kinds of work are included. what skills are relevant? this turns out to be surprisingly important, at least in terms of how the community is described, as they define the boundaries of the community and can be the difference between someone feeling welcome or excluded. for example, i think that some introductory statistics training would be immensely valuable for anyone working with data to understand what options are open to them and what limitations those options have, but is the word “statistics” offputting per se to those who’ve chosen a career in arts & humanities? i don’t know because i don’t have that background and perspective. keep it internal to the bl, or open up early on? i originally planned to focus primarily on my own organisation to start with, feeling that it would be easier to organise events and build a network within a single organisation. however, the pandemic has changed my thinking significantly. firstly, it’s now impossible to organise in-person events and that will continue for quite some time to come, so there is less need to focus on the logistics of getting people into the same room. secondly, people within the sector are much more used to attending remote events, which can easily be opened up to multiple organisations in many countries, timezones allowing. it now makes more sense to focus primarily on online activities, which opens up the possibility of building a critical mass of active participants much more quickly by opening up to the wider sector. conclusion this is the type of post that i could let run and run without ever actually publishing, but since it’s something i need feedback and opinions on from other people, i’d better ship it! i really want to know what you think about this, whether you feel it’s relevant to you and what would make it useful. comments are open below, or you can contact me via mastodon or twitter. writing about not writing under construction grunge sign by nicolas raymond — cc by . every year, around this time of year, i start doing two things. first, i start thinking i could really start to understand monads and write more than toy programs in haskell. this is unlikely to ever actually happen unless and until i get a day job where i can justify writing useful programs in haskell, but advent of code always gets me thinking otherwise. second, i start mentally writing this same post. you know, the one about how the blogger in question hasn’t had much time to write but will be back soon? “sorry i haven’t written much lately…” it’s about as cliché as a geocities site with a permanent “under construction” gif. at some point, not long after the dawn of ~time~ the internet, most people realised that every website was permanently under construction and publishing something not ready to be published was just pointless. so i figured this year i’d actually finish writing it and publish it. after all, what’s the worst that could happen? if we’re getting all reflective about this, i could probably suggest some reasons why i’m not writing much: for a start, there’s a lot going on in both my world and the world right now, which doesn’t leave a lot of spare energy after getting up, eating, housework, working and a few other necessary activities. as a result, i’m easily distracted and i tend to let myself get dragged off in other directions before i even get to writing much of anything. if i do manage to focus on this blog in general, i’ll often end up working on some minor tweak to the theme or functionality. i mean, right now i’m wondering if i can do something clever in my text-editor (emacs, since you’re asking) to streamline my writing & editing process so it’s more elegant, efficient, ergonomic and slightly closer to perfect in every way. it also makes me much more likely to self-censor, and to indulge my perfectionist tendencies to try and tweak the writing until it’s absolutely perfect, which of course never happens. i’ve got a whole heap of partly-written posts that are juuuust waiting for the right motivation for me to just finish them off. the only real solution is to accept that: i’m not going to write much and that’s probably ok what i do write won’t always be the work of carefully-researched, finely crafted genius that i want it to be, and that’s probably ok too also to remember why i started writing and publishing stuff in the first place: to reflect and get my thoughts out onto a (virtual) page so that i can see them, figure out whether i agree with myself and learn; and to stimulate discussion and get other views on my (possibly uninformed, incorrect or half-formed) thoughts, also to learn. in other words, a thing i do for me. it’s easy to forget that and worry too much about whether anyone else wants to read my s—t. will you notice any changes? maybe? maybe not? who knows. but it’s a new year and that’s as good a time for a change as any. when is a persistent identifier not persistent? or an identifier? i wrote a post on the problems with isbns as persistent identifiers (pids) for work, so check it out if that sounds interesting. idcc reflections i’m just back from idcc , so here are a few reflections on this year’s conference. you can find all the available slides and links to shared notes on the conference programme. there’s also a list of all the posters and an overview of the unconference skills for curation of diverse datasets here in the uk and elsewhere, you’re unlikely to find many institutions claiming to apply a deep level of curation to every dataset/software package/etc deposited with them. there are so many different kinds of data and so few people in any one institution doing “curation” that it’s impossible to do this for everything. absent the knowledge and skills required to fully evaluate an object the best that can be done is usually to make a sense check on the metadata and flag up with the depositor potential for high-level issues such as accidental disclosure of sensitive personal information. the data curation network in the united states is aiming to address this issue by pooling expertise across multiple organisations. the pilot has been highly successful and they’re now looking to obtain funding to continue this work. the swedish national data service is experimenting with a similar model, also with a lot of success. as well as sharing individual expertise, the dcn collaboration has also produced some excellent online quick-reference guides for curating common types of data. we had some further discussion as part of the unconference on the final day about what it would look like to introduce this model in the uk. there was general agreement that this was a good idea and a way to make optimal use of sparse resources. there were also very valid concerns that it would be difficult in the current financial climate for anyone to justify doing work for another organisation, apparently for free. in my mind there are two ways around this, which are not mutually exclusive by any stretch of the imagination. first is to just do it: form an informal network of curators around something simple like a mailing list, and give it a try. second is for one or more trusted organisations to provide some coordination and structure. there are several candidates for this including dcc, jisc, dpc and the british library; we all have complementary strengths in this area so it’s my hope that we’ll be able to collaborate around it. in the meantime, i hope the discussion continues. artificial intelligence, machine learning et al as you might expect at any tech-oriented conference there was a strong theme of ai running through many presentations, starting from the very first keynote from francine berman. her talk, the internet of things: utopia or dystopia? used self-driving cars as a case study to unpack some of the ethical and privacy implications of ai. for example, driverless cars can potentially increase efficiency, both through route-planning and driving technique, but also by allowing fewer vehicles to be shared by more people. however, a shared vehicle is not a private space in the way your own car is: anything you say or do while in that space is potentially open to surveillance. aside from this, there are some interesting ideas being discussed, particularly around the possibility of using machine learning to automate increasingly complex actions and workflows such as data curation and metadata enhancement. i didn’t get the impression anyone is doing this in the real world yet, but i’ve previously seen theoretical concepts discussed at idcc make it into practice so watch this space! playing games! training is always a major idcc theme, and this year two of the most popular conference submissions described games used to help teach digital curation concepts and skills. mary donaldson and matt mahon of the university of glasgow presented their use of lego to teach the concept of sufficient metadata. participants build simple models before documenting the process and breaking them down again. then everyone had to use someone else’s documentation to try and recreate the models, learning important lessons about assumptions and including sufficient detail. kirsty merrett and zosia beckles from the university of bristol brought along their card game “researchers, impact and publications (rip)”, based on the popular “cards against humanity”. rip encourages players to examine some of the reasons for and against data sharing with plenty of humour thrown in. both games were trialled by many of the attendees during thursday’s unconference. summary i realised in dublin that it’s years since i attended my first idcc, held at the university of bristol in december while i was still working at the nearby university of bath. while i haven’t been every year, i’ve been to every one held in europe since then and it’s interesting to see what has and hasn’t changed. we’re no longer discussing data management plans, data scientists or various other things as abstract concepts that we’d like to encourage, but dealing with the real-world consequences of them. the conference has also grown over the years: this year was the biggest yet, boasting over attendees. there has been especially big growth in attendees from north america, australasia, africa and the middle east. that’s great for the diversity of the conference as it brings in more voices and viewpoints than ever. with more people around to interact with i have to work harder to manage my energy levels but i think that’s a small price to pay. iosevka: a nice fixed-width-font iosevka is a nice, slender monospace font with a lot of configurable variations. check it out: https://typeof.net/iosevka/ replacing comments with webmentions just a quickie to say that i’ve replaced the comment section at the bottom of each post with webmentions, which allows you to comment by posting on your own site and linking here. it’s a fundamental part of the indieweb, which i’m slowly getting to grips with having been a halfway member of it for years by virtue of having my own site on my own domain. i’d already got rid of google analytics to stop forcing that tracking on my visitors, i wanted to get rid of disqus too because i’m pretty sure the only way that is free for me is if they’re selling my data and yours to third parties. webmention is a nice alternative because it relies only on open standards, has no tracking and allows people to control their own comments. while i’m currently using a third-party service to help, i can switch to self-hosted at any point in the future, completely transparently. thanks to webmention.io, which handles incoming webmentions for me, and webmention.js, which displays them on the site, i can keep it all static and not have to implement any of this myself, which is nice. it’s a bit harder to comment because you have to be able to host your own content somewhere, but then almost no-one ever commented anyway, so it’s not like i’ll lose anything! plus, if i get bridgy set up right, you should be able to comment just by replying on mastodon, twitter or a few other places. a spot of web searching shows that i’m not the first to make the disqus -> webmentions switch (yes, i’m putting these links in blatantly to test outgoing webmentions with telegraph…): so long disqus, hello webmention — nicholas hoizey bye disqus, hello webmention! — evert pot implementing webmention on a static site — deluvi let’s see how this goes! bridging carpentries slack channels to matrix it looks like i’ve accidentally taken charge of bridging a bunch of the carpentries slack channels over to matrix. given this, it seems like a good idea to explain what that sentence means and reflect a little on my reasoning. i’m more than happy to discuss the pros and cons of this approach if you just want to try chatting in matrix, jump to the getting started section what are slack and matrix? slack (see also on wikipedia), for those not familiar with it, is an online text chat platform with the feel of irc (internet relay chat), a modern look and feel and both web and smartphone interfaces. by providing a free tier that meets many peoples' needs on its own slack has become the communication platform of choice for thousands of online communities, private projects and more. one of the major disadvantages of using slack’s free tier, as many community organisations do, is that as an incentive to upgrade to a paid service your chat history is limited to the most recent , messages across all channels. for a busy community like the carpentries, this means that messages older than about - weeks are already inaccessible, rendering some of the quieter channels apparently empty. as slack is at pains to point out, that history isn’t gone, just archived and hidden from view unless you pay the low, low price of $ /user/month. that doesn’t seem too pricy, unless you’re a non-profit organisation with a lot of projects you want to fund and an active membership of several hundred worldwide, at which point it soon adds up. slack does offer to waive the cost for registered non-profit organisations, but only for one community. the carpentries is not an independent organisation, but one fiscally sponsored by community initiatives, which has already used its free quota of one elsewhere rendering the carpentries ineligible. other umbrella organisations such as numfocus (and, i expect, mozilla) also run into this problem with slack. so, we have a community which is slowly and inexorably losing its own history behind a paywall. for some people this is simply annoying, but from my perspective as a facilitator of the preservation of digital things the community is haemhorraging an important record of its early history. enter matrix. matrix is a chat platform similar to irc, slack or discord. it’s divided into separate channels, and users can join one or more of these to take part in the conversation happening in those channels. what sets it apart from older technology like irc and walled gardens like slack & discord is that it’s federated. federation means simply that users on any server can communicate with users and channels on any other server. usernames and channel addresses specify both the individual identifier and the server it calls home, just as your email address contains all the information needed for my email server to route messages to it. while users are currently tied to their home server, channels can be mirrored and synchronised across multiple servers making the overall system much more resilient. can’t connect to your favourite channel on server x? no problem: just connect via its alias on server y and when x comes back online it will be resynchronised. the technology used is much more modern and secure than the aging irc protocol, and there’s no vender lock-in like there is with closed platforms like slack and discord. on top of that, matrix channels can easily be “bridged” to channels/rooms on other platforms, including, yes, slack, so that you can join on matrix and transparently talk to people connected to the bridged room, or vice versa. so, to summarise: the current carpentries slack channels could be bridged to matrix at no cost and with no disruption to existing users the history of those channels from that point on would be retained on matrix.org and accessible even when it’s no longer available on slack if at some point in the future the carpentries chose to invest in its own matrix server, it could adopt and become the main matrix home of these channels without disruption to users of either matrix or (if it’s still in use at that point) slack matrix is an open protocol, with a reference server implementation and wide range of clients all available as free software, which aligns with the values of the carpentries community on top of this: i’m fed up of having so many different slack teams to switch between to see the channels in all of them, and prefer having all the channels i regularly visit in a single unified interface; i wanted to see how easy this would be and whether others would also be interested. given all this, i thought i’d go ahead and give it a try to see if it made things more manageable for me and to see what the reaction would be from the community. how can i get started? !!! reminder please remember that, like any other carpentries space, the code of conduct applies in all of these channels. first, sign up for a matrix account. the quickest way to do this is on the matrix “try now” page, which will take you to the riot web client which for many is synonymous with matrix. other clients are also available for the adventurous. second, join one of the channels. the links below will take you to a page that will let you connect via your preferred client. you’ll need to log in as they are set not to allow guest access, but, unlike slack, you won’t need an invitation to be able to join. #general — the main open channel to discuss all things carpentries #random — anything that would be considered offtopic elsewhere #welcome — join in and introduce yourself! that’s all there is to getting started with matrix. to find all the bridged channels there’s a matrix “community” that i’ve added them all to: carpentries matrix community. there’s a lot more, including how to bridge your favourite channels from slack to matrix, but this is all i’ve got time and space for here! if you want to know more, leave a comment below, or send me a message on slack (jezcope) or maybe matrix (@petrichor:matrix.org)! i’ve also made a separate channel for matrix-slack discussions: #matrix on slack and carpentries matrix discussion on matrix mozfest first reflections discussions of neurodiversity at #mozfest photo by jennifer riggins the other weekend i had my first experience of mozilla festival, aka #mozfest. it was pretty awesome. i met quite a few people in real life that i’ve previously only known (/stalked) on twitter, and caught up with others that i haven’t seen for a while. i had the honour of co-facilitating a workshop session on imposter syndrome and how to deal with it with the wonderful yo yehudi and emmy tsang. we all learned a lot and hope our participants did too; we’ll be putting together a summary blog post as soon as we can get our act together! i also attended a great session, led by kiran oliver (psst, they’re looking for a new challenge), on how to encourage and support a neurodiverse workforce. i was only there for the one day, and i really wish that i’d taken the plunge and committed to the whole weekend. there’s always next year though! to be honest, i’m just disappointed that i never had the courage to go sooner, music for working today the office conversation turned to blocking out background noise. (no, the irony is not lost on me.) like many people i work in a large, open-plan office, and i’m not alone amongst my colleagues in sometimes needing to find a way to boost concentration by blocking out distractions. not everyone is like this, but i find music does the trick for me. i also find that different types of music are better for different types of work, and i use this to try and manage my energy better. there are more distractions than auditory noise, and at times i really struggle with visual noise. rather than have this post turn into a rant about the evils of open-plan offices, i’ll just mention that the scientific evidence doesn’t paint them in a good light , or at least suggests that the benefits are more limited in scope than is commonly thought , and move on to what i actually wanted to share: good music for working to. there are a number of genres that i find useful for working. generally, these have in common a consistent tempo, a lack of lyrics, and enough variation to prevent boredom without distracting. familiarity helps my concentration too so i’ll often listen to a restricted set of albums for a while, gradually moving on by dropping one out and bringing in another. in my case this includes: traditional dance music, generally from northern and western european traditions for me. this music has to be rhythmically consistent to allow social dancing, and while the melodies are typically simple repeated phrases, skilled musicians improvise around that to make something beautiful. i tend to go through phases of listening to particular traditions; i’m currently listening to a lot of french, belgian and scandinavian. computer game soundtracks, which are specifically designed to enhance gameplay without distracting, making them perfect for other activities requiring a similar level of concentration. chiptunes and other music incorporating it; partly overlapping with the previous category, chiptunes is music made by hacking the audio chips from (usually) old computers and games machines to become an instrument for new music. because of the nature of the instrument, this will have millisecond-perfect rhythm and again makes for undistracting noise blocking with an extra helping of nostalgia! purists would disagree with me, but i like artists that combine chiptunes with other instruments and effects to make something more complete-sounding. retrowave/synthwave/outrun, synth-driven music that’s instantly familiar as the soundtrack to many s sci-fi and thriller movies. atmospheric, almost dreamy, but rhythmic with a driving beat, it’s another genre that fits into the “pleasing but not too surprising” category for me. so where to find this stuff? one of the best resources i’ve found is music for programming which provides carefully curated playlists of mostly electronic music designed to energise without distracting. they’re so well done that the tracks move seamlessly, one to the next, without ever getting boring. spotify is an obvious option, and i do use it quite a lot. however, i’ve started trying to find ways to support artists more directly, and bandcamp seems to be a good way of doing that. it’s really easy to browse by genre, or discover artists similar to what you’re currently hearing. you can listen for free as long as you don’t mind occasional nags to buy the music you’re hearing, but you can also buy tracks or albums. music you’ve paid for is downloadable in several open, drm-free formats for you to keep, and you know that a decent chunk of that cash is going directly to that artist. i also love noise generators; not exactly music, but a variety of pleasant background noises, some of which nicely obscure typical office noise. i particularly like mynoise.net, which has a cornucopia of different natural and synthetic noises. each generator comes with a range of sliders allowing you to tweak the composition and frequency range, and will even animate them randomly for you to create a gently shifting soundscape. a much simpler, but still great, option is noisli with it’s nice clean interface. both offer apps for ios and android. for bonus points, you can always try combining one or more of the above. adding in a noise generator allows me to listen to quieter music while still getting good environmental isolation when i need concentration. another favourite combo is to open both the cafe and rainfall generators from mynoise, made easier by the ability to pop out a mini-player then open up a second generator. i must be missing stuff though. what other musical genres should i try? what background sounds are nice to work to? well, you know. the other day. whatever. &#x a ;þ e; see e.g.: lee, so young, and jay l. brand. ‘effects of control over office workspace on perceptions of the work environment and work outcomes’. journal of environmental psychology , no. ( september ): – . https://doi.org/ . /j.jenvp. . . . &#x a ;þ e; open plan offices can actually work under certain conditions, the conversation &#x a ;þ e; working at the british library: months in it barely seems like it, but i’ve been at the british library now for nearly months. it always takes a long time to adjust and from experience i know it’ll be another year before i feel fully settled, but my team, department and other colleagues have really made me feel welcome and like i belong. one thing that hasn’t got old yet is the occasional thrill of remembering that i work at my national library now. every now and then i’ll catch a glimpse of the collections at boston spa or step into one of the reading rooms and think “wow, i actually work here!” i also like having a national and international role to play, which means i get to travel a bit more than i used to. budgets are still tight so there are limits, and i still prefer to be home more often than not, but there is more scope in this job than i’ve had previously for travelling to conferences, giving talks that change the way people think, and learning in different contexts. i’m learning a lot too, especially how to work with and manage people split across multiple sites, and the care and feeding of budgets. as well as missing mo old team at sheffield, i do also miss some of the direct contact i had with researchers in he. i especially miss the teaching work, but also the higher-level influencing of more senior academics to change practices on a wider scale. still, i get to use those influencing skills in different ways now, and i’m still involved with the carpentries which should let me keep my hand in with teaching. i still deal with my general tendency to try and do all the things, and as before i’m slowly learning to recognise it, tame it and very occasionally turn it to my advantage. that also leads to feelings of imposterism that are only magnified by the knowledge that i now work at a national institution! it’s a constant struggle some days to believe that i’ve actually earned my place here through hard work, even if i don’t always feel that i have, my colleagues here certainly have, so i should have more faith in their opinion of me. finally, i couldn’t write this type of thing without mentioning the commute. i’ve gone from minutes each way on a good day (up to twice that if the trains were disrupted) to minutes each way along fairly open roads. i have less time to read, but much more time at home. on top of that, the library has implemented flexitime across all pay grades, with even senior managers strongly encouraged to make full use. not only is this an important enabler of equality across the organisation, it relieves for me personally the pressure to work over my contracted hours and the guilt i’ve always felt at leaving work even minutes early. if i work late, it’s now a choice i’m making based on business needs instead of guilt and in full knowledge that i’ll get that time back later. so that’s where i am right now. i’m really enjoying the work and the culture, and i look forward to what the next months will bring! rda plenary reflection photo by me i sit here writing this in the departure lounge at philadelphia international airport, waiting for my aer lingus flight back after a week at the th research data alliance (rda) plenary (although i’m actually publishing this a week or so later at home). i’m pretty exhausted, partly because of the jet lag, and partly because it’s been a very full week with so much to take in. it’s my first time at an rda plenary, and it was quite a new experience for me! first off, it’s my first time outside europe, and thus my first time crossing quite so many timezones. i’ve been waking at am and ready to drop by pm, but i’ve struggled on through! secondly, it’s the biggest conference i’ve been to for a long time, both in number of attendees and number of parallel sessions. there’s been a lot of sustained input so i’ve been very glad to have a room in the conference hotel and be able to escape for a few minutes when i needed to recharge. thirdly, it’s not really like any other conference i’ve been to: rather than having large numbers of presentations submitted by attendees, each session comprises lots of parallel meetings of rda interest groups and working groups. it’s more community-oriented: an opportunity for groups to get together face to face and make plans or show off results. i found it pretty intense and struggled to take it all in, but incredibly valuable nonetheless. lots of information to process (i took a lot of notes) and a few contacts to follow up on too, so overall i loved it! using pipfile in binder photo by sear greyson on unsplash i recently attended a workshop, organised by the excellent team of the turing way project, on a tool called binderhub. binderhub, along with public hosting platform mybinder, allows you to publish computational notebooks online as “binders” such that they’re not static but fully interactive. it’s able to do this by using a tool called repo docker to capture the full computational environment and dependencies required to run the notebook. !!! aside “what is the turing way?” the turing way is, in its own words, “a lightly opinionated guide to reproducible data science.” the team is building an open textbook and running a number of workshops for scientists and research software engineers, and you should check out the project on github. you could even contribute! the binder process goes roughly like this: do some work in a jupyter notebook or similar put it into a public git repository add some extra metadata describing the packages and versions your code relies on go to mybinder.org and tell it where to find your repository open the url it generates for you profit other than step , which can take some time to build the binder, this is a remarkably quick process. it supports a number of different languages too, including built-in support for r, python and julia and the ability to configure pretty much any other language that will run on linux. however, the python support currently requires you to have either a requirements.txt or conda-style environment.yml file to specify dependencies, and i commonly use a pipfile for this instead. pipfile allows you to specify a loose range of compatible versions for maximal convenience, but then locks in specific versions for maximal reproducibility. you can upgrade packages any time you want, but you’re fully in control of when that happens, and the locked versions are checked into version control so that everyone working on a project gets consistency. since pipfile is emerging as something of a standard thought i’d see if i could use that in a binder, and it turns out to be remarkably simple. the reference implementation of pipfile is a tool called pipenv by the prolific kenneth reitz. all you need to use this in your binder is two files of one line each. requirements.txt tells repo binder to build a python-based binder, and contains a single line to install the pipenv package: pipenv then postbuild is used by repo binder to install all other dependencies using pipenv: pipenv install --system the --system flag tells pipenv to install packages globally (its default behaviour is to create a python virtualenv). with these two files, the binder builds and runs as expected. you can see a complete example that i put together during the workshop here on gitlab. what do you think i should write about? i’ve found it increasingly difficult to make time to blog, and it’s not so much not having the time — i’m pretty privileged in that regard — but finding the motivation. thinking about what used to motivate me, one of the big things was writing things that other people wanted to read. rather than try to guess, i thought i’d ask! those who know what i&# ;m about, what would you read about, if it was written by me?i&# ;m trying to break through the blog-writers block and would love to know what other people would like to see my ill-considered opinions on.— jez cope (@jezcope) march , i’m still looking for ideas, so please tweet me or leave me a comment below. below are a few thoughts that i’m planning to do something with. something taking one of the more techy aspects of open research, breaking it down and explaining the benefits for non-techy folks?— dr beth 🏳️‍🌈 🐺 (@phdgeek) march , skills (both techy and non techy) that people need to most effectively support rdm— kate o&# ;neill (@katefoneill) march , sometimes i forget that my background makes me well-qualified to take some of these technical aspects of the job and break them down for different audiences. there might be a whole series in this… carrying on our conversation last week i&# ;d love to hear more about how you&# ;ve found moving from an he lib to a national library and how you see the bl&# ;s role in rdm. appreciate this might be a bit niche/me looking for more interesting things to cite :)— rosie higman (@rosiehlib) march , this is interesting, and something i’d like to reflect on; moving from one job to another always has lessons and it’s easy to miss them if you’re not paying attention. another one for the pile. life without admin rights to your computer— mike croucher (@walkingrandomly) march , this is so frustrating as an end user, but at the same time i get that endpoint security is difficult and there are massive risks associated with letting end users have admin rights. this is particularly important at the bl: as custodian’s of a nation’s cultural heritage, the risk for us is bigger than for many and for this reason we are now cyber essentials plus certified. at some point i’d like to do some research and have a conversation with someone who knows a lot more about infosec to work out what the proper approach to this, maybe involving vms and a demilitarized zone on the network. i’m always looking for more inspiration, so please leave a comment if you’ve got anything you’d like to read my thoughts on. if you’re not familiar with my writing, please take a minute or two to explore the blog; the tags page is probably a good place to get an overview. ultimate hacking keyboard: first thoughts following on from the excitement of having built a functioning keyboard myself, i got a parcel on monday. inside was something that i’ve been waiting for since september: an ultimate hacking keyboard! where the custom-built laplace is small and quiet for travelling, the uhk is to be my main workhorse in the study at home. here are my first impressions: key switches i went with kailh blue switches from the available options. in stark contrast to the quiet blacks on the laplace, blues are noisy! they have an extra piece of plastic inside the switch that causes an audible and tactile click when the switch activates. this makes them very satisfying to type on and should help as i train my fingers not to bottom out while typing, but does make them unsuitable for use in a shared office! here are some animations showing how the main types of key switch vary. layout this keyboard has what’s known as a % layout: no number pad, arrows or function keys. as with the more spartan laplace, these “missing” keys are made up for with programmable layers. for example, the arrow keys are on the mod layer on the i/j/k/l keys, so i can access them without moving from the home row. i actually find this preferable to having to move my hand to the right to reach them, and i really never used the number pad in any case. split this is a split keyboard, which means that the left and right halves can be separated to place the hands further apart which eases strain across the shoulders. the uhk has a neat coiled cable joining the two which doesn’t get in the way. a cool design feature is that the two halves can be slotted back together and function perfectly well as a non-split keyboard too, held together by magnets. there are even electrical contacts so that when the two are joined you don’t need the linking cable. programming the board is fully programmable, and this is achieved via a custom (open source) gui tool which talks to the (open source) firmware on the board. you can have multiple keymaps, each of which has a separate base, mod, fn and mouse layer, and there’s an led display that shows a short mnemonic for the currently active map. i already have a customised dvorak layout for day-to-day use, plus a standard qwerty for not-me to use and an alternative qwerty which will be slowly tweaked for games that don’t work well with dvorak. mouse keys one cool feature that the designers have included in the firmware is the ability to emulate a mouse. there’s a separate layer that allows me to move the cursor, scroll and click without moving my hands from the keyboard. palm rests not much to say about the palm rests, other than they are solid wood, and chunky, and really add a little something. i have to say, i really like it so far! overall it feels really well designed, with every little detail carefully thought out and excellent build quality and a really solid feeling. custom-built keyboard i’m typing this post on a keyboard i made myself, and i’m rather excited about it! why make my own keyboard? i wanted to learn a little bit about practical electronics, and i like to learn by doing i wanted to have the feeling of making something useful with my own hands i actually need a small, keyboard with good-quality switches now that i travel a fair bit for work and this lets me completely customise it to my needs just because! while it is possible to make a keyboard completely from scratch, it makes much more sense to put together some premade parts. the parts you need are: pcb (printed circuit board): the backbone of the keyboard, to which all the other electrical components attach, this defines the possible physical locations for each key switches: one for each key to complete a circuit whenever you press it keycaps: switches are pretty ugly and pretty uncomfortable to press, so each one gets a cap; these are what you probably think of as the “keys” on your keyboard and come in almost limitless variety of designs (within the obvious size limitation) and are the easiest bit of personalisation controller: the clever bit, which detects open and closed switches on the pcb and tells your computer what keys you pressed via a usb cable firmware: the program that runs on the controller starts off as source code like any other program, and altering this can make the keyboard behave in loads of different ways, from different layouts to multiple layers accessed by holding a particular key, to macros and even emulating a mouse! in my case, i’ve gone for the following: pcb laplace from keeb.io, a very compact -key (“ %") board, with no number pad, function keys or number row, but a lot of flexibility for key placement on the bottom row. one of my key design goals was small size so i can just pop it in my bag and have on my lap on the train. controller elite-c, designed specifically for keyboard builds to be physically compatible with the cheaper pro micro, with a more-robust usb port (the pro micro’s has a tendency to snap off), and made easier to program with a built-in reset button and better bootloader. switches gateron black: gateron is one of a number of manufacturers of mechanical switches compatible with the popular cherry range. the black switch is linear (no click or bump at the activation point) and slightly heavier sprung than the more common red. cherry also make a black switch but the gateron version is slightly lighter and having tested a few i found them smoother too. my key goal here was to reduce noise, as the stronger spring will help me type accurately without hitting the bottom of the keystroke with an audible sound. keycaps blank grey pbt in dsa profile: this keyboard layout has a lot of non-standard sized keys, so blank keycaps meant that i wouldn’t be putting lots of keys out of their usual position; they’re also relatively cheap, fairly classy imho and a good placeholder until i end up getting some really cool caps on a group buy or something; oh, and it minimises the chance of someone else trying the keyboard and getting freaked out by the layout… firmware qmk (quantum mechanical keyboard), with a work-in-progress layout, based on dvorak. qmk has a lot of features and allows you to fully program each and every key, with multiple layers accessed through several different routes. because there are so few keys on this board, i’ll need to make good use of layers to make all the keys on a usual keyboard available. dvorak simplified keyboard i’m grateful to the folks of the leeds hack space, especially nav & mark who patiently coached me in various soldering techniques and good practice, but also everyone else who were so friendly and welcoming and interested in my project. i’m really pleased with the result, which is small, light and fully customisable. playing with qmk firmware features will keep me occupied for quite a while! this isn’t the end though, as i’ll need a case to keep the dust out. i’m hoping to be able to d print this or mill it from wood with a cnc mill, for which i’ll need to head back to the hack space! less, but better “wenniger aber besser” — dieter rams {:.big-quote} i can barely believe it’s a full year since i published my intentions for . a lot has happened since then. principally: in november i started a new job as data services lead at the british library. one thing that hasn’t changed is my tendency to try to do too much, so this year i’m going to try and focus on a single intention, a translation of designer dieter rams' famous quote above: less, but better. this chimes with a couple of other things i was toying with over the christmas break, as they’re essentially other ways of saying the same thing: take it steady one thing at a time i’m also going to keep in mind those touchstones from last year: what difference is this making? am i looking after myself? do i have evidence for this? i mainly forget to think about them, so i’ll be sticking up post-its everywhere to help me remember! how to extend python with rust: part python is great, but i find it useful to have an alternative language under my belt for occasions when no amount of pythonic cleverness will make some bit of code run fast enough. one of my main reasons for wanting to learn rust was to have something better than c for that. not only does rust have all sorts of advantages that make it a good choice for code that needs to run fast and correctly, it’s also got a couple of rather nice crates (libraries) that make interfacing with python a lot nicer. here’s a little tutorial to show you how easy it is to call a simple rust function from python. if you want to try it yourself, you’ll find the code on github. !!! prerequisites i’m assuming for this tutorial that you’re already familiar with writing python scripts and importing & using packages, and that you’re comfortable using the command line. you’ll also need to have installed rust. the rust bit the quickest way to get compiled code into python is to use the builtin ctypes package. this is python’s “foreign function interface” or ffi: a means of calling functions outside the language you’re using to make the call. ctypes allows us to call arbitrary functions in a shared library , as long as those functions conform to certain standard c language calling conventions. thankfully, rust tries hard to make it easy for us to build such a shared library. the first thing to do is to create a new project with cargo, the rust build tool: $ cargo new rustfrompy created library `rustfrompy` project $ tree . ├── cargo.toml └── src └── lib.rs directory, files !!! aside i use the fairly common convention that text set in fixed-width font is either example code or commands to type in. for the latter, a $ precedes the command that you type (omit the $), and lines that don’t start with a $ are output from the previous command. i assume a basic familiarity with unix-style command line, but i should probably put in some links to resources if you need to learn more! we need to edit the cargo.toml file and add a [lib] section: [package] name = &# ;rustfrompy&# ; version = &# ; . . &# ; authors = [&# ;jez cope <j.cope@erambler.co.uk>&# ;] [dependencies] [lib] name = &# ;rustfrompy&# ; crate-type = [&# ;cdylib&# ;] this tells cargo that we want to make a c-compatible dynamic library (crate-type = ["cdylib"]) and what to call it, plus some standard metadata. we can then put our code in src/lib.rs. we’ll just use a simple toy function that adds two numbers together: #[no_mangle] pub fn add(a: i , b: i ) -> i { a + b } notice the pub keyword, which instructs the compiler to make this function accessible to other modules, and the #[no_mangle] annotation, which tells it to use the standard c naming conventions for functions. if we don’t do this, then rust will generate a new name for the function for its own nefarious purposes, and as a side effect we won’t know what to call it when we want to use it from python. being good developers, let’s also add a test: #[cfg(test)] mod test { use ::*; #[test] fn test_add() { assert_eq!( , add( , )); } } we can now run cargo test which will compile that code and run the test: $ cargo test compiling rustfrompy v . . (file:///home/jez/personal/projects/rustfrompy) finished dev [unoptimized + debuginfo] target(s) in . secs running target/debug/deps/rustfrompy- caaa f f aa running test test test::test_add ... ok test result: ok. passed; failed; ignored; measured; filtered out everything worked! now just to build that shared library and we can try calling it from python: $ cargo build compiling rustfrompy v . . (file:///home/jez/personal/projects/rustfrompy) finished dev [unoptimized + debuginfo] target(s) in . secs notice that the build is unoptimized and includes debugging information: this is useful in development, but once we’re ready to use our code it will run much faster if we compile it with optimisations. cargo makes this easy: $ cargo build --release compiling rustfrompy v . . (file:///home/jez/personal/projects/rustfrompy) finished release [optimized] target(s) in . secs the python bit after all that, the python bit is pretty short. first we import the ctypes package (which is included in all recent python versions): from ctypes import cdll cargo has tidied our shared library away into a folder, so we need to tell python where to load it from. on linux, it will be called lib<something>.so where the “something” is the crate name from cargo.toml, “rustfrompy”: lib = cdll.loadlibrary(&# ;target/release/librustfrompy.so&# ;) finally we can call the function anywhere we want. here it is in a pytest-style test: def test_rust_add(): assert lib.add( , ) == if you have pytest installed (and you should!) you can run the whole test like this: $ pytest --verbose test.py ====================================== test session starts ====================================== platform linux -- python . . , pytest- . . , py- . . , pluggy- . . -- /home/jez/.virtualenvs/datasci/bin/python cachedir: .cache rootdir: /home/jez/personal/projects/rustfrompy, inifile: collected items test.py::test_rust_add passed it worked! i’ve put both the rust and python code on github if you want to try it for yourself. shortcomings ok, so that was a pretty simple example, and i glossed over a lot of things. for example, what would happen if we did lib.add( . , )? this causes python to throw an error because our rust function only accepts integers ( -bit signed integers, i , to be precise), and we gave it a floating point number. ctypes can’t guess what type(s) a given function will work with, but it can at least tell us when we get it wrong. to fix this properly, we need to do some extra work, telling the ctypes library what the argument and return types for each function are. for a more complex library, there will probably be more housekeeping to do, such as translating return codes from functions into more pythonic-style errors. for a small example like this there isn’t much of a problem, but the bigger your compiled library the more extra boilerplate is required on the python side just to use all the functions. when you’re working with an existing library you don’t have much choice about this, but if you’re building it from scratch specifically to interface with python, there’s a better way using the python c api. you can call this directly in rust, but there are a couple of rust crates that make life much easier, and i’ll be taking a look at those in a future blog post. .so on linux, .dylib on mac and .dll on windows &#x a ;þ e; new years's irresolution photo by andrew hughes on unsplash i’ve chosen not to make any specific resolutions this year; i’ve found that they just don’t work for me. like many people, all i get is a sense of guilt when i inevitably fail to live up to the expectations i set myself at the start of the year. however, i have set a couple of what i’m referring to as “themes” for the year: touchstones that i’ll aim to refer to when setting priorities or just feeling a bit overwhelmed or lacking in direction. they are: contribution self-care measurement i may do some blog posts expanding on these, but in the meantime, i’ve put together a handful of questions to help me think about priorities and get perspective when i’m doing (or avoiding doing) something. what difference is this making? i feel more motivated when i can figure out how i’m contributing to something bigger than myself. in society? in my organisation? to my friends & family? am i looking after myself? i focus a lot on the expectations have (or at least that i think others have) of me, but i can’t do anything well unless i’m generally happy and healthy. is this making me happier and healthier? is this building my capacity to to look after myself, my family & friends and do my job? is this worth the amount of time and energy i’m putting in? do i have evidence for this? i don’t have to base decisions purely on feelings/opinions: i have the skills to obtain, analyse and interpret data. is this fact or opinion? what are the facts? am i overthinking this? can i put a confidence interval for this? build documents from code and data with saga !!! tldr “tl;dr” i’ve made saga, a thing for compiling documents by combining code and data with templates. what is it? saga is a very simple command-line tool that reads in one or more data files, runs one or more scripts, then passes the results into a template to produce a final output document. it enables you to maintain a clean separation between data, logic and presentation and produce data-based documents that can easily be updated. that allows the flow of data through the document to be easily understood, a cornerstone of reproducible analysis. you run it like this: saga build -d data.yaml -d other_data.yaml \ -s analysis.py -t report.md.tmpl \ -o report.md any scripts specified with -s will have access to the data in local variables, and any changes to local variables in a script will be retained when everything is passed to the template for rendering. for debugging, you can also do: saga dump -d data.yaml -d other_data.yaml -s analysis.py which will print out the full environment that would be passed to your template with saga build. features right now this is a really early version. it does the job but i have lots of ideas for features to add if i ever have time. at present it does the following: reads data from one or more yaml files transforms data with one or more python scripts renders a template in mako format works with any plain-text output format, including markdown, latex and html use cases write reproducible reports & papers based on machine-readable data separate presentation from content in any document, e.g. your cv (example coming soon) yours here? get it! i haven’t released this on pypi yet, but all the code is available on github to try out. if you have pipenv installed (and if you use python you should!), you can try it out in an isolated virtual environment by doing: git clone https://github.com/jezcope/sagadoc.git cd sagadoc pipenv install pipenv run saga or you can set up for development and run some tests: pipenv install --dev pipenv run pytest why? like a lot of people, i have to produce reports for work, often containing statistics computed from data. although these generally aren’t academic research papers, i see no reason not to aim for a similar level of reproducibility: after all, if i’m telling other people to do it, i’d better take my own advice! a couple of times now i’ve done this by writing a template that holds the text of the report and placeholders for values, along with a python script that reads in the data, calculates the statistics i want and completes the template. this is valuable for two main reasons: if anyone wants to know how i processed the data and calculated those statistics, it’s all there: no need to try and remember and reproduce a series of button clicks in excel; if the data or calculations change, i just need to update the relevant part and run it again, and all the relevant parts of the document will be updated. this is particularly important if changing a single data value requires recalculation of dozens of tables, charts, etc. it also gives me the potential to factor out and reuse bits of code in the future, add tests and version control everything. now that i’ve done this more than once (and it seems likely i’ll do it again) it makes sense to package that script up in a more portable form so i don’t have to write it over and over again (or, shock horror, copy & paste it!). it saves time, and gives others the possibility to make use of it. prior art i’m not the first person to think of this, but i couldn’t find anything that did exactly what i needed. several tools will let you interweave code and prose, including the results of evaluating each code snippet in the document: chief among these are jupyter and rmarkdown. there are also tools that let you write code in the order that makes most sense to read and then rearrange it into the right order to execute, so-call literate programming. the original tool for this is the venerable noweb. sadly there is very little that combine both of these and allow you to insert the results of various calculations at arbitrary points in a document, independent of the order of either presenting or executing the code. the only two that i’m aware of are: dexy and org-mode. unfortunately, dexy currently only works on legacy python (/python ) and org-mode requires emacs (which is fine but not exactly portable). rmarkdown comes close and supports a range of languages but the full feature set is only available with r. actually, my ideal solution is org-mode without the emacs dependency, because that’s the most flexible solution; maybe one day i’ll have both the time and skill to implement that. it’s also possible i might be able to figure out dexy’s internals to add what i want to it, but until then saga does the job! future work there are lots of features that i’d still like to add when i have time: some actual documentation! and examples! more data formats (e.g. csv, json, toml) more languages (e.g. r, julia) fetching remote data over http caching of intermediate results to speed up rebuilds for now, though, i’d love for you to try it out and let me know what you think! as ever, comment here, tweet me or start an issue on github. why try rust for scientific computing? when you’re writing analysis code, python (or r, or javascript, or …) is usually the right choice. these high-level languages are set up to make you as productive as possible, and common tasks like array manipulation have been well optimised. however, sometimes you just can’t get enough speed and need to turn to a lower-level compiled language. often that will be c, c++ or fortran, but i thought i’d do a short post on why i think you should consider rust. one of my goals for ’s advent of code was to learn a modern, memory-safe, statically-typed language. i now know that there are quite a lot of options in this space, but two seem to stand out: go & rust. i gave both of them a try, and although i’ll probably go back to give go a more thorough test at some point i found i got quite hooked on rust. both languages, though young, are definitely production-ready. servo, the core of the new firefox browser, is entirely written in rust. in fact, mozilla have been trying to rewrite the rendering core in c for nearly a decade, and switching to rust let them get it done in just a couple of years. !!! tldr “tl;dr” - it’s fast: competitive with idiomatic c/c++, and no garbage-collection overhead - it’s harder to write buggy code, and compiler errors are actually helpful - it’s c-compatible: you can call into rust code anywhere you’d call into c, call c/c++ from rust, and incrementally replace c/c++ code with rust - it has sensible modern syntax that makes your code clearer and more concise - support for scientific computing are getting better all the time (matrix algebra libraries, built-in simd, safe concurrency) - it has a really friendly and active community - it’s production-ready: servo, the new rendering core in firefox, is built entirely in rust performance to start with, as a compiled language rust executes much faster than a (pseudo-)interpreted language like python or r; the price you pay for this is time spent compiling during development. however, having a compile step also allows the language to enforce certain guarantees, such as type-correctness and memory safety, which between them prevent whole classes of bugs from even being possible. unlike go (which, like many higher-level languages, uses a garbage collector), rust handles memory safety at compile time through the concepts of ownership and borrowing. these can take some getting used to and were a big source of frustration when i was first figuring out the language, but ultimately contribute to rust’s reliably-fast performance. performance can be unpredictable in a garbage-collected language because you can’t be sure when the gc is going to run and you need to understand it really well to stand a chance of optimising it if becomes a problem. on the other hand, code that has the potential to be unsafe will result in compilation errors in rust. there are a number of benchmarks (example) that show rust’s performance on a par with idiomatic c & c++ code, something that very few languages can boast. helpful error messages because beginner rust programmers often get compile errors, it’s really important that those errors are easy to interpret and fix, and rust is great at this. not only does it tell you what went wrong, but wherever possible it prints out your code annotated with arrows to show exactly where the error is, and makes specific suggestions how to fix the error which usually turn out to be correct. it also has a nice suite of warnings (things that don’t cause compilation to fail but may indicate bugs) that are just as informative, and this can be extended even further by using the clippy linting tool to further analyse your code. warning: unused variable: `y` --> hello.rs: : | | let y = x; | ^ | = note: #[warn(unused_variables)] on by default = note: to avoid this warning, consider using `_y` instead easy to integrate with other languages if you’re like me, you’ll probably only use a low-level language for performance-critical code that you can call from a high-level language, and this is an area where rust shines. most programmers will turn to c, c++ or fortran for this because they have a well established abi (application binary interface) which can be understood by languages like python and r . in rust, it’s trivial to make a c-compatible shared library, and the standard library includes extra features for working with c types. that also means that existing c code can be incrementally ported to rust: see remacs for an example. on top of this, there are projects like rust-cpython and pyo which provide macros and structures that wrap the python c api to let you build python modules in rust with minimal glue code; rustr does a similar job for r. nice language features rust has some really nice features, which let you write efficient, concise and correct code. several feel particularly comfortable as they remind me of similar things available in haskell, including: enums, a super-powered combination of c enums and unions (similar to haskell’s algebraic data types) that enable some really nice code with no runtime cost generics and traits that let you get more done with less code pattern matching, a kind of case statement that lets you extract parts of structs, tuples & enums and do all sorts of other clever things lazy computation based on an iterator pattern, for efficient processing of lists of things: you can do for item in list { ... } instead of the c-style use of an index , or you can use higher-order functions like map and filter functions/closures as first-class citizens scientific computing although it’s a general-purpose language and not designed specifically for scientific computing, rust’s support is improving all the time. there are some interesting matrix algebra libraries available, and built-in simd is incoming. the memory safety features also work to ensure thread safety, so it’s harder to write concurrency bugs. you should be able to use your favourite mpi implementation too, and there’s at least one attempt to portably wrap mpi in a more rust-like way. active development and friendly community one of the things you notice straight away is how active and friendly the rust community is. there are several irc channels on irc.mozilla.org including #rust-beginners, which is a great place to get help. the compiler is under constant but carefully-managed development, so that new features are landing all the time but without breaking existing code. and the fabulous cargo build tool and crates.io are enabling the rapid growth of a healthy ecosystem of open source libraries that you can use to write less code yourself. summary so, next time you need a compiled language to speed up hotspots in your code, try rust. i promise you won’t regret it! julia actually allows you to call c and fortran functions as a first-class language feature &#x a ;þ e; actually, since c++ there’s for (auto item : list) { ... } but still… &#x a ;þ e; reflections on #aoc trees reflected in a lake joshua reddekopp on unsplash it seems like ages ago, but way back in november i committed to completing advent of code. i managed it all, and it was fun! all of my code is available on github if you’re interested in seeing what i did, and i managed to get out a blog post for every one with a bit more commentary, which you can see in the series list above. how did i approach it? i’ve not really done any serious programming challenges before. i don’t get to write a lot of code at the moment, so all i wanted from aoc was an excuse to do some proper problem-solving. i never really intended to take a polyglot approach, though i did think that i might use mainly python with a bit of haskell. in the end, though, i used: python (× ); haskell (× ); rust (× ); go; c++; ruby; julia; and coconut. for the most part, my priorities were getting the right answer, followed by writing readable code. i didn’t specifically focus on performance but did try to avoid falling into traps that i knew about. what did i learn? i found python the easiest to get on with: it’s the language i know best and although i can’t always remember exact method names and parameters i know what’s available and where to look to remind myself, as well as most of the common idioms and some performance traps to avoid. python was therefore the language that let me focus most on solving the problem itself. c++ and ruby were more challenging, and it was harder to write good idiomatic code but i can still remember quite a lot. haskell i haven’t used since university, and just like back then i really enjoyed working out how to solve problems in a functional style while still being readable and efficient (not always something i achieved…). i learned a lot about core haskell concepts like monads & functors, and i’m really amazed by the way the haskell community and ecosystem has grown up in the last decade. i also wanted to learn at least one modern, memory-safe compiled language, so i tried both go and rust. both seem like useful languages, but rust really intrigued me with its conceptual similarities to both haskell and c++ and its promise of memory safety without a garbage collector. i struggled a lot initially with the “borrow checker” (the component that enforces memory safety at compile time) but eventually started thinking in terms of ownership and lifetimes after which things became easier. the rust community seems really vibrant and friendly too. what next? i really want to keep this up, so i’m going to look out some more programming challenges (project euler looks interesting). it turns out there’s a regular code dojo meetup in leeds, so hopefully i’ll try that out too. i’d like to do more realistic data-science stuff, so i’ll be taking a closer look at stuff like kaggle too, and figuring out how to do a bit more analysis at work. i’m also feeling motivated to find an open source project to contribute to and/or release a project of my own, so we’ll see if that goes anywhere! i’ve always found the advice to “scratch your own itch” difficult to follow because everything i think of myself has already been done better. most of the projects i use enough to want to contribute to tend to be pretty well developed with big communities and any bugs that might be accessible to me will be picked off and fixed before i have a chance to get started. maybe it’s time to get over myself and just reimplement something that already exists, just for the fun of it! the halting problem — python — #adventofcode day today’s challenge, takes us back to a bit of computing history: a good old-fashioned turing machine. → full code on github !!! commentary today’s challenge was a nice bit of nostalgia, taking me back to my university days learning about the theory of computing. turing machines are a classic bit of computing theory, and are provably able to compute any value that is possible to compute: a value is computable if and only if a turing machine can be written that computes it (though in practice anything non-trivial is mind-bendingly hard to write as a tm). a bit of a library-fest today, compared to other days! from collections import deque, namedtuple from collections.abc import iterator from tqdm import tqdm import re import fileinput as fi these regular expressions are used to parse the input that defines the transition table for the machine. re_istate = re.compile(r&# ;begin in state (?p<state>\w+)\.&# ;) re_runtime = re.compile( r&# ;perform a diagnostic checksum after (?p<steps>\d+) steps.&# ;) re_statetrans = re.compile( r&# ;in state (?p<state>\w+):\n&# ; r&# ; if the current value is (?p<read >\d+):\n&# ; r&# ; - write the value (?p<write >\d+)\.\n&# ; r&# ; - move one slot to the (?p<move >left|right).\n&# ; r&# ; - continue with state (?p<next >\w+).\n&# ; r&# ; if the current value is (?p<read >\d+):\n&# ; r&# ; - write the value (?p<write >\d+)\.\n&# ; r&# ; - move one slot to the (?p<move >left|right).\n&# ; r&# ; - continue with state (?p<next >\w+).&# ;) move = {&# ;left&# ;: - , &# ;right&# ;: } a namedtuple to provide some sugar when using a transition rule. rule = namedtuple(&# ;rule&# ;, &# ;write move next_state&# ;) the turingmachine class does all the work. class turingmachine: def __init__(self, program=none): self.tape = deque() self.transition_table = {} self.state = none self.runtime = self.steps = self.pos = self.offset = if program is not none: self.load(program) def __str__(self): return f&# ;current: {self.state}; steps: {self.steps} of {self.runtime}&# ; some jiggery-pokery to allow us to use self[pos] to reference an infinite tape. def __getitem__(self, i): i += self.offset if i < or i >= len(self.tape): return else: return self.tape[i] def __setitem__(self, i, x): i += self.offset if i >= and i < len(self.tape): self.tape[i] = x elif i == - : self.tape.appendleft(x) self.offset += elif i == len(self.tape): self.tape.append(x) else: raise indexerror(&# ;tried to set position off end of tape&# ;) parse the program and set up the transtion table. def load(self, program): if isinstance(program, iterator): program = &# ;&# ;.join(program) match = re_istate.search(program) self.state = match[&# ;state&# ;] match = re_runtime.search(program) self.runtime = int(match[&# ;steps&# ;]) for match in re_statetrans.finditer(program): self.transition_table[match[&# ;state&# ;]] = { int(match[&# ;read &# ;]): rule(write=int(match[&# ;write &# ;]), move=move[match[&# ;move &# ;]], next_state=match[&# ;next &# ;]), int(match[&# ;read &# ;]): rule(write=int(match[&# ;write &# ;]), move=move[match[&# ;move &# ;]], next_state=match[&# ;next &# ;]), } run the program for the required number of steps (given by self.runtime). tqdm isn’t in the standard library but it should be: it shows a lovely text-mode progress bar as we go. def run(self): for _ in tqdm(range(self.runtime), desc=&# ;running&# ;, unit=&# ;steps&# ;, unit_scale=true): read = self[self.pos] rule = self.transition_table[self.state][read] self[self.pos] = rule.write self.pos += rule.move self.state = rule.next_state calculate the “diagnostic checksum” required for the answer. @property def checksum(self): return sum(self.tape) aaand go! machine = turingmachine(fi.input()) machine.run() print(&# ;checksum:&# ;, machine.checksum) electromagnetic moat — rust — #adventofcode day today’s challenge, the penultimate, requires us to build a bridge capable of reaching across to the cpu, our final destination. → full code on github !!! commentary we have a finite number of components that fit together in a restricted way from which to build a bridge, and we have to work out both the strongest and the longest bridge we can build. the most obvious way to do this is to recursively build every possible bridge and select the best, but that’s an o(n!) algorithm that could blow up quickly, so might as well go with a nice fast language! might have to try this in haskell too, because it’s the type of algorithm that lends itself naturally to a pure functional approach. i feel like i've applied some of the things i've learned in previous challenges i used rust for, and spent less time mucking about with ownership, and made better use of various language features, including structs and iterators. i'm rather pleased with how my learning of this language is progressing. i'm definitely overusing `option.unwrap` at the moment though: this is a lazy way to deal with `option` results and will panic if the result is not what's expected. i'm not sure whether i need to be cloning the components `vector` either, or whether i could just be passing iterators around. first, we import some bits of standard library and define some data types. the bridgeresult struct lets us use the same algorithm for both parts of the challenge and simply change the value used to calculate the maximum. use std::io; use std::fmt; use std::io::bufread; #[derive(debug, copy, clone, partialeq, eq, hash)] struct component(u , u ); #[derive(debug, copy, clone, default)] struct bridgeresult { strength: u , length: u , } impl component { fn from_str(s: &str) -> component { let parts: vec<&str> = s.split(&# ;/&# ;).collect(); assert!(parts.len() == ); component(parts[ ].parse().unwrap(), parts[ ].parse().unwrap()) } fn fits(self, port: u ) -> bool { self. == port || self. == port } fn other_end(self, port: u ) -> u { if self. == port { return self. ; } else if self. == port { return self. ; } else { panic!(&# ;{} doesn&# ;t fit port {}&# ;, self, port); } } fn strength(self) -> u { self. as u + self. as u } } impl fmt::display for bridgeresult { fn fmt(&self, f: &mut fmt::formatter) -> fmt::result { write!(f, &# ;(s: {}, l: {})&# ;, self.strength, self.length) } } best_bridge calculates the length and strength of the “best” bridge that can be built from the remaining components and fits the required port. whether this is based on strength or length is given by the key parameter, which is passed to iter.max_by_key. fn best_bridge<f>(port: u , key: &f, components: &vec<component>) -> option<bridgeresult> where f: fn(&bridgeresult) -> u { if components.len() == { return none; } components.iter() .filter(|c| c.fits(port)) .map(|c| { let b = best_bridge(c.other_end(port), key, &components.clone().into_iter() .filter(|x| x != c).collect()) .unwrap_or_default(); bridgeresult{strength: c.strength() + b.strength, length: + b.length} }) .max_by_key(key) } now all that remains is to read the input and calculate the result. i was rather pleasantly surprised to find that in spite of my pessimistic predictions about efficiency, when compiled with optimisations turned on this terminates in less than s on my laptop. fn main() { let stdin = io::stdin(); let components: vec<_> = stdin.lock() .lines() .map(|l| component::from_str(&l.unwrap())) .collect(); match best_bridge( , &|b: &bridgeresult| b.strength, &components) { some(b) => println!(&# ;strongest bridge is {}&# ;, b), none => println!(&# ;no strongest bridge found&# ;) }; match best_bridge( , &|b: &bridgeresult| b.length, &components) { some(b) => println!(&# ;longest bridge is {}&# ;, b), none => println!(&# ;no longest bridge found&# ;) }; } coprocessor conflagration — haskell — #adventofcode day today’s challenge requires us to understand why a coprocessor is working so hard to perform an apparently simple calculation. → full code on github !!! commentary today’s problem is based on an assembly-like language very similar to day , so i went back and adapted my code from that, which works well for the first part. i’ve also incorporated some advice from /r/haskell, and cleaned up all warnings shown by the -wall compiler flag and the hlint tool. part requires the algorithm to run with much larger inputs, and since some analysis shows that it's an `o(n^ )` algorithm it gets intractible pretty fast. there are several approaches to this. first up, if you have a fast enough processor and an efficient enough implementation i suspect that the simulation would probably terminate eventually, but that would likely still take hours: not good enough. i also thought about doing some peephole optimisations on the instructions, but the last time i did compiler optimisation was my degree so i wasn't really sure where to start. what i ended up doing was actually analysing the input code by hand to figure out what it was doing, and then just doing that calculation in a sensible way. i'd like to say i managed this on my own (and i ike to think i would have) but i did get some tips on [/r/adventofcode](https://reddit.com/r/adventofcode). the majority of this code is simply a cleaned-up version of day , with some tweaks to accommodate the different instruction set: module main where import qualified data.vector as v import qualified data.map.strict as m import control.monad.state.strict import text.parsercombinators.parsec hiding (state) type register = char type value = int type argument = either value register data instruction = set register argument | sub register argument | mul register argument | jnz argument argument deriving show type program = v.vector instruction data result = cont | halt deriving (eq, show) type registers = m.map char int data machine = machine { dregisters :: registers , dptr :: !int , dmulcount :: !int , dprogram :: program } instance show machine where show d = show (dregisters d) ++ &# ; @&# ; ++ show (dptr d) ++ &# ; ×&# ; ++ show (dmulcount d) defaultmachine :: machine defaultmachine = machine m.empty v.empty type machinestate = state machine program :: genparser char st program program = do instructions <- endby instruction eol return $ v.fromlist instructions where instruction = try (regop &# ;set&# ; set) <|> regop &# ;sub&# ; sub <|> regop &# ;mul&# ; mul <|> jump &# ;jnz&# ; jnz regop n c = do string n >> spaces val <- oneof &# ;abcdefgh&# ; secondarg c val jump n c = do string n >> spaces val <- regorval secondarg c val secondarg c val = do spaces val <- regorval return $ c val val regorval = register <|> value register = do name <- lower return $ right name value = do val <- many $ oneof &# ;- &# ; return $ left $ read val eol = char &# ;\n&# ; parseprogram :: string -> either parseerror program parseprogram = parse program &# ;&# ; getreg :: char -> machinestate int getreg r = do st <- get return $ m.findwithdefault r (dregisters st) putreg :: char -> int -> machinestate () putreg r v = do st <- get let current = dregisters st new = m.insert r v current put $ st { dregisters = new } modreg :: (int -> int -> int) -> char -> argument -> machinestate () modreg op r v = do u <- getreg r v&# ; <- getregorval v putreg r (u `op` v&# ;) incptr getregorval :: argument -> machinestate int getregorval = either return getreg addptr :: int -> machinestate () addptr n = do st <- get put $ st { dptr = n + dptr st } incptr :: machinestate () incptr = addptr execinst :: instruction -> machinestate () execinst (set reg val) = do newval <- getregorval val putreg reg newval incptr execinst (mul reg val) = do result <- modreg (*) reg val st <- get put $ st { dmulcount = + dmulcount st } return result execinst (sub reg val) = modreg (-) reg val execinst (jnz val val ) = do test <- getregorval val jump <- if test /= then getregorval val else return addptr jump execnext :: machinestate result execnext = do st <- get let prog = dprogram st p = dptr st if p >= length prog then return halt else do execinst (prog v.! p) return cont rununtilterm :: machinestate () rununtilterm = do result <- execnext unless (result == halt) rununtilterm this implements the actual calculation: the number of non-primes between (for my input) and : optimisedcalc :: int -> int -> int -> int optimisedcalc a b k = sum $ map (const ) $ filter notprime [a,a+k..b] where notprime n = elem $ map (mod n) [ ..(floor $ sqrt (fromintegral n :: double))] main :: io () main = do input <- getcontents case parseprogram input of right prog -> do let c = defaultmachine { dprogram = prog } (_, c&# ;) = runstate rununtilterm c putstrln $ show (dmulcount c&# ;) ++ &# ; multiplications made&# ; putstrln $ &# ;calculation result: &# ; ++ show (optimisedcalc ) left e -> print e sporifica virus — rust — #adventofcode day today’s challenge has us helping to clean up (or spread, i can’t really tell) an infection of the “sporifica” virus. → full code on github !!! commentary i thought i’d have another play with rust, as its haskell-like features resonate with me at the moment. i struggled quite a lot with the rust concepts of ownership and borrowing, and this is a cleaned-up version of the code based on some good advice from the folks on /r/rust. use std::io; use std::env; use std::io::bufread; use std::collections::hashmap; #[derive(partialeq, clone, copy, debug)] enum direction {up, right, down, left} #[derive(partialeq, clone, copy, debug)] enum infection {clean, weakened, infected, flagged} use self::direction::*; use self::infection::*; type grid = hashmap<(isize, isize), infection>; fn turn_left(d: direction) -> direction { match d {up => left, right => up, down => right, left => down} } fn turn_right(d: direction) -> direction { match d {up => right, right => down, down => left, left => up} } fn turn_around(d: direction) -> direction { match d {up => down, right => left, down => up, left => right} } fn make_move(d: direction, x: isize, y: isize) -> (isize, isize) { match d { up => (x- , y), right => (x, y+ ), down => (x+ , y), left => (x, y- ), } } fn basic_step(grid: &mut grid, x: &mut isize, y: &mut isize, d: &mut direction) -> usize { let mut infect = ; let current = match grid.get(&(*x, *y)) { some(v) => *v, none => clean, }; if current == infected { *d = turn_right(*d); } else { *d = turn_left(*d); infect = ; }; grid.insert((*x, *y), match current { clean => infected, infected => clean, x => panic!(&# ;unexpected infection state {:?}&# ;, x), }); let new_pos = make_move(*d, *x, *y); *x = new_pos. ; *y = new_pos. ; infect } fn nasty_step(grid: &mut grid, x: &mut isize, y: &mut isize, d: &mut direction) -> usize { let mut infect = ; let new_state: infection; let current = match grid.get(&(*x, *y)) { some(v) => *v, none => infection::clean, }; match current { clean => { *d = turn_left(*d); new_state = weakened; }, weakened => { new_state = infected; infect = ; }, infected => { *d = turn_right(*d); new_state = flagged; }, flagged => { *d = turn_around(*d); new_state = clean; } }; grid.insert((*x, *y), new_state); let new_pos = make_move(*d, *x, *y); *x = new_pos. ; *y = new_pos. ; infect } fn virus_infect<f>(mut grid: grid, mut step: f, mut x: isize, mut y: isize, mut d: direction, n: usize) -> usize where f: fnmut(&mut grid, &mut isize, &mut isize, &mut direction) -> usize, { ( ..n).map(|_| step(&mut grid, &mut x, &mut y, &mut d)) .sum() } fn main() { let args: vec<string> = env::args().collect(); let n_basic: usize = args[ ].parse().unwrap(); let n_nasty: usize = args[ ].parse().unwrap(); let stdin = io::stdin(); let lines: vec<string> = stdin.lock() .lines() .map(|x| x.unwrap()) .collect(); let mut grid: grid = hashmap::new(); let x = (lines.len() / ) as isize; let y = (lines[ ].len() / ) as isize; for (i, line) in lines.iter().enumerate() { for (j, c) in line.chars().enumerate() { grid.insert((i as isize, j as isize), match c {&# ;#&# ; => infected, _ => clean}); } } let basic_steps = virus_infect(grid.clone(), basic_step, x , y , up, n_basic); println!(&# ;basic: infected {} times&# ;, basic_steps); let nasty_steps = virus_infect(grid, nasty_step, x , y , up, n_nasty); println!(&# ;nasty: infected {} times&# ;, nasty_steps); } fractal art — python — #adventofcode day today’s challenge asks us to assist an artist building fractal patterns from a rulebook. → full code on github !!! commentary another fairly straightforward algorithm: the really tricky part was breaking the pattern up into chunks and rejoining it again. i could probably have done that more efficiently, and would have needed to if i had to go for a few more iterations and the grid grows with every iteration and gets big fast. still behind on the blog posts… import fileinput as fi from math import sqrt from functools import reduce, partial import operator initial_pattern = (( , , ), ( , , ), ( , , )) decode = [&# ;.&# ;, &# ;#&# ;] encode = {&# ;.&# ;: , &# ;#&# ;: } concat = partial(reduce, operator.concat) def rotate(p): size = len(p) return tuple(tuple(p[i][j] for i in range(size)) for j in range(size - , - , - )) def flip(p): return tuple(p[i] for i in range(len(p) - , - , - )) def permutations(p): yield p yield flip(p) for _ in range( ): p = rotate(p) yield p yield flip(p) def print_pattern(p): print(&# ;-&# ; * len(p)) for row in p: print(&# ; &# ;.join(decode[x] for x in row)) print(&# ;-&# ; * len(p)) def build_pattern(s): return tuple(tuple(encode[c] for c in row) for row in s.split(&# ;/&# ;)) def build_pattern_book(lines): book = {} for line in lines: source, target = line.strip().split(&# ; => &# ;) for rotation in permutations(build_pattern(source)): book[rotation] = build_pattern(target) return book def subdivide(pattern): size = if len(pattern) % == else n = len(pattern) // size return (tuple(tuple(pattern[i][j] for j in range(y * size, (y + ) * size)) for i in range(x * size, (x + ) * size)) for x in range(n) for y in range(n)) def rejoin(parts): n = int(sqrt(len(parts))) size = len(parts[ ]) return tuple(concat(parts[i + k][j] for i in range(n)) for k in range( , len(parts), n) for j in range(size)) def enhance_once(p, book): return rejoin(tuple(book[part] for part in subdivide(p))) def enhance(p, book, n, progress=none): for _ in range(n): p = enhance_once(p, book) return p book = build_pattern_book(fi.input()) intermediate_pattern = enhance(initial_pattern, book, ) print(&# ;after iterations:&# ;, sum(sum(row) for row in intermediate_pattern)) final_pattern = enhance(intermediate_pattern, book, ) print(&# ;after iterations:&# ;, sum(sum(row) for row in final_pattern)) particle swarm — python — #adventofcode day today’s challenge finds us simulating the movements of particles in space. → full code on github !!! commentary back to python for this one, another relatively straightforward simulation, although it’s easier to calculate the answer to part than to simulate. import fileinput as fi import numpy as np import re first we parse the input into d arrays: using numpy enables us to do efficient arithmetic across the whole set of particles in one go. particle_re = re.compile(r&# ;p=<(-?\d+),(-?\d+),(-?\d+)>, &# ; r&# ;v=<(-?\d+),(-?\d+),(-?\d+)>, &# ; r&# ;a=<(-?\d+),(-?\d+),(-?\d+)>&# ;) def parse_input(lines): x = [] v = [] a = [] for l in lines: m = particle_re.match(l) x.append([int(x) for x in m.group( , , )]) v.append([int(x) for x in m.group( , , )]) a.append([int(x) for x in m.group( , , )]) return (np.arange(len(x)), np.array(x), np.array(v), np.array(a)) i, x, v, a = parse_input(fi.input()) now we can calculate which particle will be closest to the origin in the long-term: this is simply the particle with the smallest acceleration. it turns out that several have the same acceleration, so of these, the one we want is the one with the lowest starting velocity. this is only complicated slightly by the need to get the number of the particle rather than its other information, hence the need to use numpy.argmin. a_abs = np.sum(np.abs(a), axis= ) a_min = np.min(a_abs) a_i = np.squeeze(np.argwhere(a_abs == a_min)) closest = i[a_i[np.argmin(np.sum(np.abs(v[a_i]), axis= ))]] print(&# ;closest: &# ;, closest) now we define functions to simulate collisions between particles. we have to use the return_index and return_counts options to numpy.unique to be able to get rid of all the duplicate positions (the standard usage is to keep one of each duplicate). def resolve_collisions(x, v, a): (_, i, c) = np.unique(x, return_index=true, return_counts=true, axis= ) i = i[c == ] return x[i], v[i], a[i] the termination criterion for this loop is an interesting aspect: the most robust to my mind seems to be that eventually the particles will end up sorted in order of their initial acceleration in terms of distance from the origin, so you could check for this but that’s pretty computationally expensive. in the end, all that was needed was a bit of trial and error: terminating arbitrarily after , iterations seems to work! in fact, all the collisions are over after about iterations for my input but there was always the possibility that two particles with very slightly different accelerations would eventually intersect much later. def simulate_collisions(x, v, a, iterations= ): for _ in range(iterations): v += a x += v x, v, a = resolve_collisions(x, v, a) return len(x) print(&# ;remaining particles: &# ;, simulate_collisions(x, v, a)) a series of tubes — rust — #adventofcode day today’s challenge asks us to help a network packet find its way. → full code on github !!! commentary today’s challenge was fairly straightforward, following an ascii art path, so i thought i’d give rust another try. i’m a bit behind on the blog posts, so i’m presenting the code below without any further commentary. i’m not really convinced this is good idiomatic rust, and it was interesting turning a set of strings into a d array of characters because there are both u (byte) and char types to deal with. use std::io; use std::io::bufread; const alpha: &&# ;static str = &# ;abcdefghijklmnopqrstuvwxyz&# ;; fn change_direction(dia: &vec<vec<u >>, x: usize, y: usize, dx: &mut i , dy: &mut i ) { assert_eq!(dia[x][y], b&# ;+&# ;); if dx.abs() == { *dx = ; if y + < dia[x].len() && (dia[x][y + ] == b&# ;-&# ; || alpha.contains(dia[x][y + ] as char)) { *dy = ; } else if dia[x][y - ] == b&# ;-&# ; || alpha.contains(dia[x][y - ] as char) { *dy = - ; } else { panic!(&# ;huh? {} {}&# ;, dia[x][y+ ] as char, dia[x][y- ] as char); } } else { *dy = ; if x + < dia.len() && (dia[x + ][y] == b&# ;|&# ; || alpha.contains(dia[x + ][y] as char)) { *dx = ; } else if dia[x - ][y] == b&# ;|&# ; || alpha.contains(dia[x - ][y] as char) { *dx = - ; } else { panic!(&# ;huh?&# ;); } } } fn follow_route(dia: vec<vec<u >>) -> (string, i ) { let mut x: i = ; let mut y: i ; let mut dx: i = ; let mut dy: i = ; let mut result = string::new(); let mut steps = ; match dia[ ].iter().position(|x| *x == b&# ;|&# ;) { some(i) => y = i as i , none => panic!(&# ;could not find &# ;|&# ; in first row&# ;), } loop { x += dx; y += dy; match dia[x as usize][y as usize] { b&# ;a&# ;...b&# ;z&# ; => result.push(dia[x as usize][y as usize] as char), b&# ;+&# ; => change_direction(&dia, x as usize, y as usize, &mut dx, &mut dy), b&# ; &# ; => return (result, steps), _ => (), } steps += ; } } fn main() { let stdin = io::stdin(); let lines: vec<vec<u >> = stdin.lock().lines() .map(|l| l.unwrap().into_bytes()) .collect(); let result = follow_route(lines); println!(&# ;route: {}&# ;, result. ); println!(&# ;steps: {}&# ;, result. ); } duet — haskell — #adventofcode day today’s challenge introduces a type of simplified assembly language that includes instructions for message-passing. first we have to simulate a single program (after humorously misinterpreting the snd and rcv instructions as “sound” and “recover”), but then we have to simulate two concurrent processes and the message passing between them. → full code on github !!! commentary well, i really learned a lot from this one! i wanted to get to grips with more complex stuff in haskell and this challenge seemed like an excellent opportunity to figure out a) parsing with the parsec library and b) using the state monad to keep the state of the simulator. as it turned out, that wasn't all i'd learned: i also ran into an interesting situation whereby lazy evaluation was creating an infinite loop where there shouldn't be one, so i also had to learn how to selectively force strict evaluation of values. i'm pretty sure this isn't the best haskell in the world, but i'm proud of it. first we have to import a bunch of stuff to use later, but also notice the pragma on the first line which instructs the compiler to enable the bangpatterns language extension, which will be important later. {-# language bangpatterns #-} module main where import qualified data.vector as v import qualified data.map.strict as m import data.list import data.either import data.maybe import control.monad.state.strict import control.monad.loops import text.parsercombinators.parsec hiding (state) first up we define the types that will represent the program code itself. data duetval = reg char | val int deriving show type duetqueue = [int] data duetinstruction = snd duetval | rcv duetval | jgz duetval duetval | set duetval duetval | add duetval duetval | mul duetval duetval | mod duetval duetval deriving show type duetprogram = v.vector duetinstruction next we define the types to hold the machine state, which includes: registers, instruction pointer, send & receive buffers and the program code, plus a counter of the number of sends made (to provide the solution). type duetregisters = m.map char int data duet = duet { dregisters :: duetregisters , dptr :: int , dsendcount :: int , drcvbuf :: duetqueue , dsndbuf :: duetqueue , dprogram :: duetprogram } instance show duet where show d = show (dregisters d) ++ &# ; @&# ; ++ show (dptr d) ++ &# ; s&# ; ++ show (dsndbuf d) ++ &# ; r&# ; ++ show (drcvbuf d) defaultduet = duet m.empty [] [] v.empty type duetstate = state duet program is a parser built on the cool parsec library to turn the program text into a haskell format that we can work with, a vector of instructions. yes, using a full-blown parser is overkill here (it would be much simpler just to split each line on whitespace, but i wanted to see how parsec works. i’m using vector here because we need random access to the instruction list, which is much more efficient with vector: o( ) compared with the o(n) of the built in haskell list ([]) type. parseprogram applies the parser to a string and returns the result. program :: genparser char st duetprogram program = do instructions <- endby instruction eol return $ v.fromlist instructions where instruction = try (onearg &# ;snd&# ; snd) <|> onearg &# ;rcv&# ; rcv <|> twoarg &# ;set&# ; set <|> twoarg &# ;add&# ; add <|> try (twoarg &# ;mul&# ; mul) <|> twoarg &# ;mod&# ; mod <|> twoarg &# ;jgz&# ; jgz onearg n c = do string n >> spaces val <- regorval return $ c val twoarg n c = do string n >> spaces val <- regorval spaces val <- regorval return $ c val val regorval = register <|> value register = do name <- lower return $ reg name value = do val <- many $ oneof &# ;- &# ; return $ val $ read val eol = char &# ;\n&# ; parseprogram :: string -> either parseerror duetprogram parseprogram = parse program &# ;&# ; next up we have some utility functions that sit in the duetstate monad we defined above and perform common manipulations on the state: getting/setting/updating registers, updating the instruction pointer and sending/receiving messages via the relevant queues. getreg :: char -> duetstate int getreg r = do st <- get return $ m.findwithdefault r (dregisters st) putreg :: char -> int -> duetstate () putreg r v = do st <- get let current = dregisters st new = m.insert r v current put $ st { dregisters = new } modreg :: (int -> int -> int) -> char -> duetval -> duetstate bool modreg op r v = do u <- getreg r v&# ; <- getregorval v putreg r (u `op` v&# ;) incptr return false getregorval :: duetval -> duetstate int getregorval (reg r) = getreg r getregorval (val v) = return v addptr :: int -> duetstate () addptr n = do st <- get put $ st { dptr = n + dptr st } incptr = addptr send :: int -> duetstate () send v = do st <- get put $ st { dsndbuf = (dsndbuf st ++ [v]), dsendcount = dsendcount st + } recv :: duetstate (maybe int) recv = do st <- get case drcvbuf st of (x:xs) -> do put $ st { drcvbuf = xs } return $ just x [] -> return nothing execinst implements the logic for each instruction. it returns false as long as the program can continue, but true if the program tries to receive from an empty buffer. execinst :: duetinstruction -> duetstate bool execinst (set (reg reg) val) = do newval <- getregorval val putreg reg newval incptr return false execinst (mul (reg reg) val) = modreg (*) reg val execinst (add (reg reg) val) = modreg (+) reg val execinst (mod (reg reg) val) = modreg mod reg val execinst (jgz val val ) = do st <- get test <- getregorval val jump <- if test > then getregorval val else return addptr jump return false execinst (snd val) = do v <- getregorval val send v st <- get incptr return false execinst (rcv (reg r)) = do st <- get v <- recv handle v where handle :: maybe int -> duetstate bool handle (just x) = putreg r x >> incptr >> return false handle nothing = return true execinst x = error $ &# ;execinst not implemented yet for &# ; ++ show x execnext looks up the next instruction and executes it. rununtilwait runs the program until execnext returns true to signal the wait state has been reached. execnext :: duetstate bool execnext = do st <- get let prog = dprogram st p = dptr st if p >= length prog then return true else execinst (prog v.! p) rununtilwait :: duetstate () rununtilwait = do waiting <- execnext unless waiting rununtilwait runtwoprograms handles the concurrent running of two programs, by running first one and then the other to a wait state, then swapping each program’s send buffer to the other’s receive buffer before repeating. if you look carefully, you’ll see a “bang” (!) before the two arguments of the function: runtwoprograms !d !d . haskell is a lazy language and usually doesn’t evaluate a computation until you ask for a result, instead carrying around a “thunk” or plan for how to carry out the computation. sometimes that can be a problem because the amount of memory your program is using can explode unnecessarily as a long computation turns into a large thunk which isn’t evaluated until the very end. that’s not the problem here though. what happens here without the bangs is another side-effect of laziness. the exit condition of this recursive function is that a deadlock has been reached: both programs are waiting to receive, but neither has sent anything, so neither can ever continue. the check for this is (null $ dsndbuf d ') && (null $ dsndbuf d '). as long as the first program has something in its send buffer, the test fails without ever evaluating the second part, which means the result d ' of running the second program is never needed. the function immediately goes to the recursive case and tries to continue the first program again, which immediately returns because it’s still waiting to receive. the same thing happens again, and the result is that instead of running the second program to obtain something for the first to receive, we get into an infinite loop trying and failing to continue the first program. the bang forces both d and d to be evaluated at the point we recurse, which forces the rest of the computation: running the second program and swapping the send/receive buffers. with that, the evaluation proceeds correctly and we terminate with a result instead of getting into an infinite loop! runtwoprograms :: duet -> duet -> (int, int) runtwoprograms !d !d | (null $ dsndbuf d &# ;) && (null $ dsndbuf d &# ;) = (dsendcount d &# ;, dsendcount d &# ;) | otherwise = runtwoprograms d &# ;&# ; d &# ;&# ; where (_, d &# ;) = runstate rununtilwait d (_, d &# ;) = runstate rununtilwait d d &# ;&# ; = d &# ; { dsndbuf = [], drcvbuf = dsndbuf d &# ; } d &# ;&# ; = d &# ; { dsndbuf = [], drcvbuf = dsndbuf d &# ; } all that remains to be done now is to run the programs and see how many messages were sent before the deadlock. main = do prog <- fmap (fromright v.empty . parseprogram) getcontents let d = defaultduet { dprogram = prog, dregisters = m.fromlist [(&# ;p&# ;, )] } d = defaultduet { dprogram = prog, dregisters = m.fromlist [(&# ;p&# ;, )] } (send , send ) = runtwoprograms d d putstrln $ &# ;program sent &# ; ++ show send ++ &# ; messages&# ; putstrln $ &# ;program sent &# ; ++ show send ++ &# ; messages&# ; spinlock — rust/python — #adventofcode day in today’s challenge we deal with a monstrous whirlwind of a program, eating up cpu and memory in equal measure. → full code on github (and python driver script) !!! commentary one of the things i wanted from aoc was an opportunity to try out some popular languages that i don’t currently know, including the memory-safe, strongly-typed compiled languages go and rust. realistically though, i’m likely to continue doing most of my programming in python, and use one of these other languages when it has better tools or i need the extra speed. in which case, what i really want to know is how i can call functions written in go or rust from python. i thought i'd try rust first, as it seems to be designed to be c-compatible and that makes it easy to call from python using [`ctypes`](https://docs.python.org/ . /library/ctypes.html). part was another straightforward simulation: translate what the "spinlock" monster is doing into code and run it. it was pretty obvious from the story of this challenge and experience of the last few days that this was going to be another one where the simulation is too computationally expensive for part two, which turns out to be correct. so, first thing to do is to implement the meat of the solution in rust. spinlock solves the first part of the problem by doing exactly what the monster does. since we only have to go up to iterations, this is very tractable. the last number we insert is , so we just return the number immediately after that. #[no_mangle] pub extern fn spinlock(n: usize, skip: usize) -> i { let mut buffer: vec<i > = vec::with_capacity(n+ ); buffer.push( ); buffer.push( ); let mut pos = ; for i in ..n+ { pos = (pos + skip + ) % buffer.len(); buffer.insert(pos, i as i ); } pos = (pos + ) % buffer.len(); return buffer[pos]; } for the second part, we have to do million iterations instead, which is a lot. given that every time you insert an item in the list it has to move up all the elements after that position, i’m pretty sure the algorithm is o(n^ ), so it’s going to take a lot longer than , ish times the first part. thankfully, we don’t need to build the whole list, just keep track of where is and what number is immediately after it. there may be a closed-form solution to simply calculate the result, but i couldn’t think of it and this is good enough. #[no_mangle] pub extern fn spinlock (n: usize, skip: usize) -> i { let mut pos = ; let mut pos_ = ; let mut after_ = ; for i in ..n+ { pos = (pos + skip + ) % i; if pos == pos_ + { after_ = i; } if pos <= pos_ { pos_ += ; } } return after_ as i ; } now it’s time to call this code from python. notice the #[no_mangle] pragmas and pub extern declarations for each function above, which are required to make sure the functions are exported in a c-compatible way. we can build this into a shared library like this: rustc --crate-type=cdylib -o spinlock.so -spinlock.rs the python script is as simple as loading this library, reading the puzzle input from the command line and calling the functions. the ctypes module does a lot of magic so that we don’t have to worry about converting from python types to native types and back again. import ctypes import sys lib = ctypes.cdll.loadlibrary(&# ;./spinlock.so&# ;) skip = int(sys.argv[ ]) print(&# ;part :&# ;, lib.spinlock( , skip)) print(&# ;part :&# ;, lib.spinlock ( _ _ , skip)) this is a toy example as far as calling rust from python is concerned, but it’s worth noting that already we can play with the parameters to the two rust functions without having to recompile. for more serious work, i’d probably be looking at something like pyo to make a proper python module. looks like there’s also a very early rust numpy integration for integrating numerical stuff. you can also do the same thing from julia, which has a ccall function built in: ccall((:spinlock, &# ;./spinlock.so&# ;), int , (uint , uint ), , ) my next thing to try might be haskell → python though… permutation promenade — julia — #adventofcode day today’s challenge rather appeals to me as a folk dancer, because it describes a set of instructions for a dance and asks us to work out the positions of the dancing programs after each run through the dance. → full code on github !!! commentary so, part is pretty straight forward: parse the set of instructions, interpret them and keep track of the dancer positions as you go. one time through the dance. however, part asks for the positions after billion (yes, that’s , , , ) times through the dance. in hindsight i should have immediately become suspicious, but i thought i’d at least try the brute force approach first because it was simpler to code. so i give it a try, and after waiting for a while, having a cup of tea etc. it still hasn't terminated. i try reducing the number of iterations to , . now it terminates, but takes about seconds. a spot of arithmetic suggests that running the full version will take a little over years. there must be a better way than that! i'm a little embarassed that i didn't spot the solution immediately (blaming julia) and tried again in python to see if i could get it to terminate quicker. when that didn't work i had to think again. a little further investigation with a while loop shows that in fact the dance position repeats (in the case of my input) every times. after that it becomes much quicker! oh, and it was time for a new language, so i wasted some extra time working out the quirks of [julia][]. first, a function to evaluate a single move — for neatness, this dispatches to a dedicated function depending on the type of move, although this isn’t really necessary to solve the challenge. ending a function name with a bang (!) is a julia convention to indicate that it has side-effects. function eval_move!(move, dancers) move_type = move[ ] params = move[ :end] if move_type == &# ;s&# ; # spin eval_spin!(params, dancers) elseif move_type == &# ;x&# ; # exchange eval_exchange!(params, dancers) elseif move_type == &# ;p&# ; # partner swap eval_partner!(params, dancers) end end these take care of the individual moves. parsing the parameters from a string every single time probably isn’t ideal, but as it turns out, that optimisation isn’t really necessary. note the + in eval_exchange!, which is necessary because julia is one of those crazy languages where indexes start from instead of . these actions are pretty nice to implement, because julia has circshift as a builtin to rotate a list, and allows you to assign to list slices and swap values in place with a single statement. function eval_spin!(params, dancers) shift = parse(int, params) dancers[ :end] = circshift(dancers, shift) end function eval_exchange!(params, dancers) i, j = map(x -> parse(int, x) + , split(params, &# ;/&# ;)) dancers[i], dancers[j] = dancers[j], dancers[i] end function eval_partner!(params, dancers) a, b = split(params, &# ;/&# ;) ia = findfirst([x == a for x in dancers]) ib = findfirst([x == b for x in dancers]) dancers[ia], dancers[ib] = b, a end dance! takes a list of moves and takes the dances once through the dance. function dance!(moves, dancers) for m in moves eval_move!(m, dancers) end end to solve part , we simply need to read the moves in, set up the initial positions of the dances and run the dance through once. join is necessary to a) turn characters into length- strings, and b) convert the list of strings back into a single string to print out. moves = split(readchomp(stdin), &# ;,&# ;) dancers = collect(join(c) for c in &# ;a&# ;:&# ;p&# ;) orig_dancers = copy(dancers) dance!(moves, dancers) println(join(dancers)) part requires a little more work. we run the dance through again and again until we get back to the initial position, saving the intermediate positions in a list. the list now contains every possible position available from that starting point, so we can find position billion by taking , , , modulo the list length (plus because -based indexing) and use that to index into the list to get the final position. dance_cycle = [orig_dancers] while dancers != orig_dancers push!(dance_cycle, copy(dancers)) dance!(moves, dancers) end println(join(dance_cycle[ _ _ _ % length(dance_cycle) + ])) this terminates on my laptop in about . s: brute force ; careful thought ! dueling generators — rust — #adventofcode day today’s challenge introduces two pseudo-random number generators which are trying to agree on a series of numbers. we play the part of the “judge”, counting the number of times their numbers agree in the lowest bits. → full code on github ever since i used go to solve day , i’ve had a hankering to try the other new kid on the memory-safe compiled language block, rust. i found it a bit intimidating at first because the syntax wasn’t as close to the c/c++ i’m familiar with and there are quite a few concepts unique to rust, like the use of traits. but i figured it out, so i can tick another language of my to-try list. i also implemented a version in python for comparison: the python version is more concise and easier to read but the rust version runs about × faster. first we include the std::env “crate” which will let us get access to commandline arguments, and define some useful constants for later. use std::env; const m: i = ; const mask: i = b ; const factor_a: i = ; const factor_b: i = ; gen_next generates the next number for a given generator’s sequence. gen_next_picky does the same, but for the “picky” generators, only returning values that meet their criteria. fn gen_next(factor: i , current: i ) -> i { return (current * factor) % m; } fn gen_next_picky(factor: i , current: i , mult: i ) -> i { let mut next = gen_next(factor, current); while next % mult != { next = gen_next(factor, next); } return next; } duel runs a single duel, and returns the number of times the generators agreed in the lowest bits (found by doing a binary & with the mask defined above). rust allows functions to be passed as parameters, so we use this to be able to run both versions of the duel using only this one function. fn duel<f, g>(n: i , next_a: f, mut value_a: i , next_b: g, mut value_b: i ) -> i where f: fn(i ) -> i , g: fn(i ) -> i , { let mut count = ; for _ in ..n { value_a = next_a(value_a); value_b = next_b(value_b); if (value_a & mask) == (value_b & mask) { count += ; } } return count; } finally, we read the start values from the command line and run the two duels. the expressions that begin |n| are closures (anonymous functions, often called lambdas in other languages) that we use to specify the generator functions for each duel. fn main() { let args: vec<string> = env::args().collect(); let start_a: i = args[ ].parse().unwrap(); let start_b: i = args[ ].parse().unwrap(); println!( &# ;duel : {}&# ;, duel( , |n| gen_next(factor_a, n), start_a, |n| gen_next(factor_b, n), start_b, ) ); println!( &# ;duel : {}&# ;, duel( , |n| gen_next_picky(factor_a, n, ), start_a, |n| gen_next_picky(factor_b, n, ), start_b, ) ); } disk defragmentation — haskell — #adventofcode day today’s challenge has us helping a disk defragmentation program by identifying contiguous regions of used sectors on a d disk. → full code on github !!! commentary wow, today’s challenge had a pretty steep learning curve. day was the first to directly reuse code from a previous day: the “knot hash” from day . i solved day in haskell, so i thought it would be easier to stick with haskell for today as well. the first part was straightforward, but the second was pretty mind-bending in a pure functional language! i ended up solving it by implementing a [flood fill algorithm][flood]. it's recursive, which is right in haskell's wheelhouse, but i ended up using `data.sequence` instead of the standard list type as its api for indexing is better. i haven't tried it, but i think it will also be a little faster than a naive list-based version. it took a looong time to figure everything out, but i had a day off work to be able to concentrate on it! a lot more imports for this solution, as we’re exercising a lot more of the standard library. module main where import prelude hiding (length, filter, take) import data.char (ord) import data.sequence import data.foldable hiding (length) import data.ix (inrange) import data.function ((&)) import data.maybe (fromjust, mapmaybe, isjust) import qualified data.set as set import text.printf (printf) import system.environment (getargs) also we’ll extract the key bits from day into a module and import that. import knothash now we define a few data types to make the code a bit more readable. sector represent the state of a particular disk sector, either free, used (but unmarked) or used and marked as belonging to a given integer-labelled group. grid is a d matrix of sector, as a sequence of sequences. data sector = free | used | mark int deriving (eq) instance show sector where show free = &# ; .&# ; show used = &# ; #&# ; show (mark i) = printf &# ;% d&# ; i type gridrow = seq sector type grid = seq (gridrow) some utility functions to make it easier to view the grids (which can be quite large): used for debugging but not in the finished solution. subgrid :: int -> grid -> grid subgrid n = fmap (take n) . take n printrow :: gridrow -> io () printrow row = do mapm_ (putstr . show) row putstr &# ;\n&# ; printgrid :: grid -> io () printgrid = mapm_ printrow makekey generates the hash key for a given row. makekey :: string -> int -> string makekey input n = input ++ &# ;-&# ; ++ show n stringtogridrow converts a binary string of ‘ ’ and ‘ ’ characters to a sequence of sector values. stringtogridrow :: string -> gridrow stringtogridrow = fromlist . map convert where convert x | x == &# ; &# ; = used | x == &# ; &# ; = free makerow and makegrid build up the grid to use based on the provided input string. makerow :: string -> int -> gridrow makerow input n = stringtogridrow $ concatmap (printf &# ;% b&# ;) $ dense $ fullknothash $ map ord $ makekey input n makegrid :: string -> grid makegrid input = fromlist $ map (makerow input) [ .. ] utility functions to count the number of used and free sectors, to give the solution to part . countequal :: sector -> grid -> int countequal x = sum . fmap (length . filter (==x)) countused = countequal used countfree = countequal free now the real meat begins! fundunmarked finds the location of the next used sector that we haven’t yet marked. it returns a maybe value, which is just (x, y) if there is still an unmarked block or nothing if there’s nothing left to mark. findunmarked :: grid -> maybe (int, int) findunmarked g | y == nothing = nothing | otherwise = just (fromjust x, fromjust y) where hasunmarked row = isjust $ elemindexl used row x = findindexl hasunmarked g y = case x of nothing -> nothing just x&# ; -> elemindexl used $ index g x&# ; floodfill implements a very simple recursive flood fill. it takes a target and replacement value and a starting location, and fills in the replacement value for every connected location that currently has the target value. we use it below to replace a connected used region with a marked region. floodfill :: sector -> sector -> (int, int) -> grid -> grid floodfill t r (x, y) g | inrange ( , length g - ) x && inrange ( , length g - ) y && elem == t = let newrow = update y r row newgrid = update x newrow g in newgrid & floodfill t r (x+ , y) & floodfill t r (x- , y) & floodfill t r (x, y+ ) & floodfill t r (x, y- ) | otherwise = g where row = g `index` x elem = row `index` y marknextgroup looks for an unmarked group and marks it if found. if no more groups are found it returns nothing. markallgroups then repeatedly applies marknextgroup until nothing is returned. marknextgroup :: int -> grid -> maybe grid marknextgroup i g = case findunmarked g of nothing -> nothing just loc -> just $ floodfill used (mark i) loc g markallgroups :: grid -> grid markallgroups g = markallgroups&# ; g where markallgroups&# ; i g = case marknextgroup i g of nothing -> g just g&# ; -> markallgroups&# ; (i+ ) g&# ; onlymarks filters a grid row and returns a list of (possibly duplicated) group numbers in the row. onlymarks :: gridrow -> [int] onlymarks = mapmaybe getmark . tolist where getmark free = nothing getmark used = nothing getmark (mark i) = just i finally, countgroups puts all the group numbers into a set to get rid of duplicates and returns the size of the set, i.e. the total number of separate groups. countgroups :: grid -> int countgroups g = set.size groupset where groupset = foldl&# ; set.union set.empty $ fmap rowtoset g rowtoset = set.fromlist . tolist . onlymarks as always, every haskell program needs a main function to drive the i/o and produce the actual result. main = do input <- fmap head getargs let grid = makegrid input used = countused grid marked = countgroups $ markallgroups grid putstrln $ &# ;used sectors: &# ; ++ show used putstrln $ &# ;groups: &# ; ++ show marked packet scanners — haskell — #adventofcode day today’s challenge requires us to sneak past a firewall made up of a series of scanners. → full code on github !!! commentary i wasn’t really thinking straight when i solved this challenge. i got a solution without too much trouble, but i ended up simulating the step-by-step movement of the scanners. i finally realised that i could calculate whether or not a given scanner was safe at a given time directly with modular arithmetic, and it bugged me so much that i reimplemented the solution. both are given below, the faster one first. first we introduce some standard library stuff and define some useful utilities. module main where import qualified data.text as t import data.maybe (mapmaybe) strip :: string -> string strip = t.unpack . t.strip . t.pack spliton :: string -> string -> [string] spliton sep = map t.unpack . t.spliton (t.pack sep) . t.pack parsescanner :: string -> (int, int) parsescanner s = (d, r) where [d, r] = map read $ spliton &# ;: &# ; s traversefw does all the hard work: it checks for each scanner whether or not it’s safe as we pass through, and returns a list of the severities of each time we’re caught. mapmaybe is like the standard map in many languages, but operates on a list of haskell maybe values, like a combined map and filter. if the value is just x, x gets included in the returned list; if the value is nothing, then it gets thrown away. traversefw :: int -> [(int, int)] -> [int] traversefw delay = mapmaybe caught where caught (d, r) = if (d + delay) `mod` ( *(r- )) == then just (d * r) else nothing then the total severity of our passage through the firewall is simply the sum of each individual severity. severity :: [(int, int)] -> int severity = sum . traversefw but we don’t want to know how badly we got caught, we want to know how long to wait before setting off to get through safely. finddelay tries traversing the firewall with increasing delay, and returns the delay for the first pass where we predict not getting caught. finddelay :: [(int, int)] -> int finddelay scanners = head $ filter (null . flip traversefw scanners) [ ..] and finally, we put it all together and calculate and print the result. main = do scanners <- fmap (map parsescanner . lines) getcontents putstrln $ &# ;severity: &# ; ++ (show $ severity scanners) putstrln $ &# ;delay: &# ; ++ (show $ finddelay scanners) i’m not generally bothered about performance for these challenges, but here i’ll note that my second attempt runs in a little under seconds on my laptop: $ time ./ -packet-scanners-redux < -input.txt severity: delay: ./ -packet-scanners-redux < -input.txt . s user . s system % cpu . total compare that with the first, simulation-based one, which takes nearly a full minute: $ time ./ -packet-scanners < -input.txt severity: delay: ./ -packet-scanners < -input.txt . s user . s system % cpu . total and for good measure, here’s the code. notice the tick and tickone functions, which together simulate moving all the scanners by one step; for this to work we have to track the full current state of each scanner, which is easier to read with a haskell record-based custom data type. traversefw is more complicated because it has to drive the simulation, but the rest of the code is mostly the same. module main where import qualified data.text as t import control.monad (form_) data scanner = scanner { depth :: int , range :: int , pos :: int , dir :: int } instance show scanner where show (scanner d r p dir) = show d ++ &# ;/&# ; ++ show r ++ &# ;/&# ; ++ show p ++ &# ;/&# ; ++ show dir strip :: string -> string strip = t.unpack . t.strip . t.pack spliton :: string -> string -> [string] spliton sep str = map t.unpack $ t.spliton (t.pack sep) $ t.pack str parsescanner :: string -> scanner parsescanner s = scanner d r where [d, r] = map read $ spliton &# ;: &# ; s tickone :: scanner -> scanner tickone (scanner depth range pos dir) | pos <= = scanner depth range (pos+ ) | pos >= range - = scanner depth range (pos- ) (- ) | otherwise = scanner depth range (pos+dir) dir tick :: [scanner] -> [scanner] tick = map tickone traversefw :: [scanner] -> [(int, int)] traversefw = traversefw&# ; where traversefw&# ; _ [] = [] traversefw&# ; layer scanners@((scanner depth range pos _):rest) -- | layer == depth && pos == = (depth*range) + (traversefw&# ; (layer+ ) $ tick rest) | layer == depth && pos == = (depth,range) : (traversefw&# ; (layer+ ) $ tick rest) | layer == depth && pos /= = traversefw&# ; (layer+ ) $ tick rest | otherwise = traversefw&# ; (layer+ ) $ tick scanners severity :: [scanner] -> int severity = sum . map (uncurry (*)) . traversefw empty :: [a] -> bool empty [] = true empty _ = false finddelay :: [scanner] -> int finddelay scanners = delay where (delay, _) = head $ filter (empty . traversefw . snd) $ zip [ ..] $ iterate tick scanners main = do scanners <- fmap (map parsescanner . lines) getcontents putstrln $ &# ;severity: &# ; ++ (show $ severity scanners) putstrln $ &# ;delay: &# ; ++ (show $ finddelay scanners) digital plumber — python — #adventofcode day today’s challenge has us helping a village of programs who are unable to communicate. we have a list of the the communication channels between their houses, and need to sort them out into groups such that we know that each program can communicate with others in its own group but not any others. then we have to calculate the size of the group containing program and the total number of groups. → full code on github !!! commentary this is one of those problems where i’m pretty sure that my algorithm isn’t close to being the most efficient, but it definitely works! for the sake of solving the challenge that’s all that matters, but it still bugs me. by now i’ve become used to using fileinput to transparently read data either from files given on the command-line or standard input if no arguments are given. import fileinput as fi first we make an initial pass through the input data, creating a group for each line representing the programs on that line (which can communicate with each other). we store this as a python set. groups = [] for line in fi.input(): head, rest = line.split(&# ; <-> &# ;) group = set([int(head)]) group.update([int(x) for x in rest.split(&# ;, &# ;)]) groups.append(group) now we iterate through the groups, starting with the first, and merging any we find that overlap with our current group. i = while i < len(groups): current = groups[i] each pass through the groups brings more programs into the current group, so we have to go through and check their connections too. we make several merge passes, until we detect that no more merges took place. num_groups = len(groups) + while num_groups > len(groups): j = i+ num_groups = len(groups) this inner loop does the actual merging, and deletes each group as it’s merged in. while j < len(groups): if len(current & groups[j]) > : current.update(groups[j]) del groups[j] else: j += i += all that’s left to do now is to display the results. print(&# ;number in group :&# ;, len([g for g in groups if in g][ ])) print(&# ;number of groups:&# ;, len(groups)) hex ed — python — #adventofcode day today’s challenge is to help a program find its child process, which has become lost on a hexagonal grid. we need to follow the path taken by the child (given as input) and calculate the distance it is from home along with the furthest distance it has been at any point along the path. → full code on github !!! commentary i found this one quite interesting in that it was very quick to solve. in fact, i got lucky and my first quick implementation (max(abs(l)) below) gave the correct answer in spite of missing an obvious not-so-edge case. thinking about it, there’s only a ⅓ chance that the first incorrect implementation would give the wrong answer! the code is shorter, so you get more words today. ☺ there are a number of different co-ordinate systems on a hexagonal grid (i discovered while reading up after solving it…). i intuitively went for the system known as ‘axial’ coordinates, where you pick two directions aligned to the grid as your x and y axes: note that these won’t be perpendicular. i chose ne/sw as the x axis and se/nw as y, but there are three other possible choices. that leads to the following definition for the directions, encoded as numpy arrays because that makes some of the code below neater. import numpy as np steps = {d: np.array(v) for d, v in [(&# ;ne&# ;, ( , )), (&# ;se&# ;, ( , - )), (&# ;s&# ;, (- , - )), (&# ;sw&# ;, (- , )), (&# ;nw&# ;, ( , )), (&# ;n&# ;, ( , ))]} hex_grid_dist, given a location l calculates the number of steps needed to reach that location from the centre at ( , ). notice that we can’t simply use the manhattan distance here because, for example, one step north takes us to ( , ), which would give a manhattan distance of . instead, we can see that moving in the n/s direction allows us to increment or decrement both coordinates at the same time: if the coordinates have the same sign: move n/s until one of them is zero, then move along the relevant ne or se axis back to the origin; in this case the number of steps is greatest of the absolute values of the two coordinates if the coordinates have opposite signs: move independently along the ne and se axes to reduce each to ; this time the number of steps is the sum of the absolute values of the two coordinates def hex_grid_distance(l): if sum(np.sign(l)) == : # i.e. opposite signs return sum(abs(l)) else: return max(abs(l)) now we can read in the path followed by the child and follow it ourselves, tracking the maximum distance from home along the way. path = input().strip().split(&# ;,&# ;) location = np.array(( , )) max_distance = for step in map(steps.get, path): location += step max_distance = max(max_distance, hex_grid_distance(location)) distance = hex_grid_distance(location) print(&# ;child process is at&# ;, location, &# ;which is&# ;, distance, &# ;steps away&# ;) print(&# ;greatest distance was&# ;, max_distance) knot hash — haskell — #adventofcode day today’s challenge asks us to help a group of programs implement a (highly questionable) hashing algorithm that involves repeatedly reversing parts of a list of numbers. → full code on github !!! commentary i went with haskell again today, because it’s the weekend so i have a bit more time, and i really enjoyed yesterday’s haskell implementation. today gave me the opportunity to explore the standard library a bit more, as well as lending itself nicely to being decomposed into smaller parts to be combined using higher-order functions. you know the drill by know: import stuff we’ll use later. module main where import data.char (ord) import data.bits (xor) import data.function ((&)) import data.list (unfoldr) import text.printf (printf) import qualified data.text as t the worked example uses a concept of the “current position” as a pointer to a location in a static list. in haskell it makes more sense to instead use the front of the list as the current position, and rotate the whole list as we progress to bring the right element to the front. rotate :: int -> [int] -> [int] rotate xs = xs rotate n xs = drop n&# ; xs ++ take n&# ; xs where n&# ; = n `mod` length xs the simple version of the hash requires working through the input list, modifying the working list as we go, and incrementing a “skip” counter with each step. converting this to a functional style, we simply zip up the input with an infinite list [ , , , , ...] to give the counter values. notice that we also have to calculate how far to rotate the working list to get back to its original position. foldl lets us specify a function that returns a modified version of the working list and feeds the input list in one at a time. simpleknothash :: int -> [int] -> [int] simpleknothash size input = foldl step [ ..size- ] input&# ; & rotate (negate finalpos) where input&# ; = zip input [ ..] finalpos = sum $ zipwith (+) input [ ..] reversepart xs n = (reverse $ take n xs) ++ drop n xs step xs (n, skip) = reversepart xs n & rotate (n+skip) the full version of the hash (part of the challenge) starts the same way as the simple version, except making passes instead of one: we can do this by using replicate to make a list of copies, then collapse that into a single list with concat. fullknothash :: int -> [int] -> [int] fullknothash size input = simpleknothash size input&# ; where input&# ; = concat $ replicate input the next step in calculating the full hash collapses the full -element “sparse” hash down into elements by xoring groups of together. unfoldr is a nice efficient way of doing this. dense :: [int] -> [int] dense = unfoldr dense&# ; where dense&# ; [] = nothing dense&# ; xs = just (foldl xor $ take xs, drop xs) the final hash step is to convert the list of integers into a hexadecimal string. hexify :: [int] -> string hexify = concatmap (printf &# ;% x&# ;) these two utility functions put together building blocks from the data.text module to parse the input string. note that no arguments are given: the functions are defined purely by composing other functions using the . operator. in haskell this is referred to as “point-free” style. strip :: string -> string strip = t.unpack . t.strip . t.pack parseinput :: string -> [int] parseinput = map (read . t.unpack) . t.spliton (t.singleton &# ;,&# ;) . t.pack now we can put it all together, including building the weird input for the “full” hash. main = do input <- fmap strip getcontents let simpleinput = parseinput input asciiinput = map ord input ++ [ , , , , ] (a:b:_) = simpleknothash simpleinput print $ (a*b) putstrln $ fullknothash asciiinput & dense & hexify stream processing — haskell — #adventofcode day in today’s challenge we come across a stream that we need to cross. but of course, because we’re stuck inside a computer, it’s not water but data flowing past. the stream is too dangerous to cross until we’ve removed all the garbage, and to prove we can do that we have to calculate a score for the valid data “groups” and the number of garbage characters to remove. → full code on github !!! commentary one of my goals for this process was to knock the rust of my functional programming skills in haskell, and i haven’t done that for the whole of the first week. processing strings character by character and acting according to which character shows up seems like a good choice for pattern-matching though, so here we go. i also wanted to take a bash at test-driven development in haskell, so i also loaded up the test.hspec module to give it a try. i did find keeping track of all the state in arguments a bit mind boggling, and i think it could have been improved through use of a data type using record syntax and the `state` monad, so that's something to look at for a future challenge. first import the extra bits we’ll need. module main where import test.hspec import data.function ((&)) countgroups solves the first part of the problem, counting up the “score” of the valid data in the stream. countgroups' is an auxiliary function that holds some state in its arguments. we use pattern matching for the base case: [] represents the empty list in haskell, which indicates we’ve finished the whole stream. otherwise, we split the remaining stream into its first character and remainder, and use guards to decide how to interpret it. if skip is true, discard the character and carry on with skip set back to false. if we find a “!”, that tells us to skip the next. other characters mark groups or sets of garbage: groups increase the score when they close and garbage is discarded. we continue to progress the list by recursing with the remainder of the stream and any updated state. countgroups :: string -> int countgroups = countgroups&# ; false false where countgroups&# ; score _ _ _ [] = score countgroups&# ; score level garbage skip (c:rest) | skip = countgroups&# ; score level garbage false rest | c == &# ;!&# ; = countgroups&# ; score level garbage true rest | garbage = case c of &# ;>&# ; -> countgroups&# ; score level false false rest _ -> countgroups&# ; score level true false rest | otherwise = case c of &# ;{&# ; -> countgroups&# ; score (level+ ) false false rest &# ;}&# ; -> countgroups&# ; (score+level) (level- ) false false rest &# ;,&# ; -> countgroups&# ; score level false false rest &# ;<&# ; -> countgroups&# ; score level true false rest c -> error $ &# ;garbage character found outside garbage: &# ; ++ show c countgarbage works almost identically to countgroups, except it ignores groups and counts garbage. they are structured so similarly that it would probably make more sense to combine them to a single function that returns both counts. countgarbage :: string -> int countgarbage = countgarbage&# ; false false where countgarbage&# ; count _ _ [] = count countgarbage&# ; count garbage skip (c:rest) | skip = countgarbage&# ; count garbage false rest | c == &# ;!&# ; = countgarbage&# ; count garbage true rest | garbage = case c of &# ;>&# ; -> countgarbage&# ; count false false rest _ -> countgarbage&# ; (count+ ) true false rest | otherwise = case c of &# ;<&# ; -> countgarbage&# ; count true false rest _ -> countgarbage&# ; count false false rest hspec gives us a domain-specific language heavily inspired by the rspec library for ruby: the tests read almost like natural language. i built up these tests one-by-one, gradually implementing the appropriate bits of the functions above, a process known as test-driven development. runtests = hspec $ do describe &# ;countgroups&# ; $ do it &# ;counts valid groups&# ; $ do countgroups &# ;{}&# ; `shouldbe` countgroups &# ;{{{}}}&# ; `shouldbe` countgroups &# ;{{{},{},{{}}}}&# ; `shouldbe` countgroups &# ;{{},{}}&# ; `shouldbe` it &# ;ignores garbage&# ; $ do countgroups &# ;{<a>,<a>,<a>,<a>}&# ; `shouldbe` countgroups &# ;{{<ab>},{<ab>},{<ab>},{<ab>}}&# ; `shouldbe` it &# ;skips marked characters&# ; $ do countgroups &# ;{{<!!>},{<!!>},{<!!>},{<!!>}}&# ; `shouldbe` countgroups &# ;{{<a!>},{<a!>},{<a!>},{<ab>}}&# ; `shouldbe` describe &# ;countgarbage&# ; $ do it &# ;counts garbage characters&# ; $ do countgarbage &# ;<>&# ; `shouldbe` countgarbage &# ;<random characters>&# ; `shouldbe` countgarbage &# ;<<<<>&# ; `shouldbe` it &# ;ignores non-garbage&# ; $ do countgarbage &# ;{{},{}}&# ; `shouldbe` countgarbage &# ;{{<ab>},{<ab>},{<ab>},{<ab>}}&# ; `shouldbe` it &# ;skips marked characters&# ; $ do countgarbage &# ;<{!>}>&# ; `shouldbe` countgarbage &# ;<!!>&# ; `shouldbe` countgarbage &# ;<!!!>&# ; `shouldbe` countgarbage &# ;<{o\&# ;i!a,<{i<a>&# ; `shouldbe` finally, the main function reads in the challenge input and calculates the answers, printing them on standard output. main = do runtests repeat &# ;=&# ; & take & putstrln input <- getcontents & fmap (filter (/=&# ;\n&# ;)) putstrln $ &# ;found &# ; ++ show (countgroups input) ++ &# ; groups&# ; putstrln $ &# ;found &# ; ++ show (countgarbage input) ++ &# ; characters garbage&# ; i heard you like registers — python — #adventofcode day today’s challenge describes a simple instruction set for a cpu, incrementing and decrementing values in registers according to simple conditions. we have to interpret a stream of these instructions, and to prove that we’ve done so, give the highest value of any register, both at the end of the program and throughout the whole program. → full code on github !!! commentary this turned out to be a nice straightforward one to implement, as the instruction format was easily parsed by regular expression, and python provides the eval function which made evaluating the conditions a doddle. import various standard library bits that we’ll use later. import re import fileinput as fi from math import inf from collections import defaultdict we could just parse the instructions by splitting the string, but using a regular expression is a little bit more robust because it won’t match at all if given an invalid instruction. instruction_re = re.compile(r&# ;(\w+) (inc|dec) (-?\d+) if (.+)\s*&# ;) def parse_instruction(instruction): match = instruction_re.match(instruction) return match.group( , , , ) executing an instruction simply checks the condition and if it evaluates to true updates the relevant register. def exec_instruction(registers, instruction): name, op, value, cond = instruction value = int(value) if op == &# ;dec&# ;: value = -value if eval(cond, globals(), registers): registers[name] += value highest_value returns the maximum value found in any register. def highest_value(registers): return sorted(registers.items(), key=lambda x: x[ ], reverse=true)[ ][ ] finally, loop through all the instructions and carry them out, updating global_max as we go. we need to be able to deal with registers that haven’t been accessed before. keeping the registers in a dictionary means that we can evaluate the conditions directly using eval above, passing it as the locals argument. the standard dict will raise an exception if we try to access a key that doesn’t exist, so instead we use collections.defaultdict, which allows us to specify what the default value for a non-existent key will be. new registers start at , so we use a simple lambda to define a function that always returns . global_max = -inf registers = defaultdict(lambda: ) for i in map(parse_instruction, fi.input()): exec_instruction(registers, i) global_max = max(global_max, highest_value(registers)) print(&# ;max value:&# ;, highest_value(registers)) print(&# ;all-time max:&# ;, global_max) recursive circus — ruby — #adventofcode day today’s challenge introduces a set of processes balancing precariously on top of each other. we find them stuck and unable to get down because one of the processes is the wrong size, unbalancing the whole circus. our job is to figure out the root from the input and then find the correct weight for the single incorrect process. → full code on github !!! commentary so i didn’t really intend to take a full polyglot approach to advent of code, but it turns out to have been quite fun, so i made a shortlist of languages to try. building a tree is a classic application for object-orientation using a class to represent tree nodes, and i’ve always liked the feel of ruby’s class syntax, so i gave it a go. first make sure we have access to set, which we’ll use later. require &# ;set&# ; now to define the circusnode class, which represents nodes in the tree. attr :s automatically creates a function s that returns the value of the instance attribute @s class circusnode attr :name, :weight def initialize(name, weight, children=nil) @name = name @weight = weight @children = children || [] end add a << operator (the same syntax for adding items to a list) that adds a child to this node. def <<(c) @children << c @total_weight = nil end total_weight recursively calculates the weight of this node and everything above it. the @total_weight ||= blah idiom caches the value so we only calculate it once. def total_weight @total_weight ||= @weight + @children.map {|c| c.total_weight}.sum end balance_weight does the hard work of figuring out the proper weight for the incorrect node by recursively searching through the tree. def balance_weight(target=nil) by_weight = hash.new{|h, k| h[k] = []} @children.each{|c| by_weight[c.total_weight] << c} if by_weight.size == then if target return @weight - (total_weight - target) else raise argumenterror, &# ;this tree seems balanced!&# ; end else odd_one_out = by_weight.select {|k, v| v.length == }.first[ ][ ] child_target = by_weight.select {|k, v| v.length > }.first[ ] return odd_one_out.balance_weight child_target end end a couple of utility functions for displaying trees finish off the class. def to_s &# ;#{@name} (#{@weight})&# ; end def print_tree(n= ) puts &# ;#{&# ; &# ;*n}#{self} -> #{self.total_weight}&# ; @children.each do |child| child.print_tree n+ end end end build_circus takes input as a list of lists [name, weight, children]. we make two passes over this list, first creating all the nodes, then building the tree by adding children to parents. def build_circus(data) all_nodes = {} all_children = set.new data.each do |name, weight, children| all_nodes[name] = circusnode.new name, weight end data.each do |name, weight, children| children.each {|child| all_nodes[name] << all_nodes[child]} all_children.merge children end root_name = (all_nodes.keys.to_set - all_children).first return all_nodes[root_name] end finally, build the tree and solve the problem! note that we use string.to_sym to convert the node names to symbols (written in ruby as :symbol), because they’re faster to work with in hashes and sets as we do above. data = readlines.map do |line| match = /(?<parent>\w+) \((?<weight>\d+)\)(?: -> (?<children>.*))?/.match line [match[&# ;parent&# ;].to_sym, match[&# ;weight&# ;].to_i, match[&# ;children&# ;] ? match[&# ;children&# ;].split(&# ;, &# ;).map {|x| x.to_sym} : []] end root = build_circus data puts &# ;root node: #{root}&# ; puts root.balance_weight memory reallocation — python — #adventofcode day today’s challenge asks us to follow a recipe for redistributing objects in memory that bears a striking resemblance to the rules of the african game mancala. → full code on github !!! commentary when i was doing my msci, one of our programming exercises was to write (in haskell, iirc) a program to play a mancala variant called oware, so this had a nice ring of nostalgia. back to python today: it's already become clear that it's by far my most fluent language, which makes sense as it's the only one i've used consistently since my schooldays. i'm a bit behind on the blog posts, so you get this one without any explanation, for now at least! import math def reallocate(mem): max_val = -math.inf size = len(mem) for i, x in enumerate(mem): if x > max_val: max_val = x max_index = i i = max_index mem[i] = remaining = max_val while remaining > : i = (i + ) % size mem[i] += remaining -= return mem def detect_cycle(mem): mem = list(mem) steps = prev_states = {} while tuple(mem) not in prev_states: prev_states[tuple(mem)] = steps steps += mem = reallocate(mem) return (steps, steps - prev_states[tuple(mem)]) initial_state = map(int, input().split()) print(&# ;initial state is &# ;, initial_state) steps, cycle = detect_cycle(initial_state) print(&# ;steps to cycle: &# ;, steps) print(&# ;steps in cycle: &# ;, cycle) a maze of twisty trampolines — c++ — #adventofcode day today’s challenge has us attempting to help the cpu escape from a maze of instructions. it’s not quite a turing machine, but it has that feeling of moving a read/write head up and down a tape acting on and changing the data found there. → full code on github !!! commentary i haven’t written anything in c++ for over a decade. it sounds like there have been lots of interesting developments in the language since then, with c++ , c++ and the freshly finalised c++ standards (built-in parallelism in the stl!). i won’t use any of those, but i thought i’d dust off my c++ and see what happened. thankfully the standard template library classes still did what i expected! as usual, we first include the parts of the standard library we’re going to use: iostream for input & output; vector for the container. we also declare that we’re using the std namespace, so that we don’t have to prepend vector and the other classes with std::. #include <iostream> #include <vector> using namespace std; steps_to_escape_part implements part of the challenge: we read a location, move forward/backward by the number of steps given in that location, then add one to the location before repeating. the result is the number of steps we take before jumping outside the list. int steps_to_escape_part (vector<int>& instructions) { int pos = , iterations = , new_pos; while (pos < instructions.size()) { new_pos = pos + instructions[pos]; instructions[pos]++; pos = new_pos; iterations++; } return iterations; } steps_to_escape_part solves part , which is very similar, except that an offset greater than is decremented instead of incremented before moving on. int steps_to_escape_part (vector<int>& instructions) { int pos = , iterations = , new_pos, offset; while (pos < instructions.size()) { offset = instructions[pos]; new_pos = pos + offset; instructions[pos] += offset >= ? - : ; pos = new_pos; iterations++; } return iterations; } finally we pull it all together and link it up to the input. int main() { vector<int> instructions , instructions ; int n; the cin class lets us read data from standard input, which we then add to a vector of ints to give our list of instructions. while (true) { cin >> n; if (cin.eof()) break; instructions .push_back(n); } solving the problem modifies the input, so we need to take a copy to solve part as well. thankfully the stl makes this easy with iterators. instructions .insert(instructions .begin(), instructions .begin(), instructions .end()); finally, compute the result and print it on standard output. cout << steps_to_escape_part (instructions ) << endl; cout << steps_to_escape_part (instructions ) << endl; return ; } high entropy passphrases — python — #adventofcode day today’s challenge describes some simple rules supposedly intended to enforce the use of secure passwords. all we have to do is test a list of passphrase and identify which ones meet the rules. → full code on github !!! commentary fearing that today might be as time-consuming as yesterday, i returned to python and it’s hugely powerful “batteries-included” standard library. thankfully this challenge was more straightforward, and i actually finished this before finishing day . first, let’s import two useful utilities. from fileinput import input from collections import counter part requires simply that a passphrase contains no repeated words. no problem: we split the passphrase into words and count them, and check if any was present more than once. counter is an amazingly useful class to have in a language’s standard library. all it does is count things: you add objects to it, and then it will tell you how many of a given object you have. we’re going to use it to count those potentially duplicated words. def is_valid(passphrase): counter = counter(passphrase.split()) return counter.most_common( )[ ][ ] == part requires that no word in the passphrase be an anagram of any other word. since we don’t need to do anything else with the words afterwards, we can check for anagrams by sorting the letters in each word: “leaf” and “flea” both become “aefl” and can be compared directly. then we count as before. def is_valid_ana(passphrase): counter = counter(&# ;&# ;.join(sorted(word)) for word in passphrase.split()) return counter.most_common( )[ ][ ] == finally we pull everything together. sum(map(boolean_func, list)) is a common idiom in python for counting the number of times a condition (checked by boolean_func) is true. in python, true and false can be treated as the numbers and respectively, so that summing a list of boolean values gives you the number of true values in the list. lines = list(input()) print(sum(map(is_valid, lines))) print(sum(map(is_valid_ana, lines))) spiral memory — go — #adventofcode day today’s challenge requires us to perform some calculations on an “experimental memory layout”, with cells moving outwards from the centre of a square spiral (squiral?). → full code on github !!! commentary i’ve been wanting to try my hand at go, the memory-safe, statically typed compiled language from google for a while. today’s challenge seemed a bit more mathematical in nature, meaning that i wouldn’t need too many advanced language features or knowledge of a standard library, so i thought i’d give it a “go”. it might have been my imagination, but it was impressive how quickly the compiled program chomped through different input values while i was debugging. i actually spent far too long on this problem because my brain led me down a blind alley trying to do the wrong calculation, but i got there in the end! the solution is a bit difficult to explain without diagrams, which i don't really have time to draw right now, but fear not because several other people have. first take a look at [the challenge itself which explains the spiral memory concept](http://adventofcode.com/ /day/ ). then look at the [nice diagrams that phil tooley made with python](http://acceleratedscience.co.uk/blog/adventofcode-day- -spiral-memory/) and hopefully you'll be able to see what's going on! it's interesting to note that this challenge also admits of an algorithmic solution instead of the mathematical one: you can model the memory as an infinite grid using a suitable data structure and literally move around it in a spiral. in hindsight this is a much better way of solving the challenge quickly because it's easier and less error-prone to code. i'm quite pleased with my maths-ing though, and it's much quicker than the algorithmic version! first some go boilerplate: we have to define the package we’re in (main, because it’s an executable we’re producing) and import the libraries we’ll use. package main import ( &# ;fmt&# ; &# ;math&# ; &# ;os&# ; ) weirdly, go doesn’t seem to have these basic mathematics functions for integers in its standard library (please someone correct me if i’m wrong!) so i’ll define them instead of mucking about with data types. go doesn’t do any implicit type conversion, even between numeric types, and the math builtin package only operates on float values. func abs(n int) int { if n < { return -n } return n } func min(x, y int) int { if x < y { return x } return y } func max(x, y int) int { if x > y { return x } return y } this does the heavy lifting for part one: converting from a position on the spiral to a column and row in the grid. ( , ) is the centre of the spiral. this actually does a bit more than is necessary to calculate the distance as required for part , but we’ll use it again for part . func spiral_to_xy(n int) (int, int) { if n == { return , } r := int(math.floor((math.sqrt(float (n- )) + ) / )) n_r := n - ( *r- )*( *r- ) o := ((n_r - ) % ( * r)) - r + sector := (n_r - ) / ( * r) switch sector { case : return r, o case : return -o, r case : return -r, -o case : return o, -r } return , } now use spiral_to_xy to calculate the manhattan distance that the value at location n in the spiral memory are carried to reach the “access port” at . func distance(n int) int { x, y := spiral_to_xy(n) return abs(x) + abs(y) } this function does the opposite of spiral_to_xy, translating a grid position back to its position on the spiral. this is the one that took me far too long to figure out because i had a brain bug and tried to calculate the value s (which sector or quarter of the spiral we’re looking at) in a way that was never going to work! fortunately i came to my senses. func xy_to_spiral(x, y int) int { if x == && y == { return } r := max(abs(x), abs(y)) var s, o, n int if x+y > && x-y >= { s = } else if x-y < && x+y >= { s = } else if x+y < && x-y <= { s = } else { s = } switch s { case : o = y case : o = -x case : o = -y case : o = x } n = o + r*( *s+ ) + ( *r- )*( *r- ) return n } this is a utility function that uses xy_to_spiral to fetch the value at a given (x, y) location, and returns zero if we haven’t filled that location yet. func get_spiral(mem []int, x, y int) int { n := xy_to_spiral(x, y) - if n < len(mem) { return mem[n] } return } finally we solve part of the problem, which involves going round the spiral writing values into it that are the sum of some values already written. the result is the first of these sums that is greater than or equal to the given input value. func stress_test(input int) int { mem := make([]int, ) n := mem[ ] = for mem[n] < input { n++ x, y := spiral_to_xy(n + ) mem = append(mem, get_spiral(mem, x+ , y)+ get_spiral(mem, x+ , y+ )+ get_spiral(mem, x, y+ )+ get_spiral(mem, x- , y+ )+ get_spiral(mem, x- , y)+ get_spiral(mem, x- , y- )+ get_spiral(mem, x, y- )+ get_spiral(mem, x+ , y- )) } return mem[n] } now the last part of the program puts it all together, reading the input value from a commandline argument and printing the results of the two parts of the challenge: func main() { var n int fmt.sscanf(os.args[ ], &# ;%d&# ;, &n) fmt.printf(&# ;input is %d\n&# ;, n) fmt.printf(&# ;distance is %d\n&# ;, distance(n)) fmt.printf(&# ;stress test result is %d\n&# ;, stress_test(n)) } corruption checksum — python — #adventofcode day today’s challenge is to calculate a rather contrived “checksum” over a grid of numbers. → full code on github !!! commentary today i went back to plain python, and i didn’t do formal tests because only one test case was given for each part of the problem. i just got stuck in. i did write part out in as nested `for` loops as an intermediate step to working out the generator expression. i think that expanded version may have been more readable. having got that far, i couldn't then work out how to finally eliminate the need for an auxiliary function entirely without either sorting the same elements multiple times or sorting each row as it's read. first we read in the input, split it and convert it to numbers. fileinput.input() returns an iterator over the lines in all the files passed as command-line arguments, or over standard input if no files are given. from fileinput import input sheet = [[int(x) for x in l.split()] for l in input()] part of the challenge calls for finding the difference between the largest and smallest number in each row, and then summing those differences: print(sum(max(x) - min(x) for x in sheet)) part is a bit more involved: for each row we have to find the unique pair of elements that divide into each other without remainder, then sum the result of those divisions. we can make it a little easier by sorting each row; then we can take each number in turn and compare it only with the numbers after it (which are guaranteed to be larger). doing this ensures we only make each comparison once. def rowsum_div(row): row = sorted(row) return sum(y // x for i, x in enumerate(row) for y in row[i+ :] if y % x == ) print(sum(map(rowsum_div, sheet))) we can make this code shorter (if not easier to read) by sorting each row as it’s read: sheet = [sorted(int(x) for x in l.split()) for l in input()] then we can just use the first and last elements in each row for part , as we know those are the smallest and largest respectively in the sorted row: print(sum(x[- ] - x[ ] for x in sheet)) part then becomes a sum over a single generator expression: print(sum(y // x for row in sheet for i, x in enumerate(row) for y in row[i+ :] if y % x == )) very satisfying! inverse captcha — coconut — #adventofcode day well, december’s here at last, and with it day of advent of code. … it goes on to explain that you may only leave by solving a captcha to prove you’re not a human. apparently, you only get one millisecond to solve the captcha: too fast for a normal human, but it feels like hours to you. … as well as posting solutions here when i can, i’ll be putting them all on https://github.com/jezcope/aoc too. !!! commentary after doing some challenges from last year in haskell for a warm up, i felt inspired to try out the functional-ish python dialect, coconut. now that i’ve done it, it feels a bit of an odd language, neither fish nor fowl. it’ll look familiar to any pythonista, but is loaded with features normally associated with functional languages, like pattern matching, destructuring assignment, partial application and function composition. that makes it quite fun to work with, as it works similarly to haskell, but because it's restricted by the basic rules of python syntax everything feels a bit more like hard work than it should. the accumulator approach feels clunky, but it's necessary to allow [tail call elimination](https://en.wikipedia.org/wiki/tail_call), which coconut will do and i wanted to see in action. lo and behold, if you take a look at the [compiled python version](https://github.com/jezcope/aoc /blob/ c bda b e db e d b be a / -inverse-captcha.py#l ) you'll see that my recursive implementation has been turned into a non-recursive `while` loop. then again, maybe i'm just jealous of phil tooley's [one-liner solution in python](https://github.com/ptooley/aocgolf/blob/ d f ccfc cfd baf d / .py#l ). import sys def inverse_captcha_(s, acc= ): case reiterable(s): match (|d, d|) :: rest: return inverse_captcha_((|d|) :: rest, acc + int(d)) match (|d , d |) :: rest: return inverse_captcha_((|d |) :: rest, acc) return acc def inverse_captcha(s) = inverse_captcha_(s :: s[ ]) def inverse_captcha_ _(s , s , acc= ): case (reiterable(s ), reiterable(s )): match ((|d |) :: rest , (|d |) :: rest ): return inverse_captcha_ _(rest , rest , acc + int(d )) match ((|d |) :: rest , (|d |) :: rest ): return inverse_captcha_ _(rest , rest , acc) return acc def inverse_captcha_ (s) = inverse_captcha_ _(s, s$[len(s)// :] :: s) def test_inverse_captcha(): assert " " |> inverse_captcha == assert " " |> inverse_captcha == assert " " |> inverse_captcha == assert " " |> inverse_captcha == def test_inverse_captcha_ (): assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == if __name__ == "__main__": sys.argv[ ] |> inverse_captcha |> print sys.argv[ ] |> inverse_captcha_ |> print advent of code : introduction it’s a common lament of mine that i don’t get to write a lot of code in my day-to-day job. i like the feeling of making something from nothing, and i often look for excuses to write bits of code, both at work and outside it. advent of code is a daily series of programming challenges for the month of december, and is about to start its third annual incarnation. i discovered it too late to take part in any serious way last year, but i’m going to give it a try this year. there are no restrictions on programming language (so of course some people delight in using esoteric languages like brainf**k), but i think i’ll probably stick with python for the most part. that said, i miss my haskell days and i’m intrigued by new kids on the block go and rust, so i might end up throwing in a few of those on some of the simpler challenges. i’d like to focus a bit more on how i solve the puzzles. they generally come in two parts, with the second part only being revealed after successful completion of the first part. with that in mind, test-driven development makes a lot of sense, because i can verify that i haven’t broken the solution to the first part in modifying to solve the second. i may also take a literate programming approach with org-mode or jupyter notebooks to document my solutions a bit more, and of course that will make it easier to publish solutions here so i’ll do that as much as i can make time for. on that note, here are some solutions for that i’ve done recently as a warmup. day : python day instructions import numpy as np import pytest as t import sys turn = { &# ;l&# ;: np.array([[ , ], [- , ]]), &# ;r&# ;: np.array([[ , - ], [ , ]]) } origin = np.array([ , ]) north = np.array([ , ]) class santa: def __init__(self, location, heading): self.location = np.array(location) self.heading = np.array(heading) self.visited = [( , )] def execute_one(self, instruction): start_loc = self.location.copy() self.heading = self.heading @ turn[instruction[ ]] self.location += self.heading * int(instruction[ :]) self.mark(start_loc, self.location) def execute_many(self, instructions): for i in instructions.split(&# ;,&# ;): self.execute_one(i.strip()) def distance_from_start(self): return sum(abs(self.location)) def mark(self, start, end): for x in range(min(start[ ], end[ ]), max(start[ ], end[ ])+ ): for y in range(min(start[ ], end[ ]), max(start[ ], end[ ])+ ): if any((x, y) != start): self.visited.append((x, y)) def find_first_crossing(self): for i in range( , len(self.visited)): for j in range(i): if self.visited[i] == self.visited[j]: return self.visited[i] def distance_to_first_crossing(self): crossing = self.find_first_crossing() if crossing is not none: return abs(crossing[ ]) + abs(crossing[ ]) def __str__(self): return f&# ;santa @ {self.location}, heading {self.heading}&# ; def test_execute_one(): s = santa(origin, north) s.execute_one(&# ;l &# ;) assert all(s.location == np.array([- , ])) assert all(s.heading == np.array([- , ])) s.execute_one(&# ;l &# ;) assert all(s.location == np.array([- , - ])) assert all(s.heading == np.array([ , - ])) s.execute_one(&# ;r &# ;) assert all(s.location == np.array([- , - ])) assert all(s.heading == np.array([- , ])) s.execute_one(&# ;r &# ;) assert all(s.location == np.array([- , ])) assert all(s.heading == np.array([ , ])) def test_execute_many(): s = santa(origin, north) s.execute_many(&# ;l , l , r &# ;) assert all(s.location == np.array([- , - ])) assert all(s.heading == np.array([- , ])) def test_distance(): assert santa(origin, north).distance_from_start() == assert santa(( , ), north).distance_from_start() == assert santa((- , ), north).distance_from_start() == def test_turn_left(): east = north @ turn[&# ;l&# ;] south = east @ turn[&# ;l&# ;] west = south @ turn[&# ;l&# ;] assert all(east == np.array([- , ])) assert all(south == np.array([ , - ])) assert all(west == np.array([ , ])) def test_turn_right(): west = north @ turn[&# ;r&# ;] south = west @ turn[&# ;r&# ;] east = south @ turn[&# ;r&# ;] assert all(east == np.array([- , ])) assert all(south == np.array([ , - ])) assert all(west == np.array([ , ])) if __name__ == &# ;__main__&# ;: instructions = sys.stdin.read() santa = santa(origin, north) santa.execute_many(instructions) print(santa) print(&# ;distance from start:&# ;, santa.distance_from_start()) print(&# ;distance to target: &# ;, santa.distance_to_first_crossing()) day : haskell day instructions module main where data pos = pos int int deriving (show) -- magrittr-style pipe operator (|>) :: a -> (a -> b) -> b x |> f = f x swappos :: pos -> pos swappos (pos x y) = pos y x clamp :: int -> int -> int -> int clamp lower upper x | x < lower = lower | x > upper = upper | otherwise = x clamph :: pos -> pos clamph (pos x y) = pos x&# ; y&# ; where y&# ; = clamp y r = abs ( - y&# ;) x&# ; = clamp r ( -r) x clampv :: pos -> pos clampv = swappos . clamph . swappos buttonforpos :: pos -> string buttonforpos (pos x y) = [buttons !! y !! x] where buttons = [&# ; d &# ;, &# ; abc &# ;, &# ; &# ;, &# ; &# ;, &# ; &# ;] decodechar :: pos -> char -> pos decodechar (pos x y) &# ;r&# ; = clamph $ pos (x+ ) y decodechar (pos x y) &# ;l&# ; = clamph $ pos (x- ) y decodechar (pos x y) &# ;u&# ; = clampv $ pos x (y+ ) decodechar (pos x y) &# ;d&# ; = clampv $ pos x (y- ) decodeline :: pos -> string -> pos decodeline p &# ;&# ; = p decodeline p (c:cs) = decodeline (decodechar p c) cs makecode :: string -> string makecode instructions = lines instructions -- split into lines |> scanl decodeline (pos ) -- decode to positions |> tail -- drop start position |> concatmap buttonforpos -- convert to buttons main = do input <- getcontents putstrln $ makecode input research data management forum , manchester !!! intro "" monday and tuesday november i’m at the research data management forum in manchester. i thought i’d use this as an opportunity to try liveblogging, so during the event some notes should appear in the box below (you may have to manually refresh your browser tab periodically to get the latest version). i've not done this before, so if the blog stops updating then it's probably because i've stopped updating it to focus on the conference instead! this was made possible using github's cool [gist](https://gist.github.com) tool. draft content policy i thought it was about time i had some sort of content policy on here so this is a first draft. it will eventually wind up as a separate page. feedback welcome! !!! aside “content policy” this blog’s primary purpose is as a reflective learning tool for my own development; my aim in writing any given post is mainly to expose and develop my own thinking on a topic. my reasons for making a public blog rather than a private journal are: . if i'm lucky, someone smarter than me will provide feedback that will help me and my readers to learn more . if i'm extra lucky, someone else might learn from the material as well each post, therefore, represents the state of my thinking at the time i wrote it, or perhaps a deliberate provocation or exaggeration; either way, if you don't know me personally please don't judge me based entirely on my past words. this is a request though, not an attempt to excuse bad behaviour on my part. i accept full responsibility for any consequences of my words, whether intended or not. i will not remove comments or ban individuals for disagreeing with me, only for behaving offensively or disrespectfully. i will do my best to be fair and balanced and explain decisions that i take, but i reserve the right to take those decisions without making any explanation at all if it seems likely to further inflame a situation. if i end up responding to anything simply with a link to this policy, that's probably all the explanation you're going to get. it should go without saying, but the opinions presented in this blog are my own and not those of my employer or anyone else i might at times represent. learning to live with anxiety !!! intro "" this is a post that i’ve been writing for months, and writing in my head for years. for some it will explain aspects of my personality that you might have wondered about. for some it will just be another person banging on self-indulgently about so-called “mental health issues”. hopefully, for some it will demystify some stuff and show that you’re not alone and things do get better. for as long as i can remember i’ve been a worrier. i’ve also suffered from bouts of what i now recognise as depression, on and off since my school days. it’s only relatively recently that i’ve come to the realisation that these two might be connected and that my ‘worrying’ might in fact be outside the normal range of healthy human behaviour and might more accurately be described as chronic anxiety. you probably won’t have noticed it, but it’s been there. more recently i’ve begun feeling like i’m getting on top of it and feeling “normal” for the first time in my life. things i’ve found that help include: getting out of the house more and socialising with friends; and getting a range of exercise, outdoors and away from the city (rock climbing is mentally and physically engaging and open water swimming is indescribably joyful). but mostly it’s the cognitive behavioural therapy (cbt) and the antidepressants. before i go any further, a word about drugs (“don’t do drugs, kids”): i’m on the lowest available dose of a common antidepressant. this isn’t because it stops me being sad all the time (i’m not) or because it makes all my problems go away (it really doesn’t). it’s because the scientific evidence points to a combination of cbt and antidepressants as being the single most effective treatment for generalised anxiety disorder. the reason for this is simple: cbt isn’t easy, because it asks you to challenge habits and beliefs you’ve held your whole life. in the short term there is going to be more anxiety and some antidepressants are also effective at blunting the effect of this additional anxiety. in short, cbt is what makes you better, and the drugs just make it a little bit more effective. a lot of people have misconceptions about what it means to be ‘in therapy’. i suspect a lot of these are derived from the psychoanalysis we often see portrayed in (primarily us) film and tv. the problem with that type of navel-gazing therapy is that you can spend years doing it, finally reach some sort of breakthrough insight, and still not have no idea what the supposed insight means for your actual life. cbt is different in that rather than addressing feelings directly it focuses on habits in your thoughts (cognitive) and actions (behavioural) with feeling better as an outcome (therapy). cbt and related forms of therapy now have decades of clinical evidence showing that they really work. it uses a wide range of techniques to identify, challenge and reduce various common unhelpful thoughts and behaviours. by choosing and practicing these, you can break bad mental habits that you’ve been carrying around, often for decades. for me this means giving fair weight to my successes as well as my failings, allowing flexibility into the rigid rules that i have always, subconsciously, lived by, and being a bit kinder to myself when i make mistakes. it’s not been easy and i have to remind myself to practice this every day, but it’s really helped. !!! aside “more info” if you live in the uk, you might not be aware that you can get cbt and other psychological therapies on the nhs through a scheme called iapt (improving access to psychological therapies). you can self-refer so you don’t need to see a doctor first, but you might want to anyway if you think medication might help. they also have a progression of treatments, so you might be offered a course of “guided self-help” and then progressed to cbt or another talking therapy if need be. this is what happened to me, and it did help a bit but it was cbt that helped me the most. becoming a librarian what is a librarian? is it someone who has a masters degree in librarianship and information science? is it someone who looks after information for other people? is it simply someone who works in a library? i’ve been grappling with this question a lot lately because i’ve worked in academic libraries for about years now and i never really thought that’s something that might happen. people keep referring to me as “a librarian” but there’s some imposter feelings here because all the librarians around me have much more experience, have skills in areas like cataloguing and collection management and, generally, have a librarian masters degree. so i’ve been thinking about what it actually means to me to be a librarian or not. nb. some of these may be tongue-in-cheek ways in which i am a librarian: i work in a library i help people to access and organise information i have a cat i like gin ways in which i am not a librarian: i don’t have a librarianship qualification i don’t work with books 😉 i don’t knit (though i can probably remember how if pressed) i don’t shush people or wear my hair in a bun (i can confirm that this is also true of every librarian i know) ways in which i am a shambrarian: i like beer i have more it experience and qualification than librarianship at the end of the day, i still don’t know how i feel about this or, for that matter, how important it is. i’m probably going to accept whatever title people around me choose to bestow, though any label will chafe at times! lean libraries: applying agile practices to library services kanban board jeff lasovski (via wikimedia commons) i’ve been working with our it services at work quite closely for the last year as product owner for our new research data portal, orda. that’s been a fascinating process for me as i’ve been able to see first-hand some of the agile techniques that i’ve been reading about from time-to-time on the web over the last few years. they’re in the process of adopting a specific set of practices going under the name “scrum”, which is fun because it uses some novel terminology that sounds pretty weird to non-it folks, like “scrum master”, “sprint” and “product backlog”. on my small project we’ve had great success with the short cycle times and been able to build trust with our stakeholders by showing concrete progress on a regular basis. modern librarianship is increasingly fluid, particularly in research services, and i think that to handle that fluidity it’s absolutely vital that we are able to work in a more agile way. i’m excited about the possibilities of some of these ideas. however, scrum as implemented by our it services doesn’t seem something that transfers directly to the work that we do: it’s too specialised for software development to adapt directly. what i intend to try is to steal some of the individual practices on an experimental basis and simply see what works and what doesn’t. the lean concepts currently popular in it were originally developed in manufacturing: if they can be translated from the production of physical goods to it, i don’t see why we can’t make the ostensibly smaller step of translating them to a different type of knowledge work. i’ve therefore started reading around this subject to try and get as many ideas as possible. i’m generally pretty rubbish at taking notes from books, so i’m going to try and record and reflect on any insights i make on this blog. the framework for trying some of these out is clearly a plan-do-check-act continuous improvement cycle, so i’ll aim to reflect on that process too. i’m sure there will have been people implementing lean in libraries already, so i’m hoping to be able to discover and learn from them instead of starting froms scratch. wish me luck! mozilla global sprint photo by lena bell on unsplash every year, the mozilla foundation runs a two-day global sprint, giving people around the world hours to work on projects supporting and promoting open culture and tech. though much of the work during the sprint is, of course, technical software development work, there are always tasks suited to a wide range of different skill sets and experience levels. the participants include writers, designers, teachers, information professionals and many others. this year, for the first time, the university of sheffield hosted a site, providing a space for local researchers, developers and others to get out of their offices, work on #mozsprint and link up with others around the world. the sheffield site was organised by the research software engineering group in collaboration with the university library. our site was only small compared to others, but we still had people working on several different projects. my reason for taking part in the sprint was to contribute to the international effort on the library carpentry project. a team spread across four continents worked throughout the whole sprint to review and develop our lesson material. as there were no other library carpentry volunteers at the sheffield site, i chose to work on some urgent work around improving the presentation of our workshops and lessons on the web and related workflows. it was a really nice subproject to work on, requiring not only cleaning up and normalising the metadata we hold on workshops and lessons, but also digesting and formalising our current ad hoc process of lesson development. the largest group were solar physicists from the school of maths and statistics, working on the sunpy project, an open source environment for solar data analysis. they pushed loads of bug fixes and documentation improvements, and also mentored a new contributor through their first additions to the project. anna krystalli from research software engineering worked on the echoburst project, which is building a web browser extension to help people break out of their online echo chambers. it does this by using natural language processing techniques to highlight well-written, logically sound articles that disagree with the reader’s stated views on particular topics of interest. anna was part of an effort to begin extending this technology to online videos. we had a couple of individuals simply taking the opportunity to break out of their normal work environments to work or learn, including a couple of members of library staff show up for a couple of hours to learn how to use git on a new project! idcc reflection for most of the last few years i&# ;ve been lucky enough to attend the international digital curation conference (idcc). one of the main audiences attending is people who, like me, work on research data management at universities around the world and it&# ;s begun to feel like a sort of &# ;home&# ; conference to me. this year, idcc was held at the royal college of surgeons in the beautiful city of edinburgh. for the last couple of years, my overall impression has been that, as a community, we&# ;re moving away from the &# ;first-order&# ; problem of trying to convince people (from phd students to senior academics) to take rdm seriously and into a rich set of &# ;second-order&# ; problems around how to do things better and widen support to more people. this year has been no exception. here are a few of my observations and takeaway points. everyone has a repository now only last year, the most common question you&# ;d get asked by strangers in the coffee break would be &# ;do you have a data repository?&# ; now the question is more likely to be &# ;what are you using for your data repository?&# ;, along with more subtle questions about specific components of systems and how they interact. integrating active storage and archival systems now that more institutions have data worth preserving, there is more interest in (and in many cases experience of) setting up more seamless integrations between active and archival storage. there are lessons here we can learn. freezing in amber vs actively maintaining assets there seemed to be an interesting debate going on throughout the conference around the aim of preservation: should we be faithfully preserving the bits and bytes provided without trying to interpret them, or should we take a more active approach by, for example, migrating obsolete formats to newer alternatives. if the former, should we attempt to preserve the software required to access the data as well? if the latter, how much effort do we invest and how do we ensure nothing is lost or altered in the migration? demonstrating data science instead of debating what it is the phrase &# ;data science&# ; was once again one of the most commonly uttered of the conference. however, there is now less abstract discussion about what, exactly, is meant by this &# ;data science&# ; thing; this has been replaced more by concrete demonstrations. this change was exemplified perfectly by the keynote by data scientist alice daish, who spent a riveting minutes or so enthusing about all the cool stuff she does with data at the british museum. recognition of software as an issue even as recently as last year, i&# ;ve struggled to drum up much interest in discussing software sustainability and preservation at events like this; the interest was there, but there were higher priorities. so i was completely taken by surprise when we ended up with + people in the software preservation birds of a feather (bof) session, and when very little input was needed from me as chair to keep a productive discussion going for a full minutes. unashamed promotion of openness as a community we seem to have nearly overthrown our collective embarrassment about the phrase &# ;open data&# ; (although maybe this is just me). we&# ;ve always known it was a good thing, but i know i&# ;ve been a bit of an apologist in the past, feeling that i had to &# ;soften the blow&# ; when asking researchers to be more open. now i feel more confident in leading with the benefits of openness, and it felt like that&# ;s a change reflected in the community more widely. becoming more involved in the conference this year, i took a decision to try and do more to contribute to the conference itself, and i felt like this was pretty successful both in making that contribution and building up my own profile a bit. i presented a paper on one of my current passions, library carpentry; it felt really good to be able to share my enthusiasm. i presented a poster on our work integrating our data repository and digital preservation platform; this gave me more of a structure for networking during breaks, as i was able to stand by the poster and start discussions with anyone who seemed interested. i chaired a parallel session; a first for me, and a different challenge from presenting or simply attending the talks. and finally, i proposed and chaired the software preservation bof session (blog post forthcoming). renewed excitement it&# ;s weird, and possibly all in my imagination, but there seemed to be more energy at this conference than at the previous couple i&# ;ve been to. more people seemed to be excited about the work we&# ;re all doing, recent achievements and the possibilities for the future. introducing pyrefine: openrefine meets python i’m knocking the rust off my programming skills by attempting to write a pure-python interpreter for openrefine “scripts”. openrefine is a great tool for exploring and cleaning datasets prior to analysing them. it also records an undo history of all actions that you can export as a sort of script in json format. one thing that bugs me though is that, having spent some time interactively cleaning up your dataset, you then need to fire up openrefine again and do some interactive mouse-clicky stuff to apply that cleaning routine to another dataset. you can at least re-import the json undo history to make that as quick as possible, but there’s no getting around the fact that there’s no quick way to do it from a cold start. there is a project, batchrefine, that extends the openrefine server to accept batch requests over a http api, but that isn’t useful when you can’t or don’t want to keep a full java stack running in the background the whole time. my concept is this: you use or to explore the data interactively and design a cleaning process, but then export the process to json and integrate it into your analysis in python. that way it can be repeated ad nauseam without having to fire up a full java stack. i’m taking some inspiration from the great talk “so you want to be a wizard?" by julia evans (@b rk), who recommends trying experiments as a way to learn. she gives these rules of programming experiments: “it doesn’t have to be good it doesn’t have to work you have to learn something” in that spirit, my main priorities are: to see if this can be done; to see how far i can get implementing it; and to learn something. if it also turns out to be a useful thing, well, that’s a bonus. some of the interesting possible challenges here: implement all core operations; there are quite a lot of these, some of which will be fun (i.e. non-trivial) to implement implement (a subset of?) grel, the general refine expression language; i guess my undergrad course on implementing parsers and compilers will come in handy after all! generate clean, sane python code from the json rather than merely executing it; more than anything, this would be a nice educational tool for users of openrefine who want to see how to do equivalent things in python selectively optimise key parts of the process; this will involve profiling the code to identify bottlenecks as well as tweaking the actual code to go faster potentially handle contributions to the code from other people; i’d be really happy if this happened but i’m realistic… if you’re interested, the project is called pyrefine and it’s on github. constructive criticism, issues & pull requests all welcome! implementing yesterbox in emacs with mu e i’ve been meaning to give yesterbox a try for a while. the general idea is that each day you only deal with email that arrived yesterday or earlier. this forms your inbox for the day, hence “yesterbox”. once you’ve emptied your yesterbox, or at least got through some minimum number ( is recommended) then you can look at emails from today. even then you only really want to be dealing with things that are absolutely urgent. anything else can wait til tomorrow. the motivation for doing this is to get away from the feeling that we are king canute, trying to hold back the tide. i find that when i’m processing my inbox toward zero there’s always a temptation to keep skipping to the new stuff that’s just come in. hiding away the new email until i’ve dealt with the old is a very interesting idea. i use mu e in emacs for reading my email, and handily the mu search syntax is very flexible so you’d think it would be easy to create a yesterbox filter: maildir:"/inbox" date:.. d unfortunately, d is interpreted as “ hours ago from right now” so this filter misses everything that was sent yesterday but less than hours ago. there was a feature request raised on the mu github repository to implement an additional date filter syntax but it seems to have died a death for now. in the meantime, the answer to this is to remember that my workplace observes fairly standard office hours, so that anything sent more than hours ago is unlikely to have been sent today. the following does the trick: maildir:"/inbox" date:.. h in my mu e bookmarks list, that looks like this: (setq mu e-bookmarks &# ;((&# ;flag:unread and not flag:trashed&# ; &# ;unread messages&# ; ?u) (&# ;flag:flagged maildir:/archive&# ; &# ;starred messages&# ; ?s) (&# ;date:today..now&# ; &# ;today&# ;s messages&# ; ?t) (&# ;date: d..now&# ; &# ;last days&# ; ?w) (&# ;maildir:\&# ;/mailing lists.*\&# ; (flag:unread or flag:flagged)&# ; &# ;unread in mailing lists&# ; ?m) (&# ;maildir:\&# ;/inbox\&# ; date:.. d&# ; &# ;yesterbox&# ; ?y))) ;; <- this is the new one rewarding good practice in research from opensource.com on flickr whenever i’m involved in a discussion about how to encourage researchers to adopt new practices, eventually someone will come out with some variant of the following phrase: “that’s all very well, but researchers will never do xyz until it’s made a criterion in hiring and promotion decisions.” with all the discussion of carrots and sticks i can see where this attitude comes from, and strongly empathise with it, but it raises two main problems: it’s unfair and more than a little insulting to anyone to be lumped into one homogeneous group; and taking all the different possible xyzs into account, that’s an awful lot of hoops to expect anyone to jump through. firstly, “researchers” are as diverse as the rest of us in terms of what gets them out of bed in the morning. some of us want prestige; some want to contribute to a greater good; some want to create new things; some just enjoy the work. one thing i’d argue we all have in common is this: nothing is more offputting than feeling like you’re being strongarmed into something you don’t want to do. if we rely on simplistic metrics, people will focus on those and miss the point. at best people will disengage and at worst they will actively game the system. i’ve got to do these ten things to get my next payrise, and still retain my sanity? ok, what’s the least i can get away with and still tick them off. you see it with students taking poorly-designed assessments and grown-ups are no difference. we do need to wield carrots as well as sticks, but the whole point is that these practices are beneficial in and of themselves. the carrots are already there if we articulate them properly and clear the roadblocks (don’t you enjoy mixed metaphors?). creating artificial benefits will just dilute the value of the real ones. secondly, i’ve heard a similar argument made for all of the following practices and more: research data management open access publishing public engagement new media (e.g. blogging) software management and sharing some researchers devote every waking hour to their work, whether it’s in the lab, writing grant applications, attending conferences, authoring papers, teaching, and so on and so on. it’s hard to see how someone with all this in their schedule can find time to exercise any of these new skills, let alone learn them in the first place. and what about the people who sensibly restrict the hours taken by work to spend more time doing things they enjoy? yes, all of the above practices are valuable, both for the individual and the community, but they’re all new (to most) and hence require more effort up front to learn. we have to accept that it’s inevitably going to take time for all of them to become “business as usual”. i think if the hiring/promotion/tenure process has any role in this, it’s in asking whether the researcher can build a coherent narrative as to why they’ve chosen to focus their efforts in this area or that. you’re not on twitter but your data is being used by research groups across the world? great! you didn’t have time to tidy up your source code for github but your work is directly impacting government policy? brilliant! we still need convince more people to do more of these beneficial things, so how? call me naïve, but maybe we should stick to making rational arguments, calming fears and providing low-risk opportunities to learn new skills. acting (compassionately) like a stuck record can help. and maybe we’ll need to scale back our expectations in other areas (journal impact factors, anyone?) to make space for the new stuff. software carpentry: sc test; does your software do what you meant? “the single most important rule of testing is to do it.” — brian kernighan and rob pike, the practice of programming (quote taken from sc test page one of the trickiest aspects of developing software is making sure that it actually does what it’s supposed to. sometimes failures are obvious: you get completely unreasonable output or even (shock!) a comprehensible error message. but failures are often more subtle. would you notice if your result was out by a few percent, or consistently ignored the first row of your input data? the solution to this is testing: take some simple example input with a known output, run the code and compare the actual output with the expected one. implement a new feature, test and repeat. sounds easy, doesn’t it? but then you implement a new bit of code. you test it and everything seems to work fine, except that your new feature required changes to existing code and those changes broke something else. so in fact you need to test everything, and do it every time you make a change. further than that, you probably want to test that all your separate bits of code work together properly (integration testing) as well as testing the individual bits separately (unit testing). in fact, splitting your tests up like that is a good way of holding on to your sanity. this is actually a lot less scary than it sounds, because there are plenty of tools now to automate that testing: you just type a simple test command and everything is verified. there are even tools that enable you to have tests run automatically when you check the code into version control, and even automatically deploy code that passes the tests, a process known as continuous integration or ci. the big problems with testing are that it’s tedious, your code seems to work without it and no-one tells you off for not doing it. at the time when the software carpentry competition was being run, the idea of testing wasn’t new, but the tools to help were in their infancy. “existing tools are obscure, hard to use, expensive, don’t actually provide much help, or all three.” the sc test category asked entrants “to design a tool, or set of tools, which will help programmers construct and maintain black box and glass box tests of software components at all levels, including functions, modules, and classes, and whole programs.” the sc test category is interesting in that the competition administrators clearly found it difficult to specify what they wanted to see in an entry. in fact, the whole category was reopened with a refined set of rules and expectations. ultimately, it’s difficult to tell whether this category made a significant difference. where the tools to write tests used to be very sparse and difficult to use they are now many and several options exist for most programming languages. with this proliferation, several tried-and-tested methodologies have emerged which are consistent across many different tools, so while things still aren’t perfect they are much better. in recent years there has been a culture shift in the wider software development community towards both testing in general and test-first development, where the tests for a new feature are written first, and then the implementation is coded incrementally until all tests pass. the current challenge is to transfer this culture shift to the academic research community! tools for collaborative markdown editing photo by alan cleaver i really love markdown . i love its simplicity; its readability; its plain-text nature. i love that it can be written and read with nothing more complicated than a text-editor. i love how nicely it plays with version control systems. i love how easy it is to convert to different formats with pandoc and how it’s become effectively the native text format for a wide range of blogging platforms. one frustration i’ve had recently, then, is that it’s surprisingly difficult to collaborate on a markdown document. there are various solutions that almost work but at best feel somehow inelegant, especially when compared with rock solid products like google docs. finally, though, we’re starting to see some real possibilities. here are some of the things i’ve tried, but i’d be keen to hear about other options. . just suck it up to be honest, google docs isn’t that bad. in fact it works really well, and has almost no learning curve for anyone who’s ever used word (i.e. practically anyone who’s used a computer since the s). when i’m working with non-technical colleagues there’s nothing i’d rather use. it still feels a bit uncomfortable though, especially the vendor lock-in. you can export a google doc to word, odt or pdf, but you need to use google docs to do that. plus as soon as i start working in a word processor i get tempted to muck around with formatting. . git(hub) the obvious solution to most techies is to set up a github repo, commit the document and go from there. this works very well for bigger documents written over a longer time, but seems a bit heavyweight for a simple one-page proposal, especially over short timescales. who wants to muck around with pull requests and merging changes for a document that’s going to take days to write tops? this type of project doesn’t need a bug tracker or a wiki or a public homepage anyway. even without github in the equation, using git for such a trivial use case seems clunky. . markdown in etherpad/google docs etherpad is great tool for collaborative editing, but suffers from two key problems: no syntax highlighting or preview for markdown (it’s just treated as simple text); and you need to find a server to host it or do it yourself. however, there’s nothing to stop you editing markdown with it. you can do the same thing in google docs, in fact, and i have. editing a fundamentally plain-text format in a word processor just feels weird though. . overleaf/authorea overleaf and authorea are two products developed to support academic editing. authorea has built-in markdown support but lacks proper simultaneous editing. overleaf has great simultaneous editing but only supports markdown by wrapping a bunch of latex boilerplate around it. both ok but unsatisfactory. . stackedit now we’re starting to get somewhere. stackedit has both markdown syntax highlighting and near-realtime preview, as well as integrating with google drive and dropbox for file synchronisation. . hackmd hackmd is one that i only came across recently, but it looks like it does exactly what i’m after: a simple markdown-aware editor with live preview that also permits simultaneous editing. i’m a little circumspect simply because i know simultaneous editing is difficult to get right, but it certainly shows promise. . classeur i discovered classeur literally today: it’s developed by the same team as stackedit (which is now apparently no longer in development), and is currently in beta, but it looks to offer two killer features: real-time collaboration, including commenting, and pandoc-powered export to loads of different formats. anything else? those are the options i’ve come up with so far, but they can’t be the only ones. is there anything i’ve missed? other plain-text formats are available. i’m also a big fan of org-mode. &#x a ;þ e; software carpentry: sc track; hunt those bugs! this competition will be an opportunity for the next wave of developers to show their skills to the world — and to companies like ours. — dick hardt, activestate (quote taken from sc track page) all code contains bugs, and all projects have features that users would like but which aren’t yet implemented. open source projects tend to get more of these as their user communities grow and start requesting improvements to the product. as your open source project grows, it becomes harder and harder to keep track of and prioritise all of these potential chunks of work. what do you do? the answer, as ever, is to make a to-do list. different projects have used different solutions, including mailing lists, forums and wikis, but fairly quickly a whole separate class of software evolved: the bug tracker, which includes such well-known examples as bugzilla, redmine and the mighty jira. bug trackers are built entirely around such requests for improvement, and typically track them through workflow stages (planning, in progress, fixed, etc.) with scope for the community to discuss and add various bits of metadata. in this way, it becomes easier both to prioritise problems against each other and to use the hive mind to find solutions. unfortunately most bug trackers are big, complicated beasts, more suited to large projects with dozens of developers and hundreds or thousands of users. clearly a project of this size is more difficult to manage and requires a certain feature set, but the result is that the average bug tracker is non-trivial to set up for a small single-developer project. the sc track category asked entrants to propose a better bug tracking system. in particular, the judges were looking for something easy to set up and configure without compromising on functionality. the winning entry was a bug-tracker called roundup, proposed by ka-ping yee. here we have another tool which is still in active use and development today. given that there is now a huge range of options available in this area, including the mighty github, this is no small achievement. these days, of course, github has become something of a de facto standard for open source project management. although ostensibly a version control hosting platform, each github repository also comes with a built-in issue tracker, which is also well-integrated with the “pull request” workflow system that allows contributors to submit bug fixes and features themselves. github’s competitors, such as gitlab and bitbucket, also include similar features. not everyone wants to work in this way though, so it’s good to see that there is still a healthy ecosystem of open source bug trackers, and that software carpentry is still having an impact. software carpentry: sc config; write once, compile anywhere nine years ago, when i first release python to the world, i distributed it with a makefile for bsd unix. the most frequent questions and suggestions i received in response to these early distributions were about building it on different unix platforms. someone pointed me to autoconf, which allowed me to create a configure script that figured out platform idiosyncracies unfortunately, autoconf is painful to use – its grouping, quoting and commenting conventions don’t match those of the target language, which makes scripts hard to write and even harder to debug. i hope that this competition comes up with a better solution — it would make porting python to new platforms a lot easier! — guido van rossum, technical director, python consortium (quote taken from sc config page) on to the next software carpentry competition category, then. one of the challenges of writing open source software is that you have to make it run on a wide range of systems over which you have no control. you don’t know what operating system any given user might be using or what libraries they have installed, or even what versions of those libraries. this means that whatever build system you use, you can’t just send the makefile (or whatever) to someone else and expect everything to go off without a hitch. for a very long time, it’s been common practice for source packages to include a configure script that, when executed, runs a bunch of tests to see what it has to work with and sets up the makefile accordingly. writing these scripts by hand is a nightmare, so tools like autoconf and automake evolved to make things a little easier. they did, and if the tests you want to use are already implemented they work very well indeed. unfortunately they’re built on an unholy combination of shell scripting and the archaic gnu m macro language. that means if you want to write new tests you need to understand both of these as well as the architecture of the tools themselves — not an easy task for the average self-taught research programmer. sc conf, then, called for a re-engineering of the autoconf concept, to make it easier for researchers to make their code available in a portable, platform-independent format. the second round configuration tool winner was sapcat, “a tool to help make software portable”. unfortunately, this one seems not to have gone anywhere, and i could only find the original proposal on the internet archive. there were a lot of good ideas in this category about making catalogues and databases of system quirks to avoid having to rerun the same expensive tests again the way a standard ./configure script does. i think one reason none of these ideas survived is that they were overly ambitions, imagining a grand architecture where their tool provide some overarching source of truth. this is in stark contrast to the way most unix-like systems work, where each tool does one very specific job well and tools are easy to combine in various ways. in the end though, i think moore’s law won out here, making it easier to do the brute-force checks each time than to try anything clever to save time — a good example of avoiding unnecessary optimisation. add to that the evolution of the generic pkg-config tool from earlier package-specific tools like gtk-config, and it’s now much easier to check for particular versions and features of common packages. on top of that, much of the day-to-day coding of a modern researcher happens in interpreted languages like python and r, which give you a fully-functioning pre-configured environment with a lot less compiling to do. as a side note, tom tromey, another of the shortlisted entrants in this category, is still a major contributor to the open source world. he still seems to be involved in the automake project, contributes a lot of code to the emacs community too and blogs sporadically at the cliffs of inanity. semantic linefeeds: one clause per line i’ve started using “semantic linefeeds”, a concept i discovered on brandon rhodes' blog, when writing content, an idea described in that article far better than i could. i turns out this is a very old idea, promoted way back in the day by brian w kernighan, contributor to the original unix system, co-creator of the awk and ampl programming languages and co-author of a lot of seminal programming textbooks including “the c programming language”. the basic idea is that you break lines at natural gaps between clauses and phrases, rather than simply after the last word before you hit characters. keeping line lengths strictly to characters isn’t really necessary in these days of wide aspect ratios for screens. breaking lines at points that make semantic sense in the sentence is really helpful for editing, especially in the context of version control, because it isolates changes to the clause in which they occur rather than just the nearest -character block. i also like it because it makes my crappy prose feel just a little bit more like poetry. ☺ software carpentry: sc build; or making a better make software tools often grow incrementally from small beginnings into elaborate artefacts. each increment makes sense, but the final edifice is a mess. make is an excellent example: a simple tool that has grown into a complex domain-specific programming language. i look forward to seeing the improvements we will get from designing the tool afresh, as a whole… — simon peyton-jones, microsoft research (quote taken from sc build page) most people who have had to compile an existing software tool will have come across the venerable make tool (which usually these days means gnu make). it allows the developer to write a declarative set of rules specifying how the final software should be built from its component parts, mostly source code, allowing the build itself to be carried out by simply typing make at the command line and hitting enter. given a set of rules, make will work out all the dependencies between components and ensure everything is built in the right order and nothing that is up-to-date is rebuilt. great in principle but make is notoriously difficult for beginners to learn, as much of the logic for how builds are actually carried out is hidden beneath the surface. this also makes it difficult to debug problems when building large projects. for these reasons, the sc build category called for a replacement build tool engineered from the ground up to solve these problems. the second round winner, sccons, is a python-based make-like build tool written by steven knight. while i could find no evidence of any of the other shortlisted entries, this project (now renamed scons) continues in active use and development to this day. i actually use this one myself from time to time and to be honest i prefer it in many cases to trendy new tools like rake or grunt and the behemoth that is apache ant. its python-based sconstruct file syntax is remarkably intuitive and scales nicely from very simple builds up to big and complicated project, with good dependency tracking to avoid unnecessary recompiling. it has a lot of built-in rules for performing common build & compile tasks, but it’s trivial to add your own, either by combining existing building blocks or by writing a new builder with the full power of python. a minimal sconstruct file looks like this: program(&# ;hello.c&# ;) couldn’t be simpler! and you have the full power of python syntax to keep your build file simple and readable. it’s interesting that all the entries in this category apart from one chose to use a python-derived syntax for describing build steps. python was clearly already a language of choice for flexible multi-purpose computing. the exception is the entry that chose to use xml instead, which i think is a horrible idea (oh how i used to love xml!) but has been used to great effect in the java world by tools like ant and maven. what happened to the original software carpentry? “software carpentry was originally a competition to design new software tools, not a training course. the fact that you didn’t know that tells you how well it worked.” when i read this in a recent post on greg wilson’s blog, i took it as a challenge. i actually do remember the competition, although looking at the dates it was long over by the time i found it. i believe it did have impact; in fact, i still occasionally use one of the tools it produced, so greg’s comment got me thinking: what happened to the other competition entries? working out what happened will need a bit of digging, as most of the relevant information is now only available on the internet archive. it certainly seems that by november the domain name had been allowed to lapse and had been replaced with a holding page by the registrar. there were four categories in the competition, each representing a category of tool that the organisers thought could be improved: sc build: a build tool to replace make sc conf: a configuration management tool to replace autoconf and automake sc track: a bug tracking tool sc test: an easy to use testing framework i’m hoping to be able to show that this work had a lot more impact than greg is admitting here. i’ll keep you posted on what i find! changing static site generators: nanoc → hugo i’ve decided to move the site over to a different static site generator, hugo. i’ve been using nanoc for a long time and it’s worked very well, but lately it’s been taking longer and longer to compile the site and throwing weird errors that i can’t get to the bottom of. at the time i started using nanoc, static site generators were in their infancy. there weren’t the huge number of feature-loaded options that there are now, so i chose one and i built a whole load of blogging-related functionality myself. i did it in ways that made sense at the time but no longer work well with nanoc’s latest versions. so it’s time to move to something that has blogging baked-in from the beginning and i’m taking the opportunity to overhaul the look and feel too. again, when i started there weren’t many pre-existing themes so i built the whole thing myself and though i’m happy with the work i did on it it never quite felt polished enough. now i’ve got the opportunity to adapt one of the many well-designed themes already out there, so i’ve taken one from the hugo themes gallery and tweaked the colours to my satisfaction. hugo also has various features that i’ve wanted to implement in nanoc but never quite got round to it. the nicest one is proper handling of draft posts and future dates, but i keep finding others. there’s a lot of old content that isn’t quite compatible with the way hugo does things so i’ve taken the old nanoc-compiled content and frozen it to make sure that old links should still work. i could probably fiddle with it for years without doing much so it’s probably time to go ahead and publish it. i’m still not completely happy with my choice of theme but one of the joys of hugo is that i can change that whenever i want. let me know what you think! license except where otherwise stated, all content on erambler by jez cope is licensed under a creative commons attribution-sharealike . international license. rdm resources i occasionally get asked for resources to help someone learn more about research data management (rdm) as a discipline (i.e. for those providing rdm support rather than simply wanting to manage their own data). i’ve therefore collected a few resources together on this page. if you’re lucky i might even update it from time to time! first, a caveat: this is very focussed on uk higher education, though much of it will still be relevant for people outside that narrow demographic. my general recommendation would be to start with the digital curation centre (dcc) website and follow links out from there. i also have a slowly growing list of rdm links on diigo, and there’s an rdm section in my list of blogs and feeds too. mailing lists jiscmail is a popular list server run for the benefit of further and higher education in the uk; the following lists are particularly relevant: research-dataman data-publication digital-preservation lis-researchsupport the research data alliance have a number of interest groups and working groups that discuss issues by email events international digital curation conference — major annual conference research data management forum — roughly every six months, places are limited! rda plenary — also every months, but only about in every in europe books in no particular order: martin, victoria. demystifying eresearch: a primer for librarians. libraries unlimited, . borgman, christine l. big data, little data, no data: scholarship in the networked world. cambridge, massachusetts: the mit press, . corti, louise, veerle van den eynden, and libby bishop. managing and sharing research data. thousand oaks, ca: sage publications ltd, . pryor, graham, ed. managing research data. facet publishing, . pryor, graham, sarah jones, and angus whyte, eds. delivering research data management services: fundamentals of good practice. facet publishing, . ray, joyce m., ed. research data management: practical strategies for information professionals. west lafayette, indiana: purdue university press, . reports ‘ten recommendations for libraries to get started with research data management’. liber, august . http://libereurope.eu/news/ten-recommendations-for-libraries-to-get-started-with-research-data-management/. ‘science as an open enterprise’. royal society, june . https://royalsociety.org/policy/projects/science-public-enterprise/report/. mary auckland. ‘re-skilling for research’. rluk, january . http://www.rluk.ac.uk/wp-content/uploads/ / /rluk-re-skilling.pdf. journals international journal of digital curation (ijdc) journal of escience librarianship (jeslib) fairphone : initial thoughts on the original ethical smartphone i’ve had my eye on the fairphone for a while now, and when my current phone, an aging samsung galaxy s , started playing up i decided it was time to take the plunge. a few people have asked for my thoughts on the fairphone so here are a few notes. why i bought it the thing that sparked my interest, and the main reason for buying the phone really, was the ethical stance of the manufacturer. the small swedish company have gone to great lengths to ensure that both labour and materials are sourced as responsibly as possible. they regularly inspect the factories where the parts are made and assembled to ensure fair treatment of the workers and they source all the raw materials carefully to minimise the environmental impact and the use of conflict minerals. another side to this ethical stance is a focus on longevity of the phone itself. this is not a product with an intentionally limited lifespan. instead, it’s designed to be modular and as repairable as possible, by the owner themselves. spares are available for all of the parts that commonly fail in phones (including screen and camera), and at the time of writing the fairphone is the only phone to receive / for reparability from ifixit. there are plans to allow hardware upgrades, including an expansion port on the back so that nfc or wireless charging could be added with a new case, for example. what i like so far, the killer feature for me is the dual sim card slots. i have both a personal and a work phone, and the latter was always getting left at home or in the office or running out of charge. now i have both sims in the one phone: i can recieve calls on either number, turn them on and off independently and choose which account to use when sending a text or making a call. the os is very close to “standard” android, which is nice, and i really don’t miss all the extra bloatware that came with the galaxy s . it also has twice the storage of that phone, which is hardly unique but is still nice to have. overall, it seems like a solid, reliable phone, though it’s not going to outperform anything else at the same price point. it certainly feels nice and snappy for everything i want to use it for. i’m no mobile gamer, but there is that distant promise of upgradability on the horizon if you are. what i don’t like i only have two bugbears so far. once or twice it’s locked up and become unresponsive, requiring a “manual reset” (removing and replacing the battery) to get going again. it also lacks nfc, which isn’t really a deal breaker, but i was just starting to make occasional use of it on the s (mostly experimenting with my yubikey neo) and it would have been nice to try out android pay when it finally arrives in the uk. overall it’s definitely a serious contender if you’re looking for a new smartphone and aren’t bothered about serious mobile gaming. you do pay a premium for the ethical sourcing and modularity, but i feel that’s worth it for me. i’m looking forward to seeing how it works out as a phone. wiring my web i’m a nut for automating repetitive tasks, so i was dead pleased a few years ago when i discovered that ifttt let me plug different bits of the web together. i now use it for tasks such as: syndicating blog posts to social media creating scheduled/repeating todo items from a google calendar making a note to revisit an article i’ve starred in feedly i’d probably only be half-joking if i said that i spend more time automating things than i save not having to do said things manually. thankfully it’s also a great opportunity to learn, and recently i’ve been thinking about reimplementing some of my ifttt workflows myself to get to grips with how it all works. there are some interesting open source projects designed to offer a lot of this functionality, such as huginn, but i decided to go for a simpler option for two reasons: i want to spend my time learning about the apis of the services i use and how to wire them together, rather than learning how to use another big framework; and i only have a small amazon ec server to pay with and a heavy ruby on rails app like huginn (plus web server) needs more memory than i have. instead i’ve gone old-school with a little collection of individual scripts to do particular jobs. i’m using the built-in scheduling functionality of systemd, which is already part of a modern linux operating system, to get them to run periodically. it also means i can vary the language i use to write each one depending on the needs of the job at hand and what i want to learn/feel like at the time. currently it’s all done in python, but i want to have a go at lisp sometime, and there are some interesting new languages like go and julia that i’d like to get my teeth into as well. you can see my code on github as it develops: https://github.com/jezcope/web-plumbing. comments and contributions are welcome (if not expected) and let me know if you find any of the code useful. image credit: xkcd # , automation data is like water, and language is like clothing i admit it: i’m a grammar nerd. i know the difference between ‘who’ and ‘whom’, and i’m proud. i used to be pretty militant, but these days i’m more relaxed. i still take joy in the mechanics of the language, but i also believe that english is defined by its usage, not by a set of arbitrary rules. i’m just as happy to abuse it as to use it, although i still think it’s important to know what rules you’re breaking and why. my approach now boils down to this: language is like clothing. you (probably) wouldn’t show up to a job interview in your pyjamas , but neither are you going to wear a tuxedo or ballgown to the pub. getting commas and semicolons in the right place is like getting your shirt buttons done up right. getting it wrong doesn’t mean you’re an idiot. everyone will know what you meant. it will affect how you’re perceived, though, and that will affect how your message is perceived. and there are former rules that some still enforce that are nonetheless dropping out of regular usage. there was a time when everyone in an office job wore formal clothing. then it became acceptable just to have a blouse, or a shirt and tie. then the tie became optional and now there are many professions where perfectly well-respected and competent people are expected to show up wearing nothing smarter than jeans and a t-shirt. one such rule imho is that ‘data’ is a plural and should take pronouns like ‘they’ and ‘these’. the origin of the word ‘data’ is in the latin plural of ‘datum’, and that idea has clung on for a considerable period. but we don’t speak latin and the english language continues to evolve: ‘agenda’ also began life as a latin plural, but we don’t use the word ‘agendum’ any more. it’s common everyday usage to refer to data with singular pronouns like ‘it’ and ‘this’, and it’s very rare to see someone referring to a single datum (as opposed to ‘data point’ or something). if you want to get technical, i tend to think of data as a mass noun, like ‘water’ or ‘information’. it’s uncountable: talking about ‘a water’ or ‘an information’ doesn’t make much sense, but it uses singular pronouns, as in ‘this information’. if you’re interested, the oxford english dictionary also takes this position, while chambers leaves the choice of singular or plural noun up to you. there is absolutely nothing wrong, in my book, with referring to data in the plural as many people still do. but it’s no longer a rule and for me it’s weakened further from guideline to preference. it’s like wearing a bow-tie to work. there’s nothing wrong with it and some people really make it work, but it’s increasingly outdated and even a little eccentric. or maybe you’d totally rock it. &#x a ;þ e; like not starting a sentence with a conjunction… &#x a ;þ e; #idcc day : new ideas well, i did a great job of blogging the conference for a couple of days, but then i was hit by the bug that’s been going round and didn’t have a lot of energy for anything other than paying attention and making notes during the day! i’ve now got round to reviewing my notes so here are a few reflections on day . day was the day of many parallel talks! so many great and inspiring ideas to take in! here are a few of my take-home points. big science and the long tail the first parallel session had examples of practical data management in the real world. jian qin & brian dobreski (school of information studies, syracuse university) worked on reproducibility with one of the research groups involved with the recent gravitational wave discovery. “reproducibility” for this work (as with much of physics) mostly equates to computational reproducibility: tracking the provenance of the code and its input and output is key. they also found that in practice the scientists' focus was on making the big discovery, and ensuring reproducibility was seen as secondary. this goes some way to explaining why current workflows and tools don’t really capture enough metadata. milena golshan & ashley sands (center for knowledge infrastructures, ucla) investigated the use of software-as-a-service (saas, such as google drive, dropbox or more specialised tools) as a way of meeting the needs of long-tail science research such as ocean science. this research is characterised by small teams, diverse data, dynamic local development of tools, local practices and difficulty disseminating data. this results in a need for researchers to be generalists, as opposed to “big science” research areas, where they can afford to specialise much more deeply. such generalists tend to develop their own isolated workflows, which can differ greatly even within a single lab. long-tail research also often struggles from a lack of dedicated it support. they found that use of saas could help to meet these challenges, but with a high cost required to cover the needed guarantees of security and stability. education & training this session focussed on the professional development of library staff. eleanor mattern (university of pittsburgh) described the immersive training introduced to improve librarians' understanding of the data needs of their subject areas in delivering their rdm service delivery model. the participants each conducted a “disciplinary deep dive”, shadowing researchers and then reporting back to the group on their discoveries with a presentation and discussion. liz lyon (also university of pittsburgh, formerly ukoln/dcc) gave a systematic breakdown of the skills, knowledge and experience required in different data-related roles, obtained from an analysis of job adverts. she identified distinct roles of data analyst, data engineer and data journalist, and as well as each role’s distinctive skills, pinpointed common requirements of all three: python, r, sql and excel. this work follows on from an earlier phase which identified an allied set of roles: data archivist, data librarian and data steward. data sharing and reuse this session gave an overview of several specific workflow tools designed for researchers. marisa strong (university of california curation centre/california digital libraries) presented dash, a highly modular tool for manual data curation and deposit by researchers. it’s built on their flexible backend, stash, and though it’s currently optimised to deposit in their merritt data repository it could easily be hooked up to other repositories. it captures datacite metadata and a few other fields, and is integrated with orcid to uniquely identify people. in a different vein, eleni castro (institute for quantitative social science, harvard university) discussed some of the ways that harvard’s dataverse repository is streamlining deposit by enabling automation. it provides a number of standardised endpoints such as oai-pmh for metadata harvest and sword for deposit, as well as custom apis for discovery and deposit. interesting use cases include: an addon for the open science framework to deposit in dataverse via sword an r package to enable automatic deposit of simulation and analysis results integration with publisher workflows open journal systems a growing set of visualisations for deposited data in the future they’re also looking to integrate with dmptool to capture data management plans and with archivematica for digital preservation. andrew treloar (australian national data service) gave us some reflections on the ands “applications programme”, a series of small funded projects intended to address the fourth of their strategic transformations, single use → reusable. he observed that essentially these projects worked because they were able to throw money at a problem until they found a solution: not very sustainable. some of them stuck to a traditional “waterfall” approach to project management, resulting in “the right solution years late”. every researcher’s needs are “special” and communities are still constrained by old ways of working. the conclusions from this programme were that: “good enough” is fine most of the time adopt/adapt/augment is better than build existing toolkits let you focus on the % functionality that’s missing succussful projects involved research champions who can: ) articulate their community’s requirements; and ) promote project outcomes summary all in all, it was a really exciting conference, and i’ve come home with loads of new ideas and plans to develop our services at sheffield. i noticed a continuation of some of the trends i spotted at last year’s idcc, especially an increasing focus on “second-order” problems: we’re no longer spending most of our energy just convincing researchers to take data management seriously and are able to spend more time helping them to do it better and get value out of it. there’s also a shift in emphasis (identified by closing speaker cliff lynch) from sharing to reuse, and making sure that data is not just available but valuable. #idcc day : open data the main conference opened today with an inspiring keynote by barend mons, professor in biosemantics, leiden university medical center. the talk had plenty of great stuff, but two points stood out for me. first, prof mons described a newly discovered link between huntingdon’s disease and a previously unconsidered gene. no-one had previously recognised this link, but on mining the literature, an indirect link was identified in more than % of the roughly million scientific claims analysed. this is knowledge for which we already had more than enough evidence, but which could never have been discovered without such a wide-ranging computational study. second, he described a number of behaviours which should be considered “malpractice” in science: relying on supplementary data in articles for data sharing: the majority of this is trash (paywalled, embedded in bitmap images, missing) using the journal impact factor to evaluate science and ignoring altmetrics not writing data stewardship plans for projects (he prefers this term to “data management plan”) obstructing tenure for data experts by assuming that all highly-skilled scientists must have a long publication record a second plenary talk from andrew sallons of the centre for open science introduced a number of interesting-looking bits and bobs, including the transparency & openness promotion (top) guidelines which set out a pathway to help funders, publishers and institutions move towards more open science. the rest of the day was taken up with a panel on open data, a poster session, some demos and a birds-of-a-feather session on sharing sensitive/confidential data. there was a great range of posters, but a few that stood out to me were: lessons learned about iso (“audit and certification of trustworthy digital repositories”) certification from the british library two separate posters (from the universities of toronto and colorado) about disciplinary rdm information & training for liaison librarians a template for sharing psychology data developed by a psychologist-turned-information researcher from carnegie mellon university more to follow, but for now it’s time for the conference dinner! #idcc day : business models for research data management i’m at the international digital curation conference (#idcc ) in amsterdam this week. it’s always a good opportunity to pick up some new ideas and catch up with colleagues from around the world, and i always come back full of new possibilities. i’ll try and do some more reflective posts after the conference but i thought i’d do some quick reactions while everything is still fresh. monday and thursday are pre- and post-conference workshop days, and today i attended developing research data management services. joy davidson and jonathan rans from the digital curation centre (dcc) introduced us to the business model canvas, a template for designing a business model on a single sheet of paper. the model prompts you to think about all of the key facets of a sustainable, profitable business, and can easily be adapted to the task of building a service model within a larger institution. the dcc used it as part of the collaboration to clarify curation costs ( c) project, whose output the curation costs exchange is also worth a look. it was a really useful exercise to be able to work through the whole process for an aspect of research data management (my table focused on training & guidance provision), both because of the ideas that came up and also the experience of putting the framework into practice. it seems like a really valuable tool and i look forward to seeing how it might help us with our rdm service development. tomorrow the conference proper begins, with a range of keynotes, panel sessions and birds-of-a-feather meetings so hopefully more then! about me i help people in higher education communicate and collaborate more effectively using technology. i currently work at the university of sheffield focusing on research data management policy, practice, training and advocacy. in my free time, i like to: run; play the accordion; morris dance; climb; cook; read (fiction and non-fiction); write. better science through better data #scidata better science through better doughnutsjez cope update: fixed the link to the slides so it works now! last week i had the honour of giving my first ever keynote talk, at an event entitled better science through better data hosted jointly by springer nature and the wellcome trust. it was nerve-wracking but exciting and seemed to go down fairly well. i even got accidentally awarded a phd in the programme — if only it was that easy! the slides for the talk, “supporting open research: the role of an academic library”, are available online (doi: . /shef.data. ), and the whole event was video’d for posterity and viewable online. i got some good questions too, mainly from the clever online question system. i didn’t get to answer all of them, so i’m thinking of doing a blog post or two to address a few more. there were loads of other great presentations as well, both keynotes and -minute lightning talks, so i’d encourage you to take a look at at least some of it. i’ll pick out a few of my highlights. dr aled edwards (university of toronto) there’s a major problem with science funding that i hadn’t really thought about before. the available funding pool for research is divided up into pots by country, and often by funding body within a country. each of these pots have robust processes to award funding to the most important problems and most capable researchers. the problem comes because there is no coordination between these pots, so researchers all over the world end up getting funded to research the most popular problems leading to a lot of duplication of effort. industry funding suffers from a similar problem, particularly the pharmaceutical industry. because there is no sharing of data or negative results, multiple companies spend billions researching the same dead ends chasing after the same drugs. this is where the astronomical costs of drug development come from. dr edwards presented one alternative, modelled by a company called m k pharma. the idea is to use existing ip laws to try and give academic researchers a reasonable, morally-justifiable and sustainable profit on drugs they develop, in contrast to the current model where basic research is funded by governments while large corporations hoover up as much profit as they possibly can. this new model would develop drugs all the way to human trial within academia, then license the resulting drugs to companies to manufacture with a price cap to keep the medicines affordable to all who need them. core to this effort is openness with data, materials and methodology, and dr edwards presented several examples of how this approach benefited academic researchers, industry and patients compared with a closed, competitive focus. dr kirstie whitaker (alan turing institute) this was a brilliant presentation, presenting a practical how-to guide to doing reproducible research, from one researcher to another. i suggest you take a look at her slides yourself: showing your working: a how-to guide to reproducible research. dr whitaker briefly addressed a number of common barriers to reproducible research: is not considered for promotion: so it should be! held to higher standards than others: reviewers should be discouraged from nitpicking just because the data/code/whatever is available (true unbiased peer review of these would be great though) publication bias towards novel findings: it is morally wrong to not publish reproductions, replications etc. so we need to address the common taboo on doing so plead the th: if you share, people may find flaws, but if you don’t they can’t — if you’re worried about this you should ask yourself why! support additional users: some (much?) of the burden should reasonably on the reuser, not the sharer takes time: this is only true if you hack it together after the fact; if you do it from the start, the whole process will be quicker! requires additional skills: important to provide training, but also to judge phd students on their ability to do this, not just on their thesis & papers the rest of the presentation, the “how-to” guide of the title' was a well-chosen and passionately delivered set of recommendations, but the thing that really stuck out for me is how good dr whitaker is at making the point that you only have to do one of these things to improve the quality of your research. it’s easy to get the impression at the moment that you have to be fully, perfectly open or not at all, but it’s actually ok to get there one step at a time, or even not to go all the way at all! anyway, i think this is a slide deck that speaks for itself, so i won’t say any more! lightning talk highlights there was plenty of good stuff in the lightning talks, which were constrained to minutes each, but a few of the things that stood out for me were, in no particular order: code ocean — share and run code in the cloud dat project — peer to peer data syncronisation tool can automate metadata creation, data syncing, versioning set up a secure data sharing network that keeps the data in sync but off the cloud berlin institute of health — open science course for students pre-print paper course materials intermine — taking the pain out of data cleaning & analysis nix/nixos as a component of a reproducible paper bonej (imagej plugin for bone analysis) — developed by a scientist, used a lot, now has a wellcome-funded rse to develop next version esasky — amazing live, online archive of masses of astronomical data coda i really enjoyed the event (and the food was excellent too). my thanks go out to: the programme committee for asking me to come and give my take — i hope i did it justice! the organising team who did a brilliant job of keeping everything running smoothly before and during the event the university of sheffield for letting me get away with doing things like this! blog platform switch i’ve just switched my blog over to the nikola static site generator. hopefully you won’t notice a thing, but there might be a few weird spectres around til i get all the kinks ironed out. i’ve made the switch for a couple of main reasons: nikola supports jupyter notebooks as a source format for blog posts, which will be useful to include code snippets it’s written in python, a language which i actually know, so i’m more likely to be able to fix things that break, customise it and potentially contribute to the open source project (by contrast, hugo is written in go, which i’m not really familiar with) chat rooms vs twitter: how i communicate now cc , pixabay this time last year, brad colbow published a comic in his “the brads” series entitled “the long slow death of twitter”. it really encapsulates the way i’ve been feeling about twitter for a while now. go ahead and take a look. i’ll still be here when you come back. according to my twitter profile, i joined in february as user # , , . it was nearing its rd birthday and, though there were clearly a lot of people already signed up at that point, it was still relatively quiet, especially in the uk. i was a lonely phd student just starting to get interested in educational technology, and one thing that twitter had in great supply was (and still is) people pushing back the boundaries of what tech can do in different contexts. somewhere along the way twitter got really noisy, partly because more people (especially commercial companies) are using it more to talk about stuff that doesn’t interest me, and partly because i now follow , + people and find i get several tweets a second at peak times, which no-one could be expected to handle. more recently i’ve found my attention drawn to more focussed communities instead of that big old shouting match. i find i’m much more comfortable discussing things and asking questions in small focussed communities because i know who might be interested in what. if i come across an article about a cool new python library, i’ll geek out about it with my research software engineer friends; if i want advice on an aspect of my emacs setup, i’ll ask a bunch of emacs users. i feel like i’m talking to people who want to hear what i’m saying. next to that experience, twitter just feels like standing on a street corner shouting. irc channels (mostly on freenode), and similar things like slack and gitter form the bulk of this for me, along with a growing number of whatsapp group chats. although online chat is theoretically a synchronous medium, i find that i can treat it more as “semi-synchronous”: i can have real-time conversations as they arise, but i can also close them and tune back in later to catch up if i want. now i come to think about it, this is how i used to treat twitter before the , follows happened. i also find i visit a handful of forums regularly, mostly of the reddit link-sharing or stackexchange q&a type. /r/buildapc was invaluable when i was building my latest box, /r/earthporn (very much not nsfw) is just beautiful. i suppose the risk of all this is that i end up reinforcing my own echo chamber. i’m not sure how to deal with that, but i certainly can’t deal with it while also suffering from information overload. not just certifiable… a couple of months ago, i went to oxford for an intensive, -day course run by software carpentry and data carpentry for prospective new instructors. i’ve now had confirmation that i’ve completed the checkout procedure so it’s official: i’m now a certified data carpentry instructor! as far as i’m aware, the certification process is now combined, so i’m also approved to teach software carpentry material too. and of course there’s library carpentry too… ssi fellowship i’m honoured and excited to be named one of this year’s software sustainability institute fellows. there’s not much to write about yet because it’s only just started, but i’m looking forward to sharing more with you. in the meantime, you can take a look at the fellowship announcement and get an idea of my plans from my application video: talks here is a selection of talks that i’ve given. {{% template %}} <%! import arrow %> date title location % for talk in post.data("talks"): % if 'date' in talk: ${date.format('ddd d mmm yyyy')} % endif % if 'url' in talk: % endif ${talk['title']} % if 'url' in talk: % endif ${talk.get('location', '')} % endfor {{% /template %}} erambler erambler recent content on erambler intro to the fediverse wow, it turns out to be years since i wrote this beginners guide to twitter. things have moved on a loooooong way since then. far from being the interesting, disruptive technology it was back then, twitter has become part of the mainstream, the establishment. almost everyone and everything is on twitter now, which has both pros and cons. so what’s the problem? it’s now possible to follow all sorts of useful information feeds, from live updates on transport delays to your favourite sports team’s play-by-play performance to an almost infinite number of cat pictures. in my professional life it’s almost guaranteed that anyone i meet will be on twitter, meaning that i can contact them to follow up at a later date without having to exchange contact details (and they have options to block me if they don’t like that). on the other hand, a medium where everyone’s opinion is equally valid regardless of knowledge or life experience has turned some parts of the internet into a toxic swamp of hatred and vitriol. it’s easier than ever to forget that we have more common ground with any random stranger than we have similarities, and that’s led to some truly awful acts and a poisonous political arena. part of the problem here is that each of the social media platforms is controlled by a single entity with almost no accountability to anyone other than shareholders. technological change has been so rapid that the regulatory regime has no idea how to handle them, leaving them largely free to operate how they want. this has led to a whole heap of nasty consequences that many other people have done a much better job of documenting than i could (shoshana zuboff’s book the age of surveillance capitalism is a good example). what i’m going to focus on instead are some possible alternatives. if you accept the above argument, one obvious solution is to break up the effective monopoly enjoyed by facebook, twitter et al. we need to be able to retain the wonderful affordances of social media but democratise control of it, so that it can never be dominated by a small number of overly powerful players. what’s the solution? there’s actually a thing that already exists, that almost everyone is familiar with and that already works like this. it’s email. there are a hundred thousand email servers, but my email can always find your inbox if i know your address because that address identifies both you and the email service you use, and they communicate using the same protocol, simple mail transfer protocol (smtp) . i can’t send a message to your twitter from my facebook though, because they’re completely incompatible, like oil and water. facebook has no idea how to talk to twitter and vice versa (and the companies that control them have zero interest in such interoperability anyway). just like email, a federated social media service like mastodon allows you to use any compatible server, or even run your own, and follow accounts on your home server or anywhere else, even servers running different software as long as they use the same activitypub protocol. there’s no lock-in because you can move to another server any time you like, and interact with all the same people from your new home, just like changing your email address. smaller servers mean that no one server ends up with enough power to take over and control everything, as the social media giants do with their own platforms. but at the same time, a small server with a small moderator team can enforce local policy much more easily and block accounts or whole servers that host trolls, nazis or other poisonous people. how do i try it? i have no problem with anyone for choosing to continue to use what we’re already calling “traditional” social media; frankly, facebook and twitter are still useful for me to keep in touch with a lot of my friends. however, i do think it’s useful to know some of the alternatives if only to make a more informed decision to stick with your current choices. most of these services only ask for an email address when you sign up and use of your real name vs a pseudonym is entirely optional so there’s not really any risk in signing up and giving one a try. that said, make sure you take sensible precautions like not reusing a password from another account. instead of… try… twitter, facebook mastodon, pleroma, misskey slack, discord, irc matrix whatsapp, fb messenger, telegram also matrix instagram, flickr pixelfed youtube peertube the web interplanetary file system (ipfs) which, if you can believe it, was formalised nearly years ago in and has only had fairly minor changes since then! &#x a ;þ e; collaborations workshop : collaborative ideas & hackday my last post covered the more “traditional” lectures-and-panel-sessions approach of the first half of the ssi collaborations workshop. the rest of the workshop was much more interactive, consisting of a discussion session, a collaborative ideas session, and a whole-day hackathon! the discussion session on day one had us choose a topic (from a list of topics proposed leading up to the workshop) and join a breakout room for that topic with the aim of producing a “speed blog” by then end of minutes. those speed blogs will be published on the ssi blog over the coming weeks, so i won’t go into that in more detail. the collaborative ideas session is a way of generating hackday ideas, by putting people together at random into small groups to each raise a topic of interest to them before discussing and coming up with a combined idea for a hackday project. because of the serendipitous nature of the groupings, it’s a really good way of generating new ideas from unexpected combinations of individual interests. after that, all the ideas from the session, along with a few others proposed by various participants, were pitched as ideas for the hackday and people started to form teams. not every idea pitched gets worked on during the hackday, but in the end teams of roughly equal size formed to spend the third day working together. my team’s project: “aha! an arts & humanities adventure” there’s a lot of fomo around choosing which team to join for an event like this: there were so many good ideas and i wanted to work on several of them! in the end i settled on a team developing an escape room concept to help arts & humanities scholars understand the benefits of working with research software engineers for their research. five of us rapidly mapped out an example storyline for an escape room, got a website set up with github and populated it with the first few stages of the game. we decided to focus on a story that would help the reader get to grips with what an api is and i’m amazed how much we managed to get done in less than a day’s work! you can try playing through the escape room (so far) yourself on the web, or take a look at the github repository, which contains the source of the website along with a list of outstanding tasks to work on if you’re interested in contributing. i’m not sure yet whether this project has enough momentum to keep going, but it was a really valuable way both of getting to know and building trust with some new people and demonstrating the concept is worth more work. other projects here’s a brief rundown of the other projects worked on by teams on the day. coding confessions everyone starts somewhere and everyone cuts corners from time to time. real developers copy and paste! fight imposter syndrome by looking through some of these confessions or contributing your own. https://coding-confessions.github.io/ carpenpi a template to set up a raspberry pi with everything you need to run a carpentries (https://carpentries.org/) data science/software engineering workshop in a remote location without internet access. https://github.com/carpenpi/docs/wiki research dugnads a guide to running an event that is a coming together of a research group or team to share knowledge, pass on skills, tidy and review code, among other software and working best practices (based on the norwegian concept of a dugnad, a form of “voluntary work done together with other people”) https://research-dugnads.github.io/dugnads-hq/ collaborations workshop ideas a meta-project to collect together pitches and ideas from previous collaborations workshop conferences and hackdays, to analyse patterns and revisit ideas whose time might now have come. https://github.com/robintw/cw-ideas howdescribedis integrate existing tools to improve the machine-readable metadata attached to open research projects by integrating projects like somef, codemeta.json and howfairis (https://howfairis.readthedocs.io/en/latest/index.html). complete with ci and badges! https://github.com/knowledgecaptureanddiscovery/somef-github-action software end-of-project plans develop a template to plan and communicate what will happen when the fixed-term project funding for your research software ends. will maintenance continue? when will the project sunset? who owns the ip? https://github.com/elichad/software-twilight habeas corpus a corpus of machine readable data about software used in covid- related research, based on the cord dataset. https://github.com/softwaresaved/habeas-corpus credit-all extend the all-contributors github bot (https://allcontributors.org/) to include rich information about research project contributions such as the casrai contributor roles taxonomy (https://casrai.org/credit/) https://github.com/dokempf/credit-all i’m excited to see so many metadata-related projects! i plan to take a closer look at what the habeas corpus, credit-all and howdescribedis teams did when i get time. i also really want to try running a dugnad with my team or for the glam data science network. collaborations workshop : talks & panel session i’ve just finished attending (online) the three days of this year’s ssi collaborations workshop (cw for short), and once again it’s been a brilliant experience, as well as mentally exhausting, so i thought i’d better get a summary down while it’s still fresh it my mind. collaborations workshop is, as the name suggests, much more focused on facilitating collaborations than a typical conference, and has settled into a structure that starts off with with longer keynotes and lectures, and progressively gets more interactive culminating with a hack day on the third day. that’s a lot to write about, so for this post i’ll focus on the talks and panel session, and follow up with another post about the collaborative bits. i’ll also probably need to come back and add in more links to bits and pieces once slides and the “official” summary of the event become available. updates - - added links to recordings of keynotes and panel sessions provocations the first day began with two keynotes on this year’s main themes: fair research software and diversity & inclusion, and day had a great panel session focused on disability. all three were streamed live and the recordings remain available on youtube: view the keynotes recording; google-free alternative link view the panel session recording; google-free alternative link fair research software dr michelle barker, director of the research software alliance, spoke on the challenges to recognition of software as part of the scholarly record: software is not often cited. the fair rs working group has been set up to investigate and create guidance on how the fair principles for data can be adapted to research software as well; as they stand, the principles are not ideally suited to software. this work will only be the beginning though, as we will also need metrics, training, career paths and much more. resa itself has focus areas: people, policy and infrastructure. if you’re interested in getting more involved in this, you can join the resa email list. equality, diversity & inclusion: how to go about it dr chonnettia jones, vice president of research, michael smith foundation for health research spoke extensively and persuasively on the need for equality, diversity & inclusion (edi) initiatives within research, as there is abundant robust evidence that all research outcomes are improved. she highlighted the difficulties current approaches to edi have effecting structural change, and changing not just individual behaviours but the cultures & practices that perpetuate iniquity. what initiatives are often constructed around making up for individual deficits, a bitter framing is to start from an understanding of individuals having equal stature but having different tired experiences. commenting on the current focus on “research excellent” she pointed out that the hyper-competition this promotes is deeply unhealthy. suggesting instead that true excellence requires diversity, and we should focus on an inclusive excellence driven by inclusive leadership. equality, diversity & inclusion: disability issues day ’s edi panel session brought together five disabled academics to discuss the problems of disability in research. dr becca wilson, ukri innovation fellow, institute of population health science, university of liverpool (chair) phoenix c s andrews (phd student, information studies, university of sheffield and freelance writer) dr ella gale (research associate and machine learning subject specialist, school of chemistry, university of bristol) prof robert stevens (professor and head of department of computer science, university of manchester) dr robin wilson (freelance data scientist and ssi fellow) nb. the discussion flowed quite freely so the following summary, so the following summary mixes up input from all the panel members. researchers are often assumed to be single-minded in following their research calling, and aptness for jobs is often partly judged on “time send”, which disadvantages any disabled person who has been forced to take a career break. on top of this disabled people are often time-poor because of the extra time needed to manage their condition, leaving them with less “output” to show for their time served on many common metrics. this can partially affect early-career researchers, since resources for these are often restricted on a “years-since-phd” criterion. time poverty also makes funding with short deadlines that much harder to apply for. employers add more demands right from the start: new starters are typically expected to complete a health and safety form, generally a brief affair that will suddenly become an -page bureaucratic nightmare if you tick the box declaring a disability. many employers claim to be inclusive yet utterly fail to understand the needs of their disabled staff. wheelchairs are liberating for those who use them (despite the awful but common phrase “wheelchair-bound”) and yet employers will refuse to insure a wheelchair while travelling for work, classifying it as a “high value personal item” that the owner would take the same responsibility for as an expensive camera. computers open up the world for blind people in a way that was never possible without them, but it’s not unusual for mandatory training to be inaccessible to screen readers. some of these barriers can be overcome, but doing so takes yet more time that could and should be spent on more important work. what can we do about it? academia works on patronage whether we like it or not, so be the person who supports people who are different to you rather than focusing on the one you “recognise yourself in” to mentor. as a manager, it’s important to ask each individual what they need and believe them: they are the expert in their own condition and their lived experience of it. don’t assume that because someone else in your organisation with the same disability needs one set of accommodations, it’s invalid for your staff member to require something totally different. and remember: disability is unusual as a protected characteristic in that anyone can acquire it at any time without warning! lightning talks lightning talk sessions are always tricky to summarise, and while this doesn’t do them justice, here are a few highlights from my notes. data & metadata malin sandstrom talked about a much-needed refinement of contributor role taxonomies for scientific computing stephan druskat showcased a project to crowdsource a corpus of research software for further analysis learning & teaching/community matthew bluteau introduced the concept of the “coding dojo” as a way to enhance community of practice. a group of coders got together to practice & learn by working together to solve a problem and explaining their work as they go he described models: a code jam, where people work in small groups, and the randori method, where people do pair programming while the rest observe. i’m excited to try this out! steve crouch talked about intermediate skills and helping people take the next step, which i’m also very interested in with the glam data science network esther plomp recounted experience of running multiple carpentry workshops online, while diego alonso alvarez discussed planned workshops on making research software more usable with guis shoaib sufi showcased the ssi’s new event organising guide caroline jay reported on a diary study into autonomy & agency in rse during covid lopez, t., jay, c., wermelinger, m., & sharp, h. ( ). how has the covid- pandemic affected working conditions for research software engineers? unpublished manuscript. wrapping up that’s not everything! but this post is getting pretty long so i’ll wrap up for now. i’ll try to follow up soon with a summary of the “collaborative” part of collaborations workshop: the idea-generating sessions and hackday! time for a new look... i’ve decided to try switching this website back to using hugo to manage the content and generate the static html pages. i’ve been on the python-based nikola for a few years now, but recently i’ve been finding it quite slow, and very confusing to understand how to do certain things. i used hugo recently for the glam data science network website and found it had come on a lot since the last time i was using it, so i thought i’d give it another go, and redesign this site to be a bit more minimal at the same time. the theme is still a work in progress so it’ll probably look a bit rough around the edges for a while, but i think i’m happy enough to publish it now. when i get round to it i might publish some more detailed thoughts on the design. ideas for accessible communications the disability support network at work recently ran a survey on “accessible communications”, to develop guidance on how to make communications (especially internal staff comms) more accessible to everyone. i grabbed a copy of my submission because i thought it would be useful to share more widely, so here it is. please note that these are based on my own experiences only. i am in no way suggesting that these are the only things you would need to do to ensure your communications are fully accessible. they’re just some things to keep in mind. policies/procedures/guidance can be stressful to use if anything is vague or inconsistent, or if it looks like there might be more information implied than is explicitly given (a common cause of this is use of jargon in e.g. hr policies). emails relating to these policies have similar problems, made worse because they tend to be very brief. online meetings can be very helpful, but can also be exhausting, especially if there are too many people, or not enough structure. larger meetings & webinars without agendas (or where the agenda is ignored, or timings are allowed to drift without acknowledgement) are very stressful, as are those where there is not enough structure to ensure fair opportunities to contribute. written reference documents and communications should: be carefully checked for consistency and clarity have all all key points explicitly stated explicitly acknowledge the need for flexibility where it is necessary, rather than implying or hinting at it clearly define jargon & acronyms where they are necessary to the point being made, and avoid them otherwise include links to longer, more explicit versions where space is tight provide clear bullet-point summaries with links to the details online meetings should: include sufficient break time (at least minutes out of every hour) and not allow this to be compromised just because a speaker has misjudged the length of their talk include initial “settling-in” time in agendas to avoid timing getting messed up from the start ensure the agenda is stuck to, or that divergence from the agenda is acknowledged explicitly by the chair and updated timing briefly discussed to ensure everyone is clear establish a norm for participation at the start of the meeting and stick to it e.g. ask people to raise hands when they have a point to make, or have specific time for round-robin contributions ensure quiet/introverted people have space to contribute, but don’t force them to do so if they have nothing to add at the time offer a text-based alternative to contributing verbally if appropriate, at the start of the meeting assign specific roles of: gatekeeper: ensures everyone has a chance to contribute timekeeper: ensures meeting runs to time scribe: ensures a consistent record of the meeting be chaired by someone with the confidence to enforce the above: offer training to all staff on chairing meetings to ensure everyone has the skills to run a meeting effectively matrix self-hosting i started running my own matrix server a little while ago. matrix is something rather cool, a chat system similar to irc or slack, but open and federated. open in that the standard is available for anyone to view, but also the reference implementations of server and client are open source, along with many other clients and a couple of nascent alternative servers. federated in that, like email, it doesn’t matter what server you sign up with, you can talk to users on your own or any other server. i decided to host my own for three reasons. firstly, to see if i could and to learn from it. secondly, to try and rationalise the cambrian explosion of slack teams i was being added to in . thirdly, to take some control of the loss of access to historical messages in some communities that rely on slack (especially the carpentries and rse communities). since then, i’ve also added a fourth goal: taking advantage of various bridges to bring other messaging network i use (such as signal and telegram) into a consistent ui. i’ve also found that my use of matrix-only rooms has grown as more individuals & communities have adopted the platform. so, i really like matrix and i use it daily. my problem now is whether to keep self-hosting. synapse, the only full server implementation at the moment, is really heavy on memory, so i’ve ended up running it on a much bigger server than i thought i’d need, which seems overkill for a single-user instance. so now i have to make a decision about whether it’s worth keeping going, or shutting it down and going back to matrix.org, or setting up on one of the other servers that have sprung up in the last couple of years. there are a couple of other considerations here. firstly, synapse resource usage is entirely down to the size of the rooms joined by users of the homeowner, not directly the number of users. so if users have mostly overlapping interests, and thus keep to the same rooms, you can support quite a large community without significant extra resource usage. secondly, there are a couple of alternative server implementations in development specifically addressing this issue for small servers. dendrite and conduit. neither are quite ready for what i want yet, but are getting close, and when ready that will allow running small homeservers with much more sensible resource usage. so i could start opening up for other users, and at least justify the size of the server that way. i wouldn’t ever want to make it a paid-for service but perhaps people might be willing to make occasional donations towards running costs. that still leaves me with the question of whether i’m comfortable running a service that others may come to rely on, or being responsible for the safety of their information. i could also hold out for dendrite or conduit to mature enough that i’m ready to try them, which might not be more than a few months off. hmm, seems like i’ve convinced myself to stick with it for now, and we’ll see how it goes. in the meantime, if you know me and you want to try it out let me know and i might risk setting you up with an account! what do you miss least about pre-lockdown life? @janethughes on twitter: what do you miss the least from pre-lockdown life? i absolutely do not miss wandering around the office looking for a meeting room for a confidential call or if i hadn’t managed to book a room in advance. let’s never return to that joyless frustration, hey? : am · feb , after seeing terence eden taking janet hughes' tweet from earlier this month as a writing prompt, i thought i might do the same. the first thing that leaps to my mind is commuting. at various points in my life i’ve spent between one and three hours a day travelling to and from work and i’ve never more than tolerated it at best. it steals time from your day, and societal norms dictate that it’s your leisure & self-care time that must be sacrificed. longer commutes allow more time to get into a book or podcast, especially if not driving, but i’d rather have that time at home rather than trying to be comfortable in a train seat designed for some mythical average man shaped nothing like me! the other thing i don’t miss is the colds and flu! before the pandemic, british culture encouraged working even when ill, which meant constantly coming into contact with people carrying low-grade viruses. i’m not immunocompromised but some allergies and residue of being asthmatic as a child meant that i would get sick - times a year. a pleasant side-effect of the covid precautions we’re all taking is that i haven’t been sick for over months now, which is amazing! finally, i don’t miss having so little control over my environment. one of the things that working from home has made clear is that there are certain unavoidable aspects of working in my shared office that cause me sensory stress, and that are completely unrelated to my work. working (or trying to work) next to a noisy automatic scanner; trying to find a light level that works for different people doing different tasks; lacking somewhere quiet and still to eat lunch and recover from a morning of meetings or the constant vaguely-distracting bustle of a large shared office. it all takes energy. although it’s partly been replaced by the new stress of living through a global pandemic, that old stress was a constant drain on my productivity and mood that had been growing throughout my career as i moved (ironically, given the common assumption that seniority leads to more privacy) into larger and larger open plan offices. remarkable blogging and the handwritten blog saga continues, as i’ve just received my new remarkable tablet, which is designed for reading, writing and nothing else. it uses a super-responsive e-ink display and writing on it with a stylus is a dream. it has a slightly rough texture with just a bit of friction that makes my writing come out a lot more legibly than on a slippery glass touchscreen. if that was all there was to it, i might not have wasted my money, but it turns out that it runs on linux and the makers have wisely decided not to lock it down but to give you full root mess. yes, you read that right: root access. it presents as an ethernet device over usb, so you can ssh in with a password found in the settings and have full control over your own devices. what a novel concept. this fact alone has meant it’s built a small yet devoted community of users who have come up with some clever ways of extending its functionality. in fact, many of these are listed on this github repository. finally, from what i’ve seen so far, the handwriting recognition is impressive to say the least. this post was written on it and needed only a little editing. i think this is a device that will get a lot of use! glam data science network fellow travellers updates - - thanks to gene @dzshuniper@ausglam.space for suggesting adho and a better attribution for the opening quote (see comments below for details) see comments & webmentions for details. “if you want to go fast, go alone. if you want to go far, go together.” — african proverb, probably popularised in english by kenyan church leader rev. samuel kobia (original) this quote is a popular one in the carpentries community, and i interpret it in this context to mean that a group of people working together is more sustainable than individuals pursuing the same goal independently. that’s something that speaks to me, and that i want to make sure is reflected in nurturing this new community for data science in galleries, archives, libraries & museums (glam). to succeed, this work needs to be complementary and collaborative, rather than competitive, so i want to acknowledge a range of other networks & organisations whose activities complement this. the rest of this article is an unavoidably incomplete list of other relevant organisations whose efforts should be acknowledged and potentially built on. and it should go without saying, but just in case: if the work i’m planning fits right into an existing initiative, then i’m happy to direct my resources there rather than duplicate effort. inspirations & collaborators groups with similar goals or undertaking similar activities, but focused on a different sector, geographic area or topic. i think we should make as much use of and contribution to these existing communities as possible since there will be significant overlap. code lib probably the closest existing community to what i want to build, but primarily based in the us, so timezones (and physical distance for in-person events) make it difficult to participate fully. this is a well-established community though, with regular events including an annual conference so there’s a lot to learn here. newcardigan similar to code lib but an australian focus, so the timezone problem is even bigger! glam labs focused on supporting the people experimenting with and developing the infrastructure to enable scholars to access glam materials in new ways. in some ways, a glam data science network would be complementary to their work, by providing people not directly involved with building glam labs with the skills to make best use of glam labs infrastructure. uk government data science community another existing community with very similar intentions, but focused on uk government sector. clearly the british library and a few national & regional museums & archives fall into this, but much of the rest of the glam sector does not. artifical intelligence for libraries, archives & museums (ai lam) a multinational collaboration between several large libraries, archives and museums with a specific focus on the artificial intelligence (ai) subset of data science uk reproducibility network a network of researchers, primarily in heis, with an interest in improving the transparency and reliability of academic research. mostly science-focused but with some overlap of goals around ethical and robust use of data. museums computer group i’m less familiar with this than the others, but it seems to have a wider focus on technology generally, within the slightly narrower scope of museums specifically. again, a lot of potential for collaboration. training several organisations and looser groups exist specifically to develop and deliver training that will be relevant to members of this network. the network also presents an opportunity for those who have done a workshop with one of these and want to know what the “next steps” are to continue their data science journey. the carpentries, aka: library carpentry data carpentry software carpentry data science training for librarians (dst l) the programming historian cdh cultural heritage data school supporters these misson-driven organisations have goals that align well with what i imagine for the glam dsn, but operate at a more strategic level. they work by providing expert guidance and policy advice, lobbying and supporting specific projects with funding and/or effort. in particular, the ssi runs a fellowship programme which is currently providing a small amount of funding to this project. digital preservation coalition (dpc) software sustainability institute (ssi) research data alliance (rda) alliance of digital humanities organizations (adho) … and its libraries and digital humanities special interest group (lib&dh sig) professional bodies these organisations exist to promote the interests of professionals in particular fields, including supporting professional development. i hope they will provide communication channels to their various members at the least, and may be interested in supporting more directly, depending on their mission and goals. society of research software engineering chartered institute of library and information professionals archives & records association museums association conclusion as i mentioned at the top of the page, this list cannot possibly be complete. this is a growing area and i’m not the only or first person to have this idea. if you can think of anything glaring that i’ve missed and you think should be on this list, leave a comment or tweet/toot at me! a new font for the blog i’ve updated my blog theme to use the quasi-proportional fonts iosevka aile and iosevka etoile. i really like the aesthetic, as they look like fixed-width console fonts (i use the true fixed-width version of iosevka in my terminal and text editor) but they’re actually proportional which makes them easier to read. https://typeof.net/iosevka/ training a model to recognise my own handwriting if i’m going to train an algorithm to read my weird & awful writing, i’m going to need a decent-sized training set to work with. and since one of the main things i want to do with it is to blog “by hand” it makes sense to focus on that type of material for training. in other words, i need to write out a bunch of blog posts on paper, scan them and transcribe them as ground truth. the added bonus of this plan is that after transcribing, i also end up with some digital text i can use as an actual post — multitasking! so, by the time you read this, i will have already run it through a manual transcription process using transkribus to add it to my training set, and copy-pasted it into emacs for posting. this is a fun little project because it means i can: write more by hand with one of my several nice fountain pens, which i enjoy learn more about the operational process some of my colleagues go through when digitising manuscripts learn more about the underlying technology & maths, and how to tune the process produce more lovely content! for you to read! yay! write in a way that forces me to put off editing until after a first draft is done and focus more on getting the whole of what i want to say down. that’s it for now — i’ll keep you posted as the project unfolds. addendum tee hee! i’m actually just enjoying the process of writing stuff by hand in long-form prose. it’ll be interesting to see how the accuracy turns out and if i need to be more careful about neatness. will it be better or worse than the big but generic models used by samsung notes or onenote. maybe i should include some stylus-written text for comparison. blogging by hand i wrote the following text on my tablet with a stylus, which was an interesting experience: so, thinking about ways to make writing fun again, what if i were to write some of them by hand? i mean i have a tablet with a pretty nice stylus, so maybe handwriting recognition could work. one major problem, of course, is that my handwriting is awful! i guess i’ll just have to see whether the ocr is good enough to cope… it’s something i’ve been thinking about recently anyway: i enjoy writing with a proper fountain pen, so is there a way that i can have a smooth workflow to digitise handwritten text without just typing it back in by hand? that would probably be preferable to this, which actually seems to work quite well but does lead to my hand tensing up to properly control the stylus on the almost-frictionless glass screen. i’m surprised how well it worked! here’s a sample of the original text: and here’s the result of converting that to text with the built-in handwriting recognition in samsung notes: writing blog posts by hand so, thinking about ways to make writing fun again, what if i were to write some of chum by hand? i mean, i have a toldest winds a pretty nice stylus, so maybe handwriting recognition could work. one major problems, ofcourse, is that my , is awful! iguess i’ll just have to see whattime the ocu is good enough to cope… it’s something i’ve hun tthinking about recently anyway: i enjoy wilting with a proper fountain pion, soischeme a way that i can have a smooch workflow to digitise handwritten text without just typing it back in by hand? that wouldprobally be preferableto this, which actually scams to work quito wall but doers load to my hand tensing up to properly couldthe stylus once almost-frictionlessg lass scream. it’s pretty good! it did require a fair bit of editing though, and i reckon we can do better with a model that’s properly trained on a large enough sample of my own handwriting. what i want from a glam/cultural heritage data science network introduction as i mentioned last year, i was awarded a software sustainability institute fellowship to pursue the project of setting up a cultural heritage/glam data science network. obviously, the global pandemic has forced a re-think of many plans and this is no exception, so i’m coming back to reflect on it and make sure i’m clear about the core goals so that everything else still moves in the right direction. one of the main reasons i have for setting up a glam data science network is because it’s something i want. the advice to “scratch your own itch” is often given to people looking for an open project to start or contribute to, and the lack of a community of people with whom to learn & share ideas and practice is something that itches for me very much. the “motivation” section in my original draft project brief for this work said: cultural heritage work, like all knowledge work, is increasingly data-based, or at least gives opportunities to make use of data day-to-day. the proper skills to use this data enable more effective working. knowledge and experience thus gained improves understanding of and empathy with users also using such skills. but of course, i have my own reasons for wanting to do this too. in particular, i want to: advocate for the value of ethical, sustainable data science across a wide range of roles within the british library and the wider sector advance the sector to make the best use of data and digital sources in the most ethical and sustainable way possible understand how and why people use data from the british library, and plan/deliver better services to support that keep up to date with relevant developments in data science learn from others' skills and experiences, and share my own in turn those initial goals imply some further supporting goals: build up the confidence of colleagues who might benefit from data science skills but don’t feel they are “technical” or “computer literate” enough further to that, build up a base of colleagues with the confidence to share their skills & knowledge with others, whether through teaching, giving talks, writing or other channels identify common awareness gaps (skills/knowledge that people don’t know they’re missing) and address them develop a communal space (primarily online) in which people feel safe to ask questions develop a body of professional practice and help colleagues to learn and contribute to the evolution of this, including practices of data ethics, software engineering, statistics, high performance computing, … break down language barriers between data scientists and others i’ll expand on this separately as my planning develops, but here are a few specific activities that i’d like to be able to do to support this: organise less-formal learning and sharing events to complement the more formal training already available within organisations and the wider sector, including “show and tell” sessions, panel discussions, code cafés, masterclasses, guest speakers, reading/study groups, co-working sessions, … organise training to cover intermediate skills and knowledge currently missing from the available options, including the awareness gaps and professional practice mentioned above collect together links to other relevant resources to support self-led learning decisions to be made there are all sorts of open questions in my head about this right now, but here are some of the key ones. is it glam or cultural heritage? when i first started planning this whole thing, i went with “cultural heritage”, since i was pretty transparently targeting my own organisation. the british library is fairly unequivocally a ch organisation. but as i’ve gone along i’ve found myself gravitating more towards the term “glam” (which stands for galleries, libraries, archives, museums) as it covers a similar range of work but is clearer (when you spell out the acronym) about what kinds of work are included. what skills are relevant? this turns out to be surprisingly important, at least in terms of how the community is described, as they define the boundaries of the community and can be the difference between someone feeling welcome or excluded. for example, i think that some introductory statistics training would be immensely valuable for anyone working with data to understand what options are open to them and what limitations those options have, but is the word “statistics” offputting per se to those who’ve chosen a career in arts & humanities? i don’t know because i don’t have that background and perspective. keep it internal to the bl, or open up early on? i originally planned to focus primarily on my own organisation to start with, feeling that it would be easier to organise events and build a network within a single organisation. however, the pandemic has changed my thinking significantly. firstly, it’s now impossible to organise in-person events and that will continue for quite some time to come, so there is less need to focus on the logistics of getting people into the same room. secondly, people within the sector are much more used to attending remote events, which can easily be opened up to multiple organisations in many countries, timezones allowing. it now makes more sense to focus primarily on online activities, which opens up the possibility of building a critical mass of active participants much more quickly by opening up to the wider sector. conclusion this is the type of post that i could let run and run without ever actually publishing, but since it’s something i need feedback and opinions on from other people, i’d better ship it! i really want to know what you think about this, whether you feel it’s relevant to you and what would make it useful. comments are open below, or you can contact me via mastodon or twitter. writing about not writing under construction grunge sign by nicolas raymond — cc by . every year, around this time of year, i start doing two things. first, i start thinking i could really start to understand monads and write more than toy programs in haskell. this is unlikely to ever actually happen unless and until i get a day job where i can justify writing useful programs in haskell, but advent of code always gets me thinking otherwise. second, i start mentally writing this same post. you know, the one about how the blogger in question hasn’t had much time to write but will be back soon? “sorry i haven’t written much lately…” it’s about as cliché as a geocities site with a permanent “under construction” gif. at some point, not long after the dawn of ~time~ the internet, most people realised that every website was permanently under construction and publishing something not ready to be published was just pointless. so i figured this year i’d actually finish writing it and publish it. after all, what’s the worst that could happen? if we’re getting all reflective about this, i could probably suggest some reasons why i’m not writing much: for a start, there’s a lot going on in both my world and the world right now, which doesn’t leave a lot of spare energy after getting up, eating, housework, working and a few other necessary activities. as a result, i’m easily distracted and i tend to let myself get dragged off in other directions before i even get to writing much of anything. if i do manage to focus on this blog in general, i’ll often end up working on some minor tweak to the theme or functionality. i mean, right now i’m wondering if i can do something clever in my text-editor (emacs, since you’re asking) to streamline my writing & editing process so it’s more elegant, efficient, ergonomic and slightly closer to perfect in every way. it also makes me much more likely to self-censor, and to indulge my perfectionist tendencies to try and tweak the writing until it’s absolutely perfect, which of course never happens. i’ve got a whole heap of partly-written posts that are juuuust waiting for the right motivation for me to just finish them off. the only real solution is to accept that: i’m not going to write much and that’s probably ok what i do write won’t always be the work of carefully-researched, finely crafted genius that i want it to be, and that’s probably ok too also to remember why i started writing and publishing stuff in the first place: to reflect and get my thoughts out onto a (virtual) page so that i can see them, figure out whether i agree with myself and learn; and to stimulate discussion and get other views on my (possibly uninformed, incorrect or half-formed) thoughts, also to learn. in other words, a thing i do for me. it’s easy to forget that and worry too much about whether anyone else wants to read my s—t. will you notice any changes? maybe? maybe not? who knows. but it’s a new year and that’s as good a time for a change as any. when is a persistent identifier not persistent? or an identifier? i wrote a post on the problems with isbns as persistent identifiers (pids) for work, so check it out if that sounds interesting. idcc reflections i’m just back from idcc , so here are a few reflections on this year’s conference. you can find all the available slides and links to shared notes on the conference programme. there’s also a list of all the posters and an overview of the unconference skills for curation of diverse datasets here in the uk and elsewhere, you’re unlikely to find many institutions claiming to apply a deep level of curation to every dataset/software package/etc deposited with them. there are so many different kinds of data and so few people in any one institution doing “curation” that it’s impossible to do this for everything. absent the knowledge and skills required to fully evaluate an object the best that can be done is usually to make a sense check on the metadata and flag up with the depositor potential for high-level issues such as accidental disclosure of sensitive personal information. the data curation network in the united states is aiming to address this issue by pooling expertise across multiple organisations. the pilot has been highly successful and they’re now looking to obtain funding to continue this work. the swedish national data service is experimenting with a similar model, also with a lot of success. as well as sharing individual expertise, the dcn collaboration has also produced some excellent online quick-reference guides for curating common types of data. we had some further discussion as part of the unconference on the final day about what it would look like to introduce this model in the uk. there was general agreement that this was a good idea and a way to make optimal use of sparse resources. there were also very valid concerns that it would be difficult in the current financial climate for anyone to justify doing work for another organisation, apparently for free. in my mind there are two ways around this, which are not mutually exclusive by any stretch of the imagination. first is to just do it: form an informal network of curators around something simple like a mailing list, and give it a try. second is for one or more trusted organisations to provide some coordination and structure. there are several candidates for this including dcc, jisc, dpc and the british library; we all have complementary strengths in this area so it’s my hope that we’ll be able to collaborate around it. in the meantime, i hope the discussion continues. artificial intelligence, machine learning et al as you might expect at any tech-oriented conference there was a strong theme of ai running through many presentations, starting from the very first keynote from francine berman. her talk, the internet of things: utopia or dystopia? used self-driving cars as a case study to unpack some of the ethical and privacy implications of ai. for example, driverless cars can potentially increase efficiency, both through route-planning and driving technique, but also by allowing fewer vehicles to be shared by more people. however, a shared vehicle is not a private space in the way your own car is: anything you say or do while in that space is potentially open to surveillance. aside from this, there are some interesting ideas being discussed, particularly around the possibility of using machine learning to automate increasingly complex actions and workflows such as data curation and metadata enhancement. i didn’t get the impression anyone is doing this in the real world yet, but i’ve previously seen theoretical concepts discussed at idcc make it into practice so watch this space! playing games! training is always a major idcc theme, and this year two of the most popular conference submissions described games used to help teach digital curation concepts and skills. mary donaldson and matt mahon of the university of glasgow presented their use of lego to teach the concept of sufficient metadata. participants build simple models before documenting the process and breaking them down again. then everyone had to use someone else’s documentation to try and recreate the models, learning important lessons about assumptions and including sufficient detail. kirsty merrett and zosia beckles from the university of bristol brought along their card game “researchers, impact and publications (rip)”, based on the popular “cards against humanity”. rip encourages players to examine some of the reasons for and against data sharing with plenty of humour thrown in. both games were trialled by many of the attendees during thursday’s unconference. summary i realised in dublin that it’s years since i attended my first idcc, held at the university of bristol in december while i was still working at the nearby university of bath. while i haven’t been every year, i’ve been to every one held in europe since then and it’s interesting to see what has and hasn’t changed. we’re no longer discussing data management plans, data scientists or various other things as abstract concepts that we’d like to encourage, but dealing with the real-world consequences of them. the conference has also grown over the years: this year was the biggest yet, boasting over attendees. there has been especially big growth in attendees from north america, australasia, africa and the middle east. that’s great for the diversity of the conference as it brings in more voices and viewpoints than ever. with more people around to interact with i have to work harder to manage my energy levels but i think that’s a small price to pay. iosevka: a nice fixed-width-font iosevka is a nice, slender monospace font with a lot of configurable variations. check it out: https://typeof.net/iosevka/ replacing comments with webmentions just a quickie to say that i’ve replaced the comment section at the bottom of each post with webmentions, which allows you to comment by posting on your own site and linking here. it’s a fundamental part of the indieweb, which i’m slowly getting to grips with having been a halfway member of it for years by virtue of having my own site on my own domain. i’d already got rid of google analytics to stop forcing that tracking on my visitors, i wanted to get rid of disqus too because i’m pretty sure the only way that is free for me is if they’re selling my data and yours to third parties. webmention is a nice alternative because it relies only on open standards, has no tracking and allows people to control their own comments. while i’m currently using a third-party service to help, i can switch to self-hosted at any point in the future, completely transparently. thanks to webmention.io, which handles incoming webmentions for me, and webmention.js, which displays them on the site, i can keep it all static and not have to implement any of this myself, which is nice. it’s a bit harder to comment because you have to be able to host your own content somewhere, but then almost no-one ever commented anyway, so it’s not like i’ll lose anything! plus, if i get bridgy set up right, you should be able to comment just by replying on mastodon, twitter or a few other places. a spot of web searching shows that i’m not the first to make the disqus -> webmentions switch (yes, i’m putting these links in blatantly to test outgoing webmentions with telegraph…): so long disqus, hello webmention — nicholas hoizey bye disqus, hello webmention! — evert pot implementing webmention on a static site — deluvi let’s see how this goes! bridging carpentries slack channels to matrix it looks like i’ve accidentally taken charge of bridging a bunch of the carpentries slack channels over to matrix. given this, it seems like a good idea to explain what that sentence means and reflect a little on my reasoning. i’m more than happy to discuss the pros and cons of this approach if you just want to try chatting in matrix, jump to the getting started section what are slack and matrix? slack (see also on wikipedia), for those not familiar with it, is an online text chat platform with the feel of irc (internet relay chat), a modern look and feel and both web and smartphone interfaces. by providing a free tier that meets many peoples' needs on its own slack has become the communication platform of choice for thousands of online communities, private projects and more. one of the major disadvantages of using slack’s free tier, as many community organisations do, is that as an incentive to upgrade to a paid service your chat history is limited to the most recent , messages across all channels. for a busy community like the carpentries, this means that messages older than about - weeks are already inaccessible, rendering some of the quieter channels apparently empty. as slack is at pains to point out, that history isn’t gone, just archived and hidden from view unless you pay the low, low price of $ /user/month. that doesn’t seem too pricy, unless you’re a non-profit organisation with a lot of projects you want to fund and an active membership of several hundred worldwide, at which point it soon adds up. slack does offer to waive the cost for registered non-profit organisations, but only for one community. the carpentries is not an independent organisation, but one fiscally sponsored by community initiatives, which has already used its free quota of one elsewhere rendering the carpentries ineligible. other umbrella organisations such as numfocus (and, i expect, mozilla) also run into this problem with slack. so, we have a community which is slowly and inexorably losing its own history behind a paywall. for some people this is simply annoying, but from my perspective as a facilitator of the preservation of digital things the community is haemhorraging an important record of its early history. enter matrix. matrix is a chat platform similar to irc, slack or discord. it’s divided into separate channels, and users can join one or more of these to take part in the conversation happening in those channels. what sets it apart from older technology like irc and walled gardens like slack & discord is that it’s federated. federation means simply that users on any server can communicate with users and channels on any other server. usernames and channel addresses specify both the individual identifier and the server it calls home, just as your email address contains all the information needed for my email server to route messages to it. while users are currently tied to their home server, channels can be mirrored and synchronised across multiple servers making the overall system much more resilient. can’t connect to your favourite channel on server x? no problem: just connect via its alias on server y and when x comes back online it will be resynchronised. the technology used is much more modern and secure than the aging irc protocol, and there’s no vender lock-in like there is with closed platforms like slack and discord. on top of that, matrix channels can easily be “bridged” to channels/rooms on other platforms, including, yes, slack, so that you can join on matrix and transparently talk to people connected to the bridged room, or vice versa. so, to summarise: the current carpentries slack channels could be bridged to matrix at no cost and with no disruption to existing users the history of those channels from that point on would be retained on matrix.org and accessible even when it’s no longer available on slack if at some point in the future the carpentries chose to invest in its own matrix server, it could adopt and become the main matrix home of these channels without disruption to users of either matrix or (if it’s still in use at that point) slack matrix is an open protocol, with a reference server implementation and wide range of clients all available as free software, which aligns with the values of the carpentries community on top of this: i’m fed up of having so many different slack teams to switch between to see the channels in all of them, and prefer having all the channels i regularly visit in a single unified interface; i wanted to see how easy this would be and whether others would also be interested. given all this, i thought i’d go ahead and give it a try to see if it made things more manageable for me and to see what the reaction would be from the community. how can i get started? !!! reminder please remember that, like any other carpentries space, the code of conduct applies in all of these channels. first, sign up for a matrix account. the quickest way to do this is on the matrix “try now” page, which will take you to the riot web client which for many is synonymous with matrix. other clients are also available for the adventurous. second, join one of the channels. the links below will take you to a page that will let you connect via your preferred client. you’ll need to log in as they are set not to allow guest access, but, unlike slack, you won’t need an invitation to be able to join. #general — the main open channel to discuss all things carpentries #random — anything that would be considered offtopic elsewhere #welcome — join in and introduce yourself! that’s all there is to getting started with matrix. to find all the bridged channels there’s a matrix “community” that i’ve added them all to: carpentries matrix community. there’s a lot more, including how to bridge your favourite channels from slack to matrix, but this is all i’ve got time and space for here! if you want to know more, leave a comment below, or send me a message on slack (jezcope) or maybe matrix (@petrichor:matrix.org)! i’ve also made a separate channel for matrix-slack discussions: #matrix on slack and carpentries matrix discussion on matrix mozfest first reflections discussions of neurodiversity at #mozfest photo by jennifer riggins the other weekend i had my first experience of mozilla festival, aka #mozfest. it was pretty awesome. i met quite a few people in real life that i’ve previously only known (/stalked) on twitter, and caught up with others that i haven’t seen for a while. i had the honour of co-facilitating a workshop session on imposter syndrome and how to deal with it with the wonderful yo yehudi and emmy tsang. we all learned a lot and hope our participants did too; we’ll be putting together a summary blog post as soon as we can get our act together! i also attended a great session, led by kiran oliver (psst, they’re looking for a new challenge), on how to encourage and support a neurodiverse workforce. i was only there for the one day, and i really wish that i’d taken the plunge and committed to the whole weekend. there’s always next year though! to be honest, i’m just disappointed that i never had the courage to go sooner, music for working today the office conversation turned to blocking out background noise. (no, the irony is not lost on me.) like many people i work in a large, open-plan office, and i’m not alone amongst my colleagues in sometimes needing to find a way to boost concentration by blocking out distractions. not everyone is like this, but i find music does the trick for me. i also find that different types of music are better for different types of work, and i use this to try and manage my energy better. there are more distractions than auditory noise, and at times i really struggle with visual noise. rather than have this post turn into a rant about the evils of open-plan offices, i’ll just mention that the scientific evidence doesn’t paint them in a good light , or at least suggests that the benefits are more limited in scope than is commonly thought , and move on to what i actually wanted to share: good music for working to. there are a number of genres that i find useful for working. generally, these have in common a consistent tempo, a lack of lyrics, and enough variation to prevent boredom without distracting. familiarity helps my concentration too so i’ll often listen to a restricted set of albums for a while, gradually moving on by dropping one out and bringing in another. in my case this includes: traditional dance music, generally from northern and western european traditions for me. this music has to be rhythmically consistent to allow social dancing, and while the melodies are typically simple repeated phrases, skilled musicians improvise around that to make something beautiful. i tend to go through phases of listening to particular traditions; i’m currently listening to a lot of french, belgian and scandinavian. computer game soundtracks, which are specifically designed to enhance gameplay without distracting, making them perfect for other activities requiring a similar level of concentration. chiptunes and other music incorporating it; partly overlapping with the previous category, chiptunes is music made by hacking the audio chips from (usually) old computers and games machines to become an instrument for new music. because of the nature of the instrument, this will have millisecond-perfect rhythm and again makes for undistracting noise blocking with an extra helping of nostalgia! purists would disagree with me, but i like artists that combine chiptunes with other instruments and effects to make something more complete-sounding. retrowave/synthwave/outrun, synth-driven music that’s instantly familiar as the soundtrack to many s sci-fi and thriller movies. atmospheric, almost dreamy, but rhythmic with a driving beat, it’s another genre that fits into the “pleasing but not too surprising” category for me. so where to find this stuff? one of the best resources i’ve found is music for programming which provides carefully curated playlists of mostly electronic music designed to energise without distracting. they’re so well done that the tracks move seamlessly, one to the next, without ever getting boring. spotify is an obvious option, and i do use it quite a lot. however, i’ve started trying to find ways to support artists more directly, and bandcamp seems to be a good way of doing that. it’s really easy to browse by genre, or discover artists similar to what you’re currently hearing. you can listen for free as long as you don’t mind occasional nags to buy the music you’re hearing, but you can also buy tracks or albums. music you’ve paid for is downloadable in several open, drm-free formats for you to keep, and you know that a decent chunk of that cash is going directly to that artist. i also love noise generators; not exactly music, but a variety of pleasant background noises, some of which nicely obscure typical office noise. i particularly like mynoise.net, which has a cornucopia of different natural and synthetic noises. each generator comes with a range of sliders allowing you to tweak the composition and frequency range, and will even animate them randomly for you to create a gently shifting soundscape. a much simpler, but still great, option is noisli with it’s nice clean interface. both offer apps for ios and android. for bonus points, you can always try combining one or more of the above. adding in a noise generator allows me to listen to quieter music while still getting good environmental isolation when i need concentration. another favourite combo is to open both the cafe and rainfall generators from mynoise, made easier by the ability to pop out a mini-player then open up a second generator. i must be missing stuff though. what other musical genres should i try? what background sounds are nice to work to? well, you know. the other day. whatever. &#x a ;þ e; see e.g.: lee, so young, and jay l. brand. ‘effects of control over office workspace on perceptions of the work environment and work outcomes’. journal of environmental psychology , no. ( september ): – . https://doi.org/ . /j.jenvp. . . . &#x a ;þ e; open plan offices can actually work under certain conditions, the conversation &#x a ;þ e; working at the british library: months in it barely seems like it, but i’ve been at the british library now for nearly months. it always takes a long time to adjust and from experience i know it’ll be another year before i feel fully settled, but my team, department and other colleagues have really made me feel welcome and like i belong. one thing that hasn’t got old yet is the occasional thrill of remembering that i work at my national library now. every now and then i’ll catch a glimpse of the collections at boston spa or step into one of the reading rooms and think “wow, i actually work here!” i also like having a national and international role to play, which means i get to travel a bit more than i used to. budgets are still tight so there are limits, and i still prefer to be home more often than not, but there is more scope in this job than i’ve had previously for travelling to conferences, giving talks that change the way people think, and learning in different contexts. i’m learning a lot too, especially how to work with and manage people split across multiple sites, and the care and feeding of budgets. as well as missing mo old team at sheffield, i do also miss some of the direct contact i had with researchers in he. i especially miss the teaching work, but also the higher-level influencing of more senior academics to change practices on a wider scale. still, i get to use those influencing skills in different ways now, and i’m still involved with the carpentries which should let me keep my hand in with teaching. i still deal with my general tendency to try and do all the things, and as before i’m slowly learning to recognise it, tame it and very occasionally turn it to my advantage. that also leads to feelings of imposterism that are only magnified by the knowledge that i now work at a national institution! it’s a constant struggle some days to believe that i’ve actually earned my place here through hard work, even if i don’t always feel that i have, my colleagues here certainly have, so i should have more faith in their opinion of me. finally, i couldn’t write this type of thing without mentioning the commute. i’ve gone from minutes each way on a good day (up to twice that if the trains were disrupted) to minutes each way along fairly open roads. i have less time to read, but much more time at home. on top of that, the library has implemented flexitime across all pay grades, with even senior managers strongly encouraged to make full use. not only is this an important enabler of equality across the organisation, it relieves for me personally the pressure to work over my contracted hours and the guilt i’ve always felt at leaving work even minutes early. if i work late, it’s now a choice i’m making based on business needs instead of guilt and in full knowledge that i’ll get that time back later. so that’s where i am right now. i’m really enjoying the work and the culture, and i look forward to what the next months will bring! rda plenary reflection photo by me i sit here writing this in the departure lounge at philadelphia international airport, waiting for my aer lingus flight back after a week at the th research data alliance (rda) plenary (although i’m actually publishing this a week or so later at home). i’m pretty exhausted, partly because of the jet lag, and partly because it’s been a very full week with so much to take in. it’s my first time at an rda plenary, and it was quite a new experience for me! first off, it’s my first time outside europe, and thus my first time crossing quite so many timezones. i’ve been waking at am and ready to drop by pm, but i’ve struggled on through! secondly, it’s the biggest conference i’ve been to for a long time, both in number of attendees and number of parallel sessions. there’s been a lot of sustained input so i’ve been very glad to have a room in the conference hotel and be able to escape for a few minutes when i needed to recharge. thirdly, it’s not really like any other conference i’ve been to: rather than having large numbers of presentations submitted by attendees, each session comprises lots of parallel meetings of rda interest groups and working groups. it’s more community-oriented: an opportunity for groups to get together face to face and make plans or show off results. i found it pretty intense and struggled to take it all in, but incredibly valuable nonetheless. lots of information to process (i took a lot of notes) and a few contacts to follow up on too, so overall i loved it! using pipfile in binder photo by sear greyson on unsplash i recently attended a workshop, organised by the excellent team of the turing way project, on a tool called binderhub. binderhub, along with public hosting platform mybinder, allows you to publish computational notebooks online as “binders” such that they’re not static but fully interactive. it’s able to do this by using a tool called repo docker to capture the full computational environment and dependencies required to run the notebook. !!! aside “what is the turing way?” the turing way is, in its own words, “a lightly opinionated guide to reproducible data science.” the team is building an open textbook and running a number of workshops for scientists and research software engineers, and you should check out the project on github. you could even contribute! the binder process goes roughly like this: do some work in a jupyter notebook or similar put it into a public git repository add some extra metadata describing the packages and versions your code relies on go to mybinder.org and tell it where to find your repository open the url it generates for you profit other than step , which can take some time to build the binder, this is a remarkably quick process. it supports a number of different languages too, including built-in support for r, python and julia and the ability to configure pretty much any other language that will run on linux. however, the python support currently requires you to have either a requirements.txt or conda-style environment.yml file to specify dependencies, and i commonly use a pipfile for this instead. pipfile allows you to specify a loose range of compatible versions for maximal convenience, but then locks in specific versions for maximal reproducibility. you can upgrade packages any time you want, but you’re fully in control of when that happens, and the locked versions are checked into version control so that everyone working on a project gets consistency. since pipfile is emerging as something of a standard thought i’d see if i could use that in a binder, and it turns out to be remarkably simple. the reference implementation of pipfile is a tool called pipenv by the prolific kenneth reitz. all you need to use this in your binder is two files of one line each. requirements.txt tells repo binder to build a python-based binder, and contains a single line to install the pipenv package: pipenv then postbuild is used by repo binder to install all other dependencies using pipenv: pipenv install --system the --system flag tells pipenv to install packages globally (its default behaviour is to create a python virtualenv). with these two files, the binder builds and runs as expected. you can see a complete example that i put together during the workshop here on gitlab. what do you think i should write about? i’ve found it increasingly difficult to make time to blog, and it’s not so much not having the time — i’m pretty privileged in that regard — but finding the motivation. thinking about what used to motivate me, one of the big things was writing things that other people wanted to read. rather than try to guess, i thought i’d ask! those who know what i&# ;m about, what would you read about, if it was written by me?i&# ;m trying to break through the blog-writers block and would love to know what other people would like to see my ill-considered opinions on.— jez cope (@jezcope) march , i’m still looking for ideas, so please tweet me or leave me a comment below. below are a few thoughts that i’m planning to do something with. something taking one of the more techy aspects of open research, breaking it down and explaining the benefits for non-techy folks?— dr beth 🏳️‍🌈 🐺 (@phdgeek) march , skills (both techy and non techy) that people need to most effectively support rdm— kate o&# ;neill (@katefoneill) march , sometimes i forget that my background makes me well-qualified to take some of these technical aspects of the job and break them down for different audiences. there might be a whole series in this… carrying on our conversation last week i&# ;d love to hear more about how you&# ;ve found moving from an he lib to a national library and how you see the bl&# ;s role in rdm. appreciate this might be a bit niche/me looking for more interesting things to cite :)— rosie higman (@rosiehlib) march , this is interesting, and something i’d like to reflect on; moving from one job to another always has lessons and it’s easy to miss them if you’re not paying attention. another one for the pile. life without admin rights to your computer— mike croucher (@walkingrandomly) march , this is so frustrating as an end user, but at the same time i get that endpoint security is difficult and there are massive risks associated with letting end users have admin rights. this is particularly important at the bl: as custodian’s of a nation’s cultural heritage, the risk for us is bigger than for many and for this reason we are now cyber essentials plus certified. at some point i’d like to do some research and have a conversation with someone who knows a lot more about infosec to work out what the proper approach to this, maybe involving vms and a demilitarized zone on the network. i’m always looking for more inspiration, so please leave a comment if you’ve got anything you’d like to read my thoughts on. if you’re not familiar with my writing, please take a minute or two to explore the blog; the tags page is probably a good place to get an overview. ultimate hacking keyboard: first thoughts following on from the excitement of having built a functioning keyboard myself, i got a parcel on monday. inside was something that i’ve been waiting for since september: an ultimate hacking keyboard! where the custom-built laplace is small and quiet for travelling, the uhk is to be my main workhorse in the study at home. here are my first impressions: key switches i went with kailh blue switches from the available options. in stark contrast to the quiet blacks on the laplace, blues are noisy! they have an extra piece of plastic inside the switch that causes an audible and tactile click when the switch activates. this makes them very satisfying to type on and should help as i train my fingers not to bottom out while typing, but does make them unsuitable for use in a shared office! here are some animations showing how the main types of key switch vary. layout this keyboard has what’s known as a % layout: no number pad, arrows or function keys. as with the more spartan laplace, these “missing” keys are made up for with programmable layers. for example, the arrow keys are on the mod layer on the i/j/k/l keys, so i can access them without moving from the home row. i actually find this preferable to having to move my hand to the right to reach them, and i really never used the number pad in any case. split this is a split keyboard, which means that the left and right halves can be separated to place the hands further apart which eases strain across the shoulders. the uhk has a neat coiled cable joining the two which doesn’t get in the way. a cool design feature is that the two halves can be slotted back together and function perfectly well as a non-split keyboard too, held together by magnets. there are even electrical contacts so that when the two are joined you don’t need the linking cable. programming the board is fully programmable, and this is achieved via a custom (open source) gui tool which talks to the (open source) firmware on the board. you can have multiple keymaps, each of which has a separate base, mod, fn and mouse layer, and there’s an led display that shows a short mnemonic for the currently active map. i already have a customised dvorak layout for day-to-day use, plus a standard qwerty for not-me to use and an alternative qwerty which will be slowly tweaked for games that don’t work well with dvorak. mouse keys one cool feature that the designers have included in the firmware is the ability to emulate a mouse. there’s a separate layer that allows me to move the cursor, scroll and click without moving my hands from the keyboard. palm rests not much to say about the palm rests, other than they are solid wood, and chunky, and really add a little something. i have to say, i really like it so far! overall it feels really well designed, with every little detail carefully thought out and excellent build quality and a really solid feeling. custom-built keyboard i’m typing this post on a keyboard i made myself, and i’m rather excited about it! why make my own keyboard? i wanted to learn a little bit about practical electronics, and i like to learn by doing i wanted to have the feeling of making something useful with my own hands i actually need a small, keyboard with good-quality switches now that i travel a fair bit for work and this lets me completely customise it to my needs just because! while it is possible to make a keyboard completely from scratch, it makes much more sense to put together some premade parts. the parts you need are: pcb (printed circuit board): the backbone of the keyboard, to which all the other electrical components attach, this defines the possible physical locations for each key switches: one for each key to complete a circuit whenever you press it keycaps: switches are pretty ugly and pretty uncomfortable to press, so each one gets a cap; these are what you probably think of as the “keys” on your keyboard and come in almost limitless variety of designs (within the obvious size limitation) and are the easiest bit of personalisation controller: the clever bit, which detects open and closed switches on the pcb and tells your computer what keys you pressed via a usb cable firmware: the program that runs on the controller starts off as source code like any other program, and altering this can make the keyboard behave in loads of different ways, from different layouts to multiple layers accessed by holding a particular key, to macros and even emulating a mouse! in my case, i’ve gone for the following: pcb laplace from keeb.io, a very compact -key (“ %") board, with no number pad, function keys or number row, but a lot of flexibility for key placement on the bottom row. one of my key design goals was small size so i can just pop it in my bag and have on my lap on the train. controller elite-c, designed specifically for keyboard builds to be physically compatible with the cheaper pro micro, with a more-robust usb port (the pro micro’s has a tendency to snap off), and made easier to program with a built-in reset button and better bootloader. switches gateron black: gateron is one of a number of manufacturers of mechanical switches compatible with the popular cherry range. the black switch is linear (no click or bump at the activation point) and slightly heavier sprung than the more common red. cherry also make a black switch but the gateron version is slightly lighter and having tested a few i found them smoother too. my key goal here was to reduce noise, as the stronger spring will help me type accurately without hitting the bottom of the keystroke with an audible sound. keycaps blank grey pbt in dsa profile: this keyboard layout has a lot of non-standard sized keys, so blank keycaps meant that i wouldn’t be putting lots of keys out of their usual position; they’re also relatively cheap, fairly classy imho and a good placeholder until i end up getting some really cool caps on a group buy or something; oh, and it minimises the chance of someone else trying the keyboard and getting freaked out by the layout… firmware qmk (quantum mechanical keyboard), with a work-in-progress layout, based on dvorak. qmk has a lot of features and allows you to fully program each and every key, with multiple layers accessed through several different routes. because there are so few keys on this board, i’ll need to make good use of layers to make all the keys on a usual keyboard available. dvorak simplified keyboard i’m grateful to the folks of the leeds hack space, especially nav & mark who patiently coached me in various soldering techniques and good practice, but also everyone else who were so friendly and welcoming and interested in my project. i’m really pleased with the result, which is small, light and fully customisable. playing with qmk firmware features will keep me occupied for quite a while! this isn’t the end though, as i’ll need a case to keep the dust out. i’m hoping to be able to d print this or mill it from wood with a cnc mill, for which i’ll need to head back to the hack space! less, but better “wenniger aber besser” — dieter rams {:.big-quote} i can barely believe it’s a full year since i published my intentions for . a lot has happened since then. principally: in november i started a new job as data services lead at the british library. one thing that hasn’t changed is my tendency to try to do too much, so this year i’m going to try and focus on a single intention, a translation of designer dieter rams' famous quote above: less, but better. this chimes with a couple of other things i was toying with over the christmas break, as they’re essentially other ways of saying the same thing: take it steady one thing at a time i’m also going to keep in mind those touchstones from last year: what difference is this making? am i looking after myself? do i have evidence for this? i mainly forget to think about them, so i’ll be sticking up post-its everywhere to help me remember! how to extend python with rust: part python is great, but i find it useful to have an alternative language under my belt for occasions when no amount of pythonic cleverness will make some bit of code run fast enough. one of my main reasons for wanting to learn rust was to have something better than c for that. not only does rust have all sorts of advantages that make it a good choice for code that needs to run fast and correctly, it’s also got a couple of rather nice crates (libraries) that make interfacing with python a lot nicer. here’s a little tutorial to show you how easy it is to call a simple rust function from python. if you want to try it yourself, you’ll find the code on github. !!! prerequisites i’m assuming for this tutorial that you’re already familiar with writing python scripts and importing & using packages, and that you’re comfortable using the command line. you’ll also need to have installed rust. the rust bit the quickest way to get compiled code into python is to use the builtin ctypes package. this is python’s “foreign function interface” or ffi: a means of calling functions outside the language you’re using to make the call. ctypes allows us to call arbitrary functions in a shared library , as long as those functions conform to certain standard c language calling conventions. thankfully, rust tries hard to make it easy for us to build such a shared library. the first thing to do is to create a new project with cargo, the rust build tool: $ cargo new rustfrompy created library `rustfrompy` project $ tree . ├── cargo.toml └── src └── lib.rs directory, files !!! aside i use the fairly common convention that text set in fixed-width font is either example code or commands to type in. for the latter, a $ precedes the command that you type (omit the $), and lines that don’t start with a $ are output from the previous command. i assume a basic familiarity with unix-style command line, but i should probably put in some links to resources if you need to learn more! we need to edit the cargo.toml file and add a [lib] section: [package] name = &# ;rustfrompy&# ; version = &# ; . . &# ; authors = [&# ;jez cope <j.cope@erambler.co.uk>&# ;] [dependencies] [lib] name = &# ;rustfrompy&# ; crate-type = [&# ;cdylib&# ;] this tells cargo that we want to make a c-compatible dynamic library (crate-type = ["cdylib"]) and what to call it, plus some standard metadata. we can then put our code in src/lib.rs. we’ll just use a simple toy function that adds two numbers together: #[no_mangle] pub fn add(a: i , b: i ) -> i { a + b } notice the pub keyword, which instructs the compiler to make this function accessible to other modules, and the #[no_mangle] annotation, which tells it to use the standard c naming conventions for functions. if we don’t do this, then rust will generate a new name for the function for its own nefarious purposes, and as a side effect we won’t know what to call it when we want to use it from python. being good developers, let’s also add a test: #[cfg(test)] mod test { use ::*; #[test] fn test_add() { assert_eq!( , add( , )); } } we can now run cargo test which will compile that code and run the test: $ cargo test compiling rustfrompy v . . (file:///home/jez/personal/projects/rustfrompy) finished dev [unoptimized + debuginfo] target(s) in . secs running target/debug/deps/rustfrompy- caaa f f aa running test test test::test_add ... ok test result: ok. passed; failed; ignored; measured; filtered out everything worked! now just to build that shared library and we can try calling it from python: $ cargo build compiling rustfrompy v . . (file:///home/jez/personal/projects/rustfrompy) finished dev [unoptimized + debuginfo] target(s) in . secs notice that the build is unoptimized and includes debugging information: this is useful in development, but once we’re ready to use our code it will run much faster if we compile it with optimisations. cargo makes this easy: $ cargo build --release compiling rustfrompy v . . (file:///home/jez/personal/projects/rustfrompy) finished release [optimized] target(s) in . secs the python bit after all that, the python bit is pretty short. first we import the ctypes package (which is included in all recent python versions): from ctypes import cdll cargo has tidied our shared library away into a folder, so we need to tell python where to load it from. on linux, it will be called lib<something>.so where the “something” is the crate name from cargo.toml, “rustfrompy”: lib = cdll.loadlibrary(&# ;target/release/librustfrompy.so&# ;) finally we can call the function anywhere we want. here it is in a pytest-style test: def test_rust_add(): assert lib.add( , ) == if you have pytest installed (and you should!) you can run the whole test like this: $ pytest --verbose test.py ====================================== test session starts ====================================== platform linux -- python . . , pytest- . . , py- . . , pluggy- . . -- /home/jez/.virtualenvs/datasci/bin/python cachedir: .cache rootdir: /home/jez/personal/projects/rustfrompy, inifile: collected items test.py::test_rust_add passed it worked! i’ve put both the rust and python code on github if you want to try it for yourself. shortcomings ok, so that was a pretty simple example, and i glossed over a lot of things. for example, what would happen if we did lib.add( . , )? this causes python to throw an error because our rust function only accepts integers ( -bit signed integers, i , to be precise), and we gave it a floating point number. ctypes can’t guess what type(s) a given function will work with, but it can at least tell us when we get it wrong. to fix this properly, we need to do some extra work, telling the ctypes library what the argument and return types for each function are. for a more complex library, there will probably be more housekeeping to do, such as translating return codes from functions into more pythonic-style errors. for a small example like this there isn’t much of a problem, but the bigger your compiled library the more extra boilerplate is required on the python side just to use all the functions. when you’re working with an existing library you don’t have much choice about this, but if you’re building it from scratch specifically to interface with python, there’s a better way using the python c api. you can call this directly in rust, but there are a couple of rust crates that make life much easier, and i’ll be taking a look at those in a future blog post. .so on linux, .dylib on mac and .dll on windows &#x a ;þ e; new years's irresolution photo by andrew hughes on unsplash i’ve chosen not to make any specific resolutions this year; i’ve found that they just don’t work for me. like many people, all i get is a sense of guilt when i inevitably fail to live up to the expectations i set myself at the start of the year. however, i have set a couple of what i’m referring to as “themes” for the year: touchstones that i’ll aim to refer to when setting priorities or just feeling a bit overwhelmed or lacking in direction. they are: contribution self-care measurement i may do some blog posts expanding on these, but in the meantime, i’ve put together a handful of questions to help me think about priorities and get perspective when i’m doing (or avoiding doing) something. what difference is this making? i feel more motivated when i can figure out how i’m contributing to something bigger than myself. in society? in my organisation? to my friends & family? am i looking after myself? i focus a lot on the expectations have (or at least that i think others have) of me, but i can’t do anything well unless i’m generally happy and healthy. is this making me happier and healthier? is this building my capacity to to look after myself, my family & friends and do my job? is this worth the amount of time and energy i’m putting in? do i have evidence for this? i don’t have to base decisions purely on feelings/opinions: i have the skills to obtain, analyse and interpret data. is this fact or opinion? what are the facts? am i overthinking this? can i put a confidence interval for this? build documents from code and data with saga !!! tldr “tl;dr” i’ve made saga, a thing for compiling documents by combining code and data with templates. what is it? saga is a very simple command-line tool that reads in one or more data files, runs one or more scripts, then passes the results into a template to produce a final output document. it enables you to maintain a clean separation between data, logic and presentation and produce data-based documents that can easily be updated. that allows the flow of data through the document to be easily understood, a cornerstone of reproducible analysis. you run it like this: saga build -d data.yaml -d other_data.yaml \ -s analysis.py -t report.md.tmpl \ -o report.md any scripts specified with -s will have access to the data in local variables, and any changes to local variables in a script will be retained when everything is passed to the template for rendering. for debugging, you can also do: saga dump -d data.yaml -d other_data.yaml -s analysis.py which will print out the full environment that would be passed to your template with saga build. features right now this is a really early version. it does the job but i have lots of ideas for features to add if i ever have time. at present it does the following: reads data from one or more yaml files transforms data with one or more python scripts renders a template in mako format works with any plain-text output format, including markdown, latex and html use cases write reproducible reports & papers based on machine-readable data separate presentation from content in any document, e.g. your cv (example coming soon) yours here? get it! i haven’t released this on pypi yet, but all the code is available on github to try out. if you have pipenv installed (and if you use python you should!), you can try it out in an isolated virtual environment by doing: git clone https://github.com/jezcope/sagadoc.git cd sagadoc pipenv install pipenv run saga or you can set up for development and run some tests: pipenv install --dev pipenv run pytest why? like a lot of people, i have to produce reports for work, often containing statistics computed from data. although these generally aren’t academic research papers, i see no reason not to aim for a similar level of reproducibility: after all, if i’m telling other people to do it, i’d better take my own advice! a couple of times now i’ve done this by writing a template that holds the text of the report and placeholders for values, along with a python script that reads in the data, calculates the statistics i want and completes the template. this is valuable for two main reasons: if anyone wants to know how i processed the data and calculated those statistics, it’s all there: no need to try and remember and reproduce a series of button clicks in excel; if the data or calculations change, i just need to update the relevant part and run it again, and all the relevant parts of the document will be updated. this is particularly important if changing a single data value requires recalculation of dozens of tables, charts, etc. it also gives me the potential to factor out and reuse bits of code in the future, add tests and version control everything. now that i’ve done this more than once (and it seems likely i’ll do it again) it makes sense to package that script up in a more portable form so i don’t have to write it over and over again (or, shock horror, copy & paste it!). it saves time, and gives others the possibility to make use of it. prior art i’m not the first person to think of this, but i couldn’t find anything that did exactly what i needed. several tools will let you interweave code and prose, including the results of evaluating each code snippet in the document: chief among these are jupyter and rmarkdown. there are also tools that let you write code in the order that makes most sense to read and then rearrange it into the right order to execute, so-call literate programming. the original tool for this is the venerable noweb. sadly there is very little that combine both of these and allow you to insert the results of various calculations at arbitrary points in a document, independent of the order of either presenting or executing the code. the only two that i’m aware of are: dexy and org-mode. unfortunately, dexy currently only works on legacy python (/python ) and org-mode requires emacs (which is fine but not exactly portable). rmarkdown comes close and supports a range of languages but the full feature set is only available with r. actually, my ideal solution is org-mode without the emacs dependency, because that’s the most flexible solution; maybe one day i’ll have both the time and skill to implement that. it’s also possible i might be able to figure out dexy’s internals to add what i want to it, but until then saga does the job! future work there are lots of features that i’d still like to add when i have time: some actual documentation! and examples! more data formats (e.g. csv, json, toml) more languages (e.g. r, julia) fetching remote data over http caching of intermediate results to speed up rebuilds for now, though, i’d love for you to try it out and let me know what you think! as ever, comment here, tweet me or start an issue on github. why try rust for scientific computing? when you’re writing analysis code, python (or r, or javascript, or …) is usually the right choice. these high-level languages are set up to make you as productive as possible, and common tasks like array manipulation have been well optimised. however, sometimes you just can’t get enough speed and need to turn to a lower-level compiled language. often that will be c, c++ or fortran, but i thought i’d do a short post on why i think you should consider rust. one of my goals for ’s advent of code was to learn a modern, memory-safe, statically-typed language. i now know that there are quite a lot of options in this space, but two seem to stand out: go & rust. i gave both of them a try, and although i’ll probably go back to give go a more thorough test at some point i found i got quite hooked on rust. both languages, though young, are definitely production-ready. servo, the core of the new firefox browser, is entirely written in rust. in fact, mozilla have been trying to rewrite the rendering core in c for nearly a decade, and switching to rust let them get it done in just a couple of years. !!! tldr “tl;dr” - it’s fast: competitive with idiomatic c/c++, and no garbage-collection overhead - it’s harder to write buggy code, and compiler errors are actually helpful - it’s c-compatible: you can call into rust code anywhere you’d call into c, call c/c++ from rust, and incrementally replace c/c++ code with rust - it has sensible modern syntax that makes your code clearer and more concise - support for scientific computing are getting better all the time (matrix algebra libraries, built-in simd, safe concurrency) - it has a really friendly and active community - it’s production-ready: servo, the new rendering core in firefox, is built entirely in rust performance to start with, as a compiled language rust executes much faster than a (pseudo-)interpreted language like python or r; the price you pay for this is time spent compiling during development. however, having a compile step also allows the language to enforce certain guarantees, such as type-correctness and memory safety, which between them prevent whole classes of bugs from even being possible. unlike go (which, like many higher-level languages, uses a garbage collector), rust handles memory safety at compile time through the concepts of ownership and borrowing. these can take some getting used to and were a big source of frustration when i was first figuring out the language, but ultimately contribute to rust’s reliably-fast performance. performance can be unpredictable in a garbage-collected language because you can’t be sure when the gc is going to run and you need to understand it really well to stand a chance of optimising it if becomes a problem. on the other hand, code that has the potential to be unsafe will result in compilation errors in rust. there are a number of benchmarks (example) that show rust’s performance on a par with idiomatic c & c++ code, something that very few languages can boast. helpful error messages because beginner rust programmers often get compile errors, it’s really important that those errors are easy to interpret and fix, and rust is great at this. not only does it tell you what went wrong, but wherever possible it prints out your code annotated with arrows to show exactly where the error is, and makes specific suggestions how to fix the error which usually turn out to be correct. it also has a nice suite of warnings (things that don’t cause compilation to fail but may indicate bugs) that are just as informative, and this can be extended even further by using the clippy linting tool to further analyse your code. warning: unused variable: `y` --> hello.rs: : | | let y = x; | ^ | = note: #[warn(unused_variables)] on by default = note: to avoid this warning, consider using `_y` instead easy to integrate with other languages if you’re like me, you’ll probably only use a low-level language for performance-critical code that you can call from a high-level language, and this is an area where rust shines. most programmers will turn to c, c++ or fortran for this because they have a well established abi (application binary interface) which can be understood by languages like python and r . in rust, it’s trivial to make a c-compatible shared library, and the standard library includes extra features for working with c types. that also means that existing c code can be incrementally ported to rust: see remacs for an example. on top of this, there are projects like rust-cpython and pyo which provide macros and structures that wrap the python c api to let you build python modules in rust with minimal glue code; rustr does a similar job for r. nice language features rust has some really nice features, which let you write efficient, concise and correct code. several feel particularly comfortable as they remind me of similar things available in haskell, including: enums, a super-powered combination of c enums and unions (similar to haskell’s algebraic data types) that enable some really nice code with no runtime cost generics and traits that let you get more done with less code pattern matching, a kind of case statement that lets you extract parts of structs, tuples & enums and do all sorts of other clever things lazy computation based on an iterator pattern, for efficient processing of lists of things: you can do for item in list { ... } instead of the c-style use of an index , or you can use higher-order functions like map and filter functions/closures as first-class citizens scientific computing although it’s a general-purpose language and not designed specifically for scientific computing, rust’s support is improving all the time. there are some interesting matrix algebra libraries available, and built-in simd is incoming. the memory safety features also work to ensure thread safety, so it’s harder to write concurrency bugs. you should be able to use your favourite mpi implementation too, and there’s at least one attempt to portably wrap mpi in a more rust-like way. active development and friendly community one of the things you notice straight away is how active and friendly the rust community is. there are several irc channels on irc.mozilla.org including #rust-beginners, which is a great place to get help. the compiler is under constant but carefully-managed development, so that new features are landing all the time but without breaking existing code. and the fabulous cargo build tool and crates.io are enabling the rapid growth of a healthy ecosystem of open source libraries that you can use to write less code yourself. summary so, next time you need a compiled language to speed up hotspots in your code, try rust. i promise you won’t regret it! julia actually allows you to call c and fortran functions as a first-class language feature &#x a ;þ e; actually, since c++ there’s for (auto item : list) { ... } but still… &#x a ;þ e; reflections on #aoc trees reflected in a lake joshua reddekopp on unsplash it seems like ages ago, but way back in november i committed to completing advent of code. i managed it all, and it was fun! all of my code is available on github if you’re interested in seeing what i did, and i managed to get out a blog post for every one with a bit more commentary, which you can see in the series list above. how did i approach it? i’ve not really done any serious programming challenges before. i don’t get to write a lot of code at the moment, so all i wanted from aoc was an excuse to do some proper problem-solving. i never really intended to take a polyglot approach, though i did think that i might use mainly python with a bit of haskell. in the end, though, i used: python (× ); haskell (× ); rust (× ); go; c++; ruby; julia; and coconut. for the most part, my priorities were getting the right answer, followed by writing readable code. i didn’t specifically focus on performance but did try to avoid falling into traps that i knew about. what did i learn? i found python the easiest to get on with: it’s the language i know best and although i can’t always remember exact method names and parameters i know what’s available and where to look to remind myself, as well as most of the common idioms and some performance traps to avoid. python was therefore the language that let me focus most on solving the problem itself. c++ and ruby were more challenging, and it was harder to write good idiomatic code but i can still remember quite a lot. haskell i haven’t used since university, and just like back then i really enjoyed working out how to solve problems in a functional style while still being readable and efficient (not always something i achieved…). i learned a lot about core haskell concepts like monads & functors, and i’m really amazed by the way the haskell community and ecosystem has grown up in the last decade. i also wanted to learn at least one modern, memory-safe compiled language, so i tried both go and rust. both seem like useful languages, but rust really intrigued me with its conceptual similarities to both haskell and c++ and its promise of memory safety without a garbage collector. i struggled a lot initially with the “borrow checker” (the component that enforces memory safety at compile time) but eventually started thinking in terms of ownership and lifetimes after which things became easier. the rust community seems really vibrant and friendly too. what next? i really want to keep this up, so i’m going to look out some more programming challenges (project euler looks interesting). it turns out there’s a regular code dojo meetup in leeds, so hopefully i’ll try that out too. i’d like to do more realistic data-science stuff, so i’ll be taking a closer look at stuff like kaggle too, and figuring out how to do a bit more analysis at work. i’m also feeling motivated to find an open source project to contribute to and/or release a project of my own, so we’ll see if that goes anywhere! i’ve always found the advice to “scratch your own itch” difficult to follow because everything i think of myself has already been done better. most of the projects i use enough to want to contribute to tend to be pretty well developed with big communities and any bugs that might be accessible to me will be picked off and fixed before i have a chance to get started. maybe it’s time to get over myself and just reimplement something that already exists, just for the fun of it! the halting problem — python — #adventofcode day today’s challenge, takes us back to a bit of computing history: a good old-fashioned turing machine. → full code on github !!! commentary today’s challenge was a nice bit of nostalgia, taking me back to my university days learning about the theory of computing. turing machines are a classic bit of computing theory, and are provably able to compute any value that is possible to compute: a value is computable if and only if a turing machine can be written that computes it (though in practice anything non-trivial is mind-bendingly hard to write as a tm). a bit of a library-fest today, compared to other days! from collections import deque, namedtuple from collections.abc import iterator from tqdm import tqdm import re import fileinput as fi these regular expressions are used to parse the input that defines the transition table for the machine. re_istate = re.compile(r&# ;begin in state (?p<state>\w+)\.&# ;) re_runtime = re.compile( r&# ;perform a diagnostic checksum after (?p<steps>\d+) steps.&# ;) re_statetrans = re.compile( r&# ;in state (?p<state>\w+):\n&# ; r&# ; if the current value is (?p<read >\d+):\n&# ; r&# ; - write the value (?p<write >\d+)\.\n&# ; r&# ; - move one slot to the (?p<move >left|right).\n&# ; r&# ; - continue with state (?p<next >\w+).\n&# ; r&# ; if the current value is (?p<read >\d+):\n&# ; r&# ; - write the value (?p<write >\d+)\.\n&# ; r&# ; - move one slot to the (?p<move >left|right).\n&# ; r&# ; - continue with state (?p<next >\w+).&# ;) move = {&# ;left&# ;: - , &# ;right&# ;: } a namedtuple to provide some sugar when using a transition rule. rule = namedtuple(&# ;rule&# ;, &# ;write move next_state&# ;) the turingmachine class does all the work. class turingmachine: def __init__(self, program=none): self.tape = deque() self.transition_table = {} self.state = none self.runtime = self.steps = self.pos = self.offset = if program is not none: self.load(program) def __str__(self): return f&# ;current: {self.state}; steps: {self.steps} of {self.runtime}&# ; some jiggery-pokery to allow us to use self[pos] to reference an infinite tape. def __getitem__(self, i): i += self.offset if i < or i >= len(self.tape): return else: return self.tape[i] def __setitem__(self, i, x): i += self.offset if i >= and i < len(self.tape): self.tape[i] = x elif i == - : self.tape.appendleft(x) self.offset += elif i == len(self.tape): self.tape.append(x) else: raise indexerror(&# ;tried to set position off end of tape&# ;) parse the program and set up the transtion table. def load(self, program): if isinstance(program, iterator): program = &# ;&# ;.join(program) match = re_istate.search(program) self.state = match[&# ;state&# ;] match = re_runtime.search(program) self.runtime = int(match[&# ;steps&# ;]) for match in re_statetrans.finditer(program): self.transition_table[match[&# ;state&# ;]] = { int(match[&# ;read &# ;]): rule(write=int(match[&# ;write &# ;]), move=move[match[&# ;move &# ;]], next_state=match[&# ;next &# ;]), int(match[&# ;read &# ;]): rule(write=int(match[&# ;write &# ;]), move=move[match[&# ;move &# ;]], next_state=match[&# ;next &# ;]), } run the program for the required number of steps (given by self.runtime). tqdm isn’t in the standard library but it should be: it shows a lovely text-mode progress bar as we go. def run(self): for _ in tqdm(range(self.runtime), desc=&# ;running&# ;, unit=&# ;steps&# ;, unit_scale=true): read = self[self.pos] rule = self.transition_table[self.state][read] self[self.pos] = rule.write self.pos += rule.move self.state = rule.next_state calculate the “diagnostic checksum” required for the answer. @property def checksum(self): return sum(self.tape) aaand go! machine = turingmachine(fi.input()) machine.run() print(&# ;checksum:&# ;, machine.checksum) electromagnetic moat — rust — #adventofcode day today’s challenge, the penultimate, requires us to build a bridge capable of reaching across to the cpu, our final destination. → full code on github !!! commentary we have a finite number of components that fit together in a restricted way from which to build a bridge, and we have to work out both the strongest and the longest bridge we can build. the most obvious way to do this is to recursively build every possible bridge and select the best, but that’s an o(n!) algorithm that could blow up quickly, so might as well go with a nice fast language! might have to try this in haskell too, because it’s the type of algorithm that lends itself naturally to a pure functional approach. i feel like i've applied some of the things i've learned in previous challenges i used rust for, and spent less time mucking about with ownership, and made better use of various language features, including structs and iterators. i'm rather pleased with how my learning of this language is progressing. i'm definitely overusing `option.unwrap` at the moment though: this is a lazy way to deal with `option` results and will panic if the result is not what's expected. i'm not sure whether i need to be cloning the components `vector` either, or whether i could just be passing iterators around. first, we import some bits of standard library and define some data types. the bridgeresult struct lets us use the same algorithm for both parts of the challenge and simply change the value used to calculate the maximum. use std::io; use std::fmt; use std::io::bufread; #[derive(debug, copy, clone, partialeq, eq, hash)] struct component(u , u ); #[derive(debug, copy, clone, default)] struct bridgeresult { strength: u , length: u , } impl component { fn from_str(s: &str) -> component { let parts: vec<&str> = s.split(&# ;/&# ;).collect(); assert!(parts.len() == ); component(parts[ ].parse().unwrap(), parts[ ].parse().unwrap()) } fn fits(self, port: u ) -> bool { self. == port || self. == port } fn other_end(self, port: u ) -> u { if self. == port { return self. ; } else if self. == port { return self. ; } else { panic!(&# ;{} doesn&# ;t fit port {}&# ;, self, port); } } fn strength(self) -> u { self. as u + self. as u } } impl fmt::display for bridgeresult { fn fmt(&self, f: &mut fmt::formatter) -> fmt::result { write!(f, &# ;(s: {}, l: {})&# ;, self.strength, self.length) } } best_bridge calculates the length and strength of the “best” bridge that can be built from the remaining components and fits the required port. whether this is based on strength or length is given by the key parameter, which is passed to iter.max_by_key. fn best_bridge<f>(port: u , key: &f, components: &vec<component>) -> option<bridgeresult> where f: fn(&bridgeresult) -> u { if components.len() == { return none; } components.iter() .filter(|c| c.fits(port)) .map(|c| { let b = best_bridge(c.other_end(port), key, &components.clone().into_iter() .filter(|x| x != c).collect()) .unwrap_or_default(); bridgeresult{strength: c.strength() + b.strength, length: + b.length} }) .max_by_key(key) } now all that remains is to read the input and calculate the result. i was rather pleasantly surprised to find that in spite of my pessimistic predictions about efficiency, when compiled with optimisations turned on this terminates in less than s on my laptop. fn main() { let stdin = io::stdin(); let components: vec<_> = stdin.lock() .lines() .map(|l| component::from_str(&l.unwrap())) .collect(); match best_bridge( , &|b: &bridgeresult| b.strength, &components) { some(b) => println!(&# ;strongest bridge is {}&# ;, b), none => println!(&# ;no strongest bridge found&# ;) }; match best_bridge( , &|b: &bridgeresult| b.length, &components) { some(b) => println!(&# ;longest bridge is {}&# ;, b), none => println!(&# ;no longest bridge found&# ;) }; } coprocessor conflagration — haskell — #adventofcode day today’s challenge requires us to understand why a coprocessor is working so hard to perform an apparently simple calculation. → full code on github !!! commentary today’s problem is based on an assembly-like language very similar to day , so i went back and adapted my code from that, which works well for the first part. i’ve also incorporated some advice from /r/haskell, and cleaned up all warnings shown by the -wall compiler flag and the hlint tool. part requires the algorithm to run with much larger inputs, and since some analysis shows that it's an `o(n^ )` algorithm it gets intractible pretty fast. there are several approaches to this. first up, if you have a fast enough processor and an efficient enough implementation i suspect that the simulation would probably terminate eventually, but that would likely still take hours: not good enough. i also thought about doing some peephole optimisations on the instructions, but the last time i did compiler optimisation was my degree so i wasn't really sure where to start. what i ended up doing was actually analysing the input code by hand to figure out what it was doing, and then just doing that calculation in a sensible way. i'd like to say i managed this on my own (and i ike to think i would have) but i did get some tips on [/r/adventofcode](https://reddit.com/r/adventofcode). the majority of this code is simply a cleaned-up version of day , with some tweaks to accommodate the different instruction set: module main where import qualified data.vector as v import qualified data.map.strict as m import control.monad.state.strict import text.parsercombinators.parsec hiding (state) type register = char type value = int type argument = either value register data instruction = set register argument | sub register argument | mul register argument | jnz argument argument deriving show type program = v.vector instruction data result = cont | halt deriving (eq, show) type registers = m.map char int data machine = machine { dregisters :: registers , dptr :: !int , dmulcount :: !int , dprogram :: program } instance show machine where show d = show (dregisters d) ++ &# ; @&# ; ++ show (dptr d) ++ &# ; ×&# ; ++ show (dmulcount d) defaultmachine :: machine defaultmachine = machine m.empty v.empty type machinestate = state machine program :: genparser char st program program = do instructions <- endby instruction eol return $ v.fromlist instructions where instruction = try (regop &# ;set&# ; set) <|> regop &# ;sub&# ; sub <|> regop &# ;mul&# ; mul <|> jump &# ;jnz&# ; jnz regop n c = do string n >> spaces val <- oneof &# ;abcdefgh&# ; secondarg c val jump n c = do string n >> spaces val <- regorval secondarg c val secondarg c val = do spaces val <- regorval return $ c val val regorval = register <|> value register = do name <- lower return $ right name value = do val <- many $ oneof &# ;- &# ; return $ left $ read val eol = char &# ;\n&# ; parseprogram :: string -> either parseerror program parseprogram = parse program &# ;&# ; getreg :: char -> machinestate int getreg r = do st <- get return $ m.findwithdefault r (dregisters st) putreg :: char -> int -> machinestate () putreg r v = do st <- get let current = dregisters st new = m.insert r v current put $ st { dregisters = new } modreg :: (int -> int -> int) -> char -> argument -> machinestate () modreg op r v = do u <- getreg r v&# ; <- getregorval v putreg r (u `op` v&# ;) incptr getregorval :: argument -> machinestate int getregorval = either return getreg addptr :: int -> machinestate () addptr n = do st <- get put $ st { dptr = n + dptr st } incptr :: machinestate () incptr = addptr execinst :: instruction -> machinestate () execinst (set reg val) = do newval <- getregorval val putreg reg newval incptr execinst (mul reg val) = do result <- modreg (*) reg val st <- get put $ st { dmulcount = + dmulcount st } return result execinst (sub reg val) = modreg (-) reg val execinst (jnz val val ) = do test <- getregorval val jump <- if test /= then getregorval val else return addptr jump execnext :: machinestate result execnext = do st <- get let prog = dprogram st p = dptr st if p >= length prog then return halt else do execinst (prog v.! p) return cont rununtilterm :: machinestate () rununtilterm = do result <- execnext unless (result == halt) rununtilterm this implements the actual calculation: the number of non-primes between (for my input) and : optimisedcalc :: int -> int -> int -> int optimisedcalc a b k = sum $ map (const ) $ filter notprime [a,a+k..b] where notprime n = elem $ map (mod n) [ ..(floor $ sqrt (fromintegral n :: double))] main :: io () main = do input <- getcontents case parseprogram input of right prog -> do let c = defaultmachine { dprogram = prog } (_, c&# ;) = runstate rununtilterm c putstrln $ show (dmulcount c&# ;) ++ &# ; multiplications made&# ; putstrln $ &# ;calculation result: &# ; ++ show (optimisedcalc ) left e -> print e sporifica virus — rust — #adventofcode day today’s challenge has us helping to clean up (or spread, i can’t really tell) an infection of the “sporifica” virus. → full code on github !!! commentary i thought i’d have another play with rust, as its haskell-like features resonate with me at the moment. i struggled quite a lot with the rust concepts of ownership and borrowing, and this is a cleaned-up version of the code based on some good advice from the folks on /r/rust. use std::io; use std::env; use std::io::bufread; use std::collections::hashmap; #[derive(partialeq, clone, copy, debug)] enum direction {up, right, down, left} #[derive(partialeq, clone, copy, debug)] enum infection {clean, weakened, infected, flagged} use self::direction::*; use self::infection::*; type grid = hashmap<(isize, isize), infection>; fn turn_left(d: direction) -> direction { match d {up => left, right => up, down => right, left => down} } fn turn_right(d: direction) -> direction { match d {up => right, right => down, down => left, left => up} } fn turn_around(d: direction) -> direction { match d {up => down, right => left, down => up, left => right} } fn make_move(d: direction, x: isize, y: isize) -> (isize, isize) { match d { up => (x- , y), right => (x, y+ ), down => (x+ , y), left => (x, y- ), } } fn basic_step(grid: &mut grid, x: &mut isize, y: &mut isize, d: &mut direction) -> usize { let mut infect = ; let current = match grid.get(&(*x, *y)) { some(v) => *v, none => clean, }; if current == infected { *d = turn_right(*d); } else { *d = turn_left(*d); infect = ; }; grid.insert((*x, *y), match current { clean => infected, infected => clean, x => panic!(&# ;unexpected infection state {:?}&# ;, x), }); let new_pos = make_move(*d, *x, *y); *x = new_pos. ; *y = new_pos. ; infect } fn nasty_step(grid: &mut grid, x: &mut isize, y: &mut isize, d: &mut direction) -> usize { let mut infect = ; let new_state: infection; let current = match grid.get(&(*x, *y)) { some(v) => *v, none => infection::clean, }; match current { clean => { *d = turn_left(*d); new_state = weakened; }, weakened => { new_state = infected; infect = ; }, infected => { *d = turn_right(*d); new_state = flagged; }, flagged => { *d = turn_around(*d); new_state = clean; } }; grid.insert((*x, *y), new_state); let new_pos = make_move(*d, *x, *y); *x = new_pos. ; *y = new_pos. ; infect } fn virus_infect<f>(mut grid: grid, mut step: f, mut x: isize, mut y: isize, mut d: direction, n: usize) -> usize where f: fnmut(&mut grid, &mut isize, &mut isize, &mut direction) -> usize, { ( ..n).map(|_| step(&mut grid, &mut x, &mut y, &mut d)) .sum() } fn main() { let args: vec<string> = env::args().collect(); let n_basic: usize = args[ ].parse().unwrap(); let n_nasty: usize = args[ ].parse().unwrap(); let stdin = io::stdin(); let lines: vec<string> = stdin.lock() .lines() .map(|x| x.unwrap()) .collect(); let mut grid: grid = hashmap::new(); let x = (lines.len() / ) as isize; let y = (lines[ ].len() / ) as isize; for (i, line) in lines.iter().enumerate() { for (j, c) in line.chars().enumerate() { grid.insert((i as isize, j as isize), match c {&# ;#&# ; => infected, _ => clean}); } } let basic_steps = virus_infect(grid.clone(), basic_step, x , y , up, n_basic); println!(&# ;basic: infected {} times&# ;, basic_steps); let nasty_steps = virus_infect(grid, nasty_step, x , y , up, n_nasty); println!(&# ;nasty: infected {} times&# ;, nasty_steps); } fractal art — python — #adventofcode day today’s challenge asks us to assist an artist building fractal patterns from a rulebook. → full code on github !!! commentary another fairly straightforward algorithm: the really tricky part was breaking the pattern up into chunks and rejoining it again. i could probably have done that more efficiently, and would have needed to if i had to go for a few more iterations and the grid grows with every iteration and gets big fast. still behind on the blog posts… import fileinput as fi from math import sqrt from functools import reduce, partial import operator initial_pattern = (( , , ), ( , , ), ( , , )) decode = [&# ;.&# ;, &# ;#&# ;] encode = {&# ;.&# ;: , &# ;#&# ;: } concat = partial(reduce, operator.concat) def rotate(p): size = len(p) return tuple(tuple(p[i][j] for i in range(size)) for j in range(size - , - , - )) def flip(p): return tuple(p[i] for i in range(len(p) - , - , - )) def permutations(p): yield p yield flip(p) for _ in range( ): p = rotate(p) yield p yield flip(p) def print_pattern(p): print(&# ;-&# ; * len(p)) for row in p: print(&# ; &# ;.join(decode[x] for x in row)) print(&# ;-&# ; * len(p)) def build_pattern(s): return tuple(tuple(encode[c] for c in row) for row in s.split(&# ;/&# ;)) def build_pattern_book(lines): book = {} for line in lines: source, target = line.strip().split(&# ; => &# ;) for rotation in permutations(build_pattern(source)): book[rotation] = build_pattern(target) return book def subdivide(pattern): size = if len(pattern) % == else n = len(pattern) // size return (tuple(tuple(pattern[i][j] for j in range(y * size, (y + ) * size)) for i in range(x * size, (x + ) * size)) for x in range(n) for y in range(n)) def rejoin(parts): n = int(sqrt(len(parts))) size = len(parts[ ]) return tuple(concat(parts[i + k][j] for i in range(n)) for k in range( , len(parts), n) for j in range(size)) def enhance_once(p, book): return rejoin(tuple(book[part] for part in subdivide(p))) def enhance(p, book, n, progress=none): for _ in range(n): p = enhance_once(p, book) return p book = build_pattern_book(fi.input()) intermediate_pattern = enhance(initial_pattern, book, ) print(&# ;after iterations:&# ;, sum(sum(row) for row in intermediate_pattern)) final_pattern = enhance(intermediate_pattern, book, ) print(&# ;after iterations:&# ;, sum(sum(row) for row in final_pattern)) particle swarm — python — #adventofcode day today’s challenge finds us simulating the movements of particles in space. → full code on github !!! commentary back to python for this one, another relatively straightforward simulation, although it’s easier to calculate the answer to part than to simulate. import fileinput as fi import numpy as np import re first we parse the input into d arrays: using numpy enables us to do efficient arithmetic across the whole set of particles in one go. particle_re = re.compile(r&# ;p=<(-?\d+),(-?\d+),(-?\d+)>, &# ; r&# ;v=<(-?\d+),(-?\d+),(-?\d+)>, &# ; r&# ;a=<(-?\d+),(-?\d+),(-?\d+)>&# ;) def parse_input(lines): x = [] v = [] a = [] for l in lines: m = particle_re.match(l) x.append([int(x) for x in m.group( , , )]) v.append([int(x) for x in m.group( , , )]) a.append([int(x) for x in m.group( , , )]) return (np.arange(len(x)), np.array(x), np.array(v), np.array(a)) i, x, v, a = parse_input(fi.input()) now we can calculate which particle will be closest to the origin in the long-term: this is simply the particle with the smallest acceleration. it turns out that several have the same acceleration, so of these, the one we want is the one with the lowest starting velocity. this is only complicated slightly by the need to get the number of the particle rather than its other information, hence the need to use numpy.argmin. a_abs = np.sum(np.abs(a), axis= ) a_min = np.min(a_abs) a_i = np.squeeze(np.argwhere(a_abs == a_min)) closest = i[a_i[np.argmin(np.sum(np.abs(v[a_i]), axis= ))]] print(&# ;closest: &# ;, closest) now we define functions to simulate collisions between particles. we have to use the return_index and return_counts options to numpy.unique to be able to get rid of all the duplicate positions (the standard usage is to keep one of each duplicate). def resolve_collisions(x, v, a): (_, i, c) = np.unique(x, return_index=true, return_counts=true, axis= ) i = i[c == ] return x[i], v[i], a[i] the termination criterion for this loop is an interesting aspect: the most robust to my mind seems to be that eventually the particles will end up sorted in order of their initial acceleration in terms of distance from the origin, so you could check for this but that’s pretty computationally expensive. in the end, all that was needed was a bit of trial and error: terminating arbitrarily after , iterations seems to work! in fact, all the collisions are over after about iterations for my input but there was always the possibility that two particles with very slightly different accelerations would eventually intersect much later. def simulate_collisions(x, v, a, iterations= ): for _ in range(iterations): v += a x += v x, v, a = resolve_collisions(x, v, a) return len(x) print(&# ;remaining particles: &# ;, simulate_collisions(x, v, a)) a series of tubes — rust — #adventofcode day today’s challenge asks us to help a network packet find its way. → full code on github !!! commentary today’s challenge was fairly straightforward, following an ascii art path, so i thought i’d give rust another try. i’m a bit behind on the blog posts, so i’m presenting the code below without any further commentary. i’m not really convinced this is good idiomatic rust, and it was interesting turning a set of strings into a d array of characters because there are both u (byte) and char types to deal with. use std::io; use std::io::bufread; const alpha: &&# ;static str = &# ;abcdefghijklmnopqrstuvwxyz&# ;; fn change_direction(dia: &vec<vec<u >>, x: usize, y: usize, dx: &mut i , dy: &mut i ) { assert_eq!(dia[x][y], b&# ;+&# ;); if dx.abs() == { *dx = ; if y + < dia[x].len() && (dia[x][y + ] == b&# ;-&# ; || alpha.contains(dia[x][y + ] as char)) { *dy = ; } else if dia[x][y - ] == b&# ;-&# ; || alpha.contains(dia[x][y - ] as char) { *dy = - ; } else { panic!(&# ;huh? {} {}&# ;, dia[x][y+ ] as char, dia[x][y- ] as char); } } else { *dy = ; if x + < dia.len() && (dia[x + ][y] == b&# ;|&# ; || alpha.contains(dia[x + ][y] as char)) { *dx = ; } else if dia[x - ][y] == b&# ;|&# ; || alpha.contains(dia[x - ][y] as char) { *dx = - ; } else { panic!(&# ;huh?&# ;); } } } fn follow_route(dia: vec<vec<u >>) -> (string, i ) { let mut x: i = ; let mut y: i ; let mut dx: i = ; let mut dy: i = ; let mut result = string::new(); let mut steps = ; match dia[ ].iter().position(|x| *x == b&# ;|&# ;) { some(i) => y = i as i , none => panic!(&# ;could not find &# ;|&# ; in first row&# ;), } loop { x += dx; y += dy; match dia[x as usize][y as usize] { b&# ;a&# ;...b&# ;z&# ; => result.push(dia[x as usize][y as usize] as char), b&# ;+&# ; => change_direction(&dia, x as usize, y as usize, &mut dx, &mut dy), b&# ; &# ; => return (result, steps), _ => (), } steps += ; } } fn main() { let stdin = io::stdin(); let lines: vec<vec<u >> = stdin.lock().lines() .map(|l| l.unwrap().into_bytes()) .collect(); let result = follow_route(lines); println!(&# ;route: {}&# ;, result. ); println!(&# ;steps: {}&# ;, result. ); } duet — haskell — #adventofcode day today’s challenge introduces a type of simplified assembly language that includes instructions for message-passing. first we have to simulate a single program (after humorously misinterpreting the snd and rcv instructions as “sound” and “recover”), but then we have to simulate two concurrent processes and the message passing between them. → full code on github !!! commentary well, i really learned a lot from this one! i wanted to get to grips with more complex stuff in haskell and this challenge seemed like an excellent opportunity to figure out a) parsing with the parsec library and b) using the state monad to keep the state of the simulator. as it turned out, that wasn't all i'd learned: i also ran into an interesting situation whereby lazy evaluation was creating an infinite loop where there shouldn't be one, so i also had to learn how to selectively force strict evaluation of values. i'm pretty sure this isn't the best haskell in the world, but i'm proud of it. first we have to import a bunch of stuff to use later, but also notice the pragma on the first line which instructs the compiler to enable the bangpatterns language extension, which will be important later. {-# language bangpatterns #-} module main where import qualified data.vector as v import qualified data.map.strict as m import data.list import data.either import data.maybe import control.monad.state.strict import control.monad.loops import text.parsercombinators.parsec hiding (state) first up we define the types that will represent the program code itself. data duetval = reg char | val int deriving show type duetqueue = [int] data duetinstruction = snd duetval | rcv duetval | jgz duetval duetval | set duetval duetval | add duetval duetval | mul duetval duetval | mod duetval duetval deriving show type duetprogram = v.vector duetinstruction next we define the types to hold the machine state, which includes: registers, instruction pointer, send & receive buffers and the program code, plus a counter of the number of sends made (to provide the solution). type duetregisters = m.map char int data duet = duet { dregisters :: duetregisters , dptr :: int , dsendcount :: int , drcvbuf :: duetqueue , dsndbuf :: duetqueue , dprogram :: duetprogram } instance show duet where show d = show (dregisters d) ++ &# ; @&# ; ++ show (dptr d) ++ &# ; s&# ; ++ show (dsndbuf d) ++ &# ; r&# ; ++ show (drcvbuf d) defaultduet = duet m.empty [] [] v.empty type duetstate = state duet program is a parser built on the cool parsec library to turn the program text into a haskell format that we can work with, a vector of instructions. yes, using a full-blown parser is overkill here (it would be much simpler just to split each line on whitespace, but i wanted to see how parsec works. i’m using vector here because we need random access to the instruction list, which is much more efficient with vector: o( ) compared with the o(n) of the built in haskell list ([]) type. parseprogram applies the parser to a string and returns the result. program :: genparser char st duetprogram program = do instructions <- endby instruction eol return $ v.fromlist instructions where instruction = try (onearg &# ;snd&# ; snd) <|> onearg &# ;rcv&# ; rcv <|> twoarg &# ;set&# ; set <|> twoarg &# ;add&# ; add <|> try (twoarg &# ;mul&# ; mul) <|> twoarg &# ;mod&# ; mod <|> twoarg &# ;jgz&# ; jgz onearg n c = do string n >> spaces val <- regorval return $ c val twoarg n c = do string n >> spaces val <- regorval spaces val <- regorval return $ c val val regorval = register <|> value register = do name <- lower return $ reg name value = do val <- many $ oneof &# ;- &# ; return $ val $ read val eol = char &# ;\n&# ; parseprogram :: string -> either parseerror duetprogram parseprogram = parse program &# ;&# ; next up we have some utility functions that sit in the duetstate monad we defined above and perform common manipulations on the state: getting/setting/updating registers, updating the instruction pointer and sending/receiving messages via the relevant queues. getreg :: char -> duetstate int getreg r = do st <- get return $ m.findwithdefault r (dregisters st) putreg :: char -> int -> duetstate () putreg r v = do st <- get let current = dregisters st new = m.insert r v current put $ st { dregisters = new } modreg :: (int -> int -> int) -> char -> duetval -> duetstate bool modreg op r v = do u <- getreg r v&# ; <- getregorval v putreg r (u `op` v&# ;) incptr return false getregorval :: duetval -> duetstate int getregorval (reg r) = getreg r getregorval (val v) = return v addptr :: int -> duetstate () addptr n = do st <- get put $ st { dptr = n + dptr st } incptr = addptr send :: int -> duetstate () send v = do st <- get put $ st { dsndbuf = (dsndbuf st ++ [v]), dsendcount = dsendcount st + } recv :: duetstate (maybe int) recv = do st <- get case drcvbuf st of (x:xs) -> do put $ st { drcvbuf = xs } return $ just x [] -> return nothing execinst implements the logic for each instruction. it returns false as long as the program can continue, but true if the program tries to receive from an empty buffer. execinst :: duetinstruction -> duetstate bool execinst (set (reg reg) val) = do newval <- getregorval val putreg reg newval incptr return false execinst (mul (reg reg) val) = modreg (*) reg val execinst (add (reg reg) val) = modreg (+) reg val execinst (mod (reg reg) val) = modreg mod reg val execinst (jgz val val ) = do st <- get test <- getregorval val jump <- if test > then getregorval val else return addptr jump return false execinst (snd val) = do v <- getregorval val send v st <- get incptr return false execinst (rcv (reg r)) = do st <- get v <- recv handle v where handle :: maybe int -> duetstate bool handle (just x) = putreg r x >> incptr >> return false handle nothing = return true execinst x = error $ &# ;execinst not implemented yet for &# ; ++ show x execnext looks up the next instruction and executes it. rununtilwait runs the program until execnext returns true to signal the wait state has been reached. execnext :: duetstate bool execnext = do st <- get let prog = dprogram st p = dptr st if p >= length prog then return true else execinst (prog v.! p) rununtilwait :: duetstate () rununtilwait = do waiting <- execnext unless waiting rununtilwait runtwoprograms handles the concurrent running of two programs, by running first one and then the other to a wait state, then swapping each program’s send buffer to the other’s receive buffer before repeating. if you look carefully, you’ll see a “bang” (!) before the two arguments of the function: runtwoprograms !d !d . haskell is a lazy language and usually doesn’t evaluate a computation until you ask for a result, instead carrying around a “thunk” or plan for how to carry out the computation. sometimes that can be a problem because the amount of memory your program is using can explode unnecessarily as a long computation turns into a large thunk which isn’t evaluated until the very end. that’s not the problem here though. what happens here without the bangs is another side-effect of laziness. the exit condition of this recursive function is that a deadlock has been reached: both programs are waiting to receive, but neither has sent anything, so neither can ever continue. the check for this is (null $ dsndbuf d ') && (null $ dsndbuf d '). as long as the first program has something in its send buffer, the test fails without ever evaluating the second part, which means the result d ' of running the second program is never needed. the function immediately goes to the recursive case and tries to continue the first program again, which immediately returns because it’s still waiting to receive. the same thing happens again, and the result is that instead of running the second program to obtain something for the first to receive, we get into an infinite loop trying and failing to continue the first program. the bang forces both d and d to be evaluated at the point we recurse, which forces the rest of the computation: running the second program and swapping the send/receive buffers. with that, the evaluation proceeds correctly and we terminate with a result instead of getting into an infinite loop! runtwoprograms :: duet -> duet -> (int, int) runtwoprograms !d !d | (null $ dsndbuf d &# ;) && (null $ dsndbuf d &# ;) = (dsendcount d &# ;, dsendcount d &# ;) | otherwise = runtwoprograms d &# ;&# ; d &# ;&# ; where (_, d &# ;) = runstate rununtilwait d (_, d &# ;) = runstate rununtilwait d d &# ;&# ; = d &# ; { dsndbuf = [], drcvbuf = dsndbuf d &# ; } d &# ;&# ; = d &# ; { dsndbuf = [], drcvbuf = dsndbuf d &# ; } all that remains to be done now is to run the programs and see how many messages were sent before the deadlock. main = do prog <- fmap (fromright v.empty . parseprogram) getcontents let d = defaultduet { dprogram = prog, dregisters = m.fromlist [(&# ;p&# ;, )] } d = defaultduet { dprogram = prog, dregisters = m.fromlist [(&# ;p&# ;, )] } (send , send ) = runtwoprograms d d putstrln $ &# ;program sent &# ; ++ show send ++ &# ; messages&# ; putstrln $ &# ;program sent &# ; ++ show send ++ &# ; messages&# ; spinlock — rust/python — #adventofcode day in today’s challenge we deal with a monstrous whirlwind of a program, eating up cpu and memory in equal measure. → full code on github (and python driver script) !!! commentary one of the things i wanted from aoc was an opportunity to try out some popular languages that i don’t currently know, including the memory-safe, strongly-typed compiled languages go and rust. realistically though, i’m likely to continue doing most of my programming in python, and use one of these other languages when it has better tools or i need the extra speed. in which case, what i really want to know is how i can call functions written in go or rust from python. i thought i'd try rust first, as it seems to be designed to be c-compatible and that makes it easy to call from python using [`ctypes`](https://docs.python.org/ . /library/ctypes.html). part was another straightforward simulation: translate what the "spinlock" monster is doing into code and run it. it was pretty obvious from the story of this challenge and experience of the last few days that this was going to be another one where the simulation is too computationally expensive for part two, which turns out to be correct. so, first thing to do is to implement the meat of the solution in rust. spinlock solves the first part of the problem by doing exactly what the monster does. since we only have to go up to iterations, this is very tractable. the last number we insert is , so we just return the number immediately after that. #[no_mangle] pub extern fn spinlock(n: usize, skip: usize) -> i { let mut buffer: vec<i > = vec::with_capacity(n+ ); buffer.push( ); buffer.push( ); let mut pos = ; for i in ..n+ { pos = (pos + skip + ) % buffer.len(); buffer.insert(pos, i as i ); } pos = (pos + ) % buffer.len(); return buffer[pos]; } for the second part, we have to do million iterations instead, which is a lot. given that every time you insert an item in the list it has to move up all the elements after that position, i’m pretty sure the algorithm is o(n^ ), so it’s going to take a lot longer than , ish times the first part. thankfully, we don’t need to build the whole list, just keep track of where is and what number is immediately after it. there may be a closed-form solution to simply calculate the result, but i couldn’t think of it and this is good enough. #[no_mangle] pub extern fn spinlock (n: usize, skip: usize) -> i { let mut pos = ; let mut pos_ = ; let mut after_ = ; for i in ..n+ { pos = (pos + skip + ) % i; if pos == pos_ + { after_ = i; } if pos <= pos_ { pos_ += ; } } return after_ as i ; } now it’s time to call this code from python. notice the #[no_mangle] pragmas and pub extern declarations for each function above, which are required to make sure the functions are exported in a c-compatible way. we can build this into a shared library like this: rustc --crate-type=cdylib -o spinlock.so -spinlock.rs the python script is as simple as loading this library, reading the puzzle input from the command line and calling the functions. the ctypes module does a lot of magic so that we don’t have to worry about converting from python types to native types and back again. import ctypes import sys lib = ctypes.cdll.loadlibrary(&# ;./spinlock.so&# ;) skip = int(sys.argv[ ]) print(&# ;part :&# ;, lib.spinlock( , skip)) print(&# ;part :&# ;, lib.spinlock ( _ _ , skip)) this is a toy example as far as calling rust from python is concerned, but it’s worth noting that already we can play with the parameters to the two rust functions without having to recompile. for more serious work, i’d probably be looking at something like pyo to make a proper python module. looks like there’s also a very early rust numpy integration for integrating numerical stuff. you can also do the same thing from julia, which has a ccall function built in: ccall((:spinlock, &# ;./spinlock.so&# ;), int , (uint , uint ), , ) my next thing to try might be haskell → python though… permutation promenade — julia — #adventofcode day today’s challenge rather appeals to me as a folk dancer, because it describes a set of instructions for a dance and asks us to work out the positions of the dancing programs after each run through the dance. → full code on github !!! commentary so, part is pretty straight forward: parse the set of instructions, interpret them and keep track of the dancer positions as you go. one time through the dance. however, part asks for the positions after billion (yes, that’s , , , ) times through the dance. in hindsight i should have immediately become suspicious, but i thought i’d at least try the brute force approach first because it was simpler to code. so i give it a try, and after waiting for a while, having a cup of tea etc. it still hasn't terminated. i try reducing the number of iterations to , . now it terminates, but takes about seconds. a spot of arithmetic suggests that running the full version will take a little over years. there must be a better way than that! i'm a little embarassed that i didn't spot the solution immediately (blaming julia) and tried again in python to see if i could get it to terminate quicker. when that didn't work i had to think again. a little further investigation with a while loop shows that in fact the dance position repeats (in the case of my input) every times. after that it becomes much quicker! oh, and it was time for a new language, so i wasted some extra time working out the quirks of [julia][]. first, a function to evaluate a single move — for neatness, this dispatches to a dedicated function depending on the type of move, although this isn’t really necessary to solve the challenge. ending a function name with a bang (!) is a julia convention to indicate that it has side-effects. function eval_move!(move, dancers) move_type = move[ ] params = move[ :end] if move_type == &# ;s&# ; # spin eval_spin!(params, dancers) elseif move_type == &# ;x&# ; # exchange eval_exchange!(params, dancers) elseif move_type == &# ;p&# ; # partner swap eval_partner!(params, dancers) end end these take care of the individual moves. parsing the parameters from a string every single time probably isn’t ideal, but as it turns out, that optimisation isn’t really necessary. note the + in eval_exchange!, which is necessary because julia is one of those crazy languages where indexes start from instead of . these actions are pretty nice to implement, because julia has circshift as a builtin to rotate a list, and allows you to assign to list slices and swap values in place with a single statement. function eval_spin!(params, dancers) shift = parse(int, params) dancers[ :end] = circshift(dancers, shift) end function eval_exchange!(params, dancers) i, j = map(x -> parse(int, x) + , split(params, &# ;/&# ;)) dancers[i], dancers[j] = dancers[j], dancers[i] end function eval_partner!(params, dancers) a, b = split(params, &# ;/&# ;) ia = findfirst([x == a for x in dancers]) ib = findfirst([x == b for x in dancers]) dancers[ia], dancers[ib] = b, a end dance! takes a list of moves and takes the dances once through the dance. function dance!(moves, dancers) for m in moves eval_move!(m, dancers) end end to solve part , we simply need to read the moves in, set up the initial positions of the dances and run the dance through once. join is necessary to a) turn characters into length- strings, and b) convert the list of strings back into a single string to print out. moves = split(readchomp(stdin), &# ;,&# ;) dancers = collect(join(c) for c in &# ;a&# ;:&# ;p&# ;) orig_dancers = copy(dancers) dance!(moves, dancers) println(join(dancers)) part requires a little more work. we run the dance through again and again until we get back to the initial position, saving the intermediate positions in a list. the list now contains every possible position available from that starting point, so we can find position billion by taking , , , modulo the list length (plus because -based indexing) and use that to index into the list to get the final position. dance_cycle = [orig_dancers] while dancers != orig_dancers push!(dance_cycle, copy(dancers)) dance!(moves, dancers) end println(join(dance_cycle[ _ _ _ % length(dance_cycle) + ])) this terminates on my laptop in about . s: brute force ; careful thought ! dueling generators — rust — #adventofcode day today’s challenge introduces two pseudo-random number generators which are trying to agree on a series of numbers. we play the part of the “judge”, counting the number of times their numbers agree in the lowest bits. → full code on github ever since i used go to solve day , i’ve had a hankering to try the other new kid on the memory-safe compiled language block, rust. i found it a bit intimidating at first because the syntax wasn’t as close to the c/c++ i’m familiar with and there are quite a few concepts unique to rust, like the use of traits. but i figured it out, so i can tick another language of my to-try list. i also implemented a version in python for comparison: the python version is more concise and easier to read but the rust version runs about × faster. first we include the std::env “crate” which will let us get access to commandline arguments, and define some useful constants for later. use std::env; const m: i = ; const mask: i = b ; const factor_a: i = ; const factor_b: i = ; gen_next generates the next number for a given generator’s sequence. gen_next_picky does the same, but for the “picky” generators, only returning values that meet their criteria. fn gen_next(factor: i , current: i ) -> i { return (current * factor) % m; } fn gen_next_picky(factor: i , current: i , mult: i ) -> i { let mut next = gen_next(factor, current); while next % mult != { next = gen_next(factor, next); } return next; } duel runs a single duel, and returns the number of times the generators agreed in the lowest bits (found by doing a binary & with the mask defined above). rust allows functions to be passed as parameters, so we use this to be able to run both versions of the duel using only this one function. fn duel<f, g>(n: i , next_a: f, mut value_a: i , next_b: g, mut value_b: i ) -> i where f: fn(i ) -> i , g: fn(i ) -> i , { let mut count = ; for _ in ..n { value_a = next_a(value_a); value_b = next_b(value_b); if (value_a & mask) == (value_b & mask) { count += ; } } return count; } finally, we read the start values from the command line and run the two duels. the expressions that begin |n| are closures (anonymous functions, often called lambdas in other languages) that we use to specify the generator functions for each duel. fn main() { let args: vec<string> = env::args().collect(); let start_a: i = args[ ].parse().unwrap(); let start_b: i = args[ ].parse().unwrap(); println!( &# ;duel : {}&# ;, duel( , |n| gen_next(factor_a, n), start_a, |n| gen_next(factor_b, n), start_b, ) ); println!( &# ;duel : {}&# ;, duel( , |n| gen_next_picky(factor_a, n, ), start_a, |n| gen_next_picky(factor_b, n, ), start_b, ) ); } disk defragmentation — haskell — #adventofcode day today’s challenge has us helping a disk defragmentation program by identifying contiguous regions of used sectors on a d disk. → full code on github !!! commentary wow, today’s challenge had a pretty steep learning curve. day was the first to directly reuse code from a previous day: the “knot hash” from day . i solved day in haskell, so i thought it would be easier to stick with haskell for today as well. the first part was straightforward, but the second was pretty mind-bending in a pure functional language! i ended up solving it by implementing a [flood fill algorithm][flood]. it's recursive, which is right in haskell's wheelhouse, but i ended up using `data.sequence` instead of the standard list type as its api for indexing is better. i haven't tried it, but i think it will also be a little faster than a naive list-based version. it took a looong time to figure everything out, but i had a day off work to be able to concentrate on it! a lot more imports for this solution, as we’re exercising a lot more of the standard library. module main where import prelude hiding (length, filter, take) import data.char (ord) import data.sequence import data.foldable hiding (length) import data.ix (inrange) import data.function ((&)) import data.maybe (fromjust, mapmaybe, isjust) import qualified data.set as set import text.printf (printf) import system.environment (getargs) also we’ll extract the key bits from day into a module and import that. import knothash now we define a few data types to make the code a bit more readable. sector represent the state of a particular disk sector, either free, used (but unmarked) or used and marked as belonging to a given integer-labelled group. grid is a d matrix of sector, as a sequence of sequences. data sector = free | used | mark int deriving (eq) instance show sector where show free = &# ; .&# ; show used = &# ; #&# ; show (mark i) = printf &# ;% d&# ; i type gridrow = seq sector type grid = seq (gridrow) some utility functions to make it easier to view the grids (which can be quite large): used for debugging but not in the finished solution. subgrid :: int -> grid -> grid subgrid n = fmap (take n) . take n printrow :: gridrow -> io () printrow row = do mapm_ (putstr . show) row putstr &# ;\n&# ; printgrid :: grid -> io () printgrid = mapm_ printrow makekey generates the hash key for a given row. makekey :: string -> int -> string makekey input n = input ++ &# ;-&# ; ++ show n stringtogridrow converts a binary string of ‘ ’ and ‘ ’ characters to a sequence of sector values. stringtogridrow :: string -> gridrow stringtogridrow = fromlist . map convert where convert x | x == &# ; &# ; = used | x == &# ; &# ; = free makerow and makegrid build up the grid to use based on the provided input string. makerow :: string -> int -> gridrow makerow input n = stringtogridrow $ concatmap (printf &# ;% b&# ;) $ dense $ fullknothash $ map ord $ makekey input n makegrid :: string -> grid makegrid input = fromlist $ map (makerow input) [ .. ] utility functions to count the number of used and free sectors, to give the solution to part . countequal :: sector -> grid -> int countequal x = sum . fmap (length . filter (==x)) countused = countequal used countfree = countequal free now the real meat begins! fundunmarked finds the location of the next used sector that we haven’t yet marked. it returns a maybe value, which is just (x, y) if there is still an unmarked block or nothing if there’s nothing left to mark. findunmarked :: grid -> maybe (int, int) findunmarked g | y == nothing = nothing | otherwise = just (fromjust x, fromjust y) where hasunmarked row = isjust $ elemindexl used row x = findindexl hasunmarked g y = case x of nothing -> nothing just x&# ; -> elemindexl used $ index g x&# ; floodfill implements a very simple recursive flood fill. it takes a target and replacement value and a starting location, and fills in the replacement value for every connected location that currently has the target value. we use it below to replace a connected used region with a marked region. floodfill :: sector -> sector -> (int, int) -> grid -> grid floodfill t r (x, y) g | inrange ( , length g - ) x && inrange ( , length g - ) y && elem == t = let newrow = update y r row newgrid = update x newrow g in newgrid & floodfill t r (x+ , y) & floodfill t r (x- , y) & floodfill t r (x, y+ ) & floodfill t r (x, y- ) | otherwise = g where row = g `index` x elem = row `index` y marknextgroup looks for an unmarked group and marks it if found. if no more groups are found it returns nothing. markallgroups then repeatedly applies marknextgroup until nothing is returned. marknextgroup :: int -> grid -> maybe grid marknextgroup i g = case findunmarked g of nothing -> nothing just loc -> just $ floodfill used (mark i) loc g markallgroups :: grid -> grid markallgroups g = markallgroups&# ; g where markallgroups&# ; i g = case marknextgroup i g of nothing -> g just g&# ; -> markallgroups&# ; (i+ ) g&# ; onlymarks filters a grid row and returns a list of (possibly duplicated) group numbers in the row. onlymarks :: gridrow -> [int] onlymarks = mapmaybe getmark . tolist where getmark free = nothing getmark used = nothing getmark (mark i) = just i finally, countgroups puts all the group numbers into a set to get rid of duplicates and returns the size of the set, i.e. the total number of separate groups. countgroups :: grid -> int countgroups g = set.size groupset where groupset = foldl&# ; set.union set.empty $ fmap rowtoset g rowtoset = set.fromlist . tolist . onlymarks as always, every haskell program needs a main function to drive the i/o and produce the actual result. main = do input <- fmap head getargs let grid = makegrid input used = countused grid marked = countgroups $ markallgroups grid putstrln $ &# ;used sectors: &# ; ++ show used putstrln $ &# ;groups: &# ; ++ show marked packet scanners — haskell — #adventofcode day today’s challenge requires us to sneak past a firewall made up of a series of scanners. → full code on github !!! commentary i wasn’t really thinking straight when i solved this challenge. i got a solution without too much trouble, but i ended up simulating the step-by-step movement of the scanners. i finally realised that i could calculate whether or not a given scanner was safe at a given time directly with modular arithmetic, and it bugged me so much that i reimplemented the solution. both are given below, the faster one first. first we introduce some standard library stuff and define some useful utilities. module main where import qualified data.text as t import data.maybe (mapmaybe) strip :: string -> string strip = t.unpack . t.strip . t.pack spliton :: string -> string -> [string] spliton sep = map t.unpack . t.spliton (t.pack sep) . t.pack parsescanner :: string -> (int, int) parsescanner s = (d, r) where [d, r] = map read $ spliton &# ;: &# ; s traversefw does all the hard work: it checks for each scanner whether or not it’s safe as we pass through, and returns a list of the severities of each time we’re caught. mapmaybe is like the standard map in many languages, but operates on a list of haskell maybe values, like a combined map and filter. if the value is just x, x gets included in the returned list; if the value is nothing, then it gets thrown away. traversefw :: int -> [(int, int)] -> [int] traversefw delay = mapmaybe caught where caught (d, r) = if (d + delay) `mod` ( *(r- )) == then just (d * r) else nothing then the total severity of our passage through the firewall is simply the sum of each individual severity. severity :: [(int, int)] -> int severity = sum . traversefw but we don’t want to know how badly we got caught, we want to know how long to wait before setting off to get through safely. finddelay tries traversing the firewall with increasing delay, and returns the delay for the first pass where we predict not getting caught. finddelay :: [(int, int)] -> int finddelay scanners = head $ filter (null . flip traversefw scanners) [ ..] and finally, we put it all together and calculate and print the result. main = do scanners <- fmap (map parsescanner . lines) getcontents putstrln $ &# ;severity: &# ; ++ (show $ severity scanners) putstrln $ &# ;delay: &# ; ++ (show $ finddelay scanners) i’m not generally bothered about performance for these challenges, but here i’ll note that my second attempt runs in a little under seconds on my laptop: $ time ./ -packet-scanners-redux < -input.txt severity: delay: ./ -packet-scanners-redux < -input.txt . s user . s system % cpu . total compare that with the first, simulation-based one, which takes nearly a full minute: $ time ./ -packet-scanners < -input.txt severity: delay: ./ -packet-scanners < -input.txt . s user . s system % cpu . total and for good measure, here’s the code. notice the tick and tickone functions, which together simulate moving all the scanners by one step; for this to work we have to track the full current state of each scanner, which is easier to read with a haskell record-based custom data type. traversefw is more complicated because it has to drive the simulation, but the rest of the code is mostly the same. module main where import qualified data.text as t import control.monad (form_) data scanner = scanner { depth :: int , range :: int , pos :: int , dir :: int } instance show scanner where show (scanner d r p dir) = show d ++ &# ;/&# ; ++ show r ++ &# ;/&# ; ++ show p ++ &# ;/&# ; ++ show dir strip :: string -> string strip = t.unpack . t.strip . t.pack spliton :: string -> string -> [string] spliton sep str = map t.unpack $ t.spliton (t.pack sep) $ t.pack str parsescanner :: string -> scanner parsescanner s = scanner d r where [d, r] = map read $ spliton &# ;: &# ; s tickone :: scanner -> scanner tickone (scanner depth range pos dir) | pos <= = scanner depth range (pos+ ) | pos >= range - = scanner depth range (pos- ) (- ) | otherwise = scanner depth range (pos+dir) dir tick :: [scanner] -> [scanner] tick = map tickone traversefw :: [scanner] -> [(int, int)] traversefw = traversefw&# ; where traversefw&# ; _ [] = [] traversefw&# ; layer scanners@((scanner depth range pos _):rest) -- | layer == depth && pos == = (depth*range) + (traversefw&# ; (layer+ ) $ tick rest) | layer == depth && pos == = (depth,range) : (traversefw&# ; (layer+ ) $ tick rest) | layer == depth && pos /= = traversefw&# ; (layer+ ) $ tick rest | otherwise = traversefw&# ; (layer+ ) $ tick scanners severity :: [scanner] -> int severity = sum . map (uncurry (*)) . traversefw empty :: [a] -> bool empty [] = true empty _ = false finddelay :: [scanner] -> int finddelay scanners = delay where (delay, _) = head $ filter (empty . traversefw . snd) $ zip [ ..] $ iterate tick scanners main = do scanners <- fmap (map parsescanner . lines) getcontents putstrln $ &# ;severity: &# ; ++ (show $ severity scanners) putstrln $ &# ;delay: &# ; ++ (show $ finddelay scanners) digital plumber — python — #adventofcode day today’s challenge has us helping a village of programs who are unable to communicate. we have a list of the the communication channels between their houses, and need to sort them out into groups such that we know that each program can communicate with others in its own group but not any others. then we have to calculate the size of the group containing program and the total number of groups. → full code on github !!! commentary this is one of those problems where i’m pretty sure that my algorithm isn’t close to being the most efficient, but it definitely works! for the sake of solving the challenge that’s all that matters, but it still bugs me. by now i’ve become used to using fileinput to transparently read data either from files given on the command-line or standard input if no arguments are given. import fileinput as fi first we make an initial pass through the input data, creating a group for each line representing the programs on that line (which can communicate with each other). we store this as a python set. groups = [] for line in fi.input(): head, rest = line.split(&# ; <-> &# ;) group = set([int(head)]) group.update([int(x) for x in rest.split(&# ;, &# ;)]) groups.append(group) now we iterate through the groups, starting with the first, and merging any we find that overlap with our current group. i = while i < len(groups): current = groups[i] each pass through the groups brings more programs into the current group, so we have to go through and check their connections too. we make several merge passes, until we detect that no more merges took place. num_groups = len(groups) + while num_groups > len(groups): j = i+ num_groups = len(groups) this inner loop does the actual merging, and deletes each group as it’s merged in. while j < len(groups): if len(current & groups[j]) > : current.update(groups[j]) del groups[j] else: j += i += all that’s left to do now is to display the results. print(&# ;number in group :&# ;, len([g for g in groups if in g][ ])) print(&# ;number of groups:&# ;, len(groups)) hex ed — python — #adventofcode day today’s challenge is to help a program find its child process, which has become lost on a hexagonal grid. we need to follow the path taken by the child (given as input) and calculate the distance it is from home along with the furthest distance it has been at any point along the path. → full code on github !!! commentary i found this one quite interesting in that it was very quick to solve. in fact, i got lucky and my first quick implementation (max(abs(l)) below) gave the correct answer in spite of missing an obvious not-so-edge case. thinking about it, there’s only a ⅓ chance that the first incorrect implementation would give the wrong answer! the code is shorter, so you get more words today. ☺ there are a number of different co-ordinate systems on a hexagonal grid (i discovered while reading up after solving it…). i intuitively went for the system known as ‘axial’ coordinates, where you pick two directions aligned to the grid as your x and y axes: note that these won’t be perpendicular. i chose ne/sw as the x axis and se/nw as y, but there are three other possible choices. that leads to the following definition for the directions, encoded as numpy arrays because that makes some of the code below neater. import numpy as np steps = {d: np.array(v) for d, v in [(&# ;ne&# ;, ( , )), (&# ;se&# ;, ( , - )), (&# ;s&# ;, (- , - )), (&# ;sw&# ;, (- , )), (&# ;nw&# ;, ( , )), (&# ;n&# ;, ( , ))]} hex_grid_dist, given a location l calculates the number of steps needed to reach that location from the centre at ( , ). notice that we can’t simply use the manhattan distance here because, for example, one step north takes us to ( , ), which would give a manhattan distance of . instead, we can see that moving in the n/s direction allows us to increment or decrement both coordinates at the same time: if the coordinates have the same sign: move n/s until one of them is zero, then move along the relevant ne or se axis back to the origin; in this case the number of steps is greatest of the absolute values of the two coordinates if the coordinates have opposite signs: move independently along the ne and se axes to reduce each to ; this time the number of steps is the sum of the absolute values of the two coordinates def hex_grid_distance(l): if sum(np.sign(l)) == : # i.e. opposite signs return sum(abs(l)) else: return max(abs(l)) now we can read in the path followed by the child and follow it ourselves, tracking the maximum distance from home along the way. path = input().strip().split(&# ;,&# ;) location = np.array(( , )) max_distance = for step in map(steps.get, path): location += step max_distance = max(max_distance, hex_grid_distance(location)) distance = hex_grid_distance(location) print(&# ;child process is at&# ;, location, &# ;which is&# ;, distance, &# ;steps away&# ;) print(&# ;greatest distance was&# ;, max_distance) knot hash — haskell — #adventofcode day today’s challenge asks us to help a group of programs implement a (highly questionable) hashing algorithm that involves repeatedly reversing parts of a list of numbers. → full code on github !!! commentary i went with haskell again today, because it’s the weekend so i have a bit more time, and i really enjoyed yesterday’s haskell implementation. today gave me the opportunity to explore the standard library a bit more, as well as lending itself nicely to being decomposed into smaller parts to be combined using higher-order functions. you know the drill by know: import stuff we’ll use later. module main where import data.char (ord) import data.bits (xor) import data.function ((&)) import data.list (unfoldr) import text.printf (printf) import qualified data.text as t the worked example uses a concept of the “current position” as a pointer to a location in a static list. in haskell it makes more sense to instead use the front of the list as the current position, and rotate the whole list as we progress to bring the right element to the front. rotate :: int -> [int] -> [int] rotate xs = xs rotate n xs = drop n&# ; xs ++ take n&# ; xs where n&# ; = n `mod` length xs the simple version of the hash requires working through the input list, modifying the working list as we go, and incrementing a “skip” counter with each step. converting this to a functional style, we simply zip up the input with an infinite list [ , , , , ...] to give the counter values. notice that we also have to calculate how far to rotate the working list to get back to its original position. foldl lets us specify a function that returns a modified version of the working list and feeds the input list in one at a time. simpleknothash :: int -> [int] -> [int] simpleknothash size input = foldl step [ ..size- ] input&# ; & rotate (negate finalpos) where input&# ; = zip input [ ..] finalpos = sum $ zipwith (+) input [ ..] reversepart xs n = (reverse $ take n xs) ++ drop n xs step xs (n, skip) = reversepart xs n & rotate (n+skip) the full version of the hash (part of the challenge) starts the same way as the simple version, except making passes instead of one: we can do this by using replicate to make a list of copies, then collapse that into a single list with concat. fullknothash :: int -> [int] -> [int] fullknothash size input = simpleknothash size input&# ; where input&# ; = concat $ replicate input the next step in calculating the full hash collapses the full -element “sparse” hash down into elements by xoring groups of together. unfoldr is a nice efficient way of doing this. dense :: [int] -> [int] dense = unfoldr dense&# ; where dense&# ; [] = nothing dense&# ; xs = just (foldl xor $ take xs, drop xs) the final hash step is to convert the list of integers into a hexadecimal string. hexify :: [int] -> string hexify = concatmap (printf &# ;% x&# ;) these two utility functions put together building blocks from the data.text module to parse the input string. note that no arguments are given: the functions are defined purely by composing other functions using the . operator. in haskell this is referred to as “point-free” style. strip :: string -> string strip = t.unpack . t.strip . t.pack parseinput :: string -> [int] parseinput = map (read . t.unpack) . t.spliton (t.singleton &# ;,&# ;) . t.pack now we can put it all together, including building the weird input for the “full” hash. main = do input <- fmap strip getcontents let simpleinput = parseinput input asciiinput = map ord input ++ [ , , , , ] (a:b:_) = simpleknothash simpleinput print $ (a*b) putstrln $ fullknothash asciiinput & dense & hexify stream processing — haskell — #adventofcode day in today’s challenge we come across a stream that we need to cross. but of course, because we’re stuck inside a computer, it’s not water but data flowing past. the stream is too dangerous to cross until we’ve removed all the garbage, and to prove we can do that we have to calculate a score for the valid data “groups” and the number of garbage characters to remove. → full code on github !!! commentary one of my goals for this process was to knock the rust of my functional programming skills in haskell, and i haven’t done that for the whole of the first week. processing strings character by character and acting according to which character shows up seems like a good choice for pattern-matching though, so here we go. i also wanted to take a bash at test-driven development in haskell, so i also loaded up the test.hspec module to give it a try. i did find keeping track of all the state in arguments a bit mind boggling, and i think it could have been improved through use of a data type using record syntax and the `state` monad, so that's something to look at for a future challenge. first import the extra bits we’ll need. module main where import test.hspec import data.function ((&)) countgroups solves the first part of the problem, counting up the “score” of the valid data in the stream. countgroups' is an auxiliary function that holds some state in its arguments. we use pattern matching for the base case: [] represents the empty list in haskell, which indicates we’ve finished the whole stream. otherwise, we split the remaining stream into its first character and remainder, and use guards to decide how to interpret it. if skip is true, discard the character and carry on with skip set back to false. if we find a “!”, that tells us to skip the next. other characters mark groups or sets of garbage: groups increase the score when they close and garbage is discarded. we continue to progress the list by recursing with the remainder of the stream and any updated state. countgroups :: string -> int countgroups = countgroups&# ; false false where countgroups&# ; score _ _ _ [] = score countgroups&# ; score level garbage skip (c:rest) | skip = countgroups&# ; score level garbage false rest | c == &# ;!&# ; = countgroups&# ; score level garbage true rest | garbage = case c of &# ;>&# ; -> countgroups&# ; score level false false rest _ -> countgroups&# ; score level true false rest | otherwise = case c of &# ;{&# ; -> countgroups&# ; score (level+ ) false false rest &# ;}&# ; -> countgroups&# ; (score+level) (level- ) false false rest &# ;,&# ; -> countgroups&# ; score level false false rest &# ;<&# ; -> countgroups&# ; score level true false rest c -> error $ &# ;garbage character found outside garbage: &# ; ++ show c countgarbage works almost identically to countgroups, except it ignores groups and counts garbage. they are structured so similarly that it would probably make more sense to combine them to a single function that returns both counts. countgarbage :: string -> int countgarbage = countgarbage&# ; false false where countgarbage&# ; count _ _ [] = count countgarbage&# ; count garbage skip (c:rest) | skip = countgarbage&# ; count garbage false rest | c == &# ;!&# ; = countgarbage&# ; count garbage true rest | garbage = case c of &# ;>&# ; -> countgarbage&# ; count false false rest _ -> countgarbage&# ; (count+ ) true false rest | otherwise = case c of &# ;<&# ; -> countgarbage&# ; count true false rest _ -> countgarbage&# ; count false false rest hspec gives us a domain-specific language heavily inspired by the rspec library for ruby: the tests read almost like natural language. i built up these tests one-by-one, gradually implementing the appropriate bits of the functions above, a process known as test-driven development. runtests = hspec $ do describe &# ;countgroups&# ; $ do it &# ;counts valid groups&# ; $ do countgroups &# ;{}&# ; `shouldbe` countgroups &# ;{{{}}}&# ; `shouldbe` countgroups &# ;{{{},{},{{}}}}&# ; `shouldbe` countgroups &# ;{{},{}}&# ; `shouldbe` it &# ;ignores garbage&# ; $ do countgroups &# ;{<a>,<a>,<a>,<a>}&# ; `shouldbe` countgroups &# ;{{<ab>},{<ab>},{<ab>},{<ab>}}&# ; `shouldbe` it &# ;skips marked characters&# ; $ do countgroups &# ;{{<!!>},{<!!>},{<!!>},{<!!>}}&# ; `shouldbe` countgroups &# ;{{<a!>},{<a!>},{<a!>},{<ab>}}&# ; `shouldbe` describe &# ;countgarbage&# ; $ do it &# ;counts garbage characters&# ; $ do countgarbage &# ;<>&# ; `shouldbe` countgarbage &# ;<random characters>&# ; `shouldbe` countgarbage &# ;<<<<>&# ; `shouldbe` it &# ;ignores non-garbage&# ; $ do countgarbage &# ;{{},{}}&# ; `shouldbe` countgarbage &# ;{{<ab>},{<ab>},{<ab>},{<ab>}}&# ; `shouldbe` it &# ;skips marked characters&# ; $ do countgarbage &# ;<{!>}>&# ; `shouldbe` countgarbage &# ;<!!>&# ; `shouldbe` countgarbage &# ;<!!!>&# ; `shouldbe` countgarbage &# ;<{o\&# ;i!a,<{i<a>&# ; `shouldbe` finally, the main function reads in the challenge input and calculates the answers, printing them on standard output. main = do runtests repeat &# ;=&# ; & take & putstrln input <- getcontents & fmap (filter (/=&# ;\n&# ;)) putstrln $ &# ;found &# ; ++ show (countgroups input) ++ &# ; groups&# ; putstrln $ &# ;found &# ; ++ show (countgarbage input) ++ &# ; characters garbage&# ; i heard you like registers — python — #adventofcode day today’s challenge describes a simple instruction set for a cpu, incrementing and decrementing values in registers according to simple conditions. we have to interpret a stream of these instructions, and to prove that we’ve done so, give the highest value of any register, both at the end of the program and throughout the whole program. → full code on github !!! commentary this turned out to be a nice straightforward one to implement, as the instruction format was easily parsed by regular expression, and python provides the eval function which made evaluating the conditions a doddle. import various standard library bits that we’ll use later. import re import fileinput as fi from math import inf from collections import defaultdict we could just parse the instructions by splitting the string, but using a regular expression is a little bit more robust because it won’t match at all if given an invalid instruction. instruction_re = re.compile(r&# ;(\w+) (inc|dec) (-?\d+) if (.+)\s*&# ;) def parse_instruction(instruction): match = instruction_re.match(instruction) return match.group( , , , ) executing an instruction simply checks the condition and if it evaluates to true updates the relevant register. def exec_instruction(registers, instruction): name, op, value, cond = instruction value = int(value) if op == &# ;dec&# ;: value = -value if eval(cond, globals(), registers): registers[name] += value highest_value returns the maximum value found in any register. def highest_value(registers): return sorted(registers.items(), key=lambda x: x[ ], reverse=true)[ ][ ] finally, loop through all the instructions and carry them out, updating global_max as we go. we need to be able to deal with registers that haven’t been accessed before. keeping the registers in a dictionary means that we can evaluate the conditions directly using eval above, passing it as the locals argument. the standard dict will raise an exception if we try to access a key that doesn’t exist, so instead we use collections.defaultdict, which allows us to specify what the default value for a non-existent key will be. new registers start at , so we use a simple lambda to define a function that always returns . global_max = -inf registers = defaultdict(lambda: ) for i in map(parse_instruction, fi.input()): exec_instruction(registers, i) global_max = max(global_max, highest_value(registers)) print(&# ;max value:&# ;, highest_value(registers)) print(&# ;all-time max:&# ;, global_max) recursive circus — ruby — #adventofcode day today’s challenge introduces a set of processes balancing precariously on top of each other. we find them stuck and unable to get down because one of the processes is the wrong size, unbalancing the whole circus. our job is to figure out the root from the input and then find the correct weight for the single incorrect process. → full code on github !!! commentary so i didn’t really intend to take a full polyglot approach to advent of code, but it turns out to have been quite fun, so i made a shortlist of languages to try. building a tree is a classic application for object-orientation using a class to represent tree nodes, and i’ve always liked the feel of ruby’s class syntax, so i gave it a go. first make sure we have access to set, which we’ll use later. require &# ;set&# ; now to define the circusnode class, which represents nodes in the tree. attr :s automatically creates a function s that returns the value of the instance attribute @s class circusnode attr :name, :weight def initialize(name, weight, children=nil) @name = name @weight = weight @children = children || [] end add a << operator (the same syntax for adding items to a list) that adds a child to this node. def <<(c) @children << c @total_weight = nil end total_weight recursively calculates the weight of this node and everything above it. the @total_weight ||= blah idiom caches the value so we only calculate it once. def total_weight @total_weight ||= @weight + @children.map {|c| c.total_weight}.sum end balance_weight does the hard work of figuring out the proper weight for the incorrect node by recursively searching through the tree. def balance_weight(target=nil) by_weight = hash.new{|h, k| h[k] = []} @children.each{|c| by_weight[c.total_weight] << c} if by_weight.size == then if target return @weight - (total_weight - target) else raise argumenterror, &# ;this tree seems balanced!&# ; end else odd_one_out = by_weight.select {|k, v| v.length == }.first[ ][ ] child_target = by_weight.select {|k, v| v.length > }.first[ ] return odd_one_out.balance_weight child_target end end a couple of utility functions for displaying trees finish off the class. def to_s &# ;#{@name} (#{@weight})&# ; end def print_tree(n= ) puts &# ;#{&# ; &# ;*n}#{self} -> #{self.total_weight}&# ; @children.each do |child| child.print_tree n+ end end end build_circus takes input as a list of lists [name, weight, children]. we make two passes over this list, first creating all the nodes, then building the tree by adding children to parents. def build_circus(data) all_nodes = {} all_children = set.new data.each do |name, weight, children| all_nodes[name] = circusnode.new name, weight end data.each do |name, weight, children| children.each {|child| all_nodes[name] << all_nodes[child]} all_children.merge children end root_name = (all_nodes.keys.to_set - all_children).first return all_nodes[root_name] end finally, build the tree and solve the problem! note that we use string.to_sym to convert the node names to symbols (written in ruby as :symbol), because they’re faster to work with in hashes and sets as we do above. data = readlines.map do |line| match = /(?<parent>\w+) \((?<weight>\d+)\)(?: -> (?<children>.*))?/.match line [match[&# ;parent&# ;].to_sym, match[&# ;weight&# ;].to_i, match[&# ;children&# ;] ? match[&# ;children&# ;].split(&# ;, &# ;).map {|x| x.to_sym} : []] end root = build_circus data puts &# ;root node: #{root}&# ; puts root.balance_weight memory reallocation — python — #adventofcode day today’s challenge asks us to follow a recipe for redistributing objects in memory that bears a striking resemblance to the rules of the african game mancala. → full code on github !!! commentary when i was doing my msci, one of our programming exercises was to write (in haskell, iirc) a program to play a mancala variant called oware, so this had a nice ring of nostalgia. back to python today: it's already become clear that it's by far my most fluent language, which makes sense as it's the only one i've used consistently since my schooldays. i'm a bit behind on the blog posts, so you get this one without any explanation, for now at least! import math def reallocate(mem): max_val = -math.inf size = len(mem) for i, x in enumerate(mem): if x > max_val: max_val = x max_index = i i = max_index mem[i] = remaining = max_val while remaining > : i = (i + ) % size mem[i] += remaining -= return mem def detect_cycle(mem): mem = list(mem) steps = prev_states = {} while tuple(mem) not in prev_states: prev_states[tuple(mem)] = steps steps += mem = reallocate(mem) return (steps, steps - prev_states[tuple(mem)]) initial_state = map(int, input().split()) print(&# ;initial state is &# ;, initial_state) steps, cycle = detect_cycle(initial_state) print(&# ;steps to cycle: &# ;, steps) print(&# ;steps in cycle: &# ;, cycle) a maze of twisty trampolines — c++ — #adventofcode day today’s challenge has us attempting to help the cpu escape from a maze of instructions. it’s not quite a turing machine, but it has that feeling of moving a read/write head up and down a tape acting on and changing the data found there. → full code on github !!! commentary i haven’t written anything in c++ for over a decade. it sounds like there have been lots of interesting developments in the language since then, with c++ , c++ and the freshly finalised c++ standards (built-in parallelism in the stl!). i won’t use any of those, but i thought i’d dust off my c++ and see what happened. thankfully the standard template library classes still did what i expected! as usual, we first include the parts of the standard library we’re going to use: iostream for input & output; vector for the container. we also declare that we’re using the std namespace, so that we don’t have to prepend vector and the other classes with std::. #include <iostream> #include <vector> using namespace std; steps_to_escape_part implements part of the challenge: we read a location, move forward/backward by the number of steps given in that location, then add one to the location before repeating. the result is the number of steps we take before jumping outside the list. int steps_to_escape_part (vector<int>& instructions) { int pos = , iterations = , new_pos; while (pos < instructions.size()) { new_pos = pos + instructions[pos]; instructions[pos]++; pos = new_pos; iterations++; } return iterations; } steps_to_escape_part solves part , which is very similar, except that an offset greater than is decremented instead of incremented before moving on. int steps_to_escape_part (vector<int>& instructions) { int pos = , iterations = , new_pos, offset; while (pos < instructions.size()) { offset = instructions[pos]; new_pos = pos + offset; instructions[pos] += offset >= ? - : ; pos = new_pos; iterations++; } return iterations; } finally we pull it all together and link it up to the input. int main() { vector<int> instructions , instructions ; int n; the cin class lets us read data from standard input, which we then add to a vector of ints to give our list of instructions. while (true) { cin >> n; if (cin.eof()) break; instructions .push_back(n); } solving the problem modifies the input, so we need to take a copy to solve part as well. thankfully the stl makes this easy with iterators. instructions .insert(instructions .begin(), instructions .begin(), instructions .end()); finally, compute the result and print it on standard output. cout << steps_to_escape_part (instructions ) << endl; cout << steps_to_escape_part (instructions ) << endl; return ; } high entropy passphrases — python — #adventofcode day today’s challenge describes some simple rules supposedly intended to enforce the use of secure passwords. all we have to do is test a list of passphrase and identify which ones meet the rules. → full code on github !!! commentary fearing that today might be as time-consuming as yesterday, i returned to python and it’s hugely powerful “batteries-included” standard library. thankfully this challenge was more straightforward, and i actually finished this before finishing day . first, let’s import two useful utilities. from fileinput import input from collections import counter part requires simply that a passphrase contains no repeated words. no problem: we split the passphrase into words and count them, and check if any was present more than once. counter is an amazingly useful class to have in a language’s standard library. all it does is count things: you add objects to it, and then it will tell you how many of a given object you have. we’re going to use it to count those potentially duplicated words. def is_valid(passphrase): counter = counter(passphrase.split()) return counter.most_common( )[ ][ ] == part requires that no word in the passphrase be an anagram of any other word. since we don’t need to do anything else with the words afterwards, we can check for anagrams by sorting the letters in each word: “leaf” and “flea” both become “aefl” and can be compared directly. then we count as before. def is_valid_ana(passphrase): counter = counter(&# ;&# ;.join(sorted(word)) for word in passphrase.split()) return counter.most_common( )[ ][ ] == finally we pull everything together. sum(map(boolean_func, list)) is a common idiom in python for counting the number of times a condition (checked by boolean_func) is true. in python, true and false can be treated as the numbers and respectively, so that summing a list of boolean values gives you the number of true values in the list. lines = list(input()) print(sum(map(is_valid, lines))) print(sum(map(is_valid_ana, lines))) spiral memory — go — #adventofcode day today’s challenge requires us to perform some calculations on an “experimental memory layout”, with cells moving outwards from the centre of a square spiral (squiral?). → full code on github !!! commentary i’ve been wanting to try my hand at go, the memory-safe, statically typed compiled language from google for a while. today’s challenge seemed a bit more mathematical in nature, meaning that i wouldn’t need too many advanced language features or knowledge of a standard library, so i thought i’d give it a “go”. it might have been my imagination, but it was impressive how quickly the compiled program chomped through different input values while i was debugging. i actually spent far too long on this problem because my brain led me down a blind alley trying to do the wrong calculation, but i got there in the end! the solution is a bit difficult to explain without diagrams, which i don't really have time to draw right now, but fear not because several other people have. first take a look at [the challenge itself which explains the spiral memory concept](http://adventofcode.com/ /day/ ). then look at the [nice diagrams that phil tooley made with python](http://acceleratedscience.co.uk/blog/adventofcode-day- -spiral-memory/) and hopefully you'll be able to see what's going on! it's interesting to note that this challenge also admits of an algorithmic solution instead of the mathematical one: you can model the memory as an infinite grid using a suitable data structure and literally move around it in a spiral. in hindsight this is a much better way of solving the challenge quickly because it's easier and less error-prone to code. i'm quite pleased with my maths-ing though, and it's much quicker than the algorithmic version! first some go boilerplate: we have to define the package we’re in (main, because it’s an executable we’re producing) and import the libraries we’ll use. package main import ( &# ;fmt&# ; &# ;math&# ; &# ;os&# ; ) weirdly, go doesn’t seem to have these basic mathematics functions for integers in its standard library (please someone correct me if i’m wrong!) so i’ll define them instead of mucking about with data types. go doesn’t do any implicit type conversion, even between numeric types, and the math builtin package only operates on float values. func abs(n int) int { if n < { return -n } return n } func min(x, y int) int { if x < y { return x } return y } func max(x, y int) int { if x > y { return x } return y } this does the heavy lifting for part one: converting from a position on the spiral to a column and row in the grid. ( , ) is the centre of the spiral. this actually does a bit more than is necessary to calculate the distance as required for part , but we’ll use it again for part . func spiral_to_xy(n int) (int, int) { if n == { return , } r := int(math.floor((math.sqrt(float (n- )) + ) / )) n_r := n - ( *r- )*( *r- ) o := ((n_r - ) % ( * r)) - r + sector := (n_r - ) / ( * r) switch sector { case : return r, o case : return -o, r case : return -r, -o case : return o, -r } return , } now use spiral_to_xy to calculate the manhattan distance that the value at location n in the spiral memory are carried to reach the “access port” at . func distance(n int) int { x, y := spiral_to_xy(n) return abs(x) + abs(y) } this function does the opposite of spiral_to_xy, translating a grid position back to its position on the spiral. this is the one that took me far too long to figure out because i had a brain bug and tried to calculate the value s (which sector or quarter of the spiral we’re looking at) in a way that was never going to work! fortunately i came to my senses. func xy_to_spiral(x, y int) int { if x == && y == { return } r := max(abs(x), abs(y)) var s, o, n int if x+y > && x-y >= { s = } else if x-y < && x+y >= { s = } else if x+y < && x-y <= { s = } else { s = } switch s { case : o = y case : o = -x case : o = -y case : o = x } n = o + r*( *s+ ) + ( *r- )*( *r- ) return n } this is a utility function that uses xy_to_spiral to fetch the value at a given (x, y) location, and returns zero if we haven’t filled that location yet. func get_spiral(mem []int, x, y int) int { n := xy_to_spiral(x, y) - if n < len(mem) { return mem[n] } return } finally we solve part of the problem, which involves going round the spiral writing values into it that are the sum of some values already written. the result is the first of these sums that is greater than or equal to the given input value. func stress_test(input int) int { mem := make([]int, ) n := mem[ ] = for mem[n] < input { n++ x, y := spiral_to_xy(n + ) mem = append(mem, get_spiral(mem, x+ , y)+ get_spiral(mem, x+ , y+ )+ get_spiral(mem, x, y+ )+ get_spiral(mem, x- , y+ )+ get_spiral(mem, x- , y)+ get_spiral(mem, x- , y- )+ get_spiral(mem, x, y- )+ get_spiral(mem, x+ , y- )) } return mem[n] } now the last part of the program puts it all together, reading the input value from a commandline argument and printing the results of the two parts of the challenge: func main() { var n int fmt.sscanf(os.args[ ], &# ;%d&# ;, &n) fmt.printf(&# ;input is %d\n&# ;, n) fmt.printf(&# ;distance is %d\n&# ;, distance(n)) fmt.printf(&# ;stress test result is %d\n&# ;, stress_test(n)) } corruption checksum — python — #adventofcode day today’s challenge is to calculate a rather contrived “checksum” over a grid of numbers. → full code on github !!! commentary today i went back to plain python, and i didn’t do formal tests because only one test case was given for each part of the problem. i just got stuck in. i did write part out in as nested `for` loops as an intermediate step to working out the generator expression. i think that expanded version may have been more readable. having got that far, i couldn't then work out how to finally eliminate the need for an auxiliary function entirely without either sorting the same elements multiple times or sorting each row as it's read. first we read in the input, split it and convert it to numbers. fileinput.input() returns an iterator over the lines in all the files passed as command-line arguments, or over standard input if no files are given. from fileinput import input sheet = [[int(x) for x in l.split()] for l in input()] part of the challenge calls for finding the difference between the largest and smallest number in each row, and then summing those differences: print(sum(max(x) - min(x) for x in sheet)) part is a bit more involved: for each row we have to find the unique pair of elements that divide into each other without remainder, then sum the result of those divisions. we can make it a little easier by sorting each row; then we can take each number in turn and compare it only with the numbers after it (which are guaranteed to be larger). doing this ensures we only make each comparison once. def rowsum_div(row): row = sorted(row) return sum(y // x for i, x in enumerate(row) for y in row[i+ :] if y % x == ) print(sum(map(rowsum_div, sheet))) we can make this code shorter (if not easier to read) by sorting each row as it’s read: sheet = [sorted(int(x) for x in l.split()) for l in input()] then we can just use the first and last elements in each row for part , as we know those are the smallest and largest respectively in the sorted row: print(sum(x[- ] - x[ ] for x in sheet)) part then becomes a sum over a single generator expression: print(sum(y // x for row in sheet for i, x in enumerate(row) for y in row[i+ :] if y % x == )) very satisfying! inverse captcha — coconut — #adventofcode day well, december’s here at last, and with it day of advent of code. … it goes on to explain that you may only leave by solving a captcha to prove you’re not a human. apparently, you only get one millisecond to solve the captcha: too fast for a normal human, but it feels like hours to you. … as well as posting solutions here when i can, i’ll be putting them all on https://github.com/jezcope/aoc too. !!! commentary after doing some challenges from last year in haskell for a warm up, i felt inspired to try out the functional-ish python dialect, coconut. now that i’ve done it, it feels a bit of an odd language, neither fish nor fowl. it’ll look familiar to any pythonista, but is loaded with features normally associated with functional languages, like pattern matching, destructuring assignment, partial application and function composition. that makes it quite fun to work with, as it works similarly to haskell, but because it's restricted by the basic rules of python syntax everything feels a bit more like hard work than it should. the accumulator approach feels clunky, but it's necessary to allow [tail call elimination](https://en.wikipedia.org/wiki/tail_call), which coconut will do and i wanted to see in action. lo and behold, if you take a look at the [compiled python version](https://github.com/jezcope/aoc /blob/ c bda b e db e d b be a / -inverse-captcha.py#l ) you'll see that my recursive implementation has been turned into a non-recursive `while` loop. then again, maybe i'm just jealous of phil tooley's [one-liner solution in python](https://github.com/ptooley/aocgolf/blob/ d f ccfc cfd baf d / .py#l ). import sys def inverse_captcha_(s, acc= ): case reiterable(s): match (|d, d|) :: rest: return inverse_captcha_((|d|) :: rest, acc + int(d)) match (|d , d |) :: rest: return inverse_captcha_((|d |) :: rest, acc) return acc def inverse_captcha(s) = inverse_captcha_(s :: s[ ]) def inverse_captcha_ _(s , s , acc= ): case (reiterable(s ), reiterable(s )): match ((|d |) :: rest , (|d |) :: rest ): return inverse_captcha_ _(rest , rest , acc + int(d )) match ((|d |) :: rest , (|d |) :: rest ): return inverse_captcha_ _(rest , rest , acc) return acc def inverse_captcha_ (s) = inverse_captcha_ _(s, s$[len(s)// :] :: s) def test_inverse_captcha(): assert " " |> inverse_captcha == assert " " |> inverse_captcha == assert " " |> inverse_captcha == assert " " |> inverse_captcha == def test_inverse_captcha_ (): assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == assert " " |> inverse_captcha_ == if __name__ == "__main__": sys.argv[ ] |> inverse_captcha |> print sys.argv[ ] |> inverse_captcha_ |> print advent of code : introduction it’s a common lament of mine that i don’t get to write a lot of code in my day-to-day job. i like the feeling of making something from nothing, and i often look for excuses to write bits of code, both at work and outside it. advent of code is a daily series of programming challenges for the month of december, and is about to start its third annual incarnation. i discovered it too late to take part in any serious way last year, but i’m going to give it a try this year. there are no restrictions on programming language (so of course some people delight in using esoteric languages like brainf**k), but i think i’ll probably stick with python for the most part. that said, i miss my haskell days and i’m intrigued by new kids on the block go and rust, so i might end up throwing in a few of those on some of the simpler challenges. i’d like to focus a bit more on how i solve the puzzles. they generally come in two parts, with the second part only being revealed after successful completion of the first part. with that in mind, test-driven development makes a lot of sense, because i can verify that i haven’t broken the solution to the first part in modifying to solve the second. i may also take a literate programming approach with org-mode or jupyter notebooks to document my solutions a bit more, and of course that will make it easier to publish solutions here so i’ll do that as much as i can make time for. on that note, here are some solutions for that i’ve done recently as a warmup. day : python day instructions import numpy as np import pytest as t import sys turn = { &# ;l&# ;: np.array([[ , ], [- , ]]), &# ;r&# ;: np.array([[ , - ], [ , ]]) } origin = np.array([ , ]) north = np.array([ , ]) class santa: def __init__(self, location, heading): self.location = np.array(location) self.heading = np.array(heading) self.visited = [( , )] def execute_one(self, instruction): start_loc = self.location.copy() self.heading = self.heading @ turn[instruction[ ]] self.location += self.heading * int(instruction[ :]) self.mark(start_loc, self.location) def execute_many(self, instructions): for i in instructions.split(&# ;,&# ;): self.execute_one(i.strip()) def distance_from_start(self): return sum(abs(self.location)) def mark(self, start, end): for x in range(min(start[ ], end[ ]), max(start[ ], end[ ])+ ): for y in range(min(start[ ], end[ ]), max(start[ ], end[ ])+ ): if any((x, y) != start): self.visited.append((x, y)) def find_first_crossing(self): for i in range( , len(self.visited)): for j in range(i): if self.visited[i] == self.visited[j]: return self.visited[i] def distance_to_first_crossing(self): crossing = self.find_first_crossing() if crossing is not none: return abs(crossing[ ]) + abs(crossing[ ]) def __str__(self): return f&# ;santa @ {self.location}, heading {self.heading}&# ; def test_execute_one(): s = santa(origin, north) s.execute_one(&# ;l &# ;) assert all(s.location == np.array([- , ])) assert all(s.heading == np.array([- , ])) s.execute_one(&# ;l &# ;) assert all(s.location == np.array([- , - ])) assert all(s.heading == np.array([ , - ])) s.execute_one(&# ;r &# ;) assert all(s.location == np.array([- , - ])) assert all(s.heading == np.array([- , ])) s.execute_one(&# ;r &# ;) assert all(s.location == np.array([- , ])) assert all(s.heading == np.array([ , ])) def test_execute_many(): s = santa(origin, north) s.execute_many(&# ;l , l , r &# ;) assert all(s.location == np.array([- , - ])) assert all(s.heading == np.array([- , ])) def test_distance(): assert santa(origin, north).distance_from_start() == assert santa(( , ), north).distance_from_start() == assert santa((- , ), north).distance_from_start() == def test_turn_left(): east = north @ turn[&# ;l&# ;] south = east @ turn[&# ;l&# ;] west = south @ turn[&# ;l&# ;] assert all(east == np.array([- , ])) assert all(south == np.array([ , - ])) assert all(west == np.array([ , ])) def test_turn_right(): west = north @ turn[&# ;r&# ;] south = west @ turn[&# ;r&# ;] east = south @ turn[&# ;r&# ;] assert all(east == np.array([- , ])) assert all(south == np.array([ , - ])) assert all(west == np.array([ , ])) if __name__ == &# ;__main__&# ;: instructions = sys.stdin.read() santa = santa(origin, north) santa.execute_many(instructions) print(santa) print(&# ;distance from start:&# ;, santa.distance_from_start()) print(&# ;distance to target: &# ;, santa.distance_to_first_crossing()) day : haskell day instructions module main where data pos = pos int int deriving (show) -- magrittr-style pipe operator (|>) :: a -> (a -> b) -> b x |> f = f x swappos :: pos -> pos swappos (pos x y) = pos y x clamp :: int -> int -> int -> int clamp lower upper x | x < lower = lower | x > upper = upper | otherwise = x clamph :: pos -> pos clamph (pos x y) = pos x&# ; y&# ; where y&# ; = clamp y r = abs ( - y&# ;) x&# ; = clamp r ( -r) x clampv :: pos -> pos clampv = swappos . clamph . swappos buttonforpos :: pos -> string buttonforpos (pos x y) = [buttons !! y !! x] where buttons = [&# ; d &# ;, &# ; abc &# ;, &# ; &# ;, &# ; &# ;, &# ; &# ;] decodechar :: pos -> char -> pos decodechar (pos x y) &# ;r&# ; = clamph $ pos (x+ ) y decodechar (pos x y) &# ;l&# ; = clamph $ pos (x- ) y decodechar (pos x y) &# ;u&# ; = clampv $ pos x (y+ ) decodechar (pos x y) &# ;d&# ; = clampv $ pos x (y- ) decodeline :: pos -> string -> pos decodeline p &# ;&# ; = p decodeline p (c:cs) = decodeline (decodechar p c) cs makecode :: string -> string makecode instructions = lines instructions -- split into lines |> scanl decodeline (pos ) -- decode to positions |> tail -- drop start position |> concatmap buttonforpos -- convert to buttons main = do input <- getcontents putstrln $ makecode input research data management forum , manchester !!! intro "" monday and tuesday november i’m at the research data management forum in manchester. i thought i’d use this as an opportunity to try liveblogging, so during the event some notes should appear in the box below (you may have to manually refresh your browser tab periodically to get the latest version). i've not done this before, so if the blog stops updating then it's probably because i've stopped updating it to focus on the conference instead! this was made possible using github's cool [gist](https://gist.github.com) tool. draft content policy i thought it was about time i had some sort of content policy on here so this is a first draft. it will eventually wind up as a separate page. feedback welcome! !!! aside “content policy” this blog’s primary purpose is as a reflective learning tool for my own development; my aim in writing any given post is mainly to expose and develop my own thinking on a topic. my reasons for making a public blog rather than a private journal are: . if i'm lucky, someone smarter than me will provide feedback that will help me and my readers to learn more . if i'm extra lucky, someone else might learn from the material as well each post, therefore, represents the state of my thinking at the time i wrote it, or perhaps a deliberate provocation or exaggeration; either way, if you don't know me personally please don't judge me based entirely on my past words. this is a request though, not an attempt to excuse bad behaviour on my part. i accept full responsibility for any consequences of my words, whether intended or not. i will not remove comments or ban individuals for disagreeing with me, only for behaving offensively or disrespectfully. i will do my best to be fair and balanced and explain decisions that i take, but i reserve the right to take those decisions without making any explanation at all if it seems likely to further inflame a situation. if i end up responding to anything simply with a link to this policy, that's probably all the explanation you're going to get. it should go without saying, but the opinions presented in this blog are my own and not those of my employer or anyone else i might at times represent. learning to live with anxiety !!! intro "" this is a post that i’ve been writing for months, and writing in my head for years. for some it will explain aspects of my personality that you might have wondered about. for some it will just be another person banging on self-indulgently about so-called “mental health issues”. hopefully, for some it will demystify some stuff and show that you’re not alone and things do get better. for as long as i can remember i’ve been a worrier. i’ve also suffered from bouts of what i now recognise as depression, on and off since my school days. it’s only relatively recently that i’ve come to the realisation that these two might be connected and that my ‘worrying’ might in fact be outside the normal range of healthy human behaviour and might more accurately be described as chronic anxiety. you probably won’t have noticed it, but it’s been there. more recently i’ve begun feeling like i’m getting on top of it and feeling “normal” for the first time in my life. things i’ve found that help include: getting out of the house more and socialising with friends; and getting a range of exercise, outdoors and away from the city (rock climbing is mentally and physically engaging and open water swimming is indescribably joyful). but mostly it’s the cognitive behavioural therapy (cbt) and the antidepressants. before i go any further, a word about drugs (“don’t do drugs, kids”): i’m on the lowest available dose of a common antidepressant. this isn’t because it stops me being sad all the time (i’m not) or because it makes all my problems go away (it really doesn’t). it’s because the scientific evidence points to a combination of cbt and antidepressants as being the single most effective treatment for generalised anxiety disorder. the reason for this is simple: cbt isn’t easy, because it asks you to challenge habits and beliefs you’ve held your whole life. in the short term there is going to be more anxiety and some antidepressants are also effective at blunting the effect of this additional anxiety. in short, cbt is what makes you better, and the drugs just make it a little bit more effective. a lot of people have misconceptions about what it means to be ‘in therapy’. i suspect a lot of these are derived from the psychoanalysis we often see portrayed in (primarily us) film and tv. the problem with that type of navel-gazing therapy is that you can spend years doing it, finally reach some sort of breakthrough insight, and still not have no idea what the supposed insight means for your actual life. cbt is different in that rather than addressing feelings directly it focuses on habits in your thoughts (cognitive) and actions (behavioural) with feeling better as an outcome (therapy). cbt and related forms of therapy now have decades of clinical evidence showing that they really work. it uses a wide range of techniques to identify, challenge and reduce various common unhelpful thoughts and behaviours. by choosing and practicing these, you can break bad mental habits that you’ve been carrying around, often for decades. for me this means giving fair weight to my successes as well as my failings, allowing flexibility into the rigid rules that i have always, subconsciously, lived by, and being a bit kinder to myself when i make mistakes. it’s not been easy and i have to remind myself to practice this every day, but it’s really helped. !!! aside “more info” if you live in the uk, you might not be aware that you can get cbt and other psychological therapies on the nhs through a scheme called iapt (improving access to psychological therapies). you can self-refer so you don’t need to see a doctor first, but you might want to anyway if you think medication might help. they also have a progression of treatments, so you might be offered a course of “guided self-help” and then progressed to cbt or another talking therapy if need be. this is what happened to me, and it did help a bit but it was cbt that helped me the most. becoming a librarian what is a librarian? is it someone who has a masters degree in librarianship and information science? is it someone who looks after information for other people? is it simply someone who works in a library? i’ve been grappling with this question a lot lately because i’ve worked in academic libraries for about years now and i never really thought that’s something that might happen. people keep referring to me as “a librarian” but there’s some imposter feelings here because all the librarians around me have much more experience, have skills in areas like cataloguing and collection management and, generally, have a librarian masters degree. so i’ve been thinking about what it actually means to me to be a librarian or not. nb. some of these may be tongue-in-cheek ways in which i am a librarian: i work in a library i help people to access and organise information i have a cat i like gin ways in which i am not a librarian: i don’t have a librarianship qualification i don’t work with books 😉 i don’t knit (though i can probably remember how if pressed) i don’t shush people or wear my hair in a bun (i can confirm that this is also true of every librarian i know) ways in which i am a shambrarian: i like beer i have more it experience and qualification than librarianship at the end of the day, i still don’t know how i feel about this or, for that matter, how important it is. i’m probably going to accept whatever title people around me choose to bestow, though any label will chafe at times! lean libraries: applying agile practices to library services kanban board jeff lasovski (via wikimedia commons) i’ve been working with our it services at work quite closely for the last year as product owner for our new research data portal, orda. that’s been a fascinating process for me as i’ve been able to see first-hand some of the agile techniques that i’ve been reading about from time-to-time on the web over the last few years. they’re in the process of adopting a specific set of practices going under the name “scrum”, which is fun because it uses some novel terminology that sounds pretty weird to non-it folks, like “scrum master”, “sprint” and “product backlog”. on my small project we’ve had great success with the short cycle times and been able to build trust with our stakeholders by showing concrete progress on a regular basis. modern librarianship is increasingly fluid, particularly in research services, and i think that to handle that fluidity it’s absolutely vital that we are able to work in a more agile way. i’m excited about the possibilities of some of these ideas. however, scrum as implemented by our it services doesn’t seem something that transfers directly to the work that we do: it’s too specialised for software development to adapt directly. what i intend to try is to steal some of the individual practices on an experimental basis and simply see what works and what doesn’t. the lean concepts currently popular in it were originally developed in manufacturing: if they can be translated from the production of physical goods to it, i don’t see why we can’t make the ostensibly smaller step of translating them to a different type of knowledge work. i’ve therefore started reading around this subject to try and get as many ideas as possible. i’m generally pretty rubbish at taking notes from books, so i’m going to try and record and reflect on any insights i make on this blog. the framework for trying some of these out is clearly a plan-do-check-act continuous improvement cycle, so i’ll aim to reflect on that process too. i’m sure there will have been people implementing lean in libraries already, so i’m hoping to be able to discover and learn from them instead of starting froms scratch. wish me luck! mozilla global sprint photo by lena bell on unsplash every year, the mozilla foundation runs a two-day global sprint, giving people around the world hours to work on projects supporting and promoting open culture and tech. though much of the work during the sprint is, of course, technical software development work, there are always tasks suited to a wide range of different skill sets and experience levels. the participants include writers, designers, teachers, information professionals and many others. this year, for the first time, the university of sheffield hosted a site, providing a space for local researchers, developers and others to get out of their offices, work on #mozsprint and link up with others around the world. the sheffield site was organised by the research software engineering group in collaboration with the university library. our site was only small compared to others, but we still had people working on several different projects. my reason for taking part in the sprint was to contribute to the international effort on the library carpentry project. a team spread across four continents worked throughout the whole sprint to review and develop our lesson material. as there were no other library carpentry volunteers at the sheffield site, i chose to work on some urgent work around improving the presentation of our workshops and lessons on the web and related workflows. it was a really nice subproject to work on, requiring not only cleaning up and normalising the metadata we hold on workshops and lessons, but also digesting and formalising our current ad hoc process of lesson development. the largest group were solar physicists from the school of maths and statistics, working on the sunpy project, an open source environment for solar data analysis. they pushed loads of bug fixes and documentation improvements, and also mentored a new contributor through their first additions to the project. anna krystalli from research software engineering worked on the echoburst project, which is building a web browser extension to help people break out of their online echo chambers. it does this by using natural language processing techniques to highlight well-written, logically sound articles that disagree with the reader’s stated views on particular topics of interest. anna was part of an effort to begin extending this technology to online videos. we had a couple of individuals simply taking the opportunity to break out of their normal work environments to work or learn, including a couple of members of library staff show up for a couple of hours to learn how to use git on a new project! idcc reflection for most of the last few years i&# ;ve been lucky enough to attend the international digital curation conference (idcc). one of the main audiences attending is people who, like me, work on research data management at universities around the world and it&# ;s begun to feel like a sort of &# ;home&# ; conference to me. this year, idcc was held at the royal college of surgeons in the beautiful city of edinburgh. for the last couple of years, my overall impression has been that, as a community, we&# ;re moving away from the &# ;first-order&# ; problem of trying to convince people (from phd students to senior academics) to take rdm seriously and into a rich set of &# ;second-order&# ; problems around how to do things better and widen support to more people. this year has been no exception. here are a few of my observations and takeaway points. everyone has a repository now only last year, the most common question you&# ;d get asked by strangers in the coffee break would be &# ;do you have a data repository?&# ; now the question is more likely to be &# ;what are you using for your data repository?&# ;, along with more subtle questions about specific components of systems and how they interact. integrating active storage and archival systems now that more institutions have data worth preserving, there is more interest in (and in many cases experience of) setting up more seamless integrations between active and archival storage. there are lessons here we can learn. freezing in amber vs actively maintaining assets there seemed to be an interesting debate going on throughout the conference around the aim of preservation: should we be faithfully preserving the bits and bytes provided without trying to interpret them, or should we take a more active approach by, for example, migrating obsolete formats to newer alternatives. if the former, should we attempt to preserve the software required to access the data as well? if the latter, how much effort do we invest and how do we ensure nothing is lost or altered in the migration? demonstrating data science instead of debating what it is the phrase &# ;data science&# ; was once again one of the most commonly uttered of the conference. however, there is now less abstract discussion about what, exactly, is meant by this &# ;data science&# ; thing; this has been replaced more by concrete demonstrations. this change was exemplified perfectly by the keynote by data scientist alice daish, who spent a riveting minutes or so enthusing about all the cool stuff she does with data at the british museum. recognition of software as an issue even as recently as last year, i&# ;ve struggled to drum up much interest in discussing software sustainability and preservation at events like this; the interest was there, but there were higher priorities. so i was completely taken by surprise when we ended up with + people in the software preservation birds of a feather (bof) session, and when very little input was needed from me as chair to keep a productive discussion going for a full minutes. unashamed promotion of openness as a community we seem to have nearly overthrown our collective embarrassment about the phrase &# ;open data&# ; (although maybe this is just me). we&# ;ve always known it was a good thing, but i know i&# ;ve been a bit of an apologist in the past, feeling that i had to &# ;soften the blow&# ; when asking researchers to be more open. now i feel more confident in leading with the benefits of openness, and it felt like that&# ;s a change reflected in the community more widely. becoming more involved in the conference this year, i took a decision to try and do more to contribute to the conference itself, and i felt like this was pretty successful both in making that contribution and building up my own profile a bit. i presented a paper on one of my current passions, library carpentry; it felt really good to be able to share my enthusiasm. i presented a poster on our work integrating our data repository and digital preservation platform; this gave me more of a structure for networking during breaks, as i was able to stand by the poster and start discussions with anyone who seemed interested. i chaired a parallel session; a first for me, and a different challenge from presenting or simply attending the talks. and finally, i proposed and chaired the software preservation bof session (blog post forthcoming). renewed excitement it&# ;s weird, and possibly all in my imagination, but there seemed to be more energy at this conference than at the previous couple i&# ;ve been to. more people seemed to be excited about the work we&# ;re all doing, recent achievements and the possibilities for the future. introducing pyrefine: openrefine meets python i’m knocking the rust off my programming skills by attempting to write a pure-python interpreter for openrefine “scripts”. openrefine is a great tool for exploring and cleaning datasets prior to analysing them. it also records an undo history of all actions that you can export as a sort of script in json format. one thing that bugs me though is that, having spent some time interactively cleaning up your dataset, you then need to fire up openrefine again and do some interactive mouse-clicky stuff to apply that cleaning routine to another dataset. you can at least re-import the json undo history to make that as quick as possible, but there’s no getting around the fact that there’s no quick way to do it from a cold start. there is a project, batchrefine, that extends the openrefine server to accept batch requests over a http api, but that isn’t useful when you can’t or don’t want to keep a full java stack running in the background the whole time. my concept is this: you use or to explore the data interactively and design a cleaning process, but then export the process to json and integrate it into your analysis in python. that way it can be repeated ad nauseam without having to fire up a full java stack. i’m taking some inspiration from the great talk “so you want to be a wizard?" by julia evans (@b rk), who recommends trying experiments as a way to learn. she gives these rules of programming experiments: “it doesn’t have to be good it doesn’t have to work you have to learn something” in that spirit, my main priorities are: to see if this can be done; to see how far i can get implementing it; and to learn something. if it also turns out to be a useful thing, well, that’s a bonus. some of the interesting possible challenges here: implement all core operations; there are quite a lot of these, some of which will be fun (i.e. non-trivial) to implement implement (a subset of?) grel, the general refine expression language; i guess my undergrad course on implementing parsers and compilers will come in handy after all! generate clean, sane python code from the json rather than merely executing it; more than anything, this would be a nice educational tool for users of openrefine who want to see how to do equivalent things in python selectively optimise key parts of the process; this will involve profiling the code to identify bottlenecks as well as tweaking the actual code to go faster potentially handle contributions to the code from other people; i’d be really happy if this happened but i’m realistic… if you’re interested, the project is called pyrefine and it’s on github. constructive criticism, issues & pull requests all welcome! implementing yesterbox in emacs with mu e i’ve been meaning to give yesterbox a try for a while. the general idea is that each day you only deal with email that arrived yesterday or earlier. this forms your inbox for the day, hence “yesterbox”. once you’ve emptied your yesterbox, or at least got through some minimum number ( is recommended) then you can look at emails from today. even then you only really want to be dealing with things that are absolutely urgent. anything else can wait til tomorrow. the motivation for doing this is to get away from the feeling that we are king canute, trying to hold back the tide. i find that when i’m processing my inbox toward zero there’s always a temptation to keep skipping to the new stuff that’s just come in. hiding away the new email until i’ve dealt with the old is a very interesting idea. i use mu e in emacs for reading my email, and handily the mu search syntax is very flexible so you’d think it would be easy to create a yesterbox filter: maildir:"/inbox" date:.. d unfortunately, d is interpreted as “ hours ago from right now” so this filter misses everything that was sent yesterday but less than hours ago. there was a feature request raised on the mu github repository to implement an additional date filter syntax but it seems to have died a death for now. in the meantime, the answer to this is to remember that my workplace observes fairly standard office hours, so that anything sent more than hours ago is unlikely to have been sent today. the following does the trick: maildir:"/inbox" date:.. h in my mu e bookmarks list, that looks like this: (setq mu e-bookmarks &# ;((&# ;flag:unread and not flag:trashed&# ; &# ;unread messages&# ; ?u) (&# ;flag:flagged maildir:/archive&# ; &# ;starred messages&# ; ?s) (&# ;date:today..now&# ; &# ;today&# ;s messages&# ; ?t) (&# ;date: d..now&# ; &# ;last days&# ; ?w) (&# ;maildir:\&# ;/mailing lists.*\&# ; (flag:unread or flag:flagged)&# ; &# ;unread in mailing lists&# ; ?m) (&# ;maildir:\&# ;/inbox\&# ; date:.. d&# ; &# ;yesterbox&# ; ?y))) ;; <- this is the new one rewarding good practice in research from opensource.com on flickr whenever i’m involved in a discussion about how to encourage researchers to adopt new practices, eventually someone will come out with some variant of the following phrase: “that’s all very well, but researchers will never do xyz until it’s made a criterion in hiring and promotion decisions.” with all the discussion of carrots and sticks i can see where this attitude comes from, and strongly empathise with it, but it raises two main problems: it’s unfair and more than a little insulting to anyone to be lumped into one homogeneous group; and taking all the different possible xyzs into account, that’s an awful lot of hoops to expect anyone to jump through. firstly, “researchers” are as diverse as the rest of us in terms of what gets them out of bed in the morning. some of us want prestige; some want to contribute to a greater good; some want to create new things; some just enjoy the work. one thing i’d argue we all have in common is this: nothing is more offputting than feeling like you’re being strongarmed into something you don’t want to do. if we rely on simplistic metrics, people will focus on those and miss the point. at best people will disengage and at worst they will actively game the system. i’ve got to do these ten things to get my next payrise, and still retain my sanity? ok, what’s the least i can get away with and still tick them off. you see it with students taking poorly-designed assessments and grown-ups are no difference. we do need to wield carrots as well as sticks, but the whole point is that these practices are beneficial in and of themselves. the carrots are already there if we articulate them properly and clear the roadblocks (don’t you enjoy mixed metaphors?). creating artificial benefits will just dilute the value of the real ones. secondly, i’ve heard a similar argument made for all of the following practices and more: research data management open access publishing public engagement new media (e.g. blogging) software management and sharing some researchers devote every waking hour to their work, whether it’s in the lab, writing grant applications, attending conferences, authoring papers, teaching, and so on and so on. it’s hard to see how someone with all this in their schedule can find time to exercise any of these new skills, let alone learn them in the first place. and what about the people who sensibly restrict the hours taken by work to spend more time doing things they enjoy? yes, all of the above practices are valuable, both for the individual and the community, but they’re all new (to most) and hence require more effort up front to learn. we have to accept that it’s inevitably going to take time for all of them to become “business as usual”. i think if the hiring/promotion/tenure process has any role in this, it’s in asking whether the researcher can build a coherent narrative as to why they’ve chosen to focus their efforts in this area or that. you’re not on twitter but your data is being used by research groups across the world? great! you didn’t have time to tidy up your source code for github but your work is directly impacting government policy? brilliant! we still need convince more people to do more of these beneficial things, so how? call me naïve, but maybe we should stick to making rational arguments, calming fears and providing low-risk opportunities to learn new skills. acting (compassionately) like a stuck record can help. and maybe we’ll need to scale back our expectations in other areas (journal impact factors, anyone?) to make space for the new stuff. software carpentry: sc test; does your software do what you meant? “the single most important rule of testing is to do it.” — brian kernighan and rob pike, the practice of programming (quote taken from sc test page one of the trickiest aspects of developing software is making sure that it actually does what it’s supposed to. sometimes failures are obvious: you get completely unreasonable output or even (shock!) a comprehensible error message. but failures are often more subtle. would you notice if your result was out by a few percent, or consistently ignored the first row of your input data? the solution to this is testing: take some simple example input with a known output, run the code and compare the actual output with the expected one. implement a new feature, test and repeat. sounds easy, doesn’t it? but then you implement a new bit of code. you test it and everything seems to work fine, except that your new feature required changes to existing code and those changes broke something else. so in fact you need to test everything, and do it every time you make a change. further than that, you probably want to test that all your separate bits of code work together properly (integration testing) as well as testing the individual bits separately (unit testing). in fact, splitting your tests up like that is a good way of holding on to your sanity. this is actually a lot less scary than it sounds, because there are plenty of tools now to automate that testing: you just type a simple test command and everything is verified. there are even tools that enable you to have tests run automatically when you check the code into version control, and even automatically deploy code that passes the tests, a process known as continuous integration or ci. the big problems with testing are that it’s tedious, your code seems to work without it and no-one tells you off for not doing it. at the time when the software carpentry competition was being run, the idea of testing wasn’t new, but the tools to help were in their infancy. “existing tools are obscure, hard to use, expensive, don’t actually provide much help, or all three.” the sc test category asked entrants “to design a tool, or set of tools, which will help programmers construct and maintain black box and glass box tests of software components at all levels, including functions, modules, and classes, and whole programs.” the sc test category is interesting in that the competition administrators clearly found it difficult to specify what they wanted to see in an entry. in fact, the whole category was reopened with a refined set of rules and expectations. ultimately, it’s difficult to tell whether this category made a significant difference. where the tools to write tests used to be very sparse and difficult to use they are now many and several options exist for most programming languages. with this proliferation, several tried-and-tested methodologies have emerged which are consistent across many different tools, so while things still aren’t perfect they are much better. in recent years there has been a culture shift in the wider software development community towards both testing in general and test-first development, where the tests for a new feature are written first, and then the implementation is coded incrementally until all tests pass. the current challenge is to transfer this culture shift to the academic research community! tools for collaborative markdown editing photo by alan cleaver i really love markdown . i love its simplicity; its readability; its plain-text nature. i love that it can be written and read with nothing more complicated than a text-editor. i love how nicely it plays with version control systems. i love how easy it is to convert to different formats with pandoc and how it’s become effectively the native text format for a wide range of blogging platforms. one frustration i’ve had recently, then, is that it’s surprisingly difficult to collaborate on a markdown document. there are various solutions that almost work but at best feel somehow inelegant, especially when compared with rock solid products like google docs. finally, though, we’re starting to see some real possibilities. here are some of the things i’ve tried, but i’d be keen to hear about other options. . just suck it up to be honest, google docs isn’t that bad. in fact it works really well, and has almost no learning curve for anyone who’s ever used word (i.e. practically anyone who’s used a computer since the s). when i’m working with non-technical colleagues there’s nothing i’d rather use. it still feels a bit uncomfortable though, especially the vendor lock-in. you can export a google doc to word, odt or pdf, but you need to use google docs to do that. plus as soon as i start working in a word processor i get tempted to muck around with formatting. . git(hub) the obvious solution to most techies is to set up a github repo, commit the document and go from there. this works very well for bigger documents written over a longer time, but seems a bit heavyweight for a simple one-page proposal, especially over short timescales. who wants to muck around with pull requests and merging changes for a document that’s going to take days to write tops? this type of project doesn’t need a bug tracker or a wiki or a public homepage anyway. even without github in the equation, using git for such a trivial use case seems clunky. . markdown in etherpad/google docs etherpad is great tool for collaborative editing, but suffers from two key problems: no syntax highlighting or preview for markdown (it’s just treated as simple text); and you need to find a server to host it or do it yourself. however, there’s nothing to stop you editing markdown with it. you can do the same thing in google docs, in fact, and i have. editing a fundamentally plain-text format in a word processor just feels weird though. . overleaf/authorea overleaf and authorea are two products developed to support academic editing. authorea has built-in markdown support but lacks proper simultaneous editing. overleaf has great simultaneous editing but only supports markdown by wrapping a bunch of latex boilerplate around it. both ok but unsatisfactory. . stackedit now we’re starting to get somewhere. stackedit has both markdown syntax highlighting and near-realtime preview, as well as integrating with google drive and dropbox for file synchronisation. . hackmd hackmd is one that i only came across recently, but it looks like it does exactly what i’m after: a simple markdown-aware editor with live preview that also permits simultaneous editing. i’m a little circumspect simply because i know simultaneous editing is difficult to get right, but it certainly shows promise. . classeur i discovered classeur literally today: it’s developed by the same team as stackedit (which is now apparently no longer in development), and is currently in beta, but it looks to offer two killer features: real-time collaboration, including commenting, and pandoc-powered export to loads of different formats. anything else? those are the options i’ve come up with so far, but they can’t be the only ones. is there anything i’ve missed? other plain-text formats are available. i’m also a big fan of org-mode. &#x a ;þ e; software carpentry: sc track; hunt those bugs! this competition will be an opportunity for the next wave of developers to show their skills to the world — and to companies like ours. — dick hardt, activestate (quote taken from sc track page) all code contains bugs, and all projects have features that users would like but which aren’t yet implemented. open source projects tend to get more of these as their user communities grow and start requesting improvements to the product. as your open source project grows, it becomes harder and harder to keep track of and prioritise all of these potential chunks of work. what do you do? the answer, as ever, is to make a to-do list. different projects have used different solutions, including mailing lists, forums and wikis, but fairly quickly a whole separate class of software evolved: the bug tracker, which includes such well-known examples as bugzilla, redmine and the mighty jira. bug trackers are built entirely around such requests for improvement, and typically track them through workflow stages (planning, in progress, fixed, etc.) with scope for the community to discuss and add various bits of metadata. in this way, it becomes easier both to prioritise problems against each other and to use the hive mind to find solutions. unfortunately most bug trackers are big, complicated beasts, more suited to large projects with dozens of developers and hundreds or thousands of users. clearly a project of this size is more difficult to manage and requires a certain feature set, but the result is that the average bug tracker is non-trivial to set up for a small single-developer project. the sc track category asked entrants to propose a better bug tracking system. in particular, the judges were looking for something easy to set up and configure without compromising on functionality. the winning entry was a bug-tracker called roundup, proposed by ka-ping yee. here we have another tool which is still in active use and development today. given that there is now a huge range of options available in this area, including the mighty github, this is no small achievement. these days, of course, github has become something of a de facto standard for open source project management. although ostensibly a version control hosting platform, each github repository also comes with a built-in issue tracker, which is also well-integrated with the “pull request” workflow system that allows contributors to submit bug fixes and features themselves. github’s competitors, such as gitlab and bitbucket, also include similar features. not everyone wants to work in this way though, so it’s good to see that there is still a healthy ecosystem of open source bug trackers, and that software carpentry is still having an impact. software carpentry: sc config; write once, compile anywhere nine years ago, when i first release python to the world, i distributed it with a makefile for bsd unix. the most frequent questions and suggestions i received in response to these early distributions were about building it on different unix platforms. someone pointed me to autoconf, which allowed me to create a configure script that figured out platform idiosyncracies unfortunately, autoconf is painful to use – its grouping, quoting and commenting conventions don’t match those of the target language, which makes scripts hard to write and even harder to debug. i hope that this competition comes up with a better solution — it would make porting python to new platforms a lot easier! — guido van rossum, technical director, python consortium (quote taken from sc config page) on to the next software carpentry competition category, then. one of the challenges of writing open source software is that you have to make it run on a wide range of systems over which you have no control. you don’t know what operating system any given user might be using or what libraries they have installed, or even what versions of those libraries. this means that whatever build system you use, you can’t just send the makefile (or whatever) to someone else and expect everything to go off without a hitch. for a very long time, it’s been common practice for source packages to include a configure script that, when executed, runs a bunch of tests to see what it has to work with and sets up the makefile accordingly. writing these scripts by hand is a nightmare, so tools like autoconf and automake evolved to make things a little easier. they did, and if the tests you want to use are already implemented they work very well indeed. unfortunately they’re built on an unholy combination of shell scripting and the archaic gnu m macro language. that means if you want to write new tests you need to understand both of these as well as the architecture of the tools themselves — not an easy task for the average self-taught research programmer. sc conf, then, called for a re-engineering of the autoconf concept, to make it easier for researchers to make their code available in a portable, platform-independent format. the second round configuration tool winner was sapcat, “a tool to help make software portable”. unfortunately, this one seems not to have gone anywhere, and i could only find the original proposal on the internet archive. there were a lot of good ideas in this category about making catalogues and databases of system quirks to avoid having to rerun the same expensive tests again the way a standard ./configure script does. i think one reason none of these ideas survived is that they were overly ambitions, imagining a grand architecture where their tool provide some overarching source of truth. this is in stark contrast to the way most unix-like systems work, where each tool does one very specific job well and tools are easy to combine in various ways. in the end though, i think moore’s law won out here, making it easier to do the brute-force checks each time than to try anything clever to save time — a good example of avoiding unnecessary optimisation. add to that the evolution of the generic pkg-config tool from earlier package-specific tools like gtk-config, and it’s now much easier to check for particular versions and features of common packages. on top of that, much of the day-to-day coding of a modern researcher happens in interpreted languages like python and r, which give you a fully-functioning pre-configured environment with a lot less compiling to do. as a side note, tom tromey, another of the shortlisted entrants in this category, is still a major contributor to the open source world. he still seems to be involved in the automake project, contributes a lot of code to the emacs community too and blogs sporadically at the cliffs of inanity. semantic linefeeds: one clause per line i’ve started using “semantic linefeeds”, a concept i discovered on brandon rhodes' blog, when writing content, an idea described in that article far better than i could. i turns out this is a very old idea, promoted way back in the day by brian w kernighan, contributor to the original unix system, co-creator of the awk and ampl programming languages and co-author of a lot of seminal programming textbooks including “the c programming language”. the basic idea is that you break lines at natural gaps between clauses and phrases, rather than simply after the last word before you hit characters. keeping line lengths strictly to characters isn’t really necessary in these days of wide aspect ratios for screens. breaking lines at points that make semantic sense in the sentence is really helpful for editing, especially in the context of version control, because it isolates changes to the clause in which they occur rather than just the nearest -character block. i also like it because it makes my crappy prose feel just a little bit more like poetry. ☺ software carpentry: sc build; or making a better make software tools often grow incrementally from small beginnings into elaborate artefacts. each increment makes sense, but the final edifice is a mess. make is an excellent example: a simple tool that has grown into a complex domain-specific programming language. i look forward to seeing the improvements we will get from designing the tool afresh, as a whole… — simon peyton-jones, microsoft research (quote taken from sc build page) most people who have had to compile an existing software tool will have come across the venerable make tool (which usually these days means gnu make). it allows the developer to write a declarative set of rules specifying how the final software should be built from its component parts, mostly source code, allowing the build itself to be carried out by simply typing make at the command line and hitting enter. given a set of rules, make will work out all the dependencies between components and ensure everything is built in the right order and nothing that is up-to-date is rebuilt. great in principle but make is notoriously difficult for beginners to learn, as much of the logic for how builds are actually carried out is hidden beneath the surface. this also makes it difficult to debug problems when building large projects. for these reasons, the sc build category called for a replacement build tool engineered from the ground up to solve these problems. the second round winner, sccons, is a python-based make-like build tool written by steven knight. while i could find no evidence of any of the other shortlisted entries, this project (now renamed scons) continues in active use and development to this day. i actually use this one myself from time to time and to be honest i prefer it in many cases to trendy new tools like rake or grunt and the behemoth that is apache ant. its python-based sconstruct file syntax is remarkably intuitive and scales nicely from very simple builds up to big and complicated project, with good dependency tracking to avoid unnecessary recompiling. it has a lot of built-in rules for performing common build & compile tasks, but it’s trivial to add your own, either by combining existing building blocks or by writing a new builder with the full power of python. a minimal sconstruct file looks like this: program(&# ;hello.c&# ;) couldn’t be simpler! and you have the full power of python syntax to keep your build file simple and readable. it’s interesting that all the entries in this category apart from one chose to use a python-derived syntax for describing build steps. python was clearly already a language of choice for flexible multi-purpose computing. the exception is the entry that chose to use xml instead, which i think is a horrible idea (oh how i used to love xml!) but has been used to great effect in the java world by tools like ant and maven. what happened to the original software carpentry? “software carpentry was originally a competition to design new software tools, not a training course. the fact that you didn’t know that tells you how well it worked.” when i read this in a recent post on greg wilson’s blog, i took it as a challenge. i actually do remember the competition, although looking at the dates it was long over by the time i found it. i believe it did have impact; in fact, i still occasionally use one of the tools it produced, so greg’s comment got me thinking: what happened to the other competition entries? working out what happened will need a bit of digging, as most of the relevant information is now only available on the internet archive. it certainly seems that by november the domain name had been allowed to lapse and had been replaced with a holding page by the registrar. there were four categories in the competition, each representing a category of tool that the organisers thought could be improved: sc build: a build tool to replace make sc conf: a configuration management tool to replace autoconf and automake sc track: a bug tracking tool sc test: an easy to use testing framework i’m hoping to be able to show that this work had a lot more impact than greg is admitting here. i’ll keep you posted on what i find! changing static site generators: nanoc → hugo i’ve decided to move the site over to a different static site generator, hugo. i’ve been using nanoc for a long time and it’s worked very well, but lately it’s been taking longer and longer to compile the site and throwing weird errors that i can’t get to the bottom of. at the time i started using nanoc, static site generators were in their infancy. there weren’t the huge number of feature-loaded options that there are now, so i chose one and i built a whole load of blogging-related functionality myself. i did it in ways that made sense at the time but no longer work well with nanoc’s latest versions. so it’s time to move to something that has blogging baked-in from the beginning and i’m taking the opportunity to overhaul the look and feel too. again, when i started there weren’t many pre-existing themes so i built the whole thing myself and though i’m happy with the work i did on it it never quite felt polished enough. now i’ve got the opportunity to adapt one of the many well-designed themes already out there, so i’ve taken one from the hugo themes gallery and tweaked the colours to my satisfaction. hugo also has various features that i’ve wanted to implement in nanoc but never quite got round to it. the nicest one is proper handling of draft posts and future dates, but i keep finding others. there’s a lot of old content that isn’t quite compatible with the way hugo does things so i’ve taken the old nanoc-compiled content and frozen it to make sure that old links should still work. i could probably fiddle with it for years without doing much so it’s probably time to go ahead and publish it. i’m still not completely happy with my choice of theme but one of the joys of hugo is that i can change that whenever i want. let me know what you think! license except where otherwise stated, all content on erambler by jez cope is licensed under a creative commons attribution-sharealike . international license. rdm resources i occasionally get asked for resources to help someone learn more about research data management (rdm) as a discipline (i.e. for those providing rdm support rather than simply wanting to manage their own data). i’ve therefore collected a few resources together on this page. if you’re lucky i might even update it from time to time! first, a caveat: this is very focussed on uk higher education, though much of it will still be relevant for people outside that narrow demographic. my general recommendation would be to start with the digital curation centre (dcc) website and follow links out from there. i also have a slowly growing list of rdm links on diigo, and there’s an rdm section in my list of blogs and feeds too. mailing lists jiscmail is a popular list server run for the benefit of further and higher education in the uk; the following lists are particularly relevant: research-dataman data-publication digital-preservation lis-researchsupport the research data alliance have a number of interest groups and working groups that discuss issues by email events international digital curation conference — major annual conference research data management forum — roughly every six months, places are limited! rda plenary — also every months, but only about in every in europe books in no particular order: martin, victoria. demystifying eresearch: a primer for librarians. libraries unlimited, . borgman, christine l. big data, little data, no data: scholarship in the networked world. cambridge, massachusetts: the mit press, . corti, louise, veerle van den eynden, and libby bishop. managing and sharing research data. thousand oaks, ca: sage publications ltd, . pryor, graham, ed. managing research data. facet publishing, . pryor, graham, sarah jones, and angus whyte, eds. delivering research data management services: fundamentals of good practice. facet publishing, . ray, joyce m., ed. research data management: practical strategies for information professionals. west lafayette, indiana: purdue university press, . reports ‘ten recommendations for libraries to get started with research data management’. liber, august . http://libereurope.eu/news/ten-recommendations-for-libraries-to-get-started-with-research-data-management/. ‘science as an open enterprise’. royal society, june . https://royalsociety.org/policy/projects/science-public-enterprise/report/. mary auckland. ‘re-skilling for research’. rluk, january . http://www.rluk.ac.uk/wp-content/uploads/ / /rluk-re-skilling.pdf. journals international journal of digital curation (ijdc) journal of escience librarianship (jeslib) fairphone : initial thoughts on the original ethical smartphone i’ve had my eye on the fairphone for a while now, and when my current phone, an aging samsung galaxy s , started playing up i decided it was time to take the plunge. a few people have asked for my thoughts on the fairphone so here are a few notes. why i bought it the thing that sparked my interest, and the main reason for buying the phone really, was the ethical stance of the manufacturer. the small swedish company have gone to great lengths to ensure that both labour and materials are sourced as responsibly as possible. they regularly inspect the factories where the parts are made and assembled to ensure fair treatment of the workers and they source all the raw materials carefully to minimise the environmental impact and the use of conflict minerals. another side to this ethical stance is a focus on longevity of the phone itself. this is not a product with an intentionally limited lifespan. instead, it’s designed to be modular and as repairable as possible, by the owner themselves. spares are available for all of the parts that commonly fail in phones (including screen and camera), and at the time of writing the fairphone is the only phone to receive / for reparability from ifixit. there are plans to allow hardware upgrades, including an expansion port on the back so that nfc or wireless charging could be added with a new case, for example. what i like so far, the killer feature for me is the dual sim card slots. i have both a personal and a work phone, and the latter was always getting left at home or in the office or running out of charge. now i have both sims in the one phone: i can recieve calls on either number, turn them on and off independently and choose which account to use when sending a text or making a call. the os is very close to “standard” android, which is nice, and i really don’t miss all the extra bloatware that came with the galaxy s . it also has twice the storage of that phone, which is hardly unique but is still nice to have. overall, it seems like a solid, reliable phone, though it’s not going to outperform anything else at the same price point. it certainly feels nice and snappy for everything i want to use it for. i’m no mobile gamer, but there is that distant promise of upgradability on the horizon if you are. what i don’t like i only have two bugbears so far. once or twice it’s locked up and become unresponsive, requiring a “manual reset” (removing and replacing the battery) to get going again. it also lacks nfc, which isn’t really a deal breaker, but i was just starting to make occasional use of it on the s (mostly experimenting with my yubikey neo) and it would have been nice to try out android pay when it finally arrives in the uk. overall it’s definitely a serious contender if you’re looking for a new smartphone and aren’t bothered about serious mobile gaming. you do pay a premium for the ethical sourcing and modularity, but i feel that’s worth it for me. i’m looking forward to seeing how it works out as a phone. wiring my web i’m a nut for automating repetitive tasks, so i was dead pleased a few years ago when i discovered that ifttt let me plug different bits of the web together. i now use it for tasks such as: syndicating blog posts to social media creating scheduled/repeating todo items from a google calendar making a note to revisit an article i’ve starred in feedly i’d probably only be half-joking if i said that i spend more time automating things than i save not having to do said things manually. thankfully it’s also a great opportunity to learn, and recently i’ve been thinking about reimplementing some of my ifttt workflows myself to get to grips with how it all works. there are some interesting open source projects designed to offer a lot of this functionality, such as huginn, but i decided to go for a simpler option for two reasons: i want to spend my time learning about the apis of the services i use and how to wire them together, rather than learning how to use another big framework; and i only have a small amazon ec server to pay with and a heavy ruby on rails app like huginn (plus web server) needs more memory than i have. instead i’ve gone old-school with a little collection of individual scripts to do particular jobs. i’m using the built-in scheduling functionality of systemd, which is already part of a modern linux operating system, to get them to run periodically. it also means i can vary the language i use to write each one depending on the needs of the job at hand and what i want to learn/feel like at the time. currently it’s all done in python, but i want to have a go at lisp sometime, and there are some interesting new languages like go and julia that i’d like to get my teeth into as well. you can see my code on github as it develops: https://github.com/jezcope/web-plumbing. comments and contributions are welcome (if not expected) and let me know if you find any of the code useful. image credit: xkcd # , automation data is like water, and language is like clothing i admit it: i’m a grammar nerd. i know the difference between ‘who’ and ‘whom’, and i’m proud. i used to be pretty militant, but these days i’m more relaxed. i still take joy in the mechanics of the language, but i also believe that english is defined by its usage, not by a set of arbitrary rules. i’m just as happy to abuse it as to use it, although i still think it’s important to know what rules you’re breaking and why. my approach now boils down to this: language is like clothing. you (probably) wouldn’t show up to a job interview in your pyjamas , but neither are you going to wear a tuxedo or ballgown to the pub. getting commas and semicolons in the right place is like getting your shirt buttons done up right. getting it wrong doesn’t mean you’re an idiot. everyone will know what you meant. it will affect how you’re perceived, though, and that will affect how your message is perceived. and there are former rules that some still enforce that are nonetheless dropping out of regular usage. there was a time when everyone in an office job wore formal clothing. then it became acceptable just to have a blouse, or a shirt and tie. then the tie became optional and now there are many professions where perfectly well-respected and competent people are expected to show up wearing nothing smarter than jeans and a t-shirt. one such rule imho is that ‘data’ is a plural and should take pronouns like ‘they’ and ‘these’. the origin of the word ‘data’ is in the latin plural of ‘datum’, and that idea has clung on for a considerable period. but we don’t speak latin and the english language continues to evolve: ‘agenda’ also began life as a latin plural, but we don’t use the word ‘agendum’ any more. it’s common everyday usage to refer to data with singular pronouns like ‘it’ and ‘this’, and it’s very rare to see someone referring to a single datum (as opposed to ‘data point’ or something). if you want to get technical, i tend to think of data as a mass noun, like ‘water’ or ‘information’. it’s uncountable: talking about ‘a water’ or ‘an information’ doesn’t make much sense, but it uses singular pronouns, as in ‘this information’. if you’re interested, the oxford english dictionary also takes this position, while chambers leaves the choice of singular or plural noun up to you. there is absolutely nothing wrong, in my book, with referring to data in the plural as many people still do. but it’s no longer a rule and for me it’s weakened further from guideline to preference. it’s like wearing a bow-tie to work. there’s nothing wrong with it and some people really make it work, but it’s increasingly outdated and even a little eccentric. or maybe you’d totally rock it. &#x a ;þ e; like not starting a sentence with a conjunction… &#x a ;þ e; #idcc day : new ideas well, i did a great job of blogging the conference for a couple of days, but then i was hit by the bug that’s been going round and didn’t have a lot of energy for anything other than paying attention and making notes during the day! i’ve now got round to reviewing my notes so here are a few reflections on day . day was the day of many parallel talks! so many great and inspiring ideas to take in! here are a few of my take-home points. big science and the long tail the first parallel session had examples of practical data management in the real world. jian qin & brian dobreski (school of information studies, syracuse university) worked on reproducibility with one of the research groups involved with the recent gravitational wave discovery. “reproducibility” for this work (as with much of physics) mostly equates to computational reproducibility: tracking the provenance of the code and its input and output is key. they also found that in practice the scientists' focus was on making the big discovery, and ensuring reproducibility was seen as secondary. this goes some way to explaining why current workflows and tools don’t really capture enough metadata. milena golshan & ashley sands (center for knowledge infrastructures, ucla) investigated the use of software-as-a-service (saas, such as google drive, dropbox or more specialised tools) as a way of meeting the needs of long-tail science research such as ocean science. this research is characterised by small teams, diverse data, dynamic local development of tools, local practices and difficulty disseminating data. this results in a need for researchers to be generalists, as opposed to “big science” research areas, where they can afford to specialise much more deeply. such generalists tend to develop their own isolated workflows, which can differ greatly even within a single lab. long-tail research also often struggles from a lack of dedicated it support. they found that use of saas could help to meet these challenges, but with a high cost required to cover the needed guarantees of security and stability. education & training this session focussed on the professional development of library staff. eleanor mattern (university of pittsburgh) described the immersive training introduced to improve librarians' understanding of the data needs of their subject areas in delivering their rdm service delivery model. the participants each conducted a “disciplinary deep dive”, shadowing researchers and then reporting back to the group on their discoveries with a presentation and discussion. liz lyon (also university of pittsburgh, formerly ukoln/dcc) gave a systematic breakdown of the skills, knowledge and experience required in different data-related roles, obtained from an analysis of job adverts. she identified distinct roles of data analyst, data engineer and data journalist, and as well as each role’s distinctive skills, pinpointed common requirements of all three: python, r, sql and excel. this work follows on from an earlier phase which identified an allied set of roles: data archivist, data librarian and data steward. data sharing and reuse this session gave an overview of several specific workflow tools designed for researchers. marisa strong (university of california curation centre/california digital libraries) presented dash, a highly modular tool for manual data curation and deposit by researchers. it’s built on their flexible backend, stash, and though it’s currently optimised to deposit in their merritt data repository it could easily be hooked up to other repositories. it captures datacite metadata and a few other fields, and is integrated with orcid to uniquely identify people. in a different vein, eleni castro (institute for quantitative social science, harvard university) discussed some of the ways that harvard’s dataverse repository is streamlining deposit by enabling automation. it provides a number of standardised endpoints such as oai-pmh for metadata harvest and sword for deposit, as well as custom apis for discovery and deposit. interesting use cases include: an addon for the open science framework to deposit in dataverse via sword an r package to enable automatic deposit of simulation and analysis results integration with publisher workflows open journal systems a growing set of visualisations for deposited data in the future they’re also looking to integrate with dmptool to capture data management plans and with archivematica for digital preservation. andrew treloar (australian national data service) gave us some reflections on the ands “applications programme”, a series of small funded projects intended to address the fourth of their strategic transformations, single use → reusable. he observed that essentially these projects worked because they were able to throw money at a problem until they found a solution: not very sustainable. some of them stuck to a traditional “waterfall” approach to project management, resulting in “the right solution years late”. every researcher’s needs are “special” and communities are still constrained by old ways of working. the conclusions from this programme were that: “good enough” is fine most of the time adopt/adapt/augment is better than build existing toolkits let you focus on the % functionality that’s missing succussful projects involved research champions who can: ) articulate their community’s requirements; and ) promote project outcomes summary all in all, it was a really exciting conference, and i’ve come home with loads of new ideas and plans to develop our services at sheffield. i noticed a continuation of some of the trends i spotted at last year’s idcc, especially an increasing focus on “second-order” problems: we’re no longer spending most of our energy just convincing researchers to take data management seriously and are able to spend more time helping them to do it better and get value out of it. there’s also a shift in emphasis (identified by closing speaker cliff lynch) from sharing to reuse, and making sure that data is not just available but valuable. #idcc day : open data the main conference opened today with an inspiring keynote by barend mons, professor in biosemantics, leiden university medical center. the talk had plenty of great stuff, but two points stood out for me. first, prof mons described a newly discovered link between huntingdon’s disease and a previously unconsidered gene. no-one had previously recognised this link, but on mining the literature, an indirect link was identified in more than % of the roughly million scientific claims analysed. this is knowledge for which we already had more than enough evidence, but which could never have been discovered without such a wide-ranging computational study. second, he described a number of behaviours which should be considered “malpractice” in science: relying on supplementary data in articles for data sharing: the majority of this is trash (paywalled, embedded in bitmap images, missing) using the journal impact factor to evaluate science and ignoring altmetrics not writing data stewardship plans for projects (he prefers this term to “data management plan”) obstructing tenure for data experts by assuming that all highly-skilled scientists must have a long publication record a second plenary talk from andrew sallons of the centre for open science introduced a number of interesting-looking bits and bobs, including the transparency & openness promotion (top) guidelines which set out a pathway to help funders, publishers and institutions move towards more open science. the rest of the day was taken up with a panel on open data, a poster session, some demos and a birds-of-a-feather session on sharing sensitive/confidential data. there was a great range of posters, but a few that stood out to me were: lessons learned about iso (“audit and certification of trustworthy digital repositories”) certification from the british library two separate posters (from the universities of toronto and colorado) about disciplinary rdm information & training for liaison librarians a template for sharing psychology data developed by a psychologist-turned-information researcher from carnegie mellon university more to follow, but for now it’s time for the conference dinner! #idcc day : business models for research data management i’m at the international digital curation conference (#idcc ) in amsterdam this week. it’s always a good opportunity to pick up some new ideas and catch up with colleagues from around the world, and i always come back full of new possibilities. i’ll try and do some more reflective posts after the conference but i thought i’d do some quick reactions while everything is still fresh. monday and thursday are pre- and post-conference workshop days, and today i attended developing research data management services. joy davidson and jonathan rans from the digital curation centre (dcc) introduced us to the business model canvas, a template for designing a business model on a single sheet of paper. the model prompts you to think about all of the key facets of a sustainable, profitable business, and can easily be adapted to the task of building a service model within a larger institution. the dcc used it as part of the collaboration to clarify curation costs ( c) project, whose output the curation costs exchange is also worth a look. it was a really useful exercise to be able to work through the whole process for an aspect of research data management (my table focused on training & guidance provision), both because of the ideas that came up and also the experience of putting the framework into practice. it seems like a really valuable tool and i look forward to seeing how it might help us with our rdm service development. tomorrow the conference proper begins, with a range of keynotes, panel sessions and birds-of-a-feather meetings so hopefully more then! about me i help people in higher education communicate and collaborate more effectively using technology. i currently work at the university of sheffield focusing on research data management policy, practice, training and advocacy. in my free time, i like to: run; play the accordion; morris dance; climb; cook; read (fiction and non-fiction); write. better science through better data #scidata better science through better doughnutsjez cope update: fixed the link to the slides so it works now! last week i had the honour of giving my first ever keynote talk, at an event entitled better science through better data hosted jointly by springer nature and the wellcome trust. it was nerve-wracking but exciting and seemed to go down fairly well. i even got accidentally awarded a phd in the programme — if only it was that easy! the slides for the talk, “supporting open research: the role of an academic library”, are available online (doi: . /shef.data. ), and the whole event was video’d for posterity and viewable online. i got some good questions too, mainly from the clever online question system. i didn’t get to answer all of them, so i’m thinking of doing a blog post or two to address a few more. there were loads of other great presentations as well, both keynotes and -minute lightning talks, so i’d encourage you to take a look at at least some of it. i’ll pick out a few of my highlights. dr aled edwards (university of toronto) there’s a major problem with science funding that i hadn’t really thought about before. the available funding pool for research is divided up into pots by country, and often by funding body within a country. each of these pots have robust processes to award funding to the most important problems and most capable researchers. the problem comes because there is no coordination between these pots, so researchers all over the world end up getting funded to research the most popular problems leading to a lot of duplication of effort. industry funding suffers from a similar problem, particularly the pharmaceutical industry. because there is no sharing of data or negative results, multiple companies spend billions researching the same dead ends chasing after the same drugs. this is where the astronomical costs of drug development come from. dr edwards presented one alternative, modelled by a company called m k pharma. the idea is to use existing ip laws to try and give academic researchers a reasonable, morally-justifiable and sustainable profit on drugs they develop, in contrast to the current model where basic research is funded by governments while large corporations hoover up as much profit as they possibly can. this new model would develop drugs all the way to human trial within academia, then license the resulting drugs to companies to manufacture with a price cap to keep the medicines affordable to all who need them. core to this effort is openness with data, materials and methodology, and dr edwards presented several examples of how this approach benefited academic researchers, industry and patients compared with a closed, competitive focus. dr kirstie whitaker (alan turing institute) this was a brilliant presentation, presenting a practical how-to guide to doing reproducible research, from one researcher to another. i suggest you take a look at her slides yourself: showing your working: a how-to guide to reproducible research. dr whitaker briefly addressed a number of common barriers to reproducible research: is not considered for promotion: so it should be! held to higher standards than others: reviewers should be discouraged from nitpicking just because the data/code/whatever is available (true unbiased peer review of these would be great though) publication bias towards novel findings: it is morally wrong to not publish reproductions, replications etc. so we need to address the common taboo on doing so plead the th: if you share, people may find flaws, but if you don’t they can’t — if you’re worried about this you should ask yourself why! support additional users: some (much?) of the burden should reasonably on the reuser, not the sharer takes time: this is only true if you hack it together after the fact; if you do it from the start, the whole process will be quicker! requires additional skills: important to provide training, but also to judge phd students on their ability to do this, not just on their thesis & papers the rest of the presentation, the “how-to” guide of the title' was a well-chosen and passionately delivered set of recommendations, but the thing that really stuck out for me is how good dr whitaker is at making the point that you only have to do one of these things to improve the quality of your research. it’s easy to get the impression at the moment that you have to be fully, perfectly open or not at all, but it’s actually ok to get there one step at a time, or even not to go all the way at all! anyway, i think this is a slide deck that speaks for itself, so i won’t say any more! lightning talk highlights there was plenty of good stuff in the lightning talks, which were constrained to minutes each, but a few of the things that stood out for me were, in no particular order: code ocean — share and run code in the cloud dat project — peer to peer data syncronisation tool can automate metadata creation, data syncing, versioning set up a secure data sharing network that keeps the data in sync but off the cloud berlin institute of health — open science course for students pre-print paper course materials intermine — taking the pain out of data cleaning & analysis nix/nixos as a component of a reproducible paper bonej (imagej plugin for bone analysis) — developed by a scientist, used a lot, now has a wellcome-funded rse to develop next version esasky — amazing live, online archive of masses of astronomical data coda i really enjoyed the event (and the food was excellent too). my thanks go out to: the programme committee for asking me to come and give my take — i hope i did it justice! the organising team who did a brilliant job of keeping everything running smoothly before and during the event the university of sheffield for letting me get away with doing things like this! blog platform switch i’ve just switched my blog over to the nikola static site generator. hopefully you won’t notice a thing, but there might be a few weird spectres around til i get all the kinks ironed out. i’ve made the switch for a couple of main reasons: nikola supports jupyter notebooks as a source format for blog posts, which will be useful to include code snippets it’s written in python, a language which i actually know, so i’m more likely to be able to fix things that break, customise it and potentially contribute to the open source project (by contrast, hugo is written in go, which i’m not really familiar with) chat rooms vs twitter: how i communicate now cc , pixabay this time last year, brad colbow published a comic in his “the brads” series entitled “the long slow death of twitter”. it really encapsulates the way i’ve been feeling about twitter for a while now. go ahead and take a look. i’ll still be here when you come back. according to my twitter profile, i joined in february as user # , , . it was nearing its rd birthday and, though there were clearly a lot of people already signed up at that point, it was still relatively quiet, especially in the uk. i was a lonely phd student just starting to get interested in educational technology, and one thing that twitter had in great supply was (and still is) people pushing back the boundaries of what tech can do in different contexts. somewhere along the way twitter got really noisy, partly because more people (especially commercial companies) are using it more to talk about stuff that doesn’t interest me, and partly because i now follow , + people and find i get several tweets a second at peak times, which no-one could be expected to handle. more recently i’ve found my attention drawn to more focussed communities instead of that big old shouting match. i find i’m much more comfortable discussing things and asking questions in small focussed communities because i know who might be interested in what. if i come across an article about a cool new python library, i’ll geek out about it with my research software engineer friends; if i want advice on an aspect of my emacs setup, i’ll ask a bunch of emacs users. i feel like i’m talking to people who want to hear what i’m saying. next to that experience, twitter just feels like standing on a street corner shouting. irc channels (mostly on freenode), and similar things like slack and gitter form the bulk of this for me, along with a growing number of whatsapp group chats. although online chat is theoretically a synchronous medium, i find that i can treat it more as “semi-synchronous”: i can have real-time conversations as they arise, but i can also close them and tune back in later to catch up if i want. now i come to think about it, this is how i used to treat twitter before the , follows happened. i also find i visit a handful of forums regularly, mostly of the reddit link-sharing or stackexchange q&a type. /r/buildapc was invaluable when i was building my latest box, /r/earthporn (very much not nsfw) is just beautiful. i suppose the risk of all this is that i end up reinforcing my own echo chamber. i’m not sure how to deal with that, but i certainly can’t deal with it while also suffering from information overload. not just certifiable… a couple of months ago, i went to oxford for an intensive, -day course run by software carpentry and data carpentry for prospective new instructors. i’ve now had confirmation that i’ve completed the checkout procedure so it’s official: i’m now a certified data carpentry instructor! as far as i’m aware, the certification process is now combined, so i’m also approved to teach software carpentry material too. and of course there’s library carpentry too… ssi fellowship i’m honoured and excited to be named one of this year’s software sustainability institute fellows. there’s not much to write about yet because it’s only just started, but i’m looking forward to sharing more with you. in the meantime, you can take a look at the fellowship announcement and get an idea of my plans from my application video: talks here is a selection of talks that i’ve given. {{% template %}} <%! import arrow %> date title location % for talk in post.data("talks"): % if 'date' in talk: ${date.format('ddd d mmm yyyy')} % endif % if 'url' in talk: % endif ${talk['title']} % if 'url' in talk: % endif ${talk.get('location', '')} % endfor {{% /template %}} more thoughts on pre-recording conference talks | disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email more thoughts on pre-recording conference talks posted on april ,     minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion about recording talks to fill in gaps—positive and negative—about the concept, and i was not disappointed. i’m particularly thankful to lisa janicke hinchliffe and andromeda yelton along with jason griffey, junior tidal, and edward lim junhao for generously sharing their thoughts. daniel s and kate deibel also commented on the code lib slack team. i added to the previous article’s bullet points and am expanding on some of the issues here. i’m inviting everyone mentioned to let me know if i’m mischaracterizing their thoughts, and i will correct this post if i hear from them. (i haven’t found a good comments system to hook into this static site blog.) pre-recorded talks limit presentation format lisa janicke hinchliffe made this point early in the feedback: @datag for me downside is it forces every session into being a lecture. for two decades cfps have emphasized how will this season be engaging/not just a talking head? i was required to turn workshops into talks this year. even tho tech can do more. not at all best pedagogy for learning — lisa janicke hinchliffe (@lisalibrarian) april , jason described the “flipped classroom” model that he had in mind as the nisoplus program was being developed. the flipped classroom model is one where students do the work of reading material and watching lectures, then come to the interactive time with the instructors ready with questions and comments about the material. rather than the instructor lecturing during class time, the class time becomes a discussion about the material. for nisoplus, “the recording is the material the speaker and attendees are discussing” during the live zoom meetings. in the previous post, i described how the speaker could respond in text chat while the recording replay is beneficial. lisa went on to say: @datag q+a is useful but isn't an interactive session. to me, interactive = participants are co-creating the session, not watching then commenting on it. — lisa janicke hinchliffe (@lisalibrarian) april , she described an example: the ssp preconference she ran at chs. i’m paraphrasing her tweets in this paragraph. the preconference had a short keynote and an “oprah-style” panel discussion (not pre-prepared talks). this was done live; nothing was recorded. after the panel, people worked in small groups using zoom and a set of google slides to guide the group work. the small groups reported their discussions back to all participants. andromeda points out (paraphrasing twitter-speak): “presenters will need much more— and more specialized—skills to pull it off, and it takes a lot more work.” and lisa adds: “just so there is no confusion … i don’t think being online makes it harder to do interactive. it’s the pre-recording. interactive means participants co-create the session. a pause to chat isn’t going to shape what comes next on the recording.” increased technical burden on speakers and organizers @thatandromeda @datag totally agree on this. i had to pre-record a conference presentation recently and it was a terrible experience, logistically. i feel like it forces presenters to become video/sound editors, which is obviously another thing to worry about on top of content and accessibility. — junior tidal (@juniortidal) april , andromeda also agreed with this: “i will say one of the things i appreciated about niso is that @griffey did all the video editing, so i was not forced to learn how that works.” she continued, “everyone has different requirements for prerecording, and in [code lib’s] case they were extensive and kept changing.” and later added: “part of the challenge is that every conference has its own tech stack/requirements. if as a presenter i have to learn that for every conference, it’s not reducing my workload.” it is hard not to agree with this; a high-quality (stylistically and technically) recording is not easy to do with today’s tools. this is also a technical burden for meeting organizers. the presenters will put a lot of work into talks—including making sure the recordings look good; whatever playback mechanism is used has to honor the fidelity of that recording. for instance, presenters who have gone through the effort to ensure the accessibility of the presentation color scheme want the conference platform to display the talk “as i created it.” the previous post noted that recorded talks also allow for the creation of better, non-real-time transcriptions. lisa points out that presenters will want to review that transcription for accuracy, which jason noted adds to the length of time needed before the start of a conference to complete the preparations. increased logistical burden on presenters @thatandromeda @datag @griffey even if prep is no more than the time it would take to deliver live (which has yet to be case for me and i'm good at this stuff), it is still double the time if you are expected to also show up live to watch along with everyone else. — lisa janicke hinchliffe (@lisalibrarian) april , this is a consideration i hadn’t thought through—that presenters have to devote more clock time to the presentation because first they have to record it and then they have to watch it. (or, as andromeda added, “significantly more than twice the time for some people, if they are recording a bunch in order to get it right and/or doing editing.”) no. audience. reaction. @datag @griffey ) no. audience. reaction. i give a joke and no one laughs. was it funny? was it not funny? talks are a *performance* and a *relationship*; i'm getting energy off the audience, i'm switching stuff on the fly to meet their vibe. prerecorded/webinar is dead. feels like i'm bombing. — andromeda yelton (@thatandromeda) april , wow, yes. i imagine it would take a bit of imagination to get in the right mindset to give a talk to a small camera instead of an audience. i wonder how stand-up comedians are dealing with this as they try to put on virtual shows. andromeda summed this up: @datag @griffey oh and i mean ) i don't get tenure or anything for speaking at conferences and goodness knows i don't get paid. so the entire benefit to me is that i enjoy doing the talk and connect to people around it. prerecorded talk + f f conf removes one of these; online removes both. — andromeda yelton (@thatandromeda) april , also in this heading could be “no speaker reaction”—or the inability for subsequent speakers at a conference to build on something that someone said earlier. in the code lib slack team, daniel s noted: “one thing comes to mind on the pre-recording [is] the issue that prerecorded talks lose the ‘conversation’ aspect where some later talks at a conference will address or comment on earlier talks.” kate deibel added: “exactly. talks don’t get to spontaneously build off of each other or from other conversations that happen at the conference.” currency of information lisa points out that pre-recording talks before en event means there is a delay between the recording and the playback. in the example she pointed out, there was a talk at rluk that pre-recorded would have been about the university of california working on an open access deal with elsevier; live, it was able to be “the deal we announced earlier this week”. conclusions? near the end of the discussion, lisa added: @datag @griffey @thatandromeda i also recommend going forward that the details re what is required of presenters be in the cfp. it was one thing for conferences that pivoted (huge effort!) but if you write the cfp since the pivot it should say if pre-record, platform used, etc. — lisa janicke hinchliffe (@lisalibrarian) april , …and andromeda added: “strong agree here. i understand that this year everyone was making it up as they went along, but going forward it’d be great to know that in advance.” that means conferences will need to take these needs into account well before the call for proposals (cfp) is published. a conference that is thinking now about pre-recording their talks must work through these issues and set expectations with presenters early. as i hoped, the twiter replies tempered my eagerness for the all-recorded style with some real-world experience. there could be possibilities here, but adapting face-to-face meetings to a world with less travel won’t be simple and will take significant thought beyond the issues of technology platforms. edward lim junhao summarized this nicely: “i favor unpacking what makes up our prof conferences. i’m interested in recreating that shared experience, the networking, & the serendipity of learning sth you didn’t know. i feel in-person conferences now have to offer more in order to justify people traveling to attend them.” related, andromeda said: “also, for a conf that ultimately puts its talks online, it’s critical that it have something beyond content delivery during the actual conference to make it worth registering rather than just waiting for youtube. realtime interaction with the speaker is a pretty solid option.” if you have something to add, reach out to me on twitter. given enough responses, i’ll create another summary. let’s keep talking about what that looks like and sharing discoveries with each other. the tree of tweets it was a great discussion, and i think i pulled in the major ideas in the summary above. with some guidance from ed summers, i’m going to embed the twitter threads below using treeverse by paul butler. we might be stretching the boundaries of what is possible, so no guarantees that this will be viewable for the long term. tags: code lib, covid , meeting planning, nisoplus categories: l/is profession twitter facebook linkedin previous next you may also enjoy should all conference talks be pre-recorded? minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and con... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... running an all-online conference with zoom [post removed] less than minute read this is an article draft that was accidentally published. i hope to work on a final version soon. if you really want to see it, i saved a copy on the interne... enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. hackathon - wikipedia hackathon from wikipedia, the free encyclopedia jump to navigation jump to search event in which groups of software developers work at an accelerated pace a hackathon (also known as a hack day, hackfest, datathon or codefest; a portmanteau of hacking marathon) is a design sprint-like event; often, in which computer programmers and others involved in software development, including graphic designers, interface designers, project managers, domain experts, and others collaborate intensively on software projects. the goal of a hackathon is to create functioning software or hardware by the end of the event.[ ] hackathons tend to have a specific focus, which can include the programming language used, the operating system, an application, an api, or the subject and the demographic group of the programmers. in other cases, there is no restriction on the type of software being created. contents etymology structure types of hackathons . for an application type . using a specific programming language, api, or framework . for a cause or purpose . as a tribute or a memorial . for a demographic group . for internal innovation and motivation . to connect local tech communities . code sprints . edit-a-thon controversies notable events see also references external links etymology[edit] the word "hackathon" is a portmanteau of the words "hack" and "marathon", where "hack" is used in the sense of exploratory programming, not its alternate meaning as a reference to breaching computer security. openbsd's apparent first use of the term referred to a cryptographic development event held in calgary on june , ,[ ] where ten developers came together to avoid legal problems caused due to export regulations of cryptographic software from the united states. since then, a further three-to-five events per year have occurred around the world to advance development, generally on university campuses. for sun microsystems, the usage referred to an event at the javaone conference from june to june , ; there john gage challenged attendees to write a program in java for the new palm v using the infrared port to communicate with other palm users and register it on the internet. starting in the mid to late s, hackathons became significantly more widespread and began to be increasingly viewed by companies and venture capitalists as a way to quickly develop new software technologies, and to locate new areas for innovation and funding. some major companies were born from these hackathons, such as groupme, which began as a project at a hackathon at the techcrunch disrupt conference; in it was acquired by skype for $ million. the software phonegap began as a project at the iphonedevcamp (later renamed iosdevcamp) in ;[ ] the company whose engineers developed phonegap, nitobi, refocused itself around phonegap, and nitobi was bought by adobe in for an undisclosed amount.[ ] structure[edit] hackathons typically start with communication via a presentation or a web page from the hosting organization that mentions the objectives, terms, and details of the hackathon. developers register to participate in the hackathon and are qualified after the organization screens their background and skills. when the hackathon event begins, the participating individuals or teams start their programming work. the administrator of the hackathon is typically able to answer questions and offer help when there issues come up in the event. hackathons can last several hours to several days. for hackathons that last hours or longer, especially competitive ones, eating is often informal, with participants often subsisting on food like pizza and energy drinks. sometimes sleeping is informal as well, with participants sleeping on-site with sleeping bags. at the end of hackathons, there are usually a series of demonstrations in which each group presents their results. to capture the great ideas and work-in-progress often people post a video of the demonstrations, blog about results with screenshots and details, share links and progress on social media, suggest a place for open source code and generally make it possible for people to share, learn from and possibly build from the ideas generated and initial work completed. there is sometimes a contest element as well, in which a panel of judges select the winning teams, and prizes are given. at many hackathons, the judges are made up of organisers and sponsors. at barcamp-style hackathons, that are organised by the development community, such as iosdevcamp, the judges are usually made up of peers and colleagues in the field. such prizes are sometimes a substantial amount of money: a social gaming hackathon at the techcrunch disrupt conference offered $ , in funding to the winners, while a controversial[ ] hackathon run by salesforce.com had a payout of $ million to the winners, billed as the largest-ever prize.[ ] types of hackathons[edit] for an application type[edit] some hackathons focus on a particular platform such as mobile apps, a desktop operating system, web development or video game development. mobile app hackathons like over the air, held at phoenix park, ireland, can see a large amount of corporate sponsorship and interest.[ ][ ] music hack day, a hackathon for music-related software and hardware applications, is a popular event, having been held over times around the world since .[ ] also music tech fest, a three-day interdisciplinary festival for music ideas bringing together musicians with hackers, researchers and industry, features a hackathon.[ ] similarly, science hack day, a hackathon for making things with science, has been held over times in over countries around the world since .[ ] hackathons have been held to develop applications that run on various mobile device operating systems, such as android,[ ] ios[ ] and meego.[ ] hackathons have also been held to develop video-based applications and computer games.[ ] hackathons where video games are developed are sometimes called game jams. "tv hackfest" events have been held in both london[ ] and san francisco,[ ] focusing mainly on social television and second screen technologies. in tv hackfests, challenge briefs are typically submitted by content producers and brands, in the form of broadcast industry metadata or video content, while sponsors supply apis, sdks and pre-existing open source software code.[ ] hackathons have also been used in the life sciences to advance the informatics infrastructure that supports research. the open bioinformatics foundation ran two hackathons for its member projects in and , and since has held -day "codefests" preceding its annual conference.[ ] the national evolutionary synthesis center has co-organized and sponsored hackathons for evolutionary bioinformatics since .[ ][ ] biohackathon[ ] is an annual event that started in targeted at advancing standards to enable interoperable bioinformatics tools and web services. neuroscientists have also used hackathons to bring developers and scientists together to address issues that range from focusing on a specific information system (e.g., neurosynth hackathon[ ] and the allen brain atlas hackathon[ ]) and providing reserved time for broad scientific inquiry (e.g., brainhack),[ ] to using specific challenges that focus hacking activity (e.g., hbm hackathon).[ ] there has been an emergence of 'datathons' or data-focused hackathons in recent years.[ ][ ][ ] these events challenge data scientists and others to use creativity and data analysis skills and platforms to build, test and explore solutions and dashboards which analyse huge datasets in a limited amount of time. these are increasingly being used to deliver insights in big public and private datasets in various disciplines including business,[ ] health care[ ][ ] news media[ ] and for social causes.[ ] using a specific programming language, api, or framework[edit] there have been hackathons devoted to creating applications that use a specific language or framework, like javascript,[ ] node.js,[ ] html [ ] and ruby on rails.[ ] some hackathons focus on applications that make use of the application programming interface, or api, from a single company or data source. open hack, an event run publicly by yahoo! since (originally known as "hack day", then "open hack day"), has focused on usage of the yahoo! api, in addition to apis of websites owned by yahoo!, like flickr.[ ] the company's open hack india event in had over attendees.[ ] google has run similar events for their apis,[ ] as has the travel guide company lonely planet.[ ] the website foursquare notably held a large, global hackathon in , in which over developers at over sites around the world competed to create applications using the foursquare api.[ ] a second foursquare hackathon, in , had around developers.[ ] the ietf organizes hackathons for each ietf meetings which are focused on ietf internet draft and ietf rfc implementation for better inter-operability and improved internet standards.[ ] for a cause or purpose[edit] there have been a number of hackathons devoted to improving government, and specifically to the cause of open government.[ ] one such event, in , was hosted by the united states congress.[ ] starting in , nasa has been annually hosting the international space apps challenge. in , the british government and hackernest ran dementiahack,[ ] the world's first hackathon dedicated to improving the lives of people living with dementia and their caregivers.[ ][ ] the series continues in , adding the canadian government and facebook as major sponsors.[ ] the global game jam, the largest video game development hackathon,[ ] often includes optional requirements called 'diversifiers'[ ] that aim to promote game accessibility and other causes. various hackathons have been held to improve city transit systems.[ ] hackathons aimed at improvements to city local services are increasing, with one of the london councils (hackney) creating a number of successful local solutions with a two-day hackney-thon.[ ] there have also been a number of hackathons devoted to improving education, including education hack day[ ] and on a smaller scale, looking specifically at the challenges of field work based geography education, the field studies council[ ] hosted fschackday.[ ] random hacks of kindness is another popular hackathon, devoted to disaster management and crisis response.[ ] theport[ ] instead is a hackathon devoted to solving humanitarian, social and public interest challenges. it's hosted by cern with partners from other non-governmental organizations such as icrc and undp. in march , numerous world-wide initiatives led by entrepreneurs and governmental representatives from european countries resulted in a series of anti-crisis hackathons hack the crisis, with first to happen in estonia,[ ] followed up by poland,[ ] latvia, and ukraine. as a tribute or a memorial[edit] a number of hackathons around the world have been planned in memory of computer programmer and internet activist aaron swartz, who died in .[ ][ ][ ][ ] for a demographic group[edit] some hackathons are intended only for programmers within a certain demographic group, like teenagers, college students, or women.[ ] hackathons at colleges have become increasingly popular, in the united states and elsewhere. these are usually annual or semiannual events that are open to college students at all universities. they are often competitive, with awards provided by the university or programming-related sponsors. many of them are supported by the organization major league hacking, which was founded in to assist with the running of collegiate hackathons. pennapps at the university of pennsylvania was the first student-run college hackathon; in it became the largest college hackathon with its th iteration hosting over people and offering over $ k in prizes.[ ][ ] the university of mauritius computer club and cyberstorm.mu organized a hackathon dubbed "code wars" focused on implementing an ietf rfc in lynx in .[ ][ ] shamhacks at missouri university of science and technology is held annually as an outreach activity of the campus's curtis laws wilson library. shamhacks [ ] focused on problem statements to better quality of life factors for us veterans, by pairing with veteran-owned company sponsors.[ ] for internal innovation and motivation[edit] some companies hold internal hackathons to promote new product innovation by the engineering staff. for example, facebook's like button was conceived as part of a hackathon.[ ] to connect local tech communities[edit] some hackathons (such as startupbus, founded in in australia) combine the competitive element with a road trip, to connect local tech communities in multiple cities along the bus routes. this is now taking place across north america, europe, africa and australasia.[ ] code sprints[edit] not to be confused with scrum (software development) § sprint. in some hackathons, all work is on a single application, such as an operating system, programming language, or content management system. such events are often known as "code sprints", and are especially popular for open source software projects, where such events are sometimes the only opportunity for developers to meet face-to-face.[ ] code sprints typically last from one week to three weeks and often take place near conferences at which most of the team attend. unlike other hackathons, these events rarely include a competitive element. the annual hackathon to work on the operating system openbsd, held since , is one such event; it may have originated the word "hackathon".[citation needed] edit-a-thon[edit] an edit-a-thon (a portmanteau of editing marathon) is an event where editors of online communities such as wikipedia, openstreetmap (also as a "mapathon"), and localwiki edit and improve a specific topic or type of content. the events typically including basic editing training for new editors. controversies[edit] this section is in list format, but may read better as prose. you can help by converting this section, if appropriate. editing help is available. (november ) a team at the september techcrunch disrupt hackathon presented the titstare app, which allowed users to post and view pictures of men staring at women's cleavage.[ ] techcrunch issued an apology later that day.[ ] a november hackathon run by salesforce.com, billed as having the largest-ever grand prize at $ million, was accused of impropriety after it emerged that the winning entrants, a two-person startup called upshot, had been developing the technology that they demoed for over a year and that one of the two was a former salesforce employee.[ ] major league hacking expelled a pair of hackers from the september hackathon hack the north at the university of waterloo for making jokes that were interpreted as bomb threats, leading many hackers to criticize the organization.[ ] as a result of the controversy, victor vucicevich resigned from the hack the north organizing team.[ ] use of hackathon participants as de facto unpaid laborers by some commercial ventures has been criticized as exploitative.[ ][ ]: – notable events[edit] mhacks hackmit junction (hackathon) see also[edit] mediawiki has documentation related to: hackathons game jam installfest editathon charrette startup weekend campus party references[edit] ^ "hackathon definition". dictionary.com. ^ "openbsd hackathons". openbsd. retrieved - - . ^ phonegap: it’s like air for the iphone archived - - at the wayback machine, dave johnson, phonegap blog, september ^ adobe acquires developer of html mobile app framework phonegap nitobi, leena rao, techcrunch, october , ^ a b biddle, sam (november , ). "the "biggest hackathon prize in history" was won by cheaters". valleywag. ^ williams, alex (november , ). "two harvard university alum win disputed salesforce $ m hackathon prize at dreamforce [updated]". techcrunch. ^ hackers get hired at bletchley park archived - - at the wayback machine, huffpost tech uk, september , ^ "mobile app hackathon - techventure ". december . archived from the original on december . retrieved march . ^ "music hack day homepage". musichackday.org. retrieved - - . ^ rich, l. j. ( - - ). "music hackathon at music tech fest in boston". bbc news. bbc.com. retrieved - - . ^ "science hack day homepage". sciencehackday.org. retrieved - - . ^ "android hackathon". android hackathon. - - . retrieved - - . ^ "iosdevcamp hackathon". iosdevcamp.org. retrieved - - . ^ "n hackathon" (in german). metalab.at. retrieved - - . ^ "nordeus game development hackathon". seehub.me. archived from the original on - - . retrieved - - . ^ "tv hackfest homepage". hackfest.tv. retrieved - - . ^ "article on tv hackfest san francisco". techzone .com. - - . retrieved - - . ^ "pdf of feature article on tv hackfest in aib the channel" (pdf). archived from the original (pdf) on - - . retrieved - - . ^ "obf hackathons". open-bio.org. - - . retrieved - - . ^ "nescent-sponsored hackathons". informatics.nescent.org. retrieved - - . ^ t hill ( - - ). "hilmar lapp, sendu bala, james p. balhoff, amy bouck, naohisa goto, mark holder, richard holland, et al. . "the nescent phyloinformatics hackathon: a field report." evolutionary bioinformatics online : – ". la-press.com. retrieved - - . ^ "biohackathon.org". biohackathon.org. retrieved - - . ^ "hackathon.neurosynth.org". hackathon.neurosynth.org. archived from the original on - - . retrieved - - . ^ " allen brain atlas hackathon - hackathon - allen brain atlas user community". community.brain-map.org. - - . archived from the original on - - . retrieved - - . ^ "brainhack.org". brainhack.org. retrieved - - . ^ "hbm hackathon - organization for human brain mapping". humanbrainmapping.org. retrieved - - . ^ "datathon the international sata science hackathon". data science society. retrieved december . ^ "datathon ". data republic. retrieved december . ^ "wids datathon ". women in data science. retrieved december . ^ "kpmg datathon challenge". kpmg malaysia. ^ pubmed: us national library of medicine https://www.ncbi.nlm.nih.gov/pmc/?term=datathon. retrieved december . missing or empty |title= (help) ^ aboab, jerome; celi, leo; charlton, peter; feng, mengling ( april ). "a "datathon" model to support cross-disciplinary collaboration". science translational medicine. ( ): . doi: . /scitranslmed.aad . pmc  . pmid  . ^ "hack the news datathon". data science society. ^ "datathon for social good". our community. retrieved december . ^ downcityjs, the providence javascript hackathon archived - - at the wayback machine ^ knockout, node. "node knockout". www.nodeknockout.com. retrieved march . ^ html app hackathon archived - - at the wayback machine, may – , , berlin, germany ^ "pune rails hackathon: july - , ". punehackathon.pbworks.com. retrieved - - . ^ open! hack! day!, flickr blog, september , ^ purple in bangalore – inside yahoo! open hack india archived - - at the wayback machine, pushpalee johnson, august , , ydn blog ^ "google hackathon • vivacity ". vivacity. - - . archived from the original on - - . retrieved - - . ^ "melbourne hack day: list of presentations and winners". archived from the original on - - . ^ the hackathon heard round the world! archived - - at the wayback machine, foursquare blog, september , ^ if you build it, they will come. check out all the cool new things you can do with foursquare! #hackathon archived - - at the wayback machine, foursquare blog, january , ^ "ietf hackathon". www.ietf.org. retrieved - - . ^ open government hackathons matter, mark headd, govfresh, august , ^ in #hackwetrust - the house of representatives opens its doors to transparency through technology, daniel schuman, sunlight foundation blog, december , ^ toronto dementia hackathon - september, dr. john preece, british foreign & commonwealth office blogs, august , ^ toronto hackathon to target dementia challenges with innovative ideas, british high commission ottawa, gov.uk, july , ^ hackernest hooks up with british consulate-general toronto for new dementiahack, joseph czikk, betakit, august , ^ "dementiahack - hackernest". archived from the original on - - . retrieved - - . ^ "about the global game jam". globalgamejam. - - . retrieved april . ^ "global game jam diversifiers". globalgamejam. - - . retrieved april . ^ all aboard the transit hackathon express archived - - at the wayback machine, roberto rocha, the gazette, december , ^ "hackney hackathon succeeds in new services". - - . retrieved july . ^ "education hack day". education hack day. retrieved - - . ^ council, field studies. "page not found - fsc". www.field-studies-council.org. retrieved march . cite uses generic title (help) ^ "fschackday.org". fschackday.org. retrieved - - . ^ nasa, microsoft, google hosting hackathon, elizabeth montalbano, informationweek, june , ^ "the port". theport.ch. retrieved - - . ^ "estonia organized a public-private e-hackatlon to hack the crisis". retrieved december . ^ "anti-crisis hackers join forces to find covid- solutions". retrieved december . ^ rocheleau, matt. "in aaron swartz' memory, hackathons to be held across globe, including at mit, next month". boston globe. retrieved october . ^ doctorow, cory. "aaron swartz hackathon". boing boing. retrieved october . ^ sifry, micah l. "techpresident". personal democracy media. retrieved october . ^ "aaron swartz hackathon". archived from the original on march . retrieved october . ^ female geeks flex their skills at ladies-only hackathon, jed lipinski, fast company, september , ^ world's largest student hackathon descends on wells fargo center, philadelphia business journal ^ student computer whizzes compete at pennapps hackathon, philly.com ^ "code wars". university of mauritius computer club. - - . retrieved - - . ^ "uom codewars - real life code implementations ! - codarren". codarren. - - . retrieved - - . ^ goetz, nicole ( september ). "shamhacks: missouri s&t hackathon". shamhacks. retrieved april . ^ sheeley, andrew ( february ). "shamhacks' first hackathon benefits veterans and students". phelps county focus. retrieved april . ^ "stay focused and keep hacking". www.facebook.com. retrieved march . ^ "local talent drives startup culture in tampa bay". degrees. retrieved - - . ^ a.sigfridsson, g. avram, a. sheehan and d. k. sullivan "sprint-driven development: working, learning and the process of enculturation in the pypy community" in the proceedings of the third international conference on open source systems, limerick, ireland, june – , , springer, pp. - ^ "meet 'titstare,' the tech world's latest 'joke' from the minds of brogrammers". the wire. - - . retrieved - - . ^ "an apology from". techcrunch. retrieved - - . ^ mike swift ( - - ). "when jokes go too far". major league hacking. retrieved - - . ^ victor vucicevich ( - - ). "leaving hack the north". medium. retrieved - - . ^ "sociologists examine hackathons and see exploitation". wired. issn  - . retrieved - - . ^ dariusz jemielniak; aleksandra przegalinska ( february ). collaborative society. mit press. isbn  - - - - . external links[edit] wikimedia commons has media related to hackathon. "media-making strategies to support community and learning at hackathons". mit center for civic media. june , . "demystifying the hackathon". article from mckinsey, october, retrieved from "https://en.wikipedia.org/w/index.php?title=hackathon&oldid= " categories: hacker culture internet slang openbsd software developer communities software development events hackathons hidden categories: webarchive template wayback links cs german-language sources (de) cs errors: missing title cs errors: bare url cs errors: generic title articles with short description short description matches wikidata all articles with unsourced statements articles with unsourced statements from march articles needing cleanup from november all pages needing cleanup articles with sections that need to be turned into prose from november commons category link is on wikidata navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version in other projects wikimedia commons mediawiki languages العربية azərbaycanca Български bosanski català Čeština dansk deutsch español esperanto euskara فارسی français 한국어 Հայերեն bahasa indonesia italiano עברית Қазақша മലയാളം bahasa melayu nederlands 日本語 oʻzbekcha/ўзбекча polski português română Русский Српски / srpski svenska ไทย türkçe Українська tiếng việt 中文 edit links this page was last edited on april , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement maisonbisson maisonbisson recent content on maisonbisson every journalist ryu spaeth on the dirty job of journalism: [e]very journalist […] at some point will have to face the morally indefensible way we go about our business: namely, using other people to tell a story about the world. not everyone dupes their subjects into trusting them, but absolutely everyone robs other people of their stories to tell their own. every journalist knows this flushed feeling, a mix of triumph and guilt, of securing the story that will redound glory unto them, not the subject. the three tribes of the internet authors primavera de filippi, juan ortiz freuler, and joshua tan outline three competing narratives that have shaped the internet: libertarian, corporate, and nationalist. this matters because our physical lives are now deeply intertwined with and codependent on our internet activities. the latest information about covid regulations in many communities is first released on twitter, for example. a declaration is a political act, which describes what should be done. a narrative is a political tool, which elaborates on why it should be done. happy d.b. cooper day d.b. cooper day is celebrated on this day, the saturday following thanksgiving, every year. vitaminwater's #nophoneforayear contest back in the before times, vitaminwater invited applicants to a contest to go a full year without a smartphone or tablet. it was partly in response to rising concerns over the effect of all those alerts on our brains. over , people clamored for the chance, but author elana a. mugdan’s entry stood out with an amusing video, and in february the company took away her iphone s and handed her a kyocera flip phone. membership-driven news media from the membership guide’s handbook/manifesto: journalism is facing both a trust crisis and a sustainability crisis. membership answers to both. it is a social contract between a news organization and its members in which members give their time, money, energy, expertise, and connections to support a cause that they believe in. in exchange, the news organization offers transparency and opportunities to meaningfully contribute to both the sustainability and impact of the organization. political bias in social media algorithms and media monetization models new reports reveal yet more structural political biases in consumption and monetization models. media monetization vs. internet advertising structural problems the internet is structured in favor of ad networks. ad spend grows approximately at the rate of inflation, but the inventory of pages on which those ads can appear grows with each new instagram post (about mm per day). internet advertising is far more automated than print, but the benefit goes to intermediaries and buyers. on average, publishers receive only about half of what advertisers pay for the advertising that appears in their publications. the argument against likes: aim for deeper, more genuine interactions it’s worth revisiting the infamous definition of social software as software that facilitates social encounters: “social software” is about making it easy for people to do other things that make them happy: meeting, communicating, and hooking up. […] the trick you want to accomplish is that when one person is using your software, it suddenly provides value to that person and their entire circle of friends, without the friends having had to do anything at all. paid reactions: virtual awards and tipping likes and reactions can stimulate more signal, leading to more user-activity on a site, but reactions that members pay to give to creators and other members on the site can be a revenue source. reddit introduced reddit gold in in an announcement that was surprisingly candid about their need to raise money. the original reddit gold was a combination of both premium, ad-free subscription and a type of reaction that allowed premium members to “gild” a post. reactions reactions in twitter dms. likes are a most perfect binary, but the meaning of a like can vary. consider the following interpretations of likes on instagram: this photo is incredibly inspiring to me and i want it hanging on my wall i like it when you like my photos and comments, so i will like your work as part of the social contract we have settled into i appreciate your comment on my photo and i want to recognize your participation it’s difficult, however, to “like” something with painful or negative emotions. “likes” vs. “faves” wikipedia credits vimeo for introducing the first like button as a more casual alternative to favorites. facebook introduced the feature in early , but twitter’s story is an interesting investigation into the differences a word or an icon can make. twitter switched from faves to likes on november . “you might like a lot of things, but not everything can be your favorite” explained twitter’s announcement. they continued: [w]e know that at times the [fave] star could be confusing, especially to newcomers. all my flickr photos, for indexing and archiving links to all my photos in flickr. photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size photo page, original size, large size honey cocktails: eau de lavender liquor.com’s recipe for eau de lavender, from a larger collection of cocktails with honey. they all look and sound delightful, but i can vouch for the eau de lavender. ingredients / oz tequila / oz fresh lemon juice / oz honey syrup egg white dash scrappy’s lavender bitters garnish: lavender sprig steps add all ingredients into a shaker and dry-shake (without ice). add ice and shake again to emulsify thoroughly. satellite tracking if you’re not reading skyriddles blog, then you’re not tracking the sky above. and you might have missed the re-discovery of a satellite launched in and lost for nearly years. as it turns out, there’s a lot of stuff that’s been forgotten up there, and quite a bit that some are trying to hide. the blog is an entertaining view into the world satellites, including communication, spy, weather, research, and the occasional probe going further afield. i'm missing restaurants now @nakedlunchsf was notable for having both a strong contender for the best burger in the city, and the best veggie sando. they kept the menu short and focused, and changed it up every few days based on what was in season and interesting. it was great food, but not fancy. the food, warm atmosphere, and a welcoming front of house team made the place a favorite for me and many others. when unzip fails on macos with utf unzip can fail on macos when utf- chars are in the archive. the solution is to use ditto. via a github issue: ditto -v -x -k --sequesterrsrc --rsrc filename.zip destinationdirectory tiktok vs. instagram connie chan: rather than asking users to tap into a video thumbnail or click into a channel, the app’s ai algorithms decide which videos to show users. the full-screen design of tiktok allows every video to unveil both positive and negative signals from users (positive = a like, follow, or watching until the end; negative = swipe away, press down). even the speed at which users swipe a video away is a relevant signal. swipegram template benjamin lee’s instructions and downloadable template to make panoramic carousel instagrams (aka #swipegram), as illustrated via his animation above. “it is clear that the books owned the shop... “it is clear that the books owned the shop rather than the other way about. everywhere they had run wild and taken possession of their habitat, breeding and multiplying, and clearly lacking any strong hand to keep them down.” words by agatha christie in photo: ️⃣ macleod’s books, vancouver, british columbia #penderstreet #downtownvancouver #mustbevancouver ️⃣ carlson & turner antiquarian books, portland, maine #portlandmaine #lovemaine at instagram. “life is like riding a bicycle... “life is like riding a bicycle. to keep your balance, you must keep moving.” —wisdom by albert einstein the bosch autoparts shop behind these commuters is now converted to an organic restaurant that anchors the northeast corner of copenhagen’s fashionable meatpacking district. at instagram. notes about spotify creator features spotify often gets bashed by top creators. the service pays just $ . per stream, but with million users listening to an average of hours per month, those streams can add up for creators who can get the listener’s attention. spotify verifies artists who then get additional benefits on the platform. some artists find success the traditional route, some optimize their work for the system, others work the system…and some really work it. exiftool examples i use for encoding analog camera details i’m a stickler for detail and love to add exif metadata for my film cameras to my scanned images. these are my notes to self about the data i use most often. i only wish exif had fields to record the film details too. random notes on instagram delete your photos deleting your old photos is recurring advice to photograpehers. jp danko suggests deleting photos just for simplicity of management. similarly, eric kim recommends it for decluttering as well. from another side, mike dixon deletes photos as part of his reflection and self-improvement efforts. and caleb kerr argues emotional attachment to old photos is bad for your portfolio and can be a barrier to creating better work. rebrand a number recommend starting from scratch. every media has its tastemakers and influencers every media, network, or platform has would-be influencers or promoters who can help connect consumers with creators. don’t mistake the value of these tastemakers, and be sure to find a place for them to create new value for your platform. storehouse: the most wonderful story sharing flop ever storehouse shuttered in summer , just a couple years after they launched, but the app and website introduced or made beautiful a few features that remain interesting now. “he had ridden his horse into the saloon on a dare... “he had ridden his horse into the saloon on a dare—his practice was always to accept dares; it spiced life up a little.” words: larry mcmurtry  at instagram. editorial efforts at scale anywhere you can find content—even user-generated content—you’ll find a content strategy and editors ensuring that content aligns to strategy (and to community standards). somewhere, something incredible is waiting... “somewhere, something incredible is waiting to be known” words commonly misattributed to carl sagan, but most likely written by reporter sharon begley the eight-dish submillimeter array on mauna kea in hawaii was one of a global federation of radio telescopes used to produce the world’s first images of a black hole earlier this year. from wikipedia: “the radio frequencies accessible to this telescope range from – gigahertz ( . don’t make it dull... don’t make it dull if thou can’t make it colorful words by arrow at instagram. about that table of “hidden rules among classes” the following table has been circulating recently. i sourced it to framework for understanding poverty: a cognitive approach by ruby payne, phd, who sells educational materials and consulting services through her company, aha! process. poor middle class wealthy possessions people. things. one-of-a-kind objects, legacies, pedigrees. money to be used, spent. to be managed. to be conserved invested. personality is for entertainment. the couple in the booth next door... the couple in the booth next door, just been up all night smoking cigarettes and talking about life as the waitress hovers with nothing else to do but daydream about the cop she wants to screw words by david e oprava  silver crest donut shop, san francisco #americansquares at instagram. maybe life is all about twirling under one of those midnight skies... maybe life is all about twirling under one of those midnight skies, cutting a swathe through the breeze and gently closing your eyes. words by sanober khan at instagram. design exercises for product leadership in a way, my career in tech started with graphic design. and as a not very good graphic designer, i eagerly looked for ways to improve my work. nothing beats inspiration and skillful effort, but sometimes finding inspiration is a matter of changing how you look at the subject. there are some exercises that can help with that and sometimes offer a shortcut to inspiration when all else fails. consider an illustration project in which you need to represent a subject. sai morgan you say rolls i say royce you say god give me a choice you say lord i say christ i don’t believe in peter pan frankenstein or superman sai rode by on his bike and i invited him over for a photo. i’ve tried to send him the photos to the email address he gave me (s morgan@[redacted]), but i haven’t heard back. before i built a wall i’d... before i built a wall i’d ask to know what i was walling in or walling out, and to whom i was like to give offense. words by bob frost at instagram. normcore, mysticore, streetwear, and other words for “fashion” normcore normcore, at its most basic level, is fashionable people choosing to dress unfashionably, which is hardly a new idea. a case could be made that normcore has existed since the popularization of ready-to-wear clothing in the early s. any clothing that is not made by hand or commissioned specifically for a person is ready-to-wear. almost immediately after the creation of ready-to-wear fashion, it became a trend to wear what everyone else was wearing, especially if you were a wealthy person not used to sharing clothes with the commoners. how big is s ? tl;dr: somewhere between - exabytes. up in the air i go flying again/up in the air and down! how do you like to go up in a swing, up in the air so blue? up in the air i go flying again, up in the air and down! words by robert louis stevenson music cc-by-nc-sa: “cocek” by the underscore orkestra the swing is an installation at the #bombaybeachbiennale titled “the water ain’t that bad, it’s just salty” by @damonjamesduke and @ssippi with the bombay bunny club glitter, glitter, everywhere near the entrance, metal shelves taller than a man were laden with over one thousand jumbo jars of glitter samples arranged by formulation, color, and size: emerald hearts, pewter diamonds, and what appeared to be samples of the night sky collected from over the atlantic ocean. there were neon sparkles so pink you have only seen them in dreams, and rainbow hues that were simultaneously lilac and mint and all the colors of a fire. it's , and we need to fight for the future of the internet there are obviously conflicting opinions about how to piece together new and complex regulation, legislation, or tech innovation. but this has been true throughout history whenever a new idea begins to be broadly adapted. before the internet, we had to figure out how to manage cars and electricity and steam power and even the use of the written word (which many, including socrates, actually argued against). the internet is no different. the myth of the rv the myth of an rv is that you can go anywhere and bed down wherever you end up. the reality is that you can’t go just anywhere, and bedding down is not much more comfortable or convenient than tenting. astrophotography in san francisco from the space tourism guide: can you see the milky way in the bay area? unfortunately, it is very difficult to see the milky way in san francisco. between the foggy weather and the light pollution from million people, you can imagine that the faint light of our galaxy is lost to view. but c. roy yokingco argues: some people say the milky way cannot be photographed within miles of a major metropolitan area. well, this photo of the milky way was captured linear miles south of downtown san francisco, california. vijay selvaraj @iamvijayselvaraj looking like he’s modeling the new eos r for @canonusa while we were playing with strobes. at instagram. on building the plane while flying it “building a plane while flying it” or some variation has been used to describe situations in education ( ), education ( ). education ( ), health care, medicine, ride-hailing startups, business strategy, even fluffier business stories, and…this. and long before earning broad criticism for its use in tech, the phrase was vividly illustrated in an ad for electronic data systems (eds) that has since been appropriated for all the circumstances named above, as well as building churches: ed zak, photographer i found that hanging at red’s java house and wanted to learn more about ed zak. i mean, with ad copy like this, how can you not want to know more? find out why you should fly our to san francisco to shoot with a photographer who will make you eat at red’s java house and drive you around in this car. a photo shoot with ed zak is a photo shoot like no other. competing approaches to deadlines and excellence some people see deadlines as guidelines to aim for, not absolute dates by which a deliverable is expected by this view of deadlines as flexible guidelines can be seen throughout western culture, as exemplified by the ongoing, oft delayed brexit negotiations. however, deadlines also compete against other factors in any project. consider the three constraints in the project management triangle: a mathematical theory and evidence for hipster conformity in four parts academic publishes mathematical theory for conformance among hipsters: https://arxiv.org/pdf/ . .pdf mit tech review covers it, with a fancy photo illustration using a stock photo of a hipster-looking male: https://www.technologyreview.com/s/ /the-hipster-effect-why-anti-conformists-always-end-up-looking-the-same/ a hipster-looking male contacts mit tech review to loudly complain about their using a picture of him without asking: https://twitter.com/glichfield/status/ it turns out the hipster-looking male in the photo isn’t the same as the one who complained: https://twitter.com/glichfield/status/ the problem with content management systems in three tweet storms exhibit a: a series of tweets by gideon lichfield, editor of mit technology review and formerly of quarz, who asked: the legal case for emoji emoji are showing up as evidence in court more frequently with each passing year. between and , there was an exponential rise in emoji and emoticon references in us court opinions, with over percent of all cases appearing in , according to santa clara university law professor eric goldman, who has been tracking all of the references to “emoji” and “emoticon” that show up in us court opinions. inter-az cloud network performance archana kesavan of thousandeyes speaking at nanog reports that network traffic between azs within a single region is generally “reliable and consistent,” and that tested cloud providers offer a “robust regional backbone for [suitable for] redundant, multi-az architectures.” thousandeyes ran tests at ten minute intervals over days, testing bidirectional loss, latency, and jitter. kesavan reported the average inter-az latency for each tested cloud: aws azure gcp . default fonts that could have been i learned about serif and sans serif typefaces, about varying the amount of space between different letter combinations, about what makes great typography great. it was beautiful, historical, artistically subtle in a way that science can’t capture, and i found it fascinating. from steve jobs in stanford graduation address, explaining how he fell in love with typography during his time at reed college. he studied calligraphy like a monk, but…. spectre is here to stay as a result of our work on spectre, we now know that information leaks may affect all processors that perform speculation…. since the initial disclosure of three classes of speculative vulnerabilities, all major [cpu] vendors have reported affected products…. this class of flaws are deeper and more widely distributed than perhaps any security flaw in history, affecting billions of cpus in production across all device classes. from ross mcilroy, jaroslav sevcik, tobias tebbi, ben l. titzer, and toon verwaest (all of google) in spectre is here to stay; an analysis of side-channels and speculative execution. they continue: bare metal clouds are hard the problem, explains eclypsium, is that a miscreant could rent a bare-metal server instance from a provider, then exploit a firmware-level vulnerability, such as one in uefi or bmc code, to gain persistence on the machine, and the ability to covertly monitor every subsequent use of that server. in other words, injecting spyware into the server’s motherboard software, which runs below and out of sight of the host operating system and antivirus, so that future renters of the box will be secretly snooped on. indeed, the researchers found they could acquire, in the softlayer cloud, a bare-metal server, modify the underlying bmc firmware, release the box for someone else to use, and then, by tracking the hardware serial number, wait to re-provision server to see if their firmware change was still intact. and it was. bmc is the baseband management controller, the remote-controllable janitor of a server that has full access to the system. taking net promoter scores too far pick somebody in your life and send them a message asking them how their day is going on a scale of one to . that’s from author and game designer jane mcgonigal, quoted in reader’s digest. helvetica vs. univers univers was intrinsically superior to helvetica. it had a much larger family at the outset, with members compared to four in . more importantly, its family was logically designed with consistent weights and widths, something that helvetica never achieved until its redesign as neue helvetica in . univers’ characters, stripped of “unnecessary” elements such as the beard on ‘g’ or the curve on the tail of ‘y,’ were also more rationally designed. spielberg on the theater experience there’s nothing like going to a big dark theater with people you’ve never met before, and having the experience wash over you. steven spielberg, quoted in chaim gartenberg’s coverage of his speech at the cinema audio society’s cas awards. amusingly, according to gartenberg, spielberg has nothing against the streaming industry, he just really loves the theater experience and worries about what might happen to it. still, it’s hard not to imagine the filmmaker being a little bit swayed by the talk of hollywood irrelevance in the face of netflix. how pixar dominated the last three decades of special effects pixar’s renderman is the visual effects software hollywood didn’t think they needed (seriously, george lucas sold off the lucasfilm computer division in ). years later, after producing landmark visual effects for films such as terminator and jurassic park and many more, the academy of motion picture arts and sciences honored pixar and the creators of renderman with an award of merit in “for their significant advancements to the field of motion picture rendering as exemplified in pixar’s ‘renderman. there are no architects at facebook we get there through iteration. we don’t try to build an architecture that is failproof. building an architecture and worrying about it for months and months at a time before you actually go deploy it tends to not get us the result we want because by the time we’ve actually deployed something the problem has moved or there are more technologies available to solve different problems. we take it seriously enough to say “there are no architects on the team. the problem with economies of scale economies of scale quickly become economies of hassle from jessamyn, amplifying the exasperation people feel when daily activities are made more complex by poor application of technology. in the example given, the phone app reduces costs for the provider, but doesn’t improve the experience for the customer. people may not expect parking to be delightful, but that’s not an excuse for making it frustrating. wither hardware startups? [i]t’s getting harder to find independent hardware startups that can scale up to something big without getting bought. from dieter bohn on the collective disappointment so many people feel about the eero acquisition. the rise of product ecosystems is increasing the costs and risks for independent hardware startups in every category. (perhaps that’s why remarkable positions itself as the intentionally unconnected alternative to our phones.) turning off exposure preview on my fuji x-e nanda kusumadi has quite a number of tips for configuring a fuji x-e . those tips include using raw photo recording and turning on k video capture (they’re off by default), and one i hadn’t considered: enabling adobe rgb color space with its wider than srgb gamut. i prefer not to use some of other the suggestions, such as enabling electronic shutter (it reduces dynamic range). one setting not mentioned in nanda’s tips is turning off exposure preview. something from nothing: a dog park, a parade, and... on a lark, jaime kornick created patrick’s park. then she created a dog parade, then…. iheart mentioned the dog parade on the radio, local publications wrote about it, and the rsvps started rolling in. in total, more than people said they were coming. that’s when i realized i needed to get a permit. then she got a call: i told them the panel would consist of thought leaders within the canine community, bull shitting. market risks and opportunities for linux distro vendors ibm’s acquisition of red hat got me thinking about how the market for commercially supported linux distros is changing. ibm is trying to find a foothold in a maturing market dominated by aws while the market for enterprise data centers is shrinking. so, where is linux being used (or will be used), and what’s changing in those spaces? to be clear: this is about commercial linux distros, not upstack offerings like openstack, openshift, kubernetes, etc. kubesprawl this leads to the emerging pattern of “many clusters” rather than “one big shared” cluster. its not uncommon to see customers of google’s gke service have dozens of kubernetes clusters deployed for multiple teams. often each developer gets their own cluster. this kind of behavior leads to a shocking amount of kubesprawl. from paul czarkowski discussing the reasons and potential solutions for the growing number of kubernetes clusters. hard solutions to container security the vulnerability allows a malicious container to (with minimal user interaction) overwrite the host runc binary and thus gain root-level code execution on the host. from aleksa sarai explaining the latest linux container vulnerability. to me, the underlying message here is: containers are linux. from scott mccarty washing his hands of it. kata containers is an open source project and community working to build a standard implementation of lightweight virtual machines (vms) that feel and perform like containers, but provide the workload isolation and security advantages of vms. on asking the right questions long before digital cameras killed film, kodak and fuji were locked in a desperate battle for market share. film camera and mm film sales climbed steadily through most of the th century, and in , kodak dominated with % share of the film market, but then things started changing: kodak was said to have done a survey to determine whether its color films were what pro and amateur photographers really wanted. explore for inspiration, then test and focus cultivate exploration: as a leader, you want to encourage people to entertain “unreasonable ideas” and give them time to formulate their hypotheses. demanding data to confirm or kill a hypothesis too quickly can squash the intellectual play that is necessary for creativity. then ruthlessly prioritize for focus: [force] teams to focus narrowly on the most critical technical uncertainties and [rapidly experiment for] faster feedback. the philosophy is to learn what you have gotten wrong early and then move quickly in more-promising directions. government drinking game the department of agriculture [had] an annual budget of $ bn and was charged with so many missions critical to the society that the people who worked there played a drinking game called does the department of agriculture do it? someone would name a function of government, say, making sure that geese don’t gather at us airports, and fly into jet engines. someone else would have to guess whether the agriculture department did it. it just looks better that way in old english the past tense of “can” did not have an “l” in it, but “should” and “would” (as past tenses of “shall” and “will") did. the “l” was stuck into “could” in the th century on analogy with the other two. from arika okrent, in a mentalfloss piece about the weird history of some spellings. the piece has other examples of spelling changes to conform words to some aesthetic or another, even when those changes were inconsistent with the history and etymology of the word. on building a culture of candid debate a good blueprint for [building a culture of candid debate] can be found in general dwight d. eisenhower’s battle-plan briefing to top officers of the allied forces three weeks before the invasion of normandy. as recounted in eisenhower, a biography by geoffrey perret, the general started the meeting by saying, “i consider it the duty of anyone who sees a flaw in this plan not to hesitate to say so. subtitling videos there are plenty of people and companies offering human or automated speech-to-text services for video captioning, but embedding those captions in a video was a curiosity to me. bitfield ab’s isubtitle is a straightforward choice that does exactly what you expect and adds no complications. however, google drive doesn’t import captions embedded in videos, and instead you have to upload them separately. shuffle sharding in dropbox's storage infrastructure first, some terms and context: [we aggregate blocks] into gb logical storage containers called buckets. [buckets] are aggregated together and erasure coded for storage efficiency. we use the term volume to refer to one or more buckets replicated onto a set of physical storage nodes. osds [are] storage boxes full of disks that can store over a petabyte of data in a single machine, or over pb per rack. parts of a network you should know about if you’re running infrastructure and applications on aws then you will encounter all of these things. they’re not the only parts of a network setup but they are, in my experience, the most important ones. the start of graham lyons’ introduction to networking on aws, which (though the terms may change) is a pretty good primer for networking in any cloud environment. though cloud infrastructure providers have to deal with things at a different later, graham’s post covers the basics—vpcs, subnets, availability zones, routing tables, gateways, and security groups—that customers need to manage when assembling their applications. we're gonna need a bigger prng cycle length... the general lesson here is that, even for a high quality prng, you can’t assume a random distribution unless the generator’s cycle length is much larger than the number of random values you’re generating. a good general heuristic is — if you need to use n random values you need a prng with a cycle length of at least n². from a post by mike malone on prngs vs. on uber eats nobody knows your restaurant is a popup for independent or family-owned restaurants with less traffic, douglass points to the pop-up restaurant. not to be confused with popup restaurants, which are dining concepts open for a limited time. popups are cooking stations within the main kitchen of a restaurant dedicated to fulfilling delivery-only orders. eater recently profiled a dallas, tx-based chain called sushiyaa, which owns five physical locations but houses a couple dozen brands within them. the virtual brands are only available through uber eats. interconnected, machine readable data, at scale the nga provides a free database with no regulations on its use. maxmind takes some coordinates from that database and slaps ip addresses on them. then ip mapping sites, as well as phone carriers offering “find my phone” services, display those coordinates on maps as distinct and exact locations, ignoring the “accuracy radius” that is supposed to accompany them. “we assume the correctness of data, and often these people who are supposed to be competent make mistakes and those mistakes then are very detrimental to people’s daily lives,” said olivier. interfaces, surface area, durability a dos program can be made to run unmodified on pretty much any computer made since the s. a javascript app might break with tomorrow’s chrome update — joe groff (@jckarter) july , a dos program can be made to run unmodified on pretty much any computer made since the s. a javascript app might break with tomorrow’s chrome update from joe groff, who wonders if developers will choose old platforms running in emulators over more complex and volatile modern platforms. in praise of refactoring under the right conditions refactoring provides a sort of express lane to becoming a master developer. […] through refactoring, a developer can develop insights, skills, and techniques more quickly by addressing a well understood problem from a more experienced perspective. practice make perfect. if not the code, maybe the coder. from patrick goddi, who argues refactoring is about more than code quality. the day-to-day drudgery of state sponsored hacking after a review of bids and testing the capabilities of some of the exploits offered, the team decided to build its own malware. “this is the only inexpensive way to get to the iphone, except for the [israeli] solution for million and that’s only for whatsapp,” explained one team member in a message. “we still need viber, skype, gmail, and so on.” the same was true of the android and windows malware and the back-end tools used to manage the campaign. who controls the menu? when people are given a menu of choices, they rarely ask: “what’s not on the menu?” “why am i being given these options and not others?” “do i know the menu provider’s goals?” “is this menu empowering for my original need, or are the choices actually a distraction?” (e.g. an overwhelmingly array of toothpastes) from tristan harris, co-founder of the center for humane technology. it’s the first of ten magic tricks he pointed to that technology companies use to hijack users’ minds and emotions. apple cloudkit uses foundationdb record layer together, the record layer and foundationdb form the backbone of apple’s cloudkit. we wrote a paper describing how we built the record layer to run at massive scale and how cloudkit uses it. today, you can read the preprint to learn more. from an anonymous foundationdb blog post introducing relational database capabilities built atop foundationdb’s key-value store. the paper about cloudkit (pdf) is also worth a read. cloudkit is apple’s free at any legitimate scale back-end as a service for all ios and macos apps. you can identify a dog on the internet, but will you bother to? you can construct any [effing] narrative by scouring the internet for people claiming something. it doesn’t make it relevant. it doesn’t make it true. from agri ismaïl’s media criticism (start here). this isn’t an issue of not knowing the dogs on the internet, it’s a matter of not caring who’s a dog in the interest of either clicks or political interest. technology choices, belonging, and contempt i was taught to be contemptuous of the non-blessed narratives, and i was taught to pay for my continued access to the technical communities through perpetuating that contempt. i was taught to have an elevated sense of self-worth, driven by the elitism baked into the hacker ethos as i learned to program. by adopting the same patterns that other, more knowledgable people expressed i could feel more credible, more like a real part of the community, more like i belonged. rollback buttons and time machines adding a rollback button is not a neutral design choice. it affects the code that gets pushed. if developers incorrectly believe that their mistakes can be quickly reversed, they will tend to take more foolish risks. […] mounting a rollback button within easy reach […] means that it’s more likely to be pressed carelessly in an emergency. panic buttons are for when you’re panicking. from dan mckinley, speaking about the complications and near impossibility of rolling back a deployment. don't let requests linger in practice, we have fixed whole classes of reliability problems by forcing engineers to define deadlines in their service definitions. from ruslan nigmatullin and alexey ivanov on dropbox’s migration to grpc. also consider request replication. polarization vs. judgement in a polarized climate, opponents would jeer even eloquence from an unwelcome source; partisans would chant lovingly for public incontinence if delivered on behalf of the home team. from politico editor-in-chief john f. harris, talking about trump, but the point seems to apply far more broadly. shooting down star wars as a vehicle for exploring human relationships with future technologies into the ongoing fight between those who dismiss star wars as a shallow space opera vs. those who who would elevate the movies to a position of broader significance (so-called hard science fiction) strolls jeremy hsu, who points out: regardless of writer-director rian johnson’s intentions for “the last jedi,” his story transformed the adorable robotic sidekick into a murder droid with a will of its own. that would normally have huge implications in a science fiction story that wants to seriously explore a coherent and logical futuristic world setting. incident postmortems: customer communication incidents happen. the question is whether or not we’re learning from them. there are a bunch of postmortem resources collected here to help teams maximize the learning and service reliability improvements they can gain from an incident. however, there’s a separate question about how to communicate about incidents with customers. this definitely involves communications during the incident, but i’m especially interested in customer-facing communications after an incident. these seem to be the key questions customers need answers to: pid controllers are way cooler than the wikipedia article lets on the wikipedia entry on pid controllers is perfectly accurate, but it seems to bury the elegance of the technology and theory. meanwhile, the article on gyroscopic autopilot (both maritime and aeronautical) makes no mention of pid controllers, despite that being the field in which the theory of pid controllers was developed. pid controllers are all around us. they make elevators accelerate and decelerate without knocking passengers to the floor or pinning them to the ceiling, they stabilize video for pros and consumers alike, they make anti-lock brakes work, and nearly every other automated task in the software and physical world where the control needs to be adjusted based on observed conditions. wikipedia quotes: mathematical models of vagueness and ignorance [f]uzzy logic uses degrees of truth as a mathematical model of vagueness, while probability is a mathematical model of ignorance. from wikipedia on fuzzy logic. ipads as primary computers: never say never this twitter thread has some points worth considering for those interested in how our expectations and relationship with “business tools” changes over time: and, in case that tweet disappears, here’s the key text and the referenced gui review: i’m fascinated by the technical “class” obsession w/ ipads replacing laptops. this review of gui and mouse is what i think some of the review of the ipad will look like in years. common root causes of intra data center network incidents at facebook from to from a large scale study of data center network reliability by justin meza, tianyin xu, kaushik veeraraghavan, and onur mutlu, the categorized root causes of intra data center incidents at fabook from to : category fraction description maintenance % routine maintenance (for example, upgrading the software and firmware of network devices). hardware % failing devices (for example, faulty memory modules, processors, and ports). the entirely rational, yet surprising relationship between timecode broadcasts and sputnik many us folks just changed their clocks for daylight saving time, and here in california we’re voting on a proposition that might lead to changes in california’s time standards, so quite a number of people have time on their minds. meanwhile, on a national level, trump intends to defund one of the mechanisms we use to to synchronize time across the country. the national institute for standards and technology operates timecode radio stations. republics, power, and populism: their rise and fall mike duncan, writing in the washington post on the fall of the roman republic: some in the roman leadership could see clearly by the s and s b.c. that this socioeconomic dislocation was becoming an acute problem. they could see that, out in the countryside, families were losing their land, and in the cities, grain shortages were leading to panic and starvation. these poor families were certainly not sharing the benefits of rome’s imperial wealth and power. pour one out for the sears catalog, the original market disrupter whet moser pointed out this enlightening twitter thread that explains an aspect of sears i hadn’t considered before: by disrupting retail stores with mail-order, it was empowering a demographic that was often underserved in their communities: the sears catalog succeeded because it got the goods to people who couldn’t get to stores. one of those demographics? african-americans. in a lengthy twitter thread, cornell historian louis hyman writes that it freed up black southerners from going to general stores, which was often (at best) a humiliating experience. donut tours everywhere i’m a big enough fan of donuts that i’ve planned tours to explore and celebrate them: : the lowell donut tour : donut tour : this time it’s personal those tours focused on massachusetts, but it turns out that isn’t the only state with a strong donut heritage. the butler county visitors bureau promotes a donut trail, including map, passport, and faq. those who complete the passport can receive an exclusive donut trail t-shirt. how to date your foodstuffs whet moser, suddenly making sell-by dates on food products relevant to me: about a quarter of us methane emissions comes from food rotting in landfills. the dates on our packaged food products look so authoritative, but the way moser tells it, they were invented by marketing folks to increase sales at the cost of disposing of otherwise good products that have an expired sell-by date. fuji instax back for hasselblad isaac blankensmith writing in petapixel about building an instax instant film back for a hasselblad : instant photos are magical. they develop before your eyes. you can share them, gift them, spill water on them, draw on them. the only problem is that most instant cameras are pretty cheap — that’s why i’ve always wanted to hack my medium format camera to take instant photos with shallow depth of field and sharpness. can we train ourselves out of color blindness? which one of the boxes has an irregular color? a screenshot of the igame color vision test. i’m very color blind by traditional tests, but my score in this one has improved over time. am i learning the test, or…? psa reminder about takt time from wikipedia a common misconception is that takt time is related to the time it takes to actually make the product. in fact, takt time simply reflects the rate of production needed to match the demand. said again: it’s the required rate, not the actual rate. notes on observing the milky way notes from kevin palmer at dark site finder and matt quinn at petapixel. what is it? cc-by-nc-nd by bryce bradford kevin palmer: every star you can see with the unaided eye is located within the milky way. […] but when most people talk about “seeing the milky way”, they are talking about the core of the galaxy. located in the constellation sagittarius, this is the brightest part of the milky way. restaurants, hotels, mustaches, wages matthew taub, writing in atlas obscura around the same time, the first modern restaurants were rising around paris. these establishments, primarily for the wealthy, sought to recreate the experience of dining in an upscale home. the experience was about more than food. waiters had to retain the appearance of domestic valets, who were forbidden to wear mustaches as a sign of their rank. diners were “paying to humiliate people in an almost institutional way,” says historian gil mihaely, who has published extensively on the subject of french masculinity. a cold day in coaldale a cold day in the desert. coaldale, nevada music cc-by-nc-sa: dan warren, “the debate” at instagram. bad maps are ruining american broadband karl bode in the verge: in policy conversations, isp lobbyists lean heavily on the fcc’s flawed data to falsely suggest that american broadband is dirt cheap and ultra competitive, despite real-world evidence to the contrary. isps also use this false reality to imply meaningful consumer protections aren’t necessary because the market is healthy (as we saw during the fight over net neutrality). s and cloudfront configuration frustration it turns out that the interaction between s , cloudfront, and route can be bumpy when setting up buckets as cdn origins. it’s apparently expected that a cloudfront url will read data from the wrong bucket url and redirect browsers there for the first hour or more. the message from aws is “just wait,” which makes for a crappy experience. time synchronization is rough cloudflare on the frustrations of clock skew: it may surprise you to learn that, in practice, clients’ clocks are heavily skewed. a recent study of chrome users showed that a significant fraction of reported tls-certificate errors are caused by client-clock skew. during the period in which error reports were collected, . % of client-reported times were behind by more than hours. ( . % were ahead by more than hours.) this skew was a causal factor for at least . parents in vs. this thread from breanne boland, which starts with a screenshot of another tweet: your parents in : don’t trust anyone on the internet. your parents in : freedom eagle dot facebook says hillary invented aids. twin beech, beatty, nv just outside beatty nevada you’ll find a weathered sign promising the services of a long-closed brothel, and next to it, an aircraft covered in generations of tags. the plane, a twin beach, made an abrupt and final landing in the s as the unexpected end to a marketing stunt—or perhaps a dare—gone wrong. sit at the bar in town for a while and you’ll get a number of stories. windows was mb. today we have web pages heavier than that! the title is a quote from nikita prokopov, who is wallowing in disenchantment. claim chowder from : computational photography way back in i wrote: i’m sure somebody will eventually develop software to automatically blur the backgrounds of our smartphone photos, but until then, this is basic physics. the new camera system in the iphone xs seems to have moved computational photography from the world of parlor tricks to the mainstream. update this blog post from the developer of halide, a premium camera app for ios, goes into a lot more detail about all the computation going on in the new cameras. the color of copenhagen the color of #copenhagen is it yellow, brown, mustard? i love all the shades. at instagram. the real goldfinger: the london banker who broke the world goldfinger, the bond film, is based on a premise that is incredibly foreign to today’s audiences: moving gold between countries was illegal. oliver bullough in the guardian asks us all to think about that a bit more: the us government tried to defend the dollar/gold price, but every restriction it put on dollar movements just made it more profitable to keep your dollars in london, leading more money to leak offshore, and thus more pressure to build on the dollar/gold price. git foo a few git commands i find myself having to look up: resolve git merge conflicts in favor of their changes during a pull: git pull -xtheirs git checkout --theirs the/conflicted.file source viewing unpushed git commits git log origin/master..head you can also view the diff using the same syntax: git diff origin/master..head or, “for a little extra awesomeness” git log --stat origin/master..head updated since it was first posted: starting with git . things that make us dumber: air pollution, full bladders air pollution is making us dumber, study shows: the team found that both verbal and math scores “decreased with increasing cumulative air pollution exposure,” with the decline in verbal scores being particularly pronounced among older, less educated men. study links urge to pee with impairment: snyder and his team ran the study on eight individuals, who each drank milliliters of water every minutes until they reached their “breaking point,” where they could no longer hold their urine. maintenance and renewal abby sewell, with photographs by jeff heimsath, in the national geographic: every spring, communities gather to take part in a ceremony of renewal. working together from each side of the river, the villagers run a massive cord of rope, more than a hundred feet long and thick as a person’s thigh, across the old bridge. soon, the worn structure will be cut loose and tumble into the gorge below. over three days of work, prayer, and celebration, a new bridge will be woven in its place. hash rings, sharding, request replication balancing data and activity between shards your consistent hash ring leads to inconsistent performance: the basic consistent hashing algorithm presents some challenges. first, the random position assignment of each node on the ring leads to non-uniform data and load distribution. second, the basic algorithm is oblivious to the heterogeneity in the performance of nodes. from https://www.cs.cornell.edu/projects/ladis /papers/lakshman-ladis .pdf, which explains that cassandra addresses that common problem by “analyz[ing] load information on the ring and have lightly loaded nodes move on the ring to alleviate heavily loaded nodes. steven dean mcclellan, bombay beach steven dean mcclellan, bombay beach at instagram. improving automated fault injection automated failure analysis is hard, manual failure analysis requires great expertise. why this painting of dogs playing poker has endured for over years jackson arn in artsy: the “dogs playing poker” paintings, by cassius marcellus coolidge, belong to that pantheon of artworks—michelangelo’s david, da vinci’s mona lisa, botticelli’s the birth of venus, van gogh’s starry night, hopper’s nighthawks— that are immediately recognizable to people of all ages and backgrounds, including those who don’t readily admit to enjoying art. so how, pray tell, did a pack of dogs playing poker outlast so many other “serious” paintings? willie in christiana willie has lived in christiana since it was founded in at instagram. product managers, project managers, delivery managers, and engineering managers, according to quora i’m trying to write some job descriptions, so of course i found myself in quora. what is the difference between program manager and delivery manager? as delivery manager, we ensure the projects are delivered on time and on budget. we are a slightly higher level work that project managers in the sense that we try not to escalate issues as much as resolving them and letting upper management know of relevant issues. twin beech, beatty this beautiful old twin beech lies wrecked and abandoned near beatty, nv. locals tell stories of how the plane was used to shuttle guests from las vegas to the town’s brothel in the s, but things went wrong with a publicity stunt, or perhaps a dare, and the plane made its final landing here. at instagram. love locks, copenhagen love locks in copenhagen toldbodgade bridge over nyhavn inlet. at instagram. campanology, noun the cambridge dictionary tells us that “campanology” means “​the art or skill of ringing church bells.” it doesn’t give us a collective noun, however, but i’m sure this is it: a group of bell ringers? that’s a “pubfull” with more at pinterest. bar velo, brooklyn bar velo, brooklyn #mediumformat #fujigw iii at instagram. transamerica pyramid, from columbus avenue #ispytransamericapyramid from the center of columbus avenue at broadway at instagram. tantallon castle, scotland tantallon castle, scotland at instagram. vxlan routing recommendations from cumulous networks vxlan routing recommendations from cumulous networks, which offers switch software (but not client software). https://cumulusnetworks.com/blog/vxlan-designs-part- / vxlan routing is the process in which a vtep receives a vxlan packet destined to itself, removes the vxlan header and then performs a layer route lookup on the inner decapsulated packet. since the vtep has to perform two sets of lookups, first on the encapsulated vxlan traffic then on the decapsulated inner packet, it requires special hardware asic to perform both lookups in a single pass all in hardware. flight of the bumblebee flight of the bumblebee music: jazzy ashes, cc by-nc-sa the underscore orkestra at instagram. steven dean mcclellan, bombay beach steven dean mcclellan, bombay beach at instagram. birdsong birdsong, mural by joshua coffy at instagram. flickr get photo page from image name let’s say you have an old-style flickr photo url like the following: http://www.flickr.com/photos/ _ c f .jpg now let’s say you want to find the page on flickr for that photo? put the photo id in a url like this: https://www.flickr.com/photo.gne?id= poulsen welding shop, susanville, ca poulsen welding shop, susanville, ca growing up, i remember welding and fabrication shops being common. not so much anymore. there are just over , self-employed welders in the us today, according to the bureau of labor statistics, but getting historical data from them is approximately impossible. looking for more, i found assembling magazine’s retrospective on how welding has changed in the past half century or so: new processes, such as electron beam welding, friction welding, plasma arc welding, friction stir welding, explosion welding and laser beam welding, have increased the range of materials and components that can be welded. object storage prior art and lit review this list is not exhaustive. instead, it is a selection of object storage implementations and details that appear interesting. some themes that it many or all of these comparators struggled with include: new systems to meet scaling needs facebook, google, and yahoo are all very open about having reinvented their object storage solutions to address evolving needs (typically cost and availability) as they scaled. those players dramatically reinvented their systems without strong regard for backwards compatibility, but evidence suggests s has gone through similarly dramatic changes as well, but without breaking api compatibility. naming things is hard. naming people is harder. michael sherrod and matthew rayback scoured american census records searching for atrocious baby names. the results are compiled in an amusing little book called bad baby names: the worst true names parents saddled their kids with—and you can too!. among the names they discovered were “toilet queen,” “leper,” “cholera,” “typhus,” “stud duck,” “loser,” “fat meat,” “meat bloodsaw,” “cash whoredom,”“headless,” “dracula,” “lust,” “sloth,” “freak skull,” “sexy chambers,” “tiny hooker,” “giant pervis,” “acne fountain,” “legend belch,” and “ghoul nipple. yongma land just a creepy fiberglass clown head at an abandoned amusement park outside seoul at instagram. stereotypical photo of the brooklyn bridge gray skies at the #brooklynbridge at instagram. yarn bombed, san francisco city hall yarn-bombed trees outside san francisco city hall at instagram. observing an abandoned building and open landscape, coaldale, nevada open floor plan, coaldale junction, nevada music: cc-by-nc-sa dan warren at instagram. feature flags gone wrong btw – if there is an sec filing about your deployment, something may have gone terribly wrong. from doug seven explaining how, in , that’s exactly what happened. rain, san francisco much-needed rain soaks the tables at san francisco’s ferry building. at instagram. spencer wynn: hello project spencer wynn’s hello project is everything i need right now. johnathan little i first met johnathan little on us route , about miles due north of pahrump, nv. he’d been walking since he left oklahoma one day a while back. #vanlife gets a lot of love on instagram, but johnathan joined the #walkinglife to regain his self-respect and lose some weight, and he seems on a path to do both. this photo was from the second time i met him, on my way back from beatty, nv. the kpa soldier guarding the door to north korea the door behind this kpa soldier exits to north korea. in addition to needing a stolid face, kpa soldiers must be expert martial artists, according to wikipedia. at instagram. no groceries, mina, nevada “grocery, sundries, ice cream” in mina, nevada at instagram. the paradox of tolerance less well known is the paradox of tolerance: unlimited tolerance must lead to the disappearance of tolerance. if we extend unlimited tolerance even to those who are intolerant, if we are not prepared to defend a tolerant society against the onslaught of the intolerant, then the tolerant will be destroyed, and tolerance with them. — in this formulation, i do not imply, for instance, that we should always suppress the utterance of intolerant philosophies; as long as we can counter them by rational argument and keep them in check by public opinion, suppression would certainly be unwise. aws regions, azs, and vpcs, nics, ips, and performance jump to section: availability zones and regions vpcs elastic ips and elastic network interfaces network performance resources by scope connectivity by scope availability zones and regions aws’ primary cloud is available in regions, each with two to six availability zones, not including separately operated regions (with independent identity) for govcloud and china. most aws services operate independently in each region (though identity is shared across regions in the primary cloud), and each service has its own (often region-specific) endpoint (many libraries and the aws cli simply insert the region name in the endpoint url). claim chowder: cloud storage ten years ago apple was still doing macworld expo keynotes, and that year they introduced time capsule. my response was this: forget time capsule, i want a space ship: so here’s my real question: why hasn’t apple figured out how to offer me a storage solution that puts frequently used items on local disk, and less-frequently used items on a network disk? seamlessly. ten years later: cloud storage is definitely the norm. dalhousie castle sunrise to sunset at @dalhousiecastle music: “the moments of our mornings” cc-by-nc kai engel at instagram. the make us proud and yld offices just another awesome day at the make us proud and yld offices (find them on twitter). @tomholloway is the star of this one, but you’ll see some others on the team working on a project for @joyent. shot with an @alpinelabs radian music is cc-by-nc-sa dexter britain at instagram. good enough, satisficing, and meeting market demand nanda kusumadi: companies tend to over-serve customers in their products to the point that the surplus of performance metrics cannot be consumed. this leads to waste in r&d, build and operational resources, basically a waste of human capital. over-serving products have been optimised well beyond what a user can consume. atomic cafe neon the famous neon sign at @atomicliquors, #lasvegas’ oldest bar, where s patrons used to enjoy views of nuclear tests from the roof. i had the joy of meeting the former owner, joe sobchik, on a visit in . i stopped by around am (yes, i make a habit of visiting bars early in the morning) and found the owner, joe sobchik, sipping a coffee at the bar. he was a man full of stories, i could tell, but i was foolishly unprepared. aws' andy troutman on component reusability what we do first is we build very simple foundational building block services … we will build the simplest possible service that you could think of. the next thing we do is we encourage an open marketplace within amazon so individual teams can use, optimize, and extend these basic services. we use our individual [teams] as a test lab to experiment on better ways to do things, and when we find something that seems to be working, we look for ways to [grow it and use it more] broadly. drivers and “standards” for both network and block storage, aws is doing significant work to develop and maintain drivers in a variety of guest oss. some of this work improves performance for guest oss running in any modern hardware virtualized environment, but not everything is directly portable. this discussion about adding ena support for netmap is one example. otoh, amazon seems to be sponsoring driver development (see freebsd) when they’re not doing it themselves (see linux). hardware virtualization has moved to hardware one of my takeaways from aws’ bare metal announcements at re:invent this week is that the compute, storage, and network aspects of hardware virtualization are now optimized and accelerated in hardware. aws has moved beyond the limitations that constrained vm performance, and the work they’ve done applies both to their bare metal hardware and their latest vm instance types. notes from "life of a code change to a tier service (dev )" at aws re:invent andy troutman’s talk is useful in explaining complex deployment workflows to management types. camera advice: a film camera for a novice a friend of mine sent me a question about a good film camera to get started with: my partner has been thinking for some time about her first camera and she likes the idea of film photography. her birthday is coming up and i’m thinking of buying a camera as a surprise gift to bring on an upcoming backpacking trip. it’s just a thought. we don’t buy each other a lot of stuff because we’re big on experiences, and we save our money so we can travel to see each other. dave wascha's years of product management advice in minutes dave wascha (li) speaking at mind the product in san francisco on advice he wished he had as a younger product manager: link to video. you should watch the video, but here’s the short version: listen to your customers: focus on deeply understanding your customers’ problems. don’t listen to your customers: it’s up to product managers to figure out solutions to those problems, not customers. my addition: they’d ask for faster horses. vcrs that rewind faster a story, possibly apocryphal (i.e. i can no longer find the source), tells of electronics manufacturers asking customers what features they wanted in their home video equipment. “vcrs that rewind faster,” they cried. instead they got dvds that didn’t need rewinding. i was remembering that story and went looking to source it and all i could find was my blog post from a decade ago. of course once we got dvds, we then needed to solve the frustrations of the video rental store. continuous disruption trains were once seen as icons of freedom. they freed riders from the dust and bumps of horse or stagecoach travel, and dramatically shortened travel times. but that view of trains as agents of freedom changed with the development of the automobile—and the way it shifted control of routes and schedules from the railroad to the driver. this isn’t about transportation policy , it’s about how previously novel solutions become subject to disruption once they become the baseline against which alternatives are compared. mortmar, california carniceria, liquor, grocery this was once north shore, california, but many maps now label it mortmar. at instagram. gender stereotypes, toys, and the sears catalog elizabeth sweet, writing in the new york times, way back in on her research into the role of gender stereotypes in the marketing of toys: during my research into the role of gender in sears catalog toy advertisements over the th century, i found that in , very few toys were explicitly marketed according to gender, and nearly percent showed no markings of gender whatsoever. in the s, toy ads often defied gender stereotypes by showing girls building and playing airplane captain, and boys cooking in the kitchen. lawrence lessig: republic, lost lawrence lessig in a talk at google in speaking on the topic of his book, republic, lost. his talk concludes: this nation faces critical problems requiring serious attention, but we don’t have institutions capable of giving them this attention. they are distracted, unable to focus. and who is to blame for that? who is responsible? i think it’s too easy to point to the blagojeviches and hold them responsible, to point to the looking up at muir woods end of summer at #muirwoods with a @lomography #spinner at instagram. extraterrestrial highway, nevada the extraterrestrial highway, just north of area at instagram. ranch hand at auction a ranch hand stands ready to call a bidder in the cowboy auction at the @californiamidstatefair. though they’re traditionally agricultural events, fairs were typically founded by local businesses leaders seeking to grow commerce. basically, they were the tech events of their time. at instagram. street jazz new orleans-style jazz on the embarcadero near fisherman’s wharf, shot on #kodak #ektar with a #hasselblad #hasselblad elm at instagram. mendocino sunset sunset on the mendocino coast outside at @heritagehouseresort at instagram. no more border walls, please america’s greatest legacy is found in the freedoms we uphold for all, not the prohibitions we levy on others. fences, walls, and travel bans are contrary to that legacy. #usmexicoborder #borderfence, #calexico at instagram. hearst castle tour hearst castle in mm music: cc-by-nc charmed life by adam selzer at instagram. contrails above sutro tower #parallel #contrails above #sutrotower, from #twinpeaks, #sanfrancisco at instagram. user stories are documentation while writing up the draft docs for joyent’s container name service i leaned heavily on the user stories and use-cases for the feature. it has me realizing that we should consider user stories to be the first draft of the user documentation. indeed, consider that well-written docs and user stories have similar qualities: a user, goal, and benefit, in clear language that’s accessible in small, focused chunks. the cns docs are now in our core documentation library, and i’m happy that we’ve updated the content management system to support deep linking to individual headings, like this one about adding cns service tags when creating an instance with the triton cli. everybody smiles while rolling down the hill... everybody smiles while rolling down the hill at the bring your own big wheel event! at instagram. ancient aztec chemistry a - blend of morning glory juice and latex created rubber with maximum bounciness, while a - mix of latex and morning glory made the most durable material. it seems they were making bouncy balls for fun and sport. but, to be clear about the ingredients: morning glory plants tend to grow near rubber trees, and both plants were considered sacred in several mesoamerican cultures. morning glory, for example, was also used in religious ceremonies for its hallucinogenic properties. no gas at mina, nevada mina, nevada at instagram. echoes of product management advice in declarative vs. imperative programming the following line in a post about the difference between declarative vs. imperative programming caught my attention for the way it echoes product management best practices: [i]t’s often good not to think of how you want to accomplish a result, but instead what the component should look like in it’s new state. of course it does matter how you get to where you’re going, but it’s a whole lot easier if you first focus on aligning everybody on goals and where you’re going. the hotel huntington and sf skyline the hotel huntington (now @thescarlet_sf) atop #californiastreet, #sanfrancisco music: “faster does it” by kevin macleod (cc-by) at instagram. mcway falls #mcwayfalls in #bigsur music: “tomie’s bubbles” by candlegravity (cc-by-nc-sa) at instagram. sutro tower #sutrotower, #sanfrancisco music: “feeling dark (behind the mask)” by oop d (cc-by-nc) at instagram. tree, paso robles #lonely #tree in a #field in #pasorobles #california music: “silence await” by idk (cc-by) at instagram. at the little a’le’inn, rachel... at the little a’le’inn, rachel nevada. film, light leaks, bikers, and aliens. at instagram. following a winding road #summer on a #windingroad in #cambria #california music: shady grove by shake that little foot (cc-by-nc-sa) at instagram. the top of the mark #sunset at #topofthemark, #sf video: https://www.instagram.com/p/bgrsnl hejs/ at instagram. hotel huntington sign at sunset the hotel huntington (now @thescarlet_sf) atop #californiastreet, #sanfrancisco at instagram. winding road, cambria #summer on a #windingroad in #cambriacalifornia at instagram. will luo will luo at @tempestbarsf at instagram. get list of functions in bash script…look for those in argv # get function list as array funcs=($(declare -f -p | cut -d " " -f )) # parse out functions and non-functions i= declare -a cmdargs declare -a otherargs for var in "$@"; do if [[ " ${funcs[@]} " =~ " ${var} " ]]; then cmdargs[i]=${var} else otherargs[i]=${var} fi ((i++)) done echo ${cmdarg[*]} echo ${otherargs[*]} on disfluencies your speech is packed with misunderstood, unconscious messages, by julie sedivy: since disfluencies show that a speaker is thinking carefully about what she is about to say, they provide useful information to listeners, cueing them to focus attention on upcoming content that’s likely to be meaty. […]  experiments with ums or uhs spliced in or out of speech show that when words are preceded by disfluencies, listeners recognize them faster and remember them more accurately. san francisco’s mark hopkins hotel san francisco’s #markhopkins #hotel at the top of #californiastreet, on # mm #kodakfilm. #sanfrancisco #sanfranciscoca #sfca #sf #olympusstylus #kodakgold #kodakultra #kodakultragold #analog #film at instagram. compact camera recommendations a friend asked the internet: can anyone recommend a mirrorless camera? i have some travel coming up and i’m hesitant to lug my dslr around. of course i had an opinion: i go back and forth on this question myself. my current travel camera is a sony rx mark (the mark was recently released). some of my photos with that camera are on flickr. if i decide to get a replacement for my for my bigger cameras, i’ll probably go with a full frame sony a of some sort. bring your own big wheel brings smiles only a fool would try covering the #bringyourownbigwheel action on #film. i’m that fool. #sf #sanfrancisco #bigwheel #byobw #hasselblad #ektar #kodakfilm #film at instagram. zach houston’s poem store #zachhouston used to be a #mission regular, peddling his #poetry from a #poemstore made up of an old #mechanical #typewriter and carefully selected scrap papers. #sf #sanfrancisco #themission #valenciastreet at instagram. rewrite git repo urls a question in a mail list i’m on introduced me to a git feature that was very new to me: it’s possible to have git rewrite the repository urls to always use https or git+ssh, etc. this one-liner seems to force https: git config --global url.https://github.com/.insteadof git://github.com/ or you can add these to your .gitconfig: # use https instead of git and git+ssh [url "https://github.com/"] insteadof = git://github.com/ [url "https://github.com/"] insteadof = git@github. the tools on the jeremiah o’brien... the tools on the jeremiah o’brien are built to work on steam cylinders larger than oil drums. they’re mounted to the wall like trophies. on flickr: https://www.flickr.com/photos/maisonbisson/ / #bw #tools #jeremiahobrien #libertyship #sf #sanfrancisco at instagram. docker stories from new relic from new relic’s august blog post: [w]e didn’t try to create a full paas framework all at once. though this may be our eventual goal, it wouldn’t have solved the immediate deployment problem. we did not begin dockerizing our applications by starting with those that have the highest data volume. rather, we started with our simplest internal web apps, particularly stateless things that could scale horizontally. our early testing showed that high throughput apps are not a good choice for your first docker deployment, due to the docker network stack. sinistrality vs. dextrality in design photo cc-by-sa gerry dincher this post on why people focus on the right-hand side of a design is an old one, but still valuable today: these days there is a lot of talk about emotional design and how to properly create a connection between users and our products. focusing on the right-hand side of our designs can create these connections. we have the ability to influence and change a user’s belief in what is right and honest with our designs. hasselblad dating hasselblad historical and blue moon camera both offer this table to translate hasselblad serial numbers to year of manufacture: v = h = p = i = c = t = u = r = e = s = that should work for both the body and film magazines, though there are some exceptions noted in the comments at blue moon camera: how jackie chan wins tony zhou’ video is genius, as are the nine principles of action comedy he’s identified: start with a disadvantage use the environment be clear in your shots action & reaction in the same frame do as many takes as necessary let the audience feel the rhythm in editing, two good hits = one great hit pain is humanizing earn your finish read the full video description for more, and consider donating to support his work. photo hipster: playing with cameras after playing with fuji instax and polaroid (with the impossible project film) cameras, i realized i had to do something with kodak. my grandfather worked for kodak for years, and i have many memories of the stories he shared of that work. he retired in the late s, just as the final seeds of kodak’s coming downfall were being sown, but well before anybody could see them for what they were. backbone.js and wordpress the three are from , so details may have changed, but they seemed useful enough that i’ve had them open in my browser for a while: http://kadamwhite.github.io/talks/ /backbone-wordpress http://code.tutsplus.com/tutorials/using-backbone-within-the-wordpress-admin-the-back-end–wp- http://code.tutsplus.com/articles/using-backbone-within-the-wordpress-admin-the-front-end–wp- parable of the polygons is the future of journalism okay, so i’m probably both taking that too far and ignoring the fact that interactive media have been a reality for a long time. so let me say what i really mean: media organizations that aren’t planning out how to tell stories with games and simulators will miss out. here’s my example: vi hart and nicky case’s parable of the polygons shows us how bias, even small bias, can affect diversity. unit test wordpress plugins like a ninja (in progress) cc-by zach dischner unit testing a plugin can be easy, but if the plugin needs dashboard configuration or has dependencies on other plugins, it can quickly go off the tracks. and if you haven’t setup travis integration, you’re missing out. activate travis ci to start with, go sign in to travis now and activate your repos for testing. if you’re not already using github to host the plugin, please start there. unit testing wordpress plugins we’ve been unit testing some of our plugins using the old wordpress-tests framework and tips from this blog post. the good news is that the framework has since been incorporated into core wp, the bad news is that it was changed along the way, and it wasn’t exactly easy to get the test environment setup correctly for the old wordpress-tests. i’ve had a feeling there must be a better way, and today i discovered there is. deliverables, iteration, and constraints when asked to give a timeline for project delivery, my first questions, of course, are about the details of the project. then, i take a guess about the timeline and double it, and fight like hell to eliminate blockers and distractions for the team, work with them on implementation theories, ask leading questions that help balance the “optimum” solution against the timeline, and put up whatever obstacles i can to any changes to the plan. ruins of roebling’s works from flux machine: a tumbler of kevin weir’s creepy gifs. the original is from the library of congress. if the name “roebling” sounds familiar, it’s because this is the company, founded by john a. roebling, that built the brooklyn bridge and setup a good business making cables, or wire rope. the roebling brothers suspected the fire was german sabotage. given the activities of the german ambassador at the time, the claim has a whiff of plausibility. google’s link policies raise hell for simple bloggers i get a bunch of emails like this: we have recently received a notification from google stating that our website has unnatural links pointing towards it. this has affected our rankings on google and as a result, we’re trying to clear things up. our website url is www.builddirect.com. we noticed the following links are pointing to our website from your site: http://becomingdonnareed.com/ http://becomingdonnareed.com/blog/ /season- -episode- -style-note/ http://becomingdonnareed.com/blog/author/sandee/ http://becomingdonnareed.com/blog/category/style/ http://becomingdonnareed.com/blog/tag/crate-and-barrel/ http://becomingdonnareed.com/blog/tag/ikea/ http://becomingdonnareed.com/blog/tag/lumens/ http://becomingdonnareed. a/b split testing calculators mixpanel’s a/b testing calculator is a competent performer and valuable tool: thumbtack’s split testing calculator, however, is a surprise standout: that their code is in github is especially delightful. algolia search the multi-category autocomplete and autocomplete on filtering operators demos are interesting: mastery sarah lewis on mastery: mastery is in the reaching, not the arriving. it’s in constantly wanting to close that gap between where you are and where you want to be rebuild iphoto library yeah, iphoto is just about dead, and i’m probably a little crazy to still be using it at all, but i do and now i need to rebuild the library. the knowledgebase article can be summed to this: hold down the command and option keys while opening iphoto. you can’t just click the icon in the dock, you’ve got to double-click the icon in a real finder window (or some other context that doesn’t trap the keys like the dock does). x-ray scanners vs. film i’ve been enjoying my fuji instax , but i’m preparing for an upcoming trip and just remembered the challenge of flying with real film. cc-by-nc-sa vegard hagen. the flickr fuji instax room has a couple discussions on the topic, but the answers are inconclusive and unsupported by references. some people shared personal experiences suggesting there was nothing to worry about: studioesper: “never had any problems. i use to work by airports and go thru carry on xray just about everyday with a instax wide. porn consumption by geography and type this is shamefully old news, but pornhub released stats that correlate viewing preferences by geography and pulled out a quote too juicy to ignore: dixie loves dicks so much that the percentage of gay viewers for every single state in the south is higher than the average of the legal gay marriage states. i’m concerned that some of the numbers are contradicted in three different places in the same article, but it suits my worldview, so why bother questioning it? followup: triggertrap latency and fuji instax tips short answer: triggertrap app audio triggering latency is too long to capture a fast moving event. the app, the dongle, my trusty eos rebel xti, lensbaby (manual focus, soft edge details), and neewer flash worked, but too slowly. the phone was just inches from where i was throwing the dice, but the flash and camera were triggered after most of the action happened. most of the time the die flew off the table before the picture was captured. air-gap flashes for fun, and more fun this blog post by maurice ribble explains the problem with xenon flash tubes such as those typically used in photography: [x]enon flash tubes have a minimum duration of / , th of a second. that’s fast enough for most things, but not for a shooting bullet [that] travels around feet/second. in / , th of a second that bullet can travel about / rd of an inch leading to blurry photographs of bullets. what’s the minimum latency when using triggertrap audio triggering? cc-by-nc-nd by airguy the core point of triggertrap is to release the camera shutter faster and more reliably than can be done by hand, so this is a bit concerning: the explosion was so fast, that the triggertrap and camera just weren’t fast enough to capture it. so…what is the minimum latency between trigger noise and shutter signal when using the various triggertrap devices? it turns out they’ve gotten a lot of questions, and perhaps no small number of complaints about this issue with their mobile app. fuji instax tips and tricks cc-by-nc-sa by mychkine. on focusing and using the closeup attachment lens: if you want to take portraits, use [the included closeup adapter]. with the camera focus set to infinity, the point of sharp focus becomes meter. with the same [closeup] attachment the . - m focus setting gives pin sharp results at cm. (selfie range) the depth of field is quite shallow so it is easy to end up with blurred pictures if you mis judge the distance. yeah, he’s probably right apparently nate silver’s book on people being wrong is filled with errors: the text and chart are contradictory, and other errors in the comments. ncar’s computers are water cooled, not fanned with oxygen. meet the new media on the future of media, at the awl: of course a website’s fortunes can change overnight. that these fortunes are tied to the whims of a very small group of very large companies, whose interests are only somewhat aligned with those of publishers, however, is sort of new. the publishing opportunity may be bigger today than it’s ever been but the publisher’s role is less glamorous: when did the best sites on the internet, giant and small alike, become anonymous subcontractors to tech companies that operate on entirely different scales? the cameras i’ve enjoyed big huge labs reminded me that my flickr birthday is in just a few days. my first photo upload was on may , . flickr itself turned in february, but it was the big huge labs stat and the photo walks today that really got me thinking about how long it’s been. for whatever reason, that has me thinking about the cameras i’ve used over those years. ten years is long enough that i had to go looking to remember some, and long enough that i found some i’d forgotten. disclaimer in spam message you are receiving this e-mail because we just received a mass e-mail and the sender forgot to blind cc your addresses. we will only be sending this one e-mail so as to not pester you, so please contact us if you would like more information. people pay for photos like this first there was the bad engagement photos tumblr, but now it’s been one-upped by this crazy russian wedding photos livejournal. strobist david hobby on hdr i’ve been re-reading david hobby‘s lighting tutorial while at the same time exploring hdr (wikipedia’s hdr article is a good read for those unfamiliar with it). the question that eventually came to mind was how the guy that wrote the following feels about hdr? how often have you heard this, usually with a tone of superiority: “i am a purist, i only shoot available light.” (translation: i am scared shitless of flash. what makes us special? in daily kos this weekend: a common thread among young-earth creationists, gun enthusiasts, marriage exclusivists, and the %. the key point is that groups identify by what makes them “feel special.” distilled, here are the four groups: creationists: being created by god makes humans special gun enthusiasts: their role in protecting liberty makes them special marriage exclusivists: making marriage exclusive to straight people makes them special one percenters: their accumulated wealth makes them special i was interested in seeing the author’s evaluation of what may be a motivation for (some) members of the identified groups. on “do what you love” a friend forwarded miya tokumitsu’s essay “in the name of love” pointing out the steve jobs quote and summarizing that it “challenges the notion of work at what you love.” i read it with some frustration, then decided i had to ask my friend what he saw in it. i was already into my reply when i tried to look up other works by the author and discovered the piece has been positively covered by a lot of sites i respect. magic lantern for eos m the eos m is named as a “beta” supported camera, but you won’t find a download for it in the normal place. instead, you’ll have to use a “tragic lantern” build at tl.bot-fly.com. this forum thread is about the development, while this forum thread includes more how-to and documentation. canon eos m running magic lantern. from magiclantern.fm rumors subcomandante marcos, by jose villa, from wikipedia it started at the coffee shop. somebody pointed and made the claim, then everybody was laughing. “he looks just like him!” one said. “how would you know, he wore a mask!” exclaimed another. i looked him up. i could be accused of being a less interesting figure. how to identify context inside the wordpress dashboard on wp-hackers, haluk karamete asked: on admin pages, how can i detect that the current admin is dealing with a cpt? andrew nacin answered: get_current_screen()->post_type. [but] this will also specify a post type when it’s a taxonomy being edited. to filter that out, ensure that get_current_screen()->base == 'post', which is [true] for edit.php, post-new.php, and post.php (for all post types). haluk didn’t elaborate on the cause of the question, but the answer is very good advice for those seeking to conditionally enqueue js and styles only for specific post types. mysql performance tips from around the web gospel: use innodb, never myisam it seems everybody on stackexchange is singing from the same gospel: “[how can i] prevent queries from waiting for table level lock?” answer: use innodb. the major advantages of innodb over myisam. “even in a read-intesive system, just one delete or update statement will quickly nullify whatever benefits myisam has.” the main differences between innodb and myisam, including cache sizing recommendations. “how do you tune mysql for a heavy innodb workload? transcend wifi sd card hacking links http://www.fernjager.net/post- /sdcard: as a mhz linux system with mb of ram, using only ~ ma @ . v, the possibilities are endless! http://haxit.blogspot.com/ / /hacking-transcend-wifi-sd-cards.html: this post is written with the intention of exposing not only the exploits which will allow you to root (or jailbreak) the device, but also the process of discovering and exploiting bugs, some of which are a dead end, while others lead to the holy root b-) ads-b: the internet of things in the sky ads-b is a civil aircraft tracking and telemetry standard that the faa has ruled will replace transponders by . like a transponder, it’s used to identify air traffic, but with far more more information, such as altitude, heading, speed, and gps location. the protocol also supports delivery of weather, terrain, and notices to aircraft. the ads-b signals from aircraft in the sky are intended for receipt by both air traffic controllers on the ground and by other aircraft in the vicinity. need two-way encryption without mcrypt? in a typical lamp environment, but don’t have or can’t trust that mcrypt is available in php? try mysql’s aes_encrypt and aes_decrypt. go read the docs. where to buy a submarine no need to explain why, i understand: you need a submarine. and you don’t need a bathtub toy (really?), you need something that will truly wow them at the yacht club. there are a few soviet diesel subs built in the s through s that might be just the thing. photo: public domain, from wikipedia. source. the soviets built over whiskey-class subs, and quite a few of them are on the market now. manhattan project tours the manhattan project was among the us government’s’ first big secrets. it’s easy to forget that plutonium, the incredibly radioactive element at the core of the first atomic detonation, was only identified in . two years later army corps of engineers started construction of reactor b to produce it in industrial quantities. today, reactor b is a national historic landmark, and one of only a few locations of the sprawling manhattan project that the public can tour. where on earth can i get an weotype list? it’s not like these aren’t documented, but i keep forgetting where. woeid place types: $woetype = array( ' ' => 'town', ' ' => 'state-province', ' ' => 'county-parish', ' ' => 'district-ward', ' ' => 'postcode', ' ' => 'country', ' ' => 'region', ' ' => 'neighborhood-suburb', ' ' => 'colloquial', ' ' => 'continent', ' ' => 'timezone', ); they can be queried via yql: <?xml version=" . " encoding="utf- "?> &lt;placetypes xmlns="http://where.yahooapis.com/v /schema.rng" xmlns:yahoo="http://www.yahooapis.com/v /base.rng" yahoo:start=" " yahoo:count=" " yahoo:total=" "> &lt;placetype yahoo:uri="http://where.yahooapis.com/v /placetype/ " xml:lang="en-us"> &lt;placetypename code=" ">historical town&lt;/placetypename> &lt;placetypedescription>a historical populated settlement that is no longer known by its original name&lt;/placetypedescription> &lt;/placetype> &lt;/placetypes> when not to use esc_js() from the codex for esc_js: if you’re not working with inline js in html event handler attributes, a more suitable function to use is json_encode, which is built-in to php. dynamic range vs. price and brand dynamic range is what keeps skies blue while also capturing detail in the foreground. without enough dynamic range, we’re forced to choose between a blue sky and dark foreground, or properly exposed foreground and white sky. i’ve been using multiple exposure hdr techniques to increase the dynamic range i can capture, but multiple exposures don’t work well with moving subjects. a camera that can capture good dynamic range in one shot would be better than one that requires multiple shots to do the same. happy d. b. cooper day! the fbi’s wanted poster for d.b. cooper. d. b. cooper, the guy who hijacked a plane in and then — mid-flight — jumped into the darkness with a bundle of cash and disappeared, is celebrated on this day, the saturday following thanksgiving. granted, this is mostly just a thing in ariel washington, where it’s said to have started in , but the participants are pretty passionate about it. a smaller microcontroller for smaller jobs i’ve been thinking a bit about how overkill a full arduino is for shutterfingers, and feeling a bit sheepish about how lazy i am about learning to use some other microcontroller. then i found this guide talking about the attiny : if you’re just blinking a few leds, and reading a single sensor, you can get the job done smaller and cheaper using a simple ic, like the attiny . using it requires a programmer socket and actually mounting the ic to a pcb, but it seems to have enough going on to be useful: if i did it over again, i’d make shutterfingers smaller shutterfingers is my simple servo controller that presses the shutter on cameras that don’t support remote control. my first attempt was in a sweet looking, but big aluminum case and incorporates a mah battery to power the arduino, servo, and external power for the camera. well, it all works, but i’m not sure why i approached it that way. having extra power for the camera is essential for some applications, but i’m not sure why i was so anxious to marry the two projects into one. just catching on: mysql supports tables in plain csv the storage engine docs are quite clear — “the csv storage engine stores data in text files using comma-separated values format” — and yet i never realized mysql supported it. sure, the tables don’t support indexes and repairing them seems riskier than with other tables, but it still seems to offer a lot of convenience for some things. a comment in the docs suggests how easy csv exports can be: on gamification stowe boyd, remarking on the pew internet project report on gamification in which he was quoted: the need for a renewed push in the enterprise to reengage every person with their personal work, to find meaning and purpose, has never been greater. but adding badges to users’ profiles on whatever work management tool the company is on, showing that bette is a super expert customer support staffer, or whatever, is the shallowest sort of employee recognition, like giving out coffee mugs to the folks with the lowest number of sick days. shutterfingers works! i mentioned my plans to make a servo controller to mechanically press the shutter button on a camera when signaled from a motion control timelapse robot. the parts have arrived and it’s running on a breadboard. i’ve had to make a few changes to the code, including fixing a variable reference, but the biggest change was to implement the internal pull up resisters on the arduino and reverse the logic. that simplifies the wiring. i guess i missed the hand car regatta i followed the raygun gothic rocketship from its former site near the ferry building in sf to its new location in calgary, to the website of the artist collective that made it, to another of their projects: the lumbering contraption, to the internet archive cache of the website for the event at which the contraption appeared, the abandoned facebook page for the event and the april notice that, after four years, the event was well and truly over. pcb prototyping services expresspcb promises for a fixed price of $ , you will receive identical layer, . ″ x . ″ pcbs with solder mask and silkscreen layers. that seems like a good plan, but i’m also very new to this market. are there other, better options? and, as long as i’m asking, what software is available for macs to sketch out the schematics and layout pcbs? this spammy article names some free choices and led me to a mac port of kicad. simple cameras john gruber links to mike johnston’s post asking: i mean, with hundreds of cameras on the market, wouldn’t you think they could make one that was super-simple, just for that segment of the population that wants it? to this i offer the panasonic lumix lx . i’ve been pretty in love with it lately, and i think it’s the perfect answer to that question. that’s the camera that defied the megapixel race of the late s. installing and using mencoder for timelapsing i have a new computer, which has me looking up my old documentation on how i encode still photos from a timelapse series into a video file. as i often do, i’m blogging about it now to make it easier to find next time i need to remember what to install and what settings i’ve found work well. i’ve seen a number of different solutions, but i mostly use mencoder, a command-line tool. of course i want an enfojer enfojer is an enlarger that uses your smartphone as both light source and negative. it’s on indigogo now. from the faq: what lens are we using in the enfojer? it is a wide angle polycarbonate toy camera style meniscus lens. it blurs the image just right so you don’t see the pixels on your print. yeah, we tried sharper and better ones, but the results were too sterile. fujifilm x and sony nex lenses if i get a new camera system i’ll need new lenses. i’m looking carefully at the sony nex e-mount and fujifilm x-mount because they offer fairly compact cameras with large, aps-c sized sensors. on top of that, however, i usually like to shoot a very wide-angle lens. on a sony nex, my best choice might be sony’s - mm sel- . that’s mm after the . x crop factor, and that’s just fine. on the downside, it’s an $ lens, and only has an f maximum aperture. what camera systems are worth it? given that my feelings for canon’s lackluster approach to mirrorless cameras, i’m now obligated to look for a new camera system, and that has me looking at cameras i’d previously ignored. fujifilm’s x system is a recent entrant into the interchangeable lens mirrorless camera fray (note that not all the cameras in the x line sport interchangeable lenses, or similar sensor sizes or body types). the x-e received a gold rating from dpreview, and the new x-m is looking like another good camera as well. the eos m system might as well be dead amazon is now selling eos m cameras for $ with free shipping. at that price you have to think about buying it as a joke, but that’s exactly what it is. the camera is hobbled by canon to avoid cannibalizing sales of their other products. consider this: fujifilm’s x series, sony’s mirrorless nex and cameras, panasonic and olympus‘ micro four thirds mirrorless cameras, and others offer good manual controls despite their small size. shutterfingers i started work on my first arduino project today, though i have yet to get the hardware. the plan is to build a servo controller that can trigger the shutter on my panasonic lx camera that lacks any sort of remote shutter release. i started looking into this before and found cris benton struggled with the problem as well. i’m planning to go down a path he blazed some years ago: put a servo on it. building geos on centos it should be simple, but i ran into a number of errors. first i got stuck on libtool: line : g++: command not found. it turns out i needed to install g++ using: yum install gcc-c++ then i got stuck on this one: platform.h: : : error: #error "can not compile without isnan function or macro [...] "coordinate.inl: : error: ‘isnan’ was not declared in this scope the author of this page faced the problem, but the real insight came from this bug report on an unrelated project: about those battery life ratings i added battery life as a factor in my recent review of cameras, but what does the reported battery life of a camera mean? assuming the translated pdf is correct, cipa standards for camera battery life amount to something like this: take pictures continuously until the camera shuts down due to power loss. fire the flash at full power for every other photo, if the camera has a flash. lumix lx sample photos a friend was asking about the lumix lx i named in my camera roundup the other day and earlier this year. i keep the lx in the list because of my experience with it’s predecessor a couple generations earlier: the lumix lx . he asked how it performs, but i struggled at first to find photos demonstrating it. i began to wonder if my memory of the lx was a little more glowing than the reality. why in-camera gps matters i concluded my review of current camera options with the claim that i’d switch lens systems for a compact interchangeable lens camera that had built-in gps. why do i want gps? because the competition for all the cameras i listed there is my iphone, and one of the reasons i prefer my phone is because every photo i take with it is a little breadcrumb helping me track my travels with very accurate date, time, and location information. summer camera options i reviewed a lineup of cameras i’d consider to replace my aging canon rebel xti and panasonic lumix lx  back in february, but i’m on a roll after collecting some film camera party packs so i decided to update this list as well. since i gathered my original list i’ve started using motion control robots and my photo habits have changed. given that, the priority of some of the options has changed a bit as well. back to the vault: old vacation pics shot on film my love letter to film cameras as a solution to smartphone addiction at parties had me looking for some old film photos. do we enjoy the idea of film more than the reality? i found a set of photos from a vacation to las vegas in april . it’s clear that whatever photographic technique i’d developed years before had gone fallow. at the time i was shooting with an olympus stylus epic, probably on kodak or speed print film. film camera party-packs in the old days, or the s at least, party hosts distributed disposable cameras. then digital cameras and smartphones after that became common. the number of photos has been growing, and in some cases so has the quality. but as the number of cameras has exploded so has the presence of cameras themselves in the photos, and as groups of people line up to be photographed, they’re often now outnumbered by photographers on the other side. detect mysql’s “too many connections” error wordpress appears to continue with execution even when mysql refuses connections/queries after init. here’s a comment in the mysql docs suggesting how to detect the condition in raw php: $link = mysql_connect("localhost", "mysql_user", "mysql_password"); if (mysql_errno() == ) { // == er_too_many_user_connections (mysqld_error.h) header("location: http://your.site.com/alternate_page.php"); exit; } just a note to myself, but i wonder if there’s opportunity here. sf gentrification debate i wade into this topic wearily, but i do love my new city, even in the moments where it drifts from critically self-aware to navel gazing. ian s. port’s july review of the media coverage of the gentrification debate included this nugget discussing ilan greenberg’s angle on the topic: [w]hat’s happening here isn’t gentrification at all, but merely middle-class residents using the word to conceal discomfort over richer people coming in and ruining their good time. data sources for geographic boundaries world.geo.json to mock something fast and loose with geo-json data for the world, this is your fix. legal status of this dataset: dubious? for a good time, drag them to http://bl.ocks.org/ and paint the globe! world-atlas [a] convenient mechanism for generating topojson files from natural earth. natural earth natural earth is a public domain map dataset available at : m, : m, and : million scales. featuring tightly integrated vector and raster data, with natural earth you can make a variety of visually pleasing, well-crafted maps with cartography or gis software. built for a purpose: geographical affordances and crime in cabinet spring , geoff manaugh investigates the relationship between geography and the crimes that geography affords. in the s, los angeles held the dubious title of “bank robbery capital of the world.” at its height, the city’s bank crime rate hit the incredible frequency of one bank robbed every forty-five minutes of every working day. [an fbi special agent once joked] the agency even developed its own typology of banks in the region, most notably the “stop and rob”: a bank, located at the bottom of both an exit ramp and an on-ramp of one of southern california’s many freeways, that could be robbed as quickly and as casually as you might pull off the highway for gas. peeking into other people’s photo rigs this all started because i went looking for a way to remote trigger a panasonic lumix lx . the internet is pretty certain that the only way to do it is mount a servo to mechanically press the shutter button. sad. but that led me into cris benton‘s world of photography from poles. yes, he mounts his camera at the end of a carp fishing pole (a noun so unknown to me i almost put it in quotes) to loft it up to ′ in the air. speeding up mysql joins on tables with text columns, maybe the thing about wordpress’ db schema is that text and varchar content is mixed in the posts table (to say nothing of the frustrations of datetime columns). that’s not such a problem for a blog with a few hundred posts, but it’s a different matter when you have a few hundred thousand posts. and it wouldn’t even be a problem then, except for this quirk in mysql: instances of blob or text columns in the result of a query that is processed using a temporary table causes the server to use a table on disk rather than in memory because the memory storage engine does not support those data types (see section  . what is the difference utf _unicode_ci and utf _general_ci? from the mysql manual: for any unicode character set, operations performed using the xxx_general_ci collation are faster than those for the xxx_unicode_ci collation. for example, comparisons for the utf _general_ci collation are faster, but slightly less correct, than comparisons for utf _unicode_ci. they have a amusing “examples of the effect of collation” set on “sorting german umlauts,” but it unhelpfully uses latin _* collations. and another table that helpfully explains: a difference between the collations is that this is true for utf _general_ci: canon + ios tethering solutions there’s magic that happens inside the camera. yes, magic. most cameras expose the controls to that magic via some knobs and buttons and a small lcd screen. the knobs and other physical controls we like, but the screen pales in comparison to those on our iphones. and that’s the thing, the hundreds of apps on our iphones leaves us wondering why our dslrs aren’t an open platform, ready to be reshaped by one app after another. testing apply_filters() times testing how long it takes to assign a variable versus assigning through wordpress’ <a href="http://codex.wordpress.org/function_reference/apply_filters">apply_filters()</a>. filters are core to wordpress, but i haven’t yet looked at the total number of apply_filters() calls used throughout the code. the answer to this question is that calling a non-existing filter before assignment is about times more costly than simply assigning it. that’s nothing compared to the cost of actually doing some filtering, however. clarity from a distance the sky looks big from earth, but it’s rather different the other way around. i’m not saying it’s not quite an experience, but inspecting the metadata on this photo of new york and surroundings taken on christmas day, , during the first international space station mission surprised me. to wit: it’s only a mm lens. granted, that’s on an old kodak dcs digital camera (a nikon body with kodak imaging unit attached) with a . rd party js libraries cause downtime facebook connect went down hard tonight. huffpo reports that their site was redirecting to a facebook error page, even when people weren’t attempting to log in. yep. busted third-party javascript brings portions of the internet to its knees: huffingtonpost.com/ / / /fac… — kent brewster (@kentbrew) february , it makes me more comfortable with our decision to strip so many rd party javascripts from gigaom during our last redesign. camera frustrations and other first world problems i’m not a camera pro. i have some photos on flickr, but it’s just for fun, so i don’t really need a new camera. but i do want one. thing is, there a lot of cameras out there, but none of them has the goldilocks factor. none has the right mix of features, size, and price that makes me happy. i now have an old canon rebel xti, panasonic lumix lx , and gopro hd hero in my camera bag, but i began to feel an itch when i realized my mm f . testing file include times for a file that may or may not exist question: should you check for a file before attempting to include it, or just suppress errors? calling file_exists requires stating it twice if the file does exist, so that could take longer. answer: the file_exists pattern is more than five times faster than the @include pattern for a file that doesn’t exist, and not substantially slower when the file does exist. the test: &lt;?php $start_time = $end_time = $i = ; $start_time = microtime( true ); for( $i = ; $i &lt;= ; $i++) { include __dir__ . an american iphone in europe by way of update on my earlier post after researching options for at&t iphone users in europe (with an unlocked phone), i ended up not bothering with local sim cards in either the netherlands or france. a savvy user should be able to find a local pay as you go sim plan that’s less expensive than at&t’s data roaming packages, but i’m that user and know very little about the local operators (not even all their names). svn or git? @film_firl poked @wordpressvip to ask @wordpressvip @mjangda @viper bond moooove to git!!! she half-kids. no really, please? — christina warren (@film_girl) january , @nacin piled on with @viper bond @film_girl @mjangda vip aside, it’s fairly crazy that wordpress.com hasn’t migrated. svn != tenable dev environment. — andrew nacin (@nacin) january , @viper bond tried to defend the team, and added @film_girl @wordpressvip @mjangda that said transitioning is not always worth it. where did all the votes go? what happens to voting data after the election is over? what happens to all those certified results by polling place? how is it that there’s so much coverage leading up to and on the night of the election, but this guy seems to be one of the few sources of historical voting data? amusingly, i found it linked on the library of congress’ website! there’s some very old sources from e. on wp_enqueue_scripts and admin_enqueue_scripts an argument has erupted over the wordpress actions wp_enqueue_scripts and admin_enqueue_scripts vs. init. one of the points was about specificity, and how wp_enqueue_scripts and admin_enqueue_scripts can reduce ambiguity. i didn’t realize i had strong opinions on it until the issue was pressed, but it turns out i think wp_enqueue_scripts and admin_enqueue_scripts are unnecessary and unfortunate additions to the actions api. here’s what i wrote in that discussion thread: is spatula city the store that’s most specifically targeted to the sale of fine spatulas? confirming that object references in arrays are preserved while cloning the arrays a short test to confirm references are preserved in cloned arrays. // create a stdclass object (using my lazy way of coercing arrays to objects) $object = (object) array( 'thing' => 'original' ); // add that object to an array element $array = array( 'object_one' => $object ); // clone the array by assignment to a new variable $array_two = $array; // add a new copy of the original object to a new element in the new array $array_two['object_two'] = $object; // show what we have so far var_dump( $object , $array , $array_two ); the result is: ignoring noise in svn diffs svn diff -x "-bw --ignore-eol-style" is your friend when somebody decides to change the end of line style and strip all trailing whitespace from the files in your repo. is perl the best solution to write code that needs setuid? a bunch of searching the web for things related to setuid and shell scripts lead me to this answer in stack exchange: perl explicitly supports setuid scripts in a secure way. in fact, your script can run setuid even if your os ignored the setuid bit on scripts. this is because perl ships with a setuid root helper that performs the necessary checks and reinvokes the interpreter on the desired scripts with the desired privileges. there’s no ‘git cp filename’? here’s a sequence of unbelievable things: yes, despite a lifetime in subversion, i’m really this new to git! i’m going to link to livejournal in this post! git really doesn’t have an equivalent to svn cp filename! i spent a surprisingly long time reviewing the man pages and surfing the internet to confirm this, but git really assumes you’ll never want to copy a file with history. here’s that livejournal link i promised, where markpasc has similar complaints — from , no less. aww, i got thanked! i recently backed the syrp genie, one of a handful of recent motion control timelapse projects on kickstarter. it’s well past its expected ship date, but they done a good job of keeping backers updated on progress and just today they shared photos of the box that will soon be on it’s way to me. they’ve thanked backers with a card in every one of them. if you look closely, you’ll see my name straddling the “thanks” in the center. greetings library scientist the california library association is pretty much like every other regional library association i’ve seen, not least because their most visible presence is their annual conference. it may be the season, but the cla is more politically active than others i’ve known. at their core, most such associations exist to promote efficient transfer of operational knowledge from one library to another, from one generation to another. libraries today unfortunately, in less than a generation’s time, the very foundations of libraries has been rocked by technological, legal, and economic changes unlike any these organizations have seen before. our arbitrary alphabet we have been gaslighted by the alphabet and now believe the arbitrary string of letters is actually organized according to some plan. hegemonic language and arbitrary order the signs used in writing originate in arbitrary decisions, but the connection with arbitrariness is lost when convention takes over. the convention of long usage kills even the memory of the initial arbitrariness of the signs and gives them an objective and seemingly inevitable presence. strange things running on my mac my imac screen is dark and isn’t lighting up like i expect it to when i tap the keyboard. i can, however, ssh into it and see what it’s doing when not responding to me. i found googlesoftwareupdateagent running, this faq item vaguely tells me it’s part of chrome, and that if i try to uninstall it without also uninstalling chrome it will simply “be reinstalled after a few hours.” action camera market not yet saturated, according to sony i wondered if the gopro-style action camera market had already become saturated back in january, now i’ve learned that sony apparently doesn’t think so. at least one imagines that’s the conclusion they came to before deciding to join the competition with a camera of their own. they call it the action cam, and it clearly takes its design cues from contour. what does sony offer to stand apart from the established players? usb camera control problem the canon eos m doesn’t include a remote shutter release cable port, and the on-camera controls don’t expose features such as bulb-mode exposures. further, simple remote shutter release doesn’t support the sophisticated camera control necessary to do timelapses with complex exposures. what kind of complex exposures? imagine a timelapse going from day to night. during daylight the exposure might be f ,  / second at iso , but the night exposure might require f / second at iso . geography vs. stereotypes alphadesigner is trying to put a finger on it with his mapping stereotypes series. others, including how americans see europe and the world according to america, are not nearly as well designed. we’d be fools, however, to think we invented the idea of mapping our prejudices. this flickr set of maps from through is good evidence of that. chance vs. lasers via tweet: claw arcade games are not skill games, rather, the claw strength is randomized and is often only strong enough to successfully grab the prize in one attempt out of , or . operator manuals linked in the quora answer explain the different modes and odds. string cutting games, however, can be defeated with lasers! apigrove: api management software apigrove is an api management tool by alcatel-lucent. it proxies apis (presumably those you built and host, though the example is for twitter) , supports authenticated access, throttles to help manage demand, usage logging and reporting. more info @apigrove, hat tip. be careful what you measure seth godin on what to obsess over: what are you tracking? if you track concepts, your concepts are going to get better. if you track open rates or clickthrough, then your subject lines are going to get better. up to you. it’s long something i’ve believed: if you measure it, you will attempt to maximize it, even if the metric is something you’d rather minimize, like co emissions. preparing my iphone for europe there’s uncertain talk of a european trip coming up, so i’m making nonspecific preparations for it. one of the questions i have is how to avoid hefty roaming charges from at&t. in previous trips abroad i’d purchased overseas voice and data add-ons so i could use my iphone. that works, up to a point. on my return home from a trip to taiwan a few years ago i got a call from at&t informing me that i’d gone over my data limit and was facing a $ charge for the usage. higgs-bugson a higgs-bugson is a hypothetical error whose existence is suggested by log events and vague reports from the users that cannot be reproduced in development conditions. qa and user support teams point to the higgs-bugson as an explanation for the results they see in the field. software engineers, however, often deny the existence of the higgs-bugson and offer alternative theories that often blame the user. engineers, after all, don’t write bugs. gopro hd hero lens correction gopro’s hd hero action camera is everywhere, so perhaps we’ll all be used to the fisheye’d images it produces soon. on the other hand, there are software solutions to rectify the image to rectilinear. vimeo user peter inova has a few videos demonstrating his photoshop action sets to straighten out an hd hero’s output. a person could probably significantly improve performance by giving up on photoshop and building a video filter based on the panotools image manipulation library. making sense of at&t’s shared data plans kevin’s coverage at gigaom helped, but what i really needed was a chart that compared the different options. i couldn’t find one, so i made my own: <td valign="top"> <strong> iphones</strong> </td> <td valign="top"> <strong> iphones</strong> </td> <td valign="top"> <strong> iphones</strong> </td> shared data, unlimited minutes gb <td valign="top"> $ </td> <td valign="top"> $ </td> <td valign="top"> $ </td> gb <td valign="top"> $ </td> <td valign="top"> $ </td> <td valign="top"> $ </td> gb <td valign="top"> $ </td> <td valign="top"> $ </td> <td valign="top"> $ </td> gb <td valign="top"> $ </td> <td valign="top"> $ </td> <td valign="top"> $ </td> gb <td valign="top"> $ </td> <td valign="top"> $ </td> <td valign="top"> $ </td> gb <td valign="top"> $ </td> <td valign="top"> $ </td> <td valign="top"> $ </td> <td valign="top"> </td> <td valign="top"> </td> <td valign="top"> </td> individual data, shared minutes  mb <td valign="top"> . motion control timelapse projects on kickstarter some time ago i backed the syrp genie (estimated delivery july ), but today i learned of the radian and astro. unlike the radian and astro, the genie supports linear motion, but it’s also much more expensive, bigger, and appears to have more complex controls. here are the videos for all three projects: [http://www.kickstarter.com/projects/syrp/genie-motion-control-time-lapse-device/widget/video.html] [http://www.kickstarter.com/projects/ /radian-a-motion-time-lapse-device-for-everyone/widget/video.html] [http://www.kickstarter.com/projects/ /astro-time-lapse-motion-control/widget/video.html] eduard khil, mr. trololo, dead at eduard khil is dead. the man, whose work and career had earned high praise, including the order of the red banner of labour ( ), lenin komsomol prize ( ), order of friendship of peoples ( ), meritorious artist of the rsfsr ( ), people’s artist of the rsfsr ( ), order of merit for the fatherland ( ), and international fame with his performance of trololo. the performance that made him famous: a stage performance: composited timelapse and real-time skateboarding video http://www.vimeo.com/ russel houghten‘s open horizon is part skate film, part time lapse, and mostly awesome. then somebody pointed to this jimmy plmer/z-flex video that shares a number of features with houghten’s work, but is less ambitious in scope. at least they did a behind the scenes video that shows the sweet red camera and rails. find neighbors on the same ip what other sites share the same infrastructure with your site, or any other? bing‘s ip search can answer. do a search by ip number: ip: . . . ip: . . . ip: . . . site load performance benchmarks the loop’s jim dalrymple compiled the following numbers for the time it takes various tech sites to load in a browser in late : the loop: requests; . kb; . secs daring fireball: requests; . kb; milliseconds macworld: requests; . kb; . secs ars technica: requests; . kb; . secs apple: requests; kb; . secs cnn: requests; . kb; secs bgr: requests; . mb; . secs appleinsider: requests; . is this the best imdb api? imdbapi.com css speech bubbles twitter front-end guy nicolas gallagher likes both css and speech bubbles enough to want them unadulterated by images and non-semantic markup. the lesson from his many examples is that it all comes down to an :after pseudo element that puts the little triangle in there: .speechbubble:after { content:""; position:absolute; bottom:- px; /* value = - border-top-width - border-bottom-width */ left: px; /* controls horizontal position */ border-width: px px ; /* vary these values to change the angle of the vertex */ border-style:solid; border-color:#f c transparent; /* reduce the damage in ff . semantic news markup and seo schema.org newsarticle hnews rnews (and the war between rnews and hnews) google news technical requirements on the likelihood of unicorns research by robert e. hall and susan e. woodward shows that % of venture-backed firms exit for less than $ million ( % exit for less than $ million). in a world where instagram can exit for $ billion with no revenue or monetization plan, anything less than $ million is an implosion. marathon spoiler guides marathon and marathon : durandal are available as ios apps. the classic marathon spoiler guides might be good companions. airparrot turns appletv into a secondary display from the faq on the airparrot site: what does airparrot do? airparrot lets you airplay your mac’s screen to a second or third generation appletv. what you see on your mac’s screen will appear on the appletv, wirelessly! how do i use airparrot? once you’ve opened airparrot, click on the icon in your menu bar. select the airplay device (such as your appletv) and then select which screen you want to mirror. sf police, fire, ems, and airport radio monitoring listen in with radioreference.com’s index of live police, fire, ems, and airport radio feeds in san francisco. is this the best way to copy voicemails from an iphone? instructables tells us to get the files from the iphone backup in ~/library/application support/mobilesync/backup/, but “itunes renames all your files xxxxxxx.mddata. so all you need to do is figure out the original file name extension and you will be able to view the file.” ugh, isn’t there a better way? html form elements mark pilgrim’s overview of html form elements includes the following: placeholder text autofocus fields email addresses web addresses numbers as spinboxes numbers as sliders date pickers search boxes color pickers form validation required fields further reading configuring amazon linux for web services (spring ) i’ve tested this cookbook against amazon linux, but it will probably work just as well with the current version of centos. basic installation first, get root and update the os: sudo -s yum update with that done, let’s get the basic packages and services installed: yum install mysql mysql-server mysql-devel httpd httpd-devel mod_ssl php php-devel php-mysql php-gd php-dom php-pear php-json memcached svn gcc pcre-devel make that gets us apache httpd with ssl, php with a number of modules, memcached, and a few system tools. php vs. frameworks six years ago this month the zend framework preview was released and rasmus lerdorf published a blog post titled “the no-framework php mvc framework” (italics added). r. rajesh jeba anbiah noted irony. scanwiches scanwiches: scans of sandwiches for education and delight. above is parisi bakery’s ham, swiss, tomato, lettuce, mustard, mayo, on a hero. prints were said to have been available — i’d like the dagwood, thank you — but the store seems in a sad state. pew internet project: “ % of adults own a tablet computer” we’ve heard stories about how significant the growth of apple’s ipad is, but pew internet and american life project director lee rainie speaking at the national federation of advanced information services (nfais) conference on mobile devices and the delivery of information shared a stat that made me pause: % of adults own a tablet computer – ipad to clarify, that % does not include ebook readers (they’re tracked separately). rob reid’s copyright math rob reid’s copyright math at ted : the claimed effect of entertainment piracy to us economy is larger than value of most of our agricultural output. pantone yummies by emilie griottes: open access and open data finally getting public attention complaints over the cost of academic journals have long been a trope that repeats at library conferences with no denouement, but there are new signs that might be changing. the issue is that a large portion of the research done in the us is performed by faculty paid by academic institutions and supported by public money, often grants from the nih. a significant condition of promotion in academic careers is publication of original research in trusted journals, which is entirely reasonable to most everybody involved, except for the librarians who have to pay for the journals. the microsoft store experience there’s a microsoft store right across from the apple store in the valley fair mall. cliff and i realized this after exiting the apple store there with a new keyboard and headphones. we’d never been in an ms store before, so we ambled over with our clean white apple-branded accessories in hand. the windows phone display was in the back corner, attended by a nice woman who offered to fetch a nokia lumia phone from the back for us to inspect. marta becket’s final performance tonight legend has it that marta becket rolled in to death valley junction in and has been performing at the amargosa opera house since, but tonight is her last performance. i visited in and took in the show then. it’s a certain kind of show and performer that can run years non-stop (it was in its th year when i saw it). action cameras you know about countour and gopro, but you may not have seen drift and swann. is this a market that is getting saturated, or is it about to explode? contour marketing video: gopro marketing video: drift marketing video: http://www.vimeo.com/ swann marketing video: three of the cameras compared: happy new scriblio! the most recently released, stable version of scriblio is marked  . -r  and was last updated in june . you can be forgiven for thinking development had ceased in the interim. today, however, i’m proud to introduce a completely new scriblio, re-written from the ground up to take advantage of the latest features of wordpress and eliminate the mistakes made in previous versions. this update allows users to search and explore wordpress sites using facets that represent the tags, categories and other aspects of the collection. how wordpress taxonomy query urls could be more awesomer (updated, see below) wordpress . introduced some awesome new taxonomy query features, and the url parsing allows some rudimentary syntax to query multiple terms and choose if the query is or’d or and’d. the url syntax is as follows: a comma (,) between terms will return posts containing either term (logical or), like this http://maisonbisson.com/post/tag/wordpress,mysql/ . a plus sign (+) between terms will return posts containing all terms (logical and), like this http://maisonbisson. ge public relations gets smart to the cool video thing the video from general electric is cool, and shot at least in part with cameras mounted on rc helicopters, but strangely missing is any mention their manufacture of nuclear generation equipment such as the fukushima plants that melted down earlier this year. “hot sweet wings” and other wonders composed with the help of songify cliff introduced me to the wonder of the songify app. here are some tips to making the best of it: longer text makes for better songs. repetition makes for better songs, don’t be ashamed of repeating yourself. speak in a monotone voice, let the app handle the tune. speak nonsense. no sense in trying to make sense, it doesn’t make for a better song. if you insist on trying to make sense, then just pick a single sentence and repeat it several times with slight variations. wikileaks embassy cables first wikileaks published the collateral murder video, then a massive-but-redacted dump of diplomatic cables, then people figured out how to get the unredacted content. though this information was already public, the aclu pursued a foia request on these very cables, the result was a heavily redacted record of the cables, and a clear picture of the government’s ongoing touchiness about torture, rendition, guantánamo, and targeted killings by drones. an on the media segment (mp download) explains further. parallel-flickr backs up your flickr library parallel-flickr: a tool for backing up your flickr photos and generating a database backed website that honours the viewing permissions you’ve chosen on flickr. more details from the website: it downloads and stores your original photos and their “ x” versions. currently photos are stored locally but there’s a plan to add support for s . for each photo it downloads and stores the contents of the flickr.photos.getinfo api method as a json file. predator drones used in domestic police action the la times on december reported that predator drones such as those now being used by the air force and cia were used to support police in their investigation of cattle rustling. theft of livestock has long been a serious matter, but regulations and procedures typically make it difficult to sell stolen cattle. according to fred frederikson of the north dakota stockmen’s association, “all horses, mules and cattle leaving [north dakota] must be brand inspected. the war on cameras wnyc’s on the media did a nice piece on it back in september (mp download): judging from the arrests and harassment, photographers are part of a terrorist plot. or something. the copblock (tagline: “badges don’t grant extra rights”) map of actions taken against photographers is littered with activity. alterego: democratizing two-factor security alterego promises two-factor authentication security without the silly key-fob. neat. electric chariot sure, this electric chariot combines all the inconvenience of a scooter with some of the frustrations of an actual car, but it looks cool. sort of. though it’s made by a medical equipment manufacturer, at least it conforms to the rule of auto shows and objectifies the women demoing it as much as the vehicle itself. correction: steadicam smoothee for gopro hd hero in my earlier post on steadicams for gopro hd hero cameras i incorrectly stated that the steadicam smoothee is exclusively for iphones and ipod touches. they seem to have mounts for gopro hero and flip mino cameras as well, it’s just impossible to find that info on their website and most retailers don’t carry the other mounts. if you don’t mind the color, you can pick up a third-party mount for under $ from shapeways. web strategy discussion starter what follows is the text of a document i prepared to start and shape discussion about the future of the university website at my former place of work. the pdf version is what i actually presented, though in both instances i’ve redacted three types of information: the name of the institution (many already know, but that’s no reason to allow it to appear in search results), pay rates for proposed employees, and identification of proposed service providers. which steady cam is best for a gopro hd hero ? i have a new gopro hd hero , one of the best new video cameras available (if what you like in a video camera is a compact, wide-angle, and waterproof), and i’m looking for a way to steady it for handheld shots. the steadicam smoothee is built for iphones. their demo video and this comparison of the iphone s with and without the smoothee suggest it can work wonders, but it appears to be iphone-only [correction: it’s officially compatible with the gopro]. aoc ″ usb-connected flat panel aoc’s new ″ usb-connected monitor looks like an interesting toy. it draws its power and signal from the usb. mixed information suggests that four or eight can be connected to a single computer. at about $ , this could be a cheap way to build a large display wall. what content should a university website include? i no longer have a dog in this race, but in cleaning up my hard drive of old files i’ve run across a few items of note. for example, the above illustration i once used to describe the different content, audiences, and uses of a university website. current students, prospective students, their family, faculty, employees, and their family all use and expect to get answers from the website. websites for large organizations fail their users when they only share the details that they once exposed in view books and catalogs. what went wrong if i’m lucky, the only reason i get a phone call before am is because somebody on the east coast forgot about the timezones between them and me. the alternative is almost always bad news. today i wasn’t lucky, and neither were a huge number of readers and users at gigaom who received multiple copies of our daily newsletter. for a news and research organization that values — loves — its users as much as we do at gigaom, this was all hell breaking loose. comcast’s folly [harry shearer] , the bassist for spinal tap, voice talent for many characters in the simpsons, and host of le show has no difficulty criticizing the unnecessary complexities of modern media technology, but not until his august episode (subscribe to the podcast) has he admitted to the frustrations of modern cable. “it’s now easier to watch tv on your computer than on your tv,” says shearer. perhaps that’s why comcast, the leading cable operator in the us, lost , tv subscribers last quarter, and the company has been seeing its subscriber base shrink for a while (though they’re showing growth in internet subscribers). the end of paper domtar, “the largest integrated manufacturer and marketer of uncoated freesheet paper in north america and the second largest in the world,” launched a campaign to promote paper consumption. this much is old news, as the campaign is about a year old already. among the messaging goals, according to the agency that designed it: it’s easier to learn on paper, because reading on paper is up to percent faster than reading online. search the sears and roebuck catalog you’d think the sears archives would offer an online search of their historical catalogs, but the best you’ll find is a list of libraries holding the microfilms. ancestry.com offers an online search, but only to paying members. i’m looking into this because i was looking for historical trends in consumer products and thought the catalog would be a good source. it might be, if only i was ambitious enough to go to my downtown library. ed rondthaler’s spelling reform flip chart http://www.vimeo.com/ ed makes a good argument for spelling reform, but he demonstrates an outstanding flair for presentation, even at the age of . sara cannon on responsive web design at wcsf sara cannon‘s talk on responsive web design (resizing the page to suit different client devices) was spot on. her slides are below, but she also recommends this a list apart article on the matter, as well as less framework and  css grid (especially as alternatives to .gs). responsive web design – wordcamp san francisco view more presentations from sara cannon estelle weyl on css at wcsf i’ve long been a fan of css , but estelle weyl‘s wordcamp sf talk on it charged me up again. her slides are not to be missed. an interesting insight into mobile safari on ios a post in a y combinator discussion thread: mobile safari parses websites as a big canvas and then pretends the screen is a window through which you’re looking at the canvas. what you think of as scrolling, the browser thinks of as moving the canvas around (or the window depending on point of view). because of that, no scroll events ever get fired. even :fixed doesn’t behave as expected. applescript: get every movie in itunes applescript can be frustrating, but it’s an easy way to get info out of itunes. the following is a fragment of a script i’m working on, this part simply gets a record list of every video in the current itunes window that is a “movie” (the alternatives include music videos and tv shows, among others). credit goes to some examples i found in doug’s applescripts for itunes. boo, however, to a few scripts that are saved as “run only” and can’t be inspected, even for security. civic comparators it’s from early , but cameron marlow’s comparison of sf to nyc neighborhoods and jason kottke’s comparison of the physical geography are amusing to me as a new san franciscan. on the other hand, is it a sign of civic insecurity to make such comparisons? doublehappy game creator doublehappy, by instinct, the same folks who make the getshopped ecommerce plugin for wordpress, is an interesting game creation tool. all the game elements are stored in wordpress using custom post types and other advanced features, but it was their demo of the html editor that most amazed me. the games still play in adobe flash, but surely they’re working on rendering that to html as well. using keynote as a motion graphics tool bill keaggy just posted on the xplane blog about using apple’s keynote presentation software to make motion graphics and movies. we’ve found that in some cases, a keynote-authored video is what you might call the “good enough” solution. […] keynote lets you create and edit presentations, make things move, is ridiculously easy to learn and exports to quicktime. he offers his tips on how to make the best of it, as well as these videos made using keynote: notes to self: twitter’s website rocks on mobile devices twitter’s mobile site rocks on my iphone. especially worth noting: they’ve figured out how to pin their header to the top while scrolling the content in the middle. they’re also using pushstate() and other cool tricks to make the experience feel very native, but the scroll behavior is rare among web apps on ios. kent brewster makes a point about how difficult it is in his mistakes i made building netflix for the iphone talk from sxsw. wordpress nocache_headers() vs. nginx typically, you can call wordpress’ nocache_headers() function when you don’t want content to be cached. typically, but when you’re serving from behind nginx as a reverse proxy, consideration must be paid. it’s a year old now, so i shouldn’t have been surprised by it, but this thread on the nginx forums explains that cache-control: private headers are meaningless when nginx is being used as a reverse proxy: nginx completely ignores the ‘private’ keyword and will cache your document regardless. phpquery i have matthew batchelder to thank for introducing me to phpquery. i haven’t used it yet, but someday i’ll have need to select text elements from html using the php pear module. from the description “server-side, chainable, css selector driven document object model (dom) api based on jquery javascript library.” i get email: food tech society’s food ingredient and food additive forum the july food ingredient and functional additive forum looks to have a great lineup of talks, including nano food, interesting ingredients in milk and dairy products, ingredients in functional food and drink, sea food & frozen industry, and minutes (the longest of any of the talks) set aside just for soy sauce. incoming support request you haven’t fixed the bing search page on cafe world. it comes up when i click on an oven, when i click on a mission and then everything is ruined. fronterville: i haven’t been able to play fronterville for four days. i can send gifts, but don’t know if anyone receives them but they must because i get gifts. but i have a spouse and it is stuck. it won’t custom or random or play or anything and it freezes the whole page so i can’t do a thing and there is a white avatar that says spouse? smiley’s bar, bolinas, ca captain, ship, crew, twelve points, and a shot of whisky at smiley's i heard a story that the “bolinas border patrol” removes all the signs pointing to town, so cliffy and i had to go check it out. border patrol or not, there are no signs, but smiley’s bar is my kind of place. given the story about the signs, i worried they’d be leery of outsiders, but it turned out to be the sort of place that welcomed you in and offered you a glass. social compass it looks gorgeous, but the points and bearings brian solis lays out in his social compass seem so obvious to me that i almost dismissed it as meaningless. then i remembered there really are people who don’t know the message they’re trying to send will be filtered through people and technologies they can’t control and depend on adoption and repetition by agents working in their own interests. anyway, there are more posters in his store. radiation is all around us the environmental protection agency on radiation and cigarette smoke: studies show filters on ordinary commercial cigarette remove only a modest amount of radioactivity from the smoke inhaled into the lungs of smokers. link. photo by lanier . the story of nukey poo the video of nuclear boy and his stinky poo that’s supposed to explain japan’s nuclear crisis isn’t the first time anybody has mixed poo and nuclear reactors. a reactor at antarctica’s mcmurdo station that operated through the s was nicknamed “nukey poo” because of its poor performance and reliability (though some reports simply point to “frequent radioactive leaks”). first, here’s the japanese video: the original nukey poo was oficially named pm-a . nostalgic joy: apple emulators you can emulate an apple ][ or apple iigs in your browser with a plugin and , disk images, including oregon trail. don’t want to run an apple //e in your browser? download [virtual ] for the job (you’ll need disk images and a rom file). sweet can answer your apple ][gs emulation fix, and there’s a surprisingly large collection of sort-of-recent software available, including castle wolfenstein d, an html editor, and aim client. what time is it? the claim that changing the clocks saves energy is unsupportable by facts. some say it’s more likely to spur consumption and benefit commercial interests, but i’m curious why the teabaggersparty people haven’t risen up against this alarming government intrusion into our private lives. wijax widget lazy loader idea: a simple way to improve load-time performance by lazy loading some of the content on the page. answer: wijax. the more content in the initial download of the page, the longer readers have to wait to see it. some content is critical to each page load, but why make people wait for every last piece of the page before they can start reading the post they came to see? wijax allows you to defer loading widgets on the page so that they arrive after the main content. net render your ie compatibility tests maisonbisson in ie geotek‘s netrenderer makes it possible for me to see how badly old versions of ie are mangling my web pages without actually having to run the malware on a box of my own. unfortunately, the ie rendered returns errors and hasn’t worked in a while. maisonbisson in ie ebook user’s bill of rights it’s easy to see the ebook user’s bill of rights as a sign of the growing rift between libraries and content producers. easy if you’re me, anyway. it connects very conveniently with richard stallman’s open letter to the boston public library decrying what he summarizes as their complicity with drm and abdication of their responsibilities as public institutions. all those things are easy, what’s hard is recognizing that the depth of change the publishing industry is facing. van ness station escalator ambient video flickr video more mesmerizing than a fireplace video? saving backup space with time machine and iphoto three things that, when mixed, can consume a surprising amount of disk space: backup automatically with time machine use iphoto and take a lot of photos sync photos to one or more ios devices like iphones and ipads i do all three, and on top of that i have three current computers backing up to a gb time capsule. all of this combined was forcing time machine to expire old backups faster than i wanted as it churned through the disk space. wordpress comments_template() and wp_list_comments() performance this thread on memory usage while executing wordpress’s comments_template() raised my awareness of performance issues related to displaying comments on posts in wordpress. the first thing to know is that all the comments on a given post are loaded into memory, even if the comments are paged and only a subset will be displayed. then comments_template() calls update_comment_cache(), which has the effect of doubling that memory usage. finally, wp_list_comments() and the walker_comment class can take a surprisingly long time to iterate through a long list of comments. gigaom mobile site launched this week we launched a new mobile theme at gigaom.com. it was out for just a day or two before dennis bournique surprised us with a review on wapreview.com. i have no way of knowing if i would have linked to the review if it wasn’t positive, but i would likely have found a way to link to this advice to other developers regarding url consistency: a url should lead to essentially the same content (reformatted in necessary) regardless of which browser is used. helvetic neue on the web css tricks tips “better helvetica.” guillermo esteves explains that specifying font names in css is really about specifying font families: if you want to use a specific font face, you have to use font-family along with the font-weight property, calling both the postscript and screen names of that face for backwards compatibility which, for a person trying to use helvetica neue light means the following: font-family: "helveticaneue-light", "helvetica neue light", "helvetica neue", sans-serif; font-weight: ; steve cochrane, meanwhile, explores the use of helvetica neue light and ultra light. call it rolling shutter or focal plane shutter, it looks weird…cool i’ve been both frustrated by and in love with focal plane shutter distortion (wikipedia calls it rolling shutter) for a while, now i’ve discovered there’s a group for it. one of the photos i pointed to in my earlier post was of a low-flying helicopter (bottom), a couple other photographers have captured the effect the distortion has on propellers: about those unencumbered video formats the free software foundation tells us the h. avchd video encoding standard violates the very tenets of freedom, they claim competitors such as vp /webm and ogg theora are both unencumbered and technically equal to h. . what they really mean is that software patents are evil. now the mpeg la, the body that administers the h. patents and a number of others has announced it’s forming a patent pool that covers vp , proving that saying something is free doesn’t make it so. iphone camera details i have to look this stuff up every time i play with hugin, the open source panorama stitcher. thankfully i can find it at falk lumo.com: pixel pitch: . µm sensor size: . x . mm^ , . mm diagonal aspect ratio: . : focal length and aperture: . mm f/ . lens mm equivalent crop factor: . equivalent mm focal length and aperture: mm f/ the comments there are top notch, but what’s not mentioned is how the video mode substantially narrows the field of view. wordpress mu/ms empty header and broken image bug fixed i just switched to a new server and found myself struggling with empty http headers and broken or partial images. the problem is the memcache extension for php and wordpress mu/wordpress multisite’s need to reinstantiate the wp-cache after determining the correct blog for a given request. versions of the memcache extension prior to . go wrong somehow and it shows up when you try to do an http head request on a page (the result is empty) or enable x-sendfile support for wp mu/ms’ file handling (all the files and images in the media library will break). configuring amazon linux for web services updated: an updated installation cookbook is available. amazon has introduced their own distribution of linux with tweaks to optimize it for their elastic compute cloud platform. like centos, it appears to be based on red hat enterprise linux, though unlike the current versions of rhel and centos, the packaged applications are up to date with current expectations. that’s refreshing news for those comfortable with rhel, but uncomfortable its ancient packages. mysql . world’s largest canned food structure some records in the guinness book reflect outstanding accomplishments in hotly contested fields. others reflect the imagination it now takes to create a new class of records. food industry thailand‘s , food cans fall into the second category. don’t get me wrong, though, i’m not suggesting anybody’s imagining new fields, just that they’re imagining themselves pursuing crazy records. examples of things i think we should have records for, but i’m too lazy to look up: happy holidays from maisonbisson! another cheesy holiday card from maisonbisson and, for those who like cheese as much as us, from left to right: cotswold double gloucester with onion & chive mannoni pecorino barbagio point reyes toma we picked them mostly for color and texture, but they all tasted plenty good. i especially liked the cotswold. a holiday gift, thanks to some genius and hardworking djs, is in the nest. facebook iphone app is happy to suck in your contacts i discovered a sync button in the facebook app for iphone today: then i read the privacy notice: clearing the browser cache on ipad apple’s knowledge base article on it could be as simple as the following screenshot: instead, the docs say something like: go to settings, click the safari tab, click the big clear cache button, duh. so now you know: world’s heaviest snow plow this probably looks like a snow blower, but the railroads call it a snow plow. a rotary snow plow, yes, but still a snow plow. a ton, foot long snow plow. caveman explains: the union pacific railroad designed and built this monster in the omaha shop. this rotary snowplow is the heaviest snowplow ever built. this baby boasts a gm/emd -cylinder, , horsepower, turbocharged diesel engine that drives an electric generator which provides the power to turn those massive -foot rotary blades at rpm. where are san francisco’s love padlocks? i discovered it in the flickr blog and followed it up with considerable googling, but i can’t find any love padlocks in sf, much less a popular location for them. the wikipedia article lists two dozen notable locations in europe and asia, but not one in the americas. i searched flickr’s san francisco map and found two almost promising photos: an unrelated collection in the mission that was removed by municipal workers in , and this one in my backyard that i plan to confirm shortly. failed hard drive noises there’s nothing amusing about this list of failed hard drive noises if you’re looking through it for a sound matching what drive on your desk is making (which i am), but i’m sure there’s some good material for the click-hop crowd. photos by jon ross and james harvey, used under cc license. better xml/json display in safari i’m one of the few people who loves safari, but i was happy to admit that it didn’t display xml or json very well. marc liyanage’s xml view plugin fixes that. improving will norris’ open graph plugin will norris put together a nice wordpress plugin to place open graph metadata on the page. today i patched it to address a few bugs i and others have found. the patch switches functions that depended on globalizing $post to use $wp_query->queried_object and similar. opengraph_default_url() is changed to try get_permalink() only when is_singlular() is true. otherwise it uses the blog’s base url. this isn’t perfect, but it’s better than having the front page and all tag/category/archive pages report their og:url as being the permalink for the first post on the page. things learned about the gap inc. corporate archives if a customer saw it, or if it was shared with employees, i want some version of it in our archive. –rochelle mccune, gap corporate archivist rochelle took a few of us on a tour of the gap inc archives, a rather different archive than i’m familiar with. things learned about natural language processing at thatcamp bay area the first session i joined at thatcamp was aditi muralidharan‘s text mining boot camp, and the topic seemed to set my agenda for the rest of the event (though i wish aditi had also hosted her proposed data visualization session). aditi’s blog: mininghumanities.com. if i understood correctly, much of aditi’s presentation and experience is based on the stanford parser. unfortunately, the project seems wrapped in some licensing difficulty: it’s gpl, but they claim a license is required for commercial use. becoming donna reed sandee has just launched her new site, becoming donna reed: armed with a notepad and pen, my trusty macbook, and the desire to be the best domestic goddess i can be, i will watch the show from the beginning and find the lesson in each episode. consider this your cliff’s notes on household harmony. she’ll still be updating the feathered nest with food recipes and insights on home decor while she divines the lessons of donna reed. what the critics are missing about the apple tv it’s not just the critics, nobody seems to get the story on apple’s new tv-connected device right. darrell etherington at the apple blog says it’s a non starter for him, and ars technica’s john siracusa describes it as just the most recent entry in a product line that has been “a persistent loser” for the company. even john gruber is damning it with faint praise. they’re all wrong. of course the problem didn’t start there. dancing dog i’ve got a dozen top priorities this morning, but this dancing merengue dog just delayed them all. twitter is like a conversation in a bar mathew ingram on twitter, esquire magazine, and bars: it’s called social media because it’s social. in other words, it’s a conversation; and yes, sometimes it’s like a conversation in a bar. speed wordpress multisite with x-sendfile for apache like wordpress mu before, multisite implementations of wordpress . use a script to handle image and other attachment downloads. that script checks permissions and maps the request path to the files path on disk, then reads the file out to the web server, which sends it to the browser. that approach has some inefficiencies, and for me it introduces some problems. the process would often give up before completing the file transfer, resulting in broken images and truncated mp s among other problems. post loop by category alex bluesummers asked on a wordpress list: how do i order posts in the loop by whether or not it is in a category, then by date? suppose i have posts, of which are in the category “sports” and are in the category “blog news”. both “sports” and “blog news” posts are mixed together chronologically. “sports” and “blog news” posts share other categories and tags. i want both types of posts to be present in the loop regardless of whether it’s the front page or category archive view, but ordered by “sports” and “blog news” and then by date. migrating from wordpress mu to wordpress . multi site i’ve been running a few instances of wordpress mu for a while now, so i was more than a little anxious about the merge of the mu functionality into the core of wordpress. it’s a good thing, but sometimes such dramatic changes pose rocky challenges. not so in this case. pete mall blogged about it in may, and i’m happy to say that i followed those instructions (summary: upgrade, it will work) to upgrade both this site and scriblio. donut tour : the video please enable javascript and flash to view this viddler video. we planned the donut tour. we did the donut tour. we ate donuts. we made five stops on the tour, but this video only covers four of them. we were too stuffed to say anything about japonais, even though the donuts there were delicious. here’s the full lineup: donna’s donuts (yelp!) ziggy’s donuts (yelp!) kane’s donuts (yelp!) sun guang bakery (yelp! how to: plan a donut tour since , the first friday of june has been hailed throughout the us as national donut day. it was founded in recognition of the great comfort donuts provide to those who eat them, and to honor those who serve them. museum of family camping closed memorial day weekend is universally recognized as the start of summer. tradition allows that we can start wearing white, gather family and friends for barbecue, and, for those so inclined, go camping. for the past many years it’s also been the start of the museum of family camping’s season. the interior displays at the museum of family camping celebrated many generations of camping history. my docent made much of the dingle stick (the vertical stick that holds the cooking tin); good manners demanded they be left at the camp site for the next camper. sandee’s homemade wrapping paper sandee’s been getting into disposable art. first it was her holiday dames on the chalkboard in our kitchen, and more recently she’s been crafting one of a kind wrapping paper. it gets torn up and discarded in just a fraction of the time it takes her to sketch and shade it, but act of creation is what she enjoys. i guess that’s why her favorite artistic endeavor is baking. step by step: turn on the iphone/ipad’s web debugging console you can’t view a web page’s source, and you can’t command+f to search for text on the page, but you sure can get a debugging console to see the errors on the page. here’s how: find and open the settings app [<img src="http://farm .static.flickr.com/ / _ f_m.jpg" alt="start in the settings app" width=" " height=" " />][ ] select safari [<img src="farm -static-flickr-com- _ b af b _m.jpg" alt="safari in the settings app" width=" " height=" " />][ ] scroll down to find the developer option at the bottom [<img src="farm -static-flickr-com- _ fb . ipad + velcro = < http://www.vimeo.com/ huffington post introduces badges and social rewards how do you make news fun? or, how do you make moderating often fractious comments on news stories fun? you follow foursquare’s example and introduce badges: the moderator badge allows you to more actively participate in this process. if you are a level moderator (earned by flagging at least comments that we deleted, with a high ratio of good flags to mistaken ones), your flags now carry five times the weight of a standard flag. mick jagger on the music business mick jagger to bbc: [p]eople only made money out of records for a very, very small time […] if you look at the history of recorded music from to now, there was a year period where artists did very well, but the rest of the time they didn’t. via. remixed: my photo in truthout.org i was happy to see one of my photos used as source material for this illustration in truthout.org’s seven year reality check on the iraq war. will mobile flash be relevant when it finally works? john gruber linked to the sizzle in jeff croft’s post: in the [flashcamp seattle] opening keynote, ryan stewart, a flash platform evangelist at adobe, demoed flash player . running on his nexus one phone. […] here’s what happened: on his mac, ryan pulled up a site called eco zoo. it is, seemingly, a pretty intense example of flash development — full of d rendering, rich interactions, and cute little characters. listening is just the start jeff howe writes: idea jams “allow people to discover the fringe question (or idea, or solution), then tweak it, discuss it and bring the community’s attention to it.” “idea management is really a three-part process,” says bob pearson, who as dell’s former chief of communities and conversation rode heard on ideastorm. “the first is listening. that’s obvious.” the second part, pearson says, was integration, “actually disseminating the best ideas throughout our organization. pearls of wisdom in mail list threads david cloutman on code lib: don’t forget to look at trends outside of “libraryland”. a lot of professional library discussion takes place in an echo chamber, and bad ideas often get repeated and gain credibility as a result. librarians usually overstate the uniqueness of their organizations and professions. when the question, “what are other libraries doing?” arises in addressing a technical problem, don’t be afraid to generalize the question to other types of organizations. respond to your next subpoena like a pro thanks to kathleen seidel, a fellow new hampshire resident and blogger at <neurodiversity.com>, i now have what appears to be a good example of a motion to quash a subpoena (even cooler, she filed it pro se). i’ve also learned that nh is among the states that allows lawyers to issue subpoena in civil cases without prior approval of a judge. take a look and prepare yourself for some law talking. steve jobs on apple vs. adobe and iphone vs. flash steve jobs’ thoughts on flash minces no words in its conclusion: besides the fact that flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow flash on iphones, ipods and ipads. we have discussed the downsides of using flash to play video and interactive content from websites, but adobe also wants developers to adopt flash to create apps that run on our mobile devices. blogging in academia a comment in the university of lincoln’s audio production course blog demonstrates the value of public blogging in academia: i am looking forward to beginning this course in september and have been finding these blogs very useful in providing a guide as to what sort of things to expect during my first year. keep up the good work! thanks to joss winn for the tip. ssd mysql performance the above graph and this mysql performance blog story are from last year, but i believe are still relevant and instructive now. sure, the fusionio is faster, but how the hell can you beat a single ssd in terms of price/performance? raid : . transactions per minute per dollar ssd: transactions per minute per dollar fusionio: . transactions per minute per dollar improving p — order posts by last comment date i’m a big fan of the p theme for wordpress. it makes it dead easy anybody familiar with wordpress to host a discussion site and improve collaboration across time and distance. that said, one feature i’d like to see is the ability to order the posts by the last comment date, rather than post date. when we started using p to power a workgroup discussion last year, i wrote a bit of code to sort the posts that way, here’s how: irony: nh liquor commissioner suspected of dui in it was the deputy chief of liquor enforcement. last summer it was the wolfboro police commissioner who was arrested importing pounds of marijuana from canada. this week it’s a liquor commissioner who was stopped on suspicion of dui. i’m a carnie huckster, you know it and i know it, but that’s ok the title is a quote from seth stevenson slate.com piece on pitchman vince offer, where he explains that vince’s “smooth-talking condescension” is the most appropriate sales tactic in today’s cynical world. “jaded consumers expect to get snowed and almost distrust the very pretense of trustworthiness.” the rap chop remix of vince’s slap chop actually ran on tv. three sweet globe images [][ ] hey, it’s [earth day][ ]! [ ]: http://www.flickr.com/photos/kumasawa/ / ““wind andamento” by karen ami (cool globes) by kumasawa, on flickr” [ ]: http://en.wikipedia.org/wiki/earth_day auctions and negotiations: starting price matters via mind hacks: auctions with a low starting price may result in higher final sale prices than those with a high starting price. but negotiations with a high starting price often result in higher final sale prices. cleaning up category relationships in a wordpress scriblio site a few lines of sql i used to clean up a scriblio site. it’s probably useless to anybody but me. i’m not suggesting anybody else use this code, as it will result in changed or deleted data. update the post author for catalog records (identified because they have a specific post meta entry): update wp_ _postmeta join wp_ _posts on wp_ _posts.id = wp_ _postmeta.post_id set post_author = where meta_key = 'scrib_meditor_content' get the categories attached to every catalog record (except the “catalog” category): loading: global warming sure i’m a fan of marilyn monroe, but stéphane massa-bidal’s activist illustration is even hotter. he’s online at rétrofuturs.com. la times on ipad vs kindle the kindle feels like an e-reading device, whereas an ipad feels like reading. from latimes.com via joseph monninger. a few lines of sql: cloning blogs in mu the following sql is what i used to clone the content from one blog in mu to another for testing. it’s probably useless to anybody but me. anybody who can’t figure out from the code that wp_ _posts is the source table and wp_ _posts is the destination probably shouldn’t try to use the code, as data will be lost. clone the content from one mu blog into another: truncate table wp_ _posts; insert into wp_ _posts select * from wp_ _posts; truncate table wp_ _postmeta; insert into wp_ _postmeta select * from wp_ _postmeta; truncate table wp_ _terms; insert into wp_ _terms select * from wp_ _terms; truncate table wp_ _term_taxonomy; insert into wp_ _term_taxonomy select * from wp_ _term_taxonomy; truncate table wp_ _term_relationships; insert into wp_ _term_relationships select * from wp_ _term_relationships; truncate table wp_ _bsuite _search; insert into wp_ _bsuite _search select * from wp_ _bsuite _search; truncate table wp_ _scrib_harvest; clone a few options: solving problems in secret matt blaze computer and information science at university of pennsylvania and blogs about security at exhaustive search. his recent post on mistakes in spying techniques, protocols, and hardware caught my interest: indeed, the recent history of electronic surveillance is a veritable catalog of cautionary tales of technological errors, risks and unintended consequences. sometime mishaps lead to well-publicized violations of the privacy of innocent people. there was, for example, the nsa’s disclosure earlier this year that it had been accidently “over-collecting” the communications of innocent americans. the reward for re-discovering archive collections documentarians spend most of their time digging up materials that few people know exist. they frequent basements and dark storage rooms, endure conversations with crazy collectors, and typically develop vitamin-d deficiency and light sensitivity in search of what they need. their reward for finding the material? a bill from the original creators (the ones who lost and forgot about the work in the first place) for the privilege of using it. iphone use heavy at am, bumps at lunch, peaks at pm via localytics: iphone users generate % more traffic on the weekend than the average weekday. saturday traffic ramps quickly from a morning low at : am to over % of peak usage by : am—and stays near the peak for the rest of the afternoon and evening. by comparison, weekday app usage is more concentrated in the evening with a slow ramp during the working day and a peak at : pm est, when east coast users are at home and west coast users are commuting home. is the filesystem finally dead? from rob foster/nimble design: by releasing the iphone os, apple is putting a bullet in the head of a long standing convention that most folks could do without. he’s talking about the filesystem. user-accessible filesystems, anyway. this isn’t news, i don’t think the newton even had a hidden filesystem, but it hasn’t gotten old yet. my question: when will i finally get a system that cleverly mixes cloud and local storage to give me seamless access to all my photos, videos, music, and email…ever? why php’s regex is slow, and what you can do about it (if you happen to be a committer on the php project) regular expression matching can be simple and fast, by russ cox: perl [and php and others] could not now remove backreference support, of course, but they could employ much faster algorithms when presented with regular expressions that don’t have backreferences. how much faster? about a million times (no, i do not exaggerate). i use a lot of regular expressions, and relatively few of them use backreferences. it’d be worth optimizing. edison phonograph eula think end user license agreements (eulas) are recent inventions? thomas edison used them on his phonograph cylinder at the start of the s. the eula didn’t protect edison from innovations elsewhere; discs quickly beat out cylinders once the patents expired. photo from fouro. college students use, love, are aware of the limitations of wikipedia how often do college students use wikipedia? how today’s college students use wikipedia for course-related research: overall, college students use wikipedia. but, they do so knowing its limitation. they use wikipedia just as most of us do — because it is a quick way to get started and it has some, but not deep, credibility. % of respondents use wikipedia frequently or always, typically at near the beginning at the start of research ( %). drm evils: now comic fodder brad colbow does some good looking design and an occasional comic. he isn’t the first to address drm woes in comic form, but his comic is one more public cry for rationality. and continuing that cry is this from an unnamed source, originally published at geekologie.com. scott smitelli on hacking youtube’s content id drm system scott smitelli uploaded a total of test videos and received content id emails in the name of science: testing youtube’s content id system. he reversed the audio, shifted the pitch, altered the time (without changing pitch), resampled (pitch and time), added noise, messed with the volume, chunked it up into pieces, and fiddled with the stereo fields. in the end, he found both amusing and frustrating results. he did his tests about a year ago. connect-a-desk looks ridiculous (though i may secretly want one) i was about to tell sandee how foolish these people look with their laptops stuck to their torsos, but she hit me with “that looks like something you’d use.” ouch. worse, i’m not sure she’s wrong. double ouch. maybe the company could send me one. then i could have these conflicted feelings for real. social media usage stats retrevo claims to help electronics shoppers decide what to buy, when to buy, and where to buy it,” so their recent survey on social media addition is probably more significant as link bait than as serious research. despite my concerns about confirmation bias, i’m as amused as anybody by the numbers. % of adult respondents say they check or update twitter or facebook before getting out of bed in the morning, a number that rises to % for iphone users of all ages. addressing hateful and libelous internet speech in the post juicy campus era juicy campus is gone, but other sites have taken its place as a hub for anonymous slander around college campuses. intentional or not, the conversation at these sites tends toward abusive, with successive commenters attempting to one-up each other with each insult. students targeted by the abuse and defamation have little easy recourse. some sites allow users to mark comments as offensive, but require membership to do so, and the anonymous nature of the posts limits the real world social group’s opportunity to moderate itself and its members. html media – project hosting on google code i was wondering when somebody was going to do what html media does: html video tags make embedding videos into documents as easy as embedding an image. all it takes is a single tag. unfortunately, not all browsers natively support html video tags. html media is a javascript library that enables tags for clunky browsers. url path bug in wordpress.com video server you’ve got to both respect automattic for releasing their internal code as open source while also giving them a break for not assuring that it works for anybody else. one of their projects, the wordpress.com video server is a sophisticated wordpress plugin that handles video transcoding and offers a bit of a youtube in a box solution for wordpress. the bug i found is that the code assumes wpmu is running in subdomain mode, rather than subdirectory mode. rock out with a cardboard record player http://www.vimeo.com/ the physical, analog nature of vinyl has long appealed to the diy crowd. this cardboard record player capitalizes on that to create a direct mail marketing campaign that people appear to actually enjoy receiving. from the description at agency news: grey vancouver created a portable record player from corrugated cardboard that folds into an envelope. the record can be spun with a pencil and the vibrations go through the needle and produce a recording of a children’s story called “a town that found its sound. the cost of ie’s non-compliance google this month dropped internet explorer support in google apps and youtube, and others are lining up at idroppedie .com. still, even newer versions of ie suffer from poor standards support, and there are doubts about the just announced ie . to put this in perspective, billforbill.com is adding up the costs of all the workarounds that web developers have to go through to make it buggy browser work. after just a few days and only submissions the total is over $ million. wp memcache object cache breaks http head requests i just posted about the following confounding problem to the wp-hackers list: when running wordpress mu (tested in . x and . x) with the memcached object cache active, it refuses to respond to http head requests. the result of this is that head requests to check the mimetype of a linked file (as for setting the enclosure) or size (as the video framework plugin does) fail. curl -i http://url.path returns either an empty result, or (if fronted with varnish) a error. wordpress bug in setup_postdata() wordpress is built around the loop, and all the cool kids are using multiple loops on the same page to show the main post and feature other posts. the problem is: wordpress doesn’t properly reset the $pages global for each post. if the post in main loop (or default query) is paged, then all the other posts will show the same paged content as in the main post. i started a ticket and submitted a patch, but in the meantime you might have to unset( $globals['pages'] ) in your custom loops just before calling the_post(). web vs. native apps one lesson here is that a simple but well-done web app […] can be vastly superior to a full-fledged but terrible iphone application. usability nightmare: the my.sxsw iphone app. consumer society and citizen networks logo consumer society and citizen networks “aims at promoting access of citizens to information on product safety, consumer rights protection, and to results of independent testing, as well as promoting wide public discussion of challenges facing the consumer society in ukraine.” their logo, however, is pure genius: some sketches from logolog showing how it came together: christian madrasas from the march newsletter of the north texas skeptics: in the madrasa, the religious school, i watched and listened as the instructor related his view of the world to the students and the others present. politics, personal relationships, nations, and the physical world were interpreted in the light of the speaker’s religious teachings. hinduism and buddhism were lumped together with that quaintly american religion called new age. pagan symbols invoke demons to do dirty work for cultists, and evolution is the root of much of this evil, the students were told. auto-tune put to better use: news auto-tune has been prettying up vocal tracks for more than a decade now, but applying it to news is simply brilliant. the gregory brothers‘ autotunethenews.com is worth a look. nh’s proud political system a nh house judiciary committee hearing recently made new hampshire famous in boingboing and the huffington post. watch the hearing where the speaker describes sex acts, and take special note of the amazing poker face of the others during the talk. i’ll stop the world and melt with you flickr video watching valentine’s rose fade the georgia o’keefe view, above, or the still life view, below: this isn’t so much about valentine’s day as it is about finally getting setup to do time lapse video like this. more to come at maisonbisson.com/timelapse. valentine’s rose (o’keefe view) flickr video valentine’s rose flickr video what the critics are missing about apple’s ipad it’s doubtful that anybody reading this blog missed the news that apple finally took the wraps off their much rumored tablet: the ipad. trouble is, a bunch of folks seem to be upset about the features and specs, or something that made the buzz machine go meh. it’s just a bigger iphone, complain the privileged tech pundits. they apparently missed the recent pew internet project report on internet usage by demographic. blogging by email wordpress has some simple built-in support for posting by email, but that didn’t stop a couple people from developing plugins that might do better. postie and postmaster both claim to support attached photos (though neither appears to use wp’s built-in media management). but if your goal is to post photos, you might consider posting through flickr. organizational vanity, google alerts, and social engineering as more and more organizations become aware of the need to track their online reputation, more people in those organizations are following google alerts for their organization’s name. that creates a perfect opportunity for scammers to play on that organizational vanity to infect computers used by officers of the organization with malware that can reveal the inner workings of that organization. i’m not exactly sure what clicking the button above does. apple’s netbook a post on thomas fitzgerald.net serves to remind us that apple released their first netbook in : the apple emate : …next time you see people ranting about an apple netbook, remember that apple had something similar long before anyone even uttered the phrase “netbook.” the device ran netwon os with a - hour battery life (yes, - hours). i’ve written more than a few posts eulogizing the emate’s tablet-shaped sibling: newton message pad . coda feature wishlist i’d long been a user of barebones’ bbedit, a product that’s served me well for a number of years. but upgrading from version . to is a paid deal, and after spending days with the demo of bbedit , i decided i wanted to look around a little bit. my friend matt switched from bbedit to panic’s coda some time ago, and i liked the demo of that well enough that i bought a license. put an ssd in your expresscard slot? i spied the wintec filemate gb ultra expresscard and began to wonder how it works as a boot drive for mac os x in a late macbook pro (the model just before apple replaced the expresscard slot with an sd slot). but i didn’t have to wonder too much, as a post to this macobserver forum thread offers enough details to make a geek salivate: the computer now boots primarily from the ssd card and will start up the computer in less than / the time of the internal hd […] i have all the applications and system files on the ssd card, the user files/record on the internal hd. do e-books have a future? david weinberger kicked off the latest installment in the ongoing debate about the future of electronic books versus paper books in his will books survive? a scorecard… post. he’s got some good points, but like many of the smart folks i admire, he approaches this question assuming that books, in any form, are important. ursula k. le guin’s excellent essay on “the alleged decline of reading” is especially informative on this point: books don’t matter to most americans, and they haven’t for some time. even if they don’t click ethan zuckerman’s recent post, what if they stop clicking? points out the difficulty of building a business on ad revenue. he points to statistics that show fewer readers are clicking banner and arguments from the web advertising industry about how un-clicked ads still build brand awareness. it’s not really central to zuckerman’s point, but i didn’t sense that he was aware that google has picked up the same argument. i commented on the post that google has started reporting the numbers of people who are presented (but don’t click) ads, then later visit the advertisers that are paying for, um, clicks. my wordcamp nyc talks authentication hacks my first talk was on user authentication with mu in existing ecosystems, all about integrating wp with ldap/ad/cas and other directory authentication schemes, as well as the hacks i did to make that integration bi-directional and deliver new user features. my slides are online (.mov / .pdf), and you can read earlier blog post summing up the project. plugins mentioned wpcas (long description) alternate contact info wordpress ticket framework wpsms (long description) scriblio i was most excited, however, to talk about scriblio, a plugin that turns wordpress into a library catalog with faceted searching and browsing. spell checking matt demanded accent-aware spell checking for the wordpress spell checking plugin his company acquired earlier this year. and just a little more than a month later, after the deadline delivered. now beyoncé, café, coöperate, and even my resumé look prettier. separately, wordnik offers a new take on online dictionaries, and they just launched an api. backblaze storage pod backblaze is a cloud backup service that needs cheap storage. lots of it. they say a petabyte worth of raw drives runs under $ , , but buying that much storage in products from major vendors easily costs over $ , , . so they built their own. the result is a u rack-mounted linux-based server that contains terabytes at a material cost of $ , , the bulk of which goes to purchase the drives themselves. drobo: sweet storage, one big flaw i’ve been a fan of drobo since i got mine over a year ago. the little(-ish, and sweet looking, for stack of disks) device packs as many as four drives and automatically manages them to ensure the reliability of your data and easy expandability of the storage. however, thomas tomchak just pointed out one major flaw: if you overflow your drobo with data, the entire device may give up and you’ll lose everything. the bugs that haunt me a few years ago i found an article pointing out how spammers had figured out how to abuse some code i wrote back in or so. i’d put it on the list to fix and even started a blog post so that i could take my lumps publicly. now i’ve rediscovered that draft post…and that i never fixed the bad code it had fingered. worse, i’m no longer in a position to change the code. ssh tunneling examples most of my work is available publicly, but some development is hosted on a private svn that’s hidden behind a firewall. unfortunately, my primary development server is on the wrong side of that particular firewall, so i use the following command to bridge the gap: ssh -r :svn_host: username@dev_server.com that creates a reverse tunnel through my laptop to the svn server and allows me to checkout code using the following: yelp: a poster child for semantic markup search engine land.com: yelp…is…essentially a poster-child for semantic markup. this spring, google’s introduction of rich snippets has allowed yelp’s listings in the serps to stand out more, attracting consumers to click more due to the “bling” decorating the listings in the form of the star ratings. there are now some very good reasons why sites with ratings and reviews should be adopting microformats, and it’s not that hard to do! iphone’s anti-customer config file in march of this year apple applied for a patent on technology that enables or disables features of a phone via a config file. the tech is already in use: it’s the carrier profiles we’ve been downloading recently. on the one hand this is just an extension of the parental controls that apple has included in mac os x since the early days, but it also implies some rather anti-consumer thinking at the company. evil evil klaomta.com a quick google search of klaomta.com reveals more than a few people wondering why it’s iframed on their websites. the answer is that the site has been compromised. unfortunately for the fellow who asked me the question at wordcamp, solving the problem can be a bit of a chore. keeping your wordpress installation up to date is important, as there are some known security flaws in older versions, but most of the attacks that crackers use are targeted elsewhere. the wordpress way plugin development will norris‘ talk at wordcamp pdx introduces wordpress coding standards, common functions, and constants to would be plugin developers (and smacks those who’ve already done it wrong). also notable: functions, classes, variables, and constants in the wordpress trunk. custom installations just as wordpress has a number of hooks and filters that plugins can use to modify and extend behavior, it also has a cool way to customize the installation process. hacking wordpress login and password reset processes for my university environment any university worth the title is likely to have a very mixed identity environment. at plymouth state university we’ve been pursuing a strategy of unifying identity and offering single sign-on to web services, but an inventory last year still revealed a great number of systems not integrated with either our single sign-on (authn) or authorization systems (authz, see difference). and in addition to the many application/system specific stores of identity information (even for those systems integrated into our single sign-on environment), we also use both ldap and ad (which we try to synchronize at the application level). worst of all, the entire environment is provisioned solely from our mis database, which is good if you want to make sure that students and faculty get user accounts, but bad if you want to provision an account for somebody who doesn’t fit into one of those roles. the one way relationship between our user accounts and the mis database also makes it difficult to engage with new users online. if you can’t get an account until you become a student, how do you allow potential students to apply online if all your systems are integrated with single sign-on? and if you can’t authenticate the online identity of your users, how do you set initial passwords into your system? or allow them to reset a forgotten password online? internet companies never struggled with this issue, as their customers could only approach them online, but most universities built systems around paper applications and have fond (and relatively recent) memories of offering their students their first internet experience. it’s still not unusual for universities to offer their students their campus computing account with a default password based on supposedly secret data shared between the user and the school. but your ssn, birth date, and mother’s name are no longer secret. a proposed change in ferpa policy (see the the top of page in the nprm) would have barred the use of “a common form user name (e.g., last name and first name initial) with date of birth or ssn, or a portion of the ssn, as an initial password to be changed upon first use of the system” in systems that store academic data. the final rule excluded that provision, much to the relief of those schools with more lobbying clout than brains. pigeon beats adsl: slow networks or massive storage capacity? it was a tech story so apparently humorous that the popular media felt compelled to cover it: carrier pigeons delivered gbs of data faster than an adsl line. the bbc story’s subtitle read “broadband promised to unite the world with super-fast data delivery – but in south africa it seems the web is still no faster than a humble pigeon,” and that’s how most stories played it. unfortunately, they all got it wrong. moving data by homing pigeon requires some planning, and pigeons. source. the race was run by the unlimited group, but the clearest telling of it comes from wikipedia: inspired by rfc {.external.mw-magiclink-rfc}, on september the marketing team of the unlimited, a regional company in south africa, decided to host a tongue-in-cheek “pigeon race” between their pet pigeon “winston” and local telecom company telkom sa. the race is to send gigabytes of data from howick to hillcrest, approximately  km apart. the pigeon carrying a microsd{.mw-redirect} card (an avian variant of a sneakernet), versus a telkom adsl{.mw-redirect} line. winston beat the data transfer over telkom’s adsl line, with a total time of two hours, six minutes and seconds from uploading data on the microsd card to completion of download from card. at the time of winston’s victory, the gb adsl transfer was just under % complete. jsnes: javascript nintendo emulator ben fisherman’s jsnes runs entirely in the browser using nothing more intrusive than javascript. it apparently manages real-time performance within chrome, but it works (if not playably) on an iphone. i wish the screen was resizable and that it supported iphone compatible controls, but both of those assume that browser performance will improve enough to make it playable. interestingly, though not surprisingly, the safari js engine is limited to consuming a single cpu (which it quickly does while playing jsnes). itunes : closer to an api? will norris has discovered that itunes ’s interactions with the store are more web-happy. i’ve been asking where the itunes store api was for some time, now i think i’ve got what i need to build one. wordpress hacks: nested paths for wpmu blogs situation: you’ve got wordpress multi-user setup to host one or more domains in sub-directory mode (as in site.org/blogname), but you want a deeper directory structure than wpmu allows…something like the following examples, perhaps: site.org/blogname site.org/departments/blogname site.org/departments/blogname site.org/services/blogname the association between blog ids and sub-directory paths is determined in wpmu-settings.php, but the code there knows nothing about nested paths. so a person planning to use wordpress mu as a cms must either flatten his/her information architecture, or do some hacking. am i supposed to feel bad for at&t now? with at&t facing lawsuits for not delivering mms features at the iphone gs launch, they kind of had to do something. i’m not sure if i’d be satisfied by this video if i were among the plaintiffs, but i think it does a good enough job. the stat about % annual increases in mobile data use is pretty powerful. i’d heard it a dozen times before*, but because i wasn’t in austin for sxsw iphone meltdown, i don’t have quite the same appreciation as some do. at&t added capacity then, and they seem to have been scrambling elsewhere too. iphone users are said to be six times as likely as anybody else to watch video on their phones, and if wifi aggregator jiwire’s report says anything about cell data, the iphone has certainly changed the game. jiwire’s mobile audience insights report shows that over % of the devices on their network are either iphones (about % of the total) or ipod touches! and all the way back in in britain, iphone users were times as likely as other phone users to send or receive more than mb a month. it will be interesting to see what happens to other carriers as they get devices that encourage use as the iphone has. *actually, i hadn’t heard the % stat specifically, just inspecific reports of increased usage. now i want to watch (or re-watch) all these okay, i don’t want to watch all the movies depicted in this year overview of film special effects, but i did just add a few to my netflix queue. wordpress hacks: serving multiple domains situation: using wordpress mu (possibly including buddypress) on multiple domains or sub-domains of a large organization with lots of users. wordpress mu is a solid cms to support a large organization. each individual blog has its own place in the organization’s url scheme (www.site.org/blogname), and each blog can have its own administrators and other users. groups of blogs in wpmu make up a “site” and one or more sites can be hosted with a single implementation. (i’m capitalizing site for the same reason wordpress docs capitalize page) each site has a defined set of administrators and options controlling various features. you might, for instance, lock down the plugins on your blogs.site.org, while keeping it open on your www.site.org. or maybe you’d like to let your helpdesk staff create new blogs at blogs.site.org, but not at www.site.org. that’s what wpmu’s notion of site can help you control. online advertising metrics i don’t know if it’s just the mother’s day effect, but the top online retailers for may were dominated by flower shops. the top shop is converting almost % of their visitors to buyers, though the average is just over %. tim, meanwhile, claims he’s lowered his bounce rate to just %. not my chair, not my problem liam lynch explains the origin of the video, but what was dan deacon thinking as he [recorded the audio][ ]? of all the [free mp downloads][ ] he offers, [two friends][ ] from the acorn master album may be the most, um, listenable. thanks to [daily songsmith corey b (corey blanchette)][ ] for the tip. [ ]: www-dandeacon-com- drinking out of cups.mp [ ]: http://www.dandeacon.com/mp / [ ]: www-dandeacon-com- _two_friends.mp [ ]: http://coreyb .com/ who gets to control the future of libraries? the following was my email response to a thread on the web lib mail list: okay, it must be said: you’re all wrong . i can understand that news of a librarian being fired/furloughed will raise our defenses, but that’s no excuse for giving up the considered and critical thinking that this occasion demands. consider this: the principle’s blog reveals a reasonable person actively trying to improve academic performance despite crushing economic conditions. martin belam’s advice to hackers at the guardian’s july hack day an amusing hacks-conference lightning talk-turned-blog post on web development: “graceful hacks” – ux, ia and interaction design tips for hack days. martin belam‘s talk at the guardian’s july hack day must have been both funny and useful: funny: “however, i am given to understand that this is now deprecated and has gone out of fashion.” useful: “the yahoo! design pattern library is your friend.” hnews might not be so bad the ap’s diagram of their protect, point, pay “news drm” scheme looked like a joke, then i saw the parody. despite all the smoke and hype, ed felton explains that it’s underwhelming, at most. still, hnews might be an interesting format for some blogs to adopt. most of what the ap is rattling their saber about is in the rights (containing ccrel declarations). felton thinks the dependence on ccrel may extend derivative usage rights, rather than limit them. get your beer pong skills on do facebook ads work? all facebook is happy to share the ten laws of facebook advertising, but will those rules lead to better results than the . % ctr bob gilbreath got a year ago? newspaper business: news was a loss leader howard weaver wants newspapers to play offense against google and others, but chris tolles, ceo of news aggregator topix.com says he’s been trying weaver’s plan for a while, and there’s no bucket of gold to be found in it. the problem, it would appear, is that newspapers don’t sell news. they sell advertising space and pair it with news as a loss leader to keep the eyeballs. and while that worked in print, it doesn’t work on the web. google recommends microformats and rdfa google’s own webmasters help site recommends microformats and rdfa structured data to improve indexing and usefulness of the data. review metadata appears to have full support, while people, product, and business data are in beta. do air taxis actually work? i just thought to follow up on this story about dayjet, a high-flying air taxi service that planned to operate tiny, three-passenger eclipse jets. the story doesn’t deviate from economic trends: dayjet ceased operations in september , and the aircraft manufacturer entered chapter in february . the air taxi association says their operators save big money over scheduled airline service, but finding the price of that service can be hard. mozilla labs’ ubiquity http://www.vimeo.com/ mozilla labs’ ubiquity has a lot of promise: ubiquity is an experiment into connecting the web with language in an attempt to find new user interfaces that make it possible for everyone to do common web tasks more quickly and easily. it’s a firefox extension, so it works on macs, windows, and linux. with only a couple keystrokes, it lets you use language to instruct your browser. you can translate to and from most languages, add maps to your email, edit any page, twitter, check your calendar, search, email your friends, and much more. tomas mankovsky’s sorry i’m late http://www.vimeo.com/ i’m simply in love with this video. watch through the credits to see a bit of how it’s made. go blog, small orgs (or large) philip greenspun suggests small organizations use a blog for their website (ironically, not blogged): the small business web circa in , a small organization that wanted a web site would hire a “web designer” skilled in the exotic art of “html programming” to produce a static web site, i.e., a cluster of linked pages with a distinctive design and color scheme, giving information about the company or non-profit org. get the zimbra isync connector it can be difficult to get the zimbra isync connector, as the company doesn’t offer a simple download from their site. fortunately, the license allows us to freely redistribute their software. download the zimbra isync connector here. what is david mcnicol’s url cache plugin? the description to david mcnicol’s url cache plugin raises more questions than it answers: given a url, the url_cache() function will attempt to download the file it represents and return a url pointing to this locally cached version. where did he plan to use it? does he envision the cache as an archive, or for performance? why hasn’t it been updated since ? it caught my interest because i’ve long been interested in a solution to link rot in my blog. book search results vs. users bret victor offers the above design suggestions (from ) to amazon in the book search results display (he’s comparing to this). i didn’t discover them at the time, but many of them are still relevant now. bret notes that amazon’s display doesn’t do a good job of answering the questions a person has when searching for books: “what is the book about?” and “is it any good?” unfortunately, these questions are completely unaddressed by the information provided. too bad the hanzo archives wordpress plugin is caput the hanzo archives wordpress plugin is something i’d be very excited to use. ironically, it’s disappeared from the web (though the blog post hasn’t): we’ve released a wordpress plugin which automatically archives anything you link to in your blog posts; it also adds a ‘perma-permalink’ for the archived version adjacent to each original link. an amazon web services case study put me on to hanzo a while ago, and in may i actually spoke with mark middleton (the markm who posted the entry above). customizable post listings lorelle is a big fan of scott reilly’s customizable post listings: display recent posts, recently commented posts, recently modified posts, random posts, and other post, page, or draft listings using the post information of your choosing in an easily customizable manner. you can narrow post searches by specifying categories and/or authors, among other things. using vlc as a live video stream transcoder for axis camera and flv [i]n theory, i should be able to issue one command to vlc and have it receive the mpeg -es stream from the camera, transcode it to h. , and stream it to the wowza, which would handle the rest. via john beales. leaked video of bumblebee’s breakdance moves http://www.vimeo.com/ well, not ‘leaked,’ but just in time for the new transformers movie, patrick boivin has posted this video of bumblebee breakdancing. video or audio comments in wordpress with riffly in line with yesterday’s discovery of the viddler wp plugin, riffly webcam video comments also supports video or audio comments within wordpress: riffly is a free service that easily plugs into your site allowing visitors to create video and audio comments. the service is advertising supported. we cover all the costs for bandwidth, servers, and maintenance. optionally, we also offer premium riffly accounts that provide you with additional benefits, such as advertising removal, control panel access, analytics, and much more. video comments with viddler wordpress plugin the viddler wordpress plugin promises to “enrich your site’s commenting experience by enabling video comments….” users can record direcly from a web cam or choose a video they’ve previously uploaded to viddler.com. viddler evangelist colin devroe has it on his site, where i can see it requires would-be commenters have a viddler account. that last bit is too bad. i like viddler, but i can’t force my readers to like it and get accounts as a prerequisite to commenting. wolfram|alpha’s missing feature: libraries john timmer brings up my two biggest complaints about wolfram|alpha. the first is that it’s even harder to identify the source of information than it is in wikipedia, the other is what happens when searches fail: a bad web search typically brings up results that help you refine your search terms; a bad alpha search returns nothing, and it’s not clear that there’s an easy way to fix that. systems wrangling session at wordcamp developer day what is the current status of web servers…is apache .x “fast enough?” automattic uses lightspeed (for php), nginx (for static content), and apache (for media uploads). for wordpress-generated content, all server options are approximately the same speed. what about apc? automattic uses beta versions of apc, and provides a - x performance increase. it’s tied closely to the php version, so automattic recently switched from php to php . databases? andy peatling on buddypress why buddypress? “build passionate users around a specific niche.” do you have to become a social network? “no, look at gigaom pro,” a recently launched subscription research site based on buddypress. but, yo do get “byotos: bring your own terms of service.” that is, you get to control content and interactions. and your service won’t be subject to the whims of a larger network like facebook (or vagaries of their service — think ma. wordpress . script handling jquery . . is in wordpress . , but the most exciting changes are in the automatic concatenation and compression of scripts via the script loader. andrew ozz says “this feature can easily be extended to include scripts added by plugins and to use server side caching, however that would require some changes to the server settings (.htaccess on apache).” i have yet to figure out how to extend that feature to scripts in my plugins, but i’m working on it. google’s matt cutts on building better sites with wordpress % of wordpress blogs he sees are spam. but for those who aren’t spammers and want to do better in google…. “wordpress automatically solves a ton of seo issues…wordpress takes care of - % of seo.” still, he recommends a few extra plugins: akismet — reduce spam comments cookies for comments — reduce spam comments feedburner feedsmith wp super cache — improve performance “we crawl roughly in order of pagerank…higher ranked sites get crawled faster and deeper. understanding, leveraging google image search above is [peter linsley][ ] speaking about google image search at [smx west][ ] in february, . meanwhile, [stefan juhl suggests some javascript][ ] to break your site out of the image search result pages: many google image search users are quickly clicking on to the direct image url and thereby not seeing the page with the image. also, it seems that many of the users don’t hesitate to click back to the image serps when they don’t see the image “above the fold” – probably because of google image search framing the page with the picture and thus making it almost too easy to do so. on the one hand he wants to catapult chicken droppings, on the other hand he did catapult his wife; repeatedly the homeland security press is just getting wind of joe weston-webb’s attempts to deter vandals with nonlethal weapons, but the story became all the rage in britain when it broke last year. the stories hit all the timely bits: joe got burgled, so he announced plans to install a catapult. a what? a catapult. why? to launch chicken droppings at miscreants. unfortunately, the local constabulary warned him off, and the catapult wasn’t ready when burglars returned. zen and the art of motorcycle maintenance is available all over the web robert m. pirsig‘s zen and the art of motorcycle maintenance at amazon, a used book store, or your parent’s book shelf. still, it’s available on the web as pdf, at least two text files — one, two — and even as a podcast (subscribe via itunes). lots of people have re-traced the journey described in the book, at least one person has posted a travelogue about it to the web. henry gurr has posted pirsig’s own photos, and christoph bartneck pointed out many locations in google maps: is mysql . ready? mysql . hasn’t gotten a lot of love, but it does introduce support for pluggable storage engines. and that’s required to use sphinxse. sphinx is a fast full text search engine. it doesn’t need to run as a mysql storage engine to work, but doing that allows joining against other mysql tables. so while i’m watching the future of mysql alternatives, i’m also watching . bug fixes and playing with the coolstack-packaged . extreme sheep herding iphone g camera hacks and deets those unwilling to open of their iphone to adjust the camera focus might take a look at griffin’s clarifi, a case with a built-in close-up lens that can slide in our out of place as needed. flickr user meine ideenecke, meanwhile, has figured out the iphone camera specifications. he says it’s about mm ( mm equivalent), though this source says it’s mm. will tuneup fix my collection of podcast music downloads? now that i’ve discovered it, i’m tempted to try tuneup on my collection of mp s downloaded as podcasts (and without good id tags) from places like the kcrw’s today’s top tune. the story is that the itunes plugin automatically identifies your tracks, can fix the tags, and add album art. google street view camera sightings what happens when one of google’s street view camera vehicles encounters a low bridge or a muddy australian road? comparing panorama stitching tools the above are the result of panolab, hugin, calico, and a single shot with a very wide angle lens (canon’s - mm, effectively mm on my rebel xti). the first three originated on my iphone and the panolab shot was stitched and originally uploaded to flickr on my iphone (though i have since done some color enhancement and reuploaded the photo from my macbook pro). hugin is gpl, the other solutions are less free (in both senses). the difference between mysql’s utf _unicode_ci and. utf _general_ci collations mysql answer: utf _unicode_ci vs. utf _general_ci. collation controls sorting behavior. unicode rationalizes the character set, but doesn’t, on it’s own, rationalize sorting behavior for all the various languages it supports. utf _general_ci (ci = case insensitive) is apparently a bit faster, but sloppier, and only appropriate for english language data sets. the many uses of a pockettorch doesn’t everybody need a pockettorch? it’s a “safe, practical tool,” they say. more amusingly, the list of suggested uses includes: melting your cache of gold, scaring grandma, lighting illegal fireworks, dental/lab work, and making friends jealous. fun threads for librarians who doesn’t want to be an anarchist librarian? or a bibliophian? photoshop retouching magic vs. disasters compare the retouching portfolio here against the regular posts at photoshop disasters. lessons learned: why it’s better not to use parentheses when they’re optional there it is in the php manual for return(): note: since return() is a language construct and not a function, the parentheses surrounding its arguments are not required. it is common to leave them out, and you actually should do so as php has less work to do in this case. i knew the parentheses were optional, but i’ve been merrily using them all along. and i probably would have continued doing so until i saw the second note attached to the docs: mysql correlated subqueries correlated subqueries are said to be “inefficient and likely to be slow,” but that doesn’t mean i’m not glad to have learned of them. what is an archive in the digital age? jessamyn pointed out the dust up over the dissapearing of paperofrecord.com, a historical newspaper archive. most annoying song ever? is this the most annoying song ever? independent + catchy and pop gone wrong. how much do you want that job? one of the many odd questions this prank job application asks is: what are you willing to wear at work? (check all that apply) paper hat tie hairnet spandex singing omelet costume sweet vw bus scooter sidecar i spied this drool-worthy scooter and sidecar combo on scooter sidecars. wordpress action ticketing api this plugin is the next step after my proposal for a common invite api. here’s how i described it when requesting hosting at the plugin directory: a common framework for registering tickets that will be acted upon later. use it to manage challenge/response interactions to confirm email addresses, phone numbers, im screen names, twitter accounts, etc. build an invite system around it, or use it as the foundation of a short url system. you think you’re paying too much for mobile data? a caller to clark howard’s cnn show complains of being billed $ , by his cell phone provider for data usage. and oklahoman billie parks has filed suit over a $ , bill. saving objects in wordpress’ user meta there’s a hole in the wall at about head level next to my desk. i’ve spent most of the day trying to track down a bug with some code i’ve been working on to add fields to a user’s profile in wordpress. the problem is that upon trying to save the profile i’d get an error like the following: catchable fatal error: object of class stdclass could not be converted to string in /wp-includes/wp-db. expandrive ftp/sftp/amazon s client expandrive makes ftp, sftp, and amazon s connectivity dead easy. expandrive acts just like a usb drive plugged into your mac. open, edit, and save files to remote computers from within your favorite programs—even when they are on a server half a world away. expandrive enhances every single application on your computer by transparently connecting it to remote data. php magic constants: __line__, __file__, __dir__, __function__, __class__, __method__, and __namespace__ i’ve been using __file__ for years, but i never thought to look for its siblings. echo ' line:'. __line__ .' file:'. __file__ .' directory:'. __dir__ .' function:'. __function__ .' class:'. __class__ .' method:'. __method__ .' namespace:'. __namespace__; i feel as though i should have noticed these earlier; they’re clearly referenced in the docs for debug_backtrace(), after all. down the drain: flowers in the in-sink-erator flickr video i can’t explain my fascination with putting flowers into the in-sink-erator, but the sink does smell like flowers afterwards. music is evil by beads. trash fiction book covers a while ago i discovered a great collection of scanned book covers from s-ish pulp fiction in flickr. i had gone looking for things to post on our clipboard wall, but these are too fun to walk away from — especially now that sandee’s put cats up. marc acito on strunk and white’s elements of style when it comes to “shall” and “will,” strunk and white gives the following example: “a swimmer in distress cries, ‘i shall drown; no one will save me!’ ” but a suicide says, “i will drown; no one shall save me!” and i say, “you two (pedantic) know-it-alls deserve to drown.” i mean, what about “help!” via who needs a manual to write real good?. yahoo! bids adieu to yahoo! has divested itself of blo.gs and is shuttering geocities. would this have happened in a good economy? no. did it need to happen anyway? yes. yes. yes. and for the love of god, yes. tips to publishers from google news it turns out that there are a lot of differences between google’s regular web crawler and the google news crawler. and though very few of us will find our content included in google news, it still seems like a good idea to make our content conform to their technical requirements. here are a few of them: in order for our crawler to correctly gather your content, each article needs to link to a page dedicated solely to that article. correction: i do still need the wufoo forms wordpress embed shortcode a few weeks ago i said i no longer needed the wufoo embedding code that i’d put into bsuite. i was wrong. so i’ve taken another look, fixed the code from my old post, and coded it up into a stand-alone plugin. i’ve added installation and usage instructions to the bottom of the original post. what’s the best panorama stitching app for iphone? i spent some time looking for panorama-related apps for the iphone and came up with the following: panorama by airshed panoramas by helix interactive tripstitch by byteslice software pano by debacle software panoramascope by phil endicott panolab and panolab pro by originate lab i’ve actually played with panolab a bit (landscape, portrait) after seeing p ps harlow using it. fixing batcache to send the correct content-type header i’m a fan of batcache, the memcached-based wordpress full-page cache solution, but i’ve discovered that it ignores the content-type header set when the page is initially generated and re-sends all content with content-type: text/html. i posted a note about this at the wordpress support forums, but then i realized what the problem was: apache_response_headers() doesn’t return the content type, but headers_list() does. the solution is to replace apache_response_headers() with headers_list() in the code, though headers_list() is php + only, so it might be a while before we see a change like this committed. facebook’s favorite metadata [facebook’s guide to sharing][ ] details some meta tags to make that sharing work better: in order to make sure that the preview is always correctly populated, you should add the tags shown below to your html. an example news story could have the following: > > as shown, title contains the preview title, description contains the preview summary and image_src contains the preview image. please make sure that none of the content fields contain any html markup because it will be stripped out. google labs: similar images and news timeline new releases from google labs: similar images and news timeline. i count it as a failure for google that the news timeline doesn’t show future events. three or more ways to record or intercept voip calls voip now offers a few tips, hackszine discusses voipong, and mac voip mentions cain & abel and describes arp poisoning to make a man-in-the-middle intercept. jeeves is back! does your organization need its own avatar/personality? if you remember ask.com, you probably remember jeeves. now he’s back on the uk site. it turns out that people liked the old chap, and in this age of social media, it’s probably prudent to have a corporate avatar (it looks a lot better on facebook, anyway). there’s more about the resurrection at search engine land. flight level , pvd kent wien‘s photo of providence, rhode island is better than average for the camera out the window genre. william shatner’s rocketman still makes me laugh elton john and bernie taupin wrote it, but william shatner did it best. watch the video now and download the mp for future enjoyment. thanks to vasken for pointing out the video. do we need a wordpress common invite or challenge-response api? the buddypress forums have a number of threads about handling invitations (two worth looking at: one, two), but no real solution has emerged. at the same time, there’s also a need for some means of confirming other actions such as password resets, email changes (both of those are already handled by wpmu, i know), cell phone numbers to receive sms messages, and other actions that need to be confirmed later. fixing user meta to accept repeating fields — just in time for the wordpress has-patch marathon there’s a wordpress has-patch marathon going on now and i’m hoping one of my recent patches gets some attention. i’m hoping to fix the user meta functions to allow them to accept multiple values per key, per user. it’s listed there among the other has-patch tickets in trac, and there’s been some discussion in wp-hackers. why not take a look? wifi is critical to academia, the wifi alliance says a study sponsored by the wifi alliance reveals the following: wifi and college choice % of college students say wi-fi access is as essential to education as classrooms and computers % say they wouldn’t go to a college that doesn’t have free wi-fi % say that without wi-fi access, college would be a lot harder % agree that widely available wi-fi on campus is an indication that a school cares about its students wifi and where they use it % have connected from coffee shops and restaurants % from parks % from in their cars wifi in the classroom % have checked facebook™ or myspace™ and sent or received e-mail while using their laptop in class % have sent instant messages to a friend during class % used wi-fi to get a head start on an assignment before a class was finished wifi and linkbaiting statistics if forced to choose, % would give up beer before giving up wi-fi survey methodology: “in conjunction with the wi-fi alliance, wakefield research surveyed u. globesurfer x- wireless broadband router option globesurfer x• router: “a new product that transforms any usb wireless modem into an instant internet-connected wifi network capable of supporting multiple users.” too bad i can’t figure out where to buy it. also too bad that i can’t simply do this with a jail-broked iphone. i mean, doesn’t an iphone have everything it needs built-in: a cell-phone modem, wifi hardware, and enough unixy goodness to support nat and routing? bumptop: taking the desktop metaphor deeper bumptop: a fun, intuitive d desktop that keeps you organized and makes you more productive. like a real desk, but better. your desktop doesn’t have to be a boring graveyard for lost and forgotten files anymore! transform it with bumptop. create the desktop that suits your needs and style. recently reviewed in arstechnica. extracting/decompressing .rar files on mac os x mac os x doesn’t ship with unrar, the common linux utility, but you can easily get it bundled in unrarx, a convenient mac os x utility. dig around and you’ll find it in unrarx.app/contents/resources. not sure that rev=“canonical” is really the solution anything that can help stop this kind of madness is worth a good long look (yes, i don’t like the diggbar any more than john gruber, despite digg’s assurances it’s safe), so i’ve had rev=“canonical” on my mind (yes, that’s rev, not rel). chris shiflett thinks it will save the internet, but matt cutts suggests what i’ve always thought: why not resolve short urls to their long form and store/display them that way? cas is a standard protocol, not a standard application i’m not really part of the jasig cas community (learn more), but i do maintain the wpcas wordpress cas client and i’ve started development of a cas server component for wordpress. that project is on hold because one of the products that i’d expected to integrate with it doesn’t use standard cas and the vendor of that app has chosen to modify the jasig cas server to support their apps. weird screw drive russian truck can we stop complaining about taxes already? andrew tobias asks if we can finally put the tax argument to bed: is the reason you’re not investing in stocks these days (a) the prospect of having to pay % capital gains tax? or (b) the fear of further losses? (well, or – c – that you don’t have any money?) is the reason you don’t start a new business that (a) if it made you a lot of money you’d have to pay a lot of taxes? sniff sniff — network sniffing in mac os x adam had to remind me of this: sudo tcpdump -i en -s port of course tcpdump can only tell us what other machines the computer is talking to, not what the conversation is. that requires a sniffer like wireshark. iphone earbud + business card hacks: speakers and cord winder two interesting submissions to the core business card hacks challenge: earbud speakers and a cord winder. you’re nobody unless you’re fake — on twitter here’s a simple way to tell whether the star you’re following is the real thing. are the alleged celebrity’s tweets funny and entertaining, with a palpable sense of self-awareness and wit? full on fake then, and by default, well worth following. oh, and twitter, if you’re still confused, the fake celebs are the ones who cannot afford a publicist to announce that the @fakeaccount everyone’s following isn’t really them. damn firewalls…but which firewall? for some reason two cdns, bitgravity and castfire, are being blocked on campus. you might think firewall, but the problem even seems to appear outside the firewall. international pillow fight day world pillow fight day in boston last saturday was not only a lot of spring fever fun, it also resulted in a marriage proposal. banditos misteriosos estimates there were over , pillow fighters, apparently making it one of the largest fights that day. view the above panorama large to see the crowd. detroit police shut down the fight there, confiscating pillows and demanding permits, though the calgary fight went without incident, despite concerns about permits. adventure cameras: olympus vs. panasonic i’ve been keeping my eye on the olympus stylus tough- . it’s reportedly durable and waterproof to feet. but i’ve just discovered the panasonic lumix dmc-ts , also supposedly tough and waterproof (though only to feet). the panasonic, however, can shoot hd video and has a higher maximum iso. the panasonic also does some funky facial recognition (which favors recognized faces when focusing), but the olympus can stitch multiple-shot panoramas in the camera and has “tap control” that allows, well, it appears to allow you to control the camera’s settings by tapping the sides rather than fiddling with buttons. things learned from the durex sexual wellbeing survey yes, they did a survey, and the results show the french have plenty of sex, but are among the least satisfied for all that activity. russians ( %), brazilians ( %), and greeks ( %) appear to be the most likely to get it at least once a week, while in japan it appears both infrequent and unsatisfying. new zealand distinguished itself for being the only country where women averaged more partners than men. we were warned about this… years ago fortune magazine, march , : like alligators in a swamp, financial derivatives lurk in the global economy. deriving their value from the worth of some underlying asset, like currencies or equities, these potentially lucrative contracts are measured in trillions of dollars. but they also lie in convoluted layers in a tightly wound market of global interconnections. and that gives them the capacity to bring on a worldwide financial quake. new plymouth state university mascot matt worked this up for our university portal today. plymouth has long been the panthers, but a little change does the university good. panthers may have paws, but platypi have venom. crime vs. highways. or, internet security is a social (not technical) problem stefan savage, speaking in a segment on march ’s on the media, asked: the question i like to ask people is, what are you going to do to the highway system to reduce crime. and when you put it that way, it sounds absolutely ridiculous, because while criminals do use the highway, no rational person is suggesting that if only we could change the transportation architecture that crime would go away. mm f/ . the canon mm f . is the stuff of legend. sure it wasn’t particularly sharp, and depth of field was so short that you’re unlikely to get an entire face in focus, but the notion of a lens that bright is more than a little attractive (even if you’re unlikely to have enough light to focus at all if you’re in a situation where you need the f . maximum aperture). php icalendar php icalendar can parse and render ical formatted files. apple’s developer docs, amusingly enough, offer a few more hints along those lines. wufoo forms wordpress embed shortcode i tossed this together a while ago, and it even made it in to bsuite for a time, but i don’t have a need for it anymore, and i’m cleaning house. function shortcode_wufoo( $arg ){ // [wufoo id=z x m domain=place.wufoo.com] $arg = shortcode_atts( array( 'id' => false, 'domain' => false, 'height' => , ), $arg ); if( !$arg['id'] || !$arg['domain'] ) return( false ); return( str_replace( array( '%%id%%','%%domain%%','%%height%%' ), array( $arg['id'], $arg['domain'], $arg['height'] ), '<iframe height="%%height%%" allowtransparency="true" frameborder=" " scrolling="no" style="width: %; border:none" src="https://%%domain%%/embed/%%id%%/"><a href="http://%%domain%%/forms/%%id%%/">fill out my wufoo form! jellyfish at the monterey bay aquarium flickr video the year war a commentary by doug bandow of the future of freedom foundation points out how much we love war, well at least politicians love war: war has become a centerpiece of american politics. the war on terrorism is the focus of u.s. foreign policy. a real war is being fought in iraq. jimmy carter proclaimed the “moral equivalent of war” over energy. some analysts are advocating a war on obesity. the economist on open source from the economist in : open-source business: open, but not as usual. happy st. patrick’s day the entire kitchen is sandee’s playground, and that includes the chalkboard. i’m not sure what holiday she’ll decide to honor next. she’s been busy elsewhere at home too. mysql slow query log analysis peter at mysql performance blog pointed out this sweet perl script to analyze mysql’s slow query logs. (this is supposedly a php port.) the script does a good job of aggregating similar queries (those that only differ in their query values) and displaying overall stats for them. the following two queries are showing up a lot in my wpmu installation because i also have it set to log queries that don’t use indexes. slideshare wordpress embed shortcode i’m cleaning house in [bsuite][ ], and i’ve decided that this shortcode function for embedding slideshare items in wordpress needs to go. rather than totally toss it away, however, i’m posting it here in case somebody else finds it useful. ``` function shortcode_slideshare( $arg ){ // [slideshare id= &doc=misty-holland- - &w= ] $arg = shortcode_atts( array( 'id' => false, ), $arg ); if( ! $arg['id'] ) return( false ); return( str_replace( '%%id%%', $arg['id'], ' ' )); } add_shortcode('slideshare', array(&amp;$this, 'shortcode_slideshare')); i missed the nightclub and bar show the international nightclub and bar show ran in las vegas last week, bringing a bunch of nightclub, bar, tavern, pub, restaurant, and hotel professionals to the city, including my friends at biba. dave must be faking his shock at the free shots, music, and dancing girls filling the hall “all at noon on a tuesday!” i’m not at all involved in the business, but i think i need to go next year. volkswagen ad claimed too violent for british tv first it was , then over complaints about the matrix-style (that means fake looking) kung foo action in volkswagen’s new ad. dual-wan or multi-wan load balancing routers bonding and . ad/ . ax link aggregation it’s not, but dual- or mutil-wan load balancing seems like a good way to improve overall bandwidth and reliability. the cisco/linksys rv (just under $ ) can group up to seven different wan connections, but the customer reviews are only so-so. for a little more i can get a peplink balance that can handle three wan connections and seems built for speed. there are other products, i know, but not a lot of information about any of them. yeah, i’m that guy i’m flying virgin america from bos to sfo, and apparently all their planes on that route offer in-flight internet via gogo. $ . buys mbps down and kbps up (at least early on when nobody else seemed to be using it). i can get my iphone online for only bucks, but as far as i can tell, i’d have to buy two plans if i wanted to use both on this flight. fly safe, fly without id this is an old one, but because i’m in the air again today it’s worth digging up this up. defense tech long ago pointed out the identity project‘s position on showing id for air travel: if a year-old college student can get a fake id to drink, why couldn’t a bad person get one, too? and no matter how sophisticated the security embedded into the id, wouldn’t a well-financed terrorist be able to falsify that, too? mmm… bacon who doesn’t like bacon, or little piglets? or kittens? juice your opac richard wallace’s juice project (javascript user interface componentised extensions) is a “simple componentised framework constructed in javascript to enable the sharing of ajax stye extensions to a web interface.” wordpress or scriblio users might do well to think about it as a way to put widgets on systems that don’t support widgets, though as richard points out, “the framework is applicable to any environment which, via identifiers contained within a html page, needs to link to or embed external resources. way cooler than a catalog i got a little excited when shirley lincicum wrote to the ngc lib mail list: [o]ne of the most frustrating things for me about next generation catalog systems as they currently exist is that they seem wholly focused on the user interface and can, in fact, actually hold libraries back from designing or implementing improved “back end” systems because of the dependencies introduced by the new “discovery layer” applications. i was excited because almost two years ago i wrote something like this: usability vs. open source this article comparing the usability of joomla vs. wordpress has already been linked by everybody’s uncle, but it’s still worth a look. i find it amusing, however, that none of the comments so far on that blog post mention the commitment that the core wordpress team appears to have on making blogging fun. if you start with the goal of making something fun, then add sophistication to make it flexible without being complex, you’ll get a very different result than you would if you started with different goals. tattoo: pantone seanbonner‘s photo of esther’s new tattoo makes me want one. tgfkae’s new tattoo by seanbonner on flickr scriblio theater flickr video flickr video i should have done screencasts like the above long ago. it’s not that they’re great, but they are a wonderful excuse to use the canned lounge music i’ve got. those videos are now on the front page of the official scriblio site, and i did five more to demo the installation and configuration. big thanks go to collingswood nj public library director brett bonfield who let me use his library like this. pedal powered hovercraft i love the engineering of the lift fan on this pedal powered hovercraft. it needs a little more lift to make really work, but wow. scriblio . released my slides for my presentation yesterday at code lib are available both as a . mb quicktime and a . mb pdf, while the gist of talk went something like this: scriblio is an open source wordpress plugin that adds the ability to search, browse, and create structured data to the the popular blog/content management platform. and wordpress adds great ease of use, permalinks, comments/trackbacks/pingbacks, and other social and web-centric features to that structured data. is internet linking legal? you’d think the top search results on the matter would be newer than , but that’s where you’ll find this nyt article and publaw item story, both from precambrian times. worse, both of those articles suggest that my links to them may not be entirely kosher. the problem is probably that us courts have not spoken clearly on such a case. a danish court in did, but i think that no case in the us has gone far enough to actually set a precedent. don’t be stupid, magenta is a color anybody who claims magenta isn’t a color is stupid, lying, or link-baiting. take it from a color-blind person: all colors are a matter of perception, and claiming magenta isn’t a color because it doesn’t fit neatly in the linear spectrum of visible electromagnetic radiation is like saying this isn’t music because the vibrations that tickle our ear aren’t the result of a monotone sinusoidal wave. we have no equivalent of polyphony for light, but just as it took a whole orchestra to make jaws scary, the colors we perceive are most commonly a mixture of different frequencies of light. make yours a modbook i really don’t know what i’d do with a tablet, but it’s still plenty interesting to see this modbook come together. on the other hand, if there’s anything to the earlier rumors of an apple tablet, i hope it leads to some sort of large-screen iphone-like device. pedal powered big wheel fun this big wheel was purported to be the work of cyclecide, a sf-based bike art collective. the big wheel is cool no matter who built it, and cyclecide’s pedal powered contraptions look awesome: the pedal powered roller coaster looks tame by comparison. turning a podcast track into a music track in itunes i subscribe to a few song of the day podcasts, which makes it easy to get the tracks, but difficult to enjoy them as music in itunes. but podcast tracks can’t be simply moved over to the music section of your library, it takes a little finagling. there’s a lot of advice out there suggesting you use one of the menu commands to convert the track to mp or aac, but i prefer not to re-encode my music, and that’s a big hammer for a small problem. , (max), (avg) mysql queries per second the above graph is far from typical, but i love that the box (the top one in this picture) can do the job when it needs to. this activity is a result of bulk record imports, web activity results in relatively little database traffic due to my use of memcached and batcache. the world’s greenest roller coaster this pedal-powered roller coaster is washuzan highland park‘s skycycle in okayama prefecture, japan it appears that the only co emissions are the huffing and puffing of riders peddling to the top. the park does have three traditionally powered steel coasters (the ultra, star jet, and chupy). how to ruin valentine’s day, and a basketball game valentine’s day will never be the same for this dude. aparently, however, marriage proposal rejections at basketball games are common, though this lol cats proposal worked out well. matching multi-line regex in bbedit i love bbedit on my mac, but i was left scratching my head again today when i was trying to remember how to make its regex engine match a pattern across multiple lines. my hope was to extract a list of initial articles from a page that had html like this: wordcamp higher ed, northeast it’s not wordcamp paris (running on february), but wordcamp edu northeast is today. i’m there to meet up with fellow wordpressies and talk about extending wordpress with holladay penick and dave lester. squeezing the three of us into a single time slot requires quite a bit of cutting, especially if we hope to have time to answer questions, so i’ll be focusing on scriblio. that means i won’t be talking about how we’re going to use buddypress or replace significant portions of our university portal with it. why are these people so happy? the soothing ambient sounds and smiling faces might be enough to have you keep this site open all winter long, but then you’d have to explain it. the world record headspin master is times cooler than me darien’s new materials handling is cool, but not world record headspin cool. actually, that’s probably a false comparison, enjoy them both. woot! wordpress mu . out sure, matt says it’s thank a plugin developer day, but let’s hear it for the developers who just tagged wordpress mu . ! not long ago there were still files to merge, now it’s done and ready for the next version. new hampshire: live free or die by firing squad nh state representative delmar burridge recently introduced hb proscribing death by firing squad: when the penalty of death is imposed, the punishment for a defendant convicted under rsa : , i(g) shall be execution by firing squad. burridge would likely describe himself as “principled,” like when he reported one of his constituents to the cops because of his advocacy for marijuana decriminalization. the photo above is a still from a ridley report interview with him. not happy it’s called gigapan, a robotic panorama-maker. david bergman used one to take the picture above (though his view was much larger) (you can buy your own for about $ if you get in on the beta). the point, however, is that if you zoom in real close, you can see w’s pursed lipped scowl. sitting in sin thomas von staffeldt’s remix of arne jacobsen‘s “chair no. ”. above are gluttony, pride, and lust. they’re all on auction, but does that suggest avarice? through the viewfinder original_ann‘s hacked-together rig for shooting though the viewfinder of her kodak starflex has me wanting one. she has a beautiful set and points to the through the viewfinder group for more. the real intronetz argument “what happens when a group that commands respect meets an audience that doesn’t give it readily?” pete cashmore on the vatican launching youtube channel. oh noes! my table is gone! # mysqlcheck -p -a --auto-repair --optimize wp_ _options info : found block with too small length at ; skipped info : wrong block with wrong total length starting at info : found block with too small length at ; skipped warning : number of rows changed from to status : ok cleaning up the mess after a hardware failure can suck. this mysqlcheck output is from the wp_options table for this blog. a cocktail i can believe in sandee’s toasting tomorrow’s inauguration with a special “fresh start cocktail.” i’m not usually one for overwrought imagery, but the delicate fruit flavor is quite refreshing change from the dark and stormy winter we’ve been suffering. and no, i really don’t know if i’m talking about the feet of snow that’s fallen these past couple months of those eight years we’ve suffered. everybody’s underwear i was using the dirty laundry metaphor in a previous post and wanted to extend it a bit by saying something like: for the generation of children who’s parents have already posted their silliest and most embarrassing baby pictures to facebook and elsewhere, being caught in your underwear is both expected and forgivable. being evil, on the other hand… except i couldn’t find a link to support my claim. gaming help: bond : quantum of solace walkthrough shadowzack knows his games a lot better than i do. even though he says it’s “crap”, i’m enjoying playing bond : quantum of solace on my wii. i only play about one game a year, so i’m not ashamed to go looking for a bit of help in shadowzack’s walkthroughs: chapter chapter chapter chapter chapter chapter chapter chapter chapter chapter hardmuth’s diy ring flash is quite a hack this light-piped ring flash should do the trick. it’s gotta be cheaper than canon’s offering (though cheap ring lights can be had for under $ ), and it seems to work more than well enough. no such thing as bad publicity finding a blog post about a condom and a cheeseburger made a friend ask if student blogs should be moved off-domain. my flippant answer was “there’s no such thing as bad publicity.” his retort was simple and quick: “tell that to the catholic church.” it stung. he had me, i was sure. it’s hard for many americans not to think of sex abuse when catholic church comes to mind, but there are probably two lessons from that: gaming: pac-txt richard moore’s pac-txt is even more brilliant than his paper pong (which, ironically, you can play online). here’s a transcript of my best pac-txt game to date: pac-txt! -------- you awaken in a large complex, slightly disoriented. glowing dots hover mouth level near you in every direction. off in the distance you hear the faint howling of what you can only imagine must be some sort of ghost or several ghosts. patrick mcgoohan dead at patrick mcgoohan, creator of the prisoner, has died. looking back at mac hardware performance i recently replaced the mac mini i use to host my web development with a powermac g . (story: the mini was mine, a personal purchase i made to support my work on scriblio and other wordpress-related projects, but recent changes in our network and firewall policy made the machine inaccessible from off-campus without using the vpn. having a personal machine sit at my desk at work isn’t as useful if i can’t use it conveniently and for para-work activities, so i wanted to take the mini home. firefox improved rdf browsing lbjay uses both the tabulator and semantic radar firefox plugins to do magic with rdf in his browser. play flv in quicktime player using perian perian: “the swiss-army knife of quicktime components” file formats: avi, divx, flv, mkv, gvi, vp , and vfw video types: ms-mpeg v & v , divx, ivx, h. , sorenson h. , flv/sorenson spark, fsv , vp , h i, vp , huffyuv, ffvhuff, mpeg & mpeg video, fraps, snow, nuppelvideo, techsmith screen capture, dosbox capture the lgpl–licensed quicktime plugin installs easily on mac os x . and does what it promises. flv videos (such as those you’d sneakily download from youtube) open just like any other quicktime vid, and you can easily export them to other types. corey blanchette’s song project the photos meme was quite popular last year (despite the day leap year). i might have joined, but it’s unlikely i would have finished. instead, i’ve been pushing my my brother-in-law corey blanchette, nicknamed coreyb or coreyb , to do songs in . he launched on january first and since then has done songs about elves, the serotonin in saratoga, albert ayler, and a bunch of others. if i ever find myself in prague… ilya schurov thinks this is the time capsule from from isaak asimov‘s the end of eternity. it’s really the elevator and stair (or ramp)-way in prague‘s old town hall. a clock and great views of the square are at the top. thinking of interesting elevators to be found in europe: the paternoster. diy fisheye lens for aiptek go-hd camera the aiptek go-hd isn’t such a bad camera for the money. it does p video and megapixel photos, but the lens doesn’t go very wide. but a post in the flickr blog pointed to a solution: use a door peephole as a fisheye lens. it works, but holding the peephole in front of the camera can get tiresome. here’s how i solved it: a rubber stopper easily holds the peephole, while a . some predictions come true way back in dave winer made a bet: in a google search of five keywords or phrases representing the top five news stories of , weblogs will rank higher than the new york times’ web site. it’s important to remember that in people still wrote “weblogs” in quotes, as though they weren’t sure how to use the word. winer won his bet in . anybody want to make a bet about ? safe livestock transportation recommendations you might not have cared to know the recommended trucking practices for pigs or other livestock, but colorado state university professor temple grandin is happy to explain all of that and more. she’s got videos too. perhaps you know somebody who made a new year’s resolution to improve the way they truck their livestock? you didn’t know they were fighting: the karen national liberation army in myanmar this news story from alerted me to a war i didn’t know anybody was fighting: the liberation of karen state from myanmar. the knla (karen national liberation army) and knu (karen national union) have been fighting for independence since the british left burma (myanmar) in . what do you get a -year old rebel movement for its birthday? here are their demands: for us, surrender is out of the question. super cheap aiptek go-hd video camera a while ago now i bought a aiptek go-hd p from amazon for cheap. the fotoramp review was helpful; links to actual raw video convinced me; but this video review was absolutely no help at all. you can’t track the brand on flickr; but a search reveals a few photos (one, two), a video, and even some photo panoramas (one, two) assembled from the video. you can see my own test videos here (note the link to the raw video in the description of each). new year’s hangover remedies i find a few sausage, egg, and cheese breakfast sandwiches and chocolate milk do the trick, but i’d eat those every day if i could. i’m always dubious of claims to national consensus, but this is especially ridiculous. is our national hangover cure really tomato juice and eggs? i thought it was hair of the dog, or beer and eggs. friends of mine have been so concerned by the challenge that they’ve developed biba, an electrolyte rich mixer that’s supposed to reduce the risk of hangover from the start (join their facebook group to learn more). will time warner cable customers be able to watch nickelodeon in the morning (or visit nick.com)? this dispute is going on now, tonight. there are obviously at least two sides to this story (viacom &time warner cable). you’d think a media giant like viacom would know how to handle this one, but it seems that all they’ve got is that splash screen in front of a bunch of their websites and this uninspiring ad. time warner cable, which you might think is just a bunch of network plumbers, seems a little more connected. wired but disconnected duckett‘s wired but disconnected on ccmixter is actually ironic: the whole song is the result of an online collaboration. listen lensbaby baby i have an old lensbaby . (looks like this) that does a great job of making casual snapshots look like real portraits. but i also find it really difficult to get focus on my subject. blame my bad eyes, my insistence on using it wide open with it’s shallowest depth of field, and simply sloppiness, but i can’t do it. this new lensbaby composer with a sort of normal focus ring (rather than flexible bellows), might work a little better. tankmen tankmen is funny, no doubt, but i wonder what it means when we’re deeply embroiled in two of the longest running armed conflicts of us history that we find it so easy to make comedy about war. happy holidays! jappy jaladays begets a number of other punny greetings: merry mojitos! merry margaritas! tijuana celebrate? hope you do. party tortilla tired! don’t let the season tequila. salsa nice having you in our lives. let’s go singing christmas cuervos! youtomb tracks takedowns on youtube youtomb continually monitors the most popular videos on youtube for copyright-related takedowns. any information available in the metadata is retained, including who issued the complaint and how long the video was up before takedown. the goal of the project is to identify how youtube recognizes potential copyright violations as well as to aggregate mistakes made by the algorithm. hacking cellphones for public health using only an led, plastic light filter and some wires, scientists at ucla have modded a cellphone into a portable blood tester capable of detecting hiv, malaria and other illnesses. via wired. lcsh linked data lcsh.info is gone, but there’s a lot to learn from this paper. i wish i’d seen that earlier. everybody’s spoon is too big best of craigslist: manly bike for sale from the best-of-craigslist: manly bike for sale: what kind of bike? i don’t know, i’m not a bike scientist. what i am though is a manly guy looking to sell his bike. this bike is made out of metal and kick ass spokes. the back reflector was taken off, but if you think that deters me from riding at night, you’re way wrong. i practiced ninja training in japan’s mount fuji for years and the first rule they teach about ninja biking is that back reflectors let the enemy know where you are. plugin options pages in wordpress . wordpress . requires that plugins explicitly white list their options using a couple new functions. wordpress mu has required this security measure for a while, and it’s nice to see an evolved form of it brought to the core code. [migrating plugins and themes to . ][ ] article in the codex offers some guidance, but here’s how it works: first, register each option for your plugin during the admin_init action: ``` function myplugin_admin_init(){ register_setting( 'my-options-group', 'my-option-name- ', 'absint' ); register_setting( 'my-options-group', 'my-option-name- ', 'wp_filter_nohtml_kses' ); } add_action( 'admin_init', 'myplugin_admin_init' ); ``` in the example above, the value for my-option-name- will be filtered by absint before being saved to the options table. quizzes are good link bait via information nation: how long could you survive chained to a bunk bed with a velociraptor? and how many five year olds could you take in a fight?. the social beaver: s campus life at mit really, it’s titled “the social beaver,” though i can’t imagine campus life ever looking like that. aside: mit’s techtv is powered by viddler’s white-label solutions. woodman institute, dover, nh the woodman institute museum in dover nh is famous for having a four-legged chicken, but that’s only a small example of the weirdness you’ll find inside. a big collection of snakes and bugs and bears in top hats along with other examples of taxidermy fills the first two floors. the top floor is dedicated to war and includes the obligatory rusty cannon ball that killed and maimed. what could have been: lee mercer’s presidential campaign former presidential candidate lee mercer shares your concern for circumstances and issues. he wants to crack down on treason and recognizes democratic concerns about expansion of executive power. mysql . released, community takes stock mysql . is out as a ga release, but with crashing bugs that should give likely users pause. perhaps worse, the problems are blamed on essential breakdowns in the project management: “we have changed the release model so that instead of focusing on quality and features our release is now defined by timeliness and features. quality is not regarded to be that important.” still, people are finding inspiration in ourdelta and drizzle. simile timeline for, um, timelines timeline is a simile project that uses exhibit json (which you can create with babel). longwell rdf browser longwell mixes the flexibility of the rdf data model with the effectiveness of the faceted browsing ui paradigm and enables you to visualize and browse any arbitrarely complex rdf dataset, allowing you to build a user-friendly web site out of your data within minutes and without requiring any code at all. demos another approach to web forms just saw a cool demo of xforms and orbeon forms. wordpress for zach’s web programming class zach is apparently too lazy to prep his own lectures for the last few days of his intro to web programming class. after bringing his students from zero to database-backed web-apps, he asked matt do javascript and me to introduce wordpress as an application platform. the wordpress api makes it easy to write plugins that modify wordpress’ behavior with filters and action hooks. additionally, shortcodes allow you to put small bbcode-like tokens in your wordpress posts and pages that are replaced with by functionality defined in your plugins. real data architecture: stockholm data cave need a retro-looking bomb shelter for your server, or are you a big fan of the cheyenne mountain scenes in wargames? the bahnhof pionen white mountains hosting facility is a cave below stockholm. you’d expect the sysadmin blogs to call it fit for a james bond villain, but even the architecture blogs are a gaga. trendhunter compares it to the rfm fm radio headquarters (poland) and john lautner‘s chemosphere house (los angeles). lens lust digital photography review’s look of sigma’s mm f/ . has me drooling. i have an el cheapo mm f/ . and am looking to upgrade. at $ , canon’s mm f/ . is just way too expensive, but their mm f/ . just didn’t seem to be enough of a upgrade to be worth the price. sigma’s new lens, seems to do it. i stumbled into that lens, however, as i was looking up canon’s ef mm f/ . derailed eu-jin ooi‘s picture of rail trucks piled up after a derailment isn’t nearly as scary as this derailment found at dee’s inbox: can anybody name that incident? (the top one is bnsf, barstow ca, april . what’s the bottom one?) piano man light-paint piano player from ryan cashman on vimeo. mobile safari advanced features if you’re already building web apps, you might wonder why you should bother to build an iphone native app. the short answer is that you might not need to, but you should still optimize the app for iphones. native-looking chrome set these in the head: ``` // set a custom icon for when a user bookmarks the app to the home screen // hide the browser chrome //set the phone status bar style; can be grey, black, or black translucent </td> </tr> </table> </div> caveats: * only works for web pages that have been saved to the home screen and opened from there. iphone dev camp nyc i’m at apple’s iphone tech talk in new york today. info is flowing like water through a firehose, so i’m not going to attempt live blogging, but here are their suggested ingredients for a successful iphone app: delightful innovative designed integrated optimized connected localized the picture is of the main theater for the event. it’s by far the most beautiful space i’ve ever been in for a tech conference. peephole diy fisheye lens flickr blog i discovered the peephole fish eye group. the idea is simple: us a $ door peephole to give your camera a fisheye lens. here are the instructions: hold peephole against rim of camera lens. set camera to “macro”. (the image is actually displayed on the inside face of the convex lens of the peephole. the camera must focus on the foreground image rather than the background image.) zoom in to the point that the viewable “circle” is framed almost evenly. i am talking to you after stuffing yourself with too much thanksgiving dinner and the tryptothan kicks in, there’s some time when all conversations seem to work like this one from martin wilson. a dc story one sunny day in january, an old man approached the white house from across pennsylvania avenue, where he’d been sitting on a park bench. he spoke to the u.s. marine standing guard and said, “i would like to go in and meet with president bush.” the marine looked at the man and said, “sir, mr. bush is no longer president and no longer resides here.” the old man said “okay”, and walked away. after the thanksgiving feast: answer who owns the fish you can only eat so much, and though we’ll likely stretch those limits tomorrow, at some point we all have to take a break. the good folks at coudal partners have the perfect solution: a simple test (available as a convenient pdf) that einstein says only a handful of people can actually figure out. the premise is simple: somebody in the neighborhood keeps a fish, but who? read the clues, work it out, and send your answer to the coudal folks. if you’re right they might have a prize for you. you can leave your answer in the comments here too, but all i’ll have for you is left over turkey. amazon’s content delivery network launches in beta amazon calls it cloudfront, and it costs $ . – $ . per gb at the lowest usage tiers. it seems that you simply put your files in an s container, make an api call to share them, then let your users enjoy the lower-latency, higher performance service. their domestic locations include sites in virginia, texas, california, florida, new jersey, washington, and missouri. internationally, they’ve got amsterdam, dublin, frankfurt, london, hong kong, and tokyo covered. web search re-imagined: searchme iphone app re-imagined a bit, anyway. why browse a vertical list of results when you can flip through them like pages in a book (or album covers in itunes). searchme on the iphone and ipod touch does just that. as you type your search term, icons representing rough categories appear, allowing you to target your search and helping people who’re searching for information about pythons the snake avoid results about the programming language. video drm hammering legal consumers nobody but the studios seem happy about apple’s implementation of hdcp on its recent laptops. the situation leaves people who legally purchased movies unable to play them on external displays (yeah, that means you can’t watch movies on the video projector you borrowed from the office). a related story may reveal the extent of the problem. the mpaa is petitioning the fcc to allow it to use “selective output control” to block playback of video content in a manner similar to hdcp. sco vs. novell lawsuit over, linux safe according to groklaw, the long running battle between sco and novell may finally be over. the judge ruled that sco, the company that claimed linux infringed on it’s ip and sued everybody in sight, never did own any rights to unix in the first place, and has ordered the company to pay millions. novell and others are unlikely to ever see much of that, though, as sco is in bankruptcy. toshiba takes bullet time up a notch supposedly this is more real than it looks. see how it was made. the uss albacore, portsmouth nh the albacore is a post world war ii experimental submarine now on display in portsmouth nh. seeing the sub on land, some height above sea level, is a bit surprising, and it’s clear that moving it there was no small task. five dollars will get you inside the sub’s tight and awkward quarters, where you’ll see the frankensteinian bathroom (and that’s for officers) and details such as lithium hydroxide canisters and signal ejector instructions that stand as reminders of the dangers of submarining. nest: the softer side of maisonbisson sandee’s not such a fan of the new theme here at maisonbisson. without really telling me that i should have discussed the new decor with her before making any big decisions, she does say she feels it doesn’t suit her style. there are lots of ways to resolve the, um, difference of opinion, but we decided that just as sandee gets most of the authority regarding the kitchen and i get the office, we can find a way to share the website. lincoln obama paste up mashup enrguerrero‘s photo of a lincoln/obama paste up mashup on the corner of larkin and myrtle streets in san francisco. fiddling with open source software for libraries theme i generally liked commentpress, but when the institute for the future of the book website went down recently, it started throwing errors in the dashboard. so i decided to re-do the open source software for libraries website using derek powazek’s depo masthead. i think it’s a beautifully readable theme, and i only had to make a few modifications. i’ve ostensibly lost commentpress’ paragraph-level commenting features, but i discovered those may have been broken all along (that was what started me thinking about replacing the theme). obama’s use of complete sentences stirs controversy from the borowitz report: in the first two weeks since the election, president-elect barack obama has broken with a tradition established over the past eight years through his controversial use of complete sentences, political observers say. “every time obama opens his mouth, his subjects and verbs are in agreement,” says mr. logsdon. “if he keeps it up, he is running the risk of sounding like an elitist.” more… mcgill university powered by wordpress well, not the entire university, i guess, but a number of online publications use it. the newspaper is featured above, their cio has a blog, and they’ve started a pilot with wpmu to offer blogging to everybody in the university. abandoned cars, yes, but abandoned jumbo jets? residents of mumbai (bombay) were wondering who was responsible for removing an abandoned in their chembur neighborhood. then, as quickly and mysteriously as it appeared, it vanished. the times of india says the plane arrived by truck, but the driver took a wrong turn and couldn’t maneuver the foot long hulk out. wingless planes and beached whales aren’t so dissimilar. the oregon highway department knows how to take care of the latter (though, it turns out that whales are known to spontaneously self destruct). tricky uses of bsuite after writing the project page for wpsms i didn’t have much more to say in a blog post announcing it. the cool thing about writing pages in wordpress is that i can create a taxonomy like /projects/wpsms/ to place them in. the downside is that new pages never appear in the rss feed. so i need both the page and a blog post to announce it. i could have simply copied the content from the wpsms page into a blog post, but that creates confusion and splits the audience between the two pages. wordpress uses: oobject oobject‘s galleries of abandoned pools, subway architecture, and revolting gold gadgets, among others, are all built in wordpress. using wordpress with external smtp server i really don’t like having sendmail running on a webserver, but some features of wordpress just don’t work if it can’t send email (user registration, for example). still, wordpress offers support to send email through external smtp servers instead if a local mailer. in <a href="http://trac.wordpress.org/browser/tags/ . . /wp-includes/pluggable.php">/wp-includes/pluggable.php</a> around line , change ``` $phpmailer-ismail(); ``` to ``` $phpmailer-issmtp(); ``` then, in <a title="/tags/ . a day in the life… dgenerate nation – skate with me from dgenetics on vimeo. whisky and gin dispenser gaellery‘s hotel room whisky and gin dispenser. push in the drawer, pull out, and find a tiny bottle of booze. just like those movies you claim you didn’t watch, it’s automatically charged to your bill. uploading .docx files in wordpress it may be a sign that none of the core wordpress developers much likes or uses microsoft office, but the core code hasn’t been updated to recognize the office file extensions like .docx, .pptx, or .xlsx. it’s no criticism, wouldn’t have discovered it if a user hadn’t complained, and i stewed a bit before deciding it was a bug. it’s now ticket # in the wordpress.org trac. it only affects my mu users now, though, and the same patch works there. world usability day today the usability professionals’ association says “a cell phone should be as easy to access as a doorknob.” and since they’ve been organizing world usability day to help make that happen. locally the upa boston chapter is holding events at the boston museum of science (in cambridge, actually) that explore the clues we use to understand how to operate doors and the frustrations of setting an alarm clock. this year’s theme is transportation, and they have an online transportation survey that helps us see our “transportation footprint and learn how small travel changes can make a big impact on all our lives. google brings video to gtalk, but why no ichat/skype interoperability? google yesterday introduced video chat to the web-based version of it’s google talk app (think gmail), but doesn’t appear to interoperate with any of the many existing video chat apps, ichat and skype tops among them. getting a teflon fix teflon might be just what i need to get my walking desk treadmill back in working order. but where to get it? turns out that dupont sells in both teflon spray and squeeze bottle. found via. the animated llama you didn’t know you needed click for more. i dare you. wordpress education mail list wp-edu, the wordpress for education mail list has launched. join up, catch up on the archives, and set it up at your school. new plugin: wpsms supports sending sms messages [include post_id=” ″ field=”post_content”] poke a muffin click for more. i dare you. a bullet dodged we all knew the sordid details of palin’s candidacy would emerge, but who figured they pour out so soon or on fox news? via borkweb.com declaration of metadata independance declaration of metadata independance: we hold these truths to be self-evident, that metadata is essential to all users, and that the creation of metadata endows certain inalienable rights, that among these are the right to collect, the right to share and the pursuit of happiness through the reuse of the metadata… (read more) via. svn repository hooks rock i stumbled on them by accident, but once i discovered subversion supports action hooks that can fire before or after a transaction, i knew exactly what to do with them. presidents change…presidential limousines change presidential limos are armored, yes, but gregg merksamer reveals that george w. bush’s limos sport five-inch thick glass, more than twice as thick as in clinton’s limo. merksamer should know, he wrote the book on so-called “professional cars”. he says half an inch is enough to stop a . magnum at point blank range, and bmw’s x “security” model features only a little more than that. so what’s it mean when a person needs ten times that amount? mccain staffers: more whisky. stat! john mccain’s election team apparently told staff at the phoenix biltmore to have extra whisky on hand for their election party tonight. they’re not just planning to drown their sorrows: republicans and republican-leaning independents drink more whisky than the national average. sweet photo by bearfaced, though i almost used this picture of barrels (or this one). techno viking rocks more than other vikings (and vikings generally rock) the technoviking will have you scratching your head for the first seconds, then rofling for a while. not enough yet? watch him dance to “it’s a piece of cake to bake a pretty cake.” this one claims to be the original, and though the sound is bad the video quality is much better than the others. thing is, now that you’ve watched it a couple times, did he stop a pickpocket or admonish a groper at the beginning? wikipedia api? i’ve wanted a wikipedia api for a while. now i might’ve stumbled into one: commons.wikimedia.org/w/api.php. it doesn’t do exactly what i want, but it might yet be useful. engrave your tech the image on this moleskine notebook was custom laser engraved by engraveyourbook.com, a part of engraveyourtech.com, where they recently announced they were suspending moleskine engraving due to atmospheric health concerns. you can’t get a notebook, but you can ogle the fancy, laser engraved macbooks creative commons licenses not compatible with gpl? gpl and cc are incompatible? fsf says so, and the debian free software guidelines agree. i’m as opposed to ruinous compromises as the next guy, and i feel the gpl fever, but i just want to use mark james‘ excellent silk icons in my gpl’d wordpress plugin. csshttprequest: cross domain javascript solution who’d a thunk it: csshttprequest is a way of doing cross-domain ajax by using css’ @import method to fetch the data. super mario quilt keith lewis bakes, paints, makes robots with machine guns, and has stitched not one but two mario quilts (closeup, from back). they apparently make good gifts, who wouldn’t want one? diagramed: things said during sex view it large, for all the details. via anonymous. asian robot olympics news of brickcon the web and the flickr earlier this month, but mse ’s photos of robot competition have my attention now. but what am i looking at? what was the competition? steve souders website performance o’reilly webcast i’ve linked to steve sauders‘ webcasts on website performance optimization before. here’s another. turns out that he’s co-chairing the o’reilly velocity conference in june. apache virtual hosting black magic i’ve configured apache for virtual hosting on more sites than i can count, but i’ve always just kind of stumbled through until now. what’s changed? the apache . documentation is worlds better than the old . docs (even though the old docs rank highest in google). so here they are: name-based virtual hosts, plus virtual host configuration examples (including an example mixed name and ip virtual hosting, which is what i needed), and some tips on dynamically configured mass virtual hosting. sarah palin is a vampire i think this election has designers more involved than most. (via dottiebobottie.) determining paths and urls in wordpress . + wp . allows sites to move the wp-content directory around, so plugin developers like me can’t depend on them being in a predictable location. we can look to the wp_content_dir and wp_plugin_dir constants for answers, but a better solution is likely to use the x_url() functions. the most useful of those is likely to be plugins_url(). even better, you can give these functions a relative path and they’ll return a fully qualified url to the item. xfruits: “compose your information system” is xfruits a worthy replacement for yahoo! pipes? wordpress bug: duplicate post_meta entries i just submitted a trac ticket about this: the update_post_meta() and delete_post_meta() functions don’t know how to deal with post revision ids. add_post_meta() does, it uses the following block of code to make sure the passed $post_id is a real post, not a revision: ``` if ( $the_post = wp_is_post_revision($post_id) ) $post_id = $the_post; ``` this is important because the global $post_id when a post is being saved is for the revision, not the real post. are you ready for the digital tv conversion? this psa should help you understand the upcoming switch to digital television. (via) comfort, thy name is sumo i sink into a strange, giant blue marshmallow and sigh contentedly. i balked at this new furniture. i balk at anything that i don’t actually pick out. i didn’t pick this out, casey acquired it on his own. our home is small and i am very picky about what goes into it. this was a beanbag. a beanbag? i can’t think of a more immature piece of furniture. libraries vs. it departments the chronicle‘s tech therapy podcast last week featured libraries vs. it departments. (via.) xkcd against drm i think richard m. stallman would agree with xkcd: drm is evil. it’s bad for both customers and content creators — even hilary rosen and steve jobs have their doubts about it. got wood? you can get a carved wood replica macintosh or faux-wood vinyl wrap for your mac mini, but asus is demoing a series of bamboo-covered computers and fujitsu is showing their cedar concept. and then miniot has a series of wooden cases for your iphone and ipod touch. olde skool ipod cases contexture design‘s ipod classic and nano cases made of reclaimed rpm vinyl or audio cassettes are just fine. too bad they’re all sold out. edward tufte on the iphone’s ui design edward “to clarify add detail” tufte, who criticizes the powerpointing of america, earlier this year posted a video on the iphone’s ui design. he loves the photo viewer (except the grid-lines between images are too big), he loves the web browser (except the navigation bar takes up too much space), he calls the weather app an elegant way to demo your iphone to friends (but says it’s devoid of information), and calls the stock market app cartoonish. how wikipedia works when phoebe ayers isn’t hanging out at roflcon she’s probably doing something related to wikipedia, so i’m looking forward to reading how wikipedia works: and how you can be a part of it. extra points: phoebe and her co-authors somehow convinced their publisher to release the entire work under the gfdl, the same license wikipedia uses. you could read the entire thing online for free, but that’s the easy part. beat it: instant rimshot scott carver has his hand in a number of projects — the penny jam is especially outstanding — but his instant rimshot is one of those silly infectious sites that’s you can’t help but share. another reason i’m glad i left verizon i received the following message from clickatell, the sms gateway provider i use to programmatically send text messages to cell phones: please be advised that us carrier verizon wireless has announced that they will be charging an additional c per sms for all application originated mobile terminated messaging beginning november , . this increase will apply to standard rate and premium programs only through the verizon wireless network. transaction fees will not apply to free- -end-user, mobile giving or non-profit organizational programs, according to verizon. wordpress event calendaring plugins i actually use event calendar, which has been abandoned for some time. looking at the alternatives listed in the plugin directory, calendar, events calendar, and gigs calendar add full calendar management features to wordpress. while ics calendar, ical events, and upcoming events, simply offer the ability to display calendar data from elsewhere. what i liked about the old event calendar plugin is how events were posts. creating an event started with creating a new post. converting mysql character sets this gentoo wiki page suggests dumping the table and using iconv to convert the characters, then insert the dump into a new table with the new charset. alex king solved a different problem: his apps were talking utf , but his tables were latin . his solution was to dump the tables, change the charset info in the dump file, then re-insert the contents. tracking aircraft movements from justin: real-time flight tracking. you can even overlay it on google earth. none of them as pretty as aaron koblin’s flightplan, though. acronym overload: iis + isapi + cas i’m working to integrate an application on a remote-hosted iis server into our cas environment. casisapi (svn trunk or svn tags/production) may do the trick, though phil sladen struggled with it (in ). there’s reason to doubt it. not only is the sparse information all old, i first learned about it from a page full of broken links and the apparent author recommends against it. there’s a little more information here for those who can read danish. sarah palin’s debate strategy flowchart via jon link: sarah palin’s debate strategy flowchart. eh. at least she had a strategy. what’s mccain’s plan going to be for tonight? autoerotica, detailed photos of the silver suv apparently backed out into the street so fast that it struck and flipped the blue car, then mounted it. nobody appears to have been seriously hurt, so we all have a guilt-free pass to mock the, um, compromising situation. found in paula wirth‘s photo stream. demetri martin flips his chart you’ll find more than a few of demetri martin‘s (his site) videos on the web (one, two, quotes). though i think he’s particularly good at powerpoint comedy and this flipchart thing, you’d think he doesn’t like to do interviews. solaris’ cachefs could be the space ship i’ve been looking for joerg moellenkamp‘s post explaining cachefs has me excited: long ago, admins didn’t want to manage dozens of operating system installations. instead of this they wanted to store all this data on a central fileserver (you know, the network is the computer). thus netbooting solaris and sunos was invented. but there was a problem: all the users started to work at o’clock. they switched on their workstations and the load on the fileserver and the network got higher and higher. this stone laid by l.g. bogus physically located in katoomba; found in seb chan‘s photo stream. do wordpress pages better with bsuite wordpress‘ pages feature makes the popular blogging platform a sophisticated cms. bsuite adds a few features to make it even better. write excerpts, tag, and categorize your pages wordpress excerpts are an underused but powerful feature that allow you to explain to your readers why they should read the page you wrote. tagging and categorization of pages help improve the findability of those pages, especially in search engines. what is social media? social media in plain english and rss in plain english, among others from common craft among the best explanations you’ll find. knowledge, distilled and sketched on index cards maslow without the pyramid, found at jessica hagy’s “indexed”. she posts new explanations of the world daily. more available in her book. website performance vs. crawl rate simple fact of the google economy: people can’t find stuff if it’s not indexed in major search engines. a slow site might not seem as bad as blocking the crawlers that search engines use to index your content, but it does seriously affect the depth and frequency of crawling they do. the above is google’s report of their crawling activity on a site i’ve been trying to optimize server performance on. beginner’s guide to dataportability, the video dataportability – connect, control, share, remix from smashcut on vimeo. from dataportability.org: the dataportability project is a group created to promote the idea that individuals have control over their data by determing how they can use it and who can use it. this includes access to data that is under the control of another entity. you should be able to decide what you do with that data and how it gets used by others open source solutions are preferred to closed source proprietary solutions bottom-up distributed solutions are preferred to top down centralized solutions my devcamp lightning talk hi, i’m casey. i developed scriblio, which is really just a faceted search and browse plugin for wordpress that allows you to use it as a library catalog or digital library system (or both). i’m not the only one to misuse wordpress that way. viddler is a cool youtube competitor built atop wordpress that allows you to tag and comment inside the timeline. staypress is a property management and booking system also built atop wordpress. scaling php this two year old post about rasmus lerdorf’s php scaling tips (slides) is interesting in the context of what we’ve learned since then. apc now seems common, and it’s supposedly built-in to php . still, i’d be interested in seeing an update. are mysql prepared statements still slow? and that’s where rasmus’ latest presentation comes in. we don’t learn anything about mysql prepared statements, but we do learn how to find choke points in our applications using callgrind and other tools. scared of the dark? who knew an ad that targeted our fear of the dark could work so well or playfully? then again, what would this ad feature if it played here in the us? do you still use your walking desk? michael pratt asked me recently: do you still use your treadmill desk? do you continue to find it beneficial? i love the idea of these things, but worry a little that i might tire of it in practice, or that it might be difficult to work at it for long periods. it may seem a perfect opportunity to revisit my old walking desk blog post, but that just raises the guilt level i feel every time i see the thing unused. sweet business cards this handful of business cards is good for a little design inspiration. and here’s more if you need an extra shot. thanks to frank for the tip. amazon to offer content delivery services via an email from the amazon web services group today: …we are excited to share some early details with you about a new offering we have under development here at aws — a content delivery service. this new service will provide you a high performance method of distributing content to end users, giving your customers low latency and high data transfer rates when they access your objects. the initial release will help developers and businesses who need to deliver popular, publicly readable content over http connections. the url is the citation from jessamyn: “don’t toss up a bunch of bibliographic citations when a decent url will do. you’re online, act like you’re online.” yet another encryption crack those kwazy kids will quack anything now. stream ciphers may never have been expected to be that secure, but adi shamir’s cube attack breaks them like so many, um, bits of data. michael pick screencast master professional screencast producer michael pick has joined automattic and shuttered smashcut, his production company. it’s not all bad, though. he’s been busy making instructional videos for wordpress.com (many of which are useful for wordpress.org users), explaining things like how to manage tags or use the press this! feature, and answering the question “what should i do first?” what does this suggest about the pro screencasting marketplace? pick says “this is a huge underdeveloped niche, [with fewer] screencasters with chops than there are jobs. google minus google from the register: inspired by a recent new york times piece that questioned whether the mountain view search monopoly is morphing into a media company — which it is — finnish blogger timo paloheimo promptly unveiled google minus google. key in the word “youtube,” and the first result is wikipedia. open source citation extractors for non-structured data hmm-citation-extractor, parscit and freecite (not to be confused with freecite, the f/oss endnote-like app). freecite is available as a service and a download. still, wouldn’t a simple url be easier than all these unstructured citation formats? installing php apc on rhel/centos yum up some packages: ``` yum install php-pear php-devel httpd-devel </td> </tr> </table> </div> . install apc using pear (the pear installer is smarter than the pecl installer): when the installer asks about apxs, say ‘no’. </p> <div class="wp_syntax"> <table> <tr> <td class="code"> ``` pear install pecl/apc </td> </tr> </table> </div> tell php to load apc: ``` echo extension=apc. some might suggest banning sticky notes from the office eepybird’s sticky note experiment from eepybird on vimeo. i have some experience with post-it notes in the office, and though that achieved international recognition, it doesn’t quite compare to what we see in this video. our , post-it notes just don’t compare the , we see slinking across the screen now. web form validation with jquery josh bush’s masked input plugin and paulo p. marinas’ alphanumeric are both jquery plugins to prevent input of invalid data in web forms. greensql | open source database security greensql promises to protect sql databases against sql injections. greensql works as a reverse proxy and has built in support for mysql. the logic is based on evaluation of sql commands using a risk scoring matrix as well as blocking known db administrative commands (drop, create, etc). css transformations in safari/webkit (and chrome too?) the cool browsers support radius corners, but safari supports css transformations that allow developers to scale, skew, and rotate objects on the page like we’re used to doing in postscript. and better than that, we can animate those transformations over time — all without any javascript. fire up safari or chrome and mouse over the examples here. the screencast at the top is from the menu on that page. there are, obviously, better uses for these transforms, but it’s easy to see it at work there. browser-based json editors jsonlint, a json validator, was the tool i needed a while ago to be able to play with json as format for exchanging data in some apis i was working on a while ago. and now i like json well enough that i’m thinking of using it as an internal data format in one of my applications, especially because it’s relatively easy to work with in javascript. or, at least that’s the promise. nfl powered by wordpress wordpress.com vip hosts some high-traffic sites, including gizmodo’s live coverage of the iphone g introduction. now that the nfl has selected the service for their blogging we’ll get a chance to see how they handle the superbowl rush. michael stephens teaching on wordpress mu michael stephens is now using wordpress mu to host his classes online, and that opening page is really sweet. it’s hardly the first time somebody’s used a blog to host course content, but i like where he’s going with it. we’re significantly expanding our use of wordpress at plymouth, and using it to replace webct/blackboard is definitely an option. the biggest difference may be that course content in blogs is public, by default, but content in blackboard is shared only with the members of the course. google’s own satellite it’s not truly “google’s own,” but the internet giant will get exclusive use of the images for mapping purposes, according to reuters: geoeye inc said it successfully launched into space on saturday its new geoeye- satellite, which will provide the u.s. government, google earth users and others the highest-resolution commercial color satellite imagery on the market. of course, google doesn’t need a satellite to watch us all very closely. thesis and f — two sweet commercial wordpress themes good work deserves compensation, but commercial themes are still unusual in the world of wordpress. the new themes directory has well over free themes listed, and the old directory had thousands of them. still, i like thesis and f . actually, i like a bunch of themes from graph paper press (get them all for $ !). and, as we see wordpress adding so many options that require theme support, the promise of free lifetime upgrades for thesis is also appealing. installing memcached on centos/rhel using info from centos forums, sunny walia and ryan boren, here’s how i got memcached running on my dotster vps: install libevent: ``` wget http://www.monkey.org/~provos/libevent- . e.tar.gz tar zxvf libevent- . e.tar.gz cd libevent- . e ./configure make make install ``` install memcached ``` wget http://danga.com: /memcached/dist/memcached- . . .tar.gz tar zxvf memcached- . . .tar.gz cd memcached- . . ./configure make make install ``` we will start the server to use megs of ram (-m ), listen on ip . want: canon’s eos d news of canon’s new eos d with iso sensitivity as high as , has my mouth watering. i used to push my black and white film so much that development times were as long as minutes (i bought super cheap asa and pushed it to ) just so i could get decent natural light. i leave my canon digital rebel set for and usually only remember to knock it back when i go outside and find i can’t shoot wide open. axiotron modbook: cool, but bad timing? the axiotron modbook is cool, i gotta admit, but with so many rumors of a macbook touch due this fall, i suspect that potential buyers might be holding their breath. but, on the other hand, those people have been waiting for a mac tablet since jobs killed the newton, and rumors of a tablet are hardly unusual — see , , , , , , . still, the whispers of an over-grown iphone device are getting a lot of echos lately. jon stewart vs. gop/sarah palin media machine dragonflyer x uav remote control helicopter is sneaky, awesome i so want one of these sweet draganflyer x helicopters. the two pound powerhouse can carry up to one pound of camera equipment, carrying it smooth enough to get decent video and stills. more videos are at the dragonfly website, including one which supposedly demonstrates that it’s quiet enough for wildlife photo work (scroll down and look for “hawk”). who knows how much it costs, but i requested a quote. automated website screen captures on os x i’m not sure exactly what i’ll do with it, but thanks to this tip about webkit png, i now know how to get screen captures of websites. maybe useful for archiving. who knows. wordpress cas integration plugin cas — central authentication service — has no logo, but it’s still cool. heterogeneous environments like mine offer hundreds of different online services or applications that each need to authenticate the user. instead of throwing our passwords around like confetti, cas allows those applications to identify their users based on session information managed by the cas service. it also obviates the need for users to offer their credentials to potentially untrusted systems — think externally hosted systems. bush trying to figure out how to invite volleyball team to white house sure, volleyball is the new gymnastics, so much so that the white house posted a picture of bush with olympians misty may-treanor and kerri walsh in their “news & policy” section. chalk it up to august being a slow news month. still, i can just imagine the old man telling laura “i think you should invite those volleyball girls to the house sometime.” and laura, i hope, responds: “you can watch them shake it on tv if you need another look. joshua longo’s longoland is full of fuzzy, but not cuddly animals brooklynite joshua longo‘s crazy animals are showing at the shelburne museum in vermont through october th. sweet for me: i’ll be in town this weekend. i’m hoping to check it out. are rock operas too weird for remixing? i love remixes, mashups, and covers. i love it when bad songs get good covers, i love it more when it’s a bad cover. i’m a fan of coverville and i get excited every time i find yet another version of smells like teen spirit (hey, this is just a sampling: lullaby version, patti smith, the bad plus, another jazz version, and another jazz version, a string version, no, two string versions, a tango, a damn chant version, some lounge thing, and one for the opium lounge). but i think i have yet to hear a decent cover or remix of a track from a rock opera. take one night in bangkok: sexing it up doesn’t help. you just can’t out rock a rock opera. (really, look for yourself.) it might help that chess featured a character loosely based on eccentric chess master bobby fischer, but rock operas just might be too weird for remixing. though…i’d like to be surprised. perhaps a folk version? can design save democracy? from the new york times: how design can save democracy …recently, the brennan center for justice at new york university school of law issued a report outlining the importance of well-designed, easy to understand ballots. duh. and, i guess we’re giving up on electronic voting. . million self-hosted wordpress sites and counting the huge problem with open source software is that there are no sales numbers to show how many people are using it. we know that wordpress.com hosts over three million blogs. we know edublogs powers nearly , . but how many sites are hosted using the original, downloadable, self-installed and managed version of wordpress? now, the automatic update notification system in wordpress gives answers to that question and others. most hugely: over . sweet drobo home raid i’m not sure who robin harris is, but he’s mighty sure home raid won’t fly. he’s just so certain that consumers are stupider than him and that vendors’ imaginations are as limited as his. and if harris was right, we’d probably still be using microprocessors and getting by on less than a megabyte of ram, because “nobody needs more than k.” too bad then that data robotics‘s drobo seems to do everything harris says home raid can’t. olpc origins: us and taiwan’s hardware lovechild olpc origins: us and taiwan’s hardware lovechild a deeper than expected history of the olpc’s development. part two of a three part series. ssd for my bacbook pro? sure, we can get a macbook air with gb solid state disk (ssd), but what about upgrading a macbook pro? ryan block put one in his mbp and got a second startup. ridata released a gb . “ sata ssd in january that looks compatible with my macbook pro. newegg has it for under $ . for comparison, however, a gb . ” spinning platter sata drive can be had for under $ . more web performance tips from steve souders hearing steve souders at wordcamp last week got me thinking about website performance, so i went looking for more. the slides from his wordcamp talk are online, but he gave a similar talk at google i/o which got videotaped and posted richer detail than his slides alone will ever reveal. also on his blog: use the google ajax libraries api when you don’t have a cdn, and a post that asks why make users wait to download all your javascript before they see the page if you’re only going to use % of it at first? commentpress comments the rights to my library technology report on open-source software for libraries have reverted back to me, so i’m posting the text online under a cc-by-sa license. more importantly, i’m using it as an opportunity to play with how longer-than-blog texts can be represented online. the institute for the future of the book has spent some time thinking about that very question, and their answer is commentpress, a theme for wordpress that enables commenting on each paragraph of a text and organizes posts into a book-like table of contents with the first (and oldest) posts on top. mysql performance monitoring tips from the mysql newsletter google turned this up, but i have no idea how old it is: how to monitor mysql’s performance. the war on photography amanda mooney posted a note about being told she needed corporate permission to take a picture in a store. mooney’s interest was in telling others how much she likes the products and the brand — exactly the sort of word of mouth advertising most brands are anxious for, but imagine some more pedestrian uses: what about the customer who wants a friend’s opinion about a new skirt? can that customer snap a cell phone pic to send? global voices on wordpress i hadn’t heard of global voices online, a community generated global group news blog, until jeremy clarke spoke of it at wordcamp. and i didn’t think the site, with it’s do-good premise, worked until i actually explored it for a while. but, well, it’s a bit fascinating. global voices grew out of a one-day conference in december at harvard law school which brought together bloggers from around the world to discuss ways in which the new medium could foment global dialogue at the grassroots level. quercus php to java compiler vs. wordpress emil ong is the chief evangelist and a lead developer for caucho technology, the developers of the quercus php to java compiler. the idea, i guess, is to write in php, deploy in java, which some people say is better supported by the “enterprise.” ong claims % performance improvement over apache + mod_php + apc. that sounds great, i suppose, but it’s less than what chris lea suggests is possible if you simply replace apache with nginx. chris lea on nginx and wordpress “apache is like microsoft word, it has a million options but you only need six. nginx does those six things, and it does five of them times faster than apache.” —chris lea. why? no forking. no loading of unnecessary components. fast cgi. and to prove it’s not as complex as you might think, he’s installing it live. the session has eight minutes left, can he do it? yes, he did. mark jaquith on wordpress security for plugin developers i’ve been pretty aware of the risks of sql injection and am militant about keeping my database interactions clean. mark jaquith today reminded me about the need to make sure my browser output is filtered through clean_url(), sanitize_url(), and attribute_escape(). furthermore, we all need to remember current_user_can(), check_admin_referer(), and nonces. steve souders on website performance steve souders: % of the problem is server performance, % of problem is browser activity after the main html is downloaded. he wrote the book and developed yslow, so he should know. javascripts are downloaded serially and block other activity. most javascript functions aren’t used at onload. we could split the js and only load essential functions up front, and load all the rest later. how much might that help? he says % to %. will norris on oauth and diso will norris talking about things oauth, openid, and diso at wordcamp. demonstrates/fakes an oauth authentication and authorization process with wordpress for iphone app. does this matter? oauth support is slated for wp . , and people are finally getting smart about linking all this stuff without throwing passwords around “like confetti.” aaron brazell on blog search and findability aaron brazell at wordcamp is talking about search and finability “not seo.” riffing on ambient findability, he asks: can people find your blog? can people find their way around your blog? can people find your content and services despite your blog? remember: your blog serves as a nexus for information about you. you serve as the nexus for trust and relevance. going further? make your social content outside your blog searchable, findable via your blog. johnny cash’ hurt not every song johnny cash has covered turned to gold (see personal jesus), but hurt is magic. copying mysql usernames and database priveleges now that i’m the nominal mysql dba for psu, it became my job to jimmy up the mysql user privileges so that the new web server could connect. i’m not sure if this is the fastest, most efficient way to do it, but it worked quickly enough: ``` create table mysql.user_copy select * from mysql.user; delete from mysql.user_copy where host not like 'old_host_name'; update mysql.user_copy set host = 'new_host_name'; insert into mysql. wordpress performance tips elliott c. back points to his use of object caching, wp-cache, and mysql query caching among the reasons why his site “is so much faster that yours.” the iphone apps i’ve kept catherine asked me what iphone apps i recommend, so i went looking. exposure, wordpress, and google mobile app are on the first page of my home screen. mocha vnc and band are buried a little deeper, but deserve mention. i’m surprised to say that loopt and whrrl disappointed me. ipint was good for one laugh, but it appears to be gone from the store already. morocco, a decent copy of othello/reversi is the only the game that’s still on my phone. lyceum vs. wordpress mu the news about buddypress has fully shifted my attention from single-blog wordpress installs to multi-user, multi-blog installs. wordpress mu is my platform of choice, but i was quite fond of lyceum when i first learned of it a while ago. the big perceived advantage of lyceum is that it uses a unified table structure for all blogs, rather than creating a new set of tables for each blog as wpmu does. most expensive iphone app yet? armin heinrich‘s $ i am rich iphone app is no longer available on apple’s app store. perhaps they felt too ridiculed by the register to keep it listed? heinrich says seven people bought it, two by mistake. so, now what’s the most expensive app? oauth and wordpress i just realized oauth support is slated for inclusion in wordpress . . it’s not in trunk yet, but that’s no reason not to get up to speed. scott gilbertson says oauth and openid are foundations to the open social web, giving apps like wordpress a “secure, centralized means of identifying yourself and a way to control who knows what about you.” chris messina, who says we currently treat user credentials “like confetti,” is more than a little excited and is building a series of wordpress plugins to take advantage of these formats. is my php script running out of memory? i’ve got a php script that sometimes just dies with no errors to the browser and no messages in the error log. i’ve seen this in the past with scripts that consumed too much memory (yeah, it should have issued an error, but it didn’t, and increasing the memory limit fixed it), but now the memory limit is set pretty high and i’m not sure i want to increase it further. macintosh antivirus software setting aside questions about the usefulness of antivirus software for macs, it appears virusbarrier (commercial) and clamxav (open source) are the best options. there are others, of course. added: avast offers a free version for macos x as well. drill and burn republicans john mccain thinks fuel efficiency is for sissies. i guess he figures our oil supply is infinite, or that fossile fuel consumption has no effect on climate change. he probably also thinks the holocaust was a hoax — somebody should ask him. for now let’s call him a “drill and burn republican.” low-tech hdr: black card mask i’ve been following Ásmundur’s use of multi-exposure hdr for a while, but today i discovered max chu’s use of an older, more crafty technique: black card mask. the photo below show’s Ásmundur’s multiple photo technique, but that above is chu’s. how he do it? apparently it’s about the same as dodging a photo in the dark room: simply block the light with a card or your hand. extra: paul butzi’s thoughts on dodging and burning in the digital age. diy fig rig mike figgis‘ fig rig works equally well for guys in sneakers and guys in suits, but they’re not free, which is why you have to love keith lewis’ diy version. pvc is sexy! displays: go long, go wide if you want more monitors than you’ve got dvi or vga ports, your options include adding a video card, using a usb-based display, or this matrox hack: a small box plugs into your computer’s monitor port, and two or three monitors plug into the box, no software drivers or additional hardware required. if you want to send a video signal further than your monitor’s cable, your options include getting a longer cable (works up to about ′) or get a different cable. everybody’s smarter in glasses eyeglasses certainly add something. at least that’s the suggestion of these ads. and, thinking of comparisons: hitler vs. chaplin. found via mirage.studio. , where they think le corbusier‘s glasses are where it’s at. i’m voting republican no, i’m not likely to vote for any republican candidates, but this is funny. from the producers: i’m voting republican is a satirical look at the likely outcome of another four years of republican government. the not-so-subtle message behind the film is the importance of a united bloc of citizens willing to take the time and effort to vote democrat in order to improve america’s domestic and foreign policy. podcamp boston is this weekend hey, podcamp boston is this weekend. i can’t go, but sean m. brown will be and he’s looking for librarians to join him. web application design book recommendation i’ve learned to ignore contests on the web. banner ads that promise prizes if i click the right pixel are the least offensive, but the contests that have me creating content (and then force me to give up my copyright to it) for another person’s gain infuriate me. so when i saw author and experience architect robert hoekman jr‘s post offering a deal, i quickly skipped to the next entry in my reader. wordpress . notes wordpress . is out. it’s cool. take a look: i’m most excited about automatic tracking of changes to posts and pages, but i’ll also probably come to like the “press this” feature: if you click “press this” from a youtube page it’ll magically extract the video embed code, and if you do it from a flickr page it’ll make it easy for you to put the image in your post. web development languages david cloutman pointed to craiglist’s job ads as an indicator of programming language popularity. here’s the hit counts for “web design jobs” and “internet engineering jobs” in the bay area: <td> php </td> <td> java </td> <td> ruby </td> <td> python </td> <td> perl </td> internet engineering jobs <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> web design jobs <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> cloutman has a few ideas for what the numbers mean, but i’m just entertained by the data. wordpress . plugin and wp-config.php path changes ozh’s tutorial explains the details, but the short story is that we’ll soon get wp_content_url and wp_content_dir constants. and this is more than just convenience, . allows site admins to put those directories anywhere they want, so the constants will be the only reliable way of finding that info. truth have you ever argued with a member of the flat earth society? it’s futile, because fundamentally they don’t car if something is true or false. to them, the measure of truth is how important it makes them feel. if telling the truth makes them feel important, then it’s true. if telling the truth makes them feel ashamed and small, then it’s false. –from louis theroux‘s the call of the weird site back online, further downtime expected this site and a number of other projects are hosted on a mac mini that normally sits on my desk. thing is…my desk moved. and, unfortunately, i didn’t confirm the firewall rules for the network in my new office before bringing the machine over. thankfully chris was happy to put the mini on a different vlan, and that solved everything (my other machines remain on the new “secure” network…ugh). in the no too distant future, however, i’ll be moving the site again. video game controller family tree sock master did some outstanding work tracing the lineage of video game controllers from to now without missing any of the weirdness in between. search trends vs community standards via motherjones: pensacola residents clinton raymond mccowen and kevin patrick stevens, producers of a very nsfw website last week faced a judge in an obscenity and racketeering trial for their work. the interesting thing? the defense planned to use google search trends to demonstrate community standards. “time and time again you’ll have jurors sitting on a jury panel who will condemn material that they routinely consume in private,” said the defense. censorship, unpublishing, and new media the actual reasons may never be discovered, but boing boing, the perennially top ten ranked blog, has “unpublished (nsfw)” stories by, about, or mentioning author and sex columnist violet blue (nsfw). much has already been said about the orwellianism of “unpublishing” and how it conflicts with the ethics of the web, as well as the incongruence between these actions and boing boing’s position on web censorship, media manipulation, and revisionism. new theme for the past year or so i’ve been wanting to design a non-bloggy theme for this site — a beautiful theme with a magazine-like front page showing the most recent post in a handful of categories. but i’m further from it now than last year, so it’s time to move on. which isn’t to say that i settled for my new theme. it’s based on neo-sapien by small potato. i made it a bit wider, the header a bit shorter, and the image is random-ish (random, but cached). wordpress survey tools lorelle and samir both point to a number of plugins to do surveys within wordpress, but neither of them say any of them are that good. and samir is pretty disapointed: “at the end of it all, i never did find my ideal online survey tool.” survey fly is the best recommendation from both of lorelle and samir, but it isn’t wp . compatible and was las updated in summer . it’s also limited to tracking only one survey at a time. optimizing inserts/updates on mysql tables when doing a bulk insert/update/change to a mysql table you can temporarily disable index updates like this: ``` alter table $tbl_name disable keys ``` …do stuff… ``` alter table $tbl_name enable keys ``` from the docs: alter table ... disable keys tells mysql to stop updating non-unique indexes. alter table ... enable keys then should be used to re-create missing indexes. truemors powered by wordpress in the “they did this with wordpress” category (though from about a year ago, sorry) comes truemors, a digg, del.icio.us, reddit clone from guy kawasaki. calling it a clone might be a backhanded non-compliment, but the truth is that it does a credible job in this increasingly crowded space*. and it’s built on wordpress. the relevant plugins are wp-postratings and share this. electric pulp did the design, and the whole thing apparently went live quickly on a tiny budget. kitty porn newton isn’t really a kitten, but he is cute. anyway, i got a new video camera and all i’ve done with it so far is shoot closeups of a cat. is that why i got it? at least it’s not as bad as this. music is jungle struttin’, by the lions. programming vs. today’s computer architecture poul-henning kamp, the guy behind the varnish reverse proxy, talks about programming: it used to be that you had the primary store, and it was anything from acoustic delaylines filled with mercury via small magnetic dougnuts via transistor flip-flops to dynamic ram. and then there were the secondary store, paper tape, magnetic tape, disk drives the size of houses, then the size of washing machines and these days so small that girls get disappointed if think they got hold of something else than the mp player you had in your pocket. mysql bug? after an upgrade to mysql . . b on rhel i started seeing curious results in a fairly common query. here’s a simplified version: ``` select id, post_date_gmt from wp_posts group by id order by post_date_gmt desc limit ``` what i expected was to get a handful of post id numbers sorted in descending order by the post_date_gmt. instead, i got a list of post ids sorted in ascending order by the id number. huh. i wonder what he thinks about the iphone g? david lynch doesn’t like the iphone. at all. at least not for watching movies. maybe the guy doesn’t take the subway much. abandoned malls what is it about abandonment that’s so compelling? from chernobyl and pripyat to mental hospitals to lost theme parks from korea to california, we can’t help but stare at darkly vacant buildings. now add malls to the list. and put south china mall, in dongguan at the top of it. unlike most every other expanse of empty hallways we can name, this one’ been empty since it opened in . .shp to mysql gis data seems to come in .shp (shape?) files, but it’s not like mysql knows what to do with those. this mysql forum post points to a php tool and windows executable that promise to convert the .shp data into something more useful to mysql. superfluo explains a little more, and there’s lots of .shp data to be had here. dear steve i’m really glad to see the news about the iphone g. i’m interested in how the new mobile me service takes a small step toward cloud-based storage services that i’ve wanted for a while. and the news that max os x . “snow leopard” will focus on speed and stability, rather than features is good, especially considering the following. you see, i’m a fan of apple products. not because i like the brand, but because the products work for me. could buddypress go the distance? facebook and myspace are trying to turn themselves into application platforms (how else will they monetize their audience?). google is pushing opensocial to compete with it. but no matter what features they offer their users, they user still orbits the site. scot hacker talks of buddypress changing the game, turning “social networks” from destination websites, to features you’ll find on every website. and the “social network” is the internet, with all those sites sharing information meaningfully. detecting broken images in javascript we’ve become accustomed to link rot and broken images in nearly all corners of the web, but is there a way to keep things a bit cleaner? k.t. lam of hong kong university of science and technology came up with this sweet trick using jquery and readystate to find and replace broken images: ``` jquery('span#gbs_'+info.bib_key).parents('ul').find('img.bookjacket[@readystate*="uninitialized"]').replacewith('<img src="'+info.thumbnail_url+'" alt="'+strtitle+'" height=" " width=" " /'); ``` and it works really well, but only in ie. find stuff by minimum bounding rectangle mysql offers envelope() to find the minimum bounding rectangle of a geometric object. the result is a polygon with four segments, defined by five points. it took me a while to make sense of it, partially because the only documentation that i’ve run across so far for polygon() syntax is in the envelope() function mentioned above. i also had to draw a picture to think it through. they write this: polygon(( minx miny, maxx miny, maxx maxy, minx maxy, minx miny )), i think this (in pseudocode-ish form): polygon(( $point_a, $point_b, $point_c, $point_d, $point_a )), with the $point_s corresponding to the diagram. working with spatial data in mysql it’s mysql spatial data week here, though i am spreading out the posts to, um, ease the pain (or boredom). anyway, here are some commands/functions i don’t want to forget about later: start with an existing table called geometry, add a spatial column and index it: ``` alter table geometry add coord point not null; create spatial index coord on geometry (coord); ``` insert some data; think in terms of point(x y) or point(lat lon): bsuite beta i announced the bsuite public beta not long ago, now i’ve just posted a new version to svn that addresses some of the bugs and fleshes out some of the features. i have yet to update the bsuite page, but here’s a preview of what’s new or changed: additional stats reports wp . -style tag input tools on the page edit screen* wp . -style category selector on the page edit screen* wp . calculating distance between points in mysql mysql has some powerful, and perhaps underused spatial extensions, but the most interesting functions are still unimplemented: “note: currently, mysql does not implement these functions…” among those as-yet unimplemented functions is distance(). alternatives can be found here and here, though neither is clean or simple. i wonder if a simple mbrcontains() is good enough, though… anticipating steve jobs’ wwdc keynote will it be a thinner or fatter iphone? will it record live video? will it have a metal cutting laser? to heck with the iphone rumors. we know the story, all we’re waiting on are the details. i’m more interested in what we don’t know. what aren’t we expecting? will there be “one more thing”? (thanks to roblef for the sweet photo.) mysql documentation found in the mysql . reference manual: related(g ,g ,pattern_matrix) returns or to indicate whether the spatial relationship specified by pattern_matrix exists between g and g . returns – if the arguments are null. the pattern matrix is a string. its specification will be noted here if this function is implemented. (emphasis mine.) converting a wp.org site to wpmu i have a lot of wordpress sites i manage and i’ve been thinking about converting them to wordpress mu sites to consolidate management. today i attempted the first one, about.scriblio.net. there’s no proper way of doing it that i found, but here’s what i did: create a new site in mu create the users in the correct order (user id numbers must match) replace the posts, postmeta, comments, terms, term_taxonomy, and term_relationship tables with those from the original blog copy the contents of wp-content/uploads to wp-content/files update the posts table with the new path (both for regular content and attachments, see below) hope it all worked somebody is likely to say “just export the content in wordpress xml format and import it in the new blog,” but that person doesn’t use permalinks based on post_id. bsuite public beta i’ve had a lot of features on the table for bsuite for a while, but this recently discovered comment from john pratt (whose smorgasboard.net is a lot of fun), kicked me into gear to actually get working on it again. the result is bsuite , which is probably what bsuite should have been all along. the big news is that i’ve finally revamped stats tracking to work with caching mechanisms like wp cache, wp super cache, varnish, or whatever else. json on rhel & php . . stuck with php . . on rhel or even centos (and a sysadmin who insists on using packages)? need json? i did. the solution is easy: yum install php-devel<br /> pecl install json the pecl install failed when it hit an mb memory limit, and i was clueless about how to fix it until i learned that the pecl installer ignores the php.ini. turns out the best solution is to use the pear installer (which does follow php. happy birthday wordpress wordpress was released to the world five years ago today. celebrate in sfo, sydney, or with me at whatever bar i find myself at in new hampshire tonight. dm me with any ideas. another gun control analogy “gun control is like trying to reduce drunk driving by making it tougher for sober people to own cars.” via many eyes, bugs being shallow, all that wordpress . . added a really powerful feature to register_taxonomy(): automatic registration of permalinks and query vars to match the taxonomy. well, theoretically it added that feature. it wasn’t working in practice. after some searching yesterday and today, i finally found the bug and worked up a fix. i made a diff and set off to open a ticket in trac. on the one hand i’m glad i searched first, because it turns out that a ticket on the very same issue was opened on may th and it already has a fix. where do they find the time? clay shirky recently posted (wayback) a transcript of his web . expo keynote. …if you take wikipedia as a kind of unit, all of wikipedia, the whole project — every page, every edit, every talk page, every line of code, in every language that wikipedia exists in — that represents something like the cumulation of million hours of human thought. then shirky asks us to compare that to television. roflcon turns me on to ustream.tv i was amused to learn nathan was officially at roflcon on behalf of his library. i wasn’t representing my work and wasn’t on the lookout for work-related tools, but i found some anyway. universities have been anxious to get into live video casting for a while. our first effort eventually became pbs (net, ets and pbs histories). later, we invested huge amounts of money in interactive television (itv), but enormous costs and complexities limit the use of such facilities. anglia ruskin university faces criticism . anglia ruskin university is in cambridge, but it’s not cambridge university. it’s likely that none of us would even know of anglia ruskin‘s existence if it wasn’t for naomi sugai, but she’s not interested in promoting the school. she’s got complaints, she’s fed up, and she’s taking her case to youtube. well, she took her case to youtube, and then she got suspended. the video that’s up now doesn’t seem suspension-worthy, but the telegraph story suggests there’s a different version that may slander an aru administrator, and that’s the reason aru gives for suspending her. honda civic ipod/iphone install last weekend, while i was putting an ipod interface into my scion i did the same thing for my honda civic. using ben johnson’s story as a guide, i bought a pie hon -aux interface and dove in. aside from tools (screwdrivers and and mm sockets), you’ll need: the interface adapter audio wiring — i used a ′ rca to / th inch cable from radio shack power — i used a belkin car charger plugged into this v extension cord i picked up from radio shack i also recommend a sufficient quantity of good beer or other beverage. snakes on a plane it was only after i’d taken my seat and david weinberger began his roflcon keynote that i realized there was a box of t-shirts at the side of the room with a sign over them that said something along the lines of “free: t-shirts from worn out memes.” thinking that the internet might be old enough now that the old memes might be resurrected in some ironic way, i almost jumped over jessamyn to rifle through the box and claim a prize. retro atari video game cover art sure you played asteroids and defender, but did you play these? scion xb ipod/iphone install based on this story about an ipod interface install i purchased a pie toy -aux aux input adapter so i could finally listen to my iphone without using the lousy fm transmitter. sure, i coulda bought a new car, as the manufacturers seem to have finally come to their senses and started including such inputs, but i refuse to buy another car until i can have one that gets well over mpg. barbed wire, the deeper history of it turns out that, like most everything else, barbed wire shows up at auctions. not just shiny new stuff, you’ll find used stuff too. expect it to be at least a little rusty, and look out for clumps of hair or other things stuck to it. whether that adds value or not is unclear. where could we look to find out? the antique barbed wire society‘s barbed wire collector magazine might be your best source. my flickr complaint some whine about movies on flickr, others about the switch to yahoo ids, i simply want better rendering of transparent pngs as jpgs. cats want to eat your brains nyt: parasites in your brain are driving you to raise cats in hopes that they eat you. hat tip to cliff. flickr adds video i asked for it in , before youtube, vimeo, viddler, or revver appeared on the scene, and before myspace and facebook added video sharing as a feature. four years later they finally added it. neil rickards should get credit for creating the theme of “long photos” (neil called them “moving photos”). and anybody who was around then isn’t the least surprised at how angry some are now about the new feature (see sarcastic response to that). the internet, according to mememolly identity management going commodity? atlassian’s crowd sso and idm solution has the kind of online pricing you’d expect for word processing software. i don’t know if it’s any good, but it’s a sign that identity management getting boring. why can’t i re-check spam with akismet & wordpress . ? (workaround) i recently installed wordpress . and among the changes i noticed was a loss of akismet‘s “recheck spam” button (or something like that. it didn’t seem like such a problem at the time, but then i got swamped with so much trackback and comment spam that the flood dos‘d my server. i had to disable comments and trackbacks for a time, which brought my server back, but my moderation queue still had over comments waiting for me. christian nymphos not that you’d mistake our sites, but christian nymphos uses the same theme i use here at maisonbisson. well, i modified the theme quite a bit for my use, but…. well, regarding the title of the site: pastor bob snowdon probably approves of any and all efforts to reclaim “nympho” from its pejorative purgatory. cargo aircraft safety who knew fedex and ups planes crashed so often? (blame the intronetz for making this too easy to discover.) ups plane catches on fire, lands in philadelphia ( ). apparently the source of the fire remains a mystery, as with a few other ups fires. fedex planes have crashed and burned in tallahassee ( ) and memphis ( ). in a fired fedex pilot attempted to murder flight crew with hammer and hijack the plane. swift: another ham handed attempt at social networking all yesterday and this morning i’ve been seeing tweets about swift, so i finally googled it to see what it was about. the service promises to help organize conferences in some new . way, but it looks to be about as preposterous a social network as walmart’s aborted attempt at copying myspace. there are some real lessons here, however, about how to court the early adopters that are essential to making an application that depends on user activity successful: wordpress . out, maisonbisson upgraded wordpress . is out (and the wordpress site got a facelift), and i’ve already upgraded maisonbisson using svn. the changes are exciting, and seem to reflect a tradition that’s developing in wordpress of delivering some really revolutionary features in the x. release. the loss of file-based object caching was a bit of a problem, as my vps‘s load average jumped to over pretty quickly after the upgrade. i tried mark jaquith‘s apc-object-cache enabler and saw load average drop back to or so, but i also saw tag and category names disappear and discovered other weirdness. make your own sign i had fun with the signs in taiwan (jet powered baby stroller and men’s bathroom signs, for example), but why travel around the world for these things when you can make them at home? create warning signs, protest signs, church signs, library catalog cards, or whatever. tibet open letter and other innovative uses of wordpress all things digital is interesting. parents would say my baby our baby.com is a little more important. but tibet open letter is as real as the violence. two things to note: all of them are based on wordpress, and those who discuss tibet probably risk being listed by the chinese government as a trouble maker. evil google aaron swartz‘s bubble city, chapter : he sent the report to his superior and wandered off for a bit to dwell on the power he had as a faceless person deep inside an office park in mountain view to know every detail of another person’s life. he wondered what it would be like if he came across that person on the street, he would know every detail of his life, his household budget, the secrets he confided over im, even what he looked like naked. interesting wordpress plugins wp contact manager turns wordpress into a contact manager. it’s a combination of theme and plugins (including custom write panel) that allows you to enter and manage contacts as blog posts (familiar, eh?). use members only to secure access. tdo mini forms “allows you to add highly customisable forms to your website that allows non-registered users and/or subscribers (also configurable) to submit posts. the posts are kept in ”draft“ until an admin can publish them (also configurable). best restaurant in taipei i ate here. it’s every bit as good as the review suggests. seb’s description and photos tell more, i’ll post my own photos soon. update: posted. short story: there’s a restaurant in australia with a three month waiting list, but a sydney morning herald reporter says the restaurant i ate at is its equal or better, but without the waiting list and at us$ per meal. google pagerank is/is not/is all machine generated google’s always been in the awkward position of claiming that pagerank is algorithmic, not editorial, while also explaining that they’re constantly adjusting their algorithms to ensure that pagerank reflects editorial judgments of quality. here’s a peek inside the machine. zach houston’s poem store walking north on valencia i heard the characteristic snap snap snap of an old manual typewriter’s hammers striking paper on the platen. i was more than a bit curious about who might still use such a classic machine even before its operator called out to ask if i wanted to buy a poem. still, it’d been a full day exploring the mission with a fabulous host and the time for my flight home was nearing. no mo w stolen from jessamyn‘s photostream. where the previews are i announced yesterday scriblio‘s integration of google’s new book viewability api that links to full text, previews, or additional book information (depending on copyright status and publisher foresight). now that it’s live with plymouth’s full catalog, i spent a moment browsing the collection and taking note of what books had what. i get no preview for a baby sister for frances, but another of russell hoban‘s books, a bargain for frances. scriblio integrates google book search links (crossposted at scriblio.net) using the newly released book viewability api in google book search, plymouth state university’s lamson library and learning commons is one of the first libraries to move beyond simply listing their books online and open them up to reading and searching via the web. take a look at how this works with books by plymouth authors bruce heald and joseph monninger. the “browse on google” link in the new features section leads to extended previews of their works where you can browse excerpts of the books and search the full text. great name, but is it any good? “spork” is a great name for a restaurant, but is it any good? yelp says it is, but most of the reviews mention the burger, putting me in the position of having to review the reviewers and wonder if a hamburger person can recommend a restaurant to a vegetarian. not that i am a vegetarian or not a hamburger person, but please tell me there’s more to the retrofabulous-looking place than a cool name and a hamburger. geographic tweeting twittervision and twittermap show new tweets wherever they appear on the map, twitterwhere let’s you follow tweets at a specific location, and ask people has nothing to do with twitter but does show you global opinion. live. while you watch (so they say, anyway). warming if this doesn’t warm your heart, check to see that it’s not made of stone. netflix for audio books netflix for audio books: simply audiobooks. though it makes me wonder why we don’t say “like a library for audiobooks where they send you the stuff you want.” wordpress . offers built-in gravatar support nobody doubted that full gravatar support would make it into wordpress eventually. weblog tools collection shows what they look like, how they’re managed, and how theme designers can implement them. quaint vs. libraries this slashdot post asks the same question a lot of people do: “can libraries be saved from the internet?” slate has an interesting photo essay exploring the question of how to build a public library in the age of google, wikipedia, and kindle. the grand old reading rooms and stacks of past civic monuments are giving way to a new library-as-urban-hangout concept, as evidenced by seattle’s starbucks-meets-mega-bookstore central library and salt lake city’s shop-lined education mall. buddypress: the wordpress of social networks? andy peatling, who developed a wordpress mu-based social network and then released the code as buddypress has just joined automattic, where they seem to have big plans for it. i’d been predicting something like this since automattic acquired gravatar: it’s clear that the future is social. connections are key. wordpress mu is a platform which has shown itself to be able to operate at internet-scale and with buddypress we can make it friendlier. parse html and traverse dom in php? i spoke of this the other day, but now i’ve learned of php’s dom functions, including loadhtml(). use it in combination with simplexml_import_dom like this: ``` $dom = new domdocument; $dom->loadhtml(' one two three sublist item ' ); if($dom){ $xml = simplexml_import_dom($dom); print_r($xml); } parse html and traverse dom in php? i love how easily i can traverse an html document with jquery, and i’d love to be able to do it in php. there are a few classes, but the php binding for tidy seems to be where it’s at. the zend dev pages make it look that way, anyway. movable type to wordpress scot hacker (yes, that’s really his name) posted a story about migrating china digital times (published by berkeley school of journalism) from movable type to wordpress: we’ve launched with a lovely new design, reduced story publishing times from by orders of magnitude, been able to re-enable a bunch of features we’d previously had to disable for load reasons, and added new features that were never possible before. the team of authors and editors is in heaven, and i’m considering bringing the site back onto the main j-school server. scriblio feature: text this to me take note of the “new feature: text this to your cellphone” line above. adam brin of tricollege libraries explained that the “text this to me” feature he built to send location information about items in the library catalog as text messages to a user’s cell phone is being used as many as times a day. that was the news i needed to decide to offer the feature in psu’s scriblio implementation. web design frameworks? i’m a fan of the sandbox wordpress theme because it does so much to separate application logic from design, and a few small changes to the css can make huge changes to the look of the site. i think that’s the idea behind yahoo! developer network’s grids css library. that is, well structured html allows very sophisticated styling. all you have to do is plug in your content. to wit: give up your civil rights (and your laptop and hard drives) at the border can the feds take your laptop? yep. be prepared to give up your civil rights and your laptop at the border, says a recent article in the washington post. this came to the attention of music fans earlier, when mtv news reported that a hard drive seized at the border contained studio recordings for chris walla’s (guitarist for death cab for cutie) latest album. there was some suggestion that it was all a publicity stunt, but the post story suggests that it’s a real and not uncommon problem. apache reverse proxy apache mod_proxy does most of the work, nick kew’s howto on running a reverse proxy with apache explains it. now, can i tack on some authentication and make it replace iii’s wam or ezproxy? moscow subway’s underground palaces photographer farflungphotos describes: all the stations in moscow’s metro are completely different from one another. some of them are so opulent, with grand marble halls and chandeliers, all hidden away underground. people seemed to be using them as places just to hang out and meet up with friends. the trains were really frequent too, practically on each others tails. you never have to wait more than a few minutes for one to come along. western north carolina library network’s classification outline western north carolina library network‘s lc outline is full of detail. lc outline, classification, western north carolina library network, libraries changes to wordpress object caching in . jacob santos‘ funcdoc notes: the wordpress object cache changed in wordpress . and removed a lot of file support from the code. this means that the object cache in wordpress . is completely dependent on memory and will not be saved to disk for retrieval later. the constant wp_cache also changed its meaning. i’ve just started using the object cache and i’m happy with how it works now, so these changes are somewhat concerning. iphone strobe light strobe light is clearly the perfect app for your new gb iphone. mysql on multi-core machines the devshed technical tour explains that mysql can spawn new threads, each of which can execute on a different processor/core. what it doesn’t say is that a single thread can only execute on a single core, and if that thread locks a table, then no other threads that need that table can execute until the locking thread/query is complete. short answer: mysql works well on multi-core machines until you lock a table. looking ahead from : top tech trends i’m excited and honored to be joining meredith farkas and david j. fiander in a roundtable discussion of top tech trends, an olita program at superconference. we’ve made a pact not to share our trends with each other in advance (no peeking), so it’ll be interesting to see how much overlap we have and how differently we approach the issues where we do have overlap. sophistication the search box with its flashing cursor is a powerful tool, but it’s positively pre-cambrian when compared to our hyper a/v culture. ola superconference presentation: scriblio i’m honored to be invited to the ontario library association superconference to present my work on scriblio today (session # ). a pdf of my slides is online. scriblio has had about a year of use in production at each of three sites, and the lessons suggest that web . technologies really do work for libraries. and the best news: we can do it without breaking the budget: i’ll be demonstrating how to install scriblio and reinvent a library in about ten minutes. microsoft threatens to buy yahoo! i like yahoo!. i really hope the shareholders decline microsoft’s offer. blech, ms has wanted a piece of yahoo! for a while. never forget, - - paranoia if it’s not an american flag, it’s probably a bomb. what do coots eat? turns out that coots are omnivorous, but prefer plant matter. why. forget time capsule, i want a space ship apple’s time capsule is great. seriously. when has backup been easier? but i need more. the macbook air’s small storage highlights a problem i’ve been suffering for some time: there’s never enough storage. the slower processor and limited ram expansion are sufferable, but storage isn’t. the gb drive in my macbook pro now is stuffed with gb of music (and that’s after spending hours paring it down a few weeks ago), and almost gb of pictures. camera found in cab starts digital goose chase what would you do if you found a camera in a cab? lcsh news: “mountain biking” replaces “all terrain cycling” even though mountain bike sales and participation are down (as a percentage of market share, biking has been declining for ten years), the library of congress has just issued a directive to change the subject heading from “all terrain cycling” to “mountain biking.” the term was apparently first coined by charlie kelly and gary fisher in . stephen king doesn’t hate kindle stephen king writes at entertainment weekly.com that he doesn’t hate the kindle: will kindles replace books? no. and not just because books furnish a room, either. there’s a permanence to books that underlines the importance of the ideas and the stories we find inside them; books solidify an otherwise fragile medium. but can a kindle enrich any reader’s life? my own experience — so far limited to . books, i’ll admit — suggests that it can. mcqualifications bruce pechman earned his credentials, but you could get yours at mcdonald’s. yes, the fast food chain is apparently offering diplomas in britain now. dangerous grains call for drastic measures “the office of emergency management, the new york city fire department, department of buildings, nypd, health department, and department of agriculture” all apparently showed up to evict tenants from a building called the “kibbutz” in the williamsburg section of brooklyn. why? “dangerous grains,” and a matzoh bakery. it’s been labeled matzo-gate, and speculation is rampant that the eviction was spurred by developers eyeing the now fashionable neighborhood. gothamist has a picture. apache, mysql, and php on macos x p ps harlow tweeted something about trying to get an amp environment running on his mac. conversation followed, and eventually i sent along an email that look sorta like this: if you’re running . (i doubt it, but it’s worth mentioning because i’m most familiar with it), here’s how i’ve setup dozens of machines for web development and wordpress: install mysql http://dev.mysql.com/downloads/mysql/ . .html#macosx-dmg install marc liyanage’s php package usability experts are from mars, graphic designers are from venus this an old one, but it just caught my atention. in a list apart tells us usability experts are from mars, graphic designers are from venus. is this still true? haven’t the last several years been about the triumph of good design in both the usability and graphic senses? or are rounded corners not actually useful? dancing with the nerds richard stallman‘s soulja boy dance, mit style (via). wordpress to_ping query optimization the wordpress team has taken up the issue of performance optimization pretty seriously, and i look forward to the fruits of their efforts, but i’m also casting a critical eye on my own code. thanks to caching and a hugely optimized query architecture, scriblio is now performing better than ever, and i’m now looking at the next tier of problems. first among them is a wordpress query that runs to find which posts have pingbacks or trackbacks waiting to be processed. this would _so_ cramp my style the new hampshire house is considering a ban on texting while driving. please, no. even cheetah moms have to argue with kids about dinner mother cheetah wants kids to learn to hunt gazelle, but cubs want to nuzzle it. signs of user-centric shift at ces? doc searls in linux journal compares previous ces expos to and finds a shift from talk of “broadcasters and rights-holders extending their franchise” to a web . enlightened user-centricity. at every ces up to this one, i always felt that both open source and user-in-charge were swimming upstream against a tide of proprietary “solutions” and user lock-in strategies. this year i can feel the tide shift. lots of small things point toward increased user autonomy, originality, invention and engagement. introducing phonepedia, a voice-activated wikipedia mashup the phonepedia concept is simple: take wikipedia’s rich content and add voice recognition. it’s as easy as calling a number and asking your question, the answer will be returned via sms and email. go ahead and try it for yourself. phonepedia. the voice recognition is powered by jott, and thanks are due to heidi for writing so glowingly about it (cluetrain moment: i’d heard about jott before, but hadn’t been stirred to look at it until i saw heidi’s post speaking in the voice of a real person). like mr. ranganathong said… like mr. ranganathong said: “the intellect cannot be tied down with a decimal thong.” (via) i can haz ice cream and booze? this thread says you can get booze and ice cream in the same joint! places to know in nyc: otto, the chocolate room (beer & wine only?), chikalicious, clinton street baking company, blt burger, homer’s, and liquor & ice cream. staring contest shirow masamune himself couldn’t draw manga eyes like hers. google pumps openid too following news that yahoo! is joining the openid fray, it appears google is dipping a toe in too. while those two giants work out their implementations, others are raising the temperature of the debate on idm solutions. stefan brands is among the openid naysayers (<a href="http://daveman .livejournal.com/ .html” title="david recordon’s blog - stefan chooses to take the “fox news” approach to openid blogging">david recordon’s response), while scott gillbertson sees a bright future. let’s watch the openid directory to see how fast it grows now (count on january : ). harvard film archive’s wild movies of s pre-code films were apparently something of a spectacle. harvard film archive this weekend is exploring their depths in a series titled vice vs. virtue. just in case anybody else wond… just in case anybody else wonders why a wordpress initiates extra mysql activity http://tinyurl.com/ nkplo balloon organ, yes, a balloon organ in a piece that will have some people eagerly looking for some afro celt sound system, others singing where do they make balloons, and some people just shaking their heads, this fellow, apparently standing in his bathroom, introduces us to another guy and his balloon organ. really. check this for more homemade organ fun. eccentric chess champ bobby fischer dead eccentric, perhaps persecuted, bobby fischer is dead. news story. wordpress + invalid urls = extra database queries after reporting weirdness last week i finally sat down with a completely clean and virgin install of wordpress . . and traced what happens when you make a permalink request for a non-existent url. here are two sets of urls to use as examples and context: these are valid urls: http://site.org/archives/ http://site.org/page-name these are _not_ valid urls: http://site.org/archivezorz/ http://site.org/favicon.ico valid urls get parsed, the expected mysql queries get executed, and the results are processed and returned to the browser. yahoo! pumps openid ars notes that yahoo! supports openid. yeah, that openid. southwest’s in-flight magazine doesn’t suck, they say derek powazek likes it, but is it worth flying southwest for? @jblyberg: i had to look it up… @jblyberg: i had to look it up a while ago too http://tinyurl.com/z sg sifting results of error_log( … sifting results of ``` error_log( $_server['request_uri'] ."\n". $_server['remote_addr'] ."\n". print_r( debug_backtrace(), true ) ); ``` trying to figure out why wp hi… trying to figure out why wp hits db for all posts query _after_ it determines the url is a is facebook really the point? a post to web lib alerted me to this u mich survey about libraries in social networks (blog post) that finds % of students don’t care for or want libraries in facebook or myspace. the biggest reason being that they feel the current methods (in-person, email, im) are more than sufficient. % said no because they felt it was inappropriate or that facebook/myspace is a social tool, not a research tool. @tinfoilraccoon: take the pled… @tinfoilraccoon: take the pledge: http://tinyurl.com/ x qye @tinfoilraccoon: is it really … @tinfoilraccoon: is it really so complex that it requires training? pls tell them amazon and itunes don’t require training, ask why od does. fancy up your website with web clip icons aaron schmidt alerted me to this how to sweetening up your site with fancy iphone web clip icons. impeach cheney now you’ll feel better after signing the petition. bits of mysql query syntax i’ve learned this week watching the wordpress hacker list this week, a couple messages related to selecting information about users schooled me on mysql syntax. i obviously knew the following would work, but i’d previously used the union syntax in similar situations and somehow hadn’t thought of writing it this way: ``` select (select meta_value from wp_usermeta where meta_key = 'first_name' and user_id = ) as first, (select meta_value from wp_usermeta where meta_key = 'last_name' and user_id = ) as last, wp_users. user posts antisemitic content… user posts antisemitic content to wikipedia, then crosses out my comment in the requests for deletion page!?!? http://tinyurl.com/ytt zh @edventures: their hardware an… @edventures: their hardware and operating system operations are getting squeezed. they’ve gotta look elsewhere. i like mysql. i like sun. this… i like mysql. i like sun. this could work well: http://tinyurl.com/yr rl tried sleep, failed. surfing w… tried sleep, failed. surfing web oniohone in bed while sandee sleeps soundly. just a tiny example of a commu… just a tiny example of a community trying to figure out its boundaries http://tinyurl.com/ytt zh drove home clicking iphone map… drove home clicking iphone maps locate button like walt mossberg on meth. works great in cities, crap in woods new iphone maps locate circle … new iphone maps locate circle has yet to locate me macbook air is sealed like ipo… macbook air is sealed like ipod. can’t replace battery, no ram upgrades. iphone update finally download… iphone update finally downloading. not leaving office until i get a locator button on my maps. iphone update server overloade… iphone update server overloaded nh primary fraud? two very important things: i have every confidence that the nh primary results were correct and accurate, and, most importantly, unmolested. and, i’m also quite happy with them. but that doesn’t mean i’m not anxiously awaiting the results of the hand recount that congressman kucinich has requested. conspiracy theories abound, and diebold is a despicable company worthy of general derision, but at least our accuvote os machines have paper ballots. @awd: wasn’t sure if there was… @awd: wasn’t sure if there was a specific meeting your sarcasm was directed toward, though i’ve been following the drama all along @mstephens : bring cigars and … @mstephens : bring cigars and ask if prez has has scotch in the office? getting ready for the stevenote i can’t go to the parties laughing squid names, and world of apple’s live video coverage seems about as likely as a kucinich becoming president, but the unofficial apple weblog‘s keynote predictions are out, ars’ keynote bingo is set, and half the blogaverse will likely offer some updates about the action, some of them live. the stevenote is coming, and at the end of the day, or at least later that day, it’s likely that apple will broadcast the recorded event in quicktime (judging from this url, you might find it here). dead men don’t cash checks virgilio cintron was the happiest corpse in the city… chris “long tail” anderson on open source open source and the long tail: an interview with chris anderson the shift of software from the desktop to the web will really be the making of open-source software. the long tail side of software will almost certainly be web-based because the web lowers the barriers to adoption of software. there will always be some software best delivered as packaged bits. but the big problem with packaged software–or one big problem–is the risk associated with installation. how do i create a semantic web site? a member of the web lib mail list asked: how do i create a semantic web site? i know i have to use either rdf or owl but do i use either of these to create a mark up language which i then use to create the web site or, with the semantic web do we move away from mark up languages altogether? am i right in thinking that owl and rdf do not contain any information on how the document is to be displayed or presented? live in mehran karimi nasseri, sanjay shah and alex ervasti all made their names living in airports. now, comedian mark malkoff is hoping his one week stay at the paramus, nj ikea store will do the same. the state of democracy what does it mean about the state of democracy when viral video darling obama girl amber lee ettinger shows up in nh? and chuck norris too? (chuck norris political facts.) it probably surprises no one that kucinich’s press secretary’s year old daughter is more articulate than amber and chuck combined. ugh. wordpress admin redesign progress happy cog‘s liz danzico introduced it at wordcamp (her slides are online), but it’s been only recently that the fruits of the admin control panel re-thinking have started to appear in code. though there’s much work yet to be done and it’s not uncontroversial, i think i like it. maisonbisson chocolate martini the holidays are past, but we still have a sweet tooth here. chocolate shavings for rimming part crème de cacao parts vodka dark chocolate garnish warm a martini glass over a small flame, then roll the rim in chocolate shavings. put a square of dark chocolate in the glass, then prepare the liquor. shake vodka and crème de cacao with ice and strain into glass. for additional flavor, sprinkle the top with cocoa powder or chocolate shavings. wiimote (wii remote) + projector + computer = homebrew multitouch display you’ve got the hardware, you’ve got the skills, go build a multi-touch electronic whiteboard with your wiimote and a data projector. building in a (big) bubble dcdead‘s photo of the central station of strasbourg, france reminds me of something i’d long wanted to do in (or around) my old house: put it in a dome. apparently, this dome doesn’t fully cover the building, just enlarges it without obscuring the facade. still, square meters of glass looks pretty good, eh? back to my old house, however. here’s the plan: forget the lack of insulation and the drafty windows (and the dying roof, before i replaced it), solve all of that by putting a greenhouse up around it. wordpress . performance, timeline the good news is that performance is a big goal for wp . , the bad news is that it’s been delayed to the end of january at the earliest. gmail imap vs. previous pop users google mail now supports imap, but what if you’ve been using pop all along and have a gajillion messages on the server, all marked unread and waiting in your inbox? how can i tell apple mail not to download the [gmail]/all mail imap folder without an ugly hack? [update, the hack just causes mail to crash a lot.] free report on accessible web design from jakob nielsen free from nielsen norman group: beyond alt text, making the web easy to use for users with disabilities, a report on web design for users with disabilities. “seventy-five best practices for design of websites and intranets, based on usability studies with people who use assistive technology” according to the blog post, usability is three times better for non-disabled users. bsuite machine tags there can be no arguments about it, machine tags are cool and they solve problems. and now they work in wordpress with bsuite too (svn only, for the moment). it’s not just because flickr popularized them that i like them, though it helps and you should definitely look at that stuff: the announcement excitement from o’reilly radar, programmableweb, and dan catt (who championed the concept at flickr, i think). inside your head video found via a photo in soffia gisladóttir‘s photostream. the suggestion that things go rotten inside a person’s head is very sad, but i’ve also suggested it to zach for moldy snack.com css transparency settings for all browsers ``` .transparent_class { opacity: . ; /* the standards compliant attribute that all browsers should recognize, but... */ filter:alpha(opacity= ); /* for ie */ -khtml-opacity: . ; /* for old safari ( .x) */ -moz-opacity: . ; /* for old skool netscape navigator */ } ``` (via) a boy and his cabbage of significant size from the la crosse tribune, a boy and his cabbage of significant size: wisconsin ten-year-old douglas mezera grew a -pound cabbage for a competition sponsored by bonnie plant. the alabama plant company’s program aims to promote gardening as fun and rewarding. what do you do with so much cabbage? “we made it into homemade sauerkraut,” douglas’ mom said. “it’s good.” (via) language translation icon we all need a recognized icon to represent “translate this.” we’ve got one for feeds and social bookmarking, but where’s our translate icon? a lot of folks simply use flags, but that’s a bad idea because they’re “nationalistic, and represent ideals, boundaries, and political beliefs, but do not represent a language.” joe lee has developed a few icons for use in the olpc project, and they look good. the only problem i have with them is in trying to make them work at × pixels. in flight wifi back in the air? i thought the matter was dead after boeing shut down their much hyped in-flight wifi plans (yep), but engadget got a seat on jetblue’s private introductory flight for their wifi service. the good news is that it’s free, the not surprising news is that yahoo! is partnering in it (and it requires a yahoo! account), the bad news is that all you get is yahoo! im and email. no web browsing, or anything else useful. scriblio . v released scriblio . v is out. see it. download it. install it. join the mail list. what’s new? lots of small bug fixes. implemented wp_cache support. revamped sql query logic for better memory efficiency. new widget options. search suggest/autocomplete support (implemented in the new theme). new theme. new theme! by jon link. home libraries, amateur libraries the library problem: in march of my wife mary and i owned about , books. we both have eclectic interests, voracious appetites for knowledge, and a great love of used bookstores. the problem was that we had no idea what books we had or where any of them were. we lost books all the time, cursed late into the night digging through piles for that one book we knew must be there, and even bought books only to find that we already owned them. usb-connected monitors? displaylink is licensing technology that promises to make adding a second (or sixth) monitor as easy as plugging into a spare usb port. samsung’s ux “ lcd (under $ , review) is among the first to employ it, though iogear’s usb to vga adapter is also available (about $ , review). this isn’t without problems, though. image quality is said to be sharp until it moves, then it stutters and chops, more from cnet labs. seven person bicycle: the conference bike i saw this bike here, here, and here on flickr, but nobody said what it was or where i could learn more. some googling revealed it was eric staller’s conferencebike, first sold by hemmacher schlemmer. one person steers while all seven riders peddle, and it looks like a lot of fun if you’ve got a spare $ , . the eight foot long bike is six feet wide and weighs about pounds. compress css & javascript using php minify it was part of a long thread among wordpress hackers over the summer and fall, but this post at vulgarisoverip just reminded of it: minify promises to be an easy way to compress external css and javascript without adding extra steps to your develop/deploy process. no, really, look at the usage instructions. (to be clear, the vulgaris and google code versions are different, one derived from the other and backported to php compatible. old romans knew how to make glue we’ve known about the birch bark glue romans used on their clay pots and jars for a while, but now researchers in germany are calling it “caesar’s superglue.” researchers at the rhine state museum in bonn apparently found it used to bond silver plate to an iron helmet in a year old repair job. the superglue part: the bond was still good. people make scriblio better it’s way cool to see lichen‘s scriblio installation instructions translated to hungarian. even cooler to have sarah the tagging librarian take hard look at it and give us some criticism (and praise!). but i’m positively ecstatic to see robin hastings’ post on installing scriblio (it’s not easy on windows, apparently). part of it is pride in seeing something that i’ve been working on for so long finally get out into the world, but scriblio really does get better with every comment or criticism. roadside attractions fading away? roadside attractions fading from landscape: a staple of the american road trip could be slowly disappearing from the nation’s interstates and byways. owners of some roadside attractions are deciding that interest is waning bsuite released [innerindex]i started bstat in when i ported my blog from pmachine to wordpress and needed to bring over the tools i’d built to identify popular stories and recent comments. i renamed it bsuite when i added tagging and other features to it. now it’s bsuite . get it here. get installation details here, and users of previous versions should check the upgrade instructions here. features tracking of page loads for each post and page. my iphone commercial (or, the night we almost died on a mountain) it was cold. the air carried no scent, ice squeaked under our boots, and every little leaf and twig crinkled and snapped as we walked over it. but this was louder than that. much louder. neither jon nor i saw it actually happen, but when i found will he was mostly upside down between a boulder and tree. the trail at that point was elevated by some rocks and bordered by pines that grew from the forrest floor some distance below. tabbed chatting in ichat among the missing features i hear the most complaints about regarding ichat is the lack of tabbed chatting. today i discovered it’s part of leopard. simply go to the ichat prefs, click on the messages pane, and selected “collect chats into a single window” and you’re set. a nation marketing itself japan‘s the ministry of foreign affairs english-language web japan is a bottomless trove of in-flight magazine-quality stories like antibacterial epidemic and j-culture-hyping love-fests like honoring the world’s manga artists. if american propaganda efforts are this bad, why do foreign governments even bother blocking them? is this really worth protesting? it can only be taken as evidence of our wealth and privilege that two years after macy’s bought marshall field’s people are planning a black friday rally and holiday boycott to protest the name change. wp rewrite instructable dan’s instructable for custom rewrite rules in wordpress is better than the docs in the codex. how expensive does commercial software need to get before we consider open source? open source software of the free as in free beer and free as in free speech variety has matured to the point that there are now strong contenders in nearly every category, though that doesn’t make them easy choices. it’s often revealing when people criticize oss as being free as in free kittens, which is true in the sense that f/oss does require continued care and feeding to make it work, and false in that it suggests commercial solutions don’t. themes i like matt has updated his site with a less blog-like front page and i just discovered unsleepable, which is very bloggy, but seems like a good start for what i want to do next. remix remix remix: the tracey fragments i guess the criticism is that it’s one thing for somebody to open up their music for remixing, but an entirely different thing to do the same with a movie. or is it? is it (click re-fragmented)? [insert word here] is hurting your network corporate networks are defenseless against the growing threat from instant messaging, and the government warns wifi is insecure and easily sniffed. experts suggest we take precautions against the growing risk of p p software that’s exposing sensitive documents and threatening national security. businesses blame security problems on their employees, their mobile devices, and other consumer technologies. and now we have myspace. tidens hotteste it-trends my presentation for today’s hottest it trends is nearly completely new, though it draws a number of pieces from my building web . -native library services and remixability presentations. what it adds is an (even more) intense focus on the people that make up the web. denmark is among the most wired countries of europe, and it’s especially interesting that more than half of danes over use the web at least once a week. remember the good old days? the first article database i remember using was dialog, sometime in the late s or early s. today i found myself amused that we used to call such things “interactive.” that is, you poked the command line interface with questions and it usually beeped a syntax error, all while they charge $ per minute, plus the connection fees. (the image above is from a later cd-rom version.) a article in phrack reminded me of some of the details and fun of such systems: european internet usage statistics eurostat : internet usage in the eu : “nearly half of individuals in the eu used the internet at least once a week in and a third of households and three-quarters of enterprises had broadband internet access.” statistics denmark : access to the internet: % of population has home internet access. going global with my iphone i can use my iphone pretty much anywhere, but att is going to charge me $ . a minute for calls, $. per text, and $. per kb for data while in denmark. att requires international activation but they do offer some tips for international roamers. i bought an international iphone data plan ( mb for $ ), but i also learned that visual voice mail counts against that (regular voice mail counts against minutes, at the $ . wordpress vs. drupal i’m a wordpress partisan, so i agree with mark ghosh’s criticism of this wordpress vs drupal report. still, it reminds me that i should point out xxlmag, slam online, and ford among the very non-bloggy sites built on wordpress. fish tacos oh decadence! veterans day provided not only a chance for reflection but also a rare day free from the classroom. so what to do with this open period of time? the answer was easy, dinner party. i have wanted to have my colleagues roxanna and john over, but time is always an issue. i phoned them up and they accepted. now the fun began — menu planning. while vacationing with my parents in vegas last summer we went out to marvelous food chain, the cheesecake factory. design anxiety all i know about denmark is what gets imported: legos, of course, but also a tradition of exquisitely clean and functional design. that’s why, as i prepare for my talk in copenhagen later this week, i’m incredibly conscious of my own design and a bit jealous of jessamyn’s outstanding use of orange. anyway, that’s where i’ll be all week. any tips? anybody up for a drink? gender gaps connect the dots: boys vs. girls in us colleges and too many men in east germany. object-based vs. ego based social networks vs. wow and second life there are so many cool things in fred stutzman’s recent post, but this point rang the bell for me just as i was considering the differences between world of warcraft and second life. more on those games in a moment, first let’s get stutzman’s description of ego vs. object networks: an ego-centric social network places the individual as the core of the network experience (orkut, facebook, linkedin, friendster) while the object-centric network places a non-ego element at the center of the network. internet safety npr : back to school: reading, writing and internet safety as students return to school in virginia, there’s something new in their curriculum. virginia is the first state to require public schools to teach internet safety. freaking mysql character set encodings derek sivers‘ plan, with all it’s bin hex and regexp and back and forth between mysql and php almost looks good compared to what i’m about to do. really, why is it so difficult to go from latin (tables created back in mysql ) to utf ? not only do you have to set the charset on the table, but also the connection, in php, and flipping everywhere. and then you’ve gotta deal with all this old data that’s in the wrong character set. pick up lines how to pick up girls in the library. indeed, it’s picking up girls made easy. internet librarian presentation: building web . native library services the conference program says i’m speaking about designing an opac for web . , and i guess i am, but the approach this time is what have we learned so far? and though it’s the sort of thing only a fool would do, i’m also planning to demonstrate how to install scriblio, a web . platform for libraries (foolish because i plan to do it live and in real time). is the answers.com api public? answers.com is throwing a bone to wordpress users with their new answerlinks plugin written by alex king. but wait, there’s an answers.com api? a few pokes at the google machine reveal nothing relevant, and asnwers.com’s site is mum too. taking apart the code, i get the following (modded enough to make it run-able if you drop it in the base of your wordpress install): ``` require_once('wp-config.php'); require_once(abspath.wpinc.'/class-snoopy.php'); $snoop = new snoopy; $snoop-read_timeout = ; $snoop-submit( 'http://alink. maisonbisson and unapi thanks to mike giarlo‘s unapi server for wordpress. now if only there were a library catalog built on wordpress, i could probably just drop it in. panorama stitchers: calico vs. doubletake i’ve been using doubletake to stitch panoramas for a while, but when i discovered p ps harlow’s photos and learned he was using calico panorama, i figured it was worth taking a look. doubletake has done a great job for a number of my photos (mt. moriah, san francisco motorcycles, mt. mondadnock), and when the automatic stitch failed, i could manually reposition (or re-order) the photos. i could also adjust the individual images to make them better match each other. mac os x . comes with apache and php yep. leopard comes with new stuff. lazeez says it works fine, but commenters here are having trouble. memory, intimacy, and the web i’ve been thinking about it since troy mentioned to me that he thought google was ruining his memory. and i thought i found confirmation of it when i read gladwell’s description of daniel wegner, et al’s transactive memory in close relationships: when we talk about memory, we aren’t just talking about ideas and impressions and facts stored inside our heads. an awful lot of what we remember is actually stored outside our brains. library . subject guides ellyssa kroski‘s librarian’s guide to creating . subject guides is good introduction for librarians who think know “there has to be a better way.” but why no mention of blogs and blogging tools? (i’m still really happy that when you search our catalog for something, a subject guide for that term appears (if we have one that’s relevant)). book autopsies via ryan: brian dettmer: book autopsies at centripetal notion. site crashed…recovered…sort of my hosting provider lost a server, and their most recent backup of my database was from wednesday. that was newer than what i had, so that’s what i’ve got. any comments submitted between then and mid afternoon today have been lost. i was luckier with my posts: i write most of them in ecto and had them backed up on my lappy. at least the sox won. the war on zombies from kim to zach to me to you: bush vs. zombies. now we know: the guy doesn’t understand the difference between fact and fiction. most people thought shaun of the dead was horror/comedy, not documentary. poor w probably read the zombie survival guide as an instruction manual (don’t show him how to survive a robot uprising, please). gah. the guy hired a cannibal, fears animal-human hybrids, and flip-flops on evolution. gravatar acquired, more features & better reliability ahead matt pointed out that automattic has purchased gravatar, the globally recognizable avatar service. om speaks of the economics and matt’s cagy, but it’s hard not to see the possibility of creating a larger identity solution around this. wordpress’ market penetration is huge, a service that connects those nearly two million blogs could offer real value, especially in connection with automattic’s akismet. aside: now that gravitar’s reliability is up, i’ll probably get sexy comments running here soon. stupid trademark law story: timbuk develops a new line of messenger bags that features fabric made of <a href=;http://www.treehugger.com/files/ / /dont_shoot_the.php">recycled material (engineered by rootphi). some of the fabric contains a symbol that target lawyers say is their logo. target lawyers cease and desist timbuk . thing is, the trademarked target logo is a roundel, commonly used around the world (easily recognized in british aircraft of wwii). the particular design target has chosen appears to be a copy of peru’s official insignia. screencasting on mac i’m as annoyed as the next guy about how hard it is to find a decent screencast app for mac. the forthcoming mac os . ’s new ichat theater (and the built-in screen sharing/control features) should create some new opportunities for developers, but right now it’s hard to know what works or is worth trying. further, i narrowed the field with the following requirement: i need an app that records to quicktime-compatible files, not flash. not just hip when a writer goes looking for young turks (my words, not scott’s), you should expect the story to include some brash quotes (writers are supposed to have a chip of ice in their hearts, after all). on the other hand, we’re librarians, so how brash can we be? scott carlson’s young librarians, talkin’ ‘bout their generation in the chronicle this week did it better than most articles: rather than showing how hip or geeky we are, it asks us about the future. friends, photos, favors, feeling ill i practically begged will and karen to get on a carnival ride with me so i could get portraits with the lights streaking behind them. will warned me that he doesn’t do well on rides; i argued that no ride with so many kids under four feet tall could be too dangerous for us. we boarded, it started. from the ground it looked gentle, much like the teacups. that was misleading. corrosion test facility not as rusty as expected corey, will, and jon were all as excited as i was to see the fabled point judith corrosion test site, just south of narragansett, but we were all surprised at how un-rusty the goods were. don’t laugh, corrosion is a big deal. according to the national materials advisory board: corrosion of metallic structures has a significant impact on the u.s. economy. in a congressional study, the total economic impact of corrosion and corrosion control applications was estimated to be $ billion annually, or . fools on the beach [[slideshow|height= px|farm -static-flickr-com- _ e c .jpg farm -static-flickr-com- _f bd da b.jpg farm -static-flickr-com- _ ea fede .jpg farm -static-flickr-com- _fb c b .jpg farm -static-flickr-com- _dbaee d .jpg]] we were there because of the point judith corrosion test facility — the rust museum — but who can resist chasing seagulls? and who can resist posting the sequence? assuming you’ve got a recent browser with javascript enabled, you should see a bit of a slideshow above. photos on flickr, slideshow powered by jquery and bsuite. cocktail manifesto we’re huge fans of the new joy of cooking by marion rombauer becker, irma s. rombauer, and ethan becker. hardly a meal goes through our kitchen that isn’t shaped in some part by the recipes and general information in its pages. a recent discovery was joy’s description and defense of cocktail parties. so, when a book as serious and valuable as the new joy of cooking raises alarms about the declining future of cocktail parties, we listen. who owns the network? note: this cross-posted item is my contribution to our banned books week recognition. we’ve been pitting books against each other, hoping to illustrate that there are always (at least) two sides to every story. most of the other books were more social or political, but i liked this pair. wikinomics authors don tapscott and anthony d. williams tell stories of how the the internet’s unprecedented collaboration opportunities are changing the rules of economics. banned books week dilemma our intention is to feature “a series of books that challenge our beliefs and test our commitment to free speech,” but on this post about holocaust denial i found myself unwilling (and unable) to link to the free, online pdf full text of david irving‘s hitler’s war. and when we discovered it wasn’t in our collection (though it may have been lost/stolen, not replaced, and the record deleted), we decided not to purchase it. business . too tired? magazines fail all the time, but it’s hard not to look at them as signs of something larger. macweek‘s fizzle was claimed to represent the demise of the mac, computer shopper has lost more weight than a slim fast spokesmodel ( pages to in ten years!). and now business . magazine is shutting down and sending cancellation notices to readers. perhaps the lesson here is that there’s nothing too . restaurant review: cotton first impressions how much is too much for an entree at a place that plays the kind of anonymous muzak that kenny g calls jazz and is decorated like applebee’s? trust me, i like renovated mill buildings, but why confuse it with faux grecian columns and too many pictures of dead celebrities? i mean, the interior was clean and pleasant, but lacked attention to detail. if you’re so afraid your customers are going to walk off with the poorly framed prints of old hollywood darlings that you nail them to the wall through the frame, how much can you expect them to pay for dinner? smashitup smashitup smashitup! after all my agitating for small, cheap, fuel efficient cars (and automotive metaphors), i figured i had to post this picture (and a few others) from the demolition derby at the hopkinton fair a couple weeks ago. my video of the four-cylinder event is at youtube. extra: i don’t know where it fits in your stereotype of the demolition derby audience, but i was happy to find somebody wearing a css_descramble. “to ascertain if the applicant is still living” whose library is it anyway?: a visit to the lenox [tags]library, libraries, humor, lennox library[/tags] don’t mistake me (please) over at kle’s web . challenge i was surprised to learn: both bisson and stephens are so excited about this concept of web . they have not taken a good look at what they can’t do for our libraries. …with all this new technology we can not forget that what is the most important in our libraries is the personal touch. we are one of the few institutions left that still offers individual attention. checkouts vs. gpa? cindy harper, systems librarian at colgate university, posted to the iug list with this notion today: i’m clearing out a large group of expired student records, and wonder if anyone else has had the same idea that has occurred to me. [our ils] keeps track in the patron record of totchkouts (total checkouts). at the expiration of the students’ record at the end of their four or so years, this represents a measure that is not perfect, but could distinguish heavy library users from non-users. copyleft: defending intellectual property anybody who thinks free software is anti-copyright or disrespectful of intellectual property should take a look at mark jaquith’s post, what a gpl’d movable type means. let’s be clear, anil dash takes issue with jaquith’s interpretation, but the point is jaquith’s offense at what appears to be six apart’s grabbiness for any code somebody might contribute. freedom was one thing, the willingness of a person to pour his or her sweat into something, then watch somebody else (or even risk watching somebody else) profit from it is another. mullenweg on wordpress and open source i wish i’d seen this from wordpress maven matt mullenweg before i finished my ltr on open source software for libraries. mullenweg is brushing off some of the mystique and praise the media has been giving him, and giving an honest sense of what makes open source software work: the real story is more exciting than the cookie-cutter founder myth the media tries frame everything in. it’s not just one or two guys hacking on something alone, it’s dozens of people from across the world coming together because of a shared passion. it’s standard playtesting, everybody does it in another sign that my generation’s culture is gaining dominance, npr gave video games a bit of coverage this morning. unfortunately, the story that makes it sound like the company invented playtesting doesn’t suggest that microsoft’s behemoth investment in the halo franchise makes that testing (and, perhaps, blandness) necessary. (meanwhile, msnbc last year ran an off-message story about how playtesters declared the wii the top console.) reality: playtesting is one of those dream jobs that people scour craigslist for or start questionable-looking services around. developing and testing mobile content read: a list apart: articles: put your content in my pocket and part ii. test/simulate: opera mini, lynx, a variety of mobile phones, internet explorer (because even with parallels, who really wants to infect their machine with windows?), and iphone. a message from the establishment to the establishment we must stop thinking of ourselves as a good-idea factory whose every thought has greater merit than those of our customers. procter & gamble doesn’t even do that. — paraphrased nh’s virtual learning academy the ceo of nh’s first online-only, distance education high school expects about students to enroll in its first semester, to start in january. so says a report at nhpr. four years of music industry lawsuits & madness marketplace reminds us the storm of riaa lawsuits began in september . in that time they’ve sued a thousands of people, and most lawyers apparently advise those caught in the madness to simply roll over and take it. but tanya andersen, a year old disabled single mother didn’t. after years of litigation (and mounting legal bills), it finally came out the riaa’s lawyers had misidentified her and dropped the case, casually saying “sometimes when you go fishing with a driftnet, you catch a few dolphins. obligatory talk like a pirate day post perhaps talk like a pirate day has been too successful when npr hosts are doing it, but anything that’s so important to our children’s future success is important enough for me. and if you need a brush up on your skills, don’t miss this instructional video. nyt: the link is the currency of the web the new york times has struggled with timesselect, now they’re killing it. but the news here isn’t that a media giant is giving up on a much hyped online venture. the news is that a media giant is endorsing what we now call web . : since we launched timesselect in , the online landscape has altered significantly. readers increasingly find news through search, as well as through social networks, blogs and other online sources. closed formats are bad for libraries, stop ooxml now microsoft just won’t quit. now they’re trying to make ooxml an iso standard. please help stop this. here’s how i explained it in open source software for libraries: the state of massachusetts in announced new it standards that required its , employees and agencies to adopt open file formats. the decision didn’t specify the applications to be used, just the format of the electronic documents they created, stored and exchanged #. nebraska state senator ernie chambers sues god the following, quoted from daily kos: accodring to chambers, god has caused fearsome floods, egregious earthquakes, horrendous hurricanes, terrifying tornadoes, pestilential plagues, ferocious famines, devastating droughts, genocidal wars, birth defects, calamitous catastrophes resulting in the wide-spread death, destruction and terrorization of millions upon millions of the earth’s inhabitants including innocent babes, infants, children, the aged and infirm without mercy or distinction. so, you think “yeah, he’s got a point. building libraries with free software sarah houghton-jan‘s review of my ltr on open source software for libraries reminded me i wanted to blog this related piece i’d written for american libraries. tim spalding cocks his head a bit as he says it to emphasize the point: “librarything.com is social software.” however we categorize it, spalding’s baby has become a darling to librarians, and as we sat chatting over lunch in spring , the web application that had begun life just to months earlier was to catalog its -millionth book. the “show of force” brand a pentagon commissioned $ , rand study, enlisting madison avenue: the marketing approach to earning popular support in theaters of operation, concludes “the ‘force’ brand, which the united states peddled for the first few years of the occupation, was doomed from the start and lost ground to enemies’ competing brands.” small is beautiful will found this on the side of the road, and after he told me about it i begged him to show me. it’s tiny, rusty, and a little older than i expected. like a very, very small vw bus, it has a rear-mounted engine. i think it’s a subaru sambar, but that’s mostly based on the details i gleaned from the subaru article, which reveals that engine was probably air cooled, displacing ccs, and producing under hp. a shadow lifted, berlin’s smokestacks felled corey and i went to berlin to watch the stacks fall today, but bad weather, confusion, and some dud explosives conspired to leave me with no usable pictures of the event. we arrived early and lined up a perfect view of two out of three towers that were to be felled, but as the explosions started it became clear that i was mistaken about which smokestacks were being destroyed, and instead we had a really good view the one stack that was supposed to be left standing at the end of the day. mildly funny scenes i’ve come across recently not lmao, certainly not roflcopter-ingly funny, but funny enough to want to snap a picture, and good enough for casual friday here. the boat in the parking lot, ups vs. fedex, and hoe for hire are all easy enough to understand (though they leave me open to easy criticism). the fourth photo is of some books on an anonymous shelf: look closely at “library trends, ” and others. lessons in change from ford motor company i probably spend too much time considering competition and change management, but just as i figured i was done with it for the week, a comment from kathryn greenhill regarding model ts got me going again. just like railroads, those “any color as long as it’s black” model ts looked like freedom, until general motors showed the world they could get their cars in color and with curves. every car came with four wheels and an engine, and they’d drive you down the block and around town, but the moldy model t suddenly looked pretty old next to a sleek green chevrolet. onewebday have you thanked the internet lately? onewebday, our opportunity to celebrate “one web, one world, one wish” is just about a week away (though it falls on yom kippur). this video explains a bit and tim berners-lee is planning his own video (worth mentioning: his net neutrality post). if things work out, i’ll be posting a video too, even though i’ll likely be offline most of that day (not observing yom kippur, at a friend’s wedding). first they ignore you, then they ridicule you, then they fight you it’s an aside to kathryn greenhill’s larger point, that all this . stuff is about a shifting power to the user, but she places l somewhere on ghandi’s continuum of change between ridicule and fight. the photo above (original by monster) is in support of greenhill’s larger point: control is shifting. trains were once seen as icons of freedom, but that view changed with the development of the automobile — and the way it shifted control of routes and schedules from the railroad to the driver. playing with food like all well bred women, my mother always told me not to play with my food. however, as we get older we realize that sometimes ignoring the rules is just as important as, generally, following them. food is fun. it has wonderful tastes, smells, colors, and textures. something with so many wonderful attributes is just begging to be played with. for me, breakfast is not just the most important meal of the day, its also the most wonderfully yummy for one specific reason — maple syrup. jumping from airplanes a guy walked into the student newspaper office and asked “does anybody want to jump out of an airplane?” without a moment’s hesitation, i said “i’m your man.” it was only afterwards that i confirmed a parachute would be involved. well, that was ten years ago (can’t you tell, i look young — young!), but the video is still laying around and i just uploaded it to youtube. actually, this video has been through the wringer. hawkish is bush really so hawkish that he refuses to formally declare an end to the korean war? launch! a little more than two years after i realized how (really) bad the problem was and about months after i <a href=;http://maisonbisson.com/post/ /wpopac-an-opac- -testbed">prototyped my solution, our new library website, catalog, and knowledgebase launched last week — just in time for the fall semester opening. it’s all built on scriblio, includes a very simple new books list that you can narrow by subject and get via rss. and if you search for subject areas like anthropology, economics, english writing, or any of a few dozen other topics, you’ll find our librarians’ subject guides listed at or near the top to help you out. cliffy’s office prankd office pranks are a bit of a thing here. well, at least in it. last year matt took charge and put together a quartet of pranks that got the attention of the london daily mirror. this video is from a may prank that put a golf cart with fuzzy dice and bobble headed jesus in cliffy‘s office along with a vote bush sign and other things. he was mad, to be sure. add tags to flickr photos while uploading via email the short story is that you simply put “tags:” in the subject or body and anything that follows becomes a tag. it’s worth remembering that the subject of the email becomes the title and the body becomes the description. the longer story is at flickr. make it official before he forgets in a development that even foxnews couldn’t ignore, us attorney general alberto gonzales has resigned, he thinks. would princess diana have been a blogger? in an interview on npr, the diana chronicles author tina brown says “diana had represented feeling, and the end of the stiff upper lip,” but the princess comes off sounding a bit like a harbinger of the cluetrain. yes it’s all about the royals, the glamor, and her dramatic death ten years ago, but take note of this exchange: renee montagne: “the royal family is probably stronger than it was when she died. vicar’s delight hot weather demands cool drinks. lemonade is fine for the kids, but adults need a pitcher of something more entertaining. parts vodka part orange juice parts lemonade dash lime juice prepare in a pitcher with ice and share. adjust quantities to taste. enjoy safely. iphone unlocked if the news is to be believed, separate teams have found hardware and software-based solutions to unlock an iphone. it’s worth noting that all this is legal because of an exemption, <a href="http://www.onthemedia.org/transcripts/ / / / ” title="on the media: transcript of “mobile malcontent” (march , )“>much needed and hard fought. scratch-n-sniff hey, i’m a fan of that old book smell too, can i get some scratch-n-sniff stickers? meebome + pidgin = a match made in heaven meebome + pidgin (formerly gaim) = a match made in heaven. (via.) color blind safe web design check etre‘s colour check. a good day to land the shuttle? a hurricane, high crosswinds at the landing site, a nitrogen leak, and two damaged tiles. watch the shuttle land live on nasa tv. allagash wilderness, maine will, jon, joe, ted, and i arrived at telos landing with plans to run the allagash wilderness waterway. as we prepared to embark, the park ranger appeared with a tape measure and told us our kayaks weren’t canoes. section . of the allagash rules and regulations is quite clear: “a canoe is defined as a form of small watercraft long and narrow…. the width at the widest point shall not exceed % of the craft’s overall length. , structurally deficient bridges about , vehicular bridges nationwide, and , are “structurally deficient.” sources: national bridge inventory compiled by the u.s. department of transportation, american society of civil engineers‘ infrastructure report card, and gannett. p ps’ panoramas shot with iphone i’m coming to learn that p ps has a number of interesting things going on, but it was his panoramas stitched from pictures taken by iphone that caught my attention first. above is the j train somewhere between fulton and city hall. i’d thought the iphone’s camera was pretty decent, p ps’ work shows it off. bad joke friday [innerindex] beginning of a bad day… i rear-ended a car this morning. i knew it was going to be a really bad day! the driver got out of the other car and i looked down and realized he was a dwarf!!! he looked up at me and said “i’m not happy!” so i said, “well then, which one are you?” and that’s how the fight started. our diets, our health a doctor was addressing a large audience in tampa. mac + cell phone + bluetooth + sms old instructions that connect the mac os x address book app to a phone via bluetooth from o’reilly and sillydog. once paired, the address book can initiate dialing, notify the user of incoming calls, and send sms texts. bluetooth texter sms widget, message net, and bluephoneelite all offer further tools to interact with your bluetooth-connected mobile phone. the list of compatible phones (bpe & m n) offers some leads for those trying to make the connection. fuel economy: is diesel an option? in response to my previous kvetching about the scarcity of cheap fuel efficient cars, jwk commented that his golf tdi gets mpg (it’s rated for ). meanwhile, treehugger pointed out that volkswagen’s polo bluemotion gets mpg (volkswagen uk claims the current polo hatchback gets up to mpg in diesel (i assume that’s about mpg in us measures), and treehugger points out the mpg loremo ag). iphone + newton + emate pr n {#set_thumb_link_ .image_link}{#set_thumb_link_ .image_link}{#set_thumb_link_ .image_link}{#set_thumb_link_ .image_link}{#set_thumb_link_ .image_link} {#set_thumb_link_ .image_link}{#set_thumb_link_ .image_link}{#set_thumb_link_ .image_link}{#set_thumb_link_ .image_link}{#set_thumb_link_ .image_link} it’s likely phil carrizzi could make a broken tire iron look good, but his series of the iphone with the newton message pad and emate is geek-sweet eye candy. i want a cheap fuel efficient car i’m looking for a new car, but i’m finding that the market for cheap and fuel efficient cars is no better now than it was in . i drive about miles round trip to work (all highway), so i’m looking for the best available highway fuel economy. i can drive a standard, but sandee can’t, so we’ll need automatic. i like small cars, but no so much that i want to pay a lot for one. moving a subversion repository i foolishly just moved a subversion repository by importing the contents of a current checkout into a new repository. wrong. a friend pointed out these instructions that make it easy and preserve the revision history. here’s the trick: svnadmin dump /path/to/repository > repository-name.dmp and svnadmin load repository-name < repository-name.dmp [tags]svn, subversion, move, repository[/tags] castro sued for wrongful death of cia operative, guantanamo bay prisoners taking notes the bangor daily news is reporting a maine woman has sued fidel castro for her father’s death. sherry sullivan of stockton springs accuses fidel castro, his brother raul, the cuban army, and the republic of cuba for the wrongful death of her father, who has been missing and assumed dead since he was last seen at a mexican airstrip in . according to the lawsuit, from until their disappearance, sullivan and rorke participated in numerous covert anti-castro operations in central america and cuba. chocolate white chocolate chip cookie and vanilla bean ice cream sandwiches so once again, my husband called on my assistance with a friday food fiesta challenge. this week’s theme was cookies and biscuits. i scoured my pantry, but alas, like old mother hubbard, my cupboards were practically bare. the one interesting thing i did have was a bag of hershey’s white chocolate chips. so, between my meager rations and a quick trip to our town’s tiny market for butter, i cobbled together the ingredients needed to make the chocolate, white chocolate chip cookies on the hershey wrapper. is it that they don’t care? or just don’t want it from us? &tjessamyn asks “do library users care about our new initiatives?” it comes from a survey done by the wisconsin public library consortiumon one hand, if you interpret the results literally you could make a decision to reject technology and focus on building a collection around personal enjoyment for wisconsin residents. on the other hand, these same results may suggest that initiatives and library services need to be marketed in such a way that resonates with current conceptions of a public library. the fbi and irs are a series of accountants alaska senator ted—the internet is a series of tubes—stevens (mockingly so, listen) returned to find the fbi and irs searching his alaska home. iphone complaints cliff and vasken wrote up some link bait complaining about how the iphone doesn’t meet their expectations or is a lesser competitor to a crackberry. but i challenge them to find a device that offers what they say is missing or even matches what the iphone has. still, i’ve been using mine for a month now, and i can say there are few things it’s missing or could do better. ingmar bergman dead at swedish film director ingmar bergman is dead at . the local calls his work immortal, as did many of his colleagues. until now i’ve been misremembering the title of one of his movies as three smiles of a summer night, a romantic comedy. i’d say that most of his works i’d seen were depressing and that smiles was one of the few that wasn’t. but i couldn’t even remember the title properly, so perhaps i should keep that to myself. sour cream berry bread my wonderful neighbor, wendy, went berry picking and dropped me off a large container with luscious, fresh blueberries and raspberries. i decided to try a bit of an experiment and use the batter for one my favorite cakes with the berries. the result was this heavenly sour cream berry bread. preheat oven to degrees. grease and flour an -cup loaf pan. melt tablespoons of salted butter, pour into a large bowl, let cool. what is that thing kent wien posted this photo of the tail of a boeing showing what looks like the exhaust end of a turbine. i had to ask what it was all about, and kent explained: ahh, very good question! there actually is an engine back there. it’s the apu (auxiliary power unit) and it’s what keeps the airplane cool on the ground without being plugged into the gate. it also provides electrical power and high pressure air that starts the engines after we push back from the gate. poet-bot doug savage‘s take on frost. iphones around the world a long time ago somebody started the newtons around the world gallery, and it came to symbolize the love we newton users had for the little device as well as our geeky pride. the trend seemed to continue with ipods around the world, and now ilounge wants to start a gallery for the iphone. i was about to submit when i noticed the legal fine print: by submitting, you agree that all photographs, and private information you submit are entirely yours at the time of submission, become the property of ilounge upon submission, and that you have not submitted and will not submit such images to any other contests. iphone troubled, replaced on thursday i had trouble answering a call. by friday night it was clear my iphone was seriously porked. a visit to the nearby apple store got me a swift replacement, and a promise that once i synchronized the new device it’d have all the info the old one did. hrm. well, the mac genius did ask if i had any photos i hadn’t offloaded, as those would be lost in the swap. liz danzico on wordpress usability liz danzico of happy cog studios spoke today about her consulting with automattic on the design of the wordpress admin interface. as with so many of the presentation today, i’m really hoping the slides will be published soon, as there are some great ideas coming out. liz spent a lot of time watching wordpress users at blog. at work, in cafes, and in their homes with coffee and cigarettes, liz saw real users of all types doing everything they do with wordpress. scriblio goes to wordcamp scriblio is based on wordpress, an open source content management system, and the community that uses, supports, and builds it is what makes it great. wordcamp started last year, when the community was about , , and it’s even more important now that it’s grown to nearly two million. the first day of the schedule focuses on how to better use the software, and included a great session by lorelle vanfossen. tomorrow is more technical, with discussions about performance, usability, and development. designing the obvious robert hoekman, jr is speaking now on designing the obvious, his book and philosophy: these principles include building only what’s necessary, getting users up to speed quickly, preventing and handling errors, and designing for the activity. i just added the book to my must read list, but what i’m hearing here sounds like instructions to a sculptor: chip away all that is not david. calliope gazetas design calliope gazetas works for the fontshop and freelances under the name monsters. one of her projects includes skinning the burning man environmental blog. jason brightman design portfolio jason brightman’s work includes xxlmag. wordcamp wordcamp wordcamp i’m at wordcamp again. this time i dragged matt and zach with me. dan kuykendall, author of podpress, is first on the schedule, and i’m just now learning how he’s built in support for a variety of media types (more than mp ) and for premium content. those who showed up early got to pick over last year’s t-shirts. this year’s shirts are way different, having given up the somewhat cleaner and simpler design of that has characterized wordpress so far. peanut butter burger now matter how depressed i got in new orleans, i still had to eat. a tip from the ladies at molly’s on toulouse led me to yo moma’s with instructions to try their peanut butter burger. yes. peanut butter. on a burger. i was also told that if i don’t like mayo, i should tell them to hold it because they’ll put it on thick if i don’t. yes. peanut butter, on a burger with mayo. when you can’t say it in english… when you can’t say it in english, say it in german. the reconstruction of new orleans it wasn’t until after my presentation that i had a chance to see the city. and i have to admit it was so depressing that i’ve been having trouble writing about it. i have a sick interest in abandoned theme parks and the like, but seeing the neighborhoods of all classes so destroyed, the symbols marking search and rescue attempts, and the general vacancy of the city left me confused and uncomfortable. presentation: bringing the library to the user i’m at aall in new orleans as part of a program organized by june liptay and alan keely, speaking with u of r’s david lindahl and ncsu’s emily lynema. from the description (see page in the program): traditional library online catalogs are being marginalized in an increasingly complex information landscape. …better methods are needed for mining the wealth of information in library systems and presenting it clearly and concisely. yes it’s laughable, but… i get as frustrated with airport security as the next guy (and i’m plenty doubtful of its effectiveness), but really, if you don’t yet know liquids aren’t allowed, and you hold up the one security line at a small airport at an ungodly early hour, it’d be nicer if you didn’t laugh like a kid at a theme park about it. yes it’s farcical, but not funny. usage instructions <img src="http://farm .static.flickr.com/ / _ce f .jpg” width=" ” height=" ” alt="“tear open packet and use”” /> what’s really angering about instructions […] is that they imply there’s only one way […] their way. and that presumption wipes out all the creativity. actually there are hundreds of ways […] and when they make you follow just one way without showing you the overall problem the instructions become hard to follow in such a way as not to make mistakes. the rarin in librarian i’m going to violate my rule against linking to nyt (because) and give a shout out to this article. not just because it quotes my friend jessamyn, but for what it says: libraries are full of smart, hip people. [tags]library . , jessamyn west, new york times, libraries, hip, smart[/tags] essential iphone apps rush in [innerindex] games tilt, described in programmer joe hewitt‘s blog: …christopher introduced me to a very talented video game designer, nicole lazzaro, who had an endless stream of ideas for games that would use the iphone’s accelerometer. nicole’s ideas quickly ran into the limitations of the phone, as we discovered that the browser doesn’t rotate when you hold it vertically upside down, nor is it possible to distinguish the two horizontal orientations. whose technology is it anyway? i wasn’t planning on posting much about keen’s cult of the amateur, but i did. and now i find myself posting about it again. thing is, i’m a sucker for historical analogy, and clay shirky yesterday posted a good one that compared the disruptive effects of mechanized cloth production to today’s internet. yes, that’s actually the birth of the luddite movement, or at least where it got its name. and, though i was aware of the story, shirky’s study offered details i’d not know previously. ironic moments in law enforcement new hampshire’s deputy chief of liquor enforcement caught drunk driving. keen says i’m killing culture, byte by byte andrew keen‘s the cult of the amateur__; how today’s internet is killing our culture is getting a lot of attention from usually quiet corners of the web, and i’ve had to quell the urge to write a story under the headline “andrew keen tells youtubers to eat spinach.” keen’s argument rests on the belief that “culture” is the sole provence of established media, and falls flat as soon as you get past the bombast of the subtitle. why is pdf inferior to html? html and postscript are both page description languages, but one is designed to convey the look of the page, while the other to convey the meaning of its content. pinch me i’ve been away from my computer for a couple days, but very much online with my iphone. today, as i looked at something on my laptop in google maps i found myself trying to pinch and flick my monitor to manipulate the position and scale. felonious dancing naked == lewd lascivious conduct == felony crime. (better, however, than riding a gondola naked.) celebrate independence day with a drink ok, the truth is that at maisonbisson we celebrate all holidays with a drink. since we take cocktails quite seriously, i wanted something very pretty for the little fourth of july soiree we were having. i have found that the secret to a perfect strawberry daiquiri is using frozen strawberries. i also use lots of crushed ice and a ripe banana — it adds a nice creaminess. i garnished with whipped cream, blueberries, and star fruit. cold cucumber soup my beloved husband went off on a boy’s adventure weekend. this left me with the entire house and kitchen to myself. when this happens, i become a bit like a mad scientist left alone in my laboratory. so, it was just me, the cats, and that most dangerous invention, food network. after some house work, chick flicks, and visiting with my parents, i spent an hour putting away laundry and watching emeril. sweet bike sweet bike originally uploaded by misterbisson. sent from my iphone iphone accident big accident on highway leaving mall…was somebody unboxing their iphone while driving? so much sweetness in so small a package zero hour + minutes: the iphone rocks. minutes to go minutes to go. guy from store: “being in line doesn’t guarantee you’ll get one.” two hours, people. two hours to go, people in line. blackout they just put up black vinyl over the windows and gate. the line has grown to about . still no word of quantity, but somebody shared a story that they asked “what happens if there are people in line?” the answer was supposedly: “even if they buy two we’ll have enough.” retail status check does your apple store have iphones? about the rumors are that the at&t store here has about phones. nobody is talking about how many our apple store has. people in line people in line. at least one is hoping to auction his, three are being paid, and nobody wants the cheap one. fake iphone pic at first believed, then quickly called out by the true believes in line this pic elicited gasps, then indignation. we’re loved, we share the love suited security guy with square jaw and angry expression grunts at us as he confirms plans with store manager. he’s from management, and though we couldn’t overhear much, we did realize he was headed off to the at&t store next. all of us remained silent as we watched him stomp off in the wrong direction. waiting for iphone arrived at am to find four parties ahead of me. the first arrived at am, after repeatedly being chased out of the mall parking lot last night. june : tony day it’s tony day, not just because joe’s book has garnered some good reviews—“the only excuse for the continued existence of boxing is that its battles have occasioned some of the best writing any sport has ever inspired”—or because he likes telling the story. it’s tony day because “galento [is] a champion of everyone who’s ever gotten in over his head, shrugged, and said ‘what the hell? i’ll give it a shot. apple iphone vs. internet tablets sure, the iphone is a sweet phone (even at $ ), but how does it compare to the less definable internet tablet category? i’ve actually used a pepper pad and held an olpc in my hands (yes, they exist), but what i know about the nokia n (the successor to the n ) is limited to what i’ve been told. all four devices have feature-complete browsers and can take advantage of the rich web . presentation: faceted searching and browsing in scriblio i was honored to be a panelist at the lita/alcts ccs authority control in the online environment interest group presentation of “authority control meets faceted browse.” what is faceting? why is it (re)emerging in use? where can i see it in action? this program is intended to introduce the audience to facet theory, showcase implementations that use faceted approaches for online catalogs, and facilitate discussion on the relationship between structured authority data and this type of navigation. the iphone cometh; haters swarm some are calling it the jesus phone, but jason chen calls it a moral quandry, gartner group is <a href="http://www.techworld.com/mobility/news/index.cfm?newsid= &pagtype=samechan” title=;techworld.com - gartner warns it to avoid apple’s iphone">telling it to avoid it (really, because itunes is scary to enterprise), business . ’s joshua quittner is reminding the peeps it’s just a regular phone, and wayne smallman is whining that it doesn’t have a flash or telephoto lens. (humor alert: one of those is supposed to be funny, and another is supposed to be hilarious. presentation: transforming your library with technology [innerindex]part of the transformation track, transforming your library, and your library’s future, with technology, program coordinators alan gray and john blyberg (both of darien public library) described it like this: technology can transform your library and its services, as it is transforming the lives of your patrons. from do-it-now technology improvements to next-generation implementations, from software to sopacs, from in-your-face competition to over-the-horizon transformations, three accomplished experts will instruct, enlighten and challenge you to use technology to make your library more relevant to your patrons — today and tomorrow. iphone service plans and coverage? at&t’s current (reasonable) voice and smartphone data plans offer minutes for $ and unlimited data for an additional $ , but previous reports about the iphone suggested that consumers should expect to pay $ /month for service, so we’re left to wonder what’s up. meanwhile, i’ve been asking at&t users about their signal coverage. i’m on verizon now and enjoyed pretty solid coverage throughout dc, even underground. folks on at&t, however, had spottier coverage, even above ground. “as dead as elvis” “the librarian as information priest is as dead as elvis,” needham said. the whole “gestalt” of the academic library has been set up like a church, he said, with various parts of a reading room acting like “the stations of the cross,” all leading up to the “alter of the reference desk,” where “you make supplication and if you are found worthy, you will be helped.” via. down the up escalator running down the up escalator = fun. landing upright = difficult. escalator, running, up, down an almost-manifesto masquerading as a presentation… context: below is the text of my virtual presentation to the lita bigwig (it stands for blogs, wikis, interest group, and stuff) social software showcase. the presentation is virtual, but the round table discussion is going on today, june rd, from : - : p.m. in the renaissance mayflower cabinet room. i won’t be there, though. my bad scheduling got me double-booked and i’m presenting in the transforming your library with technology track. cider drinks black adder = cider + guinness snakebite = cider + harp th century information architecture one hundred years ago the country was in the middle of a riot of library construction. andrew carnegie’s name is nearly synonymous with the period, largely due to his funding for over , libraries between and , but architectural historian abigail van slyck notes that the late th century was marked by widespread interest in community development, with broad recognition of libraries as a means of promoting individual development. trains vs. seat belts i’m not saying i want seat belts, but it always takes me a moment to get used to them not being there on a train. the sky is falling myspace, second life, and twitter are doomed. the rules, [innerindex]web . has matured to the point where even those who endorse the moniker are beginning to cringe at its use. still, it gave me pause the other day when cliff (a sysop) began a sentence with “web . standards require….” web . is now coherent enough to have standards? we used to joke about rounded corners and gradient blends being the rule, but something more has indeed emerged. o’reilly defined web . google gears google gears: create web apps that work offline two books on a shelf… two books that just happened to be sitting next to eachother in the lc files: dlc . s xx dut _a _a . _a(ocolc) _adlc _cpbm _ddlc _apremarc _ad .n _br _atoonder, jan gerhard, _d - _ahet puin aan de rotte, _cdoor j. gerhard toonder. _aamsterdam, _ba. j. g. strengholt _c[c ] _a p. cake robed in chocolate and strawberries like so many women, there are days when my desire for chocolate is nearly overwhelming. however, perhaps because i am a tad high maintenance, my cravings are not satisfied by a mere candy bar. when i crave chocolate i want something rich, decadent, and freshly baked, i want chocolate cake. when one of these cravings coincided with finding the first of the year’s native strawberries i decided to combine the two, the result was the cake you see above. arm wrestling, dung throwing, lawnmower racing, and seed spitting i don’t know whether to thank the pheonix or the fair organizers for this great ad copy, but i hope the washington county fair is as good in as it sounded in : an agricultural fair featuring tractor pulls, stage shows, crafts, and livestock, plus games and children’s contests. adult events include arm-wrestling contests, dung throwing, lawnmower racing, and seed spitting. live country concerts every night. open wed through sat from am to pm, and on sun until pm. go together? just spotted: do hippie skirts and bluetooth headsets go together? star wars stamps found at post office star wars stamps found at post office. will the merchandizing ever end? flag day the us flag with all its stripes and a few of its stars was adopted by a resolution of the second continental congress in . but today, overpriced textbooks and underpaid schoolteachers have sanitized most of our history and hidden the early controversies while fluffing half-truths, leaving us unclear about what that flag really stands for. fortunately, this is america and we’ve got movies to tell us what our teachers didn’t. a three year high report: civilian and military death toll in iraq is up strongly after us “surge.” roy pearson sues custom cleaners roy pearson sues custom cleaners for $ million over lost pants. millions! pants! new hampshire ranks local pride: new hampshire ranks near the top of the list for quality of healthcare services, according to new report. climate change vs. budget planning just as climate change makes hurricanes more frequent and dangerous, noaa says its best tracking satellite is failing and there’s no plan to replace it until . desoto report leaked. desoto report leaked. the highest ranking un official in israel has warned that american pressure has “pummelled into submission” the un’s role as an impartial middle east negotiator in a damning confidential report. echos abound. the neocons were right, so far… the neocons were right so far: civil war is erupting throughout the middle east and iran is feeding the flames. is this really what we (or anybody) wanted? paralyzed paralyzed: they can blow our helicopters out of the sky, and now they’re [destroying the roads and bridges][ ]. are we prepared for [another surge in iraq][ ]? [ ]: http://www.plenglish.com/article.asp?id=% bb c ad- cbf- ab- b e- b a d % d)&language=en [ ]: http://www.huffingtonpost.com/ / / /no- -us-commander-in-ira_n_ .html installing mysql with yum how to install and configure mysql database server wordpress blogging by email the built-in tools don’t support secure pop , but gmail requires ssl pop . the fix? postie. carbon neutral living apm marketplace: news of a british model home. highly insulated, carbon neutral, just % more$. not just a demo, it’s going to be the law: all new uk buildings to must be carbon neutral by . economies of scale are said to reduce or eliminate the added cost by then. down for fifteen years straight, up like a rocket now after being down for fifteen years straight, milk consumption is up. up big, and prices are rising to meet it. stand alone appletv? new gb appletv. how far away are we from a standalone unit that can download from itunes store directly, sync ipods, and write to usb-attached burners? iphone apps = web apps; web apps = iphone apps wwdc: safari for windows!?!? leopard looks sweet, but delayed ’till october. iphone apps = web apps. the new plazes plazes, a kinda-cool, formerly networked-based geolocation tool has just been revamped. they’ve been promoting this change for over a month (i got a cool invite to the launch party, but couldn’t make the flight to germany), and they’re continuing the push now that it’s live. i’ve used the new service for a few days, the company has sent me an email soliciting feedback, i’m offering it. i submitted the following via the site’s contact form, but the message seems to have disappeared, and i prefer public discussion, so i’m reprinting it here: presidential candidates chasing rural votes? presidential candidates chasing rural votes? worth remembering that % of us libraries serve towns of , or fewer people. -fed r-fed defeated, k-fed mourns. missed the paper airplane contest… i missed the paper airplane contest in concord nh today!?!? ultimate frozen mud slide recipe who wouldn’t enjoy a frozen mud slide on a hot summer day? typical recipes call for crushed ice and cream or ice cream. for some reason, we decided to try making them from ice cream, from scratch. the maisonbisson frozen mud slide this recipe requires an ice cream maker, we used the deni scoop factory. . cups heavy cream cup milk cup sugar . cups bailey’s dash vanilla mix ingredients in bowl, then pour into ice cream maker’s freezer container. wheelchair ride mph wheelchair ride in michigan people invent funny words: schaedenfatte okay, now that we all know what a muffin top is, let’s learn about schaedenfatte: schaedenfatte: shaw-den-fah-tuh, etym. from the german, schaedenfraude. (n.) . the feeling of pleasure upon seeing someone for whom one once held unrequited romantic and/or lustful feelings who has now become fat. . the taking of such pleasure. with summer being the season of weddings (and, along with reunions, weddings being the place where people people who haven’t seen eachother for years cross paths…), i suppose you might also call it the season of schaedenfatte. students want libraries iblee points out that students want libraries. asdasd asdasd they vaccinate ducks… they vaccinate ducks against h n bird flu, but not enough. it’s active again in vietnam, where the first human case since has now appeared. regime change… why isn’t the us supporting regime change and democracy in packistan? we’ve given general perv us$ b in aid since ! queasy stomach bush gets queasy stomach when facing other world leaders at g . the poor fellow is being shamed by his peers. open source software and libraries; ltr . , finally the most selfish thing about submitting a manuscript late is asking “when is it going to be out?” so i’ve been waiting quietly, rather than trouble judi lauber, who did an excellent job editing and managing the publication. ryan and jessamyn each contributed a chapter, and i owe additional thank yous to the full chorus of voices that answered so many of my questions, participated in interviews, and generally made the book/journal/thing what it is. what’s up with police? “prosecuting a woman for ‘staring’ at a police dog is absurd,” said her lawyer. “people are allowed to make faces at police dogs and officers to express their disapproval. it’s constitutional expression,” said public defender kelly green, who represented jayna hutchinson. more: what’s up with police? this is the liberal media? what liberal media author eric alterman arrested, mocked at gop debates. poke your tech staff with sticks, and other ideas what a difference a year makes? jessamyn was among those sharing her stories of how technology and tech staff were often mistreated in libraries, but there’s a lot of technology in this year’s ala program (including three competing programs on saturday: the ultimate debate: do libraries innovate, social software showcase, and transforming your library with technology. and still, not all is well. ryan deschamps seems to have hit the button with a post from april of this year. months libby to scoot in for months. is it enough? good for? “what is an atomic bomb good for?” easy mysql performance tips yes, i’m still trying to squeeze more performance out of mysql. and since small changes to a query can make a big difference in performance… here are two really easy things to be aware of: never do a count(*) (or anything *, says zach). instead, replace the * with the name of the column you’re searching against (and is hopefully indexed). that way some queries can execute entirely in the keycache (while * forces mysql to read every matching row from the table). what’s so bad? congressman sensenbrenner: “what’s so bad about shorter winters and global warming?” ironic: lightning strikes church steeple lightning struck the steeple of the saint john the baptist church in allenstown nh saturday. men at work… men at work lead singer has new album: “are you lookin’ at me?” biofuel: good idea, bad practice yes, gas prices are high, and gas doesn’t grow on trees (well, in geologic time it does), but that doesn’t mean that it’s a good idea to run on cars on corn, even if it does grow on, um, trees (yes, alright, cornstalks). i mean, people talk about photovoltaics being inefficient, but wow, think of how much energy it takes to turn a seed into corn, then turn that corn into ethanol and truck it to a gas station. the lawnmowers in ohio from associated press and wavy tv: police said a drunk man drove a lawnmower to a store about a mile from his house. they arrested him on his way home. dondi bowles, , of vermilion was arrested friday night as he drove the mower on a sidewalk. police said a breath test showed that bowles’ blood alcohol level was . percent, nearly twice the legal limit of . percent. industrialized transportation vs. individual choice thought: industrialized transportation first aggregated passengers onto railroads, the broke up into cars…technology empowered the individual, and they embraced it. wish alanis a happy birthday i’m wishing alanis morissette a happy birthday not just because we share a birth month and year, but because it’s a good reason to look back at her cover of my humps and get another smile. but, as long as we’re talking about events in june, we might as well remember that we’re now just days away from paris hilton’s retirement. youniversity “youniversity” big issue… huh, the nasa administrator doesn’t think global warming is big issue. what’s his stance on evolution? speedy php: intermediate code caching i’ve been working on mysql optimization for a while, and though there’s still more to done on that front, i’ve gotten to the point where the the cumulative query times make up less than half of the page generation time. so i’m optimizing code when the solution is obvious (and i hope to rope zach into giving the code a performance audit soon), but i’m also looking at optimizing how php works. bragging about my new office it’s taken a while (we moved in two months ago), but my new home office is finally usable. the big hurdle was my desk. i prefer to stand (or walk) while working, but there aren’t many desks for that, and those that are available are very pricey. so i put together the above from a recycled base, a matching pair of table tops from ikea, and some decorative wall-boxes that elevate the upper surface. books i now want to read… the problem with working on scriblio is that i end up running into so many interesting looking books. just this morning i discovered a number of recent acquisitions in the th century and th century subject feeds in my development instance (also available via rss). all of this is under active development, so those links may or may not work, and the site is definitely changing urls soon. street-level photos in google maps! thanks to ryan eby for tipping me to this. go try it out. whatever you think of them, they do keep delivering. i wonder if people will ask for stack-level photos of our libraries? burninator: kinetic sculpture never looked so hot this is what i get for not following gizmodo faithfully: flaming industrial art. they introduced it saying “do you enjoy fire? do you also enjoy very intricate rube goldberg machines? of course you do.” though a reader there exclaims: it didn’t do anything. for it to be a true rube goldberg doesn’t it have to accomplish some task, like cracking an egg or pouring a glass of milk or something? kids need bowling coaches, desperately there is little doubt that the great diversity of styles and techniques of bowlers from countries enjoying test match status has helped to shape the history of [the sport]. with the recent world-wide implementation of professional coaching schemes, which generally teach only one, or perhaps two optimal ways…, bowling could be in danger of losing its technical diversity. are we therefore on the verge of a new era in which the art of bowling is irretrievably lost? harry potter finale out soon, does book embargo have details? student gets restraining order over facebook photo the associated press reports a composite nude posted to facebook has earned a unh student a restraining order: a university of new hampshire student got a temporary restraining order against another student who combined an image of her face with an explicit photo of another woman’s body, then posted the composite on his facebook page. a judge ordered owen sanborn, of laconia, to stay at least feet away from the woman and barred him from posting her “likeness or name on any internet site,” pending a final hearing. a fair(y) use tale from the chronicle: copyright law, a constant thorn in the sides of scholars and researchers, is generating a lot of public discussion this week, thanks in part to a new -minute video that parodies the law. “a fair(y) use tale” has been downloaded from youtube about , times since it was posted online friday. the video uses cuts from different disney films to mock copyright law as overly protective of the interests of copyright owners — disney among them. google to psyc profile users!?! there it is in the guardian: internet giant google has drawn up plans to compile psychological profiles of millions of web users by covertly monitoring the way they play online games. yep, “do no evil” google has filed a patent on the process of building psychological profiles of its users for sale to advertisers. details such as whether a person is more likely to be aggressive, hostile or dishonest could be obtained and stored for future use, it says… players who spend a lot of time exploring “may be interested in vacations, so the system may show ads for vacations”. redhat selinux gets in my way ack, my wordpress suffers connectile dysfunction on a fresh install of redhat ! not only did i get the above message, but dmesg was filling up with errors like this: audit( . : ): avc: denied { name_connect } for pid= comm=“httpd” dest= scontext=user_u:system_r:httpd_t:s tcontext=system_u:object_r:mysqld_port_t:s tclass=tcp_socket it turns out that i was getting stung by selinux, which is enabled by default in redhat . all the extra security is probably a good idea, if i knew how to configure it, but for the moment it was breaking a live site. surf ‘n turf salad my computer geek husband, who i do adore, joined a flickr photo group called friday food fiesta. a new theme is announced every friday, and everyone contributes a single photo that illustrates that theme. the first themes he contributed to were burgers and pizza, but when salads came up, he needed help. luckily for him, i love making salads. so casey, my husband, asked me to be his partner in crime and create a salad for him to photograph and submit. bringing up the cute quotient of this blog if you ever tire of the kittens on flickr, it turns out there’s no shortage of bunnies on youtube. are you a certified asshole? sure it’s a promo for his new book, but bob sutton is offering us all a chance to see if we’re assholes with the asshole rating self-exam (arse). after questions like “you secretly enjoy watching other people suffer and squirm” (hey, what’s wrong with a little schaedenfreud?) you’ll find yourself placed somewhere on the scale from possible liar to full-blown certified asshole. you don’t sound like a certified asshole, unless you are fooling yourself. customer relations done right rebekka guðleifsdóttir is one of my favorite photographers on flickr. her photos are amazing, and it’s clear a lot of people agree. that’s the easy part. then two problems arose: first rebekka discovered that somebody was selling her photos for profit, and she posted about it. the community was shocked, and angry. and then, and this is the second thing, flickr removed her post about it. and then the storm got worse. increased fuel economy, easy here’s an irony: i used to live in the country, a small town with fewer than residents, and i used to speed. now i live in the city, well, as much of a city as new hampshire can manage, and i’m driving slower. driving slower not just because manchester‘s traffic lights are on timers they leave me listening to crickets chirping at empty intersections while they blindly tick tick tick through the cycles before finally giving me the green (usually just as somebody arrives at the newly reddened light on the other street). wordpress . out wordpress . is out and available for download now! i’m excited because this version includes widgets (by default), some xml-rpc hooks to edit pages (so you don’t need my hacks), a switch to jquery from scriptaculous (matty got me excited about this), full atom support (enough of the different versions of rss!), and the ability to set your mysql character encoding (go utf- !). if that isn’t enough, . is planned for release in september. plasticlogic’s flexible e-paper display plastic logic is a developer of plastic electronics – a new technology for manufacturing (or printing) electronics. the plastic logic approach solves the critical issues in manufacturing high resolution transistor arrays on flexible plastic substrates by using a low temperature process without mask alignment that is scaleable for large area, high volume and low cost. this enables radical new product concepts in a wide range of applications including flexible displays and sensors. people ask me questions: web design software (or is it website management software?) the question: what’s a good user-friendly macintosh web development program? a friend called. she’s thinking of buying dreamweaver, but is afraid it will be overkill. she found frontpage to be easy and needs something similar. my answer: if the intent is to design individual pages on an unknown number of sites, then i don’t have a recommendation. if the intent is to build a site (or any number of sites), then i’d suggest looking at wordpress. wordpress strips classnames, and how to fix it wordpress . introduced some sophisticated html inspecting and de-linting courtesy of kses. kses is an html/xhtml filter written in php. it removes all unwanted html elements and attributes, and it also does several checks on attribute values. kses can be used to avoid cross-site scripting (xss), buffer overflows and denial of service attacks. it’s a good addition, but it was also removing the class names from some of the elements of my posts. it’s not about technology, stupid inside higher ed asks are college students techno idiots? slashdot summarized it this way: are college students techno idiots? despite the inflammatory headline, inside higher ed asks an interesting question. the article refers to a recent study by ets, which analyzed results from , students who took its ict literacy assessment. the findings show that students don’t know how to judge the authoritativeness or objectivity of web sites, can’t narrow down an overly broad search, and can’t tailor a message to a particular audience. l.a. burdick’s cafe and chocolate my favorite place to eat in all of new hampshire is la burdick’s in walpole. it’s a chocolate shop and cafe and i’ve never had anything there that isn’t sinfully delicious. we took my mother-in-law there for mother’s day this year. we started the meal with their delightful cheese plate. this featured four cheeses in a range of intensities, a delightful fruit chutney, olives, seasoned nuts, and crackers. the cheeses were all wonderful and could be purchased at the market next door, many are by local artisans. sausage: the other ground hog the photo is from jessamyn, who declared it groan-worthy. i’m still grinning about it. reminds me of the time homer said “yeah, right lisa. a wonderful, magical animal.” sweet meatcake first it was meat hats, then supermodelmeat. now it’s meat cakes. yes. three layers of meat, with ketchup and potato frosting. it all happened when the groom announced that a man’s cake should be made of meat, ’cause “wedding cackes are all girly.” apparently a red velvet armadillo groom’s cake isn’t manly enough. funny thing, now there’s a growing gallery of meatcakes. (via.) wikipedia the wonder middlebury college banned it, but % of college students and % of college grads use it. twelve year olds point out errors in its competition, while those over are among its smallest demographic — just % (just! %!) say they’ve used it. it’s wikipedia, of course, and the numbers come from a recent pew internet project memo reporting that wikipedia is used by % of the online population and is one of the top ten destinations on the web. is automated metadata production really the answer? (it’s old, but i just stumbled into it again…) karen calhoun’s report, the changing nature of the catalog and its integration with other discovery tools, included a lot of things i agree with, but it also touched something i’m a bit skeptical about: automated metadata production. some interviewees noted that today’s catalogs are put together mainly by humans and that this approach doesn’t scale. several urged building or expanding the scope of catalogs by using automated methods. centos released at work i use red hat enterprise linux, but my personal stuff is served from machines running centos. both distros were just bumped to version , bringing with them support for current components of the lamp stack. i care because i want apache . . , and while it’s pretty easy to get mysql & php on a centos/plesk box, apache . is a bit more of a struggle. gary sims at linux. leopard beta to be released at wwdc those of us hoping for an early release of mac os x . leopard might be disappointed to learn that apple will just be getting around to giving out a “feature complete” beta at wwdc in mid-june. if you really must have it, conference badges are $ , . the leopard beta. available first at wwdc. at the apple worldwide developers conference, we’re planning to show you a feature-complete version of mac os x leopard, and you can take home a beta copy. world’s hottest peppers tabasco thinks their peppers and eponymous sauce are hot. anybody who’s just ate a habanero thinks that’s a hot pepper. but earlier this year, paul bosland of new mexico state university said “damn, i’ve got a hot pepper.” and the guiness world records folks agreed. world’s hottest pepper? bosland had identified the naga jolokia pepper and measured it at over one million scoville heat units, quite a bit more than three times the burn of a hot hot habanero. dewitt clinton on the birth of opensearch opensearch is a common way of querying a database for content and returning the results. the idea is that it brings sanity to the proliferation of search apis, but a realistic view would have to admit that we’ve been trying to do that since before the development of z . in libraries decades ago, and the hundreds of apis that have followed have all well intentioned and purposeful. so what makes makes opensearch something more than an also ran in a crowded herd? awkward moments in social software we all know social networking may be a feature, not an application, but one person’s feature can become another’s bane. so when netflix offers a handy friends feature that makes it easy to share your viewing history and recommendations, it opens itself up not only to the value of social interaction, but also the awkwardness it can sometimes be rife with. titration’s story is instructive: so i have this friend who has invited me to become her “netflix friend” twice now. david halberstam on competition speaking at uc berkeley’s school of journalism last month, david halberstam struck the chord of competition journalists must struggle with. as a newspaper man who started at the smallest newspaper in mississippi and worked his way up to the new york times, where he won a pulitzer for his reporting on the vietnam war, he learned that television’s constant stream of images offered “drama and excitement,” but perhaps incomplete reporting. not that he was criticizing tv, no, he praised it for bringing images and awareness into our living rooms nightly, raising questions among the viewing audience that “we [in newspapers] had the chance to answer if we used our skills properly. mysql error : temp tables and running out of disk space bam: mysql error , and suddenly my queries came to a stop. error is about disk space, usually the disk space for temp tables. the first thing to do is figure out what filesystem(s) the tables are on. show variables like “%dir%” will return a number of results, but the ones that matter are tmpdir and datadir. `show variables like “%dir%”; basedir / character_sets_dir /usr/share/mysql/charsets/ datadir /var/lib/mysql/ innodb_data_home_dir innodb_log_arch_dir miles hilton-barber flies blind from britain to oz i learned of it last night on the cbc’s as it happens: miles hilton-barber, blind since age , has flown from biggen hill, south of london, to gosford, outside sydney, by ultralight in a journey that took almost two months. aviation regulations required he take a sighted co-pilot, but in the as it happens story he explained how his instruments were geared up to give him audio and voice feedback such that he could do most of it on his own. php libraries for collaborative filtering and recommendations daniel lemire and sean mcgrath note that “user personalization and profiling is key to many succesful web sites. consider that there is considerable free content on the web, but comparatively few tools to help us organize or mine such content for specific purposes.” and they’ve written a paper and released prototype code on collaborative filtering. vogoo claims to be a “a powerful collaborative filtering engine that allows webmasters to easily add personalization features to their web sites. remixability vs. business self interest vs. libraries and the public good i’ve been talking a lot about remixability lately, but nat torkington just pointed out that the web services and apis from commercial organizations aren’t as infrastructural as we might think. offering the example of amazon suing alexaholic (for remixing alexa’s data), he tells us that apis are not “a commons of goodies to be built on top of for fun and profit, like open source software.” here are his “six basic truths of free apis:” boris yeltsin: the most colorful, drunk politician since churchill sure, clinton played his sax on tv, bush groped angela merkel, but boris yeltsin gave speeches drunk, tossed women into the water, danced on stage, and generally did all manner of laughable things. but he also turned back a hardline coup by jumping atop a tank and dragged russia kicking and screaming toward democracy. not since cigar chomping, scotch drinking winston churchill led britain through world war ii has the world had a more colorful leader. atomic test photos from los angeles this renewed talk of building nuclear weapons here in the us reminded me of an old report of photos of the sky glow from nuclear tests done in nevada seen over los angeles. this one includes the following description: atomic explosion, the largest yet set off on the nevada test range, was clearly visible in los angeles. staff photographer perry folwer was ready with his camera on a tripod on the roof of the herald-express building when the blast occurred at : a. nukerator, we’re nukrawavable will, cliff (both above), and i recorded this song in one take in late . though, calling it a “take” is overstating it. we were beyond silly drunk and lacked any talent for the task, but we had a mic in front of us, a guitar, and a willingness to open our mouths and let something — anything — fly out. it wasn’t until will said “this song is called nukerator” that we knew what we were supposed to be singing about. csi jumped the shark i’m a newcomer csi: crime scene investigation, i started watching it with season six while suffering a flu that immobilized me for what seemed like a week or more. dumb with illness, i went searching for a diversion at the itunes store and stumbled into the series. i had the entire season downloaded quickly; it took me two marathon days to watch them all. i got hooked. now i’m following season seven, again via itunes. how to: zip files on mac os x it couldn’t be much easier. i’d previously posted command line instructions, but it turns out that there’s a huge number of people who don’t know the easy way: just ctrl-click on the file and select “create archive…” you’ll also find the option in the file menu. either way, you’ll end up with both the original and a zipped copy. decompressing that zip — or any other — is as simple as double-clicking it. ncaa set to ban text messaging between recruiters and high school students college sports are big business, so recruiting student athletes is big business. the ncaa limits the times coaches and recruiters can call or visit athletes, but text messages are all fair game. for now. the chronicle of higher education explained in an october story: before chandler parsons committed to play basketball for the university of florida, his cellphone buzzed more than times a day with text messages from college coaches. are we there yet? still waiting for decent ipod car integration even bob borchers, apple’s senior director of ipod worldwide product marketing, calls most ipod car setups an “inelegant mess of cassette adaptors and wires.” indeed, while apple aparently doesn’t want to get into the car audio business, they do want to improve the in-car ipod experience: what apple really wants you to buy is a car that’s designed from the ground up to interface with the ipod,” the web site said. please, not another wiki ironic secret: i don’t really like most wikis, though that’s probably putting it too strongly. ironic because i love both wikipedia (and, especially, collabularies), but i grit my teeth pretty much every time i hear somebody suggest we need another wiki. putting it tersely: if wikis are so great, why do we need more than one of them? i think my concern is that wikis appear to depend on either very large or very, very active communities. claims of prior art in verizon/vonage patent infringement case vonage has been saying verizon’s patent claims are overly broad for some time, but now people have dug up some prior art. one of the patents verizon is complaining about is # , , , what they call an “enhanced internet domain name server.” in short, it’s all about linking phone numbers to ip numbers, and jeff pulver says he was doing that in with free world dialup, an early, noncommercial voip service. the high cost of innovation: vonage’s patent woes vonage will be in court again tomorrow defending itself against verizon’s claims of patent infringement. the innovative voip company had lost the trial and was ordered to pay $ million in damages in early march, when a jury found them to have violated thee of seven related patents held by verizon. vonage appealed of course, but it’s uncertain if the company, which has yet to turn a profit, has the stamina for a drawn out battle. eco-friendly web design for earth day mark ontkush at ecoiron did some math starting with the department of energy data that showed crt monitors consume less power displaying dark colors than light and determined that redesigning google’s site in black would save megawatt-hours per year (assuming that % of computer users still haven’t upgraded to lcds and are using power-hungry crts). the results were so dramatic he redesigned his own site and developed a low wattage palette that uses only about three or four watts more than a completely black screen (white is to be used only as a text or accent color). “i want my money” my nephew checked his email while he was here this morning and this was the first thing in his inbox. maybe it’s because he’s and my humor is at about the same level, but both of us were cracking up over it. miserable attempt at recovering my dignity with serious criticism: will farrell and landlord prove there is no meaning (or humor) without context. would it be as funny without will farrell (with full afro! reminder: paris hilton to retire in days amid all the “zomg paris hilton is pregnant!” rumors, it’s worth remembering that the girl famous for doing nothing (except repeatedly having her racy photos and video leaked) is retiring in two months. yep, on june th , paris is give up on public life. at least that’s what she said in newsweek: she’s certainly managed to turn herself into an icon and a conglomerate for essentially being a party girl—that is, for doing nothing. deloreans are back in this future if the delorean looks at all like a lotus esprit, it should. both of them were designed by giorgetto giugiaro, and much of the engineering work was done by lotus founder colin—to add speed, add lightness—chapman. amusingly, john de lorean also owned a company that manufactured snowcats under the dmc name. owners and wannabes can join the fun at the delorean motor company open house, being held june — in humble, texas. moveon: we can’t afford bad song parodies in yet another lesson about how a bad joke in front of one audience can trouble a larger public, moveon wants mccain to know bombing iran is no laughing matter. music and bombing, it could be said, really only go well together when joined in criticism. wordpress, permalinks, mod_rewrite, and avoiding s i made a mistake in changing my wordpress permalinks, but by the time i’d discovered it my blog had already been indexed. fixing the permalinks meant breaking those indexed urls, leading to a bad user experience, but leaving them as is wasn’t really an option. last night, after getting ’d while using google to search my own blog, i realized i had to do something. first i looked at apache mod_rewrite and the url rewriting guide (as well as this cheat sheet from ilovejackdaniels), then, frustrated, i found some items in the wordpress codex, including this one about conflicts between . some needs, some of the time i don’t know why i love this quote from a post in panlibus: serve some needs of some parts of the population, some of the time …though my love for the quote may have something to do with my embrace of what opensearch creator dewitt clinton describes as the “ % case,” the solution that would work for the great majority of applications most of the time. it’s one of those things that’s easy to see in retrospect, but difficult to aim for: building a tool that is specific enough to be useful, but not too specific. joost brings television to the internet age (finally) on demand internet tv has been just around the corner since the dawn of the popular internet, but like flying cars, it’s still not here. the problem is how tv streams clog the internet’s tubes. bandwidth may be cheap, but there’s still never enough of it. well, that’s true if your metaphor for the internet is a hub and spoke system. not so if you think of it as a mesh. usability, findability, and remixability, especially remixability it’s been more than a year since i first demonstrated scriblio (was wpopac) at ala midwinter in san antonio. more than a year since ncsu debuted their endeca-based opac. and by now most every major library vendor has announced a product that promises to finally deliver some real improvements to our systems. my over-simplified list said that our systems failed us in the categories of usability, findability, and remixability, and now people are asking me what i think about what i’ve seen from the vendors so far. my boston library consortium presentation speaking thursday at the boston library consortium‘s annual meeting in the beautiful boston public library, my focus was on the status of our library systems and the importance of remixability. my blog post on remixability probably covers the material best, but i define it as: remixability is the quality of a system or data set to be used for purposes the original designers or owners didn’t predict or intend. bsuite bug fixes (release b v ) [innerindex]work on bsuite is progressing well, thanks to help from zach and matt, who are collaborating with me on completely rearchitecting how stats are collected and reported. this, however, is not bs . it’s a transitional release intended to fix some bugs in b and make upgrading easier. this upgrade is recommended for all current bsuite users and new users. bsuite features tracks page loads (hits) tracks search terms used by visitors ariving at your site via search engines reports top-performing stories via a function that can be included in the sidebar reports recent comments via a function that can be included in the sidebar reports top search terms via a function that can be included in the sidebar outputs a pulse graph of activity on your site or specific stories lists related posts at the bottom of the current post’s content suggests posts that closely match the search criteria for visitors who arrive via search engines integrates bsuite_speedcache does some stuff with tags fixed/changed/added as mentioned above, a huge-but-invisible feature here is that this version includes some pieces that will make it easy to transition to the new plugin. mysql errors while creating the tables should now be fixed. it’s my shame that these have persisted so long. the plugin now “rebuilds the tags table” as soon as you activate it. this is a good thing, but if you’ve got a huge number of posts (or a really short max execution time) it might cause a problem (please leave a comment if it does). the related posts feature now works even if you aren’t tagging your posts. if there are no tags, the post’s title is used as a search string. this list is probably incomplete and in some other way inaccurate. it’s not intentional, i’m just sloppy. please leave comments with bug reports or corrections, i’ll do what i can to fix them. finally, i’m now hosting the download on a new server, so it won’t be subject to .mac’s bandwidth consumption limits. is the moller skycar a fraud? will i ever get my flying car? a recent comment here reminded me to check in on our options for flying cars, now at least seven years overdue. it turns out that moller international, the folks developing the m skycar aerodyne, are accepting deposits: as a result of the recent successful hovering flights of the m skycar, moller international is accepting deposits to secure delivery positions for our m skycar until after the skycar has flown from hover to full aerodynamic flight and returned (transitioning flight). yep, skulls are office products, brains not included i don’t know what’s funnier, that amazon sells skulls (just $ , get one now!), or that they’re classified as “office products.” extra: more office weirdness in this video. i’m a fonero, are you a fonero too? now that i’ve moved i’ve finally set up my fonera. i had hoped to offer a story about the process, but it was so simple i can’t really say much more than “i plugged it in, i registered it, it worked.” the fonera is a tiny little router/wifi access point that looks worlds better than the average linksys/netgear/belkin job, but the real sweetness is in what it does that they don’t do. google mymaps and georss o’reilly’s where . conference isn’t until the end of may, but google just released two sweet new map-related features: georss support and mymaps. the georss support means that any application that can output it’s geocoding — as simple as <georss:point> . - . </georss:point> — can now be linked to a live map with no more effort than it takes to paste the feed url into google maps’ search box. google holds this up as the exemplar, but i’m a fan of the cheese photo map here. twitter twitter anti-twitter my own feelings about twitter have gone back and forth across indecision street for a while, and despite a moment of excitement it’s still not part of my life-kit. so i was amused to see blyberg pointing out kathy sierra’s poo-poo-ing of twitter. ironically, services like twitter are simultaneously leaving some people with a feeling of not being connected, by feeding the fear of not being in the loop. by elevating the importance of being “constantly updated,” it amplifies the feeling of missing something if you’re not checking twitter (or twittering) with enough frequency. dawn of the citizen professor? it should be no surprise that journalists are talking about citizen journalism, but what of the disintermediation of other industries? man-on-the-street mark georgiev told marketplace: i didn’t want a certificate, i didn’t want any kind of accreditation, i really just wanted the knowledge. and i also wanted to work at my own pace. georgiev, the story explains, has a masters from yale but wanted to learn programming. that’s when he found foundations of software engineering in mit’s opencourseware. pranks international matt tells us the office pranks he masterminded a couple weeks ago got reported in saturday’s daily mirror (scan above): joker matt batchelder had the last laugh after he was left out of an office conference trip. alone at his desk for a week, the snubbed computer geek dreamed up a series of pranks to greet his boss and three colleagues as they returned… on april fool’s day. cut and paste is a skill too [update: keith pointed out that my small disclaimer at the end isn’t clear enough. this post is copied, stolen, cut and pasted in its entirety from keith’s blog, istp dad. i was glad to learn of the story, and this was meant to be ironic and funny.] an editorial in the washington post is explicit about a topic close to my heart: students think plagiarism is fine, and teachers (high school? moving and shaking and shimmy-ing it’s sort of late by now, and others have been offering their congratulations to me for a while (thank you, thank you, thank you, thank you), but i only just got the paper copy myself and this morning had a chance to browse the list. mover & shaker alumnus john blyberg asked me if i preferred moving or shaking better, but now that i’ve seen the names and read the profiles, i can say i’m just proud to be among such a distinguished group. [good|bad] covers: my humps, interpreted by alanis morissette i’m one of those guys who almost never actually hears the lyrics to the music that’s playing constantly. then somebody covers the song in a beautiful-but-ridiculous way, and i finally clue to them. example: tori amos’ cover of smells like teen spirit. now i hear alanis’ interpretation of the black eyed peas my humps, and i realize that, while not meaningless, it’s on par with lene alexandra’s current single. does it make me old to say that bad grammar in lyrics hinders my understanding of them? economics of open source two fairly old papers on the economics of open source. the news recently has been that open source allows companies to bring in better, more innovative talent and saves marketing costs, but these papers are interesting nonetheless. the simple economics of open source: the nexus of open source development appears to have shifted to europe over the last ten years. this paper explains why this trend undermines cultural arguments about “hacker ethics” and “post-scarcity” gift economies. “smart networks” are a stupid-bad idea this story in mit technology review scares me. instead of letting all computers within the network communicate freely, ethane is designed so that communication privileges within the network have to be explicitly set; that way, only those activities deemed safe are permitted. “with hindsight, it’s a very obvious thing to do,” mckeown says. no matter how obvious it seems, it’s still a really bad idea. it’s hard to imagine a world without the internet now, which makes it especially easy to dismiss the critical features that made it possible. sweet vespa scooter with sidecar on ebay greenstemstudios is selling a sweet-looking vespa with sidecar. in gleaming cinder red and house of kolar black, riding on white wall continentals, “the scooter gets to miles to the gallon and can easily maintain mph even with the sidecar attached.” the starting price is $ , . i’m plenty happy with my scooter, but this is very tempting. emi and apple/itunes to offer drm-free music downloads following steve jobs’ ant-drm post, people began to wonder if apple was just pointing fingers or really willing to distribute drm-free music via their online store. yesterday we learned the answer. apple and emi announced yesterday they would offer drm-free bit aac premium downloads, priced at $ . each. bisson tower siezed with plenty of moving help from zack, matt, cliff, justin, jon, will, and karen, bisson tower went from empty to full quickly enough that we all had plenty of time to sit around and enjoy the lunch sandee cooked up, then retire to the roof with cocktails. the cats were traumatized by it all, but i’m happy to be done with construction and finally be able to enjoy the new place, with all its quirks. web based genealogy software interesting, a lamp solution that promises “the next generation of genealogy sitebuilding.” it does pretty charts and pages, and as any web app should, makes it easy to edit or add information. but it also makes me wonder if there’s an xfn attribute to indicate parent/child relationships. could our work on network identity and social software solve this? for april fools… those looking for this year’s april fools gags should look at the office pranking from last week (pictured above). this blog will henceforth be very serious. not. dance around the world among the pop-culture viral videos i apparently missed is matt harding‘s dancing. i had to turn to wikipedia for an explanation: harding was known for a particular dance, and while videotaping each other in vietnam, his traveling companion suggested he add the dance. the videos were uploaded to his website for friends and family to enjoy. later, harding edited together dance scenes, all with him center frame, with the background music “sweet lullaby. whoosh boom splat bill gurstelle thought the exploding balloons were as funny as i did, and now i understand why: the contributing editor of make magazine knows his way around improvised munitions. he also knows youtube videos of oppressed geeks getting back at the man with potato guns is a good marketing ploy for his audience. whoosh boom splat appears to be his latest book. amazon doesn’t let me look inside, but how can you go wrong with projects like these? who will be first to put a metronaps pod in their library? metronaps started business in with a boutique in nyc’s empire state building, selling minute naps for $ bucks. the company has slowly been opening franchises around the world, but metronaps co-founder arshad chowdhury says overwhelming interest from office folks who wanted to install the pods on-site as an employee perk. so the company redesigned the pods to fit through the smaller doors common to office environments (trust me, retail doors are big), and has started selling direct. apis are big business programmableweb pointed out an informationweek story that claimed % of amazon’s sales in early were attributable to amazon affiliates. and c|net claims amazon now has , aws developers (up from the , amazon was claiming about a year ago). (note: not every amazon affiliate/associate is an amazon web services (aws) developer, but amazon hasn’t shared more specific numbers.) these slides, from amazon’s aws developer relations team explain a lot about what aws is. office prankd! when ken, zach, dan, and dee all went off to a conference without matt, al, cliff, tim, laurianne, and me (but especially matt), they had to assume something would happen in their absence. something. and it did. to each one of them in turn. , square feet of tinfoil covered everything in ken’s office. , post-it notes were tiled over everything in zach’s. cups (many had water in them) covered dan’s floor and desk. idm, openid, and attribute exchange the conversation on code lib about openid reminded me to finish a draft i’d started at identity future on the topic. the short of it is that marc canter says that single sign-on is good, but “we need the attribute exchange to make this thing really take off.” then all the skeptics will realize that the authentication layer had to come first – but was just a first step. along the way we’ll figure out standards for user intrerface and usage flow. japanese lessons from william rowe: zetcho = the apex of the mountain tonsei = to shave one’s head and forsake the world i learned the literal meaning of “karaoke” early last year. heavy skies newley purnell pointed me at this astronomy picture of the day by antti kemppainen: sometimes the sky itself is the best show in town. on january , people from perth, australia gathered on a local beach to watch a sky light up with delights near and far. nearby, fireworks exploded as part of australia day celebrations. on the far right, lightning from a thunderstorm flashed in the distance. near the image center, though, seen through clouds, was the most unusual sight of all: comet mcnaught. world’s smallest horse thumbelina is smaller than a decent dog. so small, in fact, that the guinness folks — no, not those guinness folks — recognize her as the smallest. from boing boing: thumbelina is the world’s smallest horse. she weighs lb and is five years old. she was born on a ranch that specializes in breeding miniature horses. she is thought to have dwarfism, which makes her even tinier. but she’s not alone. spring! spring flowers! uploaded from before the days when flickr would keep the original size photos, this is one of my favorite, most spring-y shots. and with weather like we’re having here now — ° in northern new hampshire! — it’s very appropriate. my personal crisis of digital preservation for a long time i was a big fan of dantz retrospect backup. for while i was so committed that i would do an incremental backup of my laptop and most every other computer in my house every day, but i’ve been using it one way or another since or or so. all those backups have added up, and they’ve even saved me a couple times. i wish, of course, that i’d been using it previously, when my laptop was stolen in , or when my hard drive failed catastrophically in . uc berkeley proud of powerpoint bob gaskins, a former berkeley ph.d. student, conceived powerpoint originally as an easy-to-use presentation program. he hired a software developer, dennis austin, in to build a prototype program that they called “presenter,” later changing the name to powerpoint for trademark reasons. powerpoint . was released in for the apple macintosh platform; later that year gaskins’s company forethought and the program were purchased by microsoft for $ million. the first windows and dos versions of powerpoint followed in . nyt struggles to find young audience, online audience, audience the new york times last week announced that it’s giving away timesselect to students and faculty that hold a .edu email address. timesselect, of course, is the paid access site that debuted in january to a confused and critical web. editor and publisher repeated the times’ claim that they’re doing this for the good of democracy: “it’s part of our journalistic mission to get people talking on campuses,” says vivian schiller, senior vice president and general manager at nytimes. snow spider karen found this spider in the snow yesterday when she wasn’t running for the camera. will spied several more, all moving laboriously over the crystalline landscape. none of us had ever seen spiders on snow before, but it’s likely we’d never looked. charlie the unicorn meg was never shy about asking me what rock i was found under when i stunned her with my complete ignorance of major pop culture touchstones, so i put my mind to it and after significant remedial work i thought i’d caught up. but, no. i’d not seen this video and only discovered it when blyberg pointed at it as an icon of network-enabled pop culture. the candy mountain video has been circulating for almost a year now and it’s a prime example of how network effects are allowing society to disseminate, in this case, popular culture, and ultimately the bulk of information deemed “important” by our fellow citizens snow thrower in my favorite action photo since will cut a woody, karen hit the snow with fury. i missed lebowski fest!?!? as usual, beatnikside had to tell me what i missed: lebowski fest. it looks like everybody was there. the dude jeffrey lebowski, theodore donald ‘donny’ kerabatsos, walter sobchak, maude lebowski, bunny lebowski, the rich jeffrey lebowski with no legs, and his lacky brandt. and don’t forget jesus quintana or treehorn’s thugs. and certainly don’t forget nihilists uli kunkel, karl hungus, kieffer, and franz. twittter twittter twittter ryan tried to tell me about it a month ago, jessamyn gets the idea but uses facebook instead, dewitt fell for it, ross said it tipped the tuna, and now i’m finally checking twitter out. i signed up yesterday and immediately went looking for ways to connect twitter, plazes, and ichat. tweet is an applescript that works with quicksilver (a launcher) and twitterrific (a desktop twitter client) to make updating even easier. oss saves marketing costs, protects business va linux founder larry augustin on oss in augustin’s view open source development became a necessity in the s when the cost of marketing a program came to exceed the cost of creating it. “my favorite is salesforce.com. in they spent under $ million in r&d and over $ million in sales and marketing. that doesn’t work.” “open source enables people to reach all those customers. it’s a distribution model. beyonce and swimsuits not appropriate for librarians my ala email newsletter arrived today with this story: sports illustrated decides libraries don’t need swimsuit issue librarians on publib and other discussion lists discovered in the first week of march that none of them had received the february “swimsuit issue” of sports illustrated. inquiries to publisher time warner eventually resulted in a statement from spokesman rick mccabe that the company had withheld shipment of that issue to some , libraries and schools because for years the magazine had received complaints it was too risqué. linux leads on world’s top supercomputers the real map of the world’s top supercomputers isn’t nearly as us-centric as my screenshot suggests, but the operating system stats are seriously tilted toward linux. over of the top supercomputers in the november report run some form of the free operating system. generic “linux” leads the pack, but redhat and suse are the two most named distributions. non-free operating systems include ibm’s aix, hp-ux, and macos x. spam getting more personal? the viagra and cialis knock-offs being pushed in so much of the spam i get may be directed at things the recipients feel very personally about, but the message itself has never been personal. well, it had never seemed personal to me, anyway, until now. clay shirky pointed out what i’ve started to see, and wonder about, myself: many of the subject lines in the spam i’ve received recently sound familiar, and plausible as a real message. the future of library technology is free, cheap, and social delicious = endoeavor’s course content integrator opensearch = metasearch flickr = digital collections management damn daylight saving doesn’t save npr covered it like an eclipse or astronomic curiosity, and did little to question the claimed energy saving benefits. but, as michael downing asks in spring forward, how can something understood by so few be done by so many? and why go through this twice annual madness? supposedly, we subject ourselves to the rule of time to conserve oil, but even the most wildly optimistic predictions suggest only a % drop in consumption. firecrackers for troops via npr this morning: a michigan man strapped more than , firecrackers onto himself, and lit the fuse. john fletcher publicized it as an effort to support u.s. troops. it was an event to collect cell phones for soldiers. the daily press and argus, in livingston county, mich., shows fletcher standing calmly as the firecrackers explode. afterward he did say he needed some tylenol. livingstondaily.com has has video as well as photos of the fiery seconds of firecracker fury, which worked out a whole lot better than this other soldier-related firecracker stunt. : a torrent of awesomeness or just too much? so, is really the “torrent of blood and awesomeness” that matt says it is (and the preview supports), or does it run out of steam as npr’s film critic, kenneth turan, suggests? unless you love violence as much as a spartan, quentin tarantino, or a video game playing teenage boy, you will not be endlessly fascinated. the problem is that the visual panache that made snyder an acclaimed director of commercials works better for second spots than two hour features. and he-man screams from the top of his lungs “what’s goin’ on” the what’s up? cover would be funny enough on its own, with the he-man video it’s golden. now, you know you want to sing along with the chorus. go for it, here are the lyrics: and so i wake in the morning and i step outside and i take a deep breath and i get real high and i scream from the top of my lungs “what’s going on? charges put internet radio on pause in early the copyright arbitration royalty panel (carp) set royalty rates for webcasters that were twice as high as for regular radio broadcasts. the library of congress reset those rates in late summer (yes, the loc oversees those things). now it’s , and the riaa is at it again. techdirt reports the copyright royalty board is adopting royalty rates the riaa has been asking for, “and making them effective retroactively to the beginning of — meaning that many small independent webcasters are now facing a tremendous royalty bill they’re unlikely to be able to afford. the true spirit of copyright i wrote to c|net, owner of techrepublic and builder.com, asking if i could quote their ten commandments of egoless programming in an issue of library technology reports journal on open source software for libraries and got the following canned response: thank you for your interest in including cnet content on your website. […] there would be licensing fee of $ . associated with use of the cnet logo or text excerpt on your website, or $ . ingenious and almost unusably different lars wirzenius’ linux anecdotes: in january, linus bought a pc. he’d been using a sinclair ql before that, which, like much british computer stuff, was ingenious and almost unusably different from everything else. dell tells linux users where to put it holy smokes. as dell’s sales slump and stock remains flat, the famously unimaginative company is trying to tap into the mob for ideas about what new shade of grey to deliver its hardware in next. and what did the dell ideastorm mob say? “give us linux!” “give us openoffice.” and how did dell respond? “no. no. and, no.” john naughton reports on the story for the guardian, explaining: waiting for mac os x . leopard with rumors of a march release of mac os x . leopard, swirling, zach asked what was promised that he should be excited about, so i went looking to jog my memory. the announced features include time machine automatic backup of all your stuff (with integration to make finding and restoring stuff in applications easy and sweet, watch the video already), as well as a big leap ahead for ichat. internet awesomeness diagram by matthew batchelder above, matthew batchelder’s diagram showing the correct relationship of the internet, awesomeness, ninjas, pirates, dinosaurs, zombies, robots, and gummi bears (though, where are the superheros you might ask). this guy can draw circles around you (and me) found at baekdal.com, where the author expresses some amount of whiteboard-skills envy. the video shows alex overwijk, head of glebe collegiate high school‘s math department (more trivia: alanis morrisette went there) drawing what appears to be a perfect circle. this is something i do in my spare time. i draw freehand circles and then i found out there was a world championship…it’s like winning the masters. once you win, you automatically get invited back every year. google apps and roadshow i was supposed to go to the what i think is a google apps roadshow this morning, but i was also supposed to be at code lib this weeks and be doing a dozen other things that didn’t happen. so, in lieu of that i’m reading up on the company’s first new business strategy since adsense. phil wainewright is skeptical, even mocking at the likely prospects for the premium package that google is offering for about $ per person, per year. links from ryan eby encyclopodia – the encyclopedia on your ipod geocool! – rasmus’ toys page ie and opensearch autodiscovery information management now: social tagging for the enterprise let me show you my credentials “i’m bruce pechman, the muscleman of technology, let me show you my credentials.” this is the instructional video that comes with the dynaflex powerball gyro. the fan videos on youtube have got nothing on this. just click play and prepare to laugh. will and i have been asking to see people credentials since he shared this with me a week ago. middlebury college vs. wikipedia middlebury college is proud to have taken a stand against wikipedia this year: members of the vermont institution’s history department voted unanimously in january to adopt the statement, which bans students from citing the open-source encyclopedia in essays and examinations. without entirely dismissing wikipedia — “whereas wikipedia is extraordinarily convenient and, for some general purposes, extremely useful…” — the decision paints it with a broad brush — “as educators, we are in the business of reducing the dissemination of misinformation. wwan update brings higher speed-mobile connectivity apple’s wwan support update . brings support for the following new cell carrier-based based networking cards (wwan = wireless wide-area networking): available on the cingular network novatel merlin xu expresscard (hsdpa) available on the sprint network novatel wireless merlin ex express card (evdo rev. a) novatel wireless ovation u usb modem (usb adapter, evdo rev. a) available on the verizon network novatel xv expresscard (evdo rev. top ten times two for students back in august educated nation offered the following top ten list of web tools for college students: writely soundslides bluedot.us efax pdf online google calendar google spreadsheets bloglines technorati mynoteit not to be outdone, an anonymous-but-first-person story at nextstudent identifies their top ten: book finder mynoteit ottobib google docs tada list meebo wikipedia zoho show google reader del.icio.us quiet comfort that’s me on jetblue flight to long beach, wearing my noise canceling headphones. sandee saw me wanting them, so she was especially happy to make them a christmas present to me. and, with all the flying i’ve been doing lately, i was especially happy to have them. i wanted the quietcomfort s not just because i like big, old skool, over-the-ear headphones (i don’t, actually), but because i really wanted the extra noise reduction that design offers. let it snow! with over a foot on the ground already, and more falling now the through the night, we’re crossing our fingers for another snow day tomorrow. foods i want to try… despite the mystery, porklets are quite yummy, at least according to sandee‘s recipe. what i want to try next is bacon cheesecake or chili powder on french toast or maraschino cherries mixed with jalapeños. all of those sound delightful to me. extra: sausage man, don’t eat that, don’t try this at home. just pretend it’s all okay ryan im’d this to me, and it was pretty easy to find that northern sun sells them for $ a pop. this is serious stuff, but it’s hard not to laugh at the support our pants magnet or some of the stickers here. this blog is for academic and research purposes only this sign on a computer in the paul a. elsner library at mesa community college caught beth‘s eye and garnered a number of comments, including one from theangelremiel that seems to mark one of the most elusive aspects of library . . they know that none of their classes require gaming excerpting the above as a simple declarative may not be fair, but it gets to the point. let’s say they “know” (that is, let’s say they think they know) that none of the courses requires gaming. treo firmware, dun, frustration john commented to say he’s been using his for dun over bluetooth for a long time now, and that all it takes is the latest firmware. so i go looking and find treo updater . from october and i have to wonder “what firmware does my phone have?” here’s how to check: open the phone application, press ‘menu’, navigate to ‘options’, then ‘phone info’ of course nothing is simple, and a treoaddicts story notes trouble with the update, and the installation instructions are daunting (really, look at ’em). a visual explanation of web . kansas state university‘s digital ethnography group — “a working group of kansas state university students and faculty dedicated to exploring and extending the possibilities of digital ethnography” — posted this visual explanation of web . . it’s by michael wesh, assistant professor of cultural anthropology, and it rocks. text is unilinear…when written on paper. digital text is different. hypertext can link. with form seperated from content, users did not need to know complicated code to upload content to the web. steve jobs’ thoughts on music, music stores, and drm steve jobs’ thoughts on music is surprisingly open and frank, almost blog-like, for the man and the company especially know for keeping secrets. jobs is addressing complaints about apple’s “proprietary” drm used in the itunes music store. there is no theory of protecting content other than keeping secrets. in other words, even if one uses the most sophisticated cryptographic locks to protect the actual music, one must still “hide” the keys which unlock the music on the user’s computer or portable music player. no one has ever implemented a drm system that does not depend on such secrets for its operation. and after offering his view of the situation, he offers three possible futures. the first alternative is to continue on the current course, with each manufacturer competing freely with their own “top to bottom” proprietary systems for selling, playing and protecting music. and the case for doing more of the same is pretty clear. apple’s ipod and itunes music store are successful, and though there are competitors, they’ll have to convince would be buyers to give up their ipods. the second alternative is for apple to license its fairplay drm technology to current and future competitors with the goal of achieving interoperability between different company’s players and music stores. and that’s exactly what people have been asking for. it’s hard to know who wants to use a player that’s not an ipod, but there are some things that don’t play on ipods. but… apple has concluded that if it licenses fairplay to others, it can no longer guarantee to protect the music it licenses from the big four music companies. perhaps this same conclusion contributed to microsoft’s recent decision to switch their emphasis from an “open” model of licensing their drm to others to a “closed” model of offering a proprietary music store, proprietary jukebox software and proprietary players. and finally… the third alternative is to abolish drms entirely. and how does that work? in , under billion drm-protected songs were sold worldwide by online stores, while over billion songs were sold completely drm-free and unprotected on cds by the music companies themselves. the music companies sell the vast majority of their music drm-free, and show no signs of changing this behavior, since the overwhelming majority of their revenues depend on selling cds which must play in cd players that support no drm system. so if the music companies are selling over percent of their music drm-free, what benefits do they get from selling the remaining small percentage of their music encumbered with a drm system? there appear to be none. if anything, the technical expertise and overhead required to create, operate and update a drm system has limited the number of participants selling drm protected music. if such requirements were removed, the music industry might experience an influx of new companies willing to invest in innovative new stores and players. this can only be seen as a positive by the music companies. connectile dysfunction no sooner do i lay down a rant about how bad sprint wifi is than do they run an ad telling us how great their service is. well, not only that, but they promise to save us from “connectile dysfunction.” angela natividad described it best: it’s hard to position broadband ads. you can be like earthlink, which kind of laughs at the whole idea of marketing in general, and you can be like comcast, which takes the easy way out with off-colour humour. wasn’t like for those who watch the ads as intently as the game, it’s hard not to think of apple’s commercial. and from that thin thread, i’m reminded of the ministry of re-shelving and, now, the ministry of love. i discovered the last from a comment here, and after looking them up, i decided to contribute a few copies to the cause. the notes i sent along requested the following: sprint wifi sucks i’m back in oakland airport, but this time i’m bringing my own network and i don’t have to deal with sprint’s wifi mess. see, the problem isn’t just that it costs too much. the problem is that once you pay, you’re plopped at the login page where the login i just created doesn’t work. and worse, the error offers absolutely no clue about why the username i just just created (and paid for! social internet sharing it all started as a simple idea. why should you pay for internet access on the go when you have already paid for it at home? exactly, you shouldn’t. so we decided to help create a community of people who get more out of their connection through sharing. the deal is that you get a special wifi router and use it to securely open your connection to the world. ecto vs. wordpress ecto is finally available in intel optimized form, but wp . ‘s xmlrpc breaks it. cliffy, of all people, tells us how to fix it. now, when is ecto coming out? aside: this blog post explains how to hack up the xmlrpc to extract the tags ecto is sending. this was interesting to me a long time ago, but bsuite handles tags entirely in the post content. open source shifts costs does open source free your budget up for the best talent? i asked her if the choice to go with open source is helping her to keep costs in check, here’s what [dabble ceo mary hodder] said: what happens with open source is you actually spend the same amount of money, but you don’t have lock-in and you pay for really good people to run it. and so you still end up paying. neg’s urban sprinting i might watch more tv if i didn’t live in the us. well, i used to like watching world’s wildest police chases on spike while knocking back a few at the bar after work, but they re-arranged the schedule a while back and it’s just not the same. so clearly i have to sit around waiting for people to forward me goodies like this. yeah, it’s neg’s urban sprinting, which apparently aired on a show named “balls of steel,” and it’s just one in a brilliant series. sealand for sale principality of sealand, a wwii-era gunnery platform called roughs tower, in the north sea outside britain’s pre- three nautical mile claim of sovereign waters, is for sale. yep, the “land” declared by some as the world’s smallest micronation will go to the highest bidder. ravage by fire ( ), beset by marauders ( ), and generally ignored by the world’s governments (all time), it’s, well, it is what it is. and now the pirate bay hopes to buy sealand. communities are as communities do right there are the beginning of esther dyson‘s ten-year-old book, release . , she alerts us to the web . challenge we’re we’re now beginning to understand: the challenge for us all is to build a critical mass of healthy communities on the net and to design good basic rules for its public spaces so that larger systems do self-organize and work effectively. rule-making is not the job of legislatures and governments alone. presentation: collaboration, not competition ala midwinter , alcts future of cataloging presentation: collaboration, not competition. (slides: quicktime & pdf.) stir my writings on the google economy and arrival of the stupendous post with frame four of the alcts and the future of bibliographic control: challenges, actions, and values document: in the realm of advanced digital applications, we are interested in collaboration, not competition. we take as axiomatic the idea that library catalogs and bibliographic databases on the one hand, and web search engines on the other, have complementary strengths. presentation: faceted searching and our cataloging norms ala midwinter , alcts cataloging norms discussion group presentation: metadata and faceted searching: an implementation report based on wpopac. (slides: quicktime & pdf.) faceted searching such as that made possible by wpopac (look for the new name soon) improves the usability of our systems and findability of our materials, but also puts new demands on how we catalog them. my favorite search example is sociology of education, both because it’s a common search in our logs, but also because it demonstrates how our systems can help bridge the gap between what our users know and what our catalogs know. casual friday: the ala midwinter + music video edition the above circulated a while ago, but i post it today to recognize this special ala midwinter edition of casual fridays. and while i’m not suggesting libraries will or should become st century dance halls, lichen’s title, “ . -> . , the video” has some resonance here. and on the theme of music videos that tell stories comes miranda’s yo te dire, which i like both because it’s funny and because i’m instantly attracted to foreign pop culture. let the silence roar okay, before anybody inquires if i’ve gone into boat sales or brings up the bisonboom story again, i need to ask for your understanding. it’s not that i’ve been spending my days trying to pick out just the right shade of red for my new corvette (really i’m not, it’s the lotus i like), or that i’ve been moving to sunny california to take up my new job at google (a year ago i would have been twitching with excitement, now i’m more likely to agree with this). sweet jquery matty discovered jquery at the ajax experience, and his enthusiasm has rubbed off on me. jquery makes coding javascript fun again. well, at least it makes it possible to write code and content separately. and that means that sweet ajaxy pages can be made more easily, and it sort of forces designers to make them accessible from the start. resources: jquery: javascript library getting started with jquery visual jquery . pes films i’ve been loving the pes films i found via this design observer post, and despite featuring his films for christmas day and new year’s eve, there’s still a lot to see. animated peanut butter is about as cool as it gets, even if i can sympathize with the peanut here in drowning nut. casual friday extras that tickle my inner -year-old: roof sex, beasty boy, pee-nut, and prank call. apache . .x on mac os x i’m lazy, that’s all i can say to explain why i hadn’t put any serious thought into upgrading from the . .x version of apache that ships with mac os x to the much more feature rich . .x or . .x. but today i found reason enough to switch my development to . . , and i went looking to the community for information about the switch. a post in marc liyanage’s forums made it clear how easy config/compile was. rusty nail: the maison bisson winter drink the holidays are long since past, here’s a drink to carry you through ’till spring. rusty nail parts scotch part drambuie serve over ice in an old fashioned glass. please enjoy it responsibly. lies, damn lies, and statistics thanks to metafilter for pointing this out, and matty, for putting it to good use. yes, you really can use this to make authoritative looking reports on anything. new year’s fireworks pes offers these fireworks for any occasion, but when better to celebrate than the new year? and thinking of that, if all these clocks are correct, the new year has already started in gmt, which means i’m probably a few drinks behind and need to catch up. holiday violence by the end of it, all the wrapping paper and other material affects of the holidays really do take on air of violence. well, at least they do in pes‘s kaboom. and if you’re amused by that, you might want to see how it was made. happy holidays one goat down, one goat to go cliffy got excited about the gävle goat when his pal derek emailed him about it all. derek was in town, or something like that, and got caught up in the frenzy first hand: “last year some other guy was a bit smarter, hitting it with a flaming arrow from a bow, and he wasn’t caught. it went up in flames!” the goat, of course, is a year holiday tradition. great white solstice while northern-hemisphere inhabitants are enjoying their first day of winter, our cousins in the southern hemisphere are just beginning summer. and in south africa’s shark bay, near gansbaai, the great whites are departing for other waters. the great whites make their way to shark bay annually between september and january, though they are not hunting, and, as rob mousley reports, they “ignore bait slicks (and bathers), swimming through them without any reaction–in contrast to their behaviour at other locations such as dyer island” [link added]. competition, market position, and statistics watch this video a few times. it’s funny. it’s catchy. it’s kitsch. now watch it a few times more. the ad, for a lada vaz , appeared sometime in the s. it reflects the influence of mtv and other cultural imports from the west, but the details betray it’s command economy provenance. the snow appears trodden and dirty, the trees barren, the background architecture bleak. the car has headlights that flash in time to the music, but their dim yellow glow fails to dazzle. welcome to your world in pointing this out to me, lichen noted “if this isn’t evidence that web . is an undeniable force, i don’t know what is.” “this,” of course, is time magazine‘s announcement of the person of the year. and the answer is you. yes, you. michael stephens was right on top of it, pulling this quote: …but look at through a different lens and you’ll see another story, one that isn’t about conflict or great men. helsinki complaints choir though some people prefer the birmingham choir to helsinki’s, there’s certainly something to be said about complaining in song, and something more when it’s in a language i can’t begin to understand. one blogger remarked of the video: to think of what might of been. what if i’d moved in with a bunch of angst ridden finns,instead of pseudo-happy baptists, and been forced to sing their rants along with them. wish i could be there… harry shearer and judith owen are performing their holiday sing-a-long at the concert hall at the society for ethical culture in nyc with guests tmbg and others. it’s a go on friday, but why can’t these things happen closer to me? actually, maybe they should all come to warren afterwards. memcached and wordpress ryan boren wrote about using memcached with wordpress almost a year ago: memcached is a distributed memory object caching system. wordpress . can make use of memcached by dropping in a special backend for the wp object cache. the memcached backend replaces the default backend and directs all cache requests to one or more memcached daemons. you must have a memcached daemon running somewhere for this to work. unless you’re managing the server on which your blog is running, you probably can’t run a memcached daemon, making this backend useless to you. wordpress . + wpopac i’ve been following wp . development, but aaron brazell’s post in the development blog wrapped up a lot of questions all at once. the short story is that . is going to bring some really good changes that will allow more flexibility and better optimization of wpopac. of the four changes brazell names, the last two, the addition of the post_type column and a change in usage of the post_status column, are where the money is. woot! woot! the press release: making libraries relevant in an internet-based society psu’s casey bisson wins mellon award for innovative search software for libraries plymouth, n.h. — you can’t trip over what’s not there. every day millions of internet users search online for information about millions of topics. and none of their search results include resources from the countless libraries around the world—until now. casey bisson, information architect for plymouth state university’s lamson library, has received the prestigious mellon award for technology collaboration for his ground-breaking software application known as wpopac. flightplan perhaps it’s just because i’m in the air again today, but i’m fascinated by aaron koblin‘s animation of aircraft activity, illustrating the pulsing, throbbing movements of aircraft over north america. nah, this is hot. you’ll love it too. also worth checking out: koblin’s other works. flickr interstingness patent…application it’s old news (boing boing and slashdot covered it a month ago), but flickr’s patent application is a bit troublesome. it’s not that they’re trying to patent tagging (they’re not), it’s that they’re trying to patent the things library folks have been wanting to do (and in some cases actually doing) for some time. media objects, such as images or soundtracks, may be ranked according to a new class of metrics known as ”interestingness. lemurs movin’ it thank jon for pointing out the above. actually, you should go read his post on the matter because, well, it gave me a chuckle and it’s certainly better than going shopping today. and then the feds blocked me via a friend who coordinated a program i presented at not long ago i received this message about difficulty accessing my blog post with notes from the presentation: do you have the notes electronically that you could send? believe it or not our federal government internet filter is blocking access to the blog site below…..big brother is truly at work these days….. jessamyn has been dealing with this for a while now, but this is the first i’d learned that i’d been blocked. will it blend? go now to willitblend.com and offer your suggestion for something new. want to see a bacon cheeseburger with pickles and grilled onions? go for it. parsing marc directory info i expected a record that looked like this: leader nas ia c mau u p uuua eng /rev dlc|caug psmm f . |b.a f . |b.a appalachian mountain club the a.m.c. white mountain guide :|ba guide to trails in the mountains of new hampshire and adjacent parts of maine amc white mountain guide white mountain guide a. second school? rebecca nesson, speaking via skype and appearing before us as her avatar in second life, offered her experiences as a co-instructor of harvard law school‘s cyberone, a course being held jointly in a meatspace classroom and in second life, and open to students via harvard law, the harvard extension school, and to the public that shows up in second life. nesson has an interesting blog post about how it all works, but she also answered questions from the audience about why it works: social learning on the cluetrain? they don’t want to engage in chat with their professors in the classroom space, they want to chat with other students in their own space. — from eric gordon’s presentation this morning. hey, isn’t that the lesson that smart folks have been offering for a while now: “nobody cares about you or your site. really.” how could learning environments not be subject to the same cluetrain forces affecting the rest of the world? social software in learning environments it’s really titled social software for teaching & learning, and i’m here with john martin, who’s deeply involved with our learning management system and portfolio efforts (especially as both of these are subject to change real soon now). aside: cms = content management system, lms = learning management system. let’s please never call an lms a cms…please? on the schedule is… social software in the classroom: happy marriage or clash of cultures? displaying google calendars in php ical php icalendar solves a couple problems i’m working on, but i needed a solution to fix the duration display for gcal-managed ics calendars. as it turns out, a fix can be found in the forums, and the trick is to insert the following code in functions/ical_parser.php. case 'duration': if (($first_duration == true) && (!stristr($field, '=duration'))) { ereg ('^p([ - ]{ , }[w])?([ - ]{ , }[d])?([t]{ , })?([ - ]{ , }[h])?([ - ]{ , }[m])?([ - ]{ ,}[s])?', $data, $duration); $weeks = str_replace('w', '', $duration[ ]); $days = str_replace('d', '', $duration[ ]); $hours = str_replace('h', '', $duration[ ]); $minutes = str_replace('m', '', $duration[ ]); $seconds = str_replace('s', '', $duration[ ]); // convert seconds to hours, minutes, and seconds if ($seconds > ) { $rem_seconds = $seconds % ; $minutes = $minutes + (($seconds - $rem_seconds) / ); $seconds = $rem_seconds; } if ($minutes > ) { $rem_minutes = $minutes % ; $hours = $hours + (($minutes - $rem_minutes) / ); $minutes = $rem_minutes; } $the_duration = ($weeks * * * * ) + ($days * * * ) + ($hours * * ) + ($minutes * ) + ($seconds); $first_duration = false; } break; hopefully this gets worked into the baseline with the next release. rock paper scissors this weekend’s fifth annual rock paper scissors world championships have ended, and brit bob cooper has come out a winner. the toronto event drew a reported competitors and spectators from u.s. states, four canadian provinces, norway, new zealand, australia, wales, the uk and ireland and paid a top prize of can$ . “i went through extensive training, read ‘the official rock paper scissors strategy guide’, and studied the possible rps gambits before competing,” said cooper. mushaboom remix props to tim for offering linking me to a remix of feist’s mushaboom. i like the original better, but, well, i’m also a fan of remixes. i feel great transcipt: what? oh, yeah. i feel great. larry, i’m quittin’ the company and startin’ my own. and by the way, i feel great. steve, you’re a great guy with great skills, you’re gonna do great. *pounds fist* what the hell, i’m comin’ with ya. ooohhhhfff. hey, you’re hot and i feel great. let’s get married. alright, but i want lots of kids. me too. five hundred of them. *slams file drawer* ooohhhhfff. and fell the wall it’s worth taking a moment to remember that the berlin wall fell this day in . though orders had been been given, they were botched by east german propaganda minister günter schabowski, who mistakenly announced in a press conference that restrictions on border crossings would be lifted immediately. in fact, restrictions were to be lifted the next day. tens of thousands of east berliners heard schabowski’s statement live on east german television and flooded the checkpoints in the wall demanding entry into west berlin. art vs. the google economy in an anomaly that we would eventually recognize as commonplace on the internet, touching the void, a book that had gone out of print, remaindered before it hit paperback, was all but forgotten, started selling again in . chris anderson wondered why, and found that user reviews in amazon’s listing of publishing sensation into thin air had people recommending touching the void as a better read. today, touching the void outsells into thin air to . ministry of truth = george bush’s whitehouse the huffington post pointed out how the white house is doctoring video of bush’s “mission accomplished” speech from may . visitors to whitehouse.gov now get a video that crops out the mission accomplished sign. how orwellian will this president get? “the future of evil is in manipulating information.” i hope you’re all voting today okay, even if this diesel sweeties cartoon is a little disheartening, please vote. the fact is, vote suppression is probably more likely than vote fraud. a tip of the hat to lichen for alerting me to this, and for making the point that our users’ notions of “authority” are among the fastest changing features of our post-google world. arlington east the above photo and some others were forwarded to me by a friend. the body of the email included: a few friends of mine participated in this event on saturday. there wasn’t a lot of media coverage, but npr and the cct. the photos show markers representing american dead in the iraq war, and markers representing just a small percentage of the approximately , iraqi dead from a memorial held on cape cod on october th, . the political parties in vermont cliff took a picture of his absentee ballot because the new parties were just too good: dennis morriseau is the impeach bush now candidate for congress and peter moss is the anti-bushist candidate for senate. midterms mentioned earlier, but worth mentioning again: truemajorityaction’s take it back campaign. among the videos and political graffiti of the moment, don’t miss freedom, beat box bush, and <a href="http://video.google.com/videoplay?docid= ” title=" / , shock & awe: clip from “hijacking catastrophe” - google video">hijacking catastrophe. and as funny as the brazillion joke is, we need a government that doesn’t lie, a government that’s smart, a government that cares for its people, its soldiers and foreign civilians and our elections. network-enabled snooping in the physical world we’ve got ocr. we’ve got cameraphones. we’ve got web-based license plate lookup services. amazon japan has a fancy cameraphone-based product search feature. what’s more naive, imagining that somewhere somebody has a sms/mms-based license plate snooping and facial recognition services and fingerprint scanners, or imagining that they don’t? political graffiti found by lorelei in copenhagen. discovered by kieran’sphoto’s’ in cork. freedom (video) karen forwarded mgarthoff‘s freedom, tagged: bush war election midterm iraq katrina on youtube. presentation: designing an opac for web . maiug philadelphia: designing an opac for web . (interactive quicktime with links or static pdf) web . and other “ . ” monikers have become loaded terms. but as we look back at the world wide web of , there can be little doubt that today’s web is better and more useful. indeed, that seems to be the conclusion millions of americans are making, as current estimates show over million users in the us, including % of youth - . advice you didn’t ask for on writing: first figure out your story, then tell it. anything else is masturbatory. the solution is in your hands currugated_film‘s photo of graffitti in oaxaca. the caption at flickr notes that the text to the right says “the solution is in your hands, the rocks are on the ground.” two ton: one night, one fight tony day is june th, but today is the day i received my copy of joe monninger’s latest work, two ton: one night, one fight — tony galento v. joe louis. i learned a lot about the characters and times during the two years of research joe invested in the book, but other than sneaking peaks at the manuscript, i’ve not had a chance to learn the whole story of how tony galento ended up in the ring against joe louis — and knocked him down. all about atlatls…or…humans need to throw things in classic wikipedia-voice, an atlatl is… an atlatl (from nahuatl ahtlatl [?ah.t?at?]; in english pronounced [???t?l??t??] or [??t?l??t??] ) or spear-thrower is a tool that uses leverage to achieve greater velocity in spear-throwing, and includes a bearing surface which allows the user to temporarily store energy during the throw. […] a well-made atlatl can readily achieve ranges of greater than meters. atlatl bob describes it more passionately: damn that’s big the switzerland‘s verzasca dam is now added to the list of places i’d like to visit. linkability fertilizes online communities redux i certainly don’t mean this to be as snarky as it’s about to come out, but i love the fact that isaak questions my claim that linkability is essential to online discussions (and thus, communities) with a link: linkability fertilizes online communities i really don’t know how linkability will build communities. but we really need to work on building support platforms for the public to interact with the library and promote social discussions, whether offline or online. googlesmacked at a time when people are still wowing over the google-youtube deal (and wondering why their . company didn’t get bought for $ . billion), it’s good to know that marc cantor is dead down on it. not because of the copyright issues or “limited” advertising potential of youtube that others cite, but apparently because he just doesn’t like google anymore. to wit, he names orkut as a failed social network; knocks blogger as an also-ran; disregards google base as pointless; labels adsense a $ billion cash machine for sergey, larry and eric; tosses aside gmaps, gmail, gcalendar, gscholar, gbooks, and gtalk as “unrelated, random output of the labs, thrown up to justify their r&d expenditures;” and closes with an ominous warning: cheap and broken above, one of sandge‘s contributions to the the toy cameras pool reminds us that good photography is something that often happens despite the equipment, not because of it. of course, no sweeping generalization can go without argument, and in this case i think the toy camera enthusiasts would be joined by the glitch art aficionados, like roninvision, who apparently made a mistake while scanning to give us this: flipbook animation i love this flipbook animation on youtube (jump ahead to about : for it), even if the live-action preface is somewhat tiresome. and even with that, it still doesn’t rate as bad as some viewers think it is. this is the “making of” / behind-the-scenes sneak peak at my upcoming movie “annihilation”. i had hoped to finish annihilation in time to turn it in for my cinema class, but i didn’t… so i had to make a movie about my failure to complete the movie, and turn that in instead. cataloging errors a bibliographic instruction quiz we used to use asked students how many of dan brown’s books could be found in our catalog. the idea was that attentive students would dutifully search by author for “brown, dan,” get redirected to “brown, dan -,” and find three books. indeed, the expected answer was “three.” as it turns out, my library has all four of dan brown’s published books, including the missing digital fortress. what do you call a group of ninjas? from askmefi: “you know, like gaggle of geese, murder of crows, school of fish, all that. does a group of ninjas have some sort of descriptor? we’re talking many people in halloween costumes, how to address them together. the { blank }.” aside from the inevitable brush to ask a ninja, answers included: sir, sir, sir, and sir one ninja, many ninjim. and the collective is a flipout of ninjim a hedge of ninjas. the candy bar metaphor eleta explained it this way, and credited it to r. david lankes: your data: your _meta_data: butane handwarmer mt. moriah, this time better than last time. eat-rite diner, st. louis mo some time ago in st louis, i stumbled upon eat-rite diner. aparently i wasn’t the first to be taken in by its charms. yelp notes: this is a must in st. louis. however don’t go here for the friendly staff, good food, or fun atmosphere. this place is a joke! they will need to buzz you in the door to come in and try the delightful slinger. eat right or don’t eat at all! teddy bear kills , fish from associate press: concord, n.h. — a teddy bear dropped into a pool at a hatchery in milford, n.h., killed all , rainbow trout living in the pool. fish and game department hatcheries supervisor robert fawcett said the teddy — dressed in a yellow raincoat and hat — clogged a drain earlier this month, blocking oxygen flow to the pool and suffocating the fish. in a statement, fawcett noted: “release of any teddy bears into fish hatchery water is not permitted. what’s so great about adium? brian mann calls adium “one of the best multi-network [im] clients ever.” tim bray says it has a “wonderful user interface,” while also naming im generally “an essential business tool.” eric meyer, meanwhile, exclaims “adium is my new chat buddy.” what’s so great about adium? gaim is the engine behind the scenes, but the face of the application is xhtml and css. wit meyer: the entirety of an adium chat window is an xhtml document that’s being dynamically updated via dom scripting—all of it pumped through webkit, of course. isbn api followup a couple questions about my api to convert digit isbns to digits pointed out somethings i failed to mention earlier. first, the api actually works both ways. that is, it identifies and validates both and digit isbns on input, and returns both versions in the output. example: and - . and, as yet, i have no user agreement or usage policy. except for the disclaimer — don’t blame me if it’s broke — i’m leaving this open (though i’ll probably have to figure something out for future apis). inclusion is addictive lichen, who’s had a great string of posts lately, pointed out amy campbell‘s website, which opens with the following: so i guess this myspace thing is going to catch on. i resisted for a long time. these things make me nervous – myspace, messenger, emoticons… i can’t help but see it as some sinister forerunner of the complete degredation of language and of human interaction. i’m worried about a generation of people who’s definition of “friendship” consists first and foremost of an anonymous exchange of links. my own garlitz bob garlitz dropped by with a couple canvases yesterday — untitled and teng. it’s an honor i’d appreciate even if i wasn’t looking for something to cover my bare office walls. converting between isbn- and isbn- david kane asked the web libbers: can anyone tell me what the conversion between isbn- and isbn- is, please. i need to write a little conversion program. anything in php, for example. answers: “there is already an online converter: http://www.isbn.org/converterpub.asp;” some pointing at wikipedia on isbns, bookland, and eans; john blyberg’s php port of the perl isbn- / tool; some explanation that you have to watch the check digit, and discussion about why you’d need to do all this conversion. i am not a terrorist i am not a terrorist. i am not a terrorist. i am not a terrorist. democracy now! burning patriotism! beat box bush and dj cheney bush speech mashups rock. from google video: so, you wanna learn how to beatbox? gwb is back with another amazing performance. surprisingly he is actually very good. previously: state of the union? not good. also, note the tags on that video, and the way somebody snuck “????? ??? ? ???” past the filters. teddy bear cries red tears southtyrolean, who seems to take an interest in found graffiti posted this one (from graz)to his flickr stream, describing it: in the sackstraße, near kastner&Öhler (entrance to the car park for bikes) :: in der sackstraße, neben kastner&Öhler (eingang zum fahrrad-abstellplatz) i especially like this one. “this would make a really great blog post…” another great comic from xkcd: “i feel like i’m wasting my life on the internet. let’s walk around the world.” “sounds good.” [panels showing the world’s great beauty, a truly grand adventure] “and yet all i can think of is ‘this will make for a great livejournal entry.’” rocking wirelessly: verizon’s v evdo card after vacillating for a while (and waiting for it to become available), i finally purchased one of the verizon / novatel v express card evdo adapters that everybody’s talking about for my macbook pro. gearlog promised it would be easy — simply install drivers, plug in card — but they were wrong. truth was that i didn’t even have to install the drivers. mac os x asked me if i wanted to “activate” the card when i plugged it in, then automatically went about configuring everything. whitcher sawmill burned i described it to jessamyn in an im last night: lights flickering here, sirened vehicles passing frequently, smell of smoke hangs in air outside the globe reported it this way: warren, n.h. — a sawmill went up in flames during the night in warren (new hampshire). fire officials say they may never know what started the flames at the k.e. whitcher mill around ten o’clock last night. should universities host faculty or student blogs? (part : examples and fear) our cio is asking whether or not plymouth should get involved with blogs. not to be overly academic, but i think we should define our terms. despite all the talk, “blogs” are a content agnostic technology being used to support all manner of online activities. what you’re really asking is instead: what kind of content do we want to put online, and who do we want to let do it? library camp east lce was a success. let me quickly join with the other participants to offer my appreciation to john blyberg and alan grey for all their work planning the event, as well as darien public library director louise berry and the rest of the library for hosting the event. side note: darien is a beautiful town, but we all have to learn to pronounce the name like a local. michael golrick and john blyberg each have a number of photos on flickr, and i’m jealous of those like lichen rancourt who can live-blog events like this. scotchtober fest new hampshire’s highland games are back where they belong in lincoln nh. fittingly for the highlands theme, the weather saturday was cold and misty, with fogs rolling over the hills. i half expected lorna doone herself to appear. the games, of course, are “scottish heavy athletics” involving the throwing (though sometimes carrying) of just about anything that can be found. rocks… hammers… sheep… trees, they all count. well, the “sheep toss” is actually the “sheaf toss” and is intended to measure an athlete’s ability to toss hay to the top of the pile. with all voices now… preaching to the choir, or encouraging them to sing louder? truemajorityaction‘s take it back campaign amuses, but will it motivate the middle? will you join? kid koala’s fender bender while looking up bonobo — who is soon to have a new album out — i discovered not only some videos of his tunes, but also a path leading to videos from other nijna tune artists, including this goodie from kid koala. namiacs mr. pro-life and his wife, kirsten faith pro-life why not? does anybody know a way make a reverse-ordered — think countdown — ordered list without resorting to non-semantic (though ingenious) css tricks? wp ssl one wonders why ssl support isn’t built-in to wp. until then, this noctis.de post offers some tips. it be talk like a pirate day, matey hop to it, dogs. peer an eye at thar video and argue not w’the cap’n: tuesday september th is talk like a pirate day! talk like a pirate day only comes once a year (on september th), this year it falls on a tuesday. if you’re not ready yet, you can learn more about this international holiday on the about tlapd page or practice some phrases from the piratephrases page. our responsibility: teach our children how to talk like a pirate early for future success there’s no question that the video mentioned this morning is valuable resource for all of us, but our responsibility to our nation’s future demands more. the good folks at cook memorial library in tamworth nh are an example to us all with their series of instructional sessions in preparation for talk like a pirate day. microsoft vs. bloggers in accusations of msn spaces censorship i’ve been citing pieces of branding consultant james torio‘s master’s thesis for some time now. but because the thesis is long, and i want to cite a few small pieces, and those pieces aren’t directly url addressable, i’m quoting them here. clickable urls are added, but everything else should be exactly as torio wrote it. (also related: why there’s no escaping the blog and msn spaces isn’t the blogging service for me.) info on geo tags in the wp codex does this mean that geo stuff is built-in to wp? php array to xml i needed a quick, perhaps even sloppy way to output an array as xml. some googling turned up a few tools, including simon willison’s xmlwriter, johnny brochard’s array xml, roger veciana associative array to xml, and gijs van tulder’s array to xml. finally, gijs also pointed me to the xml_serializer pear package. in an example of how even the smallest barriers can turn people away, i completely ignored the two possible solutions at php classes, because navigating and using the site sucks. mysql fulltext tips peter gulutzan, author of sql performance tuning, writes in the full-text stuff that we didn’t put in the manual about the particulars of word boundaries, index structure, boolean searching, exact phrase searching, and stopwords, as well as offering a few articles for further reading (ian gilfillan’s “using fulltext index in mysql”, sergei golubchik’s “mysql fulltext search”, joe stump’s “mysql fulltext searching”). it’s one of a number of articles in the mysql tech resources collection. sysop humor i got tipped to this geeky-funny comic that deserves reposting here for casual friday: always san fran from the west coast comes this tale– a friend of mine is part of maxine hong kingston’s veterans writing group. they are publishing a collection of their work this october “veterans of war, veterans of peace,”, and he was invited to a reading in san francisco. they are a program up there called “drinks with writers” that moves from restuant to restuant once a month. people come, have drinks, writers read, they talk. sweet sumolounge omni a sumolounge beanbag chair is a beanbag like a maserati is a car. but even that doesn’t properly characterize the difference. for starters, it’s big — over five feet on one side. not big enough for the whole wrestling team, but big enough for cuddling. a bit bigger and i’d go looking for sheets and call it a bed, as it’s also comfortable. the website calls it a “crash mat, lounge chair, loveseat or floor pillow,” but whatever you call it, you’ll settle into it like an addictive personality to a bad habit. making plans for library camp east in the list of things i should have done a month ago is an item about making my hotel reservations for library camp east . fortunately, john blyberg notes that alan gray has arranged for a special rate doubletree hotel in norwalk, not far from the site of the event. apple’s itv — from ! the original apple press release is gone (and gone from the wayback machine too), but back in apple announced a different set-top box, also called the itv, for a six-state trial of interactive television services. apple’s itv system incorporates key technologies including a subset of the macos, quickdraw and quicktime. in addition, it includes an mpeg decoder and supports pal and ntsc video formats as well as e and t telephone protocols. the church of september th david moats did some hard thinking on oliver stone‘s world trade center. “[i]t occurred to me that the problem with the movie is that five years later we remain stuck in the moment. we haven’t really moved on.” we’ve not been able to move on from / because we’re still mired in the mistakes that followed from / . many people responded with bravery, including the service men and women who found themselves caught up in one struggle or another. top gun: a requiem for goose teamtigerawesome‘s top gun: a requiem for goose is more than funny, it’s the sort of thing a person should mine for insults and one-liners to use later. of course, the recent tom cruise flap doesn’t dampen it any. from the title cards: on march , president harding established the swingenest, scientologist, dew drop of a flight school in all . now, you boys may think that you are the high-hattenest group of flyboys ever to shoot down a mrs. laura veirs hey folks! good news. the young rapture choir cd is now available from raven marching band records. this album is an amazing collection of songs written by laura veirs, and performed by a choir of school children in cognac, france. it was recorded live in april by tucker martine. the packaging is all handmade and it’s a wonderful recording. this is a lovely, limited edition cd — we only made , — so get one quick at http://www. newertech firewire go pcmcia/cardbus card target disk mode? all my searching seems to confirm my hazy memory that my olf newertech firewire go card does indeed support target disk mode, but the old “hold t while booting” trick doesn’t seem to be working. another shady part of my memory is that the key command was different, but what is it? either google is failing me, or it really isn’t online anywhere. help? mac os x vnc, built-in sure it’s old news, but i am pretty happy that mac os x . has a built-in vnc server. you’ll still need a client, like chicken of the vnc, but it couldn’t be much simpler to make work. though, you could run a separate server app (even several instances of it) and work up a hack like this to allow you to have several people all logged in to the same machine (and getting different screens) simultaneously. crocodile hunter steve irwin dead tv star and crocodile hunter steve irwin is dead after being <a href="http://www.injurywatch.co.uk/news-and-groups/news/marine-incidents/australia-s-crocodile-hunter-steve-irwin-killed-by-a-stingray- ” title="australia’s “crocodile hunter” steve irwin killed by a stingray — injurywatch">stung by a stingray on australia’s great barrier reef. blue marlin spears fisherman from the royal gazette: an angler was almost killed when a giant bill fish leapt from the sea, speared his chest and knocked him off his boat in a freak accident at the weekend. ian card, from somerset, was impaled by the blue marlin and forced overboard during an international sports fishing tournament on saturday morning. his father alan, skipper of the commercial fishing vessel challenger, watched as the struggling creature — estimated to weigh about lb and measuring ft in length — flew through the air and struck the -year-old, who was acting as mate, just below his collarbone with its sword-like bill. remember, he’s really big in germany blame bentley for this. and, as noted in a comment there, “it’s so amazing how [david] hasselhoff has this entire other career that doesn’t exist in the us, except for mocking purposes.” lyrics: beware the pretty faces that you find. a pretty face can hide an evil mind. oh be careful what you say, or you’ll give yourself away, odds are you won’t live to see tomorrow. the competitive advantage of easing upgrades zdnet’s david berlind complains that upgrades are painful: upgrading to new systems is one of the most painful things you can possibly do. if you’re a vendor of desktop/notebook systems, it also represents that point where you can keep or lose a customer. today, most system vendors have pretty much nothing from a technology point of view that “encourages” loyalty. upgrading from an old dell to a new dell is no easier than upgrading to a system from a competing vendor. things i need to incorporate into various projects memcached, a “highly effective caching daemon, …designed to decrease database load in dynamic web applications,” and the related php functions pspell php functions related to aspell and this pspell overview from zend http_build_query, duh? current connected mysql threads * unix load average = system busy; reduce operations when $system_busy > $x missiles are the new ied i’m not going to make this point well, but let me try. now that we’ve recognized the long tail of violence and the “open source insurgency” and seen the hezbollah missile threat, it’s hard not to imagine a growing threat from enemy or terrorist missiles. in short, as technology becomes cheaper, the weapons people can use against us become more complex. iran and north korea have been developing and testing missiles for some time, but the pound gorilla here is russia. flickr to get all geotaggylicious? when dan cat gets cagey, and people are talking about mysterious map buttons in flickr a guy has to wonder…is this why the lines between dan’s hobby and day job are so blurry? update: ryan eby points out that the map is live! lurk, cut, paste and it is cutting and pasting but what other names are there now for it?? for looking at other websites, following the site and lifting off passages and putting them onto your own site– for one reason or another?? i found bookish.dk while looking up info on denmark about a year ago. finally this may, lifelong wish, i finally got to copenhagen for two days. karen b is a scotswoman who has seeger’s springsteen made the mistake of complaining about bruce’s new album. i knew i was risking the age thing, and sure enough– i downloaded finally, with too much anticipation, bruce’s new seeger sessions. i haven’t heard b much lately but his voice sounds like its shot?? seeger did his work with such a rich voice, deep and subtly modulated. this album is beautifully produced, the backup band is greatvoice and nearly too much. stranger than crazy every so often you want to know more about real gypsies. this film is where to start when that time comes round again. romanian gypsies portray themselves in gajo dilo. the crazy stranger in question is not a gypsy but a visiting young frenchman, played by the wonderful romain duris. we just have to go do the work nicholas lemann, in a story on blogging and citizen journalism in the august issue of the new yorker: [n]ew media in their fresh youth [produce] a distinctive, hot-tempered rhetorical style. …transformative in their capabilities…a mass medium with a short lead time — cheap…and easily accessible to people of all classes and political inclinations. and quoting author mark knights: …a medium that facilitated slander, polemic, and satire. it delighted in mocking or even abusive criticism, in part because of the conventions of anonymity. swimming in spam, but customer support comes through i awoke this morning to a bit of a mess. after enjoying months of spam-free bliss thanks to akismet, i found over a hundred spam comments for pills and free pictures to suit most any need or desire. spam has snuck through before, but never in this volume, and akismet has always been quick to learn from my manual corrections and stop further leaks. not this time. so i began to panic. reality television infects print media now that we’ve forgotten how deep the collected sludge on the bottom of our cultural barrel is since fox appears to have given up dredging it for entertainment like who wants to marry a millionaire? and <a href="http://imdb.com/title/tt /” title="“the littlest groom” ( ) (mini)“>the littlest groom, jane magazine (subscribe) has stepped up to explore what remains. the huffington post’s eat the press blog recently reported a story titled “girl, you’ll be a woman soon: the quest to deflower jane‘s -year old virgin” eaten alive books eaten alive books it’s a piece of cake to bake a pretty cake don’t hate me for this, it was mattyb who showed it to me and then setup the domain itsapieceofcaketobakeaprettycake.com. the clip comes from lazytown (<a href="http://www.imdb.com/title/tt /” title="“lazytown” ( )“>imdb), which airs in the us on nick jr. an excerpt of the lyrics: i’ts a piece of cake to bake a pretty cake if the way is ha-zy you gotta do the cooking by the book darwin, schmarwin are we ahead of turkey? yes. sign up now: library camp east library camp east is set for september at darien public library in darien ct. it’s an unconference, so the content is determined by the participants, and judging from the names on the signup page (john blyberg and jessamyn sound excited), there will be a lot of good discussion. catching bugs before they catch you i got itchy about magic quotes the other day because it’s the cause (through a fairly long cascade of errors) of some performance problems and runaways i’ve been seeing lately (pictured above). but i deserve most of the blame for allowing a query like this to run at all: ` select type, data, count(*) as hits from wpopac_wpopac_bibs_atsk <strong>where data like '%'</strong> and type in ('subjkey','author', 'title') group by data order by hits desc limit ` as executed, it’s trying to select all . false i had no words for it now wri- ting i am temp ted to say that i fe lt the wor ld had been giv en as a gi ft uni que ly to me and al so eq ual ly to ea ch per son a lone verse style of robert lax sentence by rory stewart treo as dial up network adapter sometime ago i started work on figuring out how to get dial up networking (dun) access via my treo . now i’m getting serious about mobile internet access and looking at this again. the plan is that you should be able to make a bluetooth connection between your laptop and the phone and then get piped onto the internet from the phone. trevor harmon wrote it up and has been following the issue as it relates to mac os x and sprint wireless service. dang addslashes() and gpc magic quotes somewhere in the wordpress code extra slashes are being added to my query terms. i’ve turned gpc magic quotes off via a php_value magic_quotes_gpc directive in the .htaccess file (we have far too much legacy code that nobody wants to touch to turn it off site-wide). and i know my code is doing one run of addslashes(), but where are the other two sets of slashes coming from? knockbox = wifi + real estate info in another sign of the arrival of the stupendous, i.e. that the internet is changing our world, engadget some time ago reported on the sellsmart knockbox real estate selling dohicky. what is a knockbox? a knockbox is a sleek, self-contained appliance that is placed unobtrusively inside your home for sale. it contains a photographic tour, custom buyer presentation, and other important details about your home, which potential buyers can access without ever having to enter your home. are you with me? this weeks free i-tunes down load is the song ” are you with me?” released by the band vaux. i like the song, it’s a little hardcore for my tastes but i can see my self mosh pitting to this. it’s not my favorite music but being a fairly open minded person i can find a place for it in my musical library. i give this song an . on pies listening pleasure scale. wpopac reloaded i’ve re-thought the contents of the record and summary displays in wpopac. after some experimentation and a lot of listening, it became clear that people needed specific information when looking at a search result or a catalog record. so now, when searching for cantonese slang, for instance, the summary displays show the title, year, format, attribution, and subject keys of each result. and when viewing the record for a dictionary of cantonese slang you’ll get all of that and more. longest book title ever geography made easy : being an abridgement of the american universal geography, containing astronomical geography, discovery and general description of america, general view of the united states, particular accounts of the united states of america, and of all the kingdoms, states and republics in the known world, in regard to their boundaries, extent, rivers, lakes, mountains, productions, population, character, government, trade, manufactures, curiosities, history, &c. : to which is added, an improved chronological table of remarkable events, from the creation to the present time, illustrated with maps of the countries described : calculated particularly for the use and improvement of schools and academies in the united states of america snakes on boards snakes on skateboards would not wear helmets nor would they swing hatchets, but snakes on snowboards might if they had just visited love land’s phallus garden verizon evdo service and the mobile office? the much anticipated novatel v express card evdo adapter is out. verizon is pimping them for $ with year contract and gearlog says it’s “almost too easy” to use these goodies with the macbook pros. then gearlog reader brad commented: “if you had to install a driver, i wouldn’t say it was the true mac experience. i have sprint evdo with a merlin s card. with os x . sweet bluetooth graphire tablet, bad portraits my graphire bluetooth tablet arrived last week as a bundled treat with some adobe software i needed. why do i need a tablet, especially as my days as a graphic designer are a distant memory? i don’t…at least not now. but somewhere on the long tail my um, unique, style of portraiture (above) will come into vogue and i’ll score it big. yup, there’s an unrecognized niche of people just waiting to be drawn with big cheeks, bulging eyes, and open mouths. carry-on restrictions to carry on? the mercury news’ qa on carry-on restrictions answered a big question i had: q can i still carry my laptop, cell phone and ipod on board? a those items are still ok as long as you’re not traveling to or through the united kingdom. but a reuters story posted at c|net suggests the restriction on liquids won’t be going away any time soon. draconian restrictions on carry-on baggage may stay in place for months, even years… all about non-profits i’ve been looking up information on non-profits, specifically c corporations. there’s this sales-pitch filled faq; the company corporation makes it sound easy, but this how to guide from the national mental health association (of all places) seems to offer the…um…most honest info i’ve seen yet. well, most honest sounding. dancing against the current you might argue with kevin lim‘s suggestion that terrorism depends on our emotional and psychological insecurity, but can you really argue with the notion that more happy people is a bad thing? i can’t. and i can’t criticize him for finding deep meaning in catchy pop songs and funny movies. he and brandtson might be right… “nobody dances anymore. everyone’s still playing safe and nobody takes chances anymore.” sxsw program proposals there’s programs proposed for sxsw interactive, march - . go vote for the ones you most want to see at lindsey simon’s super cool picker. round one voting is going now. (also note the really good use of semantic markup in the html download version (which i’m embarrassed to have sullied a bit in this representation).) podcasting – what’s it going to take to mainstream the technology? business / funding / entrepreneurial · web audio / web video over the past twelve months, podcasting has exploded among tech savvy individuals and organizations however, what’s it going to take for podcasting to evolve from its current state as a delivery system for specialized, longtail content to a widely-adopted media distribution system for mainstream users? hard math i found this at joe-ks.com. the title there is “mennonite longhand math,” but can anybody identify the source or context? can anybody work out the equation on the board? i’ve convinced my friend will, who teaches math and physics, to pose for a shot like this, but that means we’ll have find and fill a huge chalkboard…and he’ll have to grow his beard back. lawn mower speed record it’s late summer and the heat wave killed the grass on your lawn, so what better to do than challenge bob cleveland’s record for the fastest lawn mower yet? not sure your mower has what it’ll take to race down the salt flats at over mph? wimp. utah’s ksl tv quotes bob saying “we don’t need a whole lot of horsepower to go fast.” and when you look at the tiny wheels on that thing, well, you’ve gotta imagine you can do better. shakespeare, motivation, war, what are we doing here? i’m a sap. i can’t help but get choked up when i read or hear shakespeare’s st. crispin’s day speech in henry the v. ehow tells me that “saint crispin’s day is a good day to honor lives well lived, beliefs held dear and shoes well made.” but steve denning calls the speech a “magical, linguistic sleight of hand,” and warns us: …it may work for a battle, or even several battles. flight, hotel, spa “take a deep breath.” i did, and with it lisa souza, my massage practitioner at san francisco’s international orange, pressed into a knot just below my shoulder blade, deep in the latissimus dorsi. she worked along the length of it, not as a baker kneads bread, but rather as person wringing water from a damp cloth. each press was deliberate, powerful. i’d asked for the deep tissue treatment. eight hours in planes from boston (six hours to lgb, almost another two to sfo) had taken their toll, and this, i hoped, might spell relief. workflow goes social i was amused this week to see two examples of workflow getting sexy. that’s not how the developers describe their efforts, but the departure from old groupware notions is clear. in daring defiance of zawinski’s proclamation, jeffrey mcmanus, with approver.com, and karen greenwood henke, with nimble net (as reported yesterday), are tackling workflow and approval processes. combine the increasing numbers of people who are self employed or working in very small businesses that can’t afford those old enterprise groupware “solutions” (but who nonetheless have to get a job done) with the combination of luck, pluck and smarts these two seem to have applied to the challenge, and there’s a chance these new products — groupware . sweet coffee shop logo how can a person not like ritual coffee roasters [logo][ ]? the [laughing squid][ ] folks [apparently like the place][ ]. [ ]: ritualroasters-com-huge cup.jpg [ ]: http://laughingsquid.com/ “laughing squid” [ ]: http://laughingsquid.com/ / / /wordcamp-is-this-saturday/ dr. frankenstein’s stress-o-meter the scientologists regularly have a table on powell st., somewhere near union square. the game here, if it’s not obvious, is to invite people to take a free stress test, then sit them down and twiddle those unlabeled dials until the needle starts twitching. the blood red table cloth is sure to help. a technology for every niche way too many people are processing grant applications on paper. they spend a lot of time moving paper around and they don’t know much about who’s applying until after the deadline. that’s why we built nimble net. karen greenwood henke’s been working the world of grants and grantwriting for years. her site grantwrangler.com, and the new grant wrangler blog represent her efforts to connect grantors with grantees, but nimble net delivers the tools necessary to manage the process from announcement to award, and all the application and review processes in between. wordcamp kickoff woot! wordcamp kickoff party at taylor’s automatic refresher (no doubt selected in part because homophone to automattic), at the ferry building. but does it make up for missing wikimania, the librarything bar-b-que-thing, and napoleon dynamite night at the twig? go air scooter, go while we’re still waiting for flying cars (or even just fuel efficient cars) i’m keeping track of tiny helicopters like the gen h- and this one, the airscooter ii, pictured above. the company, airscooter corporation of henderson nv, introduces the new craft with a tip of the hat to igor sikorsky‘s earliest designs featuring counter-rotating blades. company founder woody norris (who won an award for acoustics) explains: “what we’ve done is package the coaxial design in a modern light-weight craft that allows for intuitive control and incredible maneuverability. the onion greets wikimania wikimania is about to start, but here, the ever-topical onion folk are poking fun at wikipedia. what is there to say when “america’s finest news source” casts aspersions on the world’s newest encyclopedia with the headline wikipedia celebrates years of american independence? extra: watch out for meredith farkas‘ panel presentation on wikis and enabling library knowledgebases. i should have thought of this in the context of ryan eby’s question about librarians going to non-library conferences. joe’s favorite novels will pressed joe, asking him to name his top ten favorite books. joe pressed back, saying such lists were ridiculous, but still, sometime later he emailed with the following: okay, here are the books that got to me at certain points in my life. not sure i would view them all the same now, but this is a list of sorts. i found this an interesting challenge, and of course impossible…i have more lists but i stuck to novels… opensearch progress i really need to keep better tabs on michael fagan, as his june opensearch update is full of goodies. the perils of flickr’s “may offend” button quite a while ago now, stepinrazor asked people to do some self-censorhip in a post in the flickr ideas forum. flybuttafly quickly joined the discussion, noting that she’d encountered some material she found offensive in pictures from other flickr members: “as i’m going through the pictures, one shows up of a protestor holding a sign with a vulgar statement on it.” though she refused to identify what she saw that was offensive, she did note in a later post that she “would never take my child to a pro-abortion rally. and now this is happening? when a gossip site has a picture of mel gibson that looks more like ted kaczynski, and a story about drunken, anti-semitic ravings, i think “eh.” but somehow i get more interested agitated when i learn the cops might have sanitized the police report of the whole affair. update: ooh, what about his endorsements? dooce and blogher bob, the occasional cultural affairs correspondent here, took me to task: how could you not? no link to dooce.com?? nor to blogher.org??? what can i say? my immediate reaction was that he’d found proof of danah boyd‘s point that male bloggers only link to male bloggers. anyway. the blogher conference just wrapped up, but as ryan notes, i don’t know of any library folk who attended. still, marianne richmond is on-blog, raising our awareness of dopa just like a lot of librarians are trying to do. wal-mart trying to ape myspace, seriously i just got a heads up on an advertising age story that wal-mart is trying to be myspace (and, yeah, i aped their headline, too). here’s the lead: it’s a quasi-social-networking site for teens designed to allow them to “express their individuality,” yet it screens all content, tells parents their kids have joined and forbids users to e-mail one another. oh, and it calls users “hubsters” — a twist on hipsters that proves just how painfully uncool it is to try to be cool. stage two truth arthur schopenhauer is suggested to have said: every truth passes through three stages before it is recognized. in the first it is ridiculed, in the second it is violently opposed, in the third is regarded as self-evident. if the reaction to karen calhoun‘s report to the library of congress on the changing nature of the catalog and its integration with other discovery tools is any guide, libraries are stuck firmly in the second stage. richard cheese’s lounge against the machine richard cheese‘s lounge-core renditions of pop favorites (and some not-so-favorites) have been cracking me up every time they chime into the mix on random, but i didn’t know what the guy looked like until i spied beatnikside‘s photo of the man in among his vegas people set. “cheese,” of course, is a pseudonym for la comedian mark jonathan davis, who’s been performing with a band of cheese-named musicians since . two events, two coasts matt mullenweg announced wordcamp in san francisco, then ten days later abby announced the librarything cookout in portland (maine). both are set for august . the librarything event promises free burgers and potato salad, while wordcamp attendees will enjoy both free bbq and free t-shirts. i’d like to go to both, but rather than have to make some decision about which one i’d most like to go to, i’m leaning on the fact that i’d already bought my flight to sfo when the lt event was announced. be romantic and smoke his brains out this photo from tsunaminotes appeared in ende’s photo stream and reminded me instantly of all the cool things i’d never done because i was born too late and cool stuff is what i saw in black and white photos from years past. of course, flickr says the photo was taken july th, and the photographers of the past would have burned the bright spot on his cheek during printing, but it still has a classic quality to it. pretty little thing fink‘s pretty little thing is this week’s free download at itunes, and i have to say i like it. pretty little thing is not usually what i would listen to but i found the song to be new and interesting, very “fresh”! fink‘s pretty little thing gets a . on pies listening pleasure scale. . tags, folksonomies, and whose library is it anyway? i was honored to join the conversation yesterday for the latest talis library . gang podcast, this one on folksonomies and tags. the mp is already posted and, as usual, it makes me wonder if i really sound like that. still, listen to the other participants, they had some great things to say and made it a smart discussion. i approached the conversation with the notion that what we were really talking about was whether libraries should give their patrons the opportunity to organize the resources they value in ways that make sense to them. wordcamp as noted here, i’m going to wordcamp in sfo in early august. matt describes it as a barcamp-style event (where “’barcamp-style’ is a code phrase for ‘last minute’”) with “a full day of both user and developer discussion.” i’m just going for the free t-shirt, of course, but i can imagine a number of folks will get a good value out of the sessions and discussions that will likely run, especially all the developer stuff. …it’s how you use it not a pretty librarian has kicked things off well with a first post titled “it is not a tool,” covering an argument about which has more value to a teenager: a car or a computer. on one side is the notion that “she can’t drive herself to work with a computer.” while, on the other side is the growing likelihood that she won’t drive to work at all, but instead simply work at whatever computer she has available. bsuite bug fixes (release b v ) [innerindex]update: bugfix release b v available. it’s been a while since i released a new version of bsuite, my multi-purpose wordpress plugin. i’d been hoping to finish up a series of new features, but those have been delayed and this is mostly just a collection of bugfixes. this update is recommended for all bsuite users. bsuite features tracks page loads (hits) tracks search terms used by visitors ariving at your site via search engines it’s official wpopac, a project i started on my nights and weekends, is now officially one of my day-job projects too. we’ve been using our wpopac-based catalog as a prototype since february , but the change not only allocates a portion of my work time specifically to the development of the project, but also reflects the library‘s decision to transition to wpopac as a our primary web opac. work to make a general release of the wpopac software available for download and use by any library (or anybody who wants to present structured data with faceted searching on the web) is in progress. . the music has been on random for weeks now, but . ‘s “joanne will,” from plays music played this afternoon as soundtrack to the summer rains. brent sirota may struggle to tell us how bad it is (while also giving it a . rating), but this “easier to listen to jazzy than to listen to jazz” turned out to be the perfect accompaniment for the ballet of raindrops and splashes just out of reach from my seat on the porch. beermapping.com in yet more geolocation news, beermapping.com‘s maps to breweries will make my travel planning easier, and my travels boozier. hey, it’s casual friday, take off early and go find a new brewpub for lunch. plazes updated wearing the badge “still beta,” plazes, the free, network-based geolocation service, now sports a new coat of paint. among the improvements is the flash-based badge (above) and a much improved frontpage/dashboard that combines the map of known locations with the map of active users, formerly two separate screens. on the downside, i sort of miss the old tracker. i love the icons on the new one, but there was a simplicity to the old list of recent plazes and favorite plazes that i liked. the flickr is a series of tubes it’s hard to be angry with flickr about unexpected downtime when they post funny things like this. for my part, this is more than just an excuse to link to dj ted stevens’ internet song (yeah, “the internet is a series of tubes”), it’s an excuse to point out how flickr apparently knows how to speak to their customers in language they we understand. i dare a library to do the same next time the opportunity permits. opensearch in a nutshell opensearch is a standard way of querying a database for content and returning the results. the official docs note simply: “any website that has a search feature can make their results available in opensearch format,” then adds: “publishing your search results in opensearch™ format will draw more people to your content, by exposing it to a much wider audience through aggregators such as a .com.” it’s a lot easier to understand opensearch once you’ve used it, so take a look at a . arctic monkeys while listening to my favorite radio station . fnx, i discovered my new favorite band. the arctic monkeys is a new band that comes from the uk, and their popularity is rocketing. their new album whatever people say i am, that’s what i’m not, has sold more than , copies which makes it the fastest selling debut album in uk history. having heard them months ago i was pleasantly surprised to see the arctic monkeys perform there hit single “i bet you look good on the dance floor” on mtv. nelinet it conference proposal i recently submitted my proposal for the nelinet information technology conference. it’s about wpopac, of course, but the excitement now is that the presentation would be the story of the first library outside psu to implement it. wpopac is an open source replacement for a library’s online catalog that improves the usability, findability, and remixability of the library’s collection. this presentation will detail the implementation of wpopac in the real world, including discussion of challenges and costs, as well as the improvements to service and increased access to library materials. less than a year left before paris’ retirement yup, tom reminded me recently that there’s less than a year left on the official paris hilton retirement countdown. in case you’ve forgotten, the hamburger-eating heiress announced her retirement in a june issue of newsweek (jump to page two for the relevant bits). don’t get tripped up on the postdated retirement announcement, bill gates announced his intentions to retire in last month, so one might say it’s all the rage. technology scouts at aall i’m honored to join katie bauer, of yale university library, in a program coordinated by mary jane kelsey, of yale law’s lillian goldman library. the full title of our program is technology scouts: how to keep your library and ils current in the it world (h- , pm tuesday, room ). my portion of the presentation will focus on how we’re fixing up our catalogs, with a big emphasis on how apis can be used to continuously reinvent the way we look at — and thus understand and use — the information we have. the social software over there amusing. one one side of the world is jenny levine, the original library rss bigot, pushing libraries to adopt new technologies from the bottom up, and here on the other side of the world is newsgator offering their products for top-down adoption. why are law libraries interested in newsgator? could it be that social software increases productivity? might it offer some competitive advantage? do they just make it easier to communicate (and keep track of our communications) in today’s web-driven world? inclusion or exclusion by language …the time for pedantic purism is past; if we wish to communicate with the larger audience, we must use language they understand. we do not have the luxury of defining our words, their definitions are thrust upon us by usage. i was struck by how much that sounds like something i might have said about libraries — only more compact and pointed — but it’s actually my father describing his position on an argument at the world history association annual conference a couple weeks ago. education america today i discovered (thank you ryan) kareem elnahal’s speech as valedictorian of mainland regional high school and i discovered new hope, new faith in our country’s future. when high school students can step up and speak truth to power, as elnahal did so well, i become a believer in the strength of human spirit. “we study what is, never why, never what should be. …[t]his pattern, grade for the sake of a grade, work for the sake of work, can be found everywhere,” said elnahal. rocket cars make better fireworks i pointed out this jet turbine powered toyota mr a year ago, but now i’ve discovered ron patrick’s jet powered vw beatle. the story is well told in a san francisco gate article from april (with bonus video), which describes the builder: patrick is a -year-old stanford-trained (ph.d.) engineer who owns ecm (engine control and monitoring), a sunnyvale firm that makes electronic instruments used by auto manufacturers to calibrate their engines for performance, fuel economy and emissions. antstepology french vexillographers circulate the national library, protesting flag desecration, too many windows, and cardboard sunscreens. fireworks on the fourth of july promise. celebrate independence day with a drink. tags: banana, bananas, blueberries, blueberry, flag, fourth of july, fruit, independence day, july , july th, patriotic, patriotism, raspberries, raspberry, red white and blue, stars celebrate independence day with breakfast let the vexillographers cringe, flag desecration never tasted so good. sure, it’s barbecue season, but that’s no reason not to enjoy breakfast. and what better way to break fast on the fourth of july than to dress waffles as sugary, fruity flags? do that with your hamburgers. do that with your potato salad. do that with your hot dogs. (okay, i can imagine a few ways to do that with all of those, so let’s see the pictures. today’s terms tags: , concert, music, political cr… today’s terms tags: , concert, music, political criticism, politics, show, the sun, they might be giants, tmbg echo through pine walls stretch sun along desire’s coast they might be giants they might be giants, playing at mohegan sun, drew roars of approval from the crowd when john flansburgh went off-lyric sheet during the sun (which they amusingly described as part of their venue songs series): …the heat and light of the sun are caused by nuclear reactions between a failed foreign policy, a failed domestic policy, and a failed presidency… i’ve not known tmbg to be at all political, just smart. saturday, july , : pm is there a term already for what i am about to do? ok, here goes: bad knockoffs of cheap pop oops! i did it again richard thompson strange sense of humor last.fm, despite the suggestion here stream it from npr, go buying. ****kcrwmusic toxi the chapin sisters top tune britney spears episode coverville. **** britney in wax at madame tussaud’s pretending to do hard math some fan with a brit photo on his refrigerator oops! i covered it again i don’t know why it is that i love bad knockoffs of cheap pop, but i do. that’s why, when i heard a folksy rendition of oops! i did it again playing between segments on some npr program a while ago, i had to go looking for it. as it turns out, it was richard thompson, whose strange sense of humor apparently pops up in his music regularly. you can find his version indexed in last. june : tony day in the two years joe spent researching and writing two ton: one night, one fight — tony galento v. joe louis i’ve heard a lot about this guy. tony galento was a most improbable opponent for louis, who by then had regained the world heavyweight title from max schmeling, but joe’s description tells it best: beetle-browed, nearly bald, a head that rode his collarbones like a bowling ball returning on rails, his waist size more than half his five-foot-eight height, two ton tony galento appeared nearly square, his legs two broomsticks jammed into a vertical hay bale. burning patriotism my feelings on the flag burning desecration amendment should have been clear from my flag day story. still, let me offer the t-shirts above as confirmation. sealand burning a comment from troublepup alerted me that the principality of sealand burned friday. the evening star explained: witnesses watched in amazement as a huge plume of smoke started to rise from one of the legs of sealand — and boats raced to the scene. seafront worker bruce harrison said: “it was quite spectacular. the amount of smoke was huge and people kept saying there must have been an explosion. american diplomacy i don’t collect stamps, but this set caught my eye. first there’s the irony that the usps is celebrating american diplomacy at a time when, well, there’s not much to celebrate. then i get a further chuckle when i notice the postal service can only scrounge up six examples to celebrate, but found “superlatives” to get excited about in their wonders of america collection. of course, the superlatives are relative — the bison is only the largest land mammal in the us, for example — but i don’t know enough to judge the six diplomats. the twig’s grand opening wendy sent out this invite last week: last month the monningers quite suddenly became restauranteurs. six weeks later, wendy, joe and pie are excited to announce the grand opening of “the twig”– an ever-so-cute restaurant in their hometown of warren, nh. on saturday, june th from - come to the twig for free pizza and cake. win gift certificates and enjoy the newly-opened “brook-side at the twig,” a beautiful outdoor beer garden along the bank of black brook. context, language, systems “bagged products” is little better than “cookery.” i’m gonna bet that no customer has ever asked the sales people for “bagged products,” that nobody’s ever checked the yellow pages for “bagged products,” and without context, nobody would come close to answering a question on what the heck “bagged products” are all about. but we do have context. and within that context, those two words are probably meaningful enough to the potential customers driving by. free markets, bad products, slow change rates point a: john blyberg’s ils customer bill-of-rights. point b: dan chudnov’s the problem with the “ils bill of rights” response: john blyberg’s opacs in the frying pan, vendors in the fire while there’s some disagreement between john and dan, i can’t help but see a strong concordance between their posts: both are an attempt to educate potential customers. blyberg wants customers to know what to ask/look for in evaluating products, dchud wants those customers to know how free markets work. scooter by sunset the light sunday evening was golden, so i stopped to take way too many photos of the meadow in the sunset. just before filling my memory card with all that, i got back to my scooter to find this scene with a haze settling on the field and the sun just ducking behind enough of a cloud to make the exposure work. well, okay, it was still a double exposure to get the light right across everything, but still… spark fun’s gps data logger engadget alerted me to this gps data logger from spark fun electronics. the device records up to hours of data to a mb sd card in either a simple text file or kml-compatible format that you can display in google earth. i like it, i want one (actually, i want three, and i’ll eventually post about why), but the ad copy tweaked me a bit: pull the sd card, insert it into a card reader, […] and wammo–you can see what casey did over lunch with a satellite image overlay. the pope vs. the da vinci code the above image and following text are circulating the web, tickling funny bones. this man (on the left wearing a fabulous vintage chiffon-lined dior gold lamé gown over a silk vera wang empire waist tulle cocktail dress, accessorized with a three-foot beaded peaked house of whoville hat, and the ruby slippers judy garland wore in the wizard of oz) is worried that the da vinci code might make the roman catholic church look foolish. from the memepool memepool has more than earned its place in my aggregator. where else would i learn of the monkey chow diaries (and blog), or the plot structure of fight club in legos, or this flying dude? happy bloomsday thanks to an aside in a sad/angering story at copyfight, i’m now up on bloomsday. here it is, as explained by wikipedia: bloomsday is observed annually on june to celebrate the life of irish writer james joyce and commemorate the events in his novel ulysses, all of which took place on the same day in dublin in . the day is also a secular holiday in ireland. the name derives from leopold bloom, the protagonist in ulysses, and june was the date of joyce’s first outing with his wife-to-be, nora barnacle, when they walked to the dublin village of ringsend. google geo news this post started with ryan sending me this link demonstrating a kml overlay of county borders of his bifurcated state in google maps. then i found this roundup of google’s geo developer day (btw, i so wanted to be at where . ) with tales of the new geocoding feature of the google maps api, more details about kml-in-google-maps, geotagging in picasa, and the new google earth . beta. and somewhere along the line, i ran across a link to sketchup, google’s -d modeler that seems built especially to put dimensional structures in google earth. donald norman — everyday things i was especially young and impressionable when i discovered don norman‘s the design of everyday things, but i still claim it’s required reading for anybody who’s read more than one post here at maisonbisson. that’s self selection at work, but let me put it this way: unless you’re the only consumer of the things you create, then you need to read this. now. i feel foolish to have only recently discovered norman’s website and essays. the ala/no events i’d like to see i’m not going to ala/no so i’m hoping those who are will blog it. two events i’m especially interested in: on sunday, june : catalog transformed: from traditional to emerging models of use this program, co-sponsored by the mars user access to services committee and rusa’s reference services section (rss, formerly mouss), deals with changes in library catalogs in response to the increasing googlization of electronic resources. speakers include: cindy levine (reference librarian for the humanities, north carolina state university), jill newby (english language literature and writing librarian, university of arizona), andrew k. the biblioblogger vs. the branch library steve lawson‘s a biblioblogger visits the local branch library is worth a look and quite a hoot. squashing criticism vs. improving products i wrote yesterday of nicole engard’s comment that the ils was about as open and flexible as a brick wall. today i learned that the vendor of that ils had tried to squash her public criticism. not cool. it’s pure speculation on my part, but what comes next? surely no vendor would send vinny over to bust an uppity biblioblogger’s knee-caps, but might they offer a customer a better deal if they could just help quiet down a critic within the customer’s organization? seven deadly sins seven deadly sins, the some people think seven is too many, others think it’s not enough dopa, social software, and libraries i’m more than a month late to this bandwagon, but whatever. jessamyn alerted me to dopa, the proposed deleting online predators act. what’s the point? when conservatives pit fud against free speech, reasonable people would do well to pay attention. and what’s social software? take a look at what meredith farkas has to say about it. the ils brick wall <img src="static-flickr-com- _f e b .jpg” width=" ” height=" ” alt="the great wall of “standards”” /> nicole engard last month posted about the state of our ils, describing the systems as: i’d say it’s a like the crazy cousin you have to deal with because he’s family! it doesn’t fit, we are a very open it environment, we have applications all over that need to talk to each other nicely and the [ils] is a brick wall preventing us from getting the information we need and sending the information we’d like. darn dns so, you should expect problems when you move your server to a new ip and don’t bother to update the internic registration for your nameservers. it’s an area where i don’t have much experience, so i had to go looking for the solution. paul woutrs gave some tips to get started in his short document on the subject. but the real lesson there was that i had to go back to the registrar where i’d originally registered the nameserver objects to change the registration. did adam and eve have navels? did adam and eve have navels? : discourses on reflexology, numerology, urine therapy, and other dubious subjects filed under “science — miscellanea“ ugh. “save npr and pbs (again)” my dad just forwarded the following message to me: hi, everyone expected house republicans to give up efforts to kill npr and pbs after a massive public outcry stopped them last year. but they’ve just voted to eliminate funding for npr and pbs—unbelievably, starting with programs like “sesame street.” public broadcasting would lose nearly a quarter of its federal funding this year. even worse, all funding would be eliminated in two years–threatening one of the last remaining sources of watchdog journalism. t unboxed and online my sun t is here, and with cliff‘s help it’s now patched, configured, and online. (aside: what’s a sun happy meal?) i’ll second jon‘s assessment that sun really should put some reasonable cable adapters in the box, as the the bundle of adapters necessary to make a null modem connection to the box is ridiculously out of scale (i’ll get a picture soon). i’m getting the application environment put together, which has turned out easier than expected thanks to the convenient packages from blastwave. ego soars because sometimes i feel i’m just moving my lips to the sound of babble, it’s a great delight to find a blog post that suggests i said something coherent. extra: my wife just pointed out this one with photo. nina katchadourian’s sorted books it seems common among contemporary artists that a web search might turn up a few pictures of their works, but not much about them or their works. in this case it’s nina katchadourian and the work i’m interested in is her sorted books project. a video interview from the university of colorado and researchchannel.org does offer some insight into katchadourian’s art, but why are such glimpses so rare? anyway, i was happy to find her compact, graphic poetry. thenonist how can i not appreciate thenonist‘s link dumps and other posts when they’re illustrated with works like those above? the men in suits come from may . june offers us these funny trading cards and a gallery of horror movie damsels (in distress, of course). june offers a good look at sincerity among other things. and all of this amidst a context of intelligent commentary and smart politics. i want url addressable spreadsheet cells (and cell-ranges) when i heard news that google was to release a spreadsheet companion to their freshly bought writely web-based word processing app, i got excited about all the things they could do to make it more than just a copy of numsum. let’s face it, google’s the gorilla in the room here and they’re gonna squash numsum, but wouldn’t it be cool if… well, dmitry nekrasovski get’s credit for planting the notion of url-addressable rows, columns, and cells in my mind with this commentary from months ago: solaris + amp, asap a solaris sysadmin i’m not. but now that i’ve finally got the sun t server i begged for a while back, i’ve got to ramp it up right quick. the first task is to get a, um, lamp environment up and running (samp?…oh, sun wants us to call it amps). a bit of googling turned up this forum thread that suggested blastwave.org‘s ports of php, mysql, and apache. edit: i corrected the model number. circle of gorillas thenonist brings the story of buddy/gargantua the great back with better pictures in a post subtitled “buddy, the gorilla who was scared of lightning” the urls from my portland talk following edward tufte’s advice, i’ve been wanting to offer a presentation without slides for a long time now; i finally got my chance in portland. the downside is that now i don’t have anything to offer as a takeaway memory aid for my talk. my speaking notes are too abstract to offer for public consumption, but below are the urls from them along with a tiny bit of context. foundation prime as it turns out, + , , , is not just the largest bit signed integer you’ll find most anyplace, it’s also a prime number. asian scooter gangs the members of this taiwanese scooter gang might really be cooler than me. well, they would be cooler if the scooter gangs weren’t also known to be violent: a scooter gang viciously attacked and injured teenagers — three critically — while on a violent joyride in taipei county’s tucheng city… the gang of more than scooter-riding thugs, who brandished large knives and baseball bats, went after most of their hapless victims as they were barbecuing for the mid-autumn festival. car lust i told vincent that i didn’t really care much for cars. it was my sister, i explained, that wanted to look. vincent agreed quickly and said it was rock climbing that excited him most. cars, it turned out, were just a family thing he had to play along with. still, he told me about the lotus‘ under pound dead weight, noted the tiny engine that gets nearly miles a gallon yet delivers to in better than five seconds, then opened the door and suggested i shoehorn myself inside. will google eat itself? once upon a time microsoft was the gorilla to beat. once upon a time we thought google could do it. perhaps not any more. amazon has dropped google’s search results from their a search aggregator in favor of microsoft’s live search, and while yahoo!’s on again, off again partnership talks with microsoft appear dead after y!’s announcement thursday of a partnership with ebay, microsoft still hasn’t given up on the notion. sweet portland central library in portland wasn’t open when i returned the next morning to get some snapshots, but you’ll have to take my word that they did a great job renovating it ten years ago. the outside preserves the original appearance of this historic building, and the early hour of the shot hides the hive of activity that i found the previous afternoon. i have to thank caleb and caroline for showing around town, and offer my apologies to heidi and alice, who had offered me tips and suggestions that i (again) didn’t have time to follow up on. denver sights there’s plenty of public art in denver, including a blue bear and this horse in a red chair (here and here, respectively). tourists can also sneak a peak inside the unsinkable molly brown’s house on pennsylvania st. what i didn’t get to explore, however, includes tesla’s time in colorado springs, the forney transportation museum, norad, the remains of the jewish consumptives’ relief society (apparently still findable behind a mall somewhere), and gary sweeney’s “america: why i love her” map at the airport. denver nights el chapultepec is a little jazz club on market st in lodo. the walnut room just north of everything offers live music and a sweet mile high club pizza made “kitchen sink style.” those seeking quieter times can smoke a cigar at the churchill bar at the brown palace on tremont pl. and, outstanding sunset views can be had from the peaks lounge at the hyatt on california st. presentation: designing an opac for web . iug presentation: designing an opac for web . (also available as a pdf with space for notes) web . and other “ . ” monikers have become loaded terms recently. but as we look back at the world wide web of , there can be little doubt that today’s web is better and more useful. indeed, that seems to be the conclusion millions of americans are making, as current estimates show over million users in the us, including % of youth - . and we’re discarding this? i read enough of this to get a good laugh, but not enough to understand if it was serious or not. some of it reads like satire, but other parts as are dry as, well, they’re dry (who really needs a simile anyway, they’re just dry, okay?). scooter my new scooter. it’s not much of a picture, but we’ve had two weeks of rain and this is what i could get. whiskey blanket i just bought whiskey blanket‘s it’s warmer down here ( ) on the basis of a few tracks they offered on myspace. it’s hip hop, socially critical hip hop (crit hop?), set atop a well constructed downtempo trip hop music bed (yeah, i’ll cut it with the hops already). it immediately brought to mind mc ft. jesus‘s the city sleeps and other tracks, but with better, sharper raps and without the mc’s somewhat whiny voice. flickr goes gamma just when we started wondering how much longer flickr would be beta, they announced gamma. the new design had me scratching my head for a bit, but i’m coming to like the changes. the menu/toolbar in the header has direct links to a lot more stuff, while the stuff in the footer has many fewer links. i can’t really tell if there are any links missing there, or if they’re just organized better, as i really only used one or two of them anyway. better business bureau pulls one out i gave up on hostgator a while ago, and i thought i’d cancelled my account until i noticed they were still charging me monthly (yeah, i should pay more attention to what’s on my cc bill). when i contacted them about it they claimed i never fully cancelled. here’s a copy of the form i submitted: hgsales #gsw-[[private]] october , : : pm edt subject: cancellation department: hostgator sales request details: your email: : [[private]] domain name: : maisonbisson. linkability fertilizes online communities it’s hard to know how fuzzyfruit found the wpopac catalog page for a baby sister for frances (though it is ranked fifth in a google search for the title), but what matters is that she did find it, and she was able to link to it by simply copying the url from her browser’s location bar. the link appears among her comments in the discussion about her post on an early letter she’d written to her mom. stonehill industrial history center (aka the shovel museum) most travel guides simply call it the “shovel museum,” but it’s really the stonehill industrial history center. much more than shovels, curator greg galer tells us the collection reveals interesting facts about what we were building and how we built it over the past years. located on the campus of stonehill college in easton massachusetts, the collection does boast shovels from the ames manufacturing companies. from the faq: blogging from basements my buddy cliff emailed me excited about the following quote he found on the yahoo finance message boards: sun vs dell all you need to know about dell & sun was predicted months ago by some blogger in his parent’s basement. the draft ads are cool: http://spiralbound.net/ / / /sun-talks-some-smack/ how come the big brokerage house analysts can’t figure this stuff out? cliff doesn’t really blog from his parent’s basement, but well, he was happy for the link love. pretty soon everybody will have it this isn’t as funny as it used to be. every time i read about or hear of somebody talking about autism, i recognize some many of the behaviors as my own. first it was this rather amusing comparison between “eccentric” and autistic behaviors, then it was an interview on fresh air, and just this weekend i heard kamran nazeer talking about his new book that profiles himself and four other autistic adults. amazon’s simple storage service ryan eby got me excited about s a while ago when he pointed out this post on the amazon web services blog and started talking up the notion of building library-style digital repositories. i’m interested in the notion that storage is being offered as a commodity service, where it used to be closely connected to servers and bought (and wasted) in chunks. with s , you can build a simple application that runs anywhere, store your big data in s , pay for what you use, and expand (or contract) as you need to. reputation management at applied dreams . ryan gave me the drop on this presentation by dave chiu and didier hilhorst where they do an amusingly effective job of explaining the concept of reputation management. it all went down at the conclusion of the applied dreams . project at interaction design institute ivrea in milano. the project brief begins: our identities are changing due to our constant exposure to enabling technologies. our old physical identities, fixed to a house, an address, a tax number, private, detached, individual, introvert, seem increasingly at odds with our new electronic identities, mobile, self-published, publicly exposed, extrovert, shared, accessible, communal. betty bowers first i found her harry potter review, then i found the god told me to hate you buttons and other stuff. who makes these decisions anyway? brian’s comment at remainingrelevant should resonate with many of us: something to consider about why libraries end up with bad interfaces (at least as far as catalogs go) is that it might be that the people who use the interface (and help the public use it) are not the people who decide which interface to use. when it comes to demanding better from vendors […] consortiums like mine seem to place more emphasis on “cheap and reliable” than in “useful to the patrons. george bush and cognitive dissonance: “evolution is a lie” and “bird flu will evolve to threaten humans” alpha liberal reminds me that bush somehow gets his head around the following: “the jury is still out on evolution” and “the bird flu virus could evolve to a form that can be spread easily from human to human” eh, i’ll take any excuse to point to michelle leeds’ photo and bash bush’s stupidity. used brains and black plague, on ebay he he. chuckle, chuckle. thanks to kris and brett for these pics. they ads are still there now when i search google for used brain or black plague. my question is: does ebay just submit bulk lists of terms they want to buy, or do they have a deal with google to just link ’em up like this? authority and base jumping authority has varied meanings in every context. this piece on ifilm has iiro seppanen explaining his view of the matter as it relates to jumping off the stratosphere in las vegas. view above, or click through to base concepts: authority. i don't need an excuse to drink tequila, but i'll eagerly take one ian chadwick’s in search of the blue agave begins: “tequila is mexico,” said carmelita roman, widow of the late tequila producer jesus lopez roman in an interview after her husband’s murder. “it’s the only product that identifies us as a culture.” no other drink is surrounded by as many stories, myths, legends and lore as tequila and its companion, mezcal. they transcend simple definition by reaching into the heart of mexico, past and present. q: why do some things suck? a: because we compare them to the wrong things. i’m in training today for a piece of software used in libraries. it’s the second of three days of training and things aren’t going well. some stuff doesn’t work, some things don’t work the first (second, third…ninth) time, and other things just don’t make sense. at lunch, one of the other participants mentioned to the trainer that some of the activities in the software seemed to have too many steps, too many places to go wrong, too many turns between beginning and end. wpopac gets googled a discussion on web lib last month raised the issue of google indexing our library catalogs. my answer spoke of the huge number of searches being done in search engines every day and the way that people increasingly expect that anything worth finding can be found in google. there were doubts about the effectiveness of such plans, and concerns about how frustrating it might be for a searcher in california to find books (that he or she can’t access) in new hampshire. higher ed blog con (and other things i should have posted about last month) i meant to post about this weeks ago, but highered blogcon has now come and gone. it had sections on teaching, libraries, crm, and web development. (aside: why must we call it “admissions, alumni relations, and communications & marketing” instead of the easier to swallow “crm”?) the “events” are over, but everything is online, and most of it is free. ryan did a good job of covering the first few days, and what would a blog conference be without a common tag? linkrot? we don’t have any steenking linkrot! allen asked, via the web lib list: i’m interested in how others handle linkrot in library blogs. do you fix broken links? remove them if they can’t be fixed? do nothing? michael answered: i deal with link rot on blogs as i would with any other publication, print or otherwise: do nothing. the post is dated and users should be aware that links from two years ago may no longer work. frank rich on bush’s last days frank rich’s new york times op-ed column today was full of the kind of easy one-liners that repressives conservatives usually like to use against honest people progressives. i got it from my friend joe, but because the new york times thinks their content is golden, they won’t let me link you to the full-text. eh, i looked it up in lexisnexis (also a paid service, but better (marginally)) and posted the good parts here: kobb labs joe forwarded me a link to kobb labs the other day, and i’ve got to admit that the guy has a much better introduction than anything i could have written for my site: despite what you may have been told, i am not a mad scientist. (no, no, no, that’s all slander and lies from jealous colleagues.) as you can probably tell from my website, i’m just a man curious about the universe and the order of things. moba revisited i had a good opportunity to revisit the museum of bad art in dedham mass earlier this week. above is my buddy corey, but i was amused to find that visitors appear to be leaving their own works for the collection. cupcakes? “i’ve never seen the inside of a rabbit’s brain before. what’s in there anyway?” “nobody knows yet. johnson and i are hoping it’s cupcakes.” “me too. except vegan cupcakes. because i’m a vegan. vegans don’t eat animals or animal prod–” “i know what vegan means, thomas. you’ve told us.” “well, i was just saying, because–” “i know what vegan means” thank you, tristan. twenty years and a day mark nelson’s pripyat series on flickr is full of the pictures of desolation that people seem to be looking for as we solemnly honor the twentieth anniversary of the chernobyl disaster. google added high-resolution satellite photos of the area yesterday, and pripyat.com offers both stories and photo galleries to help us remember. it is there that i learned that rimma kiselica, the woman who has guided so many of those who’ve reported from the dead-zone, died on march . chernobyl and pripyat satellite photos today, on the twentieth anniversary of the disaster, google has added high-resolution satellite photos of the chernobyl nuclear power plant and the abandoned town of pripyat. above is the plant; the damaged reactor is on the left. in pripyat, the ghostly ferris wheel was easy to find, but where’s the vehicle graveyard? update: here it is. hat tip to “di” and “pero ” for their comments. twenty years ago today twenty years ago today at : : , the chernobyl npp reactor number four exploded. five thousand tons of lead, sand, and other materials were dropped on the resulting fire in an attempt to stop the spread of the radioactive cloud. the world learned of the accident when western european nuclear facilities identified radiation anomalies and traced them to the chernobyl plant, forcing the ussr to make its first public announcement on the matter. boolean searching in wpopac wpopac takes advantage of mysql’s indexing and relevance-ranked searching (go ahead, try it), including boolean searching (on mysql versions > .x). here are some details and examples taken wholesale from the mysql manual: + a leading plus sign indicates that this word must be present in each result returned. – a leading minus sign indicates that this word must not be present in any of the resuls that are returned. shifting borders my first reaction to the notion of librarians running reading groups in second life was a question of whether this was akin to putting a reference desk in a bar. my second reaction was a question of how our systems will support these extra-library interactions. can people quickly and easily trade urls to access the library materials they’re talking about? will library systems ever be as easy to use as the game/social environments we’re trying to use them in? living the life embarrassing, stupid online without contradicting the moral weight of social software post from last week, let’s take a moment to look at three stories from arstechnica about myspace and others: online video leads to teen arrests, shooting rampage avoided due to myspace posting, and google + facebook + alcohol = trouble. these are the stories we’ve come to expect: teen does or post the results of something [stupid|illegal|dangerous] in [myspace|facebook|some other online place] and gets caught. that crazy gnarls barkley other than the notion that i heard it on a kcrw music show, i couldn’t put my finger on the tune weaving through my head. so i listened, and listened carefully, waiting to hear it again. eventually i learned the earworm was gnarls barkley‘s crazy (thanks to molly for the mp download link). the group, a collaboration between dj danger mouse (of the grey album infamy) and cee-lo, released the single on myspace and created a new instant sensation in late march. movie: airport iain anderson‘s animated film, aiport, shows even the most pedestrian of designs come to life with a bit of creativity. elsewhere, a post at copyfight, suggests that the availability of those symbols — their freedom from copyright and trademark restrictions — was a key factor in spurring their broad adoption, creating both the culture and the free imagery for artists like anderson to use in their cultural commentary. bush: “i invented the ipod” president bush, speaking in alabama at the american competitiveness initiative, made a claim that would make al gore blush: he claimed to have invented the ipod. after taking credit for the development of ultra-small hard drives, audio compression, and chemistry(?), he laid it out: “it turned out that those were the key ingredients for the development of the ipod.” tip o’ the hat to engadget. bibliochaise what book lover doesn’t look twice at this bibliochaise from nobody&co? the wealth of networks wendy seltzer gave a shout-out for yochai nenkler‘s the wealth of networks: how social production transforms markets and freedom, describing it as… …an economic history of information production. we’re moving from the age of industrial information production to one of social information production. ever-faster computers on our desks let us individually produce what would have taken a firm to organize just a decade ago. ever-further networks let us share that with the world as cheaply as storing it for ourselves. danah boyd on the moral weight of social software danah boyd posted recently at many-to-many about the future of social software. i’ve been more than a little bit gung ho on web . for a while, but i do like her caution: if myspace falters in the next - years, it will be because of this moral panic. before all of you competitors get motivated to exacerbate the moral panic, think again. if the moral panic succeeds: youth will lose (even more) freedom of speech. wordpress baseline changes to support wpopac i’ve whittled things down to the point where the only baseline change from wordpress . . is in the next_posts_link function of the wp-includes/template-functions-links.php file. the change is necessary because wpopac rewrites the sql search queries in a way that’s incompatible with a piece of this function, but necessary for performance reasons. where’d all my rewrite rules go? between wordpress .x and .x there was a big change to the way rewrite rules are handled. in the old days, everything got written out to a <a href="http://httpd.apache.org/docs/ . /mod/mod_rewrite.html#rewriterule">.htaccess</a> file. every condition, every form of permalink could be found there, and i had some comfort knowing i could see and mess with it all. i was a bit surprised to find that with . . , wp writes out a sparse file that has only one significant rule. bloody tax day april has been tax day in the us for as long as anybody can remember, but with the weekend and all, most of us have ’til monday to file and some of us in the northeast have ’til tuesday. the thing i don’t like about tax time is that it brings out the worst in me. most any other time of the year i’m a pinko liberal, but the anticipation of taxes makes me look decidedly conservative and ornery. the crucible who wouldn’t like to play with the crucible‘s “fire truck”? what’s “the crucible”? [it’s] an arts education center that fosters a collaboration of arts, industry and community. through training in the fine and industrial arts, the crucible promotes creative expression, reuse of materials and innovative design while serving as an accessible arts venue for the public. you can see the truck at the make magazine maker faire later this month, and in july at the crubible’s fire arts festival. movie combos this is strange enough on its own, but i dare you to use it as a soundtrack to this one. printer fingerprinting news came out a while ago that many of our laser printers were embedding “fingerprints” that allowed folks who knew how (like, say, the feds) to trace a printed page back to the day and time it was printed, and the serial number of the printer. or, at least that was the theory, until the eff got all csi on it. the image above is magnified x and illuminated with blue light to increase the contrast of the yellow dot pattern used by xerox docucolor printers. php ’s simplexml now passes cdata content i didn’t hear big announcement of it, but [deep in the docs][ ] (? php . . ) you’ll find a note about [additional libxml parameters][ ]. in there you’ll learn about “libxml_nocdata,” and it works like this: simplexml_load_string($xmlraw, ‘simplexmlelement’, libxml_nocdata); without that option (and with all previous versions of php/simplexml), simplexml just ignores any < ![cdata[...]]> ‘escaped’ content, such as you’ll find in most every blog feed. [ ]: http://us .php.net/manual/en/function.simplexml-load-string.php [ ]: http://us . reboot your ‘pod colin has a nifty guide to your ipod’s hidden commands, like those for rebooting or getting into the diagnostics. he’s got more ipod tips if you look. good headline don’t these mainich daily news editors think they’re the shit when they get to combine “bondage” and “rope” in the same headline. i will trademark your every word yes, as it turns out, “freedom of expression®” is a trademarked term. and, yes, as it turns out, somebody’s been cease and desisted for using it. email is for old people i happened to stumble back onto the pew internet report on teens and technology from july that report that told us “ % of [us children] between the ages of and are online.” but the part i’d missed before regarded how these teens were using communication technology: email, once the cutting edge “killer app,” is losing its privileged place among many teens as they express preferences for instant messaging (im) and text messaging [sms] as ways to connect with their friends. i m super heros gotta go too, ya know? we regret the error not all errors in news reporting are as trivial as this one: the cost of beer kegs has risen by about % since the end of . in addition, neil witte is the draught beer quality-control specialist of boulevard brewing co., and steven pauwels is the brewer’s brewmaster. a march page-one article on beer-keg theft incorrectly said that the cost of kegs has tripled in recent years and incorrectly said that mr. and he did it in a tie steve jobs demos nextstep macs vs. pcs vista delayed the delay is the latest problem for the software giant’s flagship operating system. microsoft had originally slated the software for release in late , but pushed back its target date to summer and dropped several planned features to try to guarantee delivery. the company attributed the delay to the extra time needed to insure quality and fix remaining security issues. macsimum news | apple & macintosh related news reviews & opinions bad quality i should be all down on this sneaky way of advertising nokia’s n , but…eh, they’re funny. bad quality officechairs is the latest, bad quality hydraulics (somebody tell them it’s “pneumatics”) and bad quality superglue bring up the rear. if that isn’t enough, they’ve got the bad quality blog which pulls back the curtain a bit. if you look around a bit, however, you might stumble across nokia’s lifeblog (“feed it, watch it grow”): zhang huan’s “my boston” most people may recognize zhang huan from his “my new york” work that had him dressed in a beefy muscle suit. above is “my boston,” but i have a feeling it might get repurposed elsewhere during finals this spring to represent the agony of study. ups to ryan for the pointer. drive thru crucifixion titles and typefaces ryan pointed out that the titles for thank you for smoking are pretty interesting, then he followed up with a pointer to some font spotting at typographica. dns problems things went whacky with dotster‘s hosted dns services last night. though the problem now appears to be fixed on their end (and i’ve actually move elsewhere in my attempts to get back online), it could be a while before the bad data is flushed from caches around the world. in the meantime, let me mention that ryan shared with me a useful tool i’d not seen before: dnsreport. interesting, scary ilya khrzhanovsky’s . more. identity management in social spaces (note: the following is cross-posted at identity future.) being that good software — the social software that’s nearly synonymous with web . — is stuff that gets you laid, where does that leave idm? danah boyd might not have been thinking about it in exactly those terms, but her approach is uniquely social-centered. she proposes “secureid” what is secureid? secureid is a program that helps you protect and control your digital identity by allowing you to determine who can access your private information. big iron won’t win wars anymore technology changes things, sure. the question is, how do you recognize the early signs of change before they become catastrophic? i spend most of my days working on that question in academia, but what about our armed forces? noah shachtman regularly covers that issue in defensetech: like a lot of other sage observers, naval postgraduate school professor john arquilla isn’t nuts about the idea of spending a ton on cold war-style weapons systems when we’re supposed to be fighting terrorists and insurgents. sparkline php sparklines are “intense, simple, wordlike graphics? so named by edward tufte. in lieu of a more detailed introduction, professor tufte’s site has an early release of a chapter on sparklines. cool. here’s a php library and accompanying documentation wiki. more bsuite hacking update: bugfix release b v available. some conversations with chow kah soon, who’s site is full of diversions from work , finally convinced encouraged me to solve some small problems that were giving him big trouble. chow kah soon is in the lucky, but rare, position of having over , unique daily visitors to his site, so he’s sort of my designated stress-tester. after looking at the logs he shared with me, the table structure, and the queries in bsuite, it was pretty clear that i needed to make some changes to the indexes. winter’s last breath snow and rain mixed throughout the day tuesday, but we awoke to glistening white fields and trees. above is the view due west in wentworth this morning, before the warm spring sun melted it all away. don’t think you use web . ? think again it can be hard for library folk to imagine that the web development world might be as divided about the meaning and value of “web . ” as the library world is about “library . ,” but we/they are. take jeffrey zeldman’s anti-web . , anti-ajax post, for instance. zeldman’s a smart guy, and he’s not entirely off-base, but let’s not confuse his argument. what you don’t see him suggesting is that we abandon the web. “i hate drm” and other projects to preserve the digital artistic commons people hate drm. it prevents law abiding folks from enjoying the music and movies they’ve purchased, and it does little to prevent crackers from making illegal copies. in response, somebody’s created i hate drm, “a site dedicated to reclaiming consumer digital rights.” i created this site because, as a consumer, i am fed up. i feel like all of the entertainment that i love is slowly being eroded away by overly greedy companies. number sequences think about it, at the moment this post went live, it was one hour, two minutes, and three seconds past midnight greenwich mean time. why’s that matter? it doesn’t, but it looks cool: : : - - of course, brits and most others don’t represent dates that way, so the point is really only valid in us local time. c’mon, let’s wait up. richard sambrook talks citizen journalism i’m not sure what to think of richard sambrook appearing to struggle to find a place for traditional journalism in the age of the internet, but the story’s worth a read. david weinberger […] talked about the crisis in us journalism with failing trust in the big news organisations. he pointed out that google now provided a news service with just an algorithm where there used to be a newsroom of dozens of people — and suggested algorithms were probably more reliable than journalists anyway! getting things done, and feeling okay about it how’s a guy supposed to feel when his manager gives him a copy of david allen’s getting things done? go get yer podcast on gizmodo pointed out these usb and firewire podcasting kits from alesis. the package gets you a (hopefully not sucky) microphone with desktop stand, headphones, a carrying case, podcast production software, cubase le recording and editing software, and a digital mixer that plugs directly into the computer via usb or firewire (duh). the us$ usb version does two channels of bit/ . khz audio while the us$ firewire model cranks eight channels of bit/ khz sound. information behavior it was more than a year ago that lorcan dempsey pointed out this bit from the chronicle: librarians should not assume that college students welcome their help in doing research online. the typical freshman assumes that she is already an expert user of the internet, and her daily experience leads her to believe that she can get what she wants online without having to undergo a training program. indeed, if she were to use her library’s web site, with its dozens of user interfaces, search protocols, and limitations, she might with some justification conclude that it is the library, not her, that needs help understanding the nature of electronic information retrieval. atlanta art scene, spring atlanta was a bit of a lark. i hadn’t seen my friends for a while, and they were telling me that the weather was beautiful. so why not go? anyway, chuck close is on display at the high museum. and the thing about close’s work is that it frustrates my rule of “don’t do twice what you can automate once.” many of his portraits are the result of carefully mapped and measured graph lines that allow him to create pixelated works. water feature we were excited in new hampshire to have the first week of weather warm enough to go out without our coats at midday, but atlanta was warm enough to hop in the pool and hot tub after midnight. abductions i don’t know how i feel about shilling for the california dairy industry, but this cow abduction site is pretty funny. be sure to watch the movie. want more, go look at mailorderchickens.org. the aural times thanks again to a good tip from ryan, i’ve get something new to laugh at: the aural times. did i really just put this together? huh. noah shachtman tells us that even with the wars in iraq and afghanistan raging, our military forces are spending $ billion to arm up for a new enemy. but whom? china. then over here we’re reminded that china is the us’s largest creditor. facts of life a person will do certain things for money. idm takes lessons from the microformats crowd a tip from [ryan][ ] sent me [looking][ ] at [microid][ ]: a new identity layer to the web and [microformats][ ] that allows anyone to simply claim verifiable ownership over their own pages and content hosted anywhere. the idea is to hash a user’s email address (or other identifier) with the name of the site it will be published on, giving a string that can be inserted — in true microformats style — as an element of the html on the site. …and a mechanical turk to rule them all paul bausch has concerns about amazon’s mechanical turk: i can imagine a world where my computer can organize my time in front of the screen better than i can. in fact, i bet [amazon’s mechanical turk] will eventually gather data about how many [human intelligence tasks] someone can perform at peak accuracy in a hour period. once my hit-level is known, the computer could divide all of my work into a series of decisions. involvement, inclusion, collaboration peter caputa dropped a comment on jeff nolan‘s post about zvents. the discussion was about how online event/calendar aggregators did business in a world where everything is rather thinly distributed. part of the problem is answering how do you get people to contribute content — post their events — to a site that has little traffic, and how do you build traffic without content? the suggestion is that you have editorial staff scouring for content to build the database until reader contributions can catch up, and that’s where peter comes in, suggesting that content and traffic aren’t where the value and excitement are: twenty years after chernobyl nearly years after the initial events of the chernobyl nuclear disaster of april , the story is still unfolding. this month’s national geographic magazine tells of the “long shadow of chernobyl” — grown children of the disaster now fear having their own children while some elderly residents return to their old homes inside the , square mile, still contaminated “exclusion zone.” the print article seemed to offer hope, noting that even the pines of the “red forest” — so called because they received so much radiation that it bleached the chlorophyl from them, and some say the trees actually glowed — are beginning to grow back now. germaine i found germaine across from the prudential center friday. his sound was good and i especially liked his snare drum. door of mystery i found myself wandering about boston public library for longer than i expected friday. part of it was the map exhibit and part of it was the architecture (and simply a place to relax for a bit). amusingly, stairs and stairways seem filled with drama at bpl, and if the guard hadn’t just warned me about taking flash photos, i might have tried to sneak a peak behind that door. questions are all around us these pictures are mostly foolish, but here’s a small point: none of us had ever seen a cop pull over a cab — certainly not a cab with passengers — before this, so we were all rather curious about why. in front of us stood a question, an example of the many questions we all encounter every day, and it’s the kind of question that few of us would ever suggest going to the library to answer. the things they do to students at rice i won’t say why i went looking for pictures of people getting poked with sticks (but you’ll figure it out in a later post). i will say i was happy to find these from the poke-a-spontaneous-combustion-member-with-a-stick-day at rice university. look, they even have a price list that includes: $ poke with a stick song/poem on demand two minute massage lick a sc member $ picture with [unreadable] kissing whack with a stick $ marker tattoo $ attempt hedge jumping $ human piñata shave a leg we wrestle each other $ jump into hedges nowhere on the site does it note how much the fundraiser netted for “rice’s best (only) improvisational comedy troupe. business marketing babble makes me laugh found on jeff nolan’s blog: competitive intelligence: “a large fuzzy animal may be a bear.” marketing: “sap can help you understand your fuzzy animals. with over years in the fuzzy animal industry, we know if you are looking at a bear, a guy in a coat, or a large dog.” communications: “in today’s world of increasing challenges, it’s obvious fuzzy animals are what our customers care about.” sales: “who cares what it is. tomorrow in human computer interaction my dutch skills are weak to non-existant, and without a google translator for macarena.be, i’m pretty much stuck with staring at the above video and contemplating the short description provided: a movie about the technology which apple has recently patented. it is not a movie made by apple but by some researchers. fortunately, this is an area where video is much more illustrative than words. i sometimes get accused of blue sky thinking when i speak of the role of technology in our lives, but while i go on about how access to huge volumes of instantly searchable information is changing us, this video shows a rather near future where we can manipulate it ways that seemed like science fiction just the other day. facial recognitition spytech goes social troy expressed both great amusement and trepidation in his message alerting me to riya, a new photo sharing site: i don’t know whether to say cool, or zool. the tour explains that you upload photos, riya identifies faces in your photos, then asks you to name them (or correct its guesses!). then you get all your friends to join up and we can all search for everybody by people, location, and time. speaking my language i loved this quote from dave young when i first found it, and i love it more now: talk to the customer in the language of the customer about what matters to the customer. bad advertising is about you, your company, your product or your service. good advertising is about the customer, and how your product or service will change their world. read that again, but replace the relevant bits with “user” or “patron” and “your library” or “your databases. wyoming libraries marketing campaign i have mixed feelings about the value of advertising — it’s worth pointing out that according to john battelle, google never ran an ad anywhere prior to going public — but i still enjoy seeing things like this wyoming libraries campaign. jill stover quotes wyoming libraries’ tina lackey with the news that “wyoming’s libraries are as expansive as the state, and as close as down the street.” i’m just hoping that a, the horse is real; and b, they auction it off. gates harshes poor, tells them to buy windows what’s sadder than people in burundi earning an average of only $ a year? it might be bill gates‘ criticism of mit’s efforts to bring affordable, networked computers to the poorest countries of the world in hopes of improving education (and communication and healthcare and more). the challenge is enormous: the technology needs to be durable, require low-power (and be easily rechargeable), as easy to use as an egg timer, have networking in a land without infrastructure, and be cheap, cheap, cheap. can actors sell their digital clones? alan wexelblat in copyfight poses a question from a reader about the future of entertainment: what rights do you purchase/license/contract for in creating such a reproduction of a real person? rights to the “likeness?” performance rights? do either of these cover things the actor never physically did or said? is there an exclusivity clause? there are clearly some issues around the ownership of a character, if that character has appeared before (e. pravda march headline: us to collapse on feb i regularly check the english language online edition of pravda for laughs and sometimes for their take on us domestic affairs. but today’s headline left me scratching my head. what calendar are these people using, anyway? the headlined story is offered without any context or explanation. as it turns out, author ian magnussen really did mean february th , not or later. had it appeared two months ago it might have been called speculative fiction, though more likely seen as a crazy conspiracy theory. flight of the conchords ryan sent along a link to flight of the concords‘ business time last week and i’m still laughing over it. with some exploring at a fansite, what the folk!, i dug up a trove of other amusements, including she’s so hot boom. for more info, i turned (as usual) to the wikipedia article. and if i had hbo, i could have caught a repeat of them on one night stand this past wednesday. maisonbisson cultural reporter at sxsw, can’t get tickets, brushes with owen wilson instead sxsw passes have apparently been sold out for weeks now. so what’s bob garlitz, the maisonbisson cultural affairs reporter, to do? hunt for celebrities around austin, of course. here’s how he describes his first hit: i look at him intently, he’s about six inches in front of me. a long pause as i study his face and especially note the nose. he waits, expecting, knowing, what’s next. he’s shorter than me, in a white cap, white t-shirt and maybe white jeans. everybody’s irish with a quart o’ whiskey in ‘em modern drunkard magazine suggests we chase the snakes out of our minds, for as yeats reminds us: the problem with some people is that when they’re not drunk, they’re sober. (ryan points out that you can have that quote, along with three others from quipsters dylan thomas, w.c. fields, and oscar wilde on shot glasses.) but modern drunkard and yeats (despite his fine heritage) have it wrong. saint patty’s day isn’t about getting drunk or being drunk, it’s about getting silly enough to think you can dance a jig or sing a song. native to web & the future of web apps yahoo’s tom coats was of seven star speakers at carson workshops‘ future of web apps summit last month. as usual, ryan eby was pretty quick to point out his slides to me, mostly by way of pointing out jeremy zawodny’s translation of them. if it’s not clear yet: i wasn’t there, though i very much wanted to be, especially given some of what can be found in the post-summit blog posts. office cocktails i like pretty much everything paula wirth puts up on flickr, but this afternoon i could do well with a dive like scolari’s office in san diego. but, that’s probably because it mixes “office” and “cocktails” in the sort of way that has anonymous tipsters slipping photocopies of the alcohol policy from our hr handbook under my office door. eh, here’s to happy hour. homeland security: now policing porn? the washington post reports two men in uniforms bearing “homeland security” insignia walked into a bethesda library in early february, announced that viewing of internet pornography was forbidden, and began questioning patrons. the men asked one library user to step outside just before a librarian intervened. then… the two men [and the librarian] went into the library’s work area to discuss the matter. a police officer arrived. in the end, no one had to step outside except the uniformed men. the code lib journal(s) i should’ve kept code lib was less than a month ago, but already i’ve forgotten some details. that’s why i’m glad to have notes from ed summers (day one, two, and three), art rhyno, tom hickey, karen coombs, and ryan eby. there was a lot going on, and if i missed your blog it’s because google and technorati didn’t know about it (or i was being particularly lazy with my searching). our connected students just when you thought i was done talking about how the internet really does touch everything, lichen posts some details from the most recent university of new hampshire res life student survey and it gets me going again. in order, the top three activities are: socializing ( . hours/week) studying, excluding in-class time ( . hours/week) instant messaging, ( . hours/week) lichen also points out that im activity was reported separately from “personal internet use,” which got an additional . this is what social software can do the flickrblog reports this message from gale: people have been submitting good humpback whale fluke shots to a group called humpback whale flukes. i volunteer at allied whale which holds the north atlantic humpback whale catalog and i was able to make a very exciting match with one of the whales that was posted on the group by georgek. george saw this whale in newfoundland in the summer of . willie mae rock camp for girls the willie mae rock camp for girls: just another example of why new york is cooler than new hampshire. photo by rocco kasby, performance by the pink slips. yet again, a tip of the hat to ryan eby for the pointer. bsuite feature: user contributed tags ross singer gets the prize for submitting the first reader contributed tag, the latest feature in bsuite. there are arguments about whether user-contributed tags are useful or even valid, or whether they should be stored in my site or aggregated at places like del.ici.ous. but who’s to worry about such questions? who’s to worry when you can put together the work already done to support author’s tags with wordpress’s pretty good comment system and get user contributed tag support with just a few extra lines of code? user experience map i was this close to posting soldierant‘s gobbledy gook map, but, well… i guess i wanted to make a point with his user experience map, done in collaboration with the smart folks at experience dynamics. take a careful look at the role of your competitors and a user’s expectations and goals. yeah, we’ve all got some work to do. too bad the free seminar schedule hasn’t been updated for . whisky essential to writing god bless william faulkner for pointing it out: my own experience has been that the tools i need for my trade are paper, tobacco, food, and a little whisky. nash edgerton’s lucky scott smith’s imperfect ten too slow for you? take a look at nash edgerton‘s lucky over at blue tongue films. what would you do in minutes seconds? how would you escape? zorb: another reason new zealanders are cooler than you who of us didn’t want to try it when we saw jackie chan bounce down a mountainside in one in operation condor (well, who of us who saw operation condor didn’t want to try it)? but until cool hunter gave me a pointer, i had no idea what the these strange inflatable balls (yeah, go google that) might be called or where to look for more information. as it turns out, they’re called “zorbs,” and the company even has a promo video to show them off. nuns vs. librarians in spelling bee from yahoo! news and ryan eby, there’s a funny spelling bee planned in erlanger kentucky: erlanger, ky. – after a five-year hiatus, the sisters of st. walburg monastery in villa hills are ready to show whether they are superior spellers. the sisters were champions of the annual corporate spelling bee for literacy in northern kentucky for years before giving others a chance to win. but now the nuns are back, even if they’re a little timid about challenging the reigning champions — a group of boone county librarians. scott smith’s imperfect ten the nice folks at coudal partners are hosting scott smith’s imperfect ten, “wherein one man breaks all ten commandments before breakfast.” it’s friday (march th, even), go watch. crisp green shirt between the mit show and microsoft’s vaporware, origami is back in a big way. here’s drumsnwhistles answer: a very crisp green shirt. all about opensearch and autodiscovery from davey p i’ve been meaning to point out (and steal from) dave pattern’s post on tipping off ie (and other browsers soon too, hopefully) to available opensearch targets for some time now. i haven’t had time to do the stealing, so i’ll have to settle for pointing it out while it’s still news. what’s the trick? as dave explains, you put a link in the <head> section of your pages like this: visual complexity i found the above image of a yfiles-generated site map at visualcomplexity.com. we’ve seen a lot of internet diagrams, including this one from , but what about mapping food? or disaster situations? or air routes? it’s like data porn, and there’s more in the visualcomplexity gallery. the ignorant perfection of ordinary people bob garlitz, who’s trying to decide between blogging at typepad and blogspot, wrote to offer a somewhat older phrase for the success of social software as described in the wisdom of crowds and in the definition of collabulary: “the ignorant perfection of ordinary people.” bob is at a loss to identify the source (and it pre-dates the book of the same title by a long shot), but maybe this crowd will know? mit origami competition ryan eby and make magazine alerted me to mit’s student origami exhibit, in which jason ku’s ringwraith won the best original model prize, and brian chan’s beaver — the mit mascot — got special attention from the mit news office. collabulary i found this a few days ago and realized that it embodied the difference between how i understand tag folksonomies and how others (with whom i’ve argued) may see them. that is, i see the role of the social group — the wisdom of the crowd — as essential to the success of our folksonomic efforts. as it turns out, somebody’s come up with a word that emphasizes that (uncoordinated) collaboration: collabulary. talking ‘bout library . users want a rich pool from which to search, simplicity, and satisfaction. one does not have to take a -minute instruction session to order from amazon. why should libraries continue to be so difficult for our users to master? — from page of the the university of california libraries bibliographic services task force final report. i find a new gem every time i look at it. robins at bath i heard birds chirping yesterday morning for the first time in a while, and from my office window i could see robins returned from the south. spring, it seems, has arrived in new hampshire, but nobody’s captured it better than breezin with the photo above — obviously taken from a somewhat warmer place than this in late january. tags done right flickr does tags better than any other, so far as i can tell. we love tag folksonomies for way they allow us all to organize our world, for the way they allow patterns to emerge from chaos, and for their easy flexibility. but that flexibility, if poorly implemented in our software, can interrupt the very patterns we hope to find in our tag networks. take “road trip” as an example. what one tagger thinks is two words might be just “roadtrip” to another. macbook pro reviewed jacqui cheng likes her new macbook pro and loves the performance, but gives the magsafe power adapter mixed reviews. why? she says it disconnects when it shouldn’t, and seems to stay connected when it should disconnect. well, i think i still want one. troy bennett at “ben show” ben apfelbaum died before having the chance to see it all come together, but his quirky idea seems to be a hit. here’s how jerry cullum described it for the atlanta journal constitution: “the ben show” was the brainchild of beloved spruill gallery director ben apfelbaum, who asked one day, “what’s in a name?” and proceeded to track down a host of artists named “ben.” well, actually, he asked, “is the use of a given name as a thematic device as useful as any other thematic device to create an art exhibition of interest? podbop rocks your calendar ryan eby pointed out podbop, a site that podcasts sample tracks from bands coming to your area (or any other area you select), and we both wished we’d thought of it ourselves. there’s nothing coming to warren (of course). but they’ve got coverage for denver, where i’ll be in may, so it immediately found a place in my podcast aggregator. laura fries might have covered the smart and cool factors best: oddest title of the year winner …and also rans the bookseller magazine friday announced the winner of the th annual diagram prize for oddest title. bookseller deputy editor joel rickett appeared on weekend edition saturday with the news, saying, as he did in a telegraph story on the matter: “it has been a pretty good year for strange titles.” the winner is people who don’t know they’re dead: how they attach themselves to unsuspecting bystanders and what to do about it by gary leon hill, but the list of nominees and near nominees included rock paper scissors posted on the wall in tom’s peacock bar in corvallis was a mystery: a notice of a rock paper scissors tournament. a visit to the usa rock paper scissors league‘s website proved more confusing. take the first news release as an example: rocky balboa is stepping back into the ring for his final comeback, as production has begun on “rocky vi: rocky paper scissors.” after a -year hiatus, sylvester stallone wrote the film himself, knocking out boxing from the script and replacing it with a hand sport that is more intense, more courageous and that looks even better in those dramatic slow-motion shots: rock paper scissors. “peanutty” ≠ peanut butter treehugger pointed out these p.b. slices as an example of excessive packaging. what they didn’t mention was the ingredients or processing used to make a non-sticky, peanut flavored “food product.” peanutty, but not quite peanut butter it’s worth mentioning here that i have a rule about things i find in the supermarket: if it says “food” on the label, you probably shouldn’t eat it. think about it, start first with the cat food, dog food, and fish food, then take a look at the pasteurized processed cheese food product and some of the goodies in the canned meats aisle. fun with (explosive) balloons okay, so this is certainly in the “don’t try this at home, kids” category, but we can all laugh and point at other’s stupidity. denver‘s abc channel reported last month on a foolish fellow who inflated balloons with acetalyne, the highly flamable and explosive gas used in welding, and drove off to a superbowl party. the balloons ignited, possible because of static electricity, and the explosion blew out all the windows, bent the car’s roof and doors out, and left the driver and with burst eardrums, burns, pain, and a felony explosives charges. can anybody explain this? ???????????????? morbidly curiouser zach saw my story about plane crashes and forwarded me a link to this video of an early parachutist he found on damn interesting. the connection to yesterday’s story is that the video ends with cops measuring the depth of the crater the jumper left after falling almost feet from the top of the eiffel tower. it’s the sort of thing that gets you nominated for a darwin award. morbidly curious a friend pointed me to planecrashinfo.com and i can’t help but explore. i was told to start with the pictures (which end in late , and so don’t include recent incidents like the flaming nose-wheel at lax or the overshot runway in chicago), but it was the collection of “last words” transcripts from the cockpit voice recorder (audio is available for many of them) that really trapped me. we might get a furtive chuckle over such last lines as “hey, what’s happening here” or “uh. the oregon attractions i didn’t see i’ve been back from oregon for about a week and a day now, and it’s really time to clear out my files. so here now are the attractions i had put on the list, but never got to see. i’m not complaining, afterall, i did get to see sprayfoam art, the us’s only municipal elevator, the world’s tallest barber pole, the spruce goose, mt. tabor, and the velveteria. clearly, oregon has a lot to offer wacky travelers. is sun’s t up to it? jonathan schwartz made the kind of news that makes slash dotters happy: he announced sun is (sort of) giving away free servers. it’s a promotion, a media play, of course, but one that might make a few lucky people very happy. here’s the deal: sun is really proud of their new t eight core server. each core runs at . ghz, but they’re apparently applying some distributive power of multiplication and calling it an . lego architecture the millyard museum was hosting the new england lego users’ group saturday, building lego replica’s of manchester nh‘s old victorian-era houses. it turns out they’re building a scale model of the entire millyard. love letters from your isp a friend got his own cease and desist letter the other day. his isp forwarded the notice from a copyright enforcement agency along with five pages of content intended both to stop those that know they’re sharing and help out parents (or others) who may not be aware of what all is going on with the computers attached to their cable modem. of course you’re a valued customer, and of course it wasn’t your fault, just stop it is the message. worse things a friend forwarded this, from fleur adcock: things there are worse things than having behaved foolishly in public. there are worse things than these miniature betrayals, committed or endured or suspected; there are worse things than not being able to sleep for thinking about them. it is a.m. all the worse things come stalking in and stand icily about the bed looking worse and worse and worse. as the useful becomes useless, it becomes art the story here isn’t about why i’m on the kate spade mailing list. the story is about their new line of “paper.” it’s stationary, of course. the kind of formal paper people use to send out wedding invites and thank yous and whatever other little missives that email or aim seem too uncouth for. i made this point before, in a discussion of how painting evolved from trade-craft to art after the development of the camera, but i love seeing a new example. standards cage match i prefaced my point about how the standards we choose in libraries isolate us from the larger stream of progress driving development outside libraries with the note that i was sure to get hanged for it. it’s true. i commented that there were over , registered amazon api developers and public opensearch targets (hey look, there’s another one already), but that srw/sru would always play to a smaller audience. evergreen aviation museum howard hughes‘ spruce goose now rests in mcminnville, at the evergreen aviation museum. the goose is as long as a with a wingspan a third again as broad, and for a short few seconds in , it flew. the docent was incredibly pleased to tell us that the tail almost broke off during those few seconds in the air. he claimed hughes hushed up the story and maintained the aircraft in flight-ready condition to protect himself from further attacks from government accountants. diy hoverboard my friend troy sent along a pointer to the gadget show‘s feature on diy hoverboards. they claim it all goes together with basic tools, a leaf blower, plywood, a bit of pipe, and other various parts totaling about £ . oh yeah, they also recommend “an insurance policy with good fringe benefits,” and being as british as they are, apparently “craft knives” and “scalpels” are pretty interchangeable. it all goes together in eight easy steps explained on four pages, so what’s keeping you? about my code lib presentation as with all my other presentations, the my slides tell less than half the story, but i’ve posted them anyway. i’m told the audio was recorded, and there’s a chance that will help explain all this, but until then you’ll have to piece this all together from my previous writings, what little i’m about to offer here, and the slides (which, again, without the spoken component, probably do more to misdirect interested readers than answer questions). brick i just popped in the constant gardener (trailer) and discovered the preview for brick. and even though i want to see almost every movie previewed for me, i really want to see this movie. the constant gardener, by the way, is good too. velveteria i wasn’t just surprised to find a gallery of velvet paintings, i was further surprised to learn they were hosting a show of valentines velvet works by local artist juanita and had cards advertising a show of la artist arnold pander’s oil on velvet works at the local vault martini lounge. but the fact is, carl baldwin and caren anderson’s velveteria is the place, if ever there was such a place, where such forces will collide. world’s tallest barber pole forest grove, oregon claims to have the world’s tallest barber pole, apparently presented by the portland area barbershoppers in recognition “ballad town usa’s” role in promoting and encouraging barbershop quartet singing. it stands in lincoln park (visible from sat photos!) just north of pacific university. barbershop poles and quartets they may have, but the barber i visited there did a lousy job trimming my beard. such is life, i suppose. librarians of springfield that’s my contribution to the springfield public library meme that michael casey and laura savastinuk started over the weekend. oregon city municipal elevator oregon city apparently boasts one of only four municipal elevators worldwide. one hundred thirty feet tall, with an observation deck at the top, it seemed to be worth stopping for. jason wrote in to roadside america explaining: it began as a water-powered elevator in , but was upgraded to an electric-powered elevator in . it is an example of googie architecture, which is reminiscent of the space-age housing structures in the jetson’s cartoon show. pdx’s free wifi rocks here’s a lesson the rest of the world’s airports could take from pdx: free wifi. most other aiports charge dearly for wifi, but pdx offers it free. knowing this, i arrived at the airport a couple hours early and got my dinner and caught up on my email here instead of elsewhere. the port of portland didn’t get my $ . an hour, but they did get an extra customer in their restaurants and shops. mt. hood from mt. tabor above: tonight’s sunset view of mt. hood from atop mt. tabor, an ancient volcano. roadside america claims: this is the only volcano located within a city limit in any us city. you can view the cinder cone and a few feet away from the parking lot is a kids play area. sprayfoam art in millersburg what you can’t tell about the photo above is that the eagle is huge, and made of spray foam. it stands at sprayfoam inc., just off the i at millersburg. don’t miss the cornucopia-like sign, or the completely enfoamed sprayfoam-mobile. the chuck norris meme i first caught up with all this at matt‘s blog, but on the radio out here in oregon today they kept inserting chuck norris legends between songs. here’s a bunch from chuck norris facts: when the boogeyman goes to sleep every night, he checks his closet for chuck norris. chuck norris doesn’t read books. he stares them down until he gets the information he wants. there is no theory of evolution. lessons from the microformat world i can’t help but like microformats, and part of that comes from the dogmatic principles that drive them. among those is the notion that none of us should attempt to create a format out of whole cloth. here’s how they explain it: under the title of “propose a microformat” they tell us: “actually, don’t!!!” ask yourself: “are there any well established, interoperably implemented standards we can look at which address this problem? things i learned at lunch today karaoke means “empty orchestra” in about the same way that karate means “empty hand.” the “oke” piece is actually a shortened form of “orchestra,” borrowed from western languages. ethiopians supposedly discovered coffee when they noticed goats eating the beans. no word on weather the coffee beans in their droppings are any good. you mean other businesses handle acquisitions too? art rhyno confused my by calling it erp, but he just rocked his code lib presentation and i realized he’s talking about the same thing that’s been itching me: libraries are not unique, but our software and standards are unnecessarily so. in my introduction of wpopac i made the point that i didn’t want to replace the ils — certainly not the acquisitions management functions or other business processes. art today explained that he wouldn’t want to have to develop or support those features either, but that we don’t need to. pig-n-ford races!?! so here i am looking up things to do in oregon and i come across the tillamook chamber of commerce‘s guide to local attractions and its note about the pig-n-ford races: vintage vehicles, daring drivers and squealing porkers. mixed together, the outcome can only be described as frenzied farm-style fun. most people would agree that individuals who race model-t fords must be strange to begin with. when competitors insist on carrying pigs as passengers, however, it’s a sure sign of a rare breed of driver. on flying if i didn’t like flying, or at least if i couldn’t tolerate it, i wouldn’t making my third distant trip in as many months. and though i know many others spend a whole lot more time in planes than i do, i still think vasken has a bit of a point in the following: i couldnt help thinking about the horrid dichotomy that is airline travel… on one hand, my flight from philly to manchester takes minutes, or + hours less than the trip takes in a car–on the other hand, it took me hours to get from my house to the place i was staying in pa, a savings of a mere hours. instant messenger or virtual reference? i noted aaron schmidt‘s points on im in libraries previously, but what i didn’t say then was how certain i was that popular instant messaging clients like aol instant messenger or yahoo!’s or google’s are far superior to the so-called virtual reference products. why? they’re free, our patrons are comfortable with them, and they work (three things that can’t be said about vr products). ah, heck, just take a look at what michael stephens was saying about them last week (as quoted by teresa koltzenburg at ala techsource): choose your disaster the good people at keep the faye gave me a chuckle with their series of choose you daily disaster magnets, like the hillbillies and volcano series pictures above. then they followed it up with the amusing, but somewhat less funny choose your favorite fantasy series. mysql’s slow query log zach suggested it last week, but it’s only now that i’ve gotten around to setting up mysql’s slow query log. it’s easy enough, you’ve just got to put a couple lines like this in your my.cnf (which is in /etc on my server): log-slow-queries = /var/log/mysql/mysql-slow.log<br /> long_query_time = this should get most people running, but this story in database journal offers a few more details. potentially more useful is this guide to query and index optimization (though it’s probably a little out of date). nmc’s horizon report i’d never heard of the new media consortium before, but they claim a mission to “advocate and stimulate the use of new learning and creative technologies in higher education.” anyway, their horizon report identifies the following trends among those shaping the role of technology in education: dynamic knowledge creation and social computing tools and processes are becoming more widespread and accepted. mobile and personal technology is increasingly being viewed as a delivery platform for services of all kinds. roadside attractions perhaps it’s just because i’m now scouring roadside america for tips on what to do in the hours after the end of code lib and my flight home, but i got a hoot out of this ap story about “roadside giants”: a pittsburgh-area couple find “roadside giants” historic, attractive, a boon to local economies… and silly. associated press pittsburgh – how can you find the cadet restaurant in kittanning? high-speed photography the gallery at pulse photonics has more than a few images that seem to pause time in impossible moments. they’ve got images of balloons pierced by arrows and darts, oranges exploding from [a gunshot][ ], bullets [shattering glass][ ] and [slicing through jelly][ ], and all of this [falling water][ ] and [oil][ ] in [so many][ ] [little droplets][ ]. you really oughtta go see the [whole gallery][ ]. and after that, go visit the [photron gallery][ ] of slow motion videos that [caught my eye][ ] a while ago. bicycle snowplow to go along with summer’s bicycle riding mower is this “vancouver snowplow” from joe-ks.com (yes, i feel appropriately stupid for linking to a site with an animated gif splash page). oddly, this isn’t the only such snowplow. on being busy i should be thankful to have friends who get worried about me when i don’t blog for a couple days (or at least make up stories), but let me take this moment to make it clear that i haven’t gone into boat sales. this has happened before, and it just means i’ve got a larger than usual pile of deadlines (and interesting projects like wpopac) on my plate. wpopac: an opac . testbed first things first, this thing probably needs a better name, but i’m not up to the task. got ideas? post in the comments. for the rest of this, let’s just pretend it’s an interview. what is wpopac? it’s an opac — a library catalog, for my readers outside libraries — inside the framework of wordpress, the hugely popular blog management application. why misuse wordpress that way? wordpress has a a few things we care about built-in: permalinks, comments, and trackbacks (and a good comment spam filter), just to start. performance optimization a couple notes from the past few days of tweaks and fixes: hyper-threading has a huge effect on lamp performance. from now on, i’ll have bad dreams about running mysql without query caching in the way that i used to have nightmares about going to school wearing only my underwear. the difference is that big. wordpress rocks, but it has some queries that will kill large databases. i’m playing with baseline when i fix ’em, but it’s worth it. the web is not a one-way medium anybody who questioned the pew internet and american life report about how teens use the internet and how they expect conversations and interactivity from the online services they use might do well to take a look at this comment on my chernobyl tour story: student looking for info that your not give us february rd, : you people suck. we have to do a school report and you are not giving us any info on what happened to the people, and the environmetn, we need a story from someone and about someone who lived through this inccident. faqs about those three wishes i ran across david owen’s three wishes faq in a month-old new yorker on my friend’s coffee table last night. i tore out the page thinking i’d not find it online, but lo, the new yorker posted it on their site on jan ninth! you have been granted three wishes — congratulations. if you wish wisely, your wishes may bring you great happiness. before wishing, please take a moment to read the following frequently asked questions. libraries vs. drm within minutes of each other, two friends from separate corners of the world sent me a tip about the following: slashdot pointed to this bbc news that talks about the ill effects of drm on libraries. what’s drm? it’s that “digital rights management” component of some software and media that supposedly protects against illegal copying, but more often prevents legitimate users from enjoying the stuff they’ve bought legally. now think about how this works (or doesn’t) in libraries… exxpose exxon exxonmobil’s profits of $ . billion are apparently the largest ever recorded by any corporation in america. to celebrate, the folks at saveourenvironment.org put together this funny short: exxposeexxon. the movie makes some good points, but let’s face it, high oil prices encourage conservation and research on alternative energy technologies. is j. k. rowling carolyn keene’s sister? i said previously that i drop my journalistic standards on fridays. today is no exception. background, from mysterynet: carolyn keene is a writer pen name that was used by many different people — both men and women — over the years. the company that was the creator of the nancy drew series, the stratemeyer syndicate, hired a variety of writers. for nancy drew, the writers used the pseudonym carolyn keene to assure anonymity of the creator. as if retro fashion didn’t already go far enough i guess i can see why people might be willing to throw down $ or more for these fancy northstar refrigerators, i mean, they remind rich young people of their grandma’s house, with fresh-baked cookies and a big glass of milk to dunk them in. i’ve gotta admit, i almost got suckered too. but why is it that our rosy nostalgia for the s ignores both the racial segregation (a bad thing) and the income equity (a good thing)? onion story predicted five-blade razors in gillette’s fusion five-blade razor is hitting the shelves now, but the onion predicted it in february . aim and changing modes of communication there’s a bit of discussion of aim‘s role in personal communications over at remaining relevant. i mention it here because i’ve been thinking about this lately. we’re seeing some great shifts in our modes of communication. take a look at how “webinar” technologies have changed sales forces. the promise is lower costs and faster response time, but it also challenges our expectations and the skills of the salesperson. now imagine the generation of kids who are growing up with aim entering the workforce. the future of privacy and libraries ryan eby speaks with tongue firmly in cheek in this blog post, but his point is well taken. privacy is serious to us, but we nonetheless make decisions that trade bits of our patrons’ privacy as an operational cost. while we argue about the appropriate time keep backups of our circulation records, we largely accept them — and the way they connect our patrons with the books they read — without question. zach’s couch camouflage here’s zach hidden in plain sight on a couch at a friend’s house the other day. that’s skill. where’d my go? nobody remembers how, but the bottle is empty again. we’re beginning to blame it on bandits. warren (and dog sledding) on tv tonight the folks at wmur‘s chronicle are featuring my friends joe and wendy and their dog sledding tonight. the photos above are of justin in a race a few years ago (video of the finish also online). warren hasn’t been so proud since we put the rocket up. large format scanners for document imaging the market for large-format flatbed scanners is shrinking, so products turn over slowly and development is far behind my expectations. that said, the epson gt- doesn’t look like a bad choice for tight budgets. it has a relatively low maximum resolution of only dpi, but has the highest claimed scan speed of seconds at dpi. following that is the microtek scanmaker xl, which has a much higher maximum resolution, but much slower scan speed (even at the same resolution as the epson). what does facebook matter to libraries? lichen pointed me to this librarian’s guide to etiquette post about new technologies: keep up to date with new technologies that you can co-opt for library use. so what if no one will ever listen to the pod casts of your bibliographic instruction lectures, subscribe to the rss feeds from your library’s blog, send your reference librarian instant messages, or view your library’s profile on facebook.com? at least you did your part to make all these cool technologies a little bit lamer. walking desk i used to have a stand-up desk at work. then that got replaced by a pair of standup workstations above a more normal desk. then i moved offices and switched roles from sysadmin to programmer and got the most normal desk ever. then, in january , i heard an npr story about dr. jim levine’s study that put a high value on constant movement throughout the day, and i got concerned about sitting for so long. not invented here i couldn’t say it, but alexander johannesen could: libraries are the last bastions of the “not invented here syndrome” (scroll down just a bit, you’ll find it). between alex’s post and mine, i don’t think there’s much to say except this: there may be five programmers in the world who know how to work with z . , but several thousand who can build an amazon api-based application in minutes. what technology do you want to bet on? reviews you can trust cameron moll (via ryan eby) wants “weight” customer ratings to reflect how two products of the same rating might have wildly different numbers of reviews. at first glance i agree with him, but after a moment of thought, i begin to wonder if i want the ratings weighted by the number of reviews, or the number of reviews i “trust.” amazon keeps huge amounts of data about all its customers. so how hard could it be to correlate my purchasing behavior with the purchasing behaviors of the reviewers along with the details of which reviews i’ve previously checked as “helpful. indian frankie the plan was to meet jessamyn and greg at the india queen last night, so discovering this note yesterday on slashfood about “frankies” had the added excitement of both discovering a new food i wanted to eat, and being in a position to get it that day — the sort of instant satisfaction one doesn’t expect in these parts. here’s the description: the frankie is an indian street-type food made of a thin bread similar to a tortilla that is coated with egg and fried. conceding defeat i wasn’t really in the game, but when samb posted the above picture of david brown’s typical meal, i couldn’t help but take it as a challenge. i never did get around to snapping a picture to match samb’s, and now i’ve got accept that there are others with more skill and determination than me. slashfood explains that anybody can walk in to in-n-out burger and order a sandwich of any size. to blog or not to blog a friend revealed his reticence to blogging recently by explaining that he didn’t want to create a trail of work and opinions that could limit his future career choices. fair point, perhaps. we’ve all heard stories of bloggers who’ve lost jobs as a result of the content of their posts. and if you believe the forbes story, the blogosphere is filled with teaming hordes intent on ruining established companies and destroying the economy (okay, i exaggerate). to blog or not to blog a friend decided the old pornstar name formula was good enough to use to name her blog, as she explains in her launch story. so, should this be the nick hastings blog? elsewhere, another friend is struggling with the decision to blog. when you need to talk to customer support it’s good to know hard to find numbers.com is there when you need it. here are the top five: <td width=" "> htf# </td> <td width=" "> who </td> <td width=" "> notes </td> amazon.com <td> - - <br /> <br /> - - <br /> <br /> - - <br /> - - </td> <td> cust. service<br /> <br /> seller support<br /> <br /> rebate status local or int’l </td> <td> / <br /> <br /> "<br /> " ( press to bypass menu) <br /> " </td> ebay. dawg it’s friday, a day when i drop my journalistic standards and usually publish whatever video or joke somebody forwarded me during the week. this one came from my dad: a guy is driving around and he sees a sign in front of a house: “talking dog for sale.” he rings the bell and the owner tells him the dog is in the backyard. the guy goes into the backyard and sees a labrador retriever sitting there. plesk bites i picked plesk over cpanel as my server control panel because it was cheaper, looked better, and seemed to have all the features i wanted. what i didn’t know was that it came with php and mysql at times when each was a major version ahead of that. when the good folks at my hosting provider tried to upgrade this, it conflicted with plesk and they have to back off. quickly noted: mooflex cms new ajax-happy cms: mooflex, more info at ajaxian (and in their podcast). about sherpa and their advice to digital libraries… i mentioned sherpa a while ago: sherpa is a large consortial uk project that’s attempting to build an academic archive/repository for institutions, including the british library and cambridge university. [link added] i bring this up again now because they’ve got some advice for people on the subject of digital archives. they recommend eprints, an open source project developed and maintained by the university of southampton. second to that, or for those interested in archiving a broader variety of object types, they suggest mit’s dspace. users vs. network printers in winxp it’s been a problem we’ve struggled with here for much longer than we should have, and it took a hotshot new guy in desktop support to show us the answer. but if you know the right magic, you can add a printer to windows xp and make it available to all users. see, if you add the printer using the “add printer” wizard, it’s available only to that user. but if you use the command line, then you can throw a switch to make it available to any user who logs in to that machine. jenny levine’s online library user manifesto drawing from john blyberg‘s ils customer’s bill of rights and the social customer manifesto, jenny levine offers this online library user manifesto: i want to have a say, so you need to provide mechanisms for this to happen online. i want to know when something is wrong, and what you’re going to do to fix it. i want to help shape services that i’ll find useful. i want to connect with others that share my interests. cio’s message to faculty: the internet is here as part of a larger message to faculty returning from winter break, our cio offered this summary of how he sees advancing internet use affecting higher education: are you familiar with blogs and podcasts? google them, or look them up in wikipedia. some of you may already be using these new tools. others may think these terms are the latest in a sea of techno-jargon. regardless, your millennial students — the netgens — are using these new technologies — along with the ubiquitous cell phone — more and more. the arrival of the stupendous we can be forgiven for not noticing, but the world changed not long ago. sometime after the academics gave up complaining about the apparent commercialization of the internet, and while wall street was licking it’s wounds after the first internet boom went bust, the world changed. around the time we realized that over million americans have internet access, that million americans use the internet ?on an average day, and that % of them believe the internet is a reliable source of information, we looked around and found that along with doing their banking, their taxes, and booking tickets for travel and movies, those users were making about five billion web searches each month. goodbye san antonio you won’t get your salad dressing on the side in san antonio. i don’t know what it says about a place, but in new england it’s so common i never learned to ask for it on the side, it just happens. not so in san antonio. you’ll also have trouble finding a place to eat dinner away from the riverwalk, as all the neighborhood places i found are open only for breakfast and lunch. data visualization and the opac a chat with ryan eby, also an edward tufte fan, elicited this line about another reason we continue to struggle with the design of our catalogs: data isn’t usable by itself if it was then the opac would just be marc displays and yesterday i was speaking with corey seeman about how to measure and use “popularity” information about catalog items. it got me thinking about flickr’s interestingness metric, which seems to combine the number of times a photo has been “favorited,” viewed, and commented. presentation: designing an opac for web . ala midwinter iug sig presentation: designing an opac for web . update: pdf version with space for notes web . and other “ . ” monikers have become loaded terms recently. but as we look back at the world wide web of , there can be little doubt that today’s web is better and more useful. indeed, that seems to be the conclusion millions of americans are making, as current estimates show over million users in the us, including % of youth - . fully wired and mobile in san antonio i’m in san antonio for ala midwinter and enjoying the benefits of wide-area mobile internet access via my treo and and the power of local search. this is sort of a test for me and my treo, as i passed on all the usual trip prep i do and entirely i’m depending on what i’ll find in situ or in my mobile web browser. i wandered around a bit this afternoon to get a feel for the place, but as i got hungrier, i found myself stuck in the riverwalk mall, and without any local clues about where to look for better food (steers & beers, in the mall, might have been an option if it had more activity or if those few who were sitting at tables didn’t look so miserable). educause on future of libraries take a look at this editorial by jerry d. campbell, cio and dean of university libraries at the university of southern california: academic libraries today are complex institutions with multiple roles and a host of related operations and services developed over the years. yet their fundamental purpose has remained the same: to provide access to trustworthy, authoritative knowledge. consequently, academic libraries — along with their private and governmental counterparts — have long stood unchallenged throughout the world as the primary providers of recorded knowledge and historical records. goodbye x. in recognition of the divisive and increasingly meaningless nature of x. monikers — think library . and the web . that inspired it — i’m doing away with them. when jeffrey zeldman speaks with disdain about the ajax happy nouveaux web application designers and the second internet bubble (and he’s not entirely off-base) and starts claiming he’s moving to web . , then it’s a pretty clear sign that we should give up on trying to version all this. learning: mysql optimization i have over posts here at maisonbisson, but even so, the table with all those posts is under mb. now i’ve got a project with , posts — yes, , posts! — and the table is about mb. an associated table, structured sort of like wp’s postsmeta, has over . million records and weighs in at over mb (not including the mb of indexes). up to now i’ve been a “throw more hardware at it” sort of guy — and in a server with only gb of ram, that’s probably the best solution — but i also think it’s time i learned some mysql optimization tricks. radical, militant librarian the ala’s intellectual freedom folks came up with this radical, militant librarian button (which i found in library mistress’ photostream): in recognition of the efforts of librarians to help raise awareness of the overreaching aspects of the usa patriot act, the american library association (ala) office for intellectual freedom (oif) is offering librarians an opportunity to proudly proclaim their “radical” and “militant” support for intellectual freedom, privacy, and civil liberties. wordpress plugin: add to del.icio.us i’m not running it here (only because i’m too lazy), but i was happy to find arne brachold’s del.icio.us – bookmark this! wordpress plugin. it puts a sweet bookmark on del.icio.us link whereever you call this function: <?php dbt_getlinktag(“bookmark on del.icio.us”); ?> arne also wrote the google sitemap plugin i use (though it turns out i’m a few versions behind). us census on internet access and computing rebecca lieb reports for clickz stats that, based on us census data (report), most americans have pcs and web access: sixty-two million u.s. households, or percent of american homes, had a web-connected computer in , according to just-released u.s. census data. that’s up from percent in , and more than triple ’s percent figure. home web use continues to skew toward more affluent, younger and educated demographics. how i broke my clie it’s an unseasonably warm and rainy january here in warren, where warm actually means daytime highs of about degrees and ‘seasonable weather’ would be closer to zero. the point is that it’s the worst possible winter weather: the rain ruins the regular winter activities, and it’s still too cold to take up summer activities. perhaps that’s why i take such comfort in this video of ashton, even if it is the video that killed my clie. field of trains fishfin has an interesting collection of photos from the american plains. that old train car caught my eye and fishfin replied to my comment with more detail: this old train car sits about yards from the soo line railroad in north eastern montana, it’s in comertown, an old abandoned town were they used to run whiskey from canada to the us in the early ’s. [link added] fishfin ’s old train. highways think now of the us interstate highway system. like the internet that followed, the highway system was the subject of much hype and conjecture. most notably, norman bel geddes’ -designed general motors futurama exhibit at the new york word’s fair. in it we saw magical highways connecting our cities, and whisking motorists from new york to la in hours. he predicted cities would expand their commuting radius by % by . the library vs. search engine debate, redux a while ago i reported on the pew internet project‘s november report on increased use of search engines. here’s what i had to say at the time: on an average day, about million american adults use the internet; % will use email, % will use a search engine. among all the online activities tracked, including chatting and iming, reading blogs or news, banking, and buying, not one of them includes searching a library opac. more trends in online behavior from pew internet it turns out that the pew internet and american life project sort of keeps a blog. here are some points from a november post by project director lee rainie regarding “surprising, strange, and wonderful data:” the vast majority of most internet users ( %) and many non-users (about %) expect that they will be able to find reliable information online when it comes to news, health care information, e-commerce, and government. winter’s day winter in warren can be rather picturesque. poets, justice, scotch unattributable: “poetic justice is a lie. it’s no more real than military inteligence. the entire motivation for poetry is the unjust pain of life.” separately, what’s the appropriate lc classification for scotch? my first thought was around pr , but what do i know. should it go elsewhere? what about other spirits? joel friesen’s misuse of powerpoint joel friesen‘s powerpoint-esque presentation on why his girlfriend should continue to date him didn’t win her back, but it entertained folks. yes, the diagram above shows joel’s position at the intersection of those who are graphic designers, awesome people, and people who’ve played a zombie in a low-budget horror flick, yes the other slides are as entertaining. go look: why you should continue to date me; a series of charts and graphs. presentation advice from an apple insider mike evangelist’s look behind the magic curtain of apple keynotes during his time with the company. code lib program proposal i’d be excited just to be a fly on the wall at code lib, but i’m on a bit of a mission to change the architecture of our library software — to make it more hackable, and make those hacks more sharable — so i had to propose a talk. title: what blog applications can teach us about library software architecture description: the number of programmers in the library world is growing and our individual efforts have shown great promise, but they exist largely as a spectacle that few libraries can enjoy. looking at controversy through the eyes of britannica and wikipedia the argument about wikipedia versus britannica continues to rage in libraryland. the questions are about authority and the likelihood of outright deception, of course, and a recent round brought up the limitations of peer review as exemplified in the cold fusion controversy, where two scientists claimed to have achieved a nuclear fusion reaction at room temperature. randy souther, from the university of san francisco, asked us to look more carefully: boat full of toilets my inner -year-old is cracking up over the notion of a shipwrecked load of toilets in the mediterranean. magnetic fields, earworms, fido i can’t get fido, your leash is too long, from the magnetic fields‘ love songs, out of my head. this entry is an attempt to kill this earworm by posting the lyrics. if this doesn’t work i’m checking out maim that tune. fido, your leash is too long you go where you don’t belong you’ve been digging in the rubble gettin’ bitches in trouble tag clouds… “the tag cloud is the mullet of the internet.” found at phpflickr. look closely. gallery to flickr migration tool for those people still using gallery, here’s the last straw: rasmus lerdorf got to playing with the flickr api and quickly wrote up a script to migrate his photos from gallery to flickr. he’s didn’t post a script or anything, he’s just saying it’s easy to do. a lot of things are easy to do, of course, but that doesn’t mean they get done. so it’s probably a great relief to somebody that paul baron got on the job. ddos’d my hosting provider sent along the following message: we have experienced a ddos attack today january th, which resulted in latency across the entire network. during this time your domain, email, ftp and other services may have appeared to be offline, or intermittent. our techs have been working as quickly as possible to block the attack and get the network back up to speed. i was relieved to know that the unexpected downtime was the result of something i’d done. political blogging protected by fec way back near the end of , lot reported that the federal election commission had basically ruled that bloggers are journalists: the federal election commission today issued an advisory opinion that finds the fired up network of blogs qualifies for the “press exemption” to federal campaign finance laws. the press exemption, as defined by congress, is meant to assure “the unfettered right of the newspapers, tv networks, and other media to cover and comment on political campaigns. social software works for organizations too ignore the politics for a moment. moveon‘s cto, patrick michael kane, remarked that the organization’s membership to flickr, the photo sharing site, has paid off: “flickr has got to be the best $ . we’ve ever spent.” why? micah sifry explains in a story at alternet that moveon had been soliciting photos of events from members for some time, but their ability to move those photos through the process and make them available to the public was limited. wordpress . & bsuite update: bugfix release b v available. wordpress . is out and available for download now. i don’t know how the development team did it — i mean with the holidays and all — but here it is. and now i have to admit that i haven’t even played with the betas, so i’ve got no clue how bsuite works with the big . . for all i know it works just fine, or it drops all your tables and sends your browser history to your mother, so please take caution. avenue q steve wynn could probably have had any show he wanted, but he chose avenue q, the sesame street and muppets-inspired show that has to include a disclaimer denying its roots in the program and advertising. what the show’s creators don’t have to disclaim are the three tony awards the show won in for best score, best book, and best musical. sandee bought the cast recording (also at amazon) because they’re the sort of tunes that get into your head…the sort of tunes you’ll find yourself humming days later. the eating, drinking, and dancing in vegas vegas knows liquor. vegas knows drinks. they go well with cards and dice and slot machines and such. and even though the cards and dice and slot machines and such aren’t my reasons for going to town, i do enjoy a drink. above, center you see the west wing bar’s sidecar with cognac, triple sec and lemon juice. at the left is a pinapple mojito from the wynn’s terrace pointe cafe. nevada considers atomic testing license plate, again the first license plate to remember nevada’s history as the host of the us’s nuclear testing grounds drew criticism for featuring a mushroom cloud (see the plate on the right, above). now it appears folks are at it again, this time with a plate that depicts the site’s area and includes the classic illustration of an atom’s electron cloud. all of this generated enough interest to bring the local media out to the atomic testing museum to gawk at the proposed plate, including an actual-sized rendition being shown off on a lincoln navigator. nevada desert we didn’t get to go to barstow as planned, but i couldn’t leave las vegas without a peak at the desert. fortunately, red rock canyon isn’t far from town, and the blue diamond highway does a nice loop there and back. along the way i found that the town of blue diamond has a new welcome sign, but the old text remains: “elevation: high, population: low, burros: ?” i stumbled across an upended car standing like a tombstone exclaiming “dirt man rocks. font friends you’ve got to love a friend who emails you when she finds fonts like orange whip and comic strip exclaim and say they remind her of you. on censorship regarding nudity in photographs posted to flickr, dancharvey says: honestly, i’m more concerned about all the cats and flowers. cliche is more damaging than breasts. your opinion may vary. barstow california what didn’t work out because of our problems with the hotel was our drive to barstow to see sandee’s friend joanne. i don’t know much about the town, but wikipedia told me to look out for the original del taco, rainbow basin natural area (site not loading now, try this instead), calico ghost town, and the old solar one solar energy generating experiment. along the road, however, is the the world’s tallest thermometer, in baker, california. atomic liquors i convinced sandee to join me at atomic liquors on fremont street, just beyond the western hotel casino in what the las vegas sun calls the “gritty underbelly of las vegas.” owner joe sobchick and his wife stella started business in with a cafe called virginia’s. they converted it into a bar in , and changed the name to recognize their proximity to the nuclear tests just miles away. welcome to fabulous las vegas…with your host, casey the wind along las vegas boulevard was blowing hard, so it hides the fact that i’m currently sporting one of the worst haircuts of all time. i’ve been meaning to take a picture of this damn sign for years — and more so after seeing beatnickside‘s collection of vegas photos. what you lose in the whirligig… nobody’s saying what caused it, but things didn’t go as planned at the mgm grand sunday night. we were told our room wasn’t ready when we tried to check in a little before midnight, so we ambled over to the cafe for a midnight breakfast on the house. then at am, when our rooms still weren’t ready, we were sent to the bellagio with a voucher for a free room and cab fare. the real king kong here’s another story from my friend joe monninger. this time it’s a piece he cut from a book he’s working on, but i’m happy to take his tailings. the text that follows is his: with the mega-release of king kong swarming the country this week, it might be interesting to hear a true big ape story. i came across this story while doing research for a project, and i pass it along as it came to me. happy holidays from las vegas! the bellagio is all done up for the holidays, vegas-style (which means it’ll give you a headache). happy holidays from warren snow, thick and heavy because of the thaw these past few days, covers warren. our rocket stands tall for all seasons. shuffling ipods i couldn’t help but want one when they were released. i still wanted one after reading the reviews. and i couldn’t help but think about buying one when i finally got to play with it in the store. my wife, loving me and knowing me as she does, got me one. yes, i got a video ipod for christmas. thing is, presents like this create a crisis. how do i extract the gigabytes of music i’ve accumulated on the old ipod? last minute gift idea my friend joe loved his chickens, though a fox did them in this last fall. he’d planned to leave the coop empty for the winter and start fresh in the spring, but his surfing lead him to mail order chickens (adoption card pictured above). so…what better a gift for a friend than a chicken by mail? and what better a gift to the world than trade justice? santa vs. cops i always get a laugh out of cops, and an even bigger laugh out parodies of the show. so i have to thank cliff for finding this animated video of santa getting pulled over. the war on christmas i like christmas as much as anybody (well, anybody who likes christmas), but i’m a “happy holidays” guy. why? because christmas and the holidays aren’t about me, they’re about the way we spread happiness and joy to others, no matter how they celebrate. so while i quietly hope for my own merry christmas, i resist the urge to wish everybody else a happy festivus and opt for “happy holidays.” blogging the office party (mostly because they suggested it) i don’t work for central it anymore, but they still invite me to their holiday party. and no office holiday party would be complete without a yankee swap. i brought a sort of crappy battery operated screwdriver that seemed to be popular (but keep in mind that we have really low standards for these things), but i was pretty happy to unwrap a martini set with four glasses and pitcher for myself. serena collage customer sites zach got a call from the serena collage rep who rattled off this list of customers in new england: boston college northeastern bristol community college umass lowell the sungard/sct luminis content management suite demo we got the demo yesterday of sungard/sct‘s luminis content management suite (sales video). i mentioned previously that the sales rep thinks pima community college and edison college show it off well. here’s what we learned in the demo: it started with the explanation that data is stored as xml, processed by jsp, and rendered to the browser as xhtml according to templates, layouts, and “web views.” it was later explained that the product was “web server agnostic” and could run under apache, iis, sunone, or others. electric aerobic color me amused to learn that somebody (don’t worry, amazon will never tell me who) bought carmen electra’s aerobic striptease after following one of my amazon affiliate links. book flower institutional and academic repositories mit has dspace, their solution to save, share, and search the collected work of their faculty and students (in use by public sites). now royce just shared with me this presentation by bill hubbard, the sherpa project manager at university of nottingham. what’s sherpa? the name is an acronym for securing a hybrid environment for research preservation and access, but it’s a project intended to archive the pre and post publication papers and other research products. kim’s cms shortlist with , cms vendors in the marketplace, we’re mining what we know or know-of as a way to shorten the list. kim named the following four: joomla, a derivative of mambo collage appears to have good content reuse features omniupdate has a good list of higher ed clients drupal: open source and turning heads ryan eby’s pursuit of live-search ryan eby gets excited over livesearch. and who can blame him? i mention the preceding because it explains the following: two links leading to some good examples of livesearch in the wild. inquisitor is a livesearch plugin for os x’s safari web browser. it gives the top few hits, spelling suggestions where appropriate, and links to jump to other search engines. garrett murray’s maniacalrage is an interesting blog on its own, but he’s also doing some good ajax on his search interfaces. simon mahler audioproduktion simon mahler did the audio for benjamin stephan and lutz vogel‘s trusted computing movie. the movie is good, but i realized i was letting it play in the background just to hear the soundtrack, so i finally looked up mahler’s fotone.net and found the three free song downloads. it’s good stuff, but i’m wondering where the album is… cop tasers cop two cops: he wanted a soda, she didn’t. she had the wheel, he had a taser. details from this associated press story: hamtramck, mich. — a police officer has been charged with using a taser on his partner during an argument over whether they should stop for a soft drink. ronald dupuis, , was charged wednesday with assault and could face up to three months in jail if convicted. the six-year veteran was fired after the nov. they might be giants podcast thanks go to jenny for the link to the they might be giants podcast! and all that brings up something i was too lazy to figure out before. interestingly, it became an issue now only because i was also too lazy to look for the tmbg podcast in the itunes podcast directory. it turned out to be easy enough to subscribe directly, but here are the directions from apple: if you can’t find a podcast on the itunes music store, never fear. free palm/treo aim client my treo rocks. part of my love for the new gadget is how i can now aim on the run without sms. sure, i risk frostbitten fingers as i walk across campus and i’d probably be a lot better off if i just called the person, but…but… anyway, everything treo was near the top of my google query with a roundup of three commercial im apps for palm. but none of the reviewed apps seemed all that great, and i sort of expected to find a free client. two things to know about library . you don’t like the “ . ” moniker? so what. john blyberg reminds us that “if we’re arguing over semantics, we’ve been derailed.” and stephen abram is said to have cautioned us: “when librarians study something to death, we forget that death was not the original goal.” bsuite bug fixes (release b v ) [innerindex]i’ve fixed another bug in bsuite b , my multi-purpose plugin. this update is recommended for all bsuite users. fixed previous versions would throw errors at the bottom of the page when the http referrer info included search words from a recognized search engine. installation follow the directions for the bsuite b release. the download link there will always fetch the current version. upgrades from earlier versions of bsuite are easy, just replace the old bsuite. improving wordpress search results simplesearch – a full-text solution | beau collins nature concludes wikipedia not bad fresh from nature: a peer reveiw comparison of wikipedia’s science coverage against encyclopaedia britannica: one of the extraordinary stories of the internet age is that of wikipedia, a free online encyclopaedia that anyone can edit. this radical and rapidly growing publication, which includes close to million entries, is now a much-used resource. but it is also controversial: if anyone can edit entries, how do users know if wikipedia is as accurate as established sources such as encyclopaedia britannica? yahoo! rocks the web no, i don’t mean that they’re disrupting it, i mean they’re getting it. and in saying that, i don’t mean they’re figured it our first, but they they’re making some damn good acquisitions to get it right. mostly, i’m speaking of they’re purchase of flickr last year and their acquisition of del.icio.us friday. but in a somewhat lesser way i’m also speaking of their announcement monday that they’ll be offering blogs as well. yahoo! buys del.icio.us nial kennedy threw down some of the first coverage of yahoo!’s acquisition of del.icio.us last week. del.icio.us will most likely be integrated with existing yahoo! search property my web. my web allows yahoo! members to tag search results for discovery through a defined social network (y! ) or all yahoo! users. yahoo! will use del.icio.us bookmarks to better inform personalized search results throughout its services. its ability to combine signals of relevance from search result click-throughs to a listing of sites bookmarked and classified will lead to increased use of yahoo! opensearch spec updated i just received this email from the a opensearch team: we have just released opensearch . draft . we hope to declare it the final version shortly, and it is already supported by a .com. uprading from a previous version should only take a few minutes… opensearch . allows you to specify search results in html, atom, or any other format (or multiple formats) in addition to just rss. in addition, opensearch . a patron’s perspective on library . my friend joe monninger is perhaps a library’s favorite patron. he’s an avid reader who depends on his public library for books and audiobooks and dvds, and as a writer and professor he depends on the services of the university library. but he doesn’t work in libraries, and though he listens patiently to my work stories, he doesn’t really care about the politics or internal struggles we face. that said, i’m reprinting here the full text of his recent column for the valley news, a paper serving hanover new hampshire and other upper connecticut river valley communities. bush joke i wish i could admit the provenance of the following, but i’ve been sworn to secrecy. here goes: donald rumsfeld is briefing president bush: “yesterday, brazilian soldiers were killed.” “oh no!” exclaims the president, “that’s terrible!” his staff is stunned at this unprecedented display of emotion, watching as bush sits, head in hands. finally, he looks up and asks, “how many is a brazillion?” identity management podcast josh porter and alex barnett got dick hardt and kim cameron on the line to talk about identity management. the result is available as a podcast. i should add that josh and alex are big on the attention economy and social software, so they’re asking questions about how idm works in those contexts. most people thinking about idm today seem to be thinking about its uses in the enterprise or in education, but when i say identity management is the next big thing, i mean it in the social context that josh and alex are rooted in. sungard/sct luminis content management suite we’re looking at the sungard/sct luminis content management suite (sales video). the real demo comes later, but the sales rep thinks pima community college and edison college show it off well. hmm. four million dominos, a sparrow, an exterminator people like to topple dominos, and some people like to topple great long snaking lines of them. so tv crews get involved, people spend a month or more lining the damn things up, and domino day becomes an annual event. enter sparrow. sparrow menaces dominos, topples , of them. enter exterminator. exterminator shoots sparrow. enter news media. enter public outcry. enter death threats. result: a record million dominos, the sparrow incident is being investigated by a reported seven agencies, and the martyr sparrow has been preserved for display in . free fonts zone erogene has ten fonts available for free download, including migraine serif and the faux-cyrillic perestroika. tip for mac os x users: rename the font to remove the “.txt” extension that will get added to the filename, then double-click it. the dial up isp wasteland yes, there are some parts of the continental us not yet served by dsl or cable modems. that’s why i’m looking for a dial up isp. nationally we’ve got aol and earthlink, followed by budget operators netzero, peoplepc, and netscape online. but here’s the thing, and forgive my ignorance, why do all these services suggest you need to download and install software just to dial in? i mean, hasn’t dial up networking been a standard feature of various releases of mac os and windows since or so? treo for me i’ve been talking up the pepper pad and nokia a lot, and i’ve mentioned a moment of lust for the lifedrive (despite my complaints against pdas), but today i bought a treo (even though i had doubts). my decision surprised me, but the following factors all weighed in its favor: my cell phone contract expired. verizon was dangling their standard $ discount (on top of other discounts) on a new phone if i renewed. the bathroom reader somebody at gizmodo found this agence france-presse story about the intersection of american surfing and bathroom habits in the hindustan times. it’s based on a report by the usc annenberg school‘s center for the digital future. for five years running now, the center has tracked internet use (and non-use) in a , household representative sample of america (choosing a new sample each year). this year, researchers found: “over half of those who used wi-fi had used it in the bathroom. gao report confirms election fraud this should be no surprise — especially to those who’ve been appropriately concerned about electronic voting machines: lyn davis lear is reporting on a gao report that concluded the election was fraudulent and a diebold insider is blowing the whistle (via engadget). what does the report confirm? bob fitrakis & harvey wasserman summarize: some electronic voting machines “did not encrypt cast ballots or system audit logs, and it was possible to alter both without being detected. supamonks video al sent this video along via email, and it seems perfect for friday afternoon. it’s all about super-monks (supramoine in french?), a kind of european shaolin, maybe. warning label humor amadana‘s new headphones come with an amusing warning label: can’t climb wall. can’t listen to the voice in your heart. can’t open the coffer (safe). sure, the above looks fake, but lichen pointed out this other engrishism: “fits well and stable…with movable ear hangers.” want more? go visit galleries of oddness. astro dog press jon link is among the smartest and coolest people i know, so when he decides to start up a press, and then decides to fund his startup with t-shirt sales, i get in line. nokia in the wild gizmodo‘s reporting the nokia is in customer’s hands and getting some buttons pushed. now we’ve got nokia and pepper exploring this space. where to next? frontrow for everybody via an im from ryan eby: a pointer to andrew escobar‘s directions on how to install apple’s front row. digitize vinyl easy engadget and gizmodo both have the skinny on a usb turntable. microformats oliver brown introduced me to microformats a while ago, the ryan eby got excited about them, then coins-pmh showed how useful they could be for libraries, but i still haven’t done anything with them myself (other than beg peter binkley to release his coins-pmh wordpress plugin). what are microformats? garrett dimon explains the theory: when writing markup against deadlines and priorities, it’s easy to forget that somebody else will eventually have to maintain it. macos x . = built-in vnc server macminicolo.net explains how to use it. queen mashups are all the rage michael sauers pointed out q-unit, a mashup of queen and cent. they’re sure to have disney (the rights owner for queen’s catalog) on their back soon. at least, it didn’t take disney long to shut down the kleptones, whose “a night at the hip-hopera” has a spot on my ipod. and that’s where the story comes around, are we at the point where we can say queen’s music has taken on the status of a modern fairy tale? oclc report: libraries vs. search engines so, the report was released monday, and it’s actually titled perceptions of libraries and information resources ( ), but the part i’m highlighting here is the results of the question that asked users to compare their experiences with search engines against their experiences with libraries. here’s the quesiton: satisfaction with the librarian and the search engine — by total respondents based on the most recent search you conducted through [search engine used most recently],how satisfied were you in each of the following areas? all conversations in warren revolve around heat a friend of mine jokes that every conversation in warren revolves around heat. but, it wouldn’t be funny if it wasn’t at least a little bit true. as it turns out, most of the rest of the country is talking about heat too. pellet stoves have been all the rage this fall. i feel lucky to have gotten one before the rush, but i’m also a little dismayed about the selection. jabber as inter-process communication standard? open-ils blog » blog archive » opensrf jabber: a technical review oss in lib ryan eby tells me that the current issue of library hi tech includes some discussion of open source software’s uses in libraries. my cultural go-to guy most of my reading is non-fiction, so i depend on bob garlitz to keep me current with the rest of the literary world and a bit of the art world. raging arguments about the future of the ils i feel a little misrepresented by a post from talis’ richard wallis claiming you don’t need technology for library . – but it helps, but the company blog doesn’t allow embedded urls, so i’m posting my comment here: richard, please don’t misunderstand me. technology is the essential infrastructure for library . . my point was that technology alone doesn’t make a library. it would be better to read my post in the context of meredith farkas‘ and jenny levine‘s recent posts crying out for more programmers in libraries. who’s afraid of wikipedia? arguments about wikipedia‘s value and authority will rage for quite a while, but it’s interesting to see where the lines are being drawn. on the one had we’ve got a year-old pointing out errors in encyclopaedia britannica (via many many) and now on the other side we’ve got john seigenthaler, a former editorial page editor at usa today, piping mad about some libelous content in his wikipedia biography page. now, i have to agree with seigenthaler in as much as i would never want anybody to make such claims against me, and i’d probably consider my legal options in such a matter, but i’m sure i’m not the only one who gets a chuckle over the matter. understanding airport codes dave english explains why airport codes can be so darn confusing (even while some of them are stupid obvious). criticism of modern movies we’ve all heard it before, but we just can’t get it out of our heads. today’s movies make us feel dumb. paulina borsook joins the chorus and condemns contemporary cinema by praising movies of the s and s: they were movies made for adults, even if they had been mainstream movies and/or nominally rated pg. they made presumptions about the intelligence of their audience, didn’t need things to be boldly spelled out, and they were predicated on the assumption that their audience was capable of making inferences. $ laptop details i’ve been doing a lot of talking about the coming information age and how it depends on access technology that is as cheap and easy to use as our cell phones (and applications of it that are as appealing as people find their cell phones). but i’ve been slow to mention the mit media lab‘s one laptop per child $ laptop plan. the truth is that i just don’t know that much about it. humanoid robots are eerie my friend troy pointed out a while ago that the more “realistic” our -d models of humans get, the scarier they look. apparently it applies to robots to, at least judging by the “actroid” above. maybe i better put how to survive a robot uprising closer to the top of my reading list. more at akihabara news, found via gizmodo. understanding wp_rewrite and related hooks the docs are in the codex, this tag plugin offers quite a few examples, as does jerome’s keywords plugin. wp geo mashup plugin i don’t know how i missed cyberhobo‘s geo-mashup-plugin (also at wp-plugins.org) until now. it’s been ahah all this time? i might be reading this wrong, but it looks like i’ve been using ahah when i’ve thought i was using ajax. hmm… bsuite bug fixes (release b b) [innerindex]i’ve fixed a couple bugs in bsuite b , released last week. fixes a bug with search word highlighting that caused it to litter the display in some cases. a silly mistake of mine that cause a mysql error for some users. installation follow the directions for the bsuite b release. the download link there will always fetch the current version. upgrades from bsuite b are easy, just replace the old bsuite. safe: design takes on risk i’ve been sitting on this story since october, hoping i’d be able to get to the show, but it’s increasingly clear that i’m not getting to nyc for a while. so, anyway… moma is showing safe: design takes on risk wired magazine described it: just in time for the wave of catastrophes plaguing our fragile planet, some top designers unveil a series of aesthetically pleasing objects that could be handy in dangerous situations, from the banal to the apocalyptic. library . ? rochelle worries that all this library . talk is lost on her library. ross tells us why he hates the library . meme and dan reminds us it’s not about buzzwords. but michael is getting closest to a point that’s been troubling me for a while: library . isn’t about software, it’s about libraries. it’s about the evolution of all of our services to meet the needs of our users. bar hosts burglaries in years yahoo! news tells me that brigitte hoffmann’s tages-bar in berlin gets robbed a lot. edward gorey’s “elephant” house edward gorey is known for having created the gashlycrumb tinies, an alphabet of ways young children can meet an early end. that, and the bumper animations for public television’s mystery! (here, have some games). gorey is dead now, but his house in yarmouth is open to the public. admission is $ for adults (http://edwardgoreyhouse.org/, phone - - ). i found out about the house at odd new england. , cms vendors! cms market watch tells us that there are , cms vendors, and some of them are getting a little feisty. a library for all peoples in a washington post column last week, librarian of congress james h. billington proposed a library for the new world: [t]he time may be right for our country’s delegation to consider introducing to the [unesco] a proposal for the cooperative building of a world digital library. this would offer the promise of bringing people closer together by celebrating the depth and uniqueness of different cultures in a single global undertaking. bsuite features: the photo spread bsuite highlights the search words used to find blog posts in google and other search engines, and uses those search terms to recommend other related posts at your wordpress site. — – — bsuite uses the tags of one post to recommend related posts in your wordpress blog. — – — bsuite includes an easy to use statistics engine that tracks the daily hits to every post and page. opportunity knocks message from jenny levine: opportunity knocks. some people hear it, others claim it’s just squirrels on the roof. opac web services should be like amazon web services no, i’m not talking about the interface our users see in the web browser — there’s enough argument about that — i’m talking about web services, the technologies that form much of the infrastructure for web . . once upon a time, the technology that displayed a set of data, let’s say catalog records, was inextricably linked to the technology that stored that set of data. as we started to fill our data repositories, we found it usefull to import (and export) the data so that we could benefit from the work others had done and share our contributions with others. talk big if i lived in seattle, i’d look to beatnickside’s photos for clues about where the fun is. here’s his photo of the “iron composer” competition at the crocodile cafe. dance dance revolution, nyc i caught the following story on npr’s all things considered (realaudio stream) last night: new york is known for its vibrant nightlife, yet in many bars and restaurants it’s illegal to dance. now, a law professor is challenging the “cabaret laws,” claiming they violate a dancer’s right of free expression. the city says dancing by patrons is not a protected right — and can prove it. (link added) this was a big surprise to me, and a bigger surprise to learn that it’s not just some blue law. bsuite wordpress plugin (b release) [innerindex]the first thing we all have to agree on is that bsuite is the replacement for bstat. the name change reflects that fact that the plugin is doing a lot more than simply track page loads. the most exciting new feature is a module i can’t help but call bsuggestive. it uses the tags of the current post to suggest related posts to your readers. and when readers arrive at your site via a search engine, it not only highlights the search words they used, but offers a list of other posts matching their search criteria. cms pitfalls everybody wants a content management system, but there’s little agreement about what a cms is or what it should do. even knowledgeable people often find themselves struggling for an answer before giving up and defining a cms by example. the problem is that we know we want better websites, and we know technology should help, but how. jeffery veen offers some sage advice to those who would ignore the non-technical facets of the problem: theories of information behavior via librarian way i found the lis radio webcast of a conversation between sandra erdelez and karen fischer, two of three editors of theories of information behavior from asis&t and information today. unfortunately, the interview focuses on how the book came to be more than the content, but the description reads: overviews of more than conceptual frameworks for understanding how people seek, manage, share, and use information in different contexts. bsuggestive and bsuite tag support bsuite, the follow-up to bstat, now includes a module called “bsuggestive” that recommends related posts based on the current post’s tags or alternate posts based on your search words when you arrive from a recognized search engine. that is, bsuggestive does two neat things: first, visitors will see a section in each post with links to other posts on your site that have similar content. the “similarity” is judged by comparing the current posts tags against the content and titles of all other posts in the database. bsuite is coming i’m about to release a public beta of my wordpress plugin over at maisonbisson. information about my favorite new feature, bsuggestive, online now. bsuite started out as bstat, and continues to offer rich stats tracking features. update: bsuite b is out! wayfaring.com wayfaring: with wayfaring.com you can explore maps created by others, or create your own personalized map. share them with friends or the whole world. now imagine it with earthcomber integration. wouldn’t that be neat. raging arguments about the future of the ils i hadn’t seen ryan eby’s post at libdev that connected ilss with wordpress before i posted that library catalogs should be like wordpress here. it connects with a my comment on a post at meredith farkas’ information wants to be free. my comment there goes in two directions, but i’d like to focus on the technology side now. our vendors will inevitably bend to our demands and add small features here and there, but even after that, we’ll still be stuck paying enormous amounts of money for systems that remain fundamentally flawed. rollyo metasearch rollyo: roll your own search engine. create personal search engines using only the sources you trust. relevant. reliable. rollyo. they call them “searchrolls” library catalogs should be like wordpress library catalogs should be be like wordpress. that is, every entry should support comments, trackbacks, and pingbacks. every record should have a permalink. content should be tag-able. the look should be easily customizable with themes. everything should be available via rss or atom. it should be extendable with a rich plugin api. and when that fails, it would be nice if it were all written in a convenient language like php so we can hack it ourselves. infrared photos among the infrared photos at pbase.com is this plantation infrared collection by joseph levy. above: part of the collection by richard higgs. blog value the sale of weblogs inc. to aol last month for $ + million got a lot of bloggers excited. tristan louis did the math and put the sale value into perspective against the number of incoming links the the weblogs inc. properties. it’s an interesting assertion of the value of the google economy, no? the various properties have a total of almost , incoming links, which work out to being worth between about $ and $ each, depending on the actual sale price, which everybody’s mum about. karen kills in karts karen has the smart-sexy-funny thing going on, but that doesn’t stop her from eating donut after donut or beating will and me in every white-knuckled kart race we ran last weekend. drivers sit only an inch or two off the ground in karts that are said to go miles an hour. eight minute races may seem short, but at between and seconds per lap (my best time was -some-odd seconds, karen’s was at least a second faster), you’ll get plenty of chances to skid out at every turn. thanksgiving there is, supposedly, some historical meaning to our thanksgiving holiday, but all i can figure out is that i wasn’t there and it probably didn’t go as i’ve been told. thing is, thanksgiving isn’t so much about what we were, but who we are. thanksgiving celebrates the two most important things in life: food and family. almost unique among us holidays, retailers haven’t yet found a way to commercialize it. international readers may wonder how a us holiday can exist without commercial involvement, but they should know that we make up for it in the way we eat. my wife the technology dependent anti-geek my wife sandee cringes at the suggestion that she’s a geek. she writes poetry and teaches english, she cooks fabulous meals and dances all night long. surely you’re mistaken she’ll say. but she does have a laptop, a digital camera, and an ipod. and she immediately saw the value of having a computer in the living room when mp s replaced cds many years ago. so you’ll point to all of this and ask for a clarification and she’ll explain that her use of technology does not make her a technophile any more than her use of a car makes her a nascar fan. pew internet report: search engines gain ground according to the recently released pew internet report on online activities: on an average day, about million american adults use the internet; % will use email, % will use a search engine. among all the online activities tracked, including chatting and iming, reading blogs or news, banking, and buying, not one of them includes searching a library opac. november snow we’ve had snow on the mountains for a while now, but this is the first accumulation in my yard. when you hit bottom and need design help stock.xchng has nothing on flickr for searching, finding, sharing photos, except that they’re uploaded with the express intention of offering them for re-use. some are available free, others free for non-commercial use, others with their own license terms. but stock photos aren’t really the bottom of the barrel. no, for that you have to look at pixellogo. it’s there that you’ll see the sorts of things you can do to put some pop in a limp design. using xml in php everybody likes documentation. the zend folks posted this overview and simplexml introduction the o’reilly folks at onlamp offered this guide to using simplexml. of course, there’s always the simplexml docs at php.net. two problems: i haven’t encountered cdata in my xml yet, but i do hope to develop a better solution than offered here when i do. the other is that simplexml chokes on illegal characters, a unfortunately common occurrence in documents coming from iii’s xml server. akismet spam catcher i’ve been getting spam, a lot of spam; spam comments and trackbacks in the last two months or so. so it was a relief to find akismet, a networked spam blocking plugin for wordpress. they claim to have blocked , spams since its release, and i’ve been pretty happy with it. instant messaging in libraries: ten points from aaron schmidt aaron schmidt’s points about im in libraries include: instant messaging is free (minus staff time) millions of our patrons use im every day. for some, not being available via im is like not having a telephone number. there are three major im networks (aim, y!m, msn) y!m and msn will be interoperable at some point. trillian is a multi-network im client, meebo is a web-based multi-network client. use them. retro gaming for the holidays it’s amusing how retailers will try to capture a trend. so retro gaming fans have been building their own arcade cabinets for years now, but i just saw that target is offering a midway arcade machine for the holidays. the -pound machine is described as “full-size” and offers joust, defender i and ii, robotron, rampage, splat, satan’s hollow, root beer tapper, bubbles, wizard of war, timber and sinistar. thermometer museum dick porter, of onset ma, has been building his collection of over thermometers since the mid- s, though the collection has nearly doubled since when it was just over . he calls it the world’s largest and only thermometer museum. he’s certainly passionate about them, and he’s been an invited speaker at more than a few thermometer and weather related events, like the christening of the world’s largest thermometer in baker california. harmon’s lunch i learned of harmon’s lunch from a mention on the splendid table a few weeks ago. i wrote down the following quote from the show from memory, so it may not be entirely accurate: they have two things on the menu, and nobody ever orders the other one. they serve hamburgers, and the only option is with or without onions. as it turns out, the menu is a little richer than suggested. collective intelligence: wisdom of the crowds i’m here at neasis&t’s “social software, libraries, and the communities that (could) sustain them” event, presented by steven cohen. he’s suggesting we read james surowiecki’s the wisdom of crowds. surowiecki first developed his ideas for wisdom of crowds in his “financial page” column of the new yorker. many critics found his premise to be an interesting twist on the long held notion that americans generally question the masses and eschew groupthink. more neasis&t buy hack or build followup first, josh porter, the first speaker of the day has a blog where he’s posted his presentation notes and some key points. josh spoke about web . , and ended with the conclusion that successful online technologies are those that best model user behavior. “i think web . is about modeling something that already exists in our offline worlds, mostly in the spoken words and minds of humankind.” interestingly, in findability terms, it was josh’s post that clued me in that the event podcast was online because he linked to my blog in his post. nelinet bibliographic services conference i’m here at the nelinet bibliographic services conference at the college of the holy cross today. the conference is titled “google vs. the opac: the challenge is on!” and there’s quite a lineup of speakers. my presentation is on “the social life of metadata.” my slides are online, and below is some background. **the library catalog… ** the catalog is among a library’s most important assets. an unread book offers little value, but the catalog offers the promise that the library’s resources will be found and used, and a well constructed catalog makes the finding easier by offering rich details and easy navigation. neasis&t buy, hack or build followup i was tempted to speak without slides yesterday, and i must offer my apologies to anybody trying to read them now, as i’m not sure how the slides make sense without the context of my speech. on that point, it’s worth knowing that lichen did an outstanding job liveblogging the event, despite struggling with a blown tire earlier that morning. it’s probably well understood by anybody reading this that most library services are at the web . neasis&t buy, hack or build i’m here at the neasis&t buy, hack or build event today at mit’s media lab. on the list are joshua porter, director of web development for user interface engineering, pete bell [corrected], co-founder of endeca solutions, and me. i’m posting my slides here now, but i’m told we’ll see a podcast of the proceedings soon after the conclusion. be aware that the slides are full of links. i won’t be able to explore them all during the presentation, but they might add value later. zimbra rocks zach made me take another look at zimbra, the web-based, web . -smart, very social and ajaxed up collaboration, email, and calendar suite (plus some other goodies). go ahead, watch the flash-based demo or kick the tires with their hosted demo. i think you’ll agree that it looks better than anything else we’ve seen yet. part of the success of the project is that the developers appear to understand the problem. here’s the list of [how broken email is][ ] from the white paper: ars on video ipod it’s old news now, but arstechnica did a really thorough review of the video ipod. i especially appreciated reviewer clint ecker’s opinion of the video playback capabilities. now i’m curious about what this does to enable more video podcasts. virtual economies i’m not much of a gamer, but matt got me following video game law with curious interest. and now, via arstechnica, i’ve learned of crazy things going on in role playing game economies. to some, the only surprise in jon jacobs’s us$ , purchase of in-game real estate is that nobody thought of it sooner. the first thing to know is that unlike most other mmorpgs, project entropia mixes its virtual economy with the real world. second annual west texas beautiful burro and mule contest held today the text of what appears to be the press release (online at alpine avalanche): the fort davis merchants association and the jeff davis county -h club encourage everyone to come join the fun as they host the second annual west texas beautiful burro and mule contest saturday, nov. . the contest will be held on the west side of the jeff davis county courthouse, and begins at a. slot car camera i got a slot car set for christmas when i was about eight years old. i ran the cars until the contact pads wore out, then i pretty much gave up on them. but simon jansen is just getting into the action, and he’s doing it at a time when compact and cheap electronics afford (potentially) more interactivity. see, jansen taped his cellie on one of his cars and started recording the action with the built-in camera. wolfram’s tones wolframtones mixes hard science with social software in the form of a ringtone generator. each click on any of the style buttons yields a “unique [note: not random] composition.” why not random? the faqs note: once wolfram_tones_ has picked a rule to use, all the notes it will generate are in principle determined. but that doesn’t mean there’s an easy way to predict them; in fact, wolfram’s phenomenon of computational irreducibility shows that in general there can’t be. tech tuesdays: spam management john martin was kind enough to lead a session on spam management tuesday (november th). here was the description: spam is annoying and often offensive, but it’s a fact of life for all of us. john martin will lead a discussion about how we can limit the amount of spam we see using tools running on our campus mail server and in outlook. he’ll also discuss what we can do to keep our email addresses out of spam lists in the first place and spam related issues such as phishing. six weapons of influence ken forwarded me this podcast of robert cialdini speaking on his six weapons of influence, which he lists as reciprocation commitment and consistency social proof authority liking scarcity cialdini’s book is in its fourth edition, and has apparently been adopted as a text for more than a few classes and the concepts have worked their way into everybody’s marketing seminars. motivation speaker and marketing yakyak patricia fripp summarizes those six weapons like this: library integration stuff i’d meant to point out these two articles from library journal ages ago, but now that i’m putting together my presentations for next week (neasis&t & nelinet), i realized i hadn’t. roy tennant writes in doing data differently that “our rich collections of metadata are underused.” while roland dietz & carl grant, in the same issue, bemoan the dis-integrated world of library systems. how to survive a robot uprising so there i am trying to read things i can’t possible read and i stumble across a link to daniel h. wilson’s how to survive a robot uprising: tips on defending yourself against the coming rebellion. from th amazon book description: how do you spot a robot mimicking a human? how do you recognize and then deactivate a rebel servant robot? how do you escape a murderous “smart” house, or evade a swarm of marauding robotic flies? digital library systems group shows wares i was in cambridge today attending the digital library systems group presentation on their fancy scanners and imaging workflow software. we have no digital collections program going yet, but we’re part of a university system plan to acquire either ex libris’s digitool or encompass for digital collections (sample sites). but getting the collection management software just creates another problem: we don’t have any imaging resources to use to fill the new digital archive. ikea comes to new england hey, doesn’t the ikea near boston open today? sure does. the company has stores worldwide. according to a story in the pheonix: oddly enough, ikea flopped when it opened its first us store in . but by making concessions to american expectations (softer couches, american bed sizes, good thread counts) it gradually won over low-budget consumers attracted to its upmarket design, with its subtle implications of class mobility. that they were willing to bruise their toes lifting those deceptively heavy boxes speaks to the brand’s participatory appeal […]. internet, interactivity, & youth jenny levine alerted me to the pew internet & american life project report on teens as both content creators and consumers. it turns out that teens, and teen girls especially, are highly active online iming, sharing photos, blogging, reading and commenting on other’s blogs, and gaming. an especially strong trend in this group is the use of web technologies for collaboration. interactivity, increasingly, is being defined by the teen’s ability to ask questions, comment, or contribute. reva “electricity car” how crazy is it that we can get neither flying cars nor (affordable) fuel efficient cars today? anyway, the reva (shown above) is a tiny little electric that seats two adults, can go miles on a charge, and fully charges in five hours (two hours gets an % charge). it’s an indian company, but they export to europe and the website has some mention of test-marketing the cars in the us. pen-based computing loses the tablet via engadget i found mention of the leapfrog fly, a pen with embedded computer that reads your handwriting. need a calculator? just write out “ + = ” and hear a response from the pen computer’s synthesized voice. need to schedule something? write out the date. it’s targeted at kids, and the company has released it with a variety of tutoring applications and games (you guessed it: flyware) appropriate for kids in rd to th grade. this car climbed hubbert peak this car climbed hubbert peak bumper stickers from hubbertpeak.net. devil’s horn on npr’s weekend edition today: an interview with michael segel, author of the devil’s horn, subtitled “the story of the saxophone, from noisy novelty to king of cool.” adolph sax’s instrument seems to have been controversial from the start. other manufacturers tried to assassinate him, the pope declared the church’s opposition to the instrument, ladies home journal explained that it “rendered listeners unable to distinguish right and wrong.” i get love letters (about bill bennett’s racist remarks) “john b,” from omaha, ne writes regarding my post about conservatives, freakonomics, and bill bennett’s racism: [i]f you had actually listened when bill bennett made the comment you quote, you would see it was not intentionally racist. you’ve taken the quote completely out of context. i’m willing to bet that you know you’ve taken the quote out of context, but really don’t care. you’ll do anything to make anyone conservative or republican look bad. the codex series this, from chris anderson: the codex is a episode series of machinimas made on xboxes running halo . the result caught the attention of his six- and eight-year-old children, and then him. machinimas are computer animated in real-time, using video games to create the environment, and human “puppeteers” to drive the action. the action is capture, edited, and voice-overs added. because they remove many of the economic and technical barriers to film production, they hold the promise of emphasizing story and plot, and exposing talent among those who create them. gnarly trees gnarly trees: “this group is for trees with oddly-formed limbs, strange bulges or growths, braided roots, or otherwise abnormal looking parts.” this car climbed hubbert peak this is probably the perfect bumper sticker for your neighbor’s suv, at least until your neighbor comes over with the perfect chainsaw for your front door (yeah, try to run from that in birkenstocks). but seriously, shouldn’t somebody tell these people that the world is running out of oil? venkman javascript debugger how did i miss this before? the venkman javascript debugger; available here, with user’s guide and faq. ostankino tower & world federation of great towers i don’t remember exactly why i found myself looking up moscow‘s ostankino tower, a ft ( m) tall radio-television tower. compared to the world’s tallest buildings, it’s taller than all the greats: the taipei , the sears tower, empire state building, though some people keep towers — even those with observation platforms — in a category separate from skyscrapers. so what’s a tower enthusiast to do? go take a look at the world federation of great towers (also at wikipedia). decision death spiral scott berkun, the author of the art of project management just blogged about the data death spiral: whenever data is misused as the only means for making decisions, a death spiral begins. the lust for data overwhelms all sensibilities. cowardly decision makers howl in glee at reams of unnecessary data, while bright people sit handcuffed to ugly slidedecks and mediocre ideas. decision makers forget their brains and wait for numbers, fueling an organizational addiction to unnecessary and distracting data. the livermore centennial bulb treehugger alerted me to the rather surprising story of this light bulb, burning continuously since . yeah, at least that’s the story here, at the centennial light bulb committee’s website (a partnership of the livermore-pleasanton fire department, livermore heritage guild, lawrence livermore national laboratories, and sandia national laboratories). the bulb is said to have been made by the shelby electric company of shelby, ohio, and given to the fire department by dennis bernal, owner the livermore power and light co. russian navy likes it big (and heavy) maybe the meaning is simply lost in translation, but take a look at the captions for this photo essay of the russian navy titled “baltops military exercise: russia is showing its muscles.” here, have two big ships, some big anti-aircraft ships, a big landing ship, a big anti-submarine ship, even a big atomic missile cruiser, and add this heavy atomic cruiser. now how would you feel about captaining the one small landing ship? what’s in a web search? sometimes the answer isn’t as interesting as the question. consider this note from yahoo buzz: on sunday, the day before the nomination became official, [searches for] alito sprang up a sudden %. did searches for alito spike on tips white house staffers, or were white house staffers vetting their nominee via the search engines? seattle via the programmableweb: seattle .com. it’s another mashup with google maps, but who knew anybody could get data in real time? sure, it’s only for seattle, and only their fire/ems servers (no police), but technology wise, it’s cool. kudos to seattle, i guess. what’s my reticence? i don’t know if i should have this data…and putting it together like this hits my privacy funny bone a bit. but then, this data exists…it’s a matter of public record. uc irvine’s hiperwall putting together ″ apple cinema hd displays with power mac g s gets you million pixels of screen real estate spread over x feet. call it uc irvine’s hiperwall. paper house a visit to the paper house will run $ . and takes you out to a beautiful corner of the massachusetts coast, pigeon hill street rockport, ma , just up the hill from pigeon cove. call ( ) - if you’ve got questions. more info at odd new england. pictures tell quite a story, so take a look at the photoset showing details of the fireplace, curtains, and exterior walls. missiles explode in south korea one or more trucks carrying disassembled nike-hercules missiles exploded in a tunnel near the cities of taegu and masan in south korea today. reuters reports no deaths, the korea times criticizes lack of safety. the new imacs… i live quite a distance from any apple stores, so it’s only now that i’ve been able to see the new stuff. the photo booth application bundled with the new imacs is actually more fun than i expected. that’s me above with the “comic book” effect applied. but front row is every bit as sweet as it looks in the demos. yes, i want it on my current machine. and, yes, i would pay $ , or maybe $ , i might even be convinced to pay $ for the remote and software. i will crush you or, er, my server will be crushed. i guess i should admit that my stuff could do with some optimization, maybe. perhaps what i really need is something faster than celeron with mb ram. maybe. is search rank group-think? way back in april , jakob nielsen tried to educate us on zipf distributions and the power law, and their relationship to the web. this is where discussions of the chris anderson’s long tail start, but the emphasis is on the whole picture, not just the many economic opportunities at the end of the tail. here’s how it works with hits to websites: a few sites become popular and form the “big head” at the left a few more sites form the slope a huge number of websites score very low and form the “long tail” nielsen adds these examples: + ways good html can go bad via brad neuberg: rsnake’s xss (cross site scripting) cheatsheet: esp: for filter evasion. limitations on cross site scripting (xss hereafter) have been troubling me as i try to write enhancements to our library catalog, but the reasons for the prohibition are sound. without them i could snort your browser cookies (rsnake lists: “cookie/credential stealing/replay/session riding” among the threats, but a well-planned attack could also fetch resources from internal webservers and deliver them to external data thieves). ipod linux tutorial how to install ipod linux on & g mini, g, photo attack of the blogs (yeah)! online reaction to the forbes cover story attack of the blogs has been quick and strong, and given the doom and gloom language, it’s not surprising: blogs started a few years ago as a simple way for people to keep online diaries. suddenly they are the ultimate vehicle for brand-bashing, personal attacks, political extremism and smear campaigns. it’s not easy to fight back: often a bashing victim can’t even figure out who his attacker is. swarmsketch via information nation, i found swarmsketch. here’s the description: swarmsketch: collective sketching of the collective consciousness. swarmsketch is an ongoing online canvas that explores the possibilities of distributed design by the masses. each week it randomly chooses a popular search term which becomes the sketch subject for the week. in this way, the collective is sketching what the collective thought was important each week. (due to increased traffic sketches are currently being updated after about lines) learn japanese online tutoring in japanese at udanstraight.com. here, have some trial lessons. new social web apps ross mayfield’s new social software list discusses ning, flock, wink, memeorandum, sphere, and rollyo. the fight over massport wifi i do a lot of flying in and out of boston’s logan airport, so i’ve been following the controversy about wifi there with some interest. the story is that massport, the government agency that runs the airport, is trying to tell tennents — like the airlines — that they can’t operate their own wifi networks. but the fcc previously ruled that landowners had no authority can control use of the wifi spectrum on their premises. public broadcasting sms to construction sign (at engadget and textually), and sms to megaphone — for the armchair protester (at textually and engadget). gen h- personal helicopter it’s nearing the end of and we still don’t have any flying cars like we were promised, but the gen h- personal helicopter looks promising (and dangerous). here it is in the air, and i might be crazy, but it looks to be controlled by weight-shift (even more photos). ohgizmo says it sells for about $ , . gizmodo claims it drives its counter-rotating rotors with an eight-horsepower, cc engine. and odd things from japan wonders if “this is the nearest thing on earth to ‘takekoputa. goats show i can’t really pass as an undergrad anymore, but they still let me in to friday night rock to see the mountain goats. mp s: this year commandante going to bridlington homer simpson nuclear safety simulator here: have at it with a swedish nuclear power plant simulator. raise and lower the control rods, turn pumps on and off, open and close valves, just make sure you don’t blowup anything. go look at the chernobyl tour to see what happens when you mess up. the original page includes this context: the control-room operators of the kärnobyl nuclear power plant are telecommuting and are running the plant through the web. minutes of attention i won’t link to the new york times anymore, but when ross mayfield quotes them, i don’t have to. the story is that life is full of interruptions. the typical office environment today apparently allows workers “only minutes on any given project before being interrupted and whisked off to do something else.” worse, “each -minute project was itself fragmented into even shorter three-minute tasks, like answering e-mail messages, reading a web page or working on a spreadsheet. ubicomp goes spray-on via gizmodo, we make money not art, and the engineer: spray-on computers. the idea is to develop computers about the size of a grain of sand (though they say a cubic millimeter here), give them sensors and networking capabilities, and completely change our notion of “computer.” from the engineer: each speck will be autonomous, with its own captive, renewable energy source. thousands of specks, scattered or sprayed on a person or surfaces, will collaborate in programmable computational networks called specknets. dick hardt ‘s identity . presentation i said “identity management is the next big thing” back in september. that was before i’d seen sxip founder dick hardt’s presentation on identity . . zach peeped me the link and told me i wouldn’t regret watching the presentation. he was right. everybody, especially the people who don’t yet care about identity management, should take a look. the language of your website lynne puckett on the web lib list pointed me to web pages that suck and highlighted this quote from the site: nobody cares about you or your site. really. what visitors care about is getting their problems solved. most people visit a web site to solve one or more of the following three problems. they want/need information they want/need to make a purchase / donation. they want/need to be entertained. what are blogs? tech tuesdays: blogs and blogging tech tuesdays: blogs and blogging note: these are my presentation notes for a brown bag discussion with library faculty and university it staff today. this may become a series…[[pageindex]] more: my presentation slides and the daily show video. introduction public awareness of blogs seems to begin during the years of campaigning leading up to the election, but many people credit bloggers for swaying news coverage of senator trent lott‘s comments at senator strom thurmond‘s th birthday celebration in december . mike walter’s mellotron before gadgeteers could get affordable (or any) electronics for polyphonic sound synthesis or sample playback, they dallied with tape playback devices that would link each key to its own tape mechanism that played a pre-recorded tape loop at the keyed pitch. they called it a mellotron, and yes, an -key piano would require tape mechanisms. mike walters’ home-made melloman uses walkman-style cassette players wired to a two-octave keyboard in that snazzy-cool case. flock out the flock preview is out and i love it. the good folks at wordpress.com are saying “it’s like firefox with goodies.” i’m saying it’s a browser built for web . . somebody somewhere is starting the gamer’s rights movement annalee newitz tells me that video game developers are looking for cheaters by installing spyware with their games. blizzard, developer of world of warcraft, starcraft, and diablo is among the biggest names doing this. greg hoglund, quoted at copyfight, notes: i watched the [software] warden sniff down the email addresses of people i was communicating with on msn, the url of several websites that i had open at the time, and the names of all my running programs, including those that were minimized or in the toolbar. engadget caption contest caption contest: what large honkers you have! genuine fractals resolution on demand onone software‘s genuine fractals putting your video on a new ipod [how-to: automatically download and convert tv for your ipod – hackaday.com ] understanding web . ross mayfield says web . is “made of people.” tim o’reilly tells us it’s about participation. and to marc canter, it’s the connectivity. more to come… mmm. spelunking in sewers international urban glow – europe underground mt. moriah: summit denied will and i didn’t summit mt. moriah yesterday. we’d started late and the weather was turning against us, but i did get this shot of mt. washington and the presidential range. email . from ross mayfield in many many: this email is: [ ] bloggable [x] ask first [ ] private whale watching on lake michigan? whale watching on lake michigan? false: whale watching on lake michigan way back in , classroomhelp.com published a story on whale watching in lake michigan. as it turns out, the info was based on content on a geocities.com member page that suggests they book trips to see and swim with marine fauna in the great lakes. unfortunately, classroomhelp.com later posted a retraction saying “we thought it was true …it looked so real. it looked like a legitimate web site.” jim wenzloff notes web pages that suck “web pages that suck: learn usability and good web design by looking at bad web design.” where are the mit weblog survey results? where are the mit weblog survey results? they were supposed to be out september first, but they’re still missing… all i can find is this older page from fernanda viegas. bad covers: oops! i did it again memepool.com points out that the folks at supermasterpiece are claiming priority over britney spears’ oops ! i did it again. their story is: “oops ! i did it again” was recorded in april, in a chicago studio, most likely nearlie’s or west and fourth. cut for the decca label by louis armstrong and elemends of zilner randolph’s touring group, “oops!” failed to make the chart impact of “all of me,” another side recorded in the same session, and soon fell out of print. now search lamson library at a .com a , the search engine from amazon.com, does some pretty interesting things that libraries should be aware of. first, any library considering a metasearch product should look at what can be done for free, and second, libraries should take a look at the opensearch technology that drives it. so now, when searching for harry potter, you’ll also find relevant results from plymouth state university‘s lamson library. we’re not the first library — i think seattle public was — and my work mostly follows the cookbook written up by ryan eby, of michigan state university libraries. camera tossing memepool introduced me to camera tossing at flickr, where there’s even a group for those who are willing to risk their camera for a chance at a shot of streaky lights. but not everybody tosses in the dark, it’s turned out to be a a new fad in self-portraiture. click through for credits and more info on the photos above. php + xml = love the zend overview of the new xml features in php has re-energized me for building xml server applications at my library. hello wordpress.com! cliff invited me to wordpress.com earlier this week and i’ve just gotten a chance to get things up and running over there. i’m planning (though plans are never certain) to move my link blogging (think “blinks”) over there and (perhaps) re-publish them here in some aggregated form. we’ll see how that works out over time. dan grossman’s list of top ten ajax apps top ajax applications at a venture forth. fuel efficient vehicles people looking for oversized pickups, ridiculously large russian army trucks, even jet powered speedsters have it easy. but what about people who have some understanding of the hubbert peak and don’t want suvs? + mpg cars have been available in japan for years now, and can be bought used in canada for under$ . but us law forbids importing them to the us! heck, the smart, the super-efficient line from daimlerchrysler, has been available in europe (and now canada) for about ten years now, but it too can only be imported with a lot of restrictions. affordable fuel efficient vehicles (not in the us) i’m a fan of the smart, the fuel efficient european roadster that’s smaller than a mini (see above). it’s coming to america, but indirectly and not without some complexity. oddly, considering the current energy crisis and that buyers appear to be looking for more efficient vehicles now, there’s a lot of red tape involved with bringing efficient vehicles new or old to the us. take these japanese k-cars that get around miles per gallon and can be imported and bought used for under $ , but only in canada. manhattan user’s guide manhattan user’s guide caught my attention when i followed a link to their hump day list of funnies. social geography: common census commoncensus map project: the commoncensus map project is redrawing the map of the united states based on your voting, to show how the country is organized culturally, as opposed to traditional political boundaries. it shows how the country is divided into ‘spheres of influence’ between different cities at the national, regional, and local levels. movie night: save the green planet i’m at a loss for words of my own to describe save the green planet (imdb page), so i’ll have to crib from others. amazon’s description: a sensitive, blue collar sad sack hopped up on conspiracy theories and sci-fi is convinced that aliens have infiltrated human society and are planning to destroy the planet at the next lunar eclipse. he sets out to kidnap his boss to torture him until he confesses to his alien identity and stops the invasion. the conservatives vs. freakonomics conservatives hate freakonomics, that book by economist steven d. levitt and journalist stephen j. dubner that takes on more than a few sticky issues that most people don’t normally consider to be within the purview of economics. (see also the freakonomics blog). publisher’s weekly notes: there isn’t really a grand theory of everything here, except perhaps the suggestion that self-styled experts have a vested interest in promoting conventional wisdom even when it’s wrong. weird travel it started with the plastics museum and museum of bad art, progressed with a visit to the international bowling museum and hall of fame and continued with a tour of donut shops in lowell, ma. now i can report that the maisonbisson weird travel archives include the thermometer museum, the edward gorey house, and the paper house. click the links to see photosets at flickr, and watch maisonbisson for full reports later. cubesat kickstarts new space race cubesat is cal poly’s plan to make space accessible to the rest of us. that is, they want to make it easy and cheap enough to launch satellites that even high schools can get a chance at it. engadget says they call it “the apple ii of space exploration” (link added). here, read this: the cubesat project is a international collaboration of over universities, high schools, and private firms developing picosatellites containing scientific, private, and government payloads. group portrait at pigeon cove an unconventional panorama in rockport‘s pigeon cove. from left to right stand will and corey. of course, it looks better bigger. note: this was just a sideshow on our weird travel tour. the jumping in rockport it was raining today in rockport, but that didn’t stop corey (top) or will (bottom) from doing a little jumping on the seawall. note: this was just a sideshow on our weird travel tour. getting a passport my old passport is expired and my wife has never had a passport, so i had to look this up. fortunately, the us state department has a pretty good website for it. there are rules of course, especially for first-timers or expired passport holders. you’ll have to fill out a ds application form and bring to one of the facilities — mostly post offices — around the country. a [photographer’s guide][ ] is worth looking at for those considering taking their own photos, as the state department cares greatly for the [lighting][ ], [composition][ ], and [quality][ ] of those photos. balloon museum i was browsing the npr archives the other day and found this report on the international balloon museum in albuquerque, n.m.. of course i want to go there. pepper pad as multipurpose voip device i’m quite taken with my new bluetooth headset, despite the little hiccup i encountered. so, naturally, i’m thinking about how it would work with the voip softphone that’s promised for the pepper pad soon. i’ve become a super-fan of gizmo project on my powerbook, but that loaner pepper pad was a capable enough and more than portable enough machine that it has me wondering if i’d rather have a desktop mac and a pepper pad when upgrade times comes. monkey business if that proverbial room full of monkeys at typewriters ever really did randomly pound out the complete works of shakespeare, would they be as good? what if they randomly pounded out something better? james torio’s blogging thesis james torio has been working on his masters in marketing and took a strong look at blogs for his thesis. i looked at how blogs have impacted business and communication, how some blogs create revenue, how some companies are using blogs, how blogs greatly boost the spread of information, how blogs add richness to the media landscape, how blogs work in the long tail, how some companies are tracking the blogosphere and what the future of blogging may be. pravda and mccarthyism don’t worry. i’m right on top of whatever happens in pravda, the leading newspaper of the russian federation. or, at least, i’m right on top of whatever they report in their english language version. the thing that had me choking on my onion and boursin cheese bagel this morning was the story headlined fbi arrests another spy in the white house, ‘prevents’ philippine revolution. the whole philippine thing is entertaining and laughable on its own, but further down in the story the reader will find so many layers of irony and amusement as to spray their breakfast cereal about the room. findability, the google economy, and libraries peter morville, author of ambient findability, stirred up the web lib email list with a message about authority and findability. his message is about how services like wikipedia and google are changing our global information architecture and the meaning of “authority.” the reaction was quick, and largely critical, but good argument tests our thinking and weeds the gardens of our mind. argument is good. here’s my side. it’s important that we understand how modern search engines work. what bloggers need to know about cahill v. doe wendy seltzer alerts us to the delaware supreme court’s ruling last week in cahill v. doe, a case that tested our rights to anonymity online, as well as the standard for judging defamation. as it turns out, the court decided against the plaintiff, a city councilman, and protected the identity of “proud citizen,” who the councilman accused of posting defamatory remarks in an online forum. further, it also decided that the context of the remarks “a chatroom filled with invective and personal opinion” are “not a source of facts or data upon which a reasonable person would rely. bluetooth headset problems i’m still excited about that bluetooth headset i got last week, but i did encounter a little problem with it. rather, i encountered a problem with mac os x and the bluetooth headset. i don’t remember all the precipitating details, but the obvious threshold event was when gizmo project complained that it couldn’t find the headset. i tried deleting the configuration and re-pairing, but aside from some momentary linkages, it was all for nada. fried ravioli of course i like my new camera. if you don’t think these fried ravioli have enough detail, take a look at the full-size version ( x ). priorities so long as i’m talking about change i want to bring attention to some commentaries by chris farrell in marketplace money. on september th he noted that hurricane katrina (rita hadn’t hit yet) “ripped the veil off poverty in america” and wondered aloud weather the voting public would continue to support the republican obsession with tax breaks in the face of this new empathy for those struggling to hold on to the bottom rung of that same economic ladder. changethis worth looking at: changethis, started by seth godin and “a sharp team of change agents.” the quote comes from ben mcconnell at church of the customer, who also reminds us of the ways that conservatives in every field favor traditional views and values and oppose change: stay the course don’t fix what isn’t broken ignore all critics we don’t have time keep out anything foreign to us (actual or metaphorical) destroy anyone who opposes us or our way of thinking who cares that godin and mcconnell are marketers. …and the floods moved north the rains this weekend swelled the rivers to flood stage in south-western new hampshire. as much as half of keene is said to be under water. further north, the small and historic downtown of alstead has been washed away. this picture comes from the portsmouth herald, and reports in the washington post from keene and alstead add detail. the current death count is five, according to nhpr news, and nh governor john lynch has declared a state of emergency and activated the national guard. switched servers i switched to lunarpages last week after the fiasco with my old hosting provider. now, because of bandwidth and cpu usage, i’m moving to a new server at lunarpages. i wasn’t surprised about what they said when i got a message from the sysadmins about excessive cpu usage on my shared hosting account, but i was surprised with their proactive and customer friendly approach. anyway, i’ll be figuring out my new server and control panel (it’s plesk, and i’d been using cpanel for a while). bluetooth headset as i was contemplating making angry calls to my hosting provider last week when they shut down maisonbisson for a couple days, it occurred to me that i would rather make those calls via skypeout or some similar service that didn’t reveal my home phone number. after all, i wouldn’t want an angry sysop to take revenge by having a spare modem call me up every minutes between the hours of midnight and seven am. ear shrapnel noise grenade engadget calls it “skull-shattering fun” and gizmodo labeled it “ear shrapnel.” it’s available at paladone.com and boy’s stuff, though nobody seems to have yet found a domestic supplier. from the catalog page: the sonic grenade features three different levels of the most noxious sound since the last westlife album. to launch, pull the pin and throw it towards your target. after seconds, the sonic explosion occurs, giving even the deepest sleeper a wake-up call like they’ve never had before. library feel-good a flash animation about why libraries matter. rules for writing bad poetry tips from a friend: center justify the text and write things like “kill me daddy, the robins chirped.” compact, modular, and lego-like housing compact, modular, and lego-like housing is nothing new. buckminster fuller‘s dymaxion house (now at the henry ford museum), designed in the s, was probably the first. but the lustron house was actually sold commercially in the years after world war two. though it didn’t turn out to be a commercial success, the house did show the promise of pre-fabrication and mass-manufacture for house. they even have have an enduring fan base, with websites like the lustron connection and lustron luxury, and a documentary. cladonia exchanger xml editor interesting: cladonia exchanger xml editor, a java-based app that makes reading raw xml easy. much easier than in a regular text editor, even with syntax highlighting. stone face fables note: the following comes without attribution from an acquaintance of my father’s. once upon a time there were people who lived in a valley near a mountain. on the mountain there appeared a large rock formation which resembled a face. you could almost see the nose and eyes and mouth. some people claimed that it was the face of a god and they claimed that if you looked closely you would see that for yourself and once you did you would be able to live a happy and comfortable life. bye bye pepper pad my week with the pepper pad is over, and the ups van just drove off with it, but i’ve still got a lot to report. my testing ran into problems when it turned out that the wifi network in the library was on the fritz. i did some netstumbling today and found that only two aps were broadcasting at anything close to full-power and all the others were whispering like they were gonna get shushed by an old-time librarian. who knew transit maps were copyrighted? the mta, the folks who run new york’s subways and busses and such, weren’t the only ones to smack a cease and desist down on ipod subway maps last week, but they’re the first to tell they can pay $ for the privilege of distributing those maps in an ipod-readable format — but only for non-commercial distribution. cluetrain moment: doesn’t the mta understand that services like this serve potential tourists like me? five days left to apply to be chivas life editor chivas, the folks who bring us chivas regal scotch whisky and virtual tours of the playboy mansion, is looking for a pair of ambassador editors for thisisthelife.com. the deal pays $ , to the lucky pair to tour the world making good press and pictures for the brand. you’ve got six more days to put together the three-minute application video, so get on it. thanks to gadling for the link. library-related geekery ryan beat me to reporting on the interesting new services at the ockham network (noted in this web lib post). the easiest one to grok is this spelling service, but there are others that are cooler. he also alerted me to a perl script to proxy z . to rss. though for those more into php (like me), i’d like to point out the yaz extension from the folks at index data. distracted by my shiny new camera the olympus c , one of the best digital cameras ever, can be had for under $ , refurbished, from some sellers on amazon. that’s about where the price/features ratio against the c i was excited about last week tips strongly in favor of the c . i might get into why i’m not excited about dslrs in a later post, but i won’t deny that price is part of it. still, i think even the most die-hard dslr aficionado will agree the c has a lot to love. open content alliance the news is that yahoo! announced they’ve formed the open content alliance. though that certainly fits the google versus yahoo! story that newsmen want to report on now, it’s somewhat disingenuous to the internet archive, which has been beating the open content drum for a while. but brewster kahle, the founder of the internet archive doesn’t seem to care. he was talking about it on the yahoo! search blog yesterday: mac wireless card compatibility in case you’re looking: metaphyzx’s mac os wireless adapter compatibility list. introducing bsuite_speedcache i wrote bsuite_speedcache to reduce the number of database queries i was executing per page load. by implementing it on some of the content in my sidebar, i dropped queries for each cache hit. that might not seem like much, but it should average about queries per minute that that my host server won’t need to process. now that i’m looking seriously at optimizing my queries, i’ve also cut the monthly archives links from the sidebar. meltdown sometime around pm friday the mysql server at my hosting provider took a walk. the hosting sysop blamed it on my site and disabled the database that serves it by making the directory the mysql files are in unreadable. mysql didn’t seem to handle that condition well, and since maisonbisson was still piling up queries looking for the content in the db, things continued to go downhill. my involvement started around pm friday night (yes, i’m that dorky). pepper links pepper computer buying a pepper pad at amazon pepper hacks victor rehorst has been blogging about his pepper since he got it (a few days ago) pepper pad stories at teleread other pepper pad stories here at maisonbisson open test sites i guess not everybody in nevada loves the test site as much as this postcard might suggest, but hey, what do tourists know? the image comes from _roberta‘s flickr photostream, and she doesn’t seem too critical. about miles southeast today, the trinity site — where the world’s first atomic weapon was detonated in a test on july , at : : a.m. — is open to the public. pepper pad — first impressions the pepper pad (available at amazon) has a very clean out of box experience. there’s nothing to assemble and no questions about what order to do things in. just open, unwrap, plug in, startup. i attempted running through the configuration in my office, but the wifi propagation is very weak there and pepper pad couldn’t catch a signal. the requirements listed on the box say only two things: “broadband” and “wifi,” so it’s no surprise that the configuration application requires wifi — or perhaps a bluetooth phone it can connect through? those crazy k-fee ads it turns out that k-fee, the company that pushes its energy drink with the scary tv ads, has a english-language website. it also turns out they’ve got the scary car ad and eight others online. here they are: angler car buddha golf beach meadow yoga soothing waves ocean path pepper pad — arrival the pepper pad‘s technical details — a lightweight linux powered device with an . -inch svga touchscreen, wi-fi auto-configuration, bluetooth device support, multi-gigabyte disk, full qwerty thumb-keypad, stereo speakers, and more — are already well reported. but i’ve been arguing that attention to such details runs counter to the purpose and intended use of the device. many computer users can name (and point to) the cpu in their computer, but who of those can tell me what cpu or chipset drives their cellphone? must read: ambient findability peter morville‘s ambient findability sold out at amazon today on the first day of release. there’s a reason: it’s good. morville’s work is the most appropriate follow-on to the usability concepts so well promoted by steven krug in his don’t make me think and jakob nielsen in designing web usability. findability, morville argues, is a necessary component in the success and propagation of an idea or detail or fact. business and non-profits alike will benefit from understanding the value of findability. mt. moosilauke will and i climbed moosilauke in early august, but it was only now that i got around to stitching the panorama. the view is considerably wider than degrees, composited from photos. the “full-size” version on flickr contains gigapixels of data. the real full-size version is a over gigapixels. bsuite_innerindex wordpress plugin [[pageindex]] about “blogging” typically connotes short-form writing that needs little internal structure, but that’s no reason to cramp your style. as people start to explore wordpress‘s pages feature, it seems likely that we’ll need a way to structure content within posts or pages sooner or later. that’s why i’m working on bsuite_innerindex. it’s a wordpress plugin that puts named anchors on all of the <h >, <h >, <h*>-tagged content, and builds a list of links to those anchors that can be inserted anywhere on the page. game law redux matt says my attempts to analogize online roleplaying games to more familiar contests like chess or automobile racing are “just silly.” but his response appears to reinforce my point rather than refute it. it is the responsibility of the gamers and gaming organizations to create and enforce rules. people violating those rules are subject to sanctions by the gaming organization first, but it’s hard to imagine how any contestant who follows the rules of a (legal) game can be subject to legal sanction. teachers get paid crap from alternet: teaching in america: the impossible dream. tagline: many public school teachers today must work two jobs to survive, and can’t afford to buy homes or raise families. why do we treat our teachers so poorly? open source gis here’s an interesting geoplace.com article on open source gis tools, including gis extensions to posgresql and mysql. via the map room. distracted by my shiny new camera my olympus c is hard to beat. steve’s digicams reviewed it well, and many friends with newer cameras find features or capabilities in it they miss on theirs. so, despite my schoolboy giddiness at the arrival of new gadgets, i’m waiting to be convinced that my new c will replace it. it too was well reviewed, and already i can see that it addresses some of my few complaints about the c , but transitions like this take time. bsuite_geocode plugin for wordpress i’m a big fan of the wp geo plugin, but i want more. my biggest complaint is that i want to insert coordinates using google maps or multimap urls, rather than insert them in the modified story editor. so i wrote a bit of code that reads through the urls in a post, finds the “maps.google” or “multimap.com” urls, fishes the latitude and longitude out of them, and adds some geocoding tags to the body of the post. home theater remote control i have a sort of guilt complex about looking at home theater issues. nonetheless, i’ve been building one piecemeal ever since i found an incredible deal on a video projector. now i’m working on assembling a video jukebox of sorts and i need to face the remote control stumbling block. that’s why i like the logitech harmony {# ,contentid= }, available at amazon. credit due: i got the tip from a post at engadget some time ago. helpful pages in the wordpress codex the following pages from the wordpress codex were surprisingly helpful recently: creating a static front page « wordpress codex creating tables with plugins « wordpress codex alphabetizing posts « wordpress codex the potential of political campaigning in online games matt and i have been talking about online role playing games lately. he’s more than interested in the new challenges they pose to our legal system, the new media opportunities they offer, the ways they’re altering culture. we got into a conversation about how companies are taking advantage of them in marketing campaigns, so i asked him, “in what presidential election year will we see the first in-game campaigning?” he seemed to think it might be as late as before that happened, but immediately embraced the concept. what’s zimbra? they say “zimbra is a community for building and maintaining next generation collaboration technology.” what i’d like to know, however, is whether zmbra is a community driven, social software answer to the problems of groupware — typically driven by management’s needs. a motivated team member is a productive team member i think this is dave. apparently they keep him in a cell at the server farm. doubletake stitches panoramic photos cheap i actually like the look of a broken panorama, where the borders of each photo are clearly visible — even emphasized. but last night i got the notion of doing a seamless pano and found doubletake, a $ shareware app that makes the process pretty darn easy. the sunrise shot above (larger sizes) was my first crack at it, but i was so sure i’d use it again (and again) that i’ve already registered it. ambient findability and the google economy i’m only just getting into peter morville‘s ambient findability, but i’m eating it up. in trying to prep the reader to understand his thesis — summed up on the front cover as “what we find changes who we become” — morville relates his difficulty in finding authoritative, non-marketing information about his daughter’s newly diagnosed peanut allergy: i can tell you from personal experience that google does not perform well when it comes to health. editing wordpress “pages” via xml-rpc wordpress‘s pages open the door to using wp as a content management system. unfortunately, pages can’t be edited via xml-rpc blogging apps like ecto. this might be a good thing, but i’m foolhardy enough to try working around it. here’s how: find a text editor you like and open up the wp-includes/functions-post.php file. in the wp_get_recent_posts() function, change this: $sql = “select * from $wpdb->posts where post_status in ('publish', 'draft', 'private') order by post_date desc $limit”; recycling tips from our physical plant along with the energy saving and water saving tips previously, our physical plant folks have sent out these recycling tips: recycling of aluminum cans — saves % of the energy required to make the same amount of aluminum from its virgin source. one ton of recycled aluminum saves , kwh of energy, barrels of oil, million btus of energy. one ton of recycled aluminum saves cubic yards of landfill space. suv sales slump earnings reports from car makers seemed to suggest suv sales were down last spring, and with gas prices near $ per gallon in some parts of the country still, nobody should be surprised that yahoo! is saying interest in suvs is down — way down — now: if the buzz is any indication, then yes. searches on “hybrids” outrank “suvs” by a tremendous margin, and it’s the same story with individual models. satellite broadband macsimum news did a story on satellite internet options a few weeks ago, but reader reports focused on fixed base station solutions for domestic use. what about mobile data solutions for international use? that’s where companies like outfitter satellite come in. they’ve got inmarsat solutions that can do kbps (or bonded to kbps) almost anywhere in the world. and, for customers in the mid-east or asia, they’ve got a kbps rbgan solution that seems to offer much better throughput at far lower prices. plan c: signed javascripts the mozilla docs on javascript security give a hint of hope that signed scripts will work around the cross-domain script exclusions that all good browsers enforce. but an item at devarticles.com throws water on the idea: signed scripts are primarily useful in an intranet environment; they’re not so useful on the web in general. to see why this is, consider that even though you can authenticate the origin of a signed script on the web, there’s still no reason to trust the creator. pc world pepper pad reviewer doesn’t get it david rothman pointed me to michael lasky’s pc world review of the pepper pad. lasky bangs on pepper, saying he can’t recommend it. too often, i think, technology reviewers approach a new product without understanding it. lasky tells us how the pepper performs when playing music or videos before comparing it to “notebook computers available for the same or a lower price.” we wouldn’t let an automotive reviewer conclude a review of a prius hybrid to a chevy truck by saying the truck is the better deal because it has a bigger engine for the same money, so why let technology reviewers off so easy? bstat japan! it looks like bstat has been localized for japan! with that in mind, i’d love to hear from international users about what i can do to make localization easier. there will be some big changes in the transition to bsuite, and it might be a good time to make sure i’m properly supporting wp‘s translation tables and localization features. plan b: remote scripting with iframes i have plans to apply ajax to our library catalog but i’m running into a problem where i can’t do xmlhttprequest events to servers other than the one i loaded the main webpage from. mozilla calls it the “same origin policy,” everyone else calls it a cross-domain script exclusion, or something like that. some mozilla folks are working on a standard to address the problem, but it could be quite a while before browser support is common enough to build for it. water saving tips our physical plant folks sent out this list of water saving tips to followup on the energy savings tips they sent previously. again, i think they should be blogging them, but what do i know? (it’s a rhetorical question, please don’t answer.) limit the use of domestic hot water — use cold water whenever it will do. turn off the water while you are brushing your teeth or washing your face. atlanta scene my friend troy keeps a studio at saltworks, a combined gallery and studio space in atlanta where prema murthy just opened her destructures show. i was in atlanta to see troy and family, so the opening was added sugar, and quite a pleasure. the image above comes from troy’s above and below series. next big thing: identity management i might be overstating it, but identity management is the next big thing for the open source community to tackle. that’s why i like sxip, even though i know so little about it. there are a number of other solutions stewing, but most of those that i’m aware of are targeted at academic and enterprise users. wouldn’t it be nice to have some federated system of identity management among blogs? linotype fontexplorer i was never a very good graphic designer, but the part of me that thought i was still pays attention when i see software like linotype’s free fontexplorer, described somewhere as “the itunes for fonts.” that’s excitement… “oooh… i want a number ten.” — a man stepping into line at the airport mcdonalds. the number ten meal, by the way, is a ten piece chicken mcnuggets meal. absinthe roderick sent me a link to this reason article on absinthe that claims: the u.s. food and drug administration considers true absinthe “adulterated” because of the wormwood. production, sale, and importation are banned, but mere possession is not, and customs agents typically ignore a bottle or two in your suitcase. it’s a legal situation that seems designed to keep absinthe cool.“ the wikipedia article on absinthe pretty much confirms that point, so who’s going to test it? improvised anti-telemarketing device the telecrapper is an improvised, homemade system that identifies telemarketing calls and leads the marketer through an artificial conversation that wastes the company’s time and money. the idea is to drive down productivity, and like so many other productivity sapping things, it can be quite funny. check this flash-animated recording: my hip hurts (mirror) rather less funny, though interesting nonetheless, is egbg’s counterscript. tc k hint via engadget. fixing position: fixed in ie it turns out the internet explorer doesn’t properly support css’s position: fixed. google led me to the following: how to create – making internet explorer use position: fixed; doxdesk.com: software: fixed.js fixed positioning for windows internet explorer the doxdesk solution looks promising and simple, but i think bugs elsewhere in my layout are preventing it from working. it’s time to start again from scratch. powerpoint. killer app? ruth marcus at the washington post wonders if powerpoint is a killing app. she’s not the first to note that nasa administrators make decisions — sometimes fatal decisions — on the basis of powerpoint presentations that mask or misrepresent details. i wrote about edward tufte’s cognitive style of powerpoint essay in a previous post. marcus doesn’t add to many new points, but the column is a sign that an anti-powerpoint movement may be growing. [fwd:] katrina eyewitness report (about the photo) the following report comes from cosmobaker.com, which includes this preamble: edit: the following is an email that was sent to my mother from one of her colleagues. although i cannot substantiate the contents, after all the horror stories that i’ve heard so far, i though that this one was important to tell. stand up and be counted. spread truth. stay awake. c —–original message—– wifi in public spaces a message came acrross the web lib list a few weeks ago with the following request: i want to hear from libraries who are currently implementing, or who already have implemented, wireless access for staff and/or patrons. i want your ‘stories’–good, bad and ugly. issues and/or triumphs with it staff, vendors, library staff, library boards, faculty committees, etc. i’m looking for all aspects of the process-finding hardware, implementation, policy (!), training staff, marketing the service to your patron base, troubleshooting and maintenance issues. search, findability, the google economy: how it shapes us just when i was beginning to feel a little on my own with my talk about the google economy here, i see two related new books are coming out. the first is peter morville’s ambient findability. the second is john battelle’s the search. findability appears to ask the big question that i’ve been pushing toward. from the description at amazon: are we truly at a critical point in our evolution where the quality of our digital networks will dictate how we behave as a species? trusted computing: the movie benjamin stephan and lutz vogel at lafkon bring us this wonderfully engaging animated story of trusted computing. there’s lots more to the story at againsttcpa.com, and i need to thank david rothman at teleread for alerting me to both the video and the site. i haven’t had much to say about tcpa, but i think of it like technology politics…politics where i have no say, no vote, no power. wide world of video games matt started talking up the weird issues developing around multiplayer online games a few weeks ago. then soon after he blogged it, a story appeared in on the media (listen, transcript) short story: online gaming is huge — one developer claims four million paying customers. more significantly, the interplay between real and virtual worlds might create new challenges for this real world legal system. “theft” of in-game money and equipment among players in the online world is possible, but it’s lead to the real-world arrest of at least one person and the murder of another when authorities refused to act. energy saving tips our physical plant folks sent out a message with tips on how to conserve energy. perhaps they oughtta blog this stuff? here it is: computer power management — a typical computer monitor uses to watts of electrical power, depending upon screen size. do not use screensavers as energy savers as they continue to use the monitor at full power and do not conserve energy. configure your monitor to turn off after minutes of inactivity, your hard drive to turn off after minutes of inactivity, and your desktop computer or laptop to go into a standby or sleep mode after minutes of inactivity. osceola weekend i climbed the osceolas with will and adam this weekend. it was my first overnight in a long, long time, and their first mountaintop sunrise. i used to do sunrises on mt. monadnock, but i’d lost the habit. more pictures of the osceola adventure at flickr. what counts will reminds us: “flasks are like people, it’s what’s on the inside that counts.” from the top of mt. osceola. the quotable john scott john scott reminds the naive: “don’t believe everything you find in google.” be a leader! manage your staff with ralph wiggum quotes! “i eated the purpleberries” (groaning). “how are they ralph…. good?” “they taste like…burning.” more goodness at the ralph wiggum soundboard, via informationnation. more quotes, like “oh boy, sleep! that’s where i’m a viking!,” at thedotdotdot. if i close my eyes, does it go away? can bush censor his shame away? reuters: fema accused of censorship: “it’s impossible for me to imagine how you report a story whose subject is death without allowing the public to see images of the subject of the story,” said larry siems of the pen american center, an authors’ group that defends free expression. brian williams’ msnbc nightly news blog: while we were attempting to take pictures of the national guard (a unit from oklahoma) taking up positions outside a brooks brothers on the edge of the quarter, the sergeant ordered us to the other side of the boulevard. axe gang security bumbles again we laugh at the single minded foolishness of the axe gang in kung fu hustle jackie chan’s the legend of drunken master, but do we laugh when we see it in our own security policies? to intelligence staffers and border guards working under a policy of hammers, all the world is a nail. here’s an example: in august , us customs agents stopped and searched ahmad el maati, a kuwaiti-born canadian and a truck driver crossing the us-canadian border at buffalo, ny. marketing and search engine optimization i don’t want to admit to being interested in marketing, but i am. here’s a few links… blogs: church of the customer seth godin aaron wall’s seo book.com threadwatch.org randomness: writing, briefly google’s search result quality evaluation guidelines definition of the google economy at wikipedia the fall of advertising and the rise of pr simple bookmarklet demo bookmarklets are interesting little bits of javascript stored as bookmarks. they’ve been around since about (earlier?), but i’ve never bothered to write one. here are a few examples: this sort of creates a bookmark alexa snapshot wayback la femme’s poison browsing flickr the other day i found la_femme‘s poison. other good photos in her photostream. energy crisis mike whelan posted the above photo to his flickr photostream recently. back in april, when gas prices were still well below the $ -per-gallon mark, it looked like sales of suvs were starting to slow. interestingly, we’ve crossed the threshold keith bradsher quotes in high and mighty, his book detailing how the us auto industry became so dependent on suvs and how common sense has been powerless against them. the threshold was the point at which gas prices would begin having the same effect on current car purchases as the s oil crisis did. doing relevance ranked full-text searches in mysql i’m going out on a limb to say mysql’s full-text indexing and searching features are underused. they appeared in mysql . . (most people are using .x, and is in development), but it’s been news to most of the people i know. here’s the deal, the match() function can search a full-text index for a string of text (one or more words) and return relevance-ranked results. it’s at the core of the list of related links at the bottom of every post here. la tomatina from a reuters story in chinadaily: at noon [wednesday], municipal trucks dumped about tons of ripe, juicy plum tomatoes at the feet of adrenaline-charged crowds in town’s main square. within minutes the area was covered in red slime, and clouds of tomato sauce filled the air. it all takes place in buñol, in spain’s valencia region along the mediterranean coast. canada.com{#db d - e- fa -a b -be ad } describes the origins: local lore says it began in the mid- s with a food battle that broke out between youngsters near a vegetable stand on the town square in buñol, kilometres southeast of madrid. signals tells google a thing or two signals takes on google and suggests some improvements. ucla takes on google scholar via jay bhatt at lisnews: ucla libraries‘ discussion of google scholar, search engines, databases, and the research process. time-picayune in exile times-picayune editor jim amoss answered questions for on the media‘s brooke gladstone. amoss and his staff have been covering the catastrophe in new orleans as only locals can. some of the best reporting i’ve seen on this has come from the times-picayune, and i was quite amazed when i discovered the electronic edition wednesday. despite the damage, they appear to have start releasing a print version again and are distributing it in the city and in communities where refugees have fled. sneaky is there a sneaky surprise hidden in your hotel room? see if you can recognize anything in these photos (tip: mouse-over them). back to school video kate says: “life is good. and i’ve got a sleeping bag from the future.” tim explains, a bit. none of that matters nearly as much as the video kate is quoting from, and that matters now because back to school time means play dates and sleepovers. tim guarantees it will kill a few braincells, but nothing ridicules us the way we once were (and often still are) better than saturday night live. things go to hell defensetech’s noah shachtman writes: organizing thousands and thousands of people, in hellish conditions and in a hurry, is tough work. let’s take that as a given. but still: we’re now a work week into a natural disaster that had been forecast for years, and new orleans “is being run by thugs,” the city’s emergency preparedness director tells the times. “some people there have not eaten or drunk water for three or four days, which is inexcusable. rollerblading via pya{# }. policing by cellphone though we imagine the dutch to be a rather unexcitable lot, i did anyway, it turns out they have a history of getting rowdy at football games (yes, if this all happened back in the states i be calling it “soccer”). so it can’t be so much of a surprise that fans rioted again in april. what is surprising is that mobile phone companies got involved in the investigation. this ap report tells the story: the water down there i don’t watch tv, so i haven’t seen many images of the flooding in new orleans until i found these. amazingly, the times picayune is publishing pdf editions during disaster. the hurricane and flood damage are truly scary, but the worst news is on page five, which tells of widespread looting: law enforcement efforts to contain the emergency left by katrina slipped into chaos in parts of new orleans tuesday. the google economy will beat you with a stick call it a law, or dictum, or just a big stick, but it goes like this: the value and influence of an idea or piece of information is limited by the extent that the information provider has embraced the google economy; unavailable or unfindable information buried on the second or tenth page of search results might as well be hidden in a cave. the ultraviolet sun from the nasa website: eit (extreme ultraviolet imaging telescope) images the solar atmosphere at several wavelengths, and therefore, shows solar material at different temperatures. in the images taken at angstroms the bright material is at , to , degrees kelvin. in those taken at , at million degrees. angstrom images correspond to about . million kelvin. angstrom, to million degrees. the hotter the temperature, the higher you look in the solar atmosphere. enabling .htaccess on mac os x i do a lot of web development on my laptop. i’ve got apache and php there, so it’s really convenient, but i usually move projects off to other server before i get around to wanting to mess with mod_rewrite. not so, recently, but i ran into a big stumbling block when i discovered os x’s apache comes pre-configured to ignore .htaccess files. a couple points. first, apache’s own mod_rewrite docs include the following quote: coconut battery coconutbattery: coconutbattery is a tool that reads out the data of your notebook-battery (ibook/powerbook). it shows the current charge of your battery as well as the current maximum capacity related to its original. via o’grady’s powerpage{# } awstats as much as i like the bstat functionality of bsuite, i never intended it to be a replacement for a full server log-based stats application. that’s why i’m happy my hosting provider offers awstats. the reports suggested ways to optimize my pages so that i could control my bandwidth consumption — up to . gb/day before optimization, now . gb/day. but today i found an awstat feature that got me excited enough to email the university sysadmin about it: email stats. the google economy — the wikipedia entry i’m rather passionate about the google economy, so it shouldn’t be too much of a surprise to learn that i just wrote about it in my first ever wikipedia entry. here it is: http://en.wikipedia.org/wiki/google_economy “google economy” identifies the concept that the value of a resource can be determined by the way that resource is linked to other resources. it is more complex than search ranking, and broader than interlinked web pages, though it draws meaning from both. bsuite development bstat has become bsuite. the name change reflects the fact that i want the plugin to do a lot more than track usage stats. one of the first features to enter testing here is the “related” section below. i’m calling it “bsuggestive,” but that may turn out to be too cute a name to tolerate for long. the results are based on the tags for the post, so it doesn’t work with old posts that haven’t been tagged, and it sometimes returns some weird matches, but it’s still alpha, so what can we ask for. beloit college’s list of things that make us look old to incoming students we’ve seen lists like this before. beloit college in beloit wisconsin releases their “mindeset list” for their incoming class every year around now. the point is to remind us how cultural touchstones change over time. it does that, but it also give us (me, anyway) a good chuckle. it’s worth reading all the way down to number , at least, where libraries get a good mention. video bulb and zakka shop nyc the video bulb is a “lipstick-sized tube” that plugs in to your tv’s rca jack and plays bitman videos. gadgetmadness explains what bitman is: bitman is the creation of japanese art performer “meiwa denki” and was an -bit electronic stick figure who would dance, pose, etc. the videobulb sounds interesting enough, but i think i could get into the reseller as much as the gadgetmadness writer did: i went to zakka shop & space the last time i was in nyc, and literally wanted everything in the store. changing modes of communication i talk a lot about the google economy here, and how that and other ideas are driving changing modes of communication. today i learned of arxiv. henry farrell describes it at crookedtimber: [i]t’s effectively replaced journal publication as the primary means for physicists to communicate with each other. journal publication is still important – but as an imprimatur, a proof of quality, rather than a way to disseminate findings to a wider audience. wordpress as cms a friend and i have been talking about what it would take to turn wordpress into a cms. we both have our doubts, but today i found this job ad that suggests we’re not alone in at least thinking of the possibility. needed: web designer/programmer for our sites we’re growing very fast, and have outgrown our current cms and design. we’re looking for a designer and/or programmer to redesign our rapidly growing network and implement a cms that ties it all together. kingcosmonaut & wp themes i stumbled across the sometimes funny how to live your life and got curious about the theme. turns out it’s by sebastian schmieg, who keeps things real at kingcosmonaut. the theme is blix, but the kingcosmonaut site is much cooler. flock the developers describe flock as [t]he world’s most innovative social browsing experience. we call it the two-way web. which is a good enough sales pitch to make me try the free demo, but it’s all still a private beta. perhaps they’re trying to prove the point that nothing builds buzz better than unavailability. osakasteve gushes: a browser that is designed around social software like blogs and flickr itunes music store api? i can’t explain why, at least not yet, but i’m looking for a way to search the itunes music store{#xffsogqwv s&offerid= . &type= &subid= } catalog outside of itunes. rumors of an itunes-google partnership{# } have been flying lately, but what i really want is a webservice/api i can use. yes, apple offers an affiliate program that supports direct links, but again, they don’t offer an amazon-style api to search their catalog. all of this has me thinking about reverse-engineering the itms to build the webservice i’m looking for. a list apart updated a list apart, has been revamped and they’re proud of it. they should be, it’s beautiful and functional. it’s one of the few early web development resources that’s still with us, and there’s a reason. copyright and academic libraries back when i was looking things up for my digital preservation and copyright story i found a bunch of info the university of texas system had gathered on issues related to copyright, libraries, and education. in among the pages on copying copyrighted works, a/v reserves, and electronic reserves i found a document titled: educational fair use guidelines for digital images. it’s some interesting stuff — if you get excited about copyright law. re-shelving orwell’s via jon gordon‘s future tense: re-shelving george orwell. smart people everywhere are taking it upon themselves to re-shelve george orwell’s from fiction to more appropriate sections in non-fiction, like “current events”, “politics”, “history”, “true crime”, or “new non-fiction.” instructions and photos on flickr. laura quilter defends google print with all the talk about google scanning or not scanning copyrighted books, i was happy to see laura quilter talking about google as a library. the internet archive is certainly a library. […] libraries may be private, semi-private, public; for- or not-for-profit; paper or digital. why is google not a library? more interestingly, she casts a critical eye on the texaco decision that everybody points to as the guiding law on fair use. wikipedia api? i want wikipedia to have an api, but it doesn’t. some web searching turned up gina trapani’s wikipedizetext, but that still wasn’t exactly what i wanted. a note in the source code, however, put me back on the trail to the wikipedia database downloads, and while that’s not what i want, i did learn that they’ve got a table of just the article titles (over . million of them) in their downloads. drug side effects drive patients to gamble, eat, drink, and … …people with parkinson’s disease temporarily became compulsive gamblers after taking […] drugs designed to control movement problems caused by the illness… that’s the lead in this forbes story on the matter, and that’s not all. a variety of ‘interesting’ side effects popped up among a relatively small number of study participants: pathological gambling compulsive eating increased alcohol consumption obsession with sex. the drugs in question are “dopamine agonists” and are part of the standard treatment of parkinson’s disease. segway easy rider movie trailer remember those guys who rode a segway cross-country last year? well, they’ve got a movie coming out. yup, there’s even a trailer. possibly more interesting: the photo gallery (from which the photo above came). thanks to engadget for the link. steelers fan never misses a game day in remembering james henry smith, a zealous pittsburgh steelers fan who died of prostate cancer in early july, his family asked the samuel e. coston funeral home to do things “as he would have wanted them to be.” for the viewing, the funeral home arranged a living room ensemble with the tv and recliner just as smith liked it on game day. an ap article describes it: smith’s body was on the recliner, his feet crossed and a remote in his hand. alt browser shiira project, an apple webkit-based browser with some interesting features. sadly, it also brings page transitions to the mac. let’s hope these don’t become the new . chasing clicks al asked how low i will go to chase traffic. truth is, i can’t answer. maisonbisson has had moments of popularity, but it’s hard to know why. alexa tells us there are million unique sites on the web, but… if you take alexa’s top , sites you’ll find that almost out every clicks are spoken for. in other words, almost % of all the traffic on the web goes to the sites in the top k list, leaving the remaining million or so sites to fight over the scraps. neutron bomb boing boing has an exclusive profile of neutron bomb inventor samuel t. cohen by charles platt. all the reports so far are that it’s a , word “must read.” the article, profits of fear, is available in pdf, plain text, and palm doc versions at boing boing. thanks to david rothman for the heads up. extra: rothman asks what it all says about mainstream media when respected authors eschew traditional media for blogs. another limitation of lc classification right up front in the prologue of ruth wajnryb’s expletive deleted she quotes the following from richard dooling on the difficulty in researching “bad language”: the library of congress classification system does not provide a selection of books … on swearing or dirty words. a researcher … must travel to the bf of psychoanalysis, the pe of slang, the gt of anthropology, the p of literature and literary theory, the n of art, the rc of medical psychiatry, and back to the b of religion and philosphy. network effects on violence some time ago i pointed to john robb’s discussion of the potential for the network to amplify the threat of violence from otherwise un-connected and un-organized individuals. now noah shachtman at defensetech is writing about “open source insurgents.” it used to be that a small group of ideological-driven guerilla leaders would spread information, tactics, training, and cash to their followers. no more. internet-enabled insurgents with only the loosest of real-world connections can now share all of that freely online. grizzly man david edelstein’s review of werner herzog’s documentary, grizzly man, describes timothy treadwell as …a manic but lovable whack-job who doggedly filmed and obsessively idealized the bears that would ultimately eat him… the film is made up largely of the bits of the hundreds of hours of video that treadwell himself shot during his years with the bears. later, however, edelstein — probably restraining laughter — calls treadwell “histrionic” and a “drama-queen” (isn’t that sort of redundant? php developer resources somebody asked for some links to get started with php. of course i lead them to the php.net official site, where the documentation is some of the best i’ve seen for any product. i also suggested phpdeveloper.org and phpfreaks.com, though the truth is i usually google any questions i have that the official docs don’t answer. still, i’ve found some good info at both of those. finally, the php cheat sheet at ilovejackdaniels. drm = customer lock-in donna wentworth is now saying what i’ve been saying for over a year now. digital rights management (drm) isn’t about preventing copyright violations by ne’er-do-wells, it’s about eliminating legal me me fair use and locking in customers. in your pc == a toaster, wentworth quotes don marti saying: isn’t it time to drop the polite fiction that msft and other incumbent it and ce [ce = consumer electronics — casey] vendors are only doing drm because of big, bad hollywood? digital preservation and copyright we’re struggling with the question of what to do with our collection of vinyl recordings. they’re deteriorating, and we’re finding it increasingly difficult to keep the playback equipment in working order — the record needles seem to disappear. we’re re-purchased much of our collection on cd, but some items — this one might be one of them — are impossible to find on cd. so we’re considering digital preservation, capturing the audio of the records and scanning the dust jackets. the part where speakeasy cons me into shilling for them the speakeasy speed test is an okay way to waste some time, but the most amusing thing is how easy they make it to promote them. the speakeasy badge here looks like any web ad, but they’re not paying for it. all they did was post a link saying add speakeasy speed test to your site. i guess we all ought to take this marketing tip from them: make sure your readers know how to link to you. maisonbisson top seven the most recent version of my wordpress stats tracking plugin makes it very easy to see and track my top stories. i don’t know whether i should be proud or ashamed by them, but here they are: big bear photos that story gets a lot of morbid interest, and i’m sure the movie grizzly man will too. k-fee energy drink tv ad for a while, though, people looking for that story were finding my zygo energy vodka story instead. atomic while looking for a picture for my memorial to the bomb, i found a number of related links. this blog is sometimes nothing more than an annotated bookmark list, and this is why…. the bomb project describes itself as: a comprehensive on-line compendium of nuclear-related links, imagery and documentation. it is intended specifically as a resource for artists, and encourages those working in all media, from net.art, film and video, eco-intervention and site-specific installation to more traditional forms of agitprop, to use this site to search for raw material. linking bias danah boyd posted about the biases of links over at many many the other day. she looked for patterns in a random set of blogs tracked by technorati as well as the top blogs tracked by technorati. she found patterns in who keeps blogrolls and who is in them, as well as patterns about how bloggers link in context and who they link to. the patterns boyd points to would certainly effect the google economy, our way of creating and identifying value based on linking structures. annoises via gizmodo: a cd of annoying sounds at gadgets.co.uk. twenty “ear splitting” sound effects and a pair of earplugs “for your sanity and protection” for £ . . what sound effects? drill party (at least people) orgasm (outstanding) train drum (played by a child) inhuman screams walking (high heels) domestic squabble doors banging bowling unhappy dog practicing a violin traffic jam garbage truck a screaming newborn baby phone ringing ball game pigeons spring house cleaning cock-a-doodle-do! grizzly man within the last wild lands of north america dwells an animal that inspires respect and fear around the world. it is the grizzly bear, a living legend of the wilderness. grizzlies can sprint thirty five plus miles an hour, smell carrion at nine or more miles, and drag a thousand-pund animal up steep mountains. the grizzly bear is one of a very few animals remaining on earth that can kill a human in physical combat. point ‘n shoot defensetech reported on the firefly, a disposable camera that can be shot from the m grenade launchers used by us land forces. the cameras fly meters in eight seconds, wirelessly sending pictures back to the soldier’s pda. now they’ll know what’s over that hill or around that corner. not that soldiers don’t need this sort of thing, but one wonders when hasbro will release a plastic version in bright colors. movie night: open water joe recommended open water whole heartedly, but others, like some of these one-star reviewers at amazon, had equally strong reactions against it. i first learned of the events the movie is based on in bill bryson’s in a sunburned country, where he described the events of thomas and eileen lonergan’s disappearance during a dive in the australian pacific. the similarity between these true events and the movie’s events likely ends there. jimmy wales’ free culture manifesto jimmy wales, the founder of wikipedia and director of the wikimedia foundation, is working on his keynote for the wikimania conference in frankfurt. ross mayfield at many many posted a preview and gives some background. what should we expect? wales’ speech touches on ten things necessary for free culture: free the encyclopedia! free the dictionary! free the curriculum! free the music! free the art! free the file formats! free the maps! years later in what was to be the final act of world war ii in the pacific, the united states made the first and only use of nuclear power as a weapon in the bombing of hiroshima and nagasaki on august th and th (us dates), . george weller of the chicago daily news snuck in to nagasaki in early september and became the first american journalist to see the destruction. his stories were censored, and official sources maintained control of news about the bombings and the aftermath for many years. reminisce: my first ebook the first ebook i ever read was bruce sterling’s hacker crackdown on my newton message pad . it had a big and bright screen — “the best screen for reading ebooks on the (non-)market” says dj vollkasko — but it could get a bit little heavy at times. crackdown is available for free, along with perhaps , others, at matthew mcclintock’s manybooks.net. downloads are available in different formats, or you can read online. information is sexy it used to be you could identify the librarian by the sensible shoes, but times they are a changing. witness this ad from library bar. sure their “librarians” are bartenders, but what cultural shift changed to thrust librarians up the sex appeal scale? yeah, this is old. after all, it was the spring of bust magazine that asked if librarians might be the new “it” girls, but it’s still amusing. drm: bad for customers, bad for publishers the news came out last week that the biggest music consumers — the ones throwing down cash for music — are also the biggest music sharers. alan wexblat at copyfight says simply: “those who share, care” (bbc link via teleread). rather than taking legal action against downloaders, the music industry needs to entice them to use legal alternatives, the report said. lawsuits against customers go hand in hand with drm in limiting community buzz for a particular artist or song. gizmos for geeks colin pointed out spark fun electronics as a source for all manner of geeky components, like component level gpss and accelerometers. thing is, they also sell the components in kits with custom pc boards, some with usb interfaces. the coming information age that headline might seem a little late among the folks reading this. but we’re all geeks, and if not geeks, then at least regular computer users. regular computer users, however, are a minority. worldwide, only around million people have internet access, and fewer than million people in the us have internet access at home. with populations of over billion and million respectively, there’s clearly a lot of growth potential. faces i stumbled upon captnkurt’s information nation where he popped a link over to eric myer’s stereotypes. the gimic — and it’s a fun one — is that you can mix and match bits of faces. i don’t know why i like the combo above so much, but, anyway. the thing about this is that it reminds me of troy bennett’s human-intoface, reported here back in and . separately, i need to go back and take another look at captnkurt’s story about couchsurfing. nokia i’ve been babbling like a stoolie for pepper here for the past couple weeks, but after some prodding by roger sperberg i’ve started to take a serious look at the nokia linux-based internet tablet. to get me started is mike cane’s hands on report from some time spent with it at linuxworld expo. nokia is pushing maemo.org to support the developer/hacker community, and there’s already some interesting work being done. more bluetooth hacks as if bluejacking wasn’t fun enough, now a few folks have now taken it a little further and figured out how to connect to the growing number of bluetooth handsfree sets all around us. gizmodo fed me the link to what they’re calling “the car whisperer.” nothing against these guys, but it’s not like they did anything amazingly complex. their story explains that they’re simply taking advantage of poor security like default passwords. movie night: house of flying daggers i’ve been a fan of zhang yimou’s films since, well, for a while now. but i’m also a huge kung fu fan — jackie chan especially — so house of flying daggers was quite a treat. it’s not that i didn’t like hero, or that daggers was particularly funny. to the contrary, it’s tale of complex characters who don’t end well. that might be story enough, but every scene is richly photographed and styled — a hallmark of so many of yimou’s films, but wonderfully so in daggers. sweet cheat sheets colin over at command-tab alerted me to some great cheat sheets, including this one for javascript at ilovejackdaniels.com.     apple releases multi-button mouse apple this morning released the mighty mouse. with a scrollball, left and right click, and side buttons, it’s a big departure from apple’s old opposition to multi-button mice. apple didn’t invent the mouse, but they were probably the first to put mice through usability testing. one, two, and three button mice of a great many different shapes and sizes were tested before they settled on a one-button mouse for the original macintosh in . hands on the pepper pad the most amazing thing about the pepper pad is how easy it is to pick up and use, how easy it is to walk around with, and how it’s available when you want it and gone when you don’t. the pepper pad‘s portability goes far beyond that of laptops. i mentioned previously that laptops move from desk to desk and bill gates tells us how poorly laptops work in elevators. netflix expands queues this is old news, but netflix{#xffsogqwv s&offerid= . &type= &subid= } now offers multiple queues for each account. queues, of course, are the movie wish lists each netflix customer keeps; when you return a movie, they send out the next movie in your queue. in the old days, each subscriber got just one queue, no matter how many members of the household had an interest in the movies. two people, one queue? marital drama ensued in my home and others. movie night: the underneath steven soderbergh has done a number of good films, but the underneath isn’t among them. it’s interesting to see the director working out his moves, but more entertaining to see them in a more mature form, as in out of site. eh, i’m ready to give the guy a break. my real complaint has nothing to with this film. instead, it’s about kafka, one of his best works. it was released in , and though they’ve still got a few vhs copies in a warehouse somewhere, it deserves a dvd release space shuttle tracking (and other good uses of the google maps api) tom mangan has put the google maps api to interesting use with his space shuttle tracking page. also worth checking out: his blackbird spotting site and tlable, a little extension to make pinning/annotating maps even better. politics and the google economy while i’m anxiously working to better fit libraries into the google economy, a few paragraphs of barry glassner’s the culture of fear, got me thinking about its role in politics. glassner was telling of how a article in usa today quoted the national assocation of scholars{# } saying that georgetown university had dumbed down its curriculum and dropped shakespeare{# } requirements. of course, nothing could have been farther from the truth, a point confirmed by the georgetown’s dean. japanoid k-cars gizmodo reported it a while ago, but a canadian company called japanoid is importing these and other tiny japanese cars. how tiny? at or under . meters (under feet!) wide with engines cc or under. they’re called kei jidousha, or keicars, or just k-cars (though not to be confused with chrysler’s k-cars). japanoid has vehicles listed, but my favorites are those four above and this funny looking truck. movie night: entropy phil joanou’s entropy isn’t available in the us on dvd, but i found it at amazon uk. imdb has this to say: stephen dorff narrates this tale about how his life goes astray as his character attempts to strike a balance between the demands of directing his first film and the pressures of his new romance with a model. u ’s bono plays a role in this film as both himself and dorff’s character’s concience. the problem with pdas today when i finally get around to writing up my impressions of the pepper pad, i’ll be pointing to roger sperberg’s recent posts at teleread about non-pda handhelds and computers for stand up use. at the moment, however, some of his points remind my of a few i’ve got to make about pdas here. i’ve got a sony clie th- , the top of the line of the last series they imported to north american shores. gizmo project, voip, asterisk jason o’grady{# } introduced me to the skype-like gizmo project by the folks over at sipphone. i’ve been a vonage customer for a couple years now, so i’ve had a chance to get familiar with voip, and i’m looking for a good bluetooth headset so i can try gizmo and skype (and others), but i got to wondering what more i could do. asterisk is an open source pbx application that runs on linux, macos x, and others. marriage alternet has a story by monica mehta titled the myth of marriage with this synopsis: a radical new book debunks the concept of marriage as a time-honored institution, and argues that we need to loosen up about it. the book is stephanie coontz’s marriage, a history. related previous story: the “sanctity” of marriage. put a pepper in your library libraries are known for books. and despite the constant march of technology, despite the fact that we can put a bazillion songs in our pocket, despite the availability of the new york times and so many other newspapers and thousands of journals online, books are a big part of what libraries are. books, dead tree books with that rotting paper smell. and though i dare not prognosticate, i expect they’ll be an emblematic feature of libraries for a while now. elements of murder john emsley, author of elements of murder: a history of poisons appeared in an interview on npr’s fresh air’{# } earlier today. those who were fascinated by the morbid details of devil in the white city should give it a listen. i plan on checking out the book too, though it sounds like emsley offers more chemical formulae than outright suspense. ils: inventory or search and retrieval system? there’s an interesting discussion going at libdev about what our ilss are. it all started with a discussion of what role xml and webservices could/should play with ils/catalogs, but a comment reminded us that vendor’s decisions about adding new features to products that have been around for or years sometimes edge towards lock-in. i replied offering flickr as an example of a vendor that’s been successful in part because of their open apis. nuclear family vacation via defense tech: slate did a series last week titled a nuclear family vacation that visited the nevada test site; los alamos, lawrence livermore, and sandia national labs; and trinity. extra: a slideshow accompanies the text and the authors interviewed{# } on npr’s day to day{# }. related: previous nuclear stories at maisonbisson. karl rove’s leak-and-covergate two items from the blogosphere about rove’s leak-and-covergate at tikun olam and alternet. life magazine covers i get a kick out of these and life magazine covers. take a look and i think you’ll agree that no magazine puts photos like this on their covers today. screen real estate at x pixels, apple’s cinema hd display{#xffsogqwv s&offerid= . &type= &subid= } is big enough for three people’s egos. xml/php/swf charts flash app dynamically generates charts based on xml formated data or values in a php array. xml/swf charts is a simple, yet powerful tool to create attractive web charts and graphs from dynamic xml data. create an xml source to describe a chart, then pass it to this tool’s flash file to generate the chart. the same tool also accepts php sources. xml/swf charts makes the best of both the xml and swf worlds. pepper i’m off visiting the good folks at pepper today. i’ll update this post with photos as soon as they’re available, then look for a pair of posts about how the hardware/software works and what i’d like to do with it later. until then, here are some related posts: ultra portable computing, pepper pad , and portable computing. update: the picture above is blurry because of my poor photography skills. better pictures can be found at the pepper site. tags tags tags david weinberger at many-to-many pointed me to tom coates’ post about different schools of thought regarding tags. coates has been thinking about tags as keywords, annotations. thats how i’ve been using and thinking about tags too, but some people have different ideas. …at the end of the argument i said to joshua that it was almost like he was treating tags as folders. and he replied, exasperated, that this was exactly what they were. what’s a mirt? mirts turn red lights green, but merely having one will probably get you in a pile of trouble. more info at i-hacked.com{# }. peerflix ross rubin at engadget just alerted me to peerflix …which can be described on a basic level as ebay meets netflix. peerflix resembles many online dvd stores, but it neither rents nor sells dvds. rather, it depends on a community of users willing to trade dvds they have for dvds they want. there are no subscription fees. peerflix charges a -cent transaction fee and senders are responsible for the postage charge of cents for the mailers that the company distributes. john barlycorn must die in a popular antebellum arkansas story, a backwoodsman bought a -gallon barrel of whiskey, only to return a week later for another. “surely you haven’t drank that whiskey already?” inquired the astonished merchant. “it ain’t so much,” replied the backwoodsman. “there are six of us, counting the kids, and we have no cow.” it’s not quite as detailed as some of the stories in the foxfire books, but it’s a good treat. the failures of permission culture donna wentworth, over at copyfight pointed out a jd lasica piece detailing the responses from seven studios to his requests to use short ( - seconds) clips of their films in a non-commercial project he was working on with his child. …four of the studios refused outright, two refused to respond, and the seventh wobbled. this is the quandary millions of us face today: the hollywood studios demand that we ask for permission to borrow from their works — and then they deny our requests as a matter of course. google moon rocks google engineers have got the moon on their minds lately. we all got a laugh at their april fools day lunar hosting and research center job opening, but they’ve done themselves one better and several points more serious with google moon. sure, it’s in celebration of the first lunar landing years ago today, but if they’re so fixated on the moon, why not sponsor a space competition? google maps gets all the attention it would reasonably appear that here in the us, there’s only one map site: good ol’ google. but until google adds maps for countries other than the us, canada, and uk, the rest of the world will have to look elsewhere. enter the uk competitor: multimap.com has been serving the world outside the bubble since . from their self description: key features include street-level maps of the united kingdom, europe, and the us; road maps of the world; door-to-door travel directions; aerial photographs; and local information. jenny’s drm scourge jenny levine, over at the shifted librarian, is telling the latest chapter in her long-running struggle with drm. now, i’ve installed a lot of windows software in my day, so i feel pretty confident in my ability to double-click on an installation file. however, when i try to install [yahoo music engine], i get three screens into the installer (oh the joy of accepting the license agreement over and over) before i get an error message that says, “the file c:\downloads\ could not be opened. bstat beta release [[pageindex]]update: shout outs to zach, cliff, justin, and thomas who’ve submitted bug reports. their feedback has been rolled in to the b july release, available now (look for the link below). this is likely the last release before the code gets bundled into bsuite (more details on that later). changes this documentation supersedes any previous documentation. more changes to the bstat_pulse() function; bstat_pulse_style() is no longer used. it’s been replaced by a flag in the call. see the usage example to understand. want to customize the style? start with that example, look at the xhtml it outputs, work from there. update thanks to zach, these parameters are all optional. you can call it with nothing more than “bstat_pulse()”, if that’s your thing. still, i’d recommend using the full example below. there are a lot of improvements to the management console. the number of lines to display for each category and the date range (past day, week, month, etc.) are now configurable. quick start installation download and unzip bstat.zip   place bstat.php in you wp-content/plugins directory   place spacer.gif in your wp-content directory   log in to your wordpress admin panel and activate the plugin, then visit the new bstat submenu of the options tab. this will allow bstat to create its database tables.   add the bstat_hitit function to the footer.php of your theme (or in some other place where it will be called once for each page load). this starts the counting; you can see the results in the bstat submenu of the manage tab of the wordpress admin panel. in order to view the bstat results on your public pages, you’ll need to the bstat display functions to your pages. it’s funny ‘cause it’s true first lady laura bush speaking at the white house correspondents association gala noted: george’s answer to any problem at the ranch is to cut it down with a chain saw. which, i think, is why he and cheney and rumsfeld get along so well. the quote is all over the net now, but i found it in the august issue of vanity fair. australia’s rum jungle alan moorhead, in his rum jungle — a sort of casual ethnography or serious travelogue — explains the uses and attitudes towards alcohol in his native australia: […] i took it for granted that for all social occasions, at any time of the day or night, beer was the drink. you did not take it with your meals, but before or afterwards and in considerable quantities. beer was the solace of life and the white man’s true vision of bliss. full-text searching inside books search engine watch did a story about how to use google and amazon’s tools to search full-text content inside books. the gist? when you can get to the tools and where they’ve got content, it does a lot to make books as accessible and open as electronic content. sort of related: i’ve spoken of google print before and there’s more in the libraries and networked information category. organizational/institutional blogging done right jenny levine is talking about an example of the perfect library blog over at the shifted librarian. the posts are written in the first person and in a conversational tone, with the author’s first name to help stress the people in the library. the staff isn’t afraid to note problems with the new catalog, the web site, or anything else. full transparency — nice. you can feel the level of trust building online. hackable snackable gumstix the make: podcast pointed me to gumstix — really small computers built for hacking. cool. google hacks from o’grady’s powerpage{# }: i have no interest in true hacking (i.e. rummaging through people’s private junk) although viewing random unprotected ip cameras around the world in public places and controlling their panning and zoom functions is kind of mind-blowing. there are a ton of fun ghacks out there – like spelling out words in pictures using google image search, and the google poetry generator, or the news map generator etc. skyhook wifi geolocation old news from gizmodo and wi-fi networking news (quoting wifi nn): skyhook has assembled a database of information about . million access points across major cities in the u.s. by driving every street in every city. their software records multiple data points per sample for directionality. fire up their software on a laptop, and it compares the wi-fi information it sees with what’s in the skyhook database, popping out a latitude and longitude within to meters. coolest watch ever, today anyway the nixon rotolog{# &menu_id= }. ike dwight eisenhower’s eight years as president were about a lot more than i like ike buttons and interstate highways. from wikipedia: after his many wartime successes, general eisenhower returned to the united states a great hero. it would not be long before many supporters were pressuring him to run for public office. eisenhower was generally considered a political moderate, and it was not immediately clear which party he would choose to join. jet turbine powered toyota mr on ebay yup, it’s up on ebay now (closing in a day or so) with the following description: everybody needs one of these, cleaning out the garage, this little car is so much fun, it is thrust powered by ge t- turbines, has fuel tanks, power steering, power brakes, fire detection, fire suppression, roll over protection, self starting and quick. i have taken this car to the salt flats twice, the first time it wanted to fly @ mph, but after adding the spoilers and air dam it stayed solid thru mph with a lot more room to go. the google economy i’ve been talking about it a lot lately, most recently in a comment at libdev. in the old world, information companies could create value by limiting access to their content. most of us have so internalized this scarcity = value theory that we do little more than grumble about the new york times’ authwall or similar limitations to the free-flow and linking of information. jenny levine wrote recently about oclc/lj’s short-run (though not yet ended) experiment with authwalls. what’s a “blink” ? stealing from corante/copyfight: it’s a short, one-sentence blog post + a link, à la kottke remainders. [it’s] to share links to articles, resources, and websites of interest that do not necessarily require paragraphs of context or analysis. enjoy! solar backpacks & chargers solar charging backpacks: juice bags (news), voltaic solar backpack (news). and, solar ipod charger: solio (news, news). personalizing the preservation problem i went looking for an old file the other day. as it turns out, the file was from years ago, but that doesn’t seem so long ago now. anyway, i was amused to find how most of my images from that time were tiffs instead of jpegs. thankfully, tiffs are well supported now, but my old pagemaker files are largely useless to me. and while i was looking at these files from so long ago i found my really bad music from the day. is blogging career suicide? ken (i wish he had a blog to link to) pointed out bloggers need not apply in the chronicle of higher ed over the weekend. the story is to some a highly cautionary tale: a candidate’s blog is more accessible to the search committee than most forms of scholarly output. it can be hard to lay your hands on an obscure journal or book chapter, but the applicant’s blog comes up on any computer. the big switch other than a bit of head scratching after the announcement in june, i’ve been quiet about apple’s switch to intel processors. now, arstechnica‘s jon “hannibal” stokes has written some of the most intelligent material i’ve seen since. how’s it work? hannibal thinks apple’s relationship with ibm soured to the point where they refused to play the game. and apple is imagining a world of devices macs, ipods, and as yet unannounced portable, personal lifestyle devices. napster’s hard road napster — the legal, reincarnated music download site — essentially invented the concept of incumbent campus download services. they loudly{# } touted deals with schools “anxious” to stop the p p music sharing problem. trouble is, according to this story at the reg, it’s not working well. a survey at one client university paints a sad picture: not a single university of rochester student admitted to buying a song via napster during the fall semester. the high cost of metasearch for libraries i’ve been looking seriously at metasearch/federated search products for libraries recently. after a lot of reading and a few demos i’ve got some complaints. i’m surprised how vendors, even now, devote so much time demonstrating patron features that are neither used nor appreciated by any patrons without an mls. recent lessons (one, two, three) should have made it clear that libraries need to conform to patron expectations of how online resources should work. bstat features update: bstat has been updated. bstat is a hit and search term stats tracking plugin for wordpress. in addition to reporting lists of popular stories and popular search terms, it will report recent comments and a unique “pulse” graph showing the activity for a story or the entire blog over time. the documentation for the current release (b , as of july , ) explains the public functions and their use. i believe they reveal themselves in their names, so here’s a list of most of them: make my xb a low rider team pneumatik’s faq addresses the question “why do i need air suspension” simply: “because you wanna be cool!” and now, with pneumatik’s forthcoming kit, scion xb owners can be cool too. thing is, based on the photos it just doesn’t have the same effect on an xb as it does on, say, a caddy. braving home jake halpern’s braving home (also in softcover) easily took my interest. here’s how john moe described it for amazon.com: as a cub reporter at the new republic, jake halpern earned the unofficial job title of bad homes correspondent. braving home tells his stories of places where people really ought not live and the people who live there anyway. halpern traveled to such inadvisable destinations as a bed and breakfast at the foot of an active hawaiian volcano, a north carolina town trying to recover from being completely submerged, an indoor alaskan city, and an island in the gulf of mexico located directly in the cross hairs of numerous hurricanes. bstat beta release update: bstat has been updated. beta never went public. this is beta . changes this documentation supersedes any previous documentation. the bstat_pulse() function has been improved and now uses your css for appearance. call bstat_pulse_style() to add my default styles inline if you don’t want to modify your css. also, bstat_pulse() now has two switches to control what it displays. please take a look at the usage guide below for how to call this function now. libdev launched libdev launched today. from the welcome message there: libdev is a site for those interested in libraries and networked information. want to find a way to apply tags or social bookmarking to library content? interested in how wikipedia can serve libraries? want to find a better way to do patron loads or talk about what identity management means to libraries? looking for single sign-on solutions so patrons can move seamlessly from the campus portal to your opac without re-authenticating? idaho politics earlier this year the idaho legislature passed a bill recognizing the success of napoleon dynamite, a film about idaho life by idahoan native sons. legislature of the state of idaho first regular session – house concurrent resolution no. stating legislative findings and commending jared and jerusha hess and the city of preston for the production of the movie “napoleon dynamite.” be it resolved by the legislature of the state of idaho: the struggle to protect democracy in florida my dad, who’s called florida home for quite a while now, emailed me the following about goings on there: the big news here is the struggle to prevent volusia county adopting the the diebold touch screen ballot machines. they are bad news, because these diebold machines do not leave a paper trail and so a manual recount of a disputed election is impossible. the republican leaders of florida, who take pride in their deviousness, are trying to require the adoption of these machines under the guise of providing an accessible voting system for the handicapped, especially the visually impaired. happy birthday, popsicle npr’s food essayist bonny wolf reported yesterday on the th birthday of the popsicle{# } for weekend edition sunday{# } (listen in realaudio). like so many brilliant inventions, it happened by accident in . and through a century of change, it remains a consistent american icon, stick and all. it all started, apparently, with a forgotten bottle of soda pop with a stick in it and an unusually cold night. when is principality of sealand’s independence day? principality of sealand is a wwii-era gunnery platform — called roughs tower — in the north sea, outside britain’s pre- three nautical mile claim of sovereign waters. founded by roy and joan bates in , over time, roy wrote a constitution and named himself and joan as prince and princess. the wikipedia article on sealand tells the story of the world’s smallest micronation about as well and evenly as might be possible, but sean hastings’ website offers a more gripping tale. cannon aerial tramway it’s hot in new hampshire, but on top of cannon mountain, feet about sea level, it’s a little cooler. it’s an easy enough hike, but the aerial tram will save you the sweat. the current tram was built in and replaced the tram. the foot climb from the base takes a mile of cable each way, and the two cars make a trip every fifteen minutes. google maps rock, the google maps api rocks more we don’t need to hack google maps anymore. now that google has released a public maps api, we can make more reliable map-dependent apps (which will now have better browser compatibility, thank you). within a few minutes of signing up for a maps api key i had put together the following of the nevada test site tour. yeah, click the satellite button, scroll, zoom… it’s real. the api is all javascript, but i use a bit of php to iterate through an array of points and generate the code that puts the lines and pins on the map. photron makes my favorite video camera photron’s apx-rs video camera{#kingofhighspeedvideo} can capture , frames per second at top speed, and it can get megapixel+ resolution at , frames per second. it’s one of a dozen or so cameras in photron‘s lineup that can shoot very, very fast video. how fast is a thousand frames a second? how fast is several thousand frames a second? numbers alone do a bad job of telling that story. that’s why they did up this set of sample vids… color picking i needed to pick some colors for a new website recently. i’m color blind, so that complicates things. thing is, color relationships can be defined mathematically and “good” or “bad” color combos can be selected by a formula, so it possible to pick colors that go together without actually being able to see them. i’ve done this color math manually for years, but i went looking for a piece of software to make it easier. wordpress’ is_x() function an entry at the wordpress support forums{# } gave me the list i needed. how do they work? “you can use [these] in a conditional to display certain stuff only on [certain] page[s], or to omit certain stuff on [those] page[s].” here’s the list: is_ () is_archive() is_author() is_category() is_date() is_day() is_feed() is_home() is_month() is_new_day() is_page() is_search() is_single() is_time() is_year() so there you go. freight elevator quartet jazzmusique (rss, stream) treated me to freight elevator quartet‘s so fragile (from their becoming transparent album) not long ago and i liked it enough to take a note to look them up later. the band released five albums between and , but seems to have disappeared since. their site is still alive, and most entertainingly, has fan remixes of svengali (also from becoming transparent) available for download. my favorite is the version by absinthe & shiftless. alcohol knowledge test i just love tests (previously: psychotic, leadership style in movies and famous people in history, and eccentric or autistic), so i was quick to try myself at this one when al emailed me. it’s about alcohol, and like most tests, it’s not about getting the answer right, but giving the answer that the test writer wants. so it’s flawed, but it’s a bit of fun. here are my results: score: bacardi sending sms messages my friend will was in meetings all day friday, and there are few better times to have sms messaging than in meetings. thing is, i didn’t want to type on my phone’s numeric keypad when i had my computer in front of me, so i went looking for the details of this old hint that describes how to send sms messages with ichat (would also work with any aim client). regex reference regular expressions are a pain. jan goyvaerts’ regex reference helps. in a related tip, the following will eliminate any non-numeric components in a string: ereg_replace(“[^ - ]”, “”, $string) . i guess i’ll have to admit that i’d not used the exclusion operator before (the carrot immediately following a square bracket). now i know. geotagging gets a new meaning who doesn’t love tagging? no, tagging as in annotating, not graffiti. anyway, rixome is the latest among a bunch of plans/projects to enable tagging of geographic spaces/real-life environments. the good people at we make money not art had this in their post: rixome is a network and a tool that turns mobile screens into windows that show the virtual and public dimensions of our point of view. a walker (a rixome user) can see on his/her mobile phone/pda/laptop screen the virtual interventions that have been added to the location where s/he now stands. art deco hair daniela turudich knows vintage fashion. her books include not only hair, but how to recreate a vintage wedding, vintage recipes and candy making, and beauty secrets of history’s most notorious courtesans. here’s the description from art deco hair: art deco has long been associated with uncompromising style and sophistication, and this guide to recreating the sassy, controversial styles of the ’ s and ’ s offers a glimpse back at the hairstyles of this era. oooms design ist sehr gut guido ooms has some pretty neat ideas. engadget got high on his anti gravity machine (you must watch the video), but there’s a lot more to see. i wish i could link to examples of his furniture, bottle holders, personal transportation devices, or dohickies, but his flash-based site won’t let me. his glassbulbs are pictured here, but go visit the oooms site and click on the “products” link to see more. how to measure the tallest building zach likes tall buildings. perhaps it relates to his superhero obsession (leap giant buildings in a single bound and all), but it’s undeniable that he likes them. here, he gushes about the details of what makes a tall building and how it is measured. judging can be to the top of the highest occupied floor, top of the roof, architectural top (including spires), and top of mast or antenna. of course, the building must be freestanding and habitable too. culture of entertainment i don’t remember how i found this tip to baitcar.com‘s collection of police videos of car thefts. they’re good for a few laughs, but things like this — and about half of the programming on spike{# } — make me wonder how far we are from from the worlds depicted in running man and so many other stories. eh, at least we’ve got bravo. that’s some good tv. least wanted i’m entirely captivated by mark michaelson‘s collection of mug shots on flickr. it’s titled “least wanted” and he notes with little fanfare that they’re “nobody famous.” some of the photos contain little histories, like this set from the s and s that includes conviction details — “ days w. h.” for “selling obscene literature.” another image shows rapid aging over a three year period starting in . it’s part of a small collection of recidivist women of the s. overheard in the library “i want all the books that i’m interested in on one shelf.” making zip files on mac os x everybody else may know this, but macos x includes the command-line utility to make windows-compatible zip files. it works a lot like tar, but without needing any switches. > zip {target file} {source files} big brother gets more eyes engadget yesterday had a story about the mobile plate hunter , a device that mounts on police cars and scans to license plates an hour. more details are in the wired news story, where la county police commander sid heal notes that the system is hands-off: “it doesn’t require the [officer] to do anything.” the plates are automatically checked against a database of stole cars, and the patrolling officer when the system finds a match. switching hosting providers i’ll be switching hosting providers this week. at some point i’ll have to turn off the comments here so that i can synchronize the database and prevent loss of comments as the dns changes propagate. **update: ** the switch seems to have gone well and the dns changes have propagated to the networks i’m using. comments are on again. that’s the way it’s supposed to work. bstat beta release update: bstat has been updated. i’ve finally added a clean admin interface to my bstat wordpress stats tracking plugin and cleaned up the code for release as a public beta. quick start installation download and unzip bstat.zip place bstat.php in you wp-content/plugins directory place spacer.gif in your wp-content directory log in to your wordpress admin panel and activate the plugin, then visit the new bstat submenu of the options tab. what makes ohio red it’s a story that won’t die, and yet it can’t get any attention. since november rd, reasonable people have been wondering what happened. on election night, exit polls predicted a million vote win for kerry, but the official election results declared bush the winner by million votes. we’re all suspicious of polls, but an million vote discrepancy is big and exit polls are considered the most accurate of all. north-country drive-ins the fairlee drive-in theatre is open with double features on weekends details: route , fairlee vt (one mile north of town) - - notes from driveinmovie.com: the usual hotel/motel concept of in-room movies is cable tv, this is one of only two drive-ins in america that have a motel on the premises with a view of a drive-in movie. all rooms have a picture window and speaker, allowing motel guests to watch the movies. squirrel decanter and other dead animal art the strange folks over at custom creature taxidermy arts have come out with a squirrel liquor decanter that’s making the rounds. jon said simply “words cannot describe.” but the good folks at gizmodo assure us that “anyone who sees you sucking on the desiccated neck of an ex-squirrel will know you are a man of class and style.” other items in their novelty selection include flying squirrels and punk rock squirrels. american reporter’s nagasaki story emerges after years of censorship george weller won a pulitzer prize, a polk award, and was named a neimann fellow during his fifty-some-odd year career during which he covered much of europe and asia for the new york times and chicago daily news. weller died in at age , leaving behind a body of work that tells much of the th century’s events. his story about an appendectomy performed by navy pharmacist’s mate wheeler lipes in a submarine feet below pacific waters amid the concussive blasts of depth charges is legendary. the difference between progressive and conservative bloggers david rothman points to a daily kos story that points to a mydd story titled “aristocratic right wing blogosphere stagnating.” what’s the point? of the top political blogs, more than half are ‘liberal,’ and more importantly, they support community involvement — including basic features like comments — that the conservative blogs shun. of the five most trafficked conservative blogs (over , page views per week), only one […] even allows comments… google print: reports from michigan & oxford i’m listening and watching along with the educause online presentation from the universities of michigan and oxford and their participation in google print. presenters: john p. wilkin associate university librarian library information technology and technical and access services university of michigan   reginald carr director of university library services and bodley’s librarian university of oxford google print is old news by now, but it’s interesting to get their reports on it. geolocating the news last week i got excited about the as-yet unreleased geolocation api for bbc backstage. now larry d. larsen of the poynter institute is excited too. in a post titled the future of news (… hint: gps){# &aid= } he talks about putting news in geographic context with geolocation tags. eventually, clicking an article in a news/google map hybrid might zoom in to a d model of the area where an automatic pop-up starts playing a slideshow with pictures of the scene or streaming video along with the text news content. blogger’s legal guide copyfight is pointing to the eff‘s new legal guide for bloggers. most of the content is about liability, but it also addresses issues of access and privilege that are generally granted to journalists, election law, and labor law. from the introduction: whether you’re a newly minted blogger or a relative old-timer, you’ve been seeing more and more stories pop up every day about bloggers getting in trouble for what they post. when you don’t have a gps… geolocation by gps my be the most straightforward approach, but we mustn’t forget the other ways to get lat/lon coordinates. all current cell phones support agps positioning to comply with federal e- mandates, but not all phones make it easy for the user to get that information out of them. still, some do and gps-enabled moblogging is becoming common in asia and europe, and there’s at least a public proof of concept going in the us. the mystifying aroma of rot i love libraries, and i love books, but there the needs of our students and limitations of our budgets have no room for misplaced romantic attachments. that’s why i’ve found myself paraphrasing something from ibiblio’s paul jones (via teleread): that smell of an old book, that smell of old libraries? that’s the smell of the books rotting. we must remember that libraries catalog and share information and knowledge, not books. pinball wizard gets his due the laconia citizen{#/ /citizen / /- /citizen} reported today that ron mowry’s year quest for recognition as the real pinball wizard of has finally achieved some success. the twin galaxies official video game & pinball book of world records will credit mowry’s hour minute marathon pinball session as a record. mowry set his record at a sandwich shop in hallandale beach, florida, but he was raised in plymouth, nh, where he now works for the university. bstat pulse i imported the content of my old referrer tracking database as hits in my new bstat stats datatabase so i could have more data to work with. i mixed this with a fairly simple graphing routine and now we can see the “pulse” of the whole site and each story. take a look at the bottom of the main page and between the body and comments in the single story pages to see what i mean. bstat progress i’ve been hard at work on my bstat stats tracking plugin for wordpress and you can see the results in the sidebar and in the story views here. the work has been made especially easy because of the great documentation, including writing a plugin, plugin api, and related pages at the wordpress codex. i’m testing the plugin with a limited group now (thank you sandee and cliff). but with a few more tweaks and a little more time to prove itself, i think it will be ready for an open beta. professionals don’t use ofoto or wal mart photo services at least that’s the only thing a person can conclude from the stories at copyfight earlier this week. this post reports on two stories where the photo services concluded that the photos to be printed were too good to have come from an average customer. upon trying to order prints of her child, one ofoto user found the following: your order has been cancelled because it appears your order contains one of the following… . bbc backstage is gonna rock (once they release the apis) the apis aren’t yet out, but the bbc has already won me over with their backstage bbc concept. of course, i’m a fan of anything with an api, but the real deal here is that it appears they’re planning on releasing a “query by geo-location data” api — and i’m all a gaga about about geolocation. i’ll definitely be looking to see what takes shape across the pond. damn pngs in internet explorer i don’t know why ie has never displayed my transparent pngs correctly, but i know now that i’m not the only one with this complaint. bob osola (name?) shares my frustration, and better, he sat down and coded a solution, shared the code, and posted a wonderfully informative guide to the problem. not sure if your browser can display transparent pngs properly? follow that link for examples. the google economy vs. libraries roger over at electric forest is making some arguments about the value of open access to information. hopefully he’ll forgive me for my edit of his comment (though readers check the original to make sure i preserved the original meaning): …keep the [information] under heavy protection and you will find that people ignore this sheltered content in favor of the sources that embrace the web and make everything accessible… [open and accessible resources] will become the influential authorities, not because they are more trustworthy, or more authoritative, or better written, but because they are more accessible. what? i’m not sure what to think about steve j’s wwdc announcement (video stream) of apple’s switch to x processors. coverage at macnn, mac rumors, ars technica, etc. i’m not sure, but it would be easier to take if i wasn’t the only one who saw conspiracy in it. does this relate to intel’s recent shoehorning of drm onto the cpu? it wasn’t long ago that i was praising apple for making devices that served the remix world that exists in the void between fair use and copyright infringement, but moves since then have concerned me. on the media does copyright issue i had just sat down to post a note about an interview with j.d. lasica in on the media (listen to mp ) this week when i found david rothman beat me to it. the interview was one of the better treatments of copyright issues that’s i’ve heard/seen in the (relatively-) popular media. here’s the summary from the otm site: for every move that media industries have taken to protect their copyrights, there has been an equal and opposite countermove by consumers. doggy and you: mark schutte’s dog powered scooter engadget has a link to mark schutte’s dog powered scooter. this catches my eye because my friend joe is always looking for ways to exercise his sled dogs in the summer. the developer, of course, is very serious about its befits and usefulness of this contraption. here’s the sales pitch: focus your dogs energy and enjoy the new sport of urban dog mushing. engadget has some complaints, but this looks like the best solution i’ve seen yet for running sled dogs in the summer. remixing reality: good or bad? we’ve all seen the ads they digitally insert on the field during football games and we’ve heard talk about inserting new product placements as old tv shows play in syndication. ernie miller has been thinking about this recently. last week he noted that folks are creating ipod-able, independent audio tours of museums. “…hack the gallery experience, […] remix moma!” commands artmobs, one of the groups producing these unauthorized audio tours. ohara fireflies i don’t consider myself a japonophile, but i do find myself reading mainichi daily news each day, and when they put up a picture like this, of fireflies near the yamada river in ohara, (chiba prefecture) i can’t help but notice. teleread spends morning on portable computing stories …well, not entirely, but i couldn’t help but read the posts on the pepperpad and history of the newton. i’m a fan of computing devices that don’t fit the mold, so i eat up stuff like this. i noted the pepper pad previously, and written a few posts about the newton and ultra-portable computing. update: engadget is getting in on the excitement too. they’re pointing to this osopinion article that’s at the center of it all. wikipedia and libraries wikipedia seems to get mixed reviews in the academic world, but i don’t fully understand why. there are those that complain that they can’t trust the untamed masses with such an important task as writing and editing an encyclopedia, then there are others that say you can’t trust the experts with it either. for my part, i’ve come to love wikipedia, despite having access to eb and other, more traditional sources. disobey gary wolf wrote in the june issue of wired about how smart mobs in new york’s world trade center outbrained the “authorities” and enjoyed higher survival rates because of it. wolf is talking about the nist report on occupant behavior, egress, and emergency communications (warning: pdfs). there’s also this executive summary and this looks like a mind numbing powerpoint presentation (also pdf). so, what about it? for nearly four years – steadily, seriously, and with the unsentimental rigor for which we love them – civil engineers have been studying the destruction of the world trade center towers, sifting the tragedy for its lessons. japanese government employees extremely troubled by summer casual dress code today is the first day of summer, according to japan’s environmental ministry, and that means it’s time to take off the ties and suit jackets and put on “casual” clothes. the ministry has been leading a charge to reduce energy consumption and ease global warming by asking all government employees to leave their neckties at home so they feel cooler with less air conditioning. but despite endorsements from prime minister junichiro koizumi it might not be going as well as planned. take a picture, get hassled by the man alan wexelblat at copyfight pointed out this story that talks about increasing limits on public photography. if you’re standing on public property, you can shoot anything the naked eye can see, explains ken kobre, professor of photojournalism at san francisco state university and author of one of the seminal textbooks on the subject. …but that apparently doesn’t stop security guards, cops, and others from intimidating and sometimes arresting those who try it. theme change… theme change not yet complete, but looking good. it’s a widened version of clemens orth’s relaxation_ column, itself a derivitive of john wrana‘s two columned relaxation theme. i found it on the wordpress codex, and though it was among the first group i looked at, i dutifully clicked through to every other three-columned theme listed there. anyway, expect the banner to change, and i’m working on how i want to handle the width on smaller monitors (where “smaller” actually equals anything narrower than px). bad movie, verboten subject? i’m embarrassed to be in the middle of fantasy mission force, a kung fu movie that demonstrates a brand of asian humor that i haven’t yet learned to appreciate. i’m watching it because i’m a sucker for jackie chan flicks and netflix makes it too easy to queue up bad movies. david chute wrote the amazon editorial review: jackie chan makes a brief guest appearance in this surreally goofy action comedy, a high-spirited shambles from that hovers awkwardly somewhere between monty python and the three stooges. global threats, as seen through eyes of movie producers and insurers jonathan crowe points out this risks in global filmmaking map by aon, the entertainment industry insurance company. go view the pdf or a full-size png{# &size=o} for all the details. lunch at burdick’s treated mom to lunch at l.a. burdick’s in walpole today. the food at burdick’s is always remarkable, but this time i got a decent photo of it. i’m calling the plate in front a real tuna salad. yes, those are strips of medium-rare tuna, but it’s the pickled onions that delighted me. in the middle is my rare steak with a dollop of stilton butter. for desert, we enjoyed a frappes and shared a piece of hazelnut-orange cake while thunder and large hailstones menaced the street outside. wordpress stats goodness work on my bstats plugin continues. i’ve added recently commented posts tracking, begun work on a usage graph, as requested by richard akerman, and put together an interesting way to track usage of the google ads. i’m using the google ads to figure out how to best use them on another project later. i think they look a little too commercial here too. i’ve done nothing yet to created a list of related posts, and i’m still researching how i want to do referrer tracking. of wordpress tags, keywords, xml-rpc, and the movabletype api wordpress’s xml-rpc support looks pretty good. heck, it supports a half dozen apis and works well with ecto … except for tag support, which is my only complaint with it so far. the movable type api supports a “keywords” field that i’m thinking can be hijacked as a “tags” field instead, but while ecto sends the goods — i can see them in the xml-rpc data that gets sent out, wordpress seems to ignore them upon receipt. bstats plugin i’m more than surprised that there’s no (decent) stats plugin for wordpress, but that hasn’t stopped me from writing me own. it’s called “bstats,” and i’ll release a beta soon. in the meantime. the “today’s most popular” list comes directly from this new plugin. one step forward… i thought i was real smart when i modified the tags plugin to support integration with technorati. the code was simple, just look in the tags.php plugin file for the foreach statements that run through the tags names and turn them into links on the page and change the $tags[] = statement to look something like this: $tags[] = “tag_name).”\“ target=\”$target\“ rel=\”tag\“ title=\”more “.$row->tag_name.” at {site name}\“ >”.$row->tag_name.“ tag_name.”\“ target=\”$target\“ rel=\”tag\“ title=\”find “. nuclear test site tour the above image is my followup to my nevada test site tour post from last month and comes courtesy of adam schneider’s very useful gps visualizer (you really need to see it full-sized{# &size=o}, though). i still don’t have a cable to connect the ancient magellan gps i used to a computer, so i manually entered the waypoints i marked into the form and selected a few options, and viola. …and then you realize you wasted your life i think i’ve been avoiding commenting on this issue for weeks because it hits so close to home. first i read it in biblioacid, then jenny levine picked it up, then richard ackerman picked it up at the science library pad: library catalogs are broken, and there’s no amount of adding pictures or fiddling with colors that will fix them. i nibbled at the edges of this in my iug conference presentation, but i didn’t say it as well or as clearly as roy tennant did in his widely quoted april library journal column: vonage ceo interview makes me feel old engadget’s interview with jeffrey citron, chairman and ceo of vonage gives an interesting peak into the world of the baby bells, through the eyes of an upstart. citron dishes about the competition, stomping at&t, working deals with the bells to make services work, and a possible palm version of their softphone. most interestingly is his notions about what their customers want and expect. …more and more people are deciding that they don’t even want a land line in the house…? blog software switched i’m almost ready to call the first stage of my wordpress migration done, except it looks like the comment submission forms aren’t working. while i’m working on that, please note the new feed urls: rss . x, rss . , and atom. update: found a reference to the comment bug on the wp support site and in their bug tracking system. i didn’t find the answer there, though, so this is still a problem. switching blog software… i think i’ve finally decided to go to wordpress after all. i tried doing it too quickly last time and it almost worked, but i switched back when i realized i might need more than minutes to figure out how to use wordpress in production. since then i’ve found a set of plugins that do most of what i want, but it looks like i’m going to have to put together a stats tracking plugin of my own. crime and privacy on google maps annalee newitz last week posted a column on people’s fear of privacy loss as a result of google maps. her point: so while all these people are wringing their hands over how simple it is for strangers to discover the color of their roof on google, we forget that we can already be tracked everywhere we go using cell phones and the rfid chips in wal-mart backpacks. i honestly didn’t know people were up in arms about the maps and satellite images (which have been available elsewhere for years), and, like annalee, i’m much more concerned about the proliferation of real-time tracking systems like cameras, rfid tags in our driver’s licenses and consumer products, and other sensor technologies. eating my way through san francisco san francisco is a great city for a conference. it’s also a pretty good place to get lunch. the following is poorly written and incomplete. well, at least it’s something. sunday i was a little surprised to find johnny rockets on jefferson st. serving breakfast, but they did a fine sausage, egg, and cheese sandwich all the same. after visiting alcatraz, i had a delectable rueben at the buena vista on the corner of beech and hyde, where they’re known for their irish coffee. wasted minutes i can now say with the authority of experience that star wars episode iii sucked. update: zach’s right, my opinion of the original trilogy has fallen over time. but i stand by the statement that episode iii is worse than it should be. the real reason for the update, however, is to note a couple pictures of things seen and done while waiting in line: matt, with an oversized jug of generic cola and this oversized scorpion bowl. un food survey the proceeding was forwarded to me by my dad, who included a note suggesting that jokes may embody the only real truths we can know. a worldwide survey was conducted by the un. the only question asked was: would you please give your honest opinion about solutions to the food shortage in the rest of the world? though translated into appropriate local languages and delivered using local personnel, the survey was a huge failure. cool stuff made easy (rss, opengl d graphics, screensaver app) i have an appropriate fondness for engadget‘s how-to features, like today’s “make a customized rss screensaver in tiger.” macos x . tiger comes with a pretty decent rss screensaver (don’t miss the movie), which can be set to display feeds from any source that safari can read and bookmark. and if that’s all you want out of life, well then you won’t have any reason to leave your couch/chair/bathtub or wherever you use your mac. geolocating everything i’ve been excited about geolocating photos, blog posts, etc for a while. so this past month or so has been quite exciting. most recently, gps photo linker has been updated with mac os x . specific features: with spotlight in mac os x . , you can instantly search for the city, state and country information automatically saved by gpsphotolinker. additionally, mac os x . does support the gps metadata tags in photos. about that bookless ut austin library there’s a lot of talk about the new york times story about ut austin’s undergrad library throwing out its books. problem is, i don’t think it’s as exciting as people are making it out to be. first, the undergraduate library is one of libraries on campus and the real issue was space, not books. when priorities change, but you don’t have enough money to break ground on new buildings, you’ve got to re-use the old ones. flickr api the flickr api rocks. it helps that the developers are really excited about web services (pdfs converted from their original ppts). anyway, there are code libraries available for php , javascript and others. michael madrid’s oberkampf is a dead simple php library that looks easy enough for non-coders to use. and i found myself quite satisfied with the rest request format and the xml to array parser by eric rosebrock. do i want a lifedrive? after months of no news or no good news, and just as i’m about to knock palm news site src off my feeder, palmone starts leaking details of their lifedrive “mediacentric handheld.” then somebody leaked the whole datasheet, and src was there with the deets. engadget was on the story the next day, and summarized as follows: it’s . x . x . inches in size, weighs . ounces, runs on palm os garnet . markoff, i wish i could trust thee trouble: john markoff has been doing tech stories for the new york times since the beginning of days, so it’s likely he’s written something you’ve read and enjoyed. but he’s also written a number of wrong or counterfactual stories that he makes little or no apology for. at the core of the claims against him is his coverage of kevin mitnick, the accused cyber-criminal who was held for over four years — including eight months in solitary — without a bail or sentencing hearing. google’s war on hierarchy, alert the librarians via ernie miller i saw a link to john hiller‘s story about google’s war on hierarchy, and the death of hierarchical folders. googlization is a concept libraries have been strugling with for a while. and while it’s hard to say wether the change is good or bad, i can say that failure to change makes libraries irrelevant among patrons who’ve grown accustomed to google and other exemplary services. so john’s story caught my eye and had my full attention for a while. sunrise on mount monadnock i’ve loaded some more of my old photography, inlcuding this shot of sunrise on mount monadnock (info) from the spring of or . josh stands on the outcrop in the foreground. i held the exposure open longer than appropriate for true brightness and color, but i like the effect. other photos: another sunrise on mt. monadnock, photos from around harrisville, panoramas of the nevada desert and london, a rose, and a set of stairs. library portal integration i’ve been back at work less than a week now, and i’m already behind. i’ve finally posted the handout and slides (as a quicktime movie, pdf here) from our iug presentation. i’ll submit them to iug for their archive and add them to the plymouth state university library portal integration page in an update soon. as usual, presentation slides don’t stand on their own, but they should be helpful reminders of what was said. kwajalein atoll kwajalein atoll is a part of the republic of the marshall islands, lost in the pacific ocean (maptech makes it easier to find) along with more recognizable locations like bikini and enewetak atolls. the military presence is far from gone, however, as kwajalein is home to reagan test site, where the us army tests the last remnants of reagan‘s infamous star wars program. now reincarnated as george w. bush‘s missile defense, it survives despite its flaws and an unbroken string of failed tests. hilary rosen: sock puppet we’re all talking about hilary rosen‘s apparent about face, apparently pro-customer, anti-drm essay now (props to david rothman for taking the high road on this). in an update to his monday post, however, ernie miller notes that the riaa and hilary rosen’s history is that of blanket opposition to mp players (and fair use) in general. if the riaa had its way, there wouldn’t be any portable mp players. the only portable players you would be able to buy would play only drm restricted tunes. delicious, refreshing, old liquor bottles so grenadine isn’t officially a liquor, but it gets kept behind the bar and this one has a great label. the collection comes from the estate of a friend’s mother, who appears to have had a taste for old martini culture (not pictured are several bottles of vermouth). there’s more in my flickr photoblog. pointless, crude, badly drawn, unintelligent, offensive it’s a book review. it goes like this: pointless, crude, badly drawn, unintelligent, offensive. life-threateningly funny. buy this. another amazon uk customer wrote: funnier than the real people with tourettes the book is modern toss, by jon link and mick bunnage. cartoons and more info are online. when we can’t all just get along (the failure of logical centrism) i love the following quote from copyfight: frank field, responding to james boyle’s much–discussed ft column, deconstructing stupidity: “flat-earthers are harmless — until they start forcing you to write the specifications for your gps system in accordance with their views. then, you’re screwed.” and boyle’s column is pretty good too. former riaa head hates drm? today is sort of an anti-drm day here, so it was some pleasure that i just saw ernie miller’s post at copyfight regarding hilary rosen, the former head of the riaa. she’s complaining about the drm apple uses with its music store and ipod. she says: i spent years in the music business the last several of which were all about pushing and prodding the painful development of legitimate on-line music. give orphaned works a home david rothman at teleread is alerting us to something we should have done a long time ago, but, hey look, a caterpillar…. really, the us copyright office and library of congress are accepting comments to comments on the issue of “orphan works.” but, the deadline is today at pm est today! james boyle, addressed some of these questions in a column in the financial times recently: thomas macaulay told us copyright law is a tax on readers for the benefit of writers, a tax that shouldn’t last a day longer than necessary. broadcast flag smackdown the only thing that could have made friday’s news sweeter would be to have received the dc circuit court of appeals’ deciscion against the broadcast flag from the us supreme court instead. still, it’s enough to get most of the ip-aware blogsphere excited. to wit: here, here, here, and everywhere else. copyfight‘s synopsis was the best: the american library association, public knowledge, eff, et al. just won our joint challenge to the fcc’s ability to regulate consumer electronic devices that receive digital television signals, - at the d. t-mobile does coverage maps, verizon wireless baffled i’d like to make more of this, but it’s old news. we’re all sick of the “can you hear me now” ads, but that doesn’t stop verizon from talking up their network testing efforts. but when it comes to network performance, the ceo starts complaining about customers who expect their phones to work at home. what? yes. engadget reports: in an interview with the san francisco chronicle he asks, “why in the world would you think your (cell) phone would work in your house? time to change… time to rearrange… time to restore from backup… i’ve given up on my poorly timed and completely unplanned try at switching to wordpress. i started out thinking i’d experiment with it, then things got out of hand. factors contributing to my interest in wordpress: ecto via allforces.com a little compare and contrast with pmachine livesearch better rss/atom output flickr gallery a mostly functional pmachine importer a damn easy install a bunch of plugins factors that made me give it up for the short-term: what are you doing to shape the future of libraries? jenny levine recently posted a note about opacs and xml and maps wherein she makes two points: first, mike copley at north shore libraries in new zealand has been doing some exciting stuff to help patrons find books (go ahead, go there and click a “view map” link), then expands her post to address the struggles that folks like mike face to do some of these things. see, mike’s library system is converting to innovative (iii) soon, so the work he’s done is mostly for naught, as it’s very difficult to identify item locations with the detail he’s getting now. xml server applications well, it’s done. the [handout][ ] and [slides][ ] as presented are posted here, and i’ll add them to our [portal integration][ ] page (yeah, they’re sort of connected) when i return to [plymouth][ ]. the slides don’t stand on their own, but for those that were there, they should be helpful reminders of what was said what links we looked at. one of the attendees took me to task for recommending marc xml as the replacement for iii’s proprietary schema, saying that it fails to leverage the full value of xml. iii introduces “web works” where did this come from? innovative calls it “web works,” and describes them as “html-based interfaces for light-weight system access.” here’s the program description: webworks are new products that offer focused functionality for staff through a lightweight browser-based client. one web works client handles selection list processing while a cataloging client provides the ability to add and edit records. the session was hugely crowded, and i had to run off before i got to ask my question: “how do these fit in with any web services strategy iii may be developing? citing library collections on the web the example below uses a javascript to display bibliographic details about an item in plymouth state university’s library catalog. now imagine this link included information on the availability of the item, and a button to request or reserve it…. this post is intended to demonstrate how library catalog data can be used in places far from the catalog, perhaps in blackboard/webct, blogs, or elsewhere. i’m at the innovative users group conference, where i’ll use this post in my presentation on xml server, session l . iug : ldap is not single sign-on at innovative users group conference now. the most exciting thing today was using ldap authentication by john culshaw of university of colorado at boulder, and richard paladino of innovative interfaces. despite the title, the raison d’etre of the presentation was single sign-on, and the unstated hurdle was identity management. academic it departments are struggling with these two huge issues, but libraries often have even more limited it resources and are getting little help from campus it departments. prisoners of age at alcatraz found ron levine’s prisoners of age exhibit at alcatraz today. sadly, the website doesn’t appear give the prisoner’s stories, and, though the photos are well done, it’s the stories that hold our attention. leaving las vegas morning’s cold light shines harshly even on the strip, but this saturday morning on fremont street looks especially forlorn. i’ll be on a plane to san francisco for my conference in a few hours. golden gate hotel and casino according to the history printed on their diner placemats, the golden gate has been standing at the corner of fremont and main streets for years. kris had some good fun eating unhealthy quantities of cent shrimp cocktail at the gate. [update:] the stay wasn’t bad, in fact, i enjoyed the best sleep i’ve had all week. some were out trying to save souls, but i found fried twinkies. fatburger and henderson, nv my trip to henderson was a bust. i’ll eventually make a story about what i’d planned to do, but the only thing that worked out was a visit to fatburger in the sunset station casino. along the way i snapped this bad panorama of the vegas strip. the point here was to show the sprawl on what some are calling the city’s centennial. the shot goes better with the story i wanted to tell, but it fails even there. nevada test site tour toured the nevada test site today. no cameras allowed, but i did take along a gps and marked points of interest along the way. i’ll have to upload the track and landmarks when i get home, but google sightseeing has some interesting nevada destinations, including one for the test site area. but satellite photos can do little to show the human scale of things like the , foot wide sedan crater. waiting in long beach long beach airport is a small affair, seemingly more fitting for dubuque iowa than the south los angeles sprawl. gates one through three are in a pre-manufactured temporary structure that’s obviously been in use for some time, but the food from the one vendor is better than in boston and the queen mary spa offers massages hidden behind a partition in the corner. a five minute of scalp rub runs $ . beatnikside’s vegas photo gallery i can’t help but like beatnickside‘s las vegas flickr photo set. it’s one of the most photographed of cities, but these photos are fresher than that. sometimes enteraining, sometimes informing, the shots of vegas’s glitz and glamour show special attention to detail. this week is vegas week at maisonbisson, since i’m out here before heading to san francisco to present at iug . i have an inexplicable fondness for vegas. smart high efficiency car coming to us i got excited a while ago when i learned that daimler chrysler was bringing their little smart car to canada, and i’m even more excited now that i learn that it’s coming to the us via zap, a company originally formed to make and sell electric cars (zap stands for zero air pollution). though powered by a normal internal combustion engine, its small size and low weight allow it up to miles a gallon — much better than the . the long tail of violence it’s been a few days of “long tail” talk here at maisonbisson. stories about popularity vs. the long tail and aesthetics of the short head are just below. here’s one on the violence of the long tail. john robb at global guerrillas wrote about the “dark side” of the long tail in a march post to his blog. it’s a touchy one, so i’d better explain robb’s point in his own words: national weather service adds xml and rss feeds the us national weather service just updated the soap/xml interface to their national digital forecast database (ndfd) and rss feeds from their storm prediction center. i feel a little happier about paying my taxes when i see government organizations like the weather service posting answers like this: the national weather service is striving to serve society’s needs for weather information by evolving its services from a text-based paradigm to one based on making nws information available quickly, efficiently, and in convenient and understandable forms. tetris shelves gizmodo posted a picture and a little text about bravespacedesign‘s tetris shelves. more from bravespacedesign can be seen in this post at land+living. they’re all the standard tetris shapes constructed of walnut and ash. my previous attempts at cabinet making were miserable failures, but considering these shelves cost seven large — yes, $ , — it’s more likely that i’ll be making my own than buying them. question, though, am i violating copyright/trademark/patent law if i built my own for personal use? liblime/koha ils a comment to a post on the shifted librarian pointed me to the liblime collection of open source library applications including the koha ils. they’ve got demos for the whole collection, including the opac. it’s the first i’d heard of liblime or koha ils, but it’s good stuff and i certainly hope to see more of it. the dark side of networked information according to the website, mitre is: a not-for-profit company that provides systems engineering, research and development, and information technology support to the government. it operates federally funded research and development centers for the department of defense, the federal aviation administration and the internal revenue service, with principal locations in bedford, massachusetts, and mclean, virginia. all of this is interesting because blogsofwar points out that they’ve been presenting information on a project titled blogint: weblogs as a source of intelligence (with slides in pdf format): “short head” vulgarity and prurience chris anderson at the long tail blog quotes a passage from david foster wallace’s a supposedly fun thing i’ll never do again: tv is not vulgar and prurient and dumb because the people who compose the audience are vulgar and dumb. television is the way it is simply because people tend to be extremely similar in their vulgar and prurient and dumb interests and wildly different in their refined and aesthetic and noble interests. what is networked information? there’s data, then there’s information. information is meaningful and self explanatory, data need to be aggregated and analyzed before they become information. networks — ethernet and the internet — transmit data, but our web browsers and the back-end applications they connect to turn it into useful information. “networked information” is what results from building connections between multiple information sources. displaying an author’s biography inline with the library catalog holdings of books by that author is one example of how the value of information sources grows when they’re networked. credit where credit is due jenny levine’s mention of my work with innovative’s xml server wednesday drew a lot of attention, but there’s little online public discussion of innovative to give some of my comments context. innovative started started development on their xml server product quite a while ago (five years, yes?), before later standards like marc xml had any traction. they did it to create another very useful product, their airpac, a online catalog for mobile phones and handheld devices, and without any clear demand for xml server from customers. stanford library’s tech history collection i just discovered standford library’s collection of documents relating to the technology and culture in silicon valley and the development of the mac thanks to a link from gizmodo. gizmodo was excited about the <a href="http://library.stanford.edu/mac/primary/images/dayton .html” title="mice “wine tastings” “>mice “wine tastings” that apple did in its efforts to develop the first consumer mouse. elsewhere, however, i found this interesting little tidbit: reading it twenty years later, the most surprising thing about it is the amount of attention it gives to networking, and the degree to which the first macintosh was intended to be a kind of network computer. xml isn’t enough a lot of this is in my xml server presentation at the innovative users group conference in a couple weeks… jenny levine is an outspoken advocate for the use of rss in libraries. one example she cites is posting lists of new acquisitions to library websites. she estimates that folks in the libraries of her library system spend hours per year on that one activity, time that could be used elsewhere if automated by rss. new catagory: libraries & networked information thank or blame jenny levine of theshiftedlibrarian for this: i’ve just created a “libraries and networked information” category here. more to come. the long tail at maisonbisson content here at maisonbisson isn’t well focused, but a few stories have come out winners in the google sweepstakes of passing popular fancy. my story about a giant bear in alaska was one such winner, but i’m happy to see a few others are also getting read. my stories about stainless steel, the heat output of dell servers, and itunes vs. firewalls are obviously filling a need for technical information not readily available elsewhere. safari . supports for contenteditable wysiwyg melvin rivera reports on <a href="http://allforces.com/ / / /wysiwyg-comes-to-safari- /” title="safari . ’s support for contenteditable“>safari . ’s support for _contenteditable_. when decorum is entirely innapropriate it’s hard to find the words to introduce eric berndt‘s open letter to his nyu law school classmates. the nation said the following: justice antonin scalia got more than he bargained for when he accepted the nyu annual survey of american law’s invitation to engage students in a q&a session. randomly selected to attend the limited-seating and closed-to-the-press event, nyu law school student eric berndt asked scalia to explain his dissent in lawrence v. copyright and the internet david rothman at teleread linked to franklin pierce law center professor thomas g. field’s guide to copyright on the internet. field gives a clear overview of of the limits to copyright, the ways copyright applies to web sites and email, and the limited law on linking and framing web content. in his section on risks, he notes: copyright law precludes most uses of others’ works without explicit or implied permission. satelite imagery there appear to be two non-government-owned companies providing satelite imagery: space imaging and upstart digitalglobe (yeah, like they’re not both upstarts). digitalglobe is working hard to make friends with the media and regularly offers timely images of events, disasters, and wars to them. for the public, they offer some more scenic shots, like this one of the the boneyard at davis-monthan afb in tucson, arizona from august , . the boneyard serves as a holding place for out-of-rotation airplanes until their fate is decided; the dry, clear climate of tucson provides an ideal environment for the storage of aircraft, as they can sit indefinitely without rusting. focal plane shutter distortion henri lartigue’s photo of a race car shows one of the wonderful ways in which the camera records its own reality. spectators lean left while the speeding car tilts right all because of some facts about how his camera works. lartigue’s camera had a focal plane shutter, a two-part light curtain that slides to one side to expose the film while the second part follows a moment behind to again block the light. jeffrey veen gives presentation advice in seven steps to better presentations, jeffrey veen acknowledges the complaints against powerpoint, but explains that the real problem is “bad content delivered poorly.” his seven points have a lot more detail that what i’m quoting here: tell stories. show pictures. don’t apologize. ever. start strong. end strong too. stand. away from the podium. pause. my own opinion is that veen and tufte would agree more than they disagree. tips to flag designers (vexillographers?) the folks at the north american vexillological association get excited about flags. yeah, i had to look up vexillology too. anyway, they’ve got a page how-to about designing a flag, for “your organization, city, tribe, company, family, neighborhood, or even country!” their advice centers around these five rules of flag design: keep it simple use meaningful symbolism use - basic colors no lettering or seals be distinctive or be related each point is supported by examples illustrating both the “right” and “wrong” way to do it. cat and girl makes me laugh i can’t get enough of cat and girl and this one just hit my funny bone. thinking of comics, comic life makes it easy to lay out your digital photos and add comic-style speech balloons. looks interesting, though i’m not sure it’s worth $ bucks. geolocating everything i just added jonathan crowe’s the map room to my daily read. it was there that i learned that geourl is back, and that’s got me thinking about geocoding things again. i spoke of geolocating photos in a previous post, but my interest has broadened. i now want to geolocate my blog posts, i want lat and long recorded with my atm transactions, i want my emails and phone calls to have location information. urls i need to bookmark on my clie and phone google local for mobile devices may be the most useful thing yet. but then, i’ve been slow to get even the regular google search for mobile devices bookmarked. see, when the president does it, it’s different, somehow it’s a reasonable story: guy gets ipod, buddy puts a few favorite tracks on it, everybody jams happily because they can share their little bits of culture. in a way it’s an extension of the mixed tape so romanticized in high fidelity, but in another way — the riaa’s way — it’s probably a copyright violation. this is about the time you’d expect me to announce a new round of charges from the riaa, more claims of theft and lost profits due to the scourge of technology and hordes of uncaring, music copying punks. modern day opium craze in a story in the sacramento news and review, peter thompson writes about his drug use. at he tried making mead, but when that failed he continued to look elsewhere: i began to see the supermarket and drugstore as potential drug dealers. i drank bottles of cough syrup before i knew what dextromethorphan (dxm) was. i ate catnip and didn’t feel anything. i ate nutmeg and felt everything. there was no internet to guide me and nothing in the library about morning-glory seeds. apple finally unleashes tiger apple announced the availability of mac os x v .  tigertuesday and is now accepting pre-orders. the product is to be in stores on friday, april (beginning at pm?) and will sell for $ , or $ for the mac os x v .  tiger family pack, a five seat household license. amazon is offering tiger for $ , after rebate, though the rebate doesn’t appear to apply to the family pack. apple’s been selling family packs for a while, but it’s added some new family features to the os that surprised me. our underequipped military forces a story over at defensetech is reporting that four years after the september th attacks and during a time when us personnel are involved in armed action on the ground in arabic speaking states, the military still doesn’t have a plan to train their soldiers in the language. it seems the pentagon can spend bazilions on failed missile defense systems, but hasn’t the money or interest for language instruction. i’d say get the folks in green some ipods and in flight arabic, or the more extensive pimsleur quick & simple arabic (hey, the amazon reviews for it are positively glowing), but i’m thinking both lack important vocab for people who have to deal with car bombs regularly. most cmss suck i’ve been slowly struggling with the question of how to replace pmachine, my cms engine here. i haven’t really liked any of the alternatives that others i know are using (link link link link), though i’ve been hard pressed to identify exactly what my complaints are. among the points in making a better open source cms, jeffrey veen names a few of the most frustrating for me: hard-coding of site layout in the cms, mixing of content with site administration in the interface, and, sometimes, lax security. who doesn’t want a caboose? perhaps it’s the lasting effects of watching the station agent too many times, but i went looking for a place to buy a caboose. they’re big; as much as ′ long, ′ tall, and ′ feet wide. and they’re heavy, perhaps tons. but they can be moved on roads via big trucks and cranes, but then, they also move brick houses. caboose disappeared from the railroads in the s, after about years of service. molecular visualization in mac os x a while ago i went looking for alternatives to mdl chime on mac os x, as mdl is still choosing not to support os x. sure, you can run it in netscape .x in classic mode, but that’s getting increasingly frustrating. what’s great about the mac, however, is how many great solutions there are from small developers who take on the “big guys” and do it better. evidence: piotr rotkiewicz’s imol. declaring bankruptcy on old stories i often use the maisonbisson blog as a sort of annotated bookmark list, keeping track of the things that catch my interest for one reason or another, things that i’d like to return to or share. but i often get ahead of myself in identifying the things i’d like to look at further and never get around to posting an annotated link here. for those, i’ve been keeping a text file with urls that i’ve sometimes revisited and sometimes posted stories on, but the list is growing, and it’s becoming clear that i won’t ever get to around to posting stories for most of the urls there. does size matter? a while ago i asked a friend why short sentences were so pleasing to read and write. he had no answers, but agreed that brevity is its own reward. some (though i can find no reference to it) suggest that technological developments have changed and simplified sentence structure by allowing writers to write and revise freely, while typewriters and pens required forethought and concentration to avoid scribbling out unwanted, half-formed sentences. verizon wireless’ wardriving rig (can you hear me now?) it turns out that verizon (and all the other carriers, presumably) really do go around asking “can you hear me now?” the actual test conversation sounds different (possible source?) and the testing is automated, but there really are people out in the world doing real coverage testing. i guess i naively assumed that it was all theoretical and computer modeled, or something. anyway, mobiletracker rode around tampa, fl, with a verizon wireless test guy levy rippy back in february: of bricks and progress… this post is about a couple of things. first, it seems cory doctorow has issued dmca takedown notice to the folks at boringboring.org for their parody of doctorow’s boingboing. what nobody knew at the time is that gakker has also been on the scene, doing doctorow parodies, and all. which is where thing ™ comes in: this post about bricks highlights an ongoing concern of mine. what is the real difference between a long-existing thing with a variety of uses, some of them illegal, and the thing not yet developed with a variety of uses, some of them illegal? the riaa’s logic and ‘declining’ music sales blogger mark cuban listened politely to riaa chief mitch bainwol stumble into the logically fallacious argument that: it was obvious that illegal downloads were hurting music sales. it was obvious because the advent of file sharing coincided with a decrease in music sales. therefore a lead to b. (i’m quoting cuban, who’s parapharsing from <a href="http://www.ce.org/events/event_info/downloads/industry_leaders_react-ip.pdf” title="bainwol’s cea blather speech”>bainwol’s cea blather speech). but instead of arguing with bainwol’s logic — it’s too easy, and too many others are doing it — cuban is using it to prove the contrary. archiving realaudio streams on mac os x standard players for rtsp streams like those for realaudio don’t cache the files they download, meaning they require a net connection to operate. i found an ezboard forum message that identified hidownload, net transport, oep-oee and streamdown — windows-only applications that can download rtsp streams and save them to a playable file. but those trick ponies do nothing to help mac users. audiohijack has been around for years now, but it only captures the audio stream as it leaves realplayer and heads off to your mac’s audio output. gas prices (finally) affecting car sales? a mainichi daily times story announced today sales of energy-efficient japanese cars soar in u.s. toyota and nissan both saw % sales growth, with toyota’s prius sales jumping to % their numbers from a year ago. honda, which usually wears the energy efficiency leader’s hat, saw a nearly % increase in sales. ever prideful, mdn notes: in sharp contrast, the sales of new cars sold by general motors and other american automakers in march posted decreases from a year earlier. tator-tot pizza so my challenge is to prove that i can be both trite and serious in the same day. here, tom chows on tator-tot pizza with ranch dressing and chipotle chile tabasco sauce. it’s part of the tator-tot pizza set at flickr. there’s no good reason to make tator-tot pizza, but we had both, plus all the sauce, so what else is there to do. that’s trite, this is serious. serious saturday i’ve lost my way a bit and been posting a bunch of trite stories here lately about my kitchen and in my photoblog. i’m sorry. i have made a few attempts at serious discourse. if you look carefully you’ll see stories on grokster, rfid passports, a library conference, a chilling look at the death penalty in texas. looking a little further back, you’ll find new stories in the very serious copyrights & intellectual property and politics & controversy categories. can you eat it? food bets seem harmless, but they look funny. everybody likes the old “can’t eat four saltines in seconds” bet, and it’s likely that many of these foods would never get eaten except on a bet. then there’s the story of two guys who took a bet they could eat ramen noodles — only ramen noodles — for a month. it’s probably apocryphal, but they story ends with them getting scurvy and giving up. it’s friday! over at caravie: peace, nonviolence and conflict resolution i found the lies, lies, lies, lies, lies, lies, lies, lies, lies, lies, lies, lies, lies, lies, lies, lies,lies, lies, lies, lies, lies, lies, lies, lies music video. also at caravie i found a link to this ‘zine, with a selection of videos, like this one. it’s a perfectly enjoyable way to waste a friday afternoon. [update:] this is confusing. new us passports will serve as terrorist beacons i cannot say it any better than it was said in today’s issue of effector: the us state department is pushing for what may be the most misguided and dangerous travel “security” plan ever proposed: putting insecure radio-frequency identification (rfid) chips in all new us passports. these chips would broadcast your name, date of birth, nationality, unique passport number, and any other personal information contained in the passport to anyone with a compatible rfid reader. reporting late on grokster these things take time and can often be hard to read, so while we all wanted the high court to look at the entertainment industry lawyers and tell them to take a hike tuesday, we’ll have to wait until summer to know what actually went down. but there is one interesting thing so far… it was in nina totenberg’s wrap-up for npr that alerted me to this turn in the arguments: life of a kitchen blueskygirl alerted me to the life of a kitchen group at flickr in a comment on a photo of my remodeled kitchen. so, of course i joined and had to upload a pile of related pictures from my back-file. there’s some great stuff from a bunch of contributors up there, despite the trash i tossed in. in the photo above, sandee makes homefries for a brunch with our neighbors back in july . cheap lcds for in-car-computers a powerpage story alerted me to a couple of inexpensive touch-screen lcds: innovatek and lilliput. take this as an update to my story on carputers. that story, of course, connects with mobile carrier networking (with followup), and gps. kitchen it was done in quite a rush and there’s some touchup to do yet, but our kitchen is now more complete than it’s been in six years. late notes from october library conference i just re-discovered my notes from dartmouth biomedical libraries’ october conference for and found a number of things i wish i’d remembered earlier. academic libraries are facing declining use/circulation of traditional materials (books, print periodicals, fiche, etc). it’s not that students and faculty don’t care about libraries or learning, the problem is that libraries aren’t serving their patrons with the forms of information they need at the time and place they need it. considering the death penalty texas executes a lot of people. during the years through , texas executed inmates, making then governor georg w. bush the killingest governor in history. a march amnesty international report titled the death penalty in texas: lethal injustice notes that “public support for the death penalty in texas remains strong,” and a later news release states “texas is so proud of killing people that it issues press releases for the executions it carries out. choppin’ ice corey chops ice from my walkway on sunday afternoon. dinner went well, despite worries that our new kitchen wouldn’t be completed in time. i guess i’m a huge fan of pictures with particle action. here’s another, where will cuts it up with a circular saw. crunch: three more days there are at least two ways to appreciate easter: to some it’s the most important religious event of the year, while, to others — your hosts here at maisonbisson, for instance — it’s yet another good reason to gather friends and family ’round a table and celebrate good food, good wine, and all that makes us human. but there’s a problem: we dismantled our kitchen last week in anticipation of our new kitchen…which is taking longer to install than i expected. the risks of googling one’s self well, actually it was a , but the results are just as scary. there’s a fellow named gerald dewight casey on deathrow in texas and an asian language site has a picture of the bisson battlesuit. wifi my world i’m in hooksett today waiting for the my kitchen cabinets to be delivered. why hooksett? because ikea won’t deliver to warren and i’ve got in-laws in hooksett where ikea will deliver. i’ve just setup my old router and wireless base station here, so at least i don’t have to slum it without network. and that’s sort of what this great onion infographic is all about. take note of the point: “facilitates blogging while/about doing laundry. of life & death… i’m not sure i could say it any better than david rothman did when he went off topic over at teleread to make note of some important issues related to the terri schiavo matter. rothman points at the bigger issue, but doesn’t come out and say it: all life concludes with death; indeed, the leading cause of death is birth. i’m not being flippant, i mean this. life is filled with serious and difficult choices, including some related to the end of life. dis-intermediating pop culture via copyfight via deep links: fiona apple, that grammy award winning gal you remember from the criminal video, apparently put together a third album a couple years back only to have sony music shelve the thing. now that it’s gotten out, her fans are “demanding that sony release the album so they can pay for it.” which fred von lohmann describes as “a substantial noninfringing use of p p networks if i’ve ever seen one. sunshine week i’ve failed to live up to my potential this week. i’ve wasted a lot of time on stories about useless video cameras, home theater, whining about my kitchen remodeling, and lamenting some lost stories when i should have been paying attention to sxsw, etech, copyright issues, and sunshine week. please accept my johnny-come-lately mea culpa on all of that. sunshine week is intended to bring public attention to concerns about goverment secrecy. shuffleboard fridays joe, tami, sandee, and john throwing weights on the shuffleboard table friday night. extra: shufflboard rules at mastersgames, suffleboard rules at shuffleboard.co.uk. shuffleboard tables and tabletop shuffleboard accessories can also be found online. wish i was there: etech just as i was about to cut the future tense blog (from the public radio show of the same name) from my list, jon gordon steps up with a few good stories. of course, he had good material to start with. he’d been at the o’reilly emerging technology conference, and it looks like it was quite a show. many many has a couple notable stories about etech events, including wikipedia and the future of social computing and folksonomy, or how i learned to stop worrying and love the mess. your eff needs you a couple stories in the electronic frontier foundation‘s email newsletter need our attention and support. well, they all do, but here’s the most important: grokster: eff this week kicked off a new campaign to celebrate the technological diversity protected by the supreme court’s “betamax ruling,” which found that vendors cannot be held liable for contributory copyright infringement if their products are capable of significant noninfringing (legal) uses. eff will post information about a copying technology with substantial legal uses every weekday leading up to the march th supreme court hearing in mgm v. maisonbisson: the lost tapes…. i discovered recently that my content database is [missing a bunch of stories][ ] from the first weeks of . i tempered my feelings of loss with the knowledge that i couldn’t remember the title of more than one of the missing stories. while looking into a question about my out-of-date rss feed today, i discovered that it had clues to the content of twelve of my missing stories. they clearly weren’t that important (what is? small video cameras this fiddling with video has me looking for small cheap video cameras. security products has some, but pine computer has them cheaper. better yet, they’ve got a ca sub-mini video camera with interchangable lenses for $ . the standard mm lens has only a degree view angle, but an available (+ $ ) . mm lens should result in a much more useful degree view. the cameras all have composite ntsc outputs, but a usb video converter make them “digital. home theater there are bigger problems in the world than my home theater, but that’s not what this entry is about. i’ll get back to political ranting in a while, but for now — now that i have <a href=”/post/ ” title="a cheap inexpensive projector”>a cheap inexpensive projector — i’m interested in figuring out how to play videos from my computer. some people don’t need to ask why, but for those who do, let me offer this: most the video i create is better seen on the small screen, but fair-use dvd rips and content downloaded from the internet film archive. liability & license it turns out that the quicken website is full of legal tips and advice. what caught my eye was a description of implied warranties. implied warranties don’t come from anything a seller says or does. they arise automatically when a product is sold. under the uniform commercial code, there are two kinds of implied warranties: that the product is fit for its ordinary use, and that the product is fit for any special use the seller knows about. loss i discovered today that my content database is missing about entries from the first weeks of . the feeling of loss is pretty thick, but i get these feelings pretty easily — hey, don’t pick on me. of the stories, i can only remember the content of one of them. i think the story was titled “web apps rocked ” or something like that and was basically all about the goodness of xmlhttprequest. too exhausted, busy to blog i’ve got to tear down the last cabinet, get all the junk to the dump, clean, spot-sand and clearcoat the floors, and…. i probably won’t get it all done today. watch yesterday’s video for an idea of what’s going on, otherwise, today is re-run day. the archives are yours to explore. kitchen destruction time-lapse movie it’s all part of the plan, but this is a bigger mix effort and uncertainty than expected. i’d hoped to have everything cleared from the kitchen by mid-day, but i’ve got another cabinet to remove sunday. the uncertainty? we don’t yet have the new cabinets in hand. if those are delayed, we could be without a kitchen for quite a while. worse: we’re hosting easter and i’ve only got next weekend to install the cabinets and put the kitchen back together. “shred it!” engadget‘s got a story about ssi shredding systems and their action videos of their equipment doing the job on refrigerators, medical waste, steel drums, couches, concrete, boats…. engadget reccomends the washing machine video “for its rather endearing inclusion of one of the bystanders’ enthusiastic cries of ‘shred it!'” best new music trilok gurtu and robert miles on miles_gurtu listen in at itunes or amazon. bonobo’s dial m for monkey listen in at itunes or amazon. bonobo’s animal magic listen in at itunes or amazon. the bad plus give listen in at itunes or amazon. virtual kvm solutions folks are increasingly aware of screen sharing apps like vnc, but what about solutions that allow you to control multiple computers with a single keyboard and mouse? back in the day, there was an interesting macos hack that would send mouse and keyboard input from one computer to another (after some very easy configuration), today, in the days of os x, i can find two solutions: the powerpage tipped me off to kmremotecontrol a while ago. …and copyright law is broken too (duh!) i was looking for a way to includes these in my story about the brokeness of patent law, but they just wouldn’t fit. so here they are separately. increasingly, content owners are taking advantage of the vagaries of the “public domain” to make us pay for rights we used to take for granted. for instance, when you buy a chair, you expect to be able to use it however you wish. cliff likes the ‘works a flash and long manual exposure caught cliff and me setting up the ‘works, then their launch and aerial explosion on a cold night in january. the camera sat on my mitten in the snow while luck worked in my favor to get a couple good shots (and not burn my camera). just to be clear: neither of us was anywhere near the launch tube when the ‘works went off. today is warren’s town meeting day meeting has come and gone. the issue in the selectmen’s letter was postponed indefinitely and the meeting adjourned around : pm. on rss, taxonomies and folksonomies copyfight went somewhat off topic to point out joshua porter’s paper on how content aggregators change navigation and control of content at user interface engineering. this quote says exactly what i needed: every time someone makes a list, be it on a blog […] or a list of groceries, content is aggregated. the act of aggregating content (usually content that is alike in some way) makes it more understandable. instead of looking at a whole field of information, you choose smaller, more logical subsets of it in the hopes of understanding those. “so computers were worthless ten years ago?” jenny, the shifted librarian, related a story that show’s her son’s innate understanding of metcalfe’s law. here’s a completely truncated quote: “…before you were born, there wasn’t really an internet or the web or email. there was a very basic form for people in the military and at universities, but there were no web sites to visit and no web games to play.” “so computers were worthless ten years ago? all conversations in warren revolve around heat on jan th i noted that i’d burned through half my wood pellets for the season. i’ve burned another bags since, making it three quarters of my pellets for the season. now i’m hoping it feels a lot springier by early april, when my last bags will likely run out. what’s your nerd score? there in my referrer tags was planetilug.draiocht.net (though i can’t figure out why), where i found a link to the nerd test. two posters who’d taken it scored and . just as gareth easton said “i thought i’d give it a go… i answered truthfully (i’m ashamed to admit) ;-)” my score? th percentile: supreme nerd. apply for a professorship at mit now!!! of course, i’m a sucker for even the most ridiculous of personality tests. cuttin’ it up will cuts stuff up like…well, like a guy who cuts stuff. true to form, cliff points. they were over last saturday helping with with some remodeling projects. the luan is going to cover the bits of old horsehair plaster that still cling to the lath in the closet of what is becoming our laundry room. more of will and cliff can be seen in the plastics museum and museum of bad art, all part of the weird museum tour . vacation in the luxury of my own home i’m taking a spot of vacation here. expect nothing more from me today, and not much more in the days to come. — – — as before, the flickr photos have nothing to do with the post. and, no, this is not at all like martha‘s house arrest thing. sweet deal on home theater projector the sharp pg-b s projector isn’t the best out there, but it rates pretty well according to projectorcentral.com. their stats show it to be a lumen, × projector with a : contrast ratio and a long lamp life of up to hours. the projectorcentral.com user reviews suggest it has a good picture with great color rendition. macuser uk concluded: the pg-b s showed excellent detail from our presentation slides, with accurate colours and well-defined text, and it coped particularly well with solid blocks of colour. stay free!: copyright activists the are few things as joyus as the excitement of discovery, so it was a great pleasure to learn that stay free! magazine has a new blog: stay free! daily. the blog has a number of stories about intellectual freedom and copyright oppression that resonated with me. take a look at silent disobedience, christo’s policy of photographing the gates, and wizard people screening in nyc. anybody following discussion of the fcc’s broadcast flag mandate will be amused by an old movie studio and broadcaster psa arguing against subscription tv services. beware the cheap pc; beware the company that advertises them i’ve been saying for years that there’s no such thing as a cheap pc, but now a class action lawsuit against dell is claiming the same. according to arstechnica: it accuses dell of bait and switch tactics along with breach of contract, fraud and deceit in sales and advertising, and false advertising. the computer manufacturer is accused of advertising low-priced computers to consumers, but when consumers try to to buy the advertised machines, they find they are not available at the specified price. food and kitchen gadgets gizmodo just popped two stories about kitchen or food related gadgets that i love: a knife block worth having and a banana wrapper you didn’t know you needed. i might as well link to the sites themselves, as i can’t really think of anything to add: banana bunker and viceversa knife block. picture phone threats: they’re not what you think in a story that couldn’t have been much better timed, arstechnica is reporting on a camera system from that reads license plates and automatically looks up vehicle registration details. with some glibness, the article claims: “you just drive around and point the camera — it’s that easy!” though, it does note: as previously unconnected networks and systems integrate, this will increasingly be the case, and as scott mcneally said way back in , when sun microsystems had a bright and shiny future, “you have zero privacy anyway, get over it. (re-)programming the sony rm-v multifunction remote control in case you find the batteries dead, and the programming lost, sony’s instructions for configuring the rm-v multifunction remote control are online. you’ll have a heck of a time finding them, however, what with all the lousy epinions and nextag listings getting in the way. ignore those. codes for all the rest of sony’s remotes are online too. here are some seeds for google and the others: sony remote control codes for programming sony multifunction remote controls, like the rm-v are online at sony remote control support site. macs vs. pcs: tables turned? yale daily news reports on how windows is increasingly being pushed aside by macos x and linux. according to the article, yale information technology services’ registration records show that nearly percent of university students and percent of faculty choose macs over windows pcs. this is quite a change from the late s, when university it departments made news by trying to eliminate macs from their campuses. so what’s going on? iug : library portal integration & xml server applications elaine allard and i will be presenting on library portal integration at the iug in san francisco, ca. the session is scheduled for the : to : time slot on wednesday. from the program description: portal integration: what works at plymouth state university lamson library began its portal integration in with the launch of plymouth state university’s first portal, myplymouth. within this single point of service students can register for classes and check their grades, faculty can review their rosters and post grades, staff can review benefits and vacation time, and, of course, everybody can use the library. extra quotes most of these are a rehash, but i like them…. — – — a zdnet news article from december remarks: “apple buyers tend to have higher incomes and greater technological sophistication than the pc audience as a whole.” — – — regarding the first time her phone was hacked, a spokesperson for paris hilton is said to have claimed: she was pretty upset about it. it’s one thing to have people looking at your sex tapes, but having people reading your personal e-mails is a real invasion of privacy. international symbols enterprise language solutions has an interesting brief by yves lang on how to use symbols and icons in localization. cultural differences challenge the design and implementation of icons and symbols for international use. what is meaningful and natural for one group may be ambiguous, unintelligible, or arbitrary for another. fundamentally, communication is subjective, as a person’s perceptions are influenced by their environment. since their start in the olympics, the number of icons has grown remarkably. feature: privacy in the st century this is the story that gives me an excuse to name paris hilton here at maisonbisson. here’s a fact of st century life: pieces of our life that, taken one by one, are seemingly insignificant are being gathered and indexed by a handful of companies that re-sell that data to phone marketers, the cia, and many others. information that we recognize as somewhat more significant and often more private, like our driving records and tax information, gets sold and traded right along with the rest of it. feeling very sleepy around noon saturday sandee asked “why don’t we go to ikea?” the closest one is in new haven, connecticut, and we got there around pm. they close at pm, but after loading our u-haul, it was almost pm when we got on the road. we got back to the house around am, and now, after too little sleep, sandee has me assembling the catch. in short: no meaningful updates today. today in sports: le parkour troy pointed wildly and excitedly at a video showing his new favorite sport: le parkour. the video appeared on a site normally devoted to the fun of macromedia’s flash communications server: i recently saw the film film ‘jump britain’ on channel and was impressed by what i consider is an art form. it’s like skateboarding without skateboards, brilliant. le parkour consists of finding new and often dangerous ways through the city landscape — scaling walls, roof-running and leaping from building to building. retro handsets for mobile phones pokia is setting the world on fire with their retro phone handsets. they’re taking apart phones from the s s and s and rewiring the handsets to plug into today’s mobile phones. they’re selling on ebay, but most of the offerings are knock-offs. now mobilemag reports that boost mobile, the carrier that sells overpriced wood veneered handests is taking the idea mainstream. their retro phone handset has the look of a s, bakelite molded phone, but, i presume, without that funky feel that old bakelite has. feature: patent law is broken us patent laws are broken. adam b. jaffe and josh lerner say so. their ieee article is filled with equal measures of anecdotes and facts about why patent law is doing more to limit advancement in the arts and science than to support it. and that isn’t just wrong, it’s unconstitutional. there are a lot of ways to interpret the us constitution, but article , section is quite clear: “to promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries. shameless commerce my beef t-shirts aren’t exactly mass market, so it’s a pleasure to see sales to california ( ), florida ( ), illinois ( ), kansas ( ), new york ( ), ohio ( ), oklahoma ( ), pennsylvania ( ), and washington ( ). i’ve just added a beef trucker’s hat for real retro fashion. it’s also a pleasure to see that the other designs are selling a bit too. brocolli and stump are the most popular (behind beef), but swine, cream filled, and killer get some attention. unusual hotels i recently discovered unusual hotels of the world, “the online guide for travelers interestedinstaying somewhere truly different,” and was pleasantly surprised to find a few hotels in north america i’d like to check in to some day. jules undersea lodge. source. want to slay a night under water? jules undersea lodge in key largo, florida, is for you. i have secret interest in trains, so i’d like to know more about the station restaurant & sleeping cars in ithaca, new york, and the aurora express of fairbanks, alaska. google maps rock, hacking them rocks more people are going wild{# } over google maps, but i honestly didn’t get too excited about it until i saw glen murphy’s movin gmap project. it’s a python script that reads location data from a connected gps and pans the gmap to follow. upon seeing this hack of gmaps, i went looking for more. hack a day shows us how to get maps for a set of decimal coordinates from both terraserver and gmap (terrabrowser will do some of this for macos x). students take academic technology into their own hands jenny levine, the shifted librarian, points out a recent survey that finds % of us college students own a cell phone. nationally, . million americans have cell phones. and cell phones aren’t just for talking, as we americans are sending . billion text messages a month. jenny’s point: “you can tell yourself that these trends won’t affect libraries, but you’d just be burying your head in the sand.” coincidentally, ken “caesar” fisher posted at arstechnica about student technology trends as well: all about stainless steel i’ve been contemplating the idea of welding/fabricating a stainless steel counter top, but i’ve never attempted any welding before, and most people say stainless steel is difficult to work with. thanks to this pdf, i know everything there is to know about stainless steel finishes, but nothing about working with the material. azom, “the premier on-line materials information site, supplier and expert directory” has a guide to stainless steel fabrication with rules for machining, welding, soldering, and brazing the various types of stainless. inflate & collapse two perfectly paired books: blow-up by sean topham and collapsible by per mollerup. one explores inflatable forms in art, architecture, and science. the other explores the somewhat broader range of things whose size and shape are meant to change as their use changes. they both look absolutely delightfull. . moving about on one, two, or three-wheels we’ve come to expect certain things. cars have four wheels, for instance. and we expect two-wheeled vehicles look like bikes or motorcycles or scooters. then came the segway a few years ago and shifted the two-wheeled concept around. now, a number of stories regarding vehicles of one, two, and three wheels have come out. they’re all interesting, some are awkward, some are to die for. one wheel wheelsurf. snow day! as cliff likes to say, “cur-tailed, the sweetest two words in the english language.” the snow started falling wednesday night and didn’t stop. even now, big, puffy flakes like oversized cotton balls are falling. [update:] photos added. also, here’s a snowy panorama from early january. geolocation tagging photos there’s a new version of jeff early’s gps photo linker, which allows you to combine tracks from your gps (time and position data) with your photos (time and image data), so you end up with a bunch of photos with embeded gps coordinates. jeff notes: apple has confirmed that macos . will support the gps metadata tags in photos. this will open up a whole realm of opportunities for users and developers to take advantage of the position data on photos. conspicuous consumption: the plan after some scraping and saving, and our refinancing, we’re remodeling our kitchen. our first attempt at doing this failed when i realized — too late — that i’m not actually capable of making cabinets. by that time, we’d filled the kitchen with a bunch of poorly made and unfinished junk. sure, there’s a sink and a fridge and stove top and an oven, but there’s one counter that’s been bare plywood for five years now, and there’s a bunch of other stuff that can never be finished because it was never built according to a plan that would ever actually work. marmite today i give props to bunchofpants‘s flickr photoset on marmite. i don’t really know what marmite is, but the marmite faq claims: marmite is dark brown-colored savory spread made from the yeast that is a by-product of the brewing industry. it has a very strong, slightly salty flavor. it is definitely a love-it-or-hate-it type of food. and, yes, marmite competes with vegemite, and both appear to be made of the same stuff. fast sofa…imac g fast there are a lot of folks who will tell you how “wrong” it is that apple integrates the monitor and computer in so many models, so i guess there’s a bunch of them that will tell you the same thing about how bluebroc is integrating the a sweet-looking couch and an imac g . “you’ll have to replace your couch every time you upgrade your computer! gosh (said napoleon-style).” there are probably even people that recommend dis-integrating the ipod from its display. ipod giggles ipod giggles **»** paul bourke, of the astronomy department at swinburne university of technology, has developed an ipod stereoscope. his system uses a pair of ipods in an old-style stereoscope viewer to display stereo-matched photos. » somebody at iaxb has come up with some renderings of a giant ipod shuffle sitting around the house like he or she owns the place. » more enlighteningly, canadian broadcasting corp. has a story on the the evolution of portable audio. standing up for clam juice okay, so i’ve been doing at least a post a day since about september and a few people got concerned when i missed a couple days{# }, but i am alive. gosh (said napoleon style). i’d probably pass on posts again today, but i was looking recent comments on my flickr photoblog and got a smile when i found evil angela‘s defense of clam juice: you know, it’s kind of like fish sauce. folksonomy is my new love okay, i’m excited about folksonomies. my introduction to tags was at flickr, where i’ve been amused at how they help connect people, photos, and concepts. then jenny levine at the shifted librarian started talking about them, with david rothman at teleread echoing and expanding many of her points. that was about when i found many to many, where i read about technorati’s tag project (plus documentation). wanna see it in action? copyright terrorism the dunhuang grottoes are one of china’s richest archaeological treasures. built during the th through th centuries, they are a , -year-old ancient art gallery of cave architecture, sculptures and murals. rediscovered in , the region has been listed on the unesco world heritage list since . despite over years of exploration and study, the mysteries of the grottoes are as great as the lessons they teach us. now, it would seem that the dunhuang academy is claiming ownership of all images associated with these year old treasures. looking for the energy drink tv ad? based on the search terms people come to this site with, i know that there’s a bunch of folks looking for the “energy drink ad,” or “k-fee tv commercial,” or “scary german,” or some such. most people end up finding my story about zygo energy vodka, and completely miss my story about the (deceptively titled) serene, calming video where i first linked the energy drink tv. let me eliminate the confusion now. all conversations in warren revolve around heat i have burned . tons of wood pellets so far this winter. the significance of the number isn’t its size, though . tons is a lot. the significance is that it represents bags of pellets, each pounds. the significance is that it represents about half of the pellets i’d purchased for the heating season. by the almanac, it looks like i should have ordered more pellets, as we’re not yet at midwinter and i’ll probably run out. big bear photos circulating my dad forwarded me the following pictures and story: these pictures are of a guy who works for the us forest service in alaska and his trophy bear. he was out deer hunting last week when a large grizzly bear charged him from about yards away. the guy unloaded his mm mag semi-automatic rifle into the bear and it dropped a few feet from him. the big bear was still alive so he reloaded and shot it several times in the head. language is of the people i am always amazed at the lengths we’ll go through to communicate or express or simply transliterate an idea, and further amazed at how we represent the result. take this for instance: th string| --- --- --- -- -- ---- - - - - - - - --- - -- - once you figure it out, you’ll likely not be able to get it out of your head. and this: sort of related, and much more ridiculous. wikipedia vs. brittannica; folksonomy vs. taxonomy a post on techdirt notes: you may recall that we somehow got involved in a bizarre battle over wikipedia, when i got into a discussion with a reporter who told me that wikipedia was “outrageous,” “repugnant” and “dangerous,” mainly because it’s not reviewed by “professionals.” despite a valiant effort, i was unable to ever convince the reporter, al fasoldt, that regular encyclopedias, complete with their experts, make mistakes too — and, in fact, the problem is that those encyclopedias can’t then be updated and fixed. the tyranny of copyright last week i pointed to will shetterly’s “the people who owned the bible” as an example of what might happen if copyright/intellectual property law continues to favor short term commercial interests over long term public interests. it’s worth noting that the original copyright laws, developed in s britain, allowed for only a seven year monopoly (that’s what copyright is, after all). us law started by doubling that to . the current term is or years, but it doesn’t matter because the music and film industries will lobby congress in a few years to make it or so. cold weather operations force powerbook pmu reset batteries don’t work well in the cold, and with the - °f nights we’ve had, i think i can say it’s been cold here lately. i woke my powerbook from sleep in sub-freezing temperatures this morning and got a few minutes of work out of it before it put itself to sleep again. i popped it into my computer bag and ran off to work, where i was troubled to find it refusing to wake from sleep — even when plugged into the ac adapter in a warm room. using your mobile phone as modem i’ve been following cell-carrier wireless data options here at maisonbisson (here and here), but i have to admit that i don’t actually use any such solutions. i live and work (and usually travel) in range of ethernet and wifi, so i might get a pass on this but the real reason is laziness. engadget has a nice write-up on the process with cdma-based phones like the ones you get from sprint and verizon. edward tufte gives presentation advice edward tufte‘s passion is the graphical display of information. but his nemsis the visual lie. so naturally, he has a special dislike for powerpoint. his poster on the cognitive style of powerpoint gave me this line, which i will likely find myself repeating at a time when it is both most accurate and most politically suicidal to do so: why are we having this meeting? the rate of information transfer is asymptotically approaching zero. palm travel guides mypalmlife is running a story about some new travel guides that run on your palm-powered device. produced as a collaboration between rough guides and visual it, they also support pocketpc and symbion devices. london, paris, rome, new york, and san francisco are available now at an introductory price of $ each. “further cities will be released over the coming months.” according to the website, the rough guide city maps include: feds go beyond carnivore; artists embrace carnivore defensetech reports that the fbi has given up on carnivore, the electronic snooping application that it used to force on isps serving suspects. it seems that the folks in dark suits are now using commercial software instead. this probably has no effect on artists — yes, artists — who use an open source app inspired by the feds as the center of their networked interactive art. called carnivorepe, it’s the back-end of over two dozen art installations, most graphically: police state. microsoft: bad for browsers; bad for air travel i just discovered this is broken and couldn’t help but explore the archives. first i discovered brill.com‘s weird search results. the problem is that a search for bond funds returns a list of stories that have little to do with financial news. it looks like somebody has entered a bunch of bogus stories in their database. they might have been hacked, but i’d be more suspicious of a disgruntled employee. the saddest part is that the problem was reported on september , and they haven’t fixed it yet. browse happy browse happy, by the the web standards project is urging people to give up on microsoft’s internet explorer. their solution? firefox, mozilla, opera, and safari. mac os x performance questions i was a little bummed to find my cpu busy all morning yesterday. and though i still don’t understand exactly what was causing it, it seems no longer to be a problem. a lot of people don’t know how to see what their mac is doing, to see what it’s busy with. here are some hints: start with activity monitor in applications > utilities. from there you can see and sort applications and processes that are running on your computer. problems and pre-dated stories due to problems with the site all this week, a couple of time-sensitive stories that i wrote but coudn’t post have now been posted with pre-dated timestamps. i’ve been following every news item about the mac mini with likely more interest than it deserves. what can i say, i like the little computer. as it turns out, the mini is smaller than it looks in the pitures. and thinking of pictures, a few shots of bill gates vogueing with circa- computer equipment started circulating early this week. candy karen forwarded me a link to juicy panic‘s “you drive me oh oh oh” video by torisukoshiro + autophene. more animation and illustration by torisukoshiro is linked from the main site. then she sent me this link to how strange, a site full of odd, interesting, and weird images. . . . palm news & goodies gizmodo mentioned the new garmin ique a gps palm for pilots this morning. there’s a long write up about it at mypalmlife, but the gizmodo story linked to palm . once there, i found a link to instructions on putting the wikipedia on a palm. well, you’ll need a gb sd card, but that’s okay, right? it all depends on tomeraider, an interesting app and fileformat for searchable, hyper-linked e-content. palm is also running a contest to win a free copy of trip boss, an all-in-one travel manager. problems happen my hosting provider has a us-based datacenter and uk-based staff. it’s an odd mix that may or may not be helpful when things go all to heck, like they did on saturday and again on tuesday. the first acknowledgment of the problem saturday explained that “the server is reporting a kernel panic.” then four hours later, it was reported that “there is a major fault with the boot sector and kernel on the server prevent it from loading into the lilo prompt, or booting from a new kernel due to damage. mac mini vs. cheapo pcs charles jade at arstechnica has written both a mac mini preview and a macworld expo show walkthrough. the expo is about a lot more than the stevenote, and jade does a fine job walking us about the show floor. also entertaining is an osviews story on the mac mini that concludes the mini is far less expensive than home-built pcs. not that there aren’t a lot of people arguing with that conclusion in the comments. the mac mini is _small_ i said the mac mini was the reincarnation of the cube last week, but gizmodo has posted a picture of the two, um, together. we all knew the mini was small, but this shows how reall small it is. the unoffical apple weblog has a list of things people are planning to do with their mini as soon as they get their hands on one. now add to that list a mini-based synthesizer. where’s my video jukebox? yesterday i posted a story about using a mac mini in my home entertainment center. i noted that i’d already replaced my cd player with itunes on an old imac and i wondered if i could do the same for dvds. i ignored the facts that some provisions of the dmca may make this illegal. the music revolution was made possible because courts recognize our right to encode cds from our collection as mp s, and cds (mostly) lack copy protections that prevent us from doing that. bill g just wants to be cool gizmodo has two pictures of a young bill gates vogueing on a desk with . -inch floppies and a circa- pc monitor. oh, wait, is that a mac on his desk behind him? the pics were reportedly published in tiger beat, and gizmodo is offering a reward for the original issue. update david heisler wrote to gizmodo to offer this correction and detail: [those] are not from tiger beat. according to snopes. mac mini as media player more than a few people are looking at the mac mini as a new component in their home entertainment center. cds are unknown in our house, where itunes and an old imac entirely replaced our five disc changer some time ago. correction: cds are used as an input medium. new cds are ripped into itunes on their first play, then left to gather dust on the shelf. video seems ripe for a similar shift, and to many, the mini looks like the perfect platform for it. michale stephen’s twelve techie things michael stephens’ twelve techie things for librarians deserves a look. user-centered technology planning, rss, acnd convergence lead his list, but other items speak directly to the role of the library in the internet age. pmachine discontinued, where to next? i learned today that pmachine pro — the software behind this site — has been discontinued. i’d expected the announcement for some time, seeing it today reminded me that i should be looking for a new blog/cms solution. expression engine has largely replaced pmachine, and i know at least one person running it, so i’ll likely be giving it another look soon. i’ve got a list of things i’d like to solve here, so this news sort of fits. oil star this super-cool s-styled logo adorns the side of a trailer in the backwoods of new hampshire. more photos from maisonbisson jailed for a song trying to quote lyrics for his book, planet simpson to understand how current copyright law is already limiting legitimate work. lots more stories of copyright law gone amok in the maisonbisson copyrights & intellectual property index. the tyranny of copyright if you read nothing else all year, read this. will shetterly’s “the people who owned the bible” is a tale of copyright gone amok. it’s the clearest, plainest, and funniest of all such works i’ve seen. note: my title is based on a new york times story about copyright from a while back. am i in trouble? steve jobs introduces ipod shuffle in his macworld expo keynote today, steve jobs introduced the ipod shuffle. from macnn: apple introduces ipod shuffle…flash based player. smaller than most packs of gum. weighs the same as quarters (less than ounce). volume/up dow. simple led to provide feedback. no display. either shuffle or album-based playback. usb transfer connector under connector at the bottom. -hour rechargeable battery. steve jobs introduces mac mini steve jobs, in his keynote at macworld expo today reintroduced a redesigned mac cube as the mac mini. from macnn: apple introduces mac mini. new member of mac family slot-load combo optical drive. play dvds, burn cds. quiet. tiny. firewire, ethernet, usb . , both dvi/vga output. very tiny. height is half the size of an ipod mini. byodkm. bring your own display, keyboard, mouse. vonage wifi voip handset is real all the world is atwitter about vonage’s new wifi voip phone today. wifinetnews got the hint from engadget, who appears to have broken the story today, and links to a usa today story that says: with a wi-fi phone, they could make internet calls from home without the need to run wires to the broadband line. customers could use the phone number of their existing vonage service or a new one for no extra fee. video fix today might be [wierd|strange|funny|scary] video day. or something. these are probably not safe for work, though your mileage may vary. here’s the list of things found last night: rainbow the site explains/claims: “rainbow was a credible children’s tv show from the s and s. this clip was actually broadcast and watched by millions. …there’s no way these could have been done by accident. innuendo all the way.” supermodelmeat classic and independent movie theaters a story in the december /january issue of arthur frommer’s budget travel magazine alerted me to ross melnick and andreas fuchs’s cinema treasures. it was an annotated list of seven theaters still operating today: cape cinema: this dennis, mass., theater was built to look like a church. the senator theatre: a -year-old art moderne classic, it shows new releases in baltimore. oriental theatre: head to milwaukee for this $ . the future of libraries roderick (also, check out roderick’s new blog) forwarded me a story about the challenges facing academic libraries from the chronicle of higher education. the author, dennis dillon, whose full title is associate director for research services at the libraries of the university of texas at austin, begins by relating a conversation: “couldn’t you move your technology to mumbai and hire some english-speaking indian librarians to catalog the books and answer reference questions over the web? backfill i should admit to it now before it becomes a scandal. i backfilled some content this weekend. some of it is stuff that i wrote in the past for work (edited for publication here), but i feel may have some public value. specifically, two stories about wireless: one about its vulnerabilities and another about (then) current practices in the academic community. i also posted my wife’s first story for maisonbisson: a recipe for fish tacos. a decadent and debauched slave of foreign culture i first learned of wei hui and her first book shanghai baby on npr a few years ago. according to the story, wei hui is among a “group of young, attractive women known as the ‘beautiful writers’ churning out novels that graphically describe the hedonism of modern urban china.” wei hui’s book was so controversial that it chinese authorities banned it, causing a nearly immediate surge in popularity at home and abroad. tech roundup it’s getting a little late for these roundup things, but i’m too tired with post-new year’s party haze to come up with much of anything better right now. annalee newitz subtitles her website with “technology, pop culture, sex.” her index of stories isn’t actually a roundup per se, but it’s good material if you’re too lazy to leave the couch and find a book to re-read off the shelf (because you’ve read all you new books by now, right? wrapping up a year of controversy alternet had a good line of stories this weekend to round up the old year and ring in the new. i’m running a little late on such things here at maisonbisson, so let me just quote from theirs instead. — – — daniel kurtzman’s list of the dumbest quotes of includes this doozy at the number spot: “all of a sudden, we see riots, we see protests, we see people clashing. slacking is universal in yet another reminder from mainichi daily news that american’s and japanese aren’t so different, now they’re reporting: coeds say college guys ‘childish, irresponsible, stupid.’ a survey of female students selected from universities located in either osaka, kyoto or kobe reveals: a majority of the women polled said that their main impression of male students is that they are childish, the . percent given to the most frequent answer followed by the percent who thought guys are kind and . ipod hacks hack-a-day has just given me the best reason i’ve seen yet to take a closer look at ipod linux: audio input without the cheap dohicky accessories and at up to khz x bit. the five step instructions couldn’t be much simpler (well, it might be more complex once a person actually tries it, but the comments suggest good success). hack-a-day is covering lots of ipod hacks (much to the consternation of some readers, but they’re just jealous ’cause they don’t have one). terminal holiday for k+ i got to spend the holidays near home this year, and with everything else going on i didn’t really pay much attention to the comair/delta problem that stranded over , passengers last weekend. now that i’m starting to pay attention to the news again, though, i was interested in arstechnica‘s discussion of the software glitch that made everything go wrong: at the core of the problem was an application created by sbs, a subsidiary of boeing. let fly the macworld rumors everybody is gaga (links: one — two — three — four) over the thinksecret story: apple to drop sub-$ mac bomb at expo. many people in the mac community have been agitating for a low-end ‘headless’ mac to compete on price against cheap pcs. the rumored specs include: . ghz g cpu mb ram combo drive – gb hard drive usb . national geographic society not so environmentally conscious i know i’m complaining here, but national geographic seems to have done this wrong. i purchased the complete national geographic — years of national geographic on cd-rom a few years ago. the collection of cds is an archive of every page of every issue published from through . it was a joy to explore that archive, but let’s face it, i wasn’t spending every night doing it. today i got the notion to reinstall it to search for something, but discovered that the application is far out of date and no bug fixes are available. google the economist has a very concise explanation of how google works, and how it became today’s dominant search engine. mr brin’s and mr page’s accomplishment was to devise a way to sort the results by determining which pages were likely to be most relevant. they did so using a mathematical recipe, or algorithm, called pagerank. this algorithm is at the heart of google’s success, distinguishing it from all previous search engines and accounting for its apparently magical ability to find the most useful web pages. high speed wireless michael sciannamea at wirelessweblog noted that: bmw, audi, daimler chrysler, volkswagen, renault, and fiat have all received grants from the german government to develop a car-to-car wireless data network using . a and ipv technologies to link vehicles to each other to pass on information about traffic, bad weather, and accidents. they’re calling it “now: network on wheels,” and there’s more at wi-fiplanet.com. my comment: static mesh networks are so . chernobyl followup i posted a story about a tour through chernobyl a few weeks ago. the story still gets a lot of hits, and somebody pointed out a few related wikipedia links about the accident, the ghost town, and the controversy about elena filatova, the author of everybody’s favorite online chernobyl tour story. separately, peace.ca reminds us about the dangers of war, nuclear contamination, and more. free palm apps, now easier to find jon aquino‘s holiday gift to us is to make freewarepalm useful: why this work was necessary: freewarepalm contains a goldmine of ratings of palm freeware. but it does not provide a way to sort the programs by rating. that is why i extracted the ratings and sorted them. with over listings, there’s a lot to choose from, but, as jon says, no way to sort those listings. jon has crawled freewarepalm with “cygwin lynx, xemacs, and a -line ruby script” and done what freewarepalm couldn’t: made a list of apps sorted by rating. heart warming holiday tale for hackers i recently stumbled across ron avitzur’s story of the the development of graphing calculator, the little application that makes complex math easy to visualize. if there was a collection of essays titled “chicken soup for the silicon valley soul,” this would be included. pacific tech’s graphing calculator has a long history. i began the work in while in school. that became milo, and later became part of framemaker. over the last twenty years, many people have contributed to it. requisite holiday email forward mark turski‘s holiday message: avoid carrot sticks. anyone who puts carrots on a holiday buffet table knows nothing of the christmas spirit. in fact, if you see carrots, leave immediately. go next door, where they’re serving rum balls. drink as much eggnog as you can. and quickly. like fine single-malt scotch, it’s rare. in fact, it’s even rarer than single-malt scotch. you can’t find it any other time of year but now. happy holidays the warren rocket stands in the the snow on december , . happy holidays photo taken december , , just north of warren on nh route c. the snow is real (and much deeper now), but i added the lights for the holidays. regular updates to maisonbisson will return after a short holiday break. coincidence is too general a term engadget had a laugh over a story in the keene sentinel: so the other day a ups driver in new hampshire was on his way to the cheshire medical center in keene to deliver some much-needed parts for a piece of medical equipment when he got into acrash. he suffered a head injury and was taken by ambulance to the very same hospital he was headed to, but they weren’t able to do any of the tests they needed because the brain scan machine was broken — and the parts needed to fix it were sitting in his wrecked truck on the highway. apple fans mod macs joseph deruvo jr.’s i-tablet is this year’s mac mod. wired’s leander kahneyusually covers the story, but deruvo published this one himself at macmod. kahney covered jeff paradiso’s converted ibook tablet as part of his story on mac modders. he followed that up in with a story about a pyramid-shaped powermac that glowed blue. the mac mod thing is international, as kahney points out in this story about japan’s mac mod culture. cross-country journeys in time-lapse i feel a tinge of jealousy every time i see something like this: lacquer sound’s road trip. similar: i covered matt frondorf’s mile markers project a while back. (picture from mile markers). gary webb: a journalist who dared alternet ran an interesting story about gary webb‘s recent suicide and the events that may have led to it. webb was the -year-old former pulitzer-winning reporter who in , while working for the san jose mercury news, touched off a national debate with a three-part series that linked the cia-sponsored nicaraguan contras to a crack-dealing epidemic in los angeles and other american cities. the resulting firestorm swept the country. fcc’s complaint system gamed i’ve got a backlog o stories to post here, including this old one about broadcast programming complaints to the fcc. the fcc reports that it received a mere complaints in , but , in . so what can account for the nearly -x increase? the fcc did some homework on the matter: according to a new fcc estimate obtained by mediaweek, nearly all indecency complaints in — . gps happy my brother and his wife surprised me with a rayming tn- gps this holiday season. what’s so great about it? it’s a tiny usb powered brick that interfaces easily with a laptop. the plan? wardriving (yes, it’s sooo three years ago), better geolocation while traveling, matching gps coordinates to photos, and as much mayhem as can be had with a computer-connected gps. software options rayming is mac friendly enough to offer a page of links to mac gps resources and include the necessary driver on the cd. seacoast industry sometimes a story will popup as a clear reminder that the world is not always as it seems. i will admit both surprise and amusement when i found that foster’s daily democrat reported saturday on the content of a federal indictment of a kittery, maine, health club. geography lesson: foster’s covers new hampshire’s seacoast — all miles of it — and kittery is a shopping destination squished into the southernmost corner of maine. the indictment accuses gary h. reiner of running “an interstate prostitution ring.” foster’s reports that the club has operated under various names, most recently the “danish health club,” owned by “kittery health club inc.” reiner was apparently both the owner of the club and the former town council chairman and had a role in shaping the local regulations of spas and health clubs. the story clearly had some history, and i’m fortunate the web, and foster’s archives, can educate me. displaying word docs and pdfs in safari royce asked: how can i disable or tweak download manager so that files can be read in line with the download and manually launch through the download manager? i want to be able to click on a pdf or word doc and have it open inline without having the download manager handle it to the desktop first. context: some people say the inline display of pdf and word documents enables bad habits that are making the web less accessible and harder to use. fun with license plates jameson wrote me today to point out that he can get a new hampshire moose license plate with the text “-brk m” he found my story about new hampshire license plates, including the bit about nh’s online plate lookup. then he pointed out that he could get a purple heart plate with the text “fugw” political messages on license plates seem to usually go one way: from government to people. this rare one reverses it. isight accessories and beauty tips macdevcenter published a guide on how to look great on ichat av back in march. the point? video is changing telecommunications: no longer can we sit in grubby geek glee, protected by our avatar shields, wearing only uniforms of underwear. endangered are the days where we can pass digital transmissions and gas simultaneously, picking our noses with one hand, and stuffing pizza down our throats with the other. slowly but surely video is changing that, and sooner or later you’re going to find yourself beamed up into someone’s ichat av window. weird palm apps canalpda, a spanish-language pda info site has released an english version of their story about the weirdest palm os programs. you’ll have to follow the link to read about why they thought the apps were so weird, but the titles give some clue: voodoo palm mirror bistromatic fakecall palmasutra fdic divination scare the doggy bubble wrap emulator darn comment spam <a href="http://flickr.com/photos/maisonbisson/sets/ /” title="canned meats at flickr"“>now that most email clients have reasonable spam filtering capabilities, spammers are targeting comments systems on blogs, guestbooks (i thought those had disappeared, but i saw one yesterday) and other open submission forms that post to the web. ip banning probably never worked, as spammers have been using open proxys for years. word blacklists (like ignore comments with “online-casino.com” in them) require regular maintenance and could result in false positives. beware the cheap pc the public radio show future tense did a story monday that asks “will you regret buying a cheapie pc?” computers are cheaper than ever. but if you’re looking at a new machine this holiday season, dwight silverman of the houston chronicle says beware of the low, low prices. why will you regret it? the machines are ram starved, have lousy video hardware, bad monitors, processors that are slower than their mhz ratings make them look, small hard drives, and often lack even a cd burner. more about google print prediction: we’ll talk about google print until they debut the beta, then we’ll talk about it more. copyfight posted some followup on google’s announcement earlier this week. of note was a quote from michael madison: a first thought: it’s one more example, and a pretty important one, of the fading of the lines separating copyright law from communications law. is google print an information conduit? a massive, rogue p p technology? ipod supplies tight; holiday sales to exceed four million summary: four million to be sold this holiday season; adoption rate higher than for sony’s walkman. from macnn: an article in the the wall street journal today says that ipods are becoming scarce at retailers around the country. the report says that amazon.com, buy.com, and other online retailers are now out of stock and “apple is contending with what appears to be an immense demand for the gadget,” and it suggests that apple is dealing with manufacturing and distribution constraints due to the ipod’s ‘near-cult status. wireless security: wep dead wifi net news is saying r.i.p. w.e.p. after news of a new version of aircrack was released that can break wep in seconds after passively sniffing only a small number of packets. the result is that it takes only two to five minutes to crack a key. even keys changed every minutes are thus susceptible to an attack that might allow several minutes of discrete information. unique keys distributed by . usb headset microphone i went looking for a usb headset microphone, and the telex h- usb digital computer headset seems to be the cheapest one that doesn’t suck. amazon’s users comments for the other headsets in that price range (under bucks) spoke of bad sound, uncomfortable fit, and fragile parts. the customer reviews of the telex h- , on the other hand, all rate it out of and commend its quality. serious question about funny picture sometime ago i saw this picture among a bunch that were circulating in those emails that get forwarded all over the place. the site i first saw it on dissappeared shortly after, and i haven’t seen this shot again until now. it looks like this page is a copy of the one i saw in early , and it includes this picture. my question is, where did it come from. i haven’t seen anybody name the source or context for this photo. i’m now an expert on kabbalah okay, that’s a lie, and it’s probably a little insensitive. sorry. what i really mean is that the monday edition of fresh air — that npr talk show with terry gross — was all about kabbalah. terry’s guest was arthur green: historian and theologian arthur green has long studied jewish religion and culture. among the many books he has written is his latest, a guide to the zohar. […] in addition to being dean of the rabbinical school of hebrew college, arthur green is also on leave from brandeis university. google stuns libraries, again arstechnica seemed to sum it up best: today, it is expected that google will announce an agreement to scan and create databases of works from five major libraries. according to news reports, google will digitize all volumes in the university of michigan and stanford university library systems along with parts of research libraries at harvard, the new york public library, and oxford university in england. more information on the scope of projects at the individual institutions can be found at news. exploring coudal last week i noted the shhh project to hush noisy cell phone users by draplin and coudal. today, i spent some time surfing the coudal site and found a few things. jewelboxing is coudal’s answer to lousy cd jewel boxes and dvd cases that aren’t much better. the super jewel box king was developed in conjunction with phillips at the same time as the dvd. the standard was designed and introduced shortly after. new hampshire’s teen drug use high, teen crime rate low katherine merrow, senior research associate at the new hampshire center for public policy studies recently released a study on teen drug use and juvenile crime in nh. the following is quoted from the study’s executive summary: two recent surveys indicate that new hampshire teens use drugs at rates significantly higher than their national counterparts. one survey placed new hampshire among the top states in the nation in terms of the proportion of its teen population abusing either alcohol or drugs. laughing at your idol while following the story about bad teachers, found the mathcaddy blog. the only relation mathcaddy has to the other story is that steve, the unfortunate student runs his blog on a subdomain there. the post that got me interested at mathcaddy was i walked on water… i think i can walk to the door: in one of his forty-eight dozen interviews about the passion of the christ, mel gibson said there have been more than a hundred films made about the life of jesus. holiday deals on macs macnn gave me the heads up that apple had reshuffled its refurb and discount shelves late last week. shoppers got as much as % off selected items, with previous generation models being unloaded at the best discounts. thing is, the deals were picked up quick, and the store seems to be empty of the best of them. the ghz ibook that was current until this fall was going for $ , and the . teacher proves — once again — that schools are averse to free thought copyfight‘s donna wentworth passed along this “sad and perverse story of a teenager who was given an “f” for writing a paper attempting to distinguish between piracy and stealing.” copyfight quote’s boingboing‘s story: geluso, an “a” student, recently completed an in-class exit exam for his language arts class. the goal of the exit exam was to write a comparative essay on a topic of the student’s choice. being a student who enjoys a challenge, he wrote an essay contrasting piracy with stealing. cult of mac, cult of newton, cult of ipod no starch press recently released leander kahney’s the cult of mac. bookblog notes: are there trade shows for toasters? of course not. so why is there a twice-yearly show devoted to a type of [computer] consumer? well, a computer isn’t just a computer when it’s a mac, and macintosh fans will go to great lengths to celebrate their devotion. the book is a followup to the regular cult of mac reporting in wired news. gear and gadget reviews gizmodo popped a link over dan washburn’s gadget round up. dan had been on a four month road trip through china, and has now posted the results of how his gear stood up to the trek. on the trip he took an ipod with a media reader, extended battery, and voice recorder mic; two cameras — cannon s and s ; an ipaq with keyboard and gprs modem; and a garmin etrex. writer goes solar for electric, hot water, and heat o’reilly author brian mcconnell hasn’t gone off the grid, but he’s reduced his dependance on it and in so doing, lessened his footprint on the environment. electric generates % of his home electric consumption. solar hot water heats his hot tub, eliminating much of the remaining electric consumption. forced hot air solar heats his house, eliminating half of his natural gas consumption. total cost of system was $ , , rolled into his mortgage. saab is latest car maker to get excited about ipods macnn reports that saab has released an ipod integration kit: saab has quietly introduced its own ipod/mp player audio integration system. the new system, listed in the most recent saab accessories catalog from october , offers direct input for and control of the ipod on its saab - , according to one macnn reader: “i spoke with the parts department at my dealership and they confirmed that it’s available. evidently it’s wired through to the center console armrest and will be out of site. smack the shhh down on noisy cell users gizmodo was excited enough about the draplin and coudal shhh cards: two designers have made these warning cards for obnoxious cell phone users, available in convenient pdf download-and-cut-out form. it’s a good way to make it clear to people they’re talking too loudly, and a good way to eventually get into a good, american fist-fight. then someone can hand you a card that explains why they found your teeth in their soda to be “more than a little annoying. missile week at maisonbisson it’s missile and space weapons week at maisonbisson. one item, the increasing pace of missile development in hostile and semi-hostile countries as a reaction to the us missile shield, is real news. the others are softer. i wish i’d planned it. don’t miss russia’s space battle station or warren’s home-town missile. copyright lessons from waffle house to round out my week of quoting stories from lquilter.net, today i’m putting forward this one about intellectual property (originally from critical montages): ever notice the waffle house menu’s insistence that double waffle is for <a href="www-wafflehouse-com-whmenu.pdf” title="“dine-in only, no sharing"“>“dine-in only, no sharing”? a common prohibition at low-end restaurants, it’s also a small-print reminder of what capitalism is all about. from enclosure to enforcement of intellectual property rights, capital’s message is always no sharing. mobile carrier wireless networking, take i took a long look at mobile wireless data service back in september. now, engadget says: they’re currently test-marketing a new wireless data plan called mobile media that costs fifteen bucks a month (the same as sprint pcs vision) and gives you unlimited data usage and access to their new streaming video service […] assuming everything goes as planned, they’ll be introducing the new service in january. i guess i have to look at sprint pcs again, because last time i looked, prices were $ to $ . reader report: pie ipod input adapter a reader, mike, wrote in to reccomend the precision interface electronics aux input adapter to connect the audio from my ipod to my scion’s factory head unit. i don’t know if you ever found a solution to connecting your ipod to your scion head unit, but if not, you can use this adapter to add an aux input to the scion factory head unit. i asked mike for followup and details, and he offered this: pictures of the warren rocket warren is blessed with a rocket. it was once an intermediate range ballistic missile, but it’s basically the same rocket that launched america’s first astronauts allen b. shepherd and gus grissom into sub-orbital space. it’s enough to be proud of, anyway. roadsideamerica.com has a story on our rocket, but it’s based on reader reports and it seems people just don’t know what town they’re in when they see the thing. the christian right and the sanctity of marriage lquilter.net pointed me to an interesting entry at newdonkey: the christian right and the sanctity of marriage as we all know, the christian right has now made defense of the institution of marriage, as defined as a union of a man and woman, not only its top political priority, but the very touchstone of christian moral responsibility. i’ve always found this rather ironic, since the protestant reformation, to which most christian right leaders continue to swear fealty, made one of its own touchstones the derogation of marriage as a purely religious, as opposed to civic, obligation. missiles are the new fashion defensetech reported today that “russia is leaning more and more on its nuclear weapons, as its conventional military falls into the toilet.” elsewhere at defensetech today was a link to armscontrolwonk, which leads to news that the us isn’t working with the iaea. this isn’t good. the ap, via defensetech is reporting speaking at a meeting of the armed forces’ leadership, putin reportedly said that russia is researching and successfully testing new nuclear missile systems. russian battle station polyus defensetech reported, some time ago, on the old ussr’s space battle station (or, communist russia’s answer to reagan’s star wars program). more pictures are in a forum at militaryphotos.net. called polyus, it was ridiculously huge — as with all things russian. sadly, (from a purely scientific perspective) defensetech reports “it couldn’t get itself into a working orbit, probably because of ‘a faulty inertial guidance sensor,’ according to the encyclopedia astronautica.” us senate on porn i’ve been reading the archives at lquilter.net, where i stumbled across this amusing yet scary entry: …on the first amendment side of things, wired has a great new story explaining how recent senate commerce committee, science, technology & space subcommittee hearings have shown that internet porn is the worst scourge this nation has seen since cia-sponsored heroin. [wired / ] “pornography really does, unlike other addictions, biologically cause direct release of the most perfect addictive substance,” satinover said. shock tanks gizmodo alerted me to these shocking remote control tanks. for bucks you get two remote control tanks with which you and a pal will do battle. it’s a game of “maneauver and fire, evade,” or something like that, with the additional carrot that if you hit your opponent’s tank, he or she will get an electric shock. the stick is that if your opponent hits your tank, you get the shock. dog sled racing justin at the start of his four-dog sled race in meredith, new hampshire. the video of justin’s finish is also online. snow started falling early friday and continued through saturday morning. it’s the heavy, wet snow you get when the air is still warm. the frost isn’t deep and there are still-soft patches of ground here and there, so the snow is melting in parts, but it’s snow nonetheless. it’s snow enough that justin might be able to run the dogs on the sled, rather than on his bike as he does through the fall. cool tvs and rc aerial photos gizmodo went gaga for plus minus zero, a little electronics shop in japan where “they hand-design a selection of products, then contract the production of the units out for a limited run.” the post includes a picture of one of their products, an lcd television that looks like one of those classic tube tvs from the s. then gizmodo linked to this radio control aerial photography discussion board with some great pix. bush on tape cliff over at spiralbound.net posted the video of bush flipping the bird. it’s not as exciting as i’d hoped, but it’s on video. then there’s the dubya movie. it’s a fantastic mashup of old don kotts movies, but that’s already giving too much away. go watch it, you’ll laugh. a night at the hip hopera i’m not really sure how to describe the kleptones and their album a night at the hip hopera, but i can tell you how i found it. disney sent takedown notices to those who were mirroring the work, raising the ire of the copyfight community. you see, the kleptones are really quite good, but their album is a mashup of queen songs, and disney (who owns the rights to queen’s music), got itchy. states rights lq wrote at lquilter.net about looming challenges to federalism i’ll be interested to see how the conservative, pro-federalism, pro-states’ rights, gop-run government (and the conservative intelligentsia which carries their theoretical water) handles some of the upcoming challenges to federalism: medical marijuana laws state & regional initiatives on global warming: for isntance, california’s mandatory cap on greenhouse-gas emissions will have to be signed off on by the epa before it goes into effect i tried to comment, but wordpress kept ignoring me. instead, i’ll post here and trackback. james loewen writes, in his book lies across america, that “states rights” is the call of whatever party doesn’t control the presidency. the republicans made a lot of noise about it during the clinton years, but will likely have to adjust their position now. some readers will likely point out, however, that the unspoken republican tenet (at least since the early s) is “might makes right.” sadly, the bush administration has already supported challenges to local environmental regulations. i can’t remember the specifics, but a federal court struck down a california law that required clean-burning busses and trucks in the state. maybe republicans are more tolerant of cognitive dissonance than liberals. maybe they don’t care. flickr random selection email is for dinosaurs in south korea a south korean newspaper is predicting the death of email. a poll conducted […] on over , middle, high school and college students in gyeonggi and chungcheong provinces in october revealed that more than two-thirds of the respondents said, “i rarely use or don’t use e-mail at all.” it seems email just isn’t fast enough for these wippersnappers. …it’s impossible to tell whether an addressee has received a message right away and replies are not immediately forthcoming. lycos-europe’s spam plan smartmobs reports that lycos is planning to raise the cost of spam with a gentle ddos attack. yes, gentle. lycos-europe is distributing a free downloadable screensaver called make love not spam that directs a low-intensity distributed denial of service attack (ddos) at urls contained in spam messages. the bbc article quoted at smartmobs reports: mr pollmann said there was no intention to stop the spam websites working by subjecting them with too much data to cope with. wifi seeker, finder, detector roundup handtops.com has published a wifi seeker, finder, detector roundup. the five models they reviewed include: smart id wifi detector – wfs- pctel wifi seeker kensington wifi finder plus hawking technologies wifi locator – hwl canary wireless digital hotspotter – hs my favorite, and it’s not based on any experience with any of these products, is the canary wireless digital hotspotter. it’s the smartest of the bunch and shows the war on fair use somebody somewhere, probably a lawyer in the entertainment industry, has a list titled “rabid fair use advocates” and david rothman is near or at the top. not that i mean that as a criticism, or that mr. rothman would take it as such. it’s just a likely fact. today, however, i’m playing a game by quoting his post about the war on fair use in full: doubt there’s a war against fair use? encompass for digital collections and resource access we’re looking at encompass for digital collections and resource access here. it’s an expensive product, but has a lot of interesting and useful features. some sites we looked at in the demo today included new zealand national library, ut dallas, and alabama mosaic. bloody saturday in the soviet union: novocherkassk, i had a long conversation with my brother about communist russia last night. it’s not really an area i can talk about, execpt that i’d recently read enough to make me look semi-smart. my reading was of samuel h. baron’s bloody saturday in the soviet union: novocherkassk, . review from library journal: baron (history emeritus, univ. of north carolina; plekhanov in russian history and soviet historiography) brings to light events of nearly years ago that foreshadowed the demise of the soviet union. robert berger’s wifi will beat up your wimax from wifi networking news: wimax hype, . reality wi-fi will out evolve and deliver connectivity at costs dramatically lower than wimax. wimax / . is just starting on its path to evolution, has a much smaller base of innovators and chipset growth volume. wi-fi is already far along on its core learning curve, has an easy order of magnitude larger base of innovators / investors and chipset growth volume. wimax hype will sputter out to reality of a niche backhaul and rural marketplace, wi-fi/ . will evolve and grow into many more realms and dominate the local area network (lan) / neighborhood area network (nan) / metro area network (man). berger’s conclusion is based on the history and development of earlier, wired networking technologies, where ethernet is the clear winner. he reminds us that “token ring, then . anylan vg, then atm” were all once considered leading technologies that would replace lowly ethernet, but didn’t. today, . products are shunned by wireless carriers, but their spread and market dominance will be hard to beat by wimax and . . ipod integration kits proliferate for home and car macnn reports the sonance iport will ship later this month, which must mean next week. anyway, the iport is a wall mounted dock that hides all the cables — audio, firewire, dock, others — in the wall. the macnn story includes nice pictures of the unit, including the beauty shot and a view of the ports and connectors. sonance makes no end of “architectural-audio” equipment, including those speakers you sometimes find hidden in the wall. falljuahinpictures fallujapictures (soon to be at falljuahinpictures.com) posts pictures too sad or scary to appear in most newspapers or even on this site. geolocation stumbling block: geourl host down a an old john udell piece at infoworld hints at geourls, but the goeurl site is down, and has been for a while. the concept sounds interesting: you mark pages with coordinates, then use gis to map those pages to geographic locations, finding pages and people of interest along the way. to join geourl, you add this kind of metadata to your homepage: i got interested in this sort of thing (geolocation) a while back, and i haven’t quite given up. copyright czar cometh? david rothman at teleread echoed the following: “buried inside the massive $ billion spending bill congress approved last weekend is a program that creates a federal copyright enforcement czar.” – lawmakers ok antipiracy czar, via cnet. sealing history democratic underground published a may story about bush administration efforts to replace the national archivist. the national archivist is the keeper of the nation’s records – the archives. the national archives control what information gets released to the public – and what does not. with so much power over how what history we see, the independence of the archivist’s position is paramount, lest one political party usurp that power. people who know these things were afraid when the previous archivist announced his intention to resign early, despite previous signals he intended to complete his full term. these people were doubly surprised when they learned the bush white house has […] nominated allen weinstein for the position, one who is held in dubious esteem at best, who has been criticized for having a penchant for privacy not becoming a national archivist and, to the surprise of many, was nominated without any consultation with outside experts – the first such time ever since , and in direct contravention with the wishes of congress as expressed in the house report accompanying the law that made the archives independent. had the previous archivist fulfilled his term, he would have presided over the release of george h. w. bush’s records. the new archivist will be able to lock up those records and along with the “w” files for the next ten years. with a straw man in place, the bushs can rest comfortably, but can we? liberty vampire jokir flickr’d this, writing: “great work — alex ross is one of my favorite artists…plus – it pretty much nails what’s up in the world, right?” ross’s website has mostly shows his comic book art and superhero imagery, and it took some time to find a reference to this piece. apparently it was for an article in the village voice and appeared on the cover. ross writes: wb says you’ll pay here’s the irony: an academic writes a paper that references and quotes relevant prior work, and is commended for the work. but, a journalist working on a book that quotes elements of pop culture risks a copyright infringement lawsuit if he doesn’t pay for his quotes. the fact is, “fair use” is not protected, and it can only be determined in court. fact is, the risk of lawsuit is enough to make most authors and other content creators license work for uses that most agree should be covered by fair use. u cozies to apple i’ve been warm and lukewarm on u for a while. i can’t deny that they’ve done some great stuff, but i’ve failed to appreciate some of it. take the band’s previous work, all that you can’t leave behind, for example. it seemed like a sad attempt to capture a younger audience, and was out of line from the band’s other work. aging is tough on everybody, but neither the band-members, nor their fans are getting any younger. the kinkos conspiracy engadget raised my fears a bit when they announced your laser printer will give you away: it was big news last month when a couple of researchers at purdue announced a way to trace documents back to their original printer or photocopier, but it turns out that xerox and most other laser printer and copier makers have been selling devices that encode serial numbers and manufacturing codes on everything they print out for years. click fraud arstechnica has a story about new google lawsuits. the company is getting sued by a porn purveyor for copyright infringement and is suing another company for “click fraud” — fraudulent clicks to google’s adsense advertising links. having recently taken on adsense links here at maisonbisson, i couldn’t help but pay attention. the ars story leads to one at c|net that explains: click fraud is perpetrated in both automated and human ways. predicting the computer of in (fake) steffan o’sullivan writes: “this is from a edition of modern mechanics magazine, predicting what the home computer will look like in . i think i worked on that printer once… how can i get a steering wheel like that on my office computer here?” the caption reads: “scientists from the rand corporation have created this model to illustrate how a ‘home computer’ could look like in the year . chernobyl tour update: there’s more pictures, even some video (look for links marked with the quicktime logo), and a bundle more nuclear and chernobyl-related stories. i almost fell into a trap that has snared quite a few before me. bookofjoe recently pointed to the story of elena, a motorcycle riding woman who claimed to brave the radiation to tour the area around chernobyl, the nucluear reactor that exploded disasterously in . a commentor quickly pointed out that her story has some history and is surrounded by controversy. google scholar arstechnica and bookofjoe both heralded the beta release of google scholar. my questions: “is it accessible via the google api,” and, “what does this mean for academic libraries?” i’ll be exploring both in time. in the meantime: library portal integration. how blue is my country? my father sent along a link with the following annotation: we all know the expression that “one picture is worth a thousand words.” well, here are several pictures of the same phenomena that tell the same story but give very different impressions. they illustrate clearly how pictures can be misleading (or should that be ‘leading’ ?). i found them very interesting. please look at all of them. the link lead to a web page by michael gastner, cosma shalizi, and mark newman of the university of michigan offering maps and cartograms of the us presidential election results. science of coercion roderick sent me a link to a story at common dreams: killing the political animal: cia psychological operations and us, by heather wokusch. a cia instruction manual entitled “psychological operations in guerrilla warfare” provides some clues. written in the early s (coincidentally, soon after bush sr. headed the agency) the document was part of the us government’s crusade to bring down nicaragua’s leftist government, by providing training and weapons to the contra rebels. coldplay i didn’t think i’d become a coldplay fan, but then i heard don’t panic in the garden state soundtrack and i couldn’t help myself. now i’m liking clocks. my only problem with all this is that everybody else likes it too. reviewing fcc rules on wifi use i wasn’t really paying attention in june when wifi net news reported on a fcc decision regarding control of wifi: the fcc says landlords, associations can’t regulate part use: the fcc’s office of engineering and technology says that the function of regulating and coordinating frequency use is reserved to the fcc itself. it’s a clear refutation of mall owners, airports, and condominium associations to limit use of wi-fi and other wireless technologies. why we fear the fcc the engadget headline on monday appeared at first exaggerated: the fcc says it has power over anything that can receive and play a digital file. but, the short news entry reveals the truth of the headline: in a brief filed in a suit brought against the broadcast flag by the electronic frontier foundation and publicknowlegde, the fcc argues that not only do they have the right to regulate that all digital tvs, settop boxes, digital video recorders, satellite receivers, dvd recorders, etc. ken nordine’s word jazz ken nordine may have the best voice ever. in the pantheon of deep soothing voices, ken nordine’s stands above the magnetic fields and mc honky, and about on par with barry white. content management below are loosely organized speaking notes for zach’s essentials of web development class that i guest-lectured/substituted on monday, november th. either we do the content management, or we get the computer to do it for us what is redundant and repetitive about web management? placement of branding elements. placement and updating of navigation elements placement and tracking of ads updating of lists, indexes, and other info as a site’s content changes these tasks consume time, but do not require great skill. what’s up with lowell and donuts? see the full what’s up with lowell and donuts flickr photoset with slideshow. follow that with the post-donut tour photo set. story/explanation/narrative to follow. sometime. donut shack eat-a-donut still hungry defensetech compares book to practice in fallujah the news from fallujah is grim. casualties are heavy on all sides, the city is being bombed to ruin, and those few civilians that remain are without water or power while bodies rot in the streets. defensetech reported on the fallujah push last week and included some quotes from the army’s new counterinsurgency operations field manual: concentrate on elimination of the insurgents, not on terrain objectives… get counterinsurgency forces out of garrisons, cities, and towns; off the roads and trails into the environment of the insurgents… avoid establishment of semipermanent patrol bases laden with artillery and supplies that tend to tie down the force. dangit: freefonts a part of me hates freefonts.com. it’s the part that has too often found just the right font, only to discover that the free or cheap knock-off version that i had didn’t have all the characters, like quote-marks and other punctuation. then i see a font like “accidental president” and realize what a sucker i am for font shopping. thanks to bookofjoe for the link. also, high tech-styles (get the pun? shatner’s return: has been william shatner has a new album out. most people receive this news with a smirk, or a chuckle, or a dumbfounded look. let me assure you, he can’t sing any better than you think, and probably not any better than in his previous albums. but here’s the thing: the first single common people, really is good. well, good in one way or another. i laughed the first time i heard it, and the second time, and again and again. ludicorp will be flooded with under-qualified applicants job ads reveal a lot about a company, what technology they use, what they’re developing, and what sort of culture they have. this one from ludicorp/flickr caught my eye: starting immediately, we’re looking for a great technical operations person. the ideal candidate can grow into a leadership role in technical operations and has broad practical experience on both the systems and networks sides. requirements: years system administration experience with linux and apache (some network administration experience strongly preferred) experience with both and bit systems experience with both hardware and software approaches for load balancing web serving and database traffic experience in firewall administration and best practices for security basic network design and administration current knowledge of hardware systems (servers and networking gear) prior experience running mid-sized systems ( servers) bonus characteristics: fish tacos oh decadence! veterans day provided not only a chance for reflection but also a rare thursday free from the classroom. so what to do with this open period of time? the answer was easy, dinner party. i have wanted to have my colleagues roxanna and john over, but time is always an issue. i phoned them up and they accepted. now the fun began — menu planning. while vacationing with my parents in vegas last summer we went out to marvelous food chain, the cheesecake factory. high tech-styles foof started out by making some interesting ipod sleves. now they’re offering foofbags for your ibook and powerbook. if you are looking for a funky alternative to neoprene, rubber or plastic to protect your apple technology from scratches, then we think that this site is for you. our foofproducts are handmade, simple and beautiful. foofproducts were originally created in a martello tower (dublin, ireland). they are now currently handmade using a pinnock sewing machine (sydney, australia). delicious library & earthcomber & what? i’ll be saving my pennies, because delicious library may be the coolest new app in a while. ars technica revied a beta and gave it an . out of — for a beta of a . product. people are right when they suspect that something very different is going on over in the mac corner of the software development universe. is it something crazy, or something sublime? you be the judge. money grubbing you’ll notice there are more ads on the site recently. it’s not because i need to recoup my investment in the site and need the pennies i get for these ads; it’s just because i’m a money grubbing bastard. anyway, this is the response i got to my application to the target affiliate program: we regret to inform you that target.com has chosen not to accept you into their affiliate program at this time. the campaign for klem the killer klown jones soda, the folks who make the extra-flavored pop with the intersting photos on the label have an online gallery where you can submit works to appear on future labels and vote on works already submitted. roderick’s girlfriend toni submitted an piece and he’s campaigning for it: hey there. toni is trying to get her klem the killer klown banner on a jones soda bottom. help her out by voting for her image! wpa cracked yesterday’s story about wired and wireless network security, and policy-based networking (sort of) was really just preparation for wifi net news’ wpa cracking story. glenn fleishman’s lead is quite direct, “we warned you: short wpa passphrases could be cracked — and now the software exists.” he explains further: a weakness in shorter and dictionary-word-based passphrases used with wi-fi protected access render those passphrases capable of being cracked. the wpa cracker tool is somewhat primitive, requiring that you enter the appropriate data retrieved via a packet sniffer like ethereal. better networks through policy back in the fall of , psu was still considering its wireless plans. things were moving slowly, and the decision makers seemed to be looking for answers in the wrong places. i’d been agitating for better answers, a simpler solution, lower costs, and more progress. my criticism landed me on the hot seat, and i was soon asked to be more constructive. my answers are in this presentation, the accompanying handout, and a handout for a followup meeting. at the time, the networking staff was leaning towards a proprietary . x-based authentication scheme that required specific client software and had limited hardware support. the package was rather pricey, would have required additional client software and hardware purchases, and was restrictive in its support of student computers. at an institution that supports over users, most of whom purchase and maintain their own equipment, the plan seemed to have a lot of shortcomings. i wanted the school to look at the wireless isp model, and consider the options used there. i also wanted the networking folks to explore network security over-all, rather than just wireless security, as most network threats affect wired and wireless networks in similar ways. i no longer work in the it shop, where i was a sys admin at the time, but this presentation and my arguments may have been successful. the school selected a commercial captive portal authentication system, just like the wisps. a lot has changed in the wireless market over the intervening year, but i’m offering the presentation here anyway. getting schooled on trademark law krispy kream, the donut folks, are itching to get krispy kream drive in on route in belsano to change their name. i’ve no idea where belsano is, but ower christina hoover says “we’re an ice cream fast food stand. it’s a drive in.” it’s been the hoover’s bread and butter since . what krispy kreme is really arguing is dilution of their “famous” brand. since going ipo a few years ago, krispy kremes have popped up everywhere across the county, from sbc park in sf to the excaliber in las vegas. ipod news galore ipodlounge has posted a lengthy buyers guide for the ipod and accessories. it’s a whopping pdf — they call it retro because it’s in magazine format. whatever, it’s packed with details and includes comparison reviews. mac is offering up a chatty review of the ipod photo. tera poked around and found an odd “photo import” command lurking in the menus. could this be the feature that allows camera users to import memory card contents directly? recovery lawrence lessig picked out a comment by adamsj that resonated with him: “i’m going to spend time these next few days looking for the america in my heart. it may be a while before i see it anywhere else.” the response was strong and swift. the first few comments were highly critical, even personally critical. john‘s comment seemed to sum up the republican view: you may also find it in the scores of millions of voters and nonvoters in between manhattan and san francisco whom the democratic party has repeatedly mocked, ridiculed, called stupid/ignorant/intolerant, and excluded for the past or so years. stealing from the bookofjoe once again, i’m echoing a lot of content from bookofjoe. i just can’t help myself. without the blog, how would i know about products like the flatulence deodorizer? the flatulence deodorizer — u.s. patent no. , , — is “guaranteed to eliminate embarrassment from odors associated with flatulence – forever – or your money back.” says the site: “try it, you’ll like it – and so will the others around you. bookofjoe says cia, nsa, defense, and others will make kerry president “the old guard of the cia, threatened and beleaguered as they haven’t been since the disclosure of ‘the family jewels’ by the rockefeller commission in , is striking back.” when bush turned to the intelligence agencies to produce “evidence” to support his neocon plan to invade iraq, they ponied up. to them, that’s what you do when you work in the executive branch and the executive gives an order. of course, much of the intelligence community’s behaviour was formed in the days when the buck stopped at the desk in the oval office. fear the takedown, part ii: homeland security copyfight and teleread both picked up on an ap story about homeland security agents enforcing trademark law. pufferbelly toys owner stephanie cox “was taken aback by a mysterious phone call from the u.s. department of homeland security to her small store in this quiet columbia river town just north of portland.” calls from law enforcement agents get noticed. calls from organizations charged with securing america from terrorist threats get fretted over. halloween : the movie food, booze, fire: halloween . links: picoserver and ivideo picoserver: japanese firm package technology is coming out with a x . x mm box called the picoserver that’s essentially a web/mail server with an ethernet port and three sockets for sensors (one out, two in). this could be a packaged implementation of the ibutton tini ics from dallas semiconductor. then again, it might not be. either way, it’s interesting and convenient. i just wish they were cheaper than the $ or so engadget claims they’ll cost. the october surprise npr’s senior news analyst, daniel schorr, reported wednesday that the bush administration has been busy keeping the bad news it has known about for months out of the press and away from the public scrutiny. iraqi explosives the bush administration knew about the tons of missing explosives a year ago, but still claims no knowledge of how they went missing or who might have taken them. their knee-jerk reaction, of course, is to say the explosives went missing before us troops invaded, but tv news video that has recently come to light shows us troops inspecting the explosives then being ordered away. what have you done for me lately, dubbya? unionvoice.org asks are you better off now than you were four years go? in his four years, george w. bush has taken away overtime pay, presided over the first net loss of jobs since herbert hoover and the great depression, proposed a percent cut in funds for children’s hospitals, sought tax breaks for companies that export jobs overseas and signed a medicare prescription drug bill that helps hmos and drug companies more than seniors. grandma had more sex fleshbot pointed to a story in the guardian that reports on a study by prima magazine that suggests married women of today have less sex than married women of the s. women in the s had sex an average of twice a week. but a survey found two-thirds of today’s women said they were too tired to manage that much. when i mentioned this to sandee, she echoed what prima says about it: warmonger ≠ support our troops on the heels of “<a href=”/post/ ” title="there _were no international terrorists in iraq until we went in“>there were no international terrorists in iraq _until we went in_” comes a story from alternet: “bush has failed the military on almost every level — marking the difference between being militaristic and pro-military.” discounting that he sent american troops into iraq on false pretenses, a real commander would fight for the welfare of his troops. fictional story asks: is there a right to life after death? the story focuses on the brain as an organ, in this case, an organ donated for medical research after the death of the host. what has prompted the lawsuits, protests and threats just over one year after the procedure is not the facts of the initial donation, but the university’s decision to terminate the experiments, and therefore the care, of the brain. what the [right to life groups] and their supporters claim is that brian schultz, the nine-year-old organ donor who legally passed away one year ago, is actually alive and well in the research lab. c&d = takedown = chill = limited creativity = limited speech ericka jacobs at copyfutures found my fear the takedown story about bits of freedom’s takedown study. she over-stated my effort; all i really did was quote text from copyfight, which they quoted from doom , but that’s how blogs and the web work. more importantly, erika explained a lot more than i did, including detailing takedown proceedures and safe harbor provisions under us and european copyright law. finally, she ends by quoting a report by chilling effects, a copyright resource center maintained by the “electronic frontier foundation and six law school clinical programs. prepare to get screwed by drm copyfight is picking up on something i started talking about a while ago: content owners want to re-sell you the things you already own. digital isn’t about copying, it’s about not having to re-purchase music just because the record company releases it in a new format (album, cassette, cd, beyond cd). the real threat: me me is about just that. hbo, for one, is very straightforward in its faq that the goal is to take away your time/space shifting rights in order to sell them back to you. the sweet taste of lead bookofjoe reports on a october washington post story titled: lead levels in water misrepresented across us. what the headline really means, however, is that lead levels are under-reported accross the us. “the problems we know about are just the tip of the iceberg,” said erik d. olson of the nonprofit natural resources defense council, “because utilities are gaming the system, states have often been willing to ignore long-standing violations and the epa sits on the sidelines and refuses to crack down. serene, calming video turn up your speakers to enjoy the serene music and pastoral scenes in this relaxing video of a car ad. [update:] the original link is broken; look for current links to the video in the text and comments of this newer story. malware, osx on old macs, brass knuckles arstechnica reports linux and mac os x get some love (?) from malware writers: some of you may have seen e-mails purporting to be from the red hat security team. the e-mail contains a link to fedora-redhat.com and prompts users to download and install a patch for fileutils- . . , stating that a vulnerability could “allow a remote attacker to execute arbitrary code with root privileges.” the “patch” actually contains malicious code that will compromise the system it is run on. “there were no international terrorists in iraq until we went in” it made some news when former british foreign secretary robin cook, who resigned from the cabinet over the iraq war, said: “there were no international terrorists in iraq until we went in. it was we who gave the perfect conditions in which al qaeda could thrive.” now, news organizations around the world are quoting the iaea in saying: nearly tons of conventional explosives that can be used in the kind of car bomb attacks that have targeted us-led coalition forces in iraq for months have vanished from a former iraqi military installation, the un nuclear agency said monday. ribbons a story on npr’s morning edition this morning declares: yellow-ribbon magnets carry complex meaning. the library of congress’s american folklife center tells the history of the yellow ribbon. though its conceptual beginnings are mixed, penne laingen was the first known american to tie a ribbon ’round an ole oak tree in hopes of the safe return of a loved one from conflict or captivity. it was , and her husband was among the hostages taken that november in teheran, iran. duties and responsibilities “i really don’t know what he did for us.” — said recently about me by my old manager to a former co-worker. cliff points at stuff so, cliff points at stuff a lot. it turns out that he’s pointing in every picture in my photoblog that he appears in. sure, it’s only five out of five photos, but it’s still %! more photos from maisonbisson in car ipod, take engadget echoed a story from autoblog (duh, i just noticed that they’re both from weblogs inc.) about an ipod integration kit that works with most all -or-newer cars: ipod car. first, it gives a clean line-in to the stero from the ipod, then it gives next and previous track as well as rewind and fastforward control on the stereo. sure, you can buy a bmw and get the same deal as an option, but this is cheaper. digital camera reccomendations a friend asked me what digital camera she should buy. her criteria were that it be small and inexpensive. my answer: the pentax optio s with a mb or gb sd card. why? it’s less than an inch thick, is hovering at just over $ , and works well. my slightly upscale alternative is the olympus stylus , but xd memory cards are much more expensive than their sd cousins. still, olympus’ new stylus verve looks like a winner. red sox the red sox did an amazing thing last night: they won. there’s a lot of talk about how historic the four wins in a row come from behind victory is, but for most people, it’s enough simply that they won, and they beat the yankees. close to home, psu students, and students all over new hampshire and massachusettes, expressed their joy over the sox’s victory in a way that has mature adults™ shaking their heads everywhere. i’m no economist, but… it’s an old story, the growing gap between rich and poor, and it’s probably booring as hell to most. thing is, i fear it’s shaping america in more ways than can be counted. i’ve been at a loss to make a clean argument about this, so all i can do now is give you this: across the great divide: in , ceos made times as much as production and non-supervisory workers. fear the takedown copyfight points me to doom which reports on bits of freedom‘s recent project: dutch civil rights organization bits of freedom has run an interesting experiment: they put up a text by a famous dutch author, written in to accounts with different isps. then they made up an imaginary society that is supposed to be the copyright holder of the author in question, and sent copyright infringement takedown notices to those isp via email (using a hotmail account). “try a florsheim maneuver” quotes from the bookofjoe: “the bleeding always stops.” …my favorite of the zillions of wonderful, pithy, often-harsh apothegms i’ve heard in my years in medicine. there’s more: “try a florsheim maneuver” [kick him to see if he’s dead or faking] “we won’t know until the autopsy.” [actually spoken on internal medicine rounds by a resident when i was in med school, in response to the question, “what’s he have? tv-b-gone wired news ran a two page profile of the inventor and his creation. just two weeks before the us presidential election, npr found time run an interview with the inventor. gizmodo rants angrilly about it. clearly, a device that shuts of televisions gets attention. tv-b-gone is a one button remote control who’s only purpose is to turn off televisions, whereever they may be. from wired news: the idea for tv-b-gone was born at a restaurant in the early s, when altman and his friends kept paying attention to a tv in the corner, not to one another. monday politics sex and politics, voter registration at strip clubs “ashcroft used to care more about pornography than terrorism,” says scot powe, professor of law at the university of texas. “the guy is a throwback to the early s; maybe that’s being too generous.” <p> […] </p> <p> david wasserman, a first amendment attorney, [says:] “my fear is that a second bush administration will unleash a slew of prosecutions against adult entertainment web sites, video stores and producers of adult films. monday copyfight disney thieves peter pan from copyright-holding childrens’ hospital charity peter and the starcatchers by dave barry and ridley pearson and published by disney’s hyperion books is billed as a prequel to the children’s classic, peter pan. […] but the hospital charity says [it] is getting nothing from peter and the starcatchers — which has been on the new york times best seller lists, has had an extensive author tour and has its own web site. monday tech now that wifi access is common, wifi-dependant applications are starting to appear. providers are finding out that the key to encouraging usage of hotspots and the key to leveraging hotspots to boost business is by offering applications that customers can use. <p> </li> <li> <a href="http://wifinetnews.com/archives/ .html" title="rest stop wifi roundup">rest stop wifi roundup</a><br /> <blockquote> <p> texas has signed a contract to install wi-fi at locations by oct. sunday links links: starting with politics, going to copyfight, ending nowhere. on the mediathis week is reporting on the controversies about sinclair tv and bush’s wiring, looks at why there’s a dearth of local real local news, and, most interestingly, compares bush’s lies to kerry’s exaggerations.the whole show is available as mp . realclearpolitics lists polls in swing states and elsewhere. earthbrowser (for mac) gives us a glimpse of the world, showing swirling clouds and other weather, but hiding the politics and tension. football injuries joe was telling his son, justin, about his college football days. it was mostly a tale of his injuries, including one that required he have fluid drained from his knees daily before practice. he says it hurt. it hurt a lot. it hurt to drain the fluid. it hurt to practice on it. it hurt throughout the day and night. justin asked why he would do such things to himself. because he could not imagine doing anything else. local cinemas while yahoo movies is okay, it doesn’t track all the local theaters. fortunately, many of them are online: the nugget, hanover lebanon lincoln cinemas smitty’s/chunky’s tilton then there are the drive-ins: meadows drive-in route , woodsville, n.h ( ) - fairlee drive-in theater fairlee, vt. ( ) - st. louis i’m ashamed to say that st. louis, missouri, wasn’t on my list of must-see-cities™. it’s not that i thought i wouldn’t like st. louis, it just never crossed my mind to go there. i’d also forgotten about the arch. i ended up in st. louis because it was hosting the library information technology association annual conference. i did the arch friday morning, before the conference. the day was rainy and gray, but the arch still stood out as an amazing structure. veicon thin client solutions the theory is that thin clients save money over the long-haul because they require less maintenance and management, have longer useful lives, and can be purchased for about the same or less money than the pc you might have otherwise used. the problem is that it’s very different from the normal practice and not many people can explain exactly how it works. so, in the absence of good information, most people go on like they always have and ignore the possibilities of thin clients. qr codes qr codes are starting to appear everywhere. i’m intrigued and i want to know more about them. here are some links i dug up and hope to return to: wikipedia on qr codes schubart’s wikipedia on qr codes jphonegames on qr codes qr code generator qr codes and php a better qr code generator winging into cleveland the wing dips toward the ground while turning for the cleveland airport. lake erie is visible underneath the clouds at the top of the frame. two more photos from this series are posted in my new aerial & scenic set at flickr. what liberal media? now on cnn.com: sinclair broadcast group, owner of the largest group of television stations in the nation, plans to air a documentary that accuses sen. john kerry of betraying american prisoners during the vietnam war, a newspaper reported monday. this story is bigger than it looks, and i almost let it slip by without mention because i couldn’t fully address it. but ignoring it won’t make it go away, so…. libraries under fire komo tv is reporting big brother™ is watching, even in small communities off the beaten path. deming, washington, a town of with a library that “isn’t much larger than a family home” is facing a showdown with the fbi. the fbi wants to know who checked out a book from a small library about osama bin laden. but the library isn’t giving out names, saying the government has no business knowing what their patrons read. redlightgreen teleread reports: redlightgreen.com, a creation of rlg, searches through million books based on such criteria as author’s name, title, and subject matter. not full text search–but still useful. over at redlightgreen, they say it “helps you locate the most important books and other research materials in your area of interest, and find out whether what you need is available at your favorite library.” foggy st. louis from the top of the arch this is my second try at stitching these photos together. i decided to give up the illusion of the single shot, and added the white borders to make clear that this image is a composite. the resolution is way up on this one, and it shows. the baseball stadium is clearly visable on the left, the football dome is on the extreme right. click the picture for larger (or smaller) views. the rumble in st. louis this text has been moved from the scenes from st. louis story so that it can be filed, more correctly, in politics & controversy. unable to get into the “town hall” to take part in the debate personally, i went looking for a place to watch it. sadly, the sox game pre-empted the debate at most bars, but the drunken fish was showing it, with subtitles only. regarding the debate, oliver willis has a clip titled “watch your president flip out of his gourd” and everybody is asking is this bush’s dean scream™? bowling museum and hall of fame things learned at the international bowling museum and hall of fame (and easily repeated as quotes from their online history page): sir flinders petrie, discovered in the ’s a collection of objects in a child’s grave in egypt that appeared to him to be used for a crude form of bowling. if he was correct, then bowling traces its ancestry to bc. […] there is substantial evidence that a form of bowling was in vogue in england in , when king edward iii allegedly outlawed it to keep his troops focused on archery practice. copyfight friday microsoft ceo steve ballmer did another one of his monkey acts when he went ape about music and drm. most people still steal music…we can build the technology but there are still ways for people to steal music. the most common format of music on an ipod is ‘stolen’. it could just be a picture of what happens when microsoft wakes up and realizes it doesn’t own and can’t control everything, but it also reveals a lot about where the company is going. ballmer could have said that the shifting of purchased music from one device or format to another is a legally protected form of fair use (at least for now). instead, he argued something like “microsoft’s drm is the only solution to piracy.” anyway, it’s a crock of shite. teleread (always an anti-drm advocate) has picked up on it. — and — riding mower gizmodo has this picture of what they describe simply as a “homebrew riding mower.” i can’t help but like it, and i have a feeling my friend joe will be trying to make one of his own soon. stealing from the bookofjoe as long as i’m quoting content from bookofjoe, i might as well post these two other links i got from there this week: douwe osinga’s visited states dynamic map dohicky and awfulplasticsurgery.com. fox news just makes stuff up most people know i’m not a huge fan of fox news, at least in part because fox news is no great fan of mine. al franken and eric alterman are rather detailed their explanation of just how conservative fox is (it’s like the tower of pizza leaning toward texas; actually, it’s like the tower layed down in texas). but you’d have to figure that even conservatives would have trouble keeping a straight face while making up lines like this: “‘didn’t my nails and cuticles look great? st. louis wifi panera offers free wifi in about locations. the odd thing is that even though their listings didn’t name a location near my hotel, a proximity search found one in my hotel: westport plaza westport plaza maryland heights, mo then there’s also apple store west country: west county center des peres, mo …just a quarter mile east of on manchester. eccentric or autistic, you decide bookofjoe ran a story about eccentrics by david weeks. his story is really just a listing of the characteristics of eccentrics as quote from the book, but it makes a good game to calculate how eccentric a person is. try the list on for size: nonconforming creative strongly motivated by curiosity idealistic: wants to make the world a better place and the people in it happier happily obsessed with one or more hobbyhorses (usually five or six) aware from early childhood that he is different intelligent opinionated and outspoken, convinced that he is right and that the rest of the world is out of step noncompetitive, not in need of reassurance or reinforcement from society unusual in his eating habits and living arrangements not particularly interested in the opinions or company of other people, except in order to persuade them to his – the correct – point of view possessed of a mischievous sense of humor single usually the eldest or an only child bad speller what isn’t so funny or joyful is his later story about autism, accompanied by the iconic diagnoses sheet pictured at right. feel safer now? i guess somebody will sleep better at night knowing our department of homeland security is shaking down music and video pirates. their new plan: strategy targeting organized piracy (stop), a crackdown on the theft of u.s. intellectual property such as pirated compact discs and knockoff auto parts. the effort is consuming the attentions of attorney general john ashcroft, commerce secretary don evans and u.s. trade representative robert zoellick and senior officials from the department of homeland security. weird museum tour, september travelling buddies, willberry & cliff i should thank roadsideamerica.com for making a rainy day a _fun day_™. will and i were supposed to go on a hike, but the rain killed that plan and most anything else we could come up with. roadsideamerica.com gave us alternatives. randmcnally gave me directions. cliffy met me in warren, we picked up willberry in manchester, and headed off to our first stop in leominster. tales of woe i just got im’d by my friend karen. her sister got married this past weekend and they were all in new hampshire for the event. here’s the transcript: hi – sooooo sorry we did not call the wedding was insane everything kept going wrong all weekend i didn’t really expect you to call. not that i didn’t want to see you guys, but weddings are crazy stuff. the rehersal restaraunt closed, the chef for the reception quit, the organist over booked, the salon canceled our reservations, my wedding dress never got finished, it rained during the party at my mom’s house…. cocktail manifesto we’re huge fans of the new joy of cooking by marion rombauer becker, irma s. rombauer, and ethan becker. hardly a meal goes through our kitchen that isn’t shaped in some part by the recipes and general information in its pages. a recent discovery was joy’s description and defense of cocktail parties. so, when a book as serious and valuable as the new joy of cooking raises alarms about the declining future of cocktail parties, we listen. canned meats monday some time ago, a box with the above pictured contents went to chuck robidoux. he wrote back: nothing starts a monday off like kippered seafood snacks and deviled ham with a side of spam and potted meat food product followed by vienna sausage, all washed down with some icey cold clam juice. now i am ready to face the day. yours meatily, dr. meaty mcmeat meatofski meatovich hamkowsky-beafeau porkson politics, terror, & sexual identity i hadn’t given it the slightest thought, but then i read tinynibbles.com’s travel advisory (this site has been referenced previously at maisonbisson). what do politics, / , & sexual identity have to do with each-other? read: traveling when you do not appear as the gender on your identification is much more tricky…. if your driver’s license says “f” and you look like an “m,” you’ll have some explaining to do. with the patriot act, when they run your license through at the airport, it automatically links to all other federal databases, and if there are any discrepancies, again you’ll have some explaining to do — and a possible delay. nixichron & techno-retro lust decades ago, nixie tubes were used as indicating devices in many different types of instrumentation, and ultimately replaced by the cheaper – and unattractive -led display. having been obsolete for almost a quarter century, these glowing bottles of ionized gas have attracted another generation who appreciate their beauty and mysterious function. the display tubes may be decades old, but the clock is gps accurate. those who’d rather just fiddle with nixi tubes than spend a pile on on a clock (though we all agree it would be well spent), can buy bare tubes here. feeling the web: pulse, buzz, zeitgeist flickr zeitgeist  blogpulse  yahoo! buzz  google zeitgeist  round one: kerry , bush thank npr for putting audio of thursday’s presidential debate on their site. spin-masters will be working this one over for a while, but the original is the most important. there were people who expected bush to come off in his casual, frat-boy manner, but he didn’t. he stumbled, he got red-faced, and he never answered any questions. republicans like to stay on message, but their message, already short on details or plans, has grown stale. the mac vs. pc debate i generally don’t get into this, but a series of columns by paul murphy at linuxinsider (linuxinsider!) caught my attention. in macs are more expensive, right?, he compares apple’s offerings to dell’s and finds the pcs cost about the same or more than similarly equipped macs. at the low end…the pc desktops are marginally less expensive than the macs — if you can do without their connectivity and multimedia capabilities — and considerably more expensive if you can’t. film performance licensing in case the notion strikes me again, i’m putting these links here so i can find them in case the notion strikes me again. the aforementioned notion is one of wanting to do public performances of movies, who know why. this would be easy, except for copyright, so these links are for information about getting performance licenses for films. wisconsin department of public instruction’s information on performance, with links to disributors. cultural revolution-era clip art book oldtasty has posted a collection of pictures scanned from the pages of a clip art book of the cultural revolution. i’ve always enjoyed look of communist art, and i’m particularly pleased with this showing. things you can do with isbns jon udell has been working on librarylookup and other mechanisms for finding library content on the web. in the meantime, librarytechtonics, library stuff, and the shifted librarian have picked up on it. part of it is about oclc making their records available to search engines. now both yahoo! and google in the game. so what you do is put your isbn in the properly formatted url and you’ll be given links to libraries that hold it: via google and via yahoo! a day in the life of joe i’m not sure of the origins of the following text. there’s nothing patently false in it, so i’m posting it here for all to ponder. joe gets up at a.m. and fills his coffeepot with water to prepare his morning coffee. the water is clean and good because some tree-hugging liberal fought for minimum water-quality standards. with his first swallow of coffee, he takes his daily medication. his medications are safe to take because some stupid commie liberal fought to insure their safety and that they work as advertised. all but $ of his medications are paid for by his employer’s medical plan because some liberal union workers fought their employers for paid medical insurance – now joe gets it too. korean thanksgiving jong-yoon kim emailed to tell me today is chusok, the traditional korean thanksgiving day, when families gather and give thanks to their forebears. according to the lunar calendar, today, sep th, is aug th, the korean thanksgiving day. tonight, we will have the biggest and the brightest moon of the year. traditionally, we pray to the moon for our hope and believe that the moon will listen to us. enjoy the moon and have a great day. google news gamed? what happens when machines edit our news? what happens when news sources game google news to raise their ranking? online journalism review is asking that question, and has some interesting answers to report. it seems conservatives and conservative-biased news or quasi-news organizations use people’s full names, while mainstream sources and those with a liberal bent often use only the last name. the result: google newsing for “john kerry” results in some incredibly negative stories, but “george bush” is largely positive. ultra portable i’ve been interested in ultra-portable computers for some time. my first such computer was a newton message pad , which remains useful despite its age. the newton was replaced by a palm m that cost less and did less. no more email, web browsing, no writing or word processing. in short, nothing more than addresses, calendar, to-do lists, and a note or two jotted down using the infuriating graffiti text recognition. home-made arcade i found retro gamer magazine on the rack last week and couldn’t hep but pick it up. it’s issue six with a feature story on building both stand-up and cocktail arcade cabinets with pcs running mame (which isn’t to say you couldn’t use a mac instead). for now, i want to keep track of these related websites: check ultimarc for arcade buttons, sticks, and fancy interfaces to make them work. throwing google a bone for cliff cliff worries that his website, spiralbound.net, doesn’t get indexed by google often enough. he’s a good guy, so i figure i’ll prime the pump for him. here, google google. solaris docs: migrating veritas volume manager disk groups between servers{# } solaris docs: solaris disk partition layout{# } solaris docs: copying a boot drive between disks with different partion layouts if you’re looking for those, you should also take note of these here at maisonbisson: configuring sun t storage arrays and things to remember while doing upgrades on mission critical sun equipment. techlinks dartmouth college in the wifi limelight, again as they replace their . b aps with a+b+g aps. wifi net news wonders how wimax will change dartmouth’s plans next time around. foof makes some snazzy looking ipod and laptop cases. michelle has set up an example of the worst designed web page ever. it’s a counter-example thing. brad templeton brought a voip phone to burning man. it’s automotive week in the blogs first gizmodo published a feature on in-car computers. arstechnica got into the automotive theme by reporting the international cxt story. not to be outdone by gizmodo, engadget reported on the ultimate car computer install: a tatra with a mac in it. for some reason, i went looking at the tatra car-mod and found tatra trucks which seemed to connect back to arstechnica and caesar’s gushing about the hemtt. after all, the largest of the tatras is called the kolos (colossal). roderick’s sites roderick has been sending me links and i’ve been lax about posting them. some of these links are nsfw, and one of them is a present back to roderick. i’m not going to comment, because i’m lazy because i don’t want to prejudice you. corporate mofo a fundraiser billionaires for bush hello laziness: management tips from the executive slow lane kite aerial photography i got sort of excited about kite aerial photography a couple of weeks ago in a post about photoblogging. i was amazed with scott haefner‘s work and especially impressed with his vr picture of slain’s castle in scotland. scott is pretty serious about kap, and it shows in his description of his rig, but what’s an amateur or naive fool to do? engadget is doing features on things to do with an old digital camera, and this week they tackled kite aerial photography. scenes from the museum of bad art the museum of bad art (moba) in the dedham community theater. it’s in the basement outside the men’s bathroom, illuminated by a single fluorescent light hanging from the ceiling the moba slideshow. more photos from maisonbisson. sandee’s clothing donations it’s photos, but i think there’s actually only items. no, i’m not sure why i photo’d each one. more photos from maisonbisson the plastics museum the plastics museum is in leominster, ma, and online at plasticsmuseum.org. the national plastics center and museum is a non-profit institution dedicated to preserving the past, addressing the present and promoting the future of plastics through public education and awareness. the educational staff has supported this mission throughout the years by conducting hands-on science programming for schools, organizations and the plastics community. and, if you’re a lucky kid, your school might get a vist by the plastivan: the bellingham accident i pulled up to the stop sign at the end of north st., looking to turn left onto route in bellingham, ma, at about : pm on saturday september when i saw a red dodge neon coming down the hill towards me with its brakes locked up. it was a busy intersection and with roads still soaked from the heavy rains that had had been falling all that day and the day before but had recently cleared. funky time gizmodo pointed out this fancy clock by kikkerland. being the clock-fiend i am, i had trouble not looking for more. ship the web seems to have kikkerland’s entire catalog of clocks, which is more than enough to make me drool. of course i want this one and this one and this one and this one. “i wanted a tatra, so i got a tatra” engadget picked up on the story about the tatra with a mac in it. i couldn’t help checking for changes since i first saw the story. there’s a new version of dashmac, the control software, and it seems he can now control his car via sms messages, but most things seem in-line with where he was going. the thing is, i can’t help but get interested in the car itself. i sort of went gaga for tatras after seeing the original story and doing some research. megapixels, cheap engadget was quite excited about the gateway dc-t megapixel camera, now selling for $ at various retailers. i know more than one person who wants a cheap digital camera that doesn’t suck, so i went looking for reviews. steve’s digicams has some really detailed reviews, so i was excited to see they covered the dc-t . they say it’s a rebranded toshiba pdr- . their review is based on a price of $ , so weigh that when considering their so-so conclusions. mobile carrier wireless networking i put together a list of wide area wireless networking options in semi-rural areas for a friend recently. it’s far from complete and may not be accurate, but it’s a start. the coverage area i was looking for was north of portland, me, but we all know coverage maps lie and local conditions vary. i focused on pc-cards, but most carriers sell phones that can be attached via usb port. these aren’t campaign commercials ebaum’s world added a couple of funny bush videos recently. what is soveriegnty? bumble mumble. two things: if he was a lot smarter, he would have known the meaning of “sovereignty,” but if we was just a little bit smarter, he would have known that the question was about how his government would treat native americans and answered that. the claim is that this is a video of george w. techlinks the save betamax campaign has nothing to do with videotape and everything to do with the fair-use rights that allow us to legally convert cds to mp s or legally use tivo to keep up with our favorite shows. these rights are under siege by content producers who want to charge consumers for every use. copyfighters look here. rumors are that oqo will release their ultra personal computer soon. be better dork: command line stuff be geeky and look at the apache modules: ``` /usr/sbin/httpd -l compiled in modules: core.c prefork.c http_core.c mod_so.c ``` set your path: ``` path=$path:/usr/sbin export path ``` project censored’s annual roundup project censored has released their list of the most censored stories of - : # : wealth inequality in st century threatens economy and democracy # : ashcroft vs. the human rights law that holds corporations accountable # : bush administration censors science # : high levels of uranium found in troops and civilians # : the wholesale giveaway of our natural resources # : the sale of electoral politics # : conservative organization drives judicial appointments # : cheney’s energy task force and the energy policy # : widow brings rico case against u. high and mighty i can’t help but steal the title to keith bradsher’s excellent book about the titanic rise of suvs on our highways. bradsher, in his book, makes note of efforts at freightliner and mercedes to release uber-suvs based on the companies’ commercial truck bodies but weighing in at just under the limit at which commercial drivers’ licenses would be required to operate them. both companies eventually decided against it, but now international is going forward with similar plans. the international cxt is the latest entry in the super suv market. at nine feet tall, over feet long, and cruising at six to ten miles per gallon (diesel), it’s the kind of vehicle any texan could love. ars technica went off-topic to give me the heads up. along the way, caesar got all excited about the hemtt. sewer in the woods, unknown flower found the left image in the woods near warren nh this weekend. photo is composite of four smaller pictures taken with my clie th , but the scene is entirely real. seperately, i found the flower on the right a week before, while hiking around the other side of the lake where the sewer scene was found. i’ve no idea what it is, but i’m not against finding out. more photos from maisonbisson pepper pad i can’t help but want one of pepper computer’s pepper pad hand-held computer thingies. it’s available for pre-order now at only $ . but what is it, you ask? according to pepper, it’s “either as a user’s only wireless computing device or […] a convenient, easy-to-use accessory to a pc.” it’s a linux-based palmtop computer with gb hard drive, x . ″ display, . b+g, and a bunch of other stuff. in-car computers the age of the in-car computer has come. one vendor calls them “carputers,” and gizmodo lays it out for those who want an intel-based cpu in their trunk/under the seat/in the dash. what to do with a computer in the car? now that computers have moved out of the den to become part of the home entertainment center, users are anxious to use that library of downloaded music in their cars too. claim: beverage choice = politics i’ve been a little slow to blog these things lately, but this comes from beverageworld magazine. they published the results of a poll connects beverage choices to political affiliation. they break the politics down into six choices: democrat, republican, independent, independent liberal, independent conservative, and none of these, then they compared booze and soda-pop choices for each. of booze, democrats and “none of these” drink the least. the three varieties of independents seem to drink the most. conservative independents are % more likely than the national average to tipple some variety of whisky, while liberal independents are % more likely to drink imported beer. overall, the liberals are more likely to drink than the conservatives, but republicans are more likely to drink than democrats. the implication, of course, is that candidates can woo swing drinkers by offering the right drink to the right person. which, as my wife would say, is just good manners. claim: sleep position = personality about a year ago, reuters reported on the results of some sleep research from professor chris idzikowski, director of the sleep assessment and advisory service and a visiting professor at the university of surrey in southern england. the story is still online now at wellspan.org and netscape news. in summary, your sleep position is a reliable indicator of your personality. here’s how it goes from netscape’s version of the story: nh license plates for a variety of reasons, i was happy to discover that nh allows drivers to check the availability of vanity plates online (though, somewhat nervous find that the state uses microsoft servers). the search enlightened me to a variety of plates i didn’t know about. we’ve all seen the “veteran” and “purple heart” plates, and a few “antique” plates, but i’ve never seen a “street rod” plate. but there are even more plates available. in car ipod without wanting to get into the rest of the story, i’m now trying to figure out how to plug an ipod into a scion xb. the xb comes with a stereo by pioneer, but i haven’t been able to get details about what inputs it supports. installer.com and logjam both offer connection kits that appear to give me rca aux inputs to the radio head unit, but pioneer offers a simple ip bus adapter that might also do the trick. photoblogging, etc. i think i’m a fan of flickr. it makes photoblogging easy and fun. easier, anyway, than setting up an email to blog solution on my own, and the community features are more fun than i’d expected them to be at the outset. flickr more or less automatically puts up a blog entry for each photo i upload (though i still have to configure the layout features to my satisfaction). anyway, in related web surfing, i came across the following: mini golf minigolf is very serious business. very serious. more photos from maisonbisson texas’ crony politics and the presidency i finished cronies by robert bryce recently and i can’t help but tell people about it. i hadn’t really wondered why so many presidents and vice-presidents have been from texas, but bryce did. “two of the last three american presidents — and three of the last eight — have been texans. each of them got to the white house by exploiting a network of money and power that no other state can match. co-worker it turns out that one of my co-workers is blogging over at live journal. rnc eve nyc’s sex workers expect to be extra busy while the republicans are in town. there’s been talk of terror alerts. get some backstory here, then read ridge issues alert for u-boatattacks on northeast coast (and laugh). google seems to think maisonbisson and alandwilliams are similar. there, i found pleasure boat captains for truth and cabbies against bush. it seems the cabbies are offering free rides to kennedy and newark airports for gop delegates who are willing to go to iraq to fight. muppin tongue muppin wags his tongue, leaves slobbery mess on lens. more photos from maisonbisson republican national convention to be windfall for nyc’s sex workers the new york metro reports that the sex industry is expecting a to percent uptick in business while the republicans are in town for the republican national convention this week. mary, a stripper at ten’s cabaret speaks from experience. she worked the rnc in philadelphia and expects the strip clubs in nyc to be “really crowded” during the convention, adding, “the girls have been talking about it literally since june. heat: dell server thermal load (btu/hour) it’s a shame that dell doesn’t list the thermal loads of their products in the datasheets at the online store. it’s a shame that it took several google searches to get close to a link with the info, then mine the google cache of a dell support forum and find/follow a chain of links before i could get that detail. as it turns out, there’s some dell and the environment page where they list all their products and their environmental properties/certifications/regulatory compliance. camera goes all to hell, bits recovered from memory card sandisk is playing this as the coolest thing that ever happened. some photographer planted a couple cameras to photo the demolition of a bridge over the mississippi, the explosion was bigger than he expected, he lost one of the cameras, but the cf card survived in working order. mobilemag has the story. sandisk has a press release. and every blog in the western world is echoing it. the photographer is don frazier, a staff photographer for the southeast missourian newspaper. o’reilly mac os x conference i trust o’reilly’s books, so when i see they’re running a conference about something i’m interested, i get excited. the third annual o’reilly mac os x conference is like that. with speakers like andy ihnatko, david pogue, and rael dornfest and tracks covering digital audio, “insanely great mac”, programming & scripting, and system administration, this could be the summer macworld that no longer is. the effect would be complete if it were one the east coast. clie annoyances, part the clie th stylus is one of the most annoying parts of the palm os-based handheld. it’s small, too small. it telescopes to an almost usable length, but it’s still too narrow to hold comfortably. so i’m a little reticent to buy a replacement for the one i lost. also, you’d think the clie could have come with a decent sync cradle, or any sync cradle. and, while i’m whining, why can’t the keyboard also work as a sync cradle? making a dat/dds tape drive work on red hat enterprise linux we could see messages about the tape drive in dmesg, but it wasn’t giving the device name. we tried working with /dev/st , but we kept getting errors. everything seemed right, but it didn’t work. it turns out our scsi card was the problem. it wasn’t being properly recognized. after a tip, we tried the following: /sbin/modprobe aic xxx where “aic xxx” is appropriate for our adaptec card. we checked lsmod and found the aic xxx stuff properly initialized there (shortened output): itunes vs. firewalls itunes on the pc on my desk (notice i feel more possessive of the desk than the pc) hasn’t been able to share music to or from itunes on my powerbook. blame the firewall. a moment of googline led me to travis saling’s guide to enabling itunes sharing through a firewall. here’s the ports that need to be open: port tcp port udp however, he notes: the conservatives vs. the academy alternet has a story by joshua holland about the right’s crusade against lefties on campus. as i saw with my experience with the conservative sniper that was trolling here not long ago, the conservative mission is to criticize everything that’s off their message. holland describes this as “backlash” politics: the backlash came about when traditional big-business conservatives, tired of facing the resentment of ordinary working-class americans, stumbled onto ‘wedge’ social issues in the s. configuring sun t storage arrays sun’s t documentation is available online: the sun storedge t and t + array configuration guide explains physical configuration. the sun storedge t and t + array administrator’s guide explains the software side. the short course: creating volume ‘v ’ using half the disks: vol add v data u d - raid standby u d vol init v data vol mount v creating volume ‘v ’ using the other half of the disks: vol add v data u d - raid standby u d vol init v data vol mount v listing volumes: faith-based missile defense defense tech is reporting on the progress and prospects of missile defense (and their title is too good to pass up). early in his administration, president bush put a whole lot of stock in “faith-based” initiatives to solve domestic problems. now, the president seems to be taking the same approach to military matters. defense tech quotes slate’s fred kaplan: in the past six years of flight tests, here is what the pentagon’s missile-defense agency has demonstrated: a missile can hit another missile in mid-air as long as a) the operators know exactly where the target missile has come from and where it’s going; b) the target missile is flying at a slower-than-normal speed; c) it’s transmitting a special beam that exaggerates its radar signature, thus making it easier to track; d) only one target missile has been launched; and e) the “attack” happens in daylight. fbi investigates a friend sent this along yesterday: i was visited, a couple of weeks ago by an fbi agent investigating whether or not i was involved in terrorist activities. seems one of my neighbors (i don’t know who) placed an anonymous call saying that “[name deleted], who works for [airline name deleted] and lives [address deleted], resembled a terrorist on a watch list.” so, the guy had to come over here and make sure i was not evil. galleries of oddness i ran across darren barefoot‘s hall of technical documentation weirdness, where he catalogues “wacky, bizarre, surreal and otherwise strange examples of technical documentation.” considering the number of poorly done or just weird technical illustrations we’ve all seen, you’d think the gallery would be larger. when done with that, go to the snope‘s urban legends reference pages photo gallery. you’ll laugh at some of the images (and you’ve seen at least a few of them already), but the real entertainment here is in the stories that supposedly explain what’s true and what’s false. mac consulting i get a number of requests for help with people’s macs. they’re are often willing to pay, but the truth is that computer support (on any platform) is one of the things i least like to do. a typical question looks like this: we’d like to upgrade or replace our aging mac and have questions about how to upgrade or what to buy. we’d also like to network our computers on opposite ends of our house and are wondering about wireless. extra links swim-up, floating blackjack tables for your pool. yes, the hard rock las vegas has similar stuff, but their minimum bet is too high for my game. there’s a sock subscription service, and it’s been around for five years. a chinese dvd player manufacturer has developed a unit that excels at playing china’s famous black market dvds. i’m not that excited about case-mods, but this predicta case-mod gets my nod. flying car options in commenting on the space race story, zach pointed out that the moller skycar is still under development (which is better than going bankrupt or just disappearing — like so many other good ideas have). if you poke around the site you can find video of flight tests and sales info. yes, they’re taking deposits for deliveries they hope will start in . meanwhile, the sky hasn’t fallen on the trek aerospace millennium jet either. o’reilly covers rss ben hammersley’s content syndication with rss has got me back on the rss wagon. hammersley covers the history and context of rss’s development in more detail than many other tech books have given their subject. i’m ashamed that i didn’t know rss got its start as “hot sauce” in apple’s research labs. you won’t find it on the web now, but hot sauce was an interesting technology demonstration in / . i’m also ashamed i didn’t know of the connections between efforts at creating the “semantic web” and rss ( . random/color-light/balloon lamp im jealous i didn’t think of these things before kyouei ltd. released them as a product. a dvd that fills your tv with solid colors to illuminate the room. a cd with tracks for tones: “when using the ‘random’ function, the cd will automatically select random tones, and make a new melody.” a combination of battery, led, and balloon that results in a glowing glob of latex. the only thing cooler than these is a little book titled count sheep that was filled with pages of identical sheep arranged in rows and columns, ready for counting. rnc anarchy writer paul schmelzer has a list of (civil disobedience?) actions against the rnc in nyc. among the actions planned: bikes against bush, radio jacking, backback broadcasts, wifi on wheels, and accurate crowd counts. crowd counts? it seems government bodies like to undercount the number of people protesting against them, so a few hactivists will be using technology to gather crowd images from above and use image analysis software to do the counting. we the media dan gillmor’s we the media caught my attention. from the publisher’s description: for the first time, bloggers have been awarded press credentials to cover the national political conventions. …grassroots journalists, including bloggers, […] are dismantling big media’s monopoly on the news. through internet-fueled, interactive vehicles like weblogs, these readers-turned-reporters are transforming the news from a lecture to a conversation. they’re publishing in real time to a worldwide audience that’s eager to read their independent, unfiltered reports. look ma, no fire protection alternet is featuring a story about the bush administration’s attempts to reduce nuclear power plant safety requirements. this news might have slipped by unnoticed, except mainichi daily news is reporting on a steam explosion at a japanese nuclear plant that killed four and injured seven workers today. bush’s plan, against this background, seems haphazard. at least this accident didn’t result in a radiation leak, the the tokaimura nuclear accident did. space race heats up it’s been almost years since sputnik began the space race and years since a few men hobbled about on the moon, but i don’t yet have a flying car and i can’t take an orbiting vacation. folks, the space race wasn’t won, it was abandoned. and that’s why we have the ansari x prize. burt rutan’s team seemed to be in the lead earlier this year with the successful launch of spaceshipone, the competition has been in the news lately. strange days this story is too complex for me to do it justice, but too interesting to ignore: the mainichi daily news is reporting chess champion bobby fischer has been jailed in japan. fischer, a one-time world grand master who represented the us in cold war grudge matches against the ussr, but has since mostly fallen out of public view and, perhaps, gone a little crazy, was arrested in japan for passport violations. juliusblog on coincidence: bush ratings vs. terror alerts juliusblog has a chart comparing approval ratings on a timeline with terror alerts. guess what? juliusblog makes the following observations: whenever his ratings dip, there’s a new terror alert. every terror alert is followed by a slight uptick of bush approval ratings. whenever there are many unfavorable headlines, there’s another alert or announcement (distraction effect). as we approach the elections, the number and frequency of terror alerts keeps growing, to the point that they collapse in the graphic. now listed in blogshares? i moment or two of ego-googling lead me to blogshares, where maisonbisson is trading me as a penny stock. oh well. cronies a co-worker just handed me robert bryce’s cronies. from the publisher’s description: texans are running the country — maybe the world. now the author of pipe dreams examines who they are, how they got into power, and how they reward themselves and each other, often at the expense of american taxpayers. no other province holds more political and economic power than the lone star state. two of the last three american presidents — and three of the last eight — have been texans. fear aint the word for it mix a born again christian who confuses christ and god (yup, check molly ivins for the quote), clinical and medicated depression, several million believers and call it the church of bush! fear is just the beginning. village voice: church of bush i started to make noise about this a few weeks ago in my story about fahrenheit / : i’m growing increasingly uneasy about the cult-of-bush-worship that brittany spears exemplified in her appearance in fahrenheit. the greeks expected questions and debate, so did the romans before the fall of the republic. egyptian pharaohs, mayan emperors, and soviet premiers may have killed or non-personed those who questioned them, but democracy demands otherwise. mysilo knowing that everybody wants a missile silo, bari has posted his for sale on ebay (thanks to defensetech for the pointer). silo world has the skinny on titan silo design, npr did a story on missile silo homes a few years ago, though most of the silos are empty, abandoned, and dangerous. still, there are one or two realtors that specialize in missile silos. news: bush bushed i hadn’t heard of capitol hill blue until a friend forwarded this story about bush’s paranoid isolation. first, i should say that paranoid isolation isn’t all bad. it worked well enough for ol’ <a href="http://retroplanet.net/ hughes.html” title="howard – “i’m not a paranoid deranged millionaire; goddamit, i’m a billionaire” – hughes">howard — “i’m not a paranoid deranged millionaire; goddamit, i’m a billionaire” — hughes, but then hughes wasn’t president and didn’t think he was on a mission from god. ‘pod happy the new ipod came monday. stepping up to it from the second generation ipod i had is amazing. most noticeable differences so far: i can now charge from the computer and play music (in the g ipod, it locks the interface and flashes “do not disconnect” any time it’s plugged in to a computer), the ui is faster or more responsive and is now customizable (a bit), it pauses playback when the external power supply turns off (especially useful in the car). things you have to believe to be a republican today my father forwarded this to me this morning: saddam was a good guy when reagan armed him, a bad guy when bush’s daddy made war on him, a good guy when cheney did business with him and a bad guy when bush needed a “we can’t find bin laden” diversion. trade with cuba is wrong because the country is communist, but trade with china and vietnam is vital to a spirit of international harmony. woody guthrie on copright copyfight is reporting on the infringement lawsuit threatening the creators of the presidential election parody animation that’s getting all the laughs. they’re quoting techdirt which apparently has a quote from guthrie himself: this song is copyrighted in u.s., under seal of copyright # , for a period of years, and anybody caught singin’ it without our permission, will be mighty good friends of ourn, cause we don’t give a dern. apple fusses over fuse fuse, a music tv network trying to compete with mtv by actually playing music videos done some bilboards in nyc that look a lot like apple’s silhouette ads, but with people pole dancing and masturbating and stuff. gizmodo came through and posted images of the ads so low brow people outside ny (like me) could be further corrupted by them (i’m not complaining here). let’s hear it for gizmodo. yeah! these aren’t cubes also at gizmodo: the volume macropod. they’re like cubicles, but cooler. they’re mobile, but useful. ad agency chiat-day made big news about giving up structured offices and such back around [cnn story & supervert.com story]. the point, of course, is to have people working out of cube farms because they’re cheaper, cheaper, cheaper. problem is, they feel cheap and they make employees feel unvalued. according to the cnn story: “employees who were […] looking forward to having a regular office the way they always thought it was going to be, and then they don’t have that. this land greg & evan spiridellis oever at jib jab have put together a damn funny flash movie about the presidential race. from the lyrics: … kerry: “you can’t say ‘nuclear,’ that really scares me. sometimes a brain can come in quite handy” … bush: “you’re a liberal sissy” kerry: “you’re a right wing nut job” bush: “you’re a pinko commie” kerry: “you’re dumb as a doorknob” life goes on… sandee called me from home friday to say she was having trouble playing music from our primary music server. every time she selected a song itunes complained that it couldn’t find the file. i had a plausible explanation at the time and didn’t think much of it, but sandee was really reporting something much more serious: the complete loss of all our music. over the past five years or so, we’d built a collection of about gigabytes of music, just under , files that could play / for over two months straight without repeating. mapparium, boston religious landmarks usually don’t interest me, but the mapparium really is a sight to see. …the mapparium, located within the christian science publishing society. a thirty-foot stained-glass globe room in lobby of the christian science publishing society gives one an ‘inside view’ of the world. standing on the thirty-foot glass bridge, which traverses the diameter of this large sphere, visitors can virtually be encompassed by the world. from pole to pole, you can journey through and explore the correct proportion and relationship of the earth”s land and water areas. you can take it with you: dvds on palm/clie junglemike has an interesting post on compressing video for palm playback at the src forums (n the cliesource forums): this guide explains in detail how you can prepare video to watch on you palm handheld. it [is usefull] for converting full-length . - hour movies to be stored on even a small mb sd-card with uperior quality. let me not fail, however, to mention that this seemingly harmless and legal use of technology puts users smack in the middle of the biggest land (property) war since napoleon invaded russia. fox and conservative pals out spreading more slander and libel welcome the flacks. i don’t get many comments on stories here at maisonbisson, so i was interested when i found a comment to my story about the outfoxed documentary just an hour after i’d posted it. here’s my theory, and it’s supported by stories in eric alterman’s what liberal media and al franken’s lies: conservative groups spend a huge amount of time identifying and attacking every liberal criticism. this mysterious matt (perhaps from ohio? outfoxed outfoxed: rupert murdoch’s war on journalism is out on dvd and vhs now. outfoxed examines how media empires, led by rupert murdoch’s fox news, have been running a “race to the bottom” in television news. this film provides an in-depth look at fox news and the dangers of ever-enlarging corporations taking control of the public’s right to know. i was hooked before i saw the outfoxed preview, but i’m definitely buying the dvd now. another military family against bush another military family against bush bumper stickers and other products available. another military family against bush value t-shirt another military family against bush long sleve t-shirt another military family against bush frisbee another military family against bush mug another military family against bush big mug another military family against bush messenger bag another military family against bush bumper sticker another military family against bush: all products why? my mother called in tears the other night after watching fahrenheit / . cheap food, cheap labor i’ve found myself in a number of conversations about food safety lately. eric schlosser’s fast food nation: the dark side of the all-american meal comes up regularly, but i keep wanting to mention bushwhacked: life in george w. bush’s america. why? because molly ivins and lou dubose did such great job explaining the political context in which the attrocities schlosser describes take place. “with republican control of the presidency and both houses of congress, you might want to consider becoming a vegetarian. old news, big story google just lead me to wage slave journal where i found an august story about american casualties in iraqi. it turns out fox news was comparing iraq to california and claiming the former was safer than the latter. fox can’t do math, but others can. should anybody ask, you should know that if californians were dying at the rate us soldiers in iraq are, the governator would be facing deaths per day. drm snuffs the constitution teleread brought me this story about a copy protected version of the us constitution that’s now selling on amazon. among the restrictions: it can only be printed twice a year. for those who don’t understand the irony already, the us constitution is in the public domain in so many ways it’s funny, yet a commercial publisher has created a version so locked up that it can’t be used and appreciated by all. fahrenheit / we expect fox news and the washington times to hate it, but the reaction from the left seems to prove the old adage that a liberal wouldn’t join his or her own side in an argument. my own arguments against it relate to how little new information it revealed. the audience at the show i saw laughed hysterically at the images of our government primping themselves for the camera and generally looking dim, but the facts of the film have been well reported in previous works. more japanese ice cream i got all excited about some unappealing japanese ice cream flavors when i found the story in mainichi daily news a while ago. i thought the lineup of fish, octopus, squid, ox tongue, sweet potato, fried eggplant, crab, corn, rice, wasabi, shrimp, eel, noodle, chicken wing, miso, and cactus flavored ice cream had everything pretty well covered, but now mdn has done it again. they’ve put up a new gallery of flavors of ice cream you’re unlikely to find in the us: more about clie th palmzone has a nice story about the th with a number of links to software, updates and more information. what everybody should appreciate is the link to the clie movie recorder. i thought i was so smart in an earlier story when i linked to the google query i used to find this file. that worked for about a month until my site landed at the top of the google index for that search. beef t-shirts rock beef t-shirts coming back: it was quite a while ago now that my cafe press shop was the top google result for beef t-shirt. worse, i haven’t linked to the shop from maisonbisson for a while either. so it was something of a surprise to discover that the products are still selling. yes, real people are buying these laughable t-shirts and other crap. they’ve been shipped to california, illinois, ohio, and oklahoma (as well as a few to me here in new hampshire). this is copyrighted? defense tech is reporting that the warner/electric/atlantic conglomerate of music labels gave up its defense in a copyright case against their artist wilco. it seems wilco sampled from irdial-disc’s compilation of recordings from mysterious radio stations that everybody expects to be related to espionage (and clearly emanate from government buildings and embassies). nobody argues that wilco sampled from a previously recorded work, the argument was weather irdial’s work was itself copyrightable. nauset beach panoramas more photos from maisonbisson taken monday morning, around : , before getting on the road to return to new hampshire. troy and karen were kind enough to invite me to the cape for the weekend, where i generally lazed about and did nothing. we did take in a double feature at the wellfleet drive-in (don’t miss the picture) and ate lots of ice cream, but the main point was being lazy. the letter not sent (re: lpfm, npr, nhpr, complaint) i was going through my files and found this unfinished letter to nhpr, my local national public radio affiliate, regarding the fcc’s proposed licensing of community-based low-power fm radio stations (lpfm). my point was (or it was going to be) that npr was afraid to compete against other non-profit stations. npr paints itself as an alternative to commercial radio (and it does a pretty good job most of the time), but it’s also a business. so npr joined with commercial broadcasters to kill lpfm before it could get off the ground. the fight included big broadcasting’s techs playing faked interference to scare lawmakers, but then they had to backtrack and call it “simulated” when somebody blew the whistle. sadly, it really didn’t matter what the played; they brought the money and the pols gave a bullet to lpfm. april , mr. sean t. gillery director of development new hampshire public radio north main street concord, nh - mr. gillery i recently received a letter from you regarding renewals to our nhpr membership and i wanted to take a moment to express to you my concerns over national public radio’s opposition to community-based low power fm radio. as you know, npr joined with the national association of broadcasters to lobby for legislation that has blocked the fcc from licensing lpfm stations. i believe that npr’s position on lpfm betrays the beliefs and philosophy that had once drawn me to public radio. can npr or nhpr be trusted to put its listeners’ needs first and its commercial interests last? not anymore. i am growing increasingly concerned that the recent and ongoing consolidation of the radio marketplace will further limit and degrade coverage of news, culture, and local events. npr has covered the consolidation and aired concerns about its negative effects: morning edition, “radio merger explosion” december , weekend all things considered, “black radio” august , all things considered, “radio consolidation” january , . all things considered, “radio merger” october , . unfortunately, coverage of the mergers ended when the fcc began considering lpfm in . since then, npr has run a handful of lpfm stories. each one focused on the potential for technical problems the lpfm law might create and the battle in washington to prevent the licensing of lpfm stations. but none of the coverage discussed the reasons why the fcc was proposing lpfm. none of this coverage put lpfm in the context of the earlier commercial radio consolidations. npr, of course, had to issue a very carefully crafted press release to explain their position. i can’t imagine what the response, if any, from nhpr would have been had i sent the letter. in the time that’s past, the republican controlled fcc has proposed measures that would lead to further market consolidation. ironically, an nhpr sponsored station is one of the few lpfm licenses granted by the fcc before the law ended further licensing. the station, which plays classical music in the concord area, went on the air just this year. comment spam first i was amused to see comments, then somewhat angered to discover they were spam, then amused again to find that comment spam etiquette requires that it be gratuitously patronizing. then i struggled to decide if i could delete the comments without feeling like i was censoring free speech. my solution (and it’s sort of evil) is to delete the comments (and the links they contained, i don’t want my (puny) google rank associated with them), but reprint them here: foiled troy has this image of a tin-foiled cubical on his blog. it comes from servers under the sun and is interesting enough. now that i’m checking his blog regularly, i’m sort of wishing he’d update more often (not that he doesn’t have a lot of interesting stuff in archive). . six months of books: the art of deception asmara bloody saturday in the soviet union the cockpit dangerous waters face to face with the bomb flight the iron triangle lies and the lying liars who tell them the new roadside america parting the desert reefer madness small things considered states of emergency an underground education wireless hacks audio books: bushwacked in a sunburned country re-reads: divided highways the race the real las vegas allconsuming.net allconsuming.net aggregates book mentions on the web, mostly in blogs. assuming bloggers can be trusted, the allconsuming stats can show a lot about what people are reading and talking about. david sedaris’ new book dress your family in corduroy and denim is ranking with mentions today and the day before (or, that’s what it was when i checked it last night). dan brown’s the davinci code consistently ranks near the top of each day, and both these books will get bosted a notch when allconsuming trolls me again today. all consuming is a website that visits recently updated weblogs every hour, checking them for links to books on amazon, barnes & noble, book sense, and other book sites. every book on this site has a list of all the weblogs that have mentioned it, and every weblog that has mentioned books in the past also has a page here listing which books it has mentioned. it’s more than a website, it’s also a set of web services by a guy who seems to know his way around xml, soap, rss and other incredibly useful acronyms. he even authored some chapters in amazon hacks from o’reilly press. anyway, call me a fan. faces richard coniff writes in the january smithsonian magazine about the work of uc san fran prof paul ekman and his study of faces. it carries pictures of a work by artists bill viola and his wife kira perov. yeah, sure, the face is capable of movements expressing , different expressions. yeah, bill’s work is interesting, but… i have two complaints. first, there’s all this talk that facial expressions are confusing. sun’s little marketing problem sun had to make changes. they’re (or were) getting their butts handed to them in the mid-range and entry level server markets, so those changes had to come fast. there was a time when the top of their low-end server lineup was the v with four ultrasparc iii cpus in a u rack enclosure. trouble is, it lists way over $ , . they can’t cut the price on it without bleeding money, and worse, they can’t scrap their old models because their inventory of pieces and parts is too much to swallow if they did. so what they did do is release a new line of low-end servers at half the price, but with some slightly different specs (and, i’d imagine, cheaper manufacturing processes) while preserving their older, more expensive servers in the line as the “better” machines. example: the v is similar to the v but has fewer dimm slots and sports ultrasparc iiii cpus. the usiiii doesn’t have the brains to do more than four-way multi-processing, but the designers used the chip real estate that freed up to put one mb of on-chip l cache. the usiii usually comes in machines with mb of external l cache, but it runs far slower than the cpu’s clock rate. eight mbs of cache is a lot, but arguments seem to favor a much faster one mb internal cache when performance is on the line. beyond the cache issue, the iiii sports a faster interconnect bus called jbus which further decreases the value of an off-chip l cache. access to main ram at almost the same speed as the l cache in previous cpus, and greater over-all throughput combined with the integrated l cache, how can sun argue that the iiii is slower than the old iii? but that’s exactly what sun is doing. their old manufacturing processes left them sitting on huge inventories for all manner of machines, and until they can clear those out, they’ll be sending some difficult marketing messages. the basics of it are like this: if you’re a regular sun customer and can afford it, then continue to buy the really expensive boxes. if you can’t afford it and might otherwise buy servers from our competitors, then take a look at these newer, cheaper models. and if you’ve never bought sun before, take a look at the speedy performance and low-cost of this v . how copyright law changed hip hop kembrew mcleod’s story about how copyright law changed hip hop in stay free! magazine is an interesting tale of how copyright kills culture. in the mid- to late s, hip-hop artists had a very small window of opportunity to run wild with the newly emerging sampling technologies before the record labels and lawyers started paying attention. no one took advantage of these technologies more effectively than public enemy, who put hundreds of sampled aural fragments into it takes a nation and stirred them up to create a new, radical sound that changed the way we hear music. jfk and mr. rogers look the same well, they sorta’ look the same. sorta. the real florida gators from an email from my dad: florida allows those who win permits to take three alligators. they sell the meat and hides , except the tails, which have the best cuts of alligator meat, and which they normally keep to feed their families. mal asked how the alligator meat is cooked; the lady said by cutting it into cubes and deep frying it. she said it tastes just like chicken. leadership who can complain about being compared favorably to ol’ jfk? (yes, in a really vain way, i was happy about it.) a co-worker was surprised to be matched with saddam hussein, but my boss was happy to be gandhi. numbskull, meanwhile, looks like abe. in another test, i was matched with indiana jones and raiders of the lost ark. what famous leader are you? what classic movie are you? extra stories a friend of a friend says his life is made up of places he can no longer go (or is no longer invited). sad, but somewhat true. he’s also a funny bastard. – – – sandee’s aunt had her th birthday not long ago. the aunt makes cakes on the side so it was no big thing when her daughters (who were planning the surprise birthday party for her) asked if she’d make a cake for some unknown group one of them was in. top google lamson library’s portal integration project tops google’s search hits for “library portal integration.” i’ve been crowing about it all over campus for a week now, and while you can argue about what real value it has, it’s still exciting. worldcat now available to world (via google) i’d heard that that oclc was opening up worldcat, their huge bibliographic database, to google. it seems to be online now. if you happen to google some very complete search terms for dan brown’s the da vinci code (look for the worldcatlibraries url), you’ll find a link to the public worldcat record. interesting, but i wonder where this will go. in fairness, this news is about six months old. jenny reported it in december. cliff’s piranha he’s named it officer angry, and it eats like a monster. it looks like a monster too, so that’s not so bad. videos of the fishy fellow eating are at cliff’s website: officer angry chases chow{# } and officer angry eats off a stick{# }. the second one is much better than the first. yes, i shot both, and just as an aside, they were taken with my clie th- (but edited with imovie). re: gasoline blackout day (wednesday, may , ) from jon link, who can also be seen at thenumbskull.com: i hate expensive gas as much as anyone but, this is a problem of our own design. we don’t need to stop buying oil for one day, we need to buy less oil in general. we love capitalism– supply and demand is it’s cornerstone… it can help or hurt us. it is just silly to think that one day without gas will do anything to supply and demand. jon link goes online with thenumbskull.com okay, his self portrait on my white board has nothing to do with his recent website launch, but…well…. thenumbskull.com more photos from maisonbisson japanese ice cream…novelties? fish, octopus, squid, ox tongue, sweet potato, fried eggplant, crab, corn, rice, wasabi, shrimp, eel, noodle, chicken wing, miso, and cactus. those may not sound like appetizing ice cream flavors, but it’s what they’ve got. the secret poetry of donald rumsfeld pieces of intelligence : the existential poetry of donald h. rumsfeld from amazon’s description: “until now, the poetry of secretary of defense donald rumsfeld has been hidden, ’embedded’ within comments made at press briefings and in interviews. his preferred medium is the spoken word, and his audience has been limited to hard-bitten reporters and hard-core watchers of c-span.” the unknown as we know, there are known knowns, dmcra vs. dmca get the word out. the fight is on to create sensible limits to the dmca. read arstechnica’s dmcra argument. copyfight, of course, is covering dmcra, and arguing for it. teleread is swinging for dmcra too. heck, they’ve even endorsed a congressional candidate based on his stand on fair-use. read those and act. tell your congressperson you support fair-use and the dmcra. now say it again with the eff: “i believe in fair-use. the twig it’s actually called the garlic clove, but for a variety of reasons, we just call it the twig. more photos from maisonbisson how do you sell a castle? when you call around for realtors to sell your ‘house,’ how do you tell them it’s a castle? i somehow found out about the martin castle in kentucky, but that lead to information about the dupont castle and that sites guide to over castles in the us. dupont reports there was a fire at martin castle just yesterday. the lexington herald-leader covered the fire. so, i guess the real question is “who do you call to insure a castle? in the window sarah left these as a gift for wendy in the window of her new toy. tesla’s history in colorado springs, colorado nikola tesla arrived in colorado springs on may , . he was met at the train by patent lawyer leonard curtis, and was taken by horse and carriage to the alta vista hotel, where he would reside while in colorado. tesla was greeted at the hotel by a group of reporters, one of whom asked him why he chose colorado for his operation. tesla replied, “i might as well tell you the truth, i have come here to carry on a series of exhaustive experiments in regard to wireless telegraphy — i come here for work. joe’s chickens and turkeys joe’s prized chickens and turkeys. in the brooders now. they’ll be in their coops by may. more photos from maisonbisson restaurant insider a link from wifi networking news points to qsr magazine, the trade mag for the quick service restaurant industry (think mcdonalds and taco bell). the connection here is that mcdonalds plans to offer wireless access in , locations. with mcdonald’s off the market, wifi hotspot operators are looking to hook the next big fish, and that’s why wifi networking news is linking to qsr’s top chains list. some technologists would speak about how we’re moving ever closer to the time when we have ubiquitous hi-speed wireless. music biz sales up uk markets first reported it, then australia’s record industry tried to suppress it, now us sales figures suggest the trend has spread here: record sales are up. yes, despite the riaa’s whining and lawsuits (and p p’s continued growth despite those lawsuits), record sales are up in the us. bbc news reports us record sales up % after a claimed four year slump. this story deserves more attention, but for now i’ll just have to link to my earlier stories about music industry wackiness: bringing digital video back to the living room you can burn dvds of your home movies (and you probably ought to, just for backups), but what if you want to make a movie library to match your computer-based music library? watching video on a computer is no more fun than listening to mp s on the computer’s tinny internal speaker. the solution may be one of a new generation of products that link the tv in the living room to the computer in the office. exploring the news newsmap displays current news in an explorable two dimensional space. headline sizes appear to be weighted based on the number of related stories. like plumbdesign’s visual thesaurus, it’s a truly new use of computer in the display of information. jacque’s cabaret bostonnoise.org says “jacques’ cabaret is boston’s oldest gay bar. the upstairs features live female impersonator shows five nights per week, including weekends. the downstairs basement is open only on friday and saturday, and hosts local bands.” jacque’s official website shows norell gardner & his cast of miss-leading ladies playing every friday and saturday upstairs. the raw bar, “a return to the old style of cabaret where artists entertain each other, for the pure art and enjoyment of it, creating a space for talented people who don’t have the opportunity to perform because their music or performance is more artistic than commercial,” was featured in the globe and plays downstairs at jacque’s underground on the second friday of every month. voip links vonage is starting to look like the ma-bell of voip. it’s not that there isn’t competition — there is, but they just don’t have the profile that vonage has. it looks like vonage has picked up the early adopters, now they have to start converting others. the market seems to have three fields: computer-to-computer only, software client with pots bridging, and hardware client with pots bridging. i don’t much care about the computer-to-computer systems, aim and ichat take care of that well enough. richard clarke’s insider tell-all tom maertens speaks on richard clarke’s insider story in a star tribune article dated sunday march . the troops who could have been used in afghanistan to capture osama bin laden and al-qaida were instead held back for the planned invasion of iraq. in contrast to the , men sent to iraq, only about , troops were sent to afghanistan, a force smaller than the new york city police. the result is that bin laden and his followers escaped across the border into pakistan. … clarke’s gutsy insider recounting of events related to / is an important public service. from my perspective, the bush administration has practiced the most cynical, opportunistic form of politics i witnessed in my years in government: hijacking legitimate american outrage and patriotism over / to conduct a pre-ordained war against saddam hussein. copyright war something doesn’t add up. aria, australia’s version of our riaa recently announced that sales continued to slide there this past year, while critics pointed out that they really had a record-breaking year with million album sales. thank arstechnica for the link. this matches news from the uk this past summer. so why is the industry lying? ignore for a moment the ironic story about the music industry using p p stats to improve their marketing and sell more records. why music biz loves p p jason shultz over at copyfight just posted this story about the mercury news’ story about how record labels use p p stats to boost sales. <a href="http://www.corante.com/copyfight/archives/ .html” title="record labels using “pirate” data to sell more cds">record labels using “pirate” data to sell more cds (posted by jason schultz) the merc has a great article on how the riaa bashes p p out of one side of their mouth while secretly using data from the networks to boost sales of their cds. political diagramming a graph from orgnet plots book purchasing patterns by politics.there’s not much middle ground there. “these political books are preaching to the converted. the extreme book titles on both sides reveal a focus on hate, instead of debate. in a year of presidential election, is this the new arms race?” could it be that our book readers are key opinion leaders in their communities? an opinion leader is someone whose influence spreads much further than their immediate circle of friends & family. what is the simputer? i just saw a pointer to the amida simputer, an indian designed and manufactured pda. the review at engadget sounds sort of down, but it comes from a company on a mission. it seems others are fed up with importing (and paying for) us technology, so they’re developing their own. take a look-see at the amida and mix that with a quick browse of the argosy eb , a chinese designed ebook reader. hmmm… boats it looks like a tug boat, but the great harbour could be a lot of fun. a magazine article talks about bareboat charters in the british virgin islands and the pleasures quietly exploring the coves and uninhabited areas on your own. nasa’s x flies nasa’s x scramjet test plane flew at speeds exceeding mach and altitudes of , feet today. i believe that’s a new air-breathing speed record. globalsecurity.org has a nice wite-up on it. american proprietary eponyms there i was googling “proprietary” for a story about misuse of the word when i came across this gem from r.krause: an eponym is a general term used to describe from what or whom something derived its name. therefore, a proprietary eponym could be considered a brand name (product or service mark) which has fallen into general use. yes, r. has a bunch of them listed, xerox, jell-o, velcro, and more. too bad it was last updated in . i wonder when “google” turned from brand name to verb. what does proprietary mean, anyway? googling “proprietary” results in lots of hits, but very few of them use the word in a positive sense. the webopedia computer dictionary offers: proprietary privately owned and controlled. in the computer industry, proprietary is the opposite of open. a proprietary design or technique is one that is owned by a company. it also implies that the company has not divulged specifications that would allow other companies to duplicate the product. thank chank the font designing folks at chank have a nice list of free fonts to pick from. sure, they’re not the fonts you use to design flyers for the church social or nursing home holiday dinner, but that’s sort of the point. isn’t it? anyway, they also link to nerfect where you’ll find other cool designey things. integrating library systems in campus portals information about lamson library’s portal integration at plymouth state university. i’ll expand this story later, but i want to put the link here now to get it in google’s index. update on pen twirling i did a story on the practice of pen twirling in japan a couple years ago. since then i have received an email from pierre etienne bastouil who is trying to organize a pen twirling competition in paris. despite the popularity of the sport in japan, he’s having some difficulty finding skilled pen twirlers in europe. so the call is out, interested pen twirlers should contact me and i will forward you on to pierre. schlossberg quote “the skill of writing is to create a context in which other people can think.” –edwin schlossberg squirm squirm little man far too often the mainstream press lets politicians get away with revising or misrepresenting their previous positions. far too often the press is complicit in their lies. not this time. hopefully quoticus will develop into a very useful historical truth machine to prevent revisionism. hopefully. ny times on netflix the new york times did a netflix story. the author, william grimes, seemed to like it, but… [my wife and i] each judge the other’s selections harshly. i scored a major victory with “mon oncle” by jacques tati, a director i once dismissed as tedious, annoying and far too french. he is now a god in our house. but i have had my back against the wall after “l’atalante,” a film i had never seen but knew to be, by expert consensus, a towering masterpiece. less than minutes after the opening credits rolled, the atmosphere in the living room grew frosty. i lost control of the mouse for a week. at least i had the foresight to sneak off and watch “russian ark” on my own. that’s the fun of netflix. along with savage recriminations, my home now resonates with high-toned animated discussion of directors, cinematographers and camera angles. once again i’m the moviegoer i was in college, when bergman, fellini and truffaut were in full stride, and adventure was in the air, and bright-eyed cinéastes could sit through a film like “el topo” and not demand their money back. it’s not available on netflix, alas, but the web site does propose an alternative, a compilation of “ed sullivan” shows featuring topo gigio. close enough. interesting enough, but netflix — and services yet to appear — are a sign of things to come: a world of entertainment shaped by the consumer, not by marketers. netflix executives say their edge over the competition is not their library but the way the library is presented to users, who are asked to rate the films they have seen. by sifting through the ratings, about million of them at present, and analyzing buying patterns, a company program called cinematch generates rental suggestions specific to each user. “lost in translation will outperform most $ million films for us, and that’s because of our ratings and recommendations,” said ted sarandos, the chief content officer for netflix. “monster will be huge for us, and that’s not because our subscribers are more sophisticated than the general moviegoing public, but because our merchandising system is much more specific.” it will be a world of what you want, and only what you want, as clearly marked by your previous purchases and selections. you’ll never be upset by products that you don’t want, even if you didn’t know you didn’t want them, nor will you have to tolerate contrary opinions or debate. dr. seuss was so political who would have figured old dr. seuss was so political? rick minear at ucsd has collected a number of the good doctor’s works as chief editorial cartoonist for the new york newspaper pm. “because of the fame of his children’s books (and because we often misunderstand these books) and because his political cartoons have remained largely unknown, we do not think of dr. seuss as a political cartoonist,” writes minear. turkeys on the lot! turkeys aren’t small birds. along the commute from home to work, they’re as common as pigeons in a city park, but it’s still odd to see a turkey in the parking lot (video link). the source video was taken with a sony clie peg-th and edited — just a bit — in imovie. wireless voip gphone is a bust for me, at least for now, but other solutions are available. ars technica pointed out an . b wireless voip phone from zyxel. then there’s the vocera voip communicator badge that everybody at dartmouth college uses. they were happy to show it off during the unleashed wireless conference they hosted last fall. [updated]: the voip market is heating up. vonage is set to offer a wireless phone soon to help compete against at&t’s new entry into the voip market. then there’s voicepulse and packet also making a play in the full-service residential/small business voip market. gamer’s delight: palm emulates gameboy, atari st and apple //e i saw a link for a palm-based gameboy emulator, then was stunned to read about an atari st emulator for palm. a quick google search later, and i found an apple //e emulator too!. it’s the old-timer in me, but i really enjoyed the games on those old systems. more info on the apple //e emulator for palm are at palm info center and freewarepalm. palmemu links up a number of emulators for palm. gphone doesn’t work on clie th i’ve given up on vli’s tech support for gphone, the voip software for palm. the download page said it was compatible with palm os .x devices, but was only tested on the palm tungsten c. i contacted support after trying it on my clie th , but fell into a loop where they kept recommending i try the same simple things and telling me that clies use non-standard audio hardware. i’d, in turn, tell them the results of those simple tests and explain that the th uses standard palm audio apis. hopefully they’ll find a solution, but i think the hangup with the gphone software is a network problem. recording video on clie peg th the cliesource forums are an excellent source of info. it turns out that installing the movierecorder.prc (version . ) from a ux onto the th allows it to record movies. the problem is getting that file…. isn’t google great? if that doesn’t work out for you, try searching at the palm user message board, where you might just find it. here’s the trick: you can’t just install the app via palm sync. scrabble aside from all the other online dictionaries, scrabble players may be interested in the following sites: hasbro’s word lists for tough times (including q without u, two letter words, x words, and more). wordplays.com’s tools for word games is a collection of web apps that would be handy to use (if it were legal to do so) during a game. mark has developed a number of word lists and other scrabble tools. wireless links the publicip zonecd is a bootable cd implementation of nocat’s nocatauth. nocatauth configuration help is available from amsternet and blyx. the leaf project intends to create linux-based firewall-in-a-box solution that has uses for wireless. linspot is a commercial hotspot-in-a-box software solution. nocat, less networks, portland community wireless, and newbury open.net are active community wireless operations. o’reilly wireless devcenter has loads of news. murphy’s junk on the list of places to visit next time i go out west: murphys surplus warehouse: located at n. johnson ave: el cajon, ca. (near san diego) fax , sq. ft. of military and industrial electronics, communications, and mis electronic equipment. sandee’s favorite bad songs s revivals may be played out and we’re not yet ready for s nostalgia. nonetheless, there are a number of songs of the time period that we’re a little ashamed to admit we love. without knowing why, and in no particular order, here they are: the humpty dance funky cold medina can’t touch this ice ice baby do me and poison hotstepper mama said knock you out goin back to cali mildly psychotic? eysenck’s test results extraversion ( %) moderately high which suggests you are talkative, optimistic, and sociable but possibly not very reflective. neuroticism ( %) moderately low which suggests you are relaxed, calm, secure, unemotional but possibly too unobservant of your feelings. psychoticism ( %) medium which suggests you are moderately offensive, uncooperative, and rebellious. take eysenck’s epq-r based personality test. clie memory stick, playing videos, and more… the lexar mb memory stick arrived. it sucks. it’s not really a mb stick, it’s x mb, and you have to flick a little switch to choose which mb you want to use at any moment. let me be more clear: you can only use mb at a time, and you have to eject the card and flip a switch to select the other mb. i don’t know if it’s returnable, but i think i’ll try. interesting site design just ran across - media.de. it’s a cool site. their flash design is top notch and i really like the metaphor. does it work? yes, in the limited context they’re using, it works well. best of all — or most disturbing, who knows — is the soundtrack. composed by yuko ohigashi, it’s haunting and mysterious. mac & palm/clie gps, maybe just learned of the rayming tripnav tn- gps receiver. it’s the type that has no display or ui and must connect to a computer (via usb) to be useful. it’s mac compatible and it appears there’s a slight variation (the tn- ) that works with sony clie palm compatible handhelds. the problem is, the company website is down now and i can’t get detailed information from the other sites. yes, google cache has info, but that’s more frustrating than helpful. of course, amazon doesn’t carry it, so i can’t view the reader reviews there. what i really want is a receiver that will work with both. but perhaps i’m just dreaming. then there’s also the question of what happened to sony’s clie gps cradle? finally, none of this would be an issue if i hadn’t also just read about tomtom gps navigation software for palm. return of dirigibles: delayed or dead? the s saw a resurgence of interest in dirigible airships. people believed their time had come again, but few are flying today. the cargolifter, a cargo airship designed for loads of metric tons (that’s over us tons), is in receivership, and little has been heard of the zeppelin nt. links and more info: story about the cargolifter (via google translations), and a cargolifter image gallery as well (also via google translations). going to see the goats went with will to see the mountain goats, will’s favorite band ever. plans included reliving the beef tatar at the korea garden. read my earlier story about it, but remember that it’s not actually called beef tatar. it’s “ok doi bi bim bab” on their menu. of course i wanted to take pictures of the beef tatar experience, but i also wanted to taste it again. it wasn’t the same as last time. what for wireless? planning for wireless deployments differs from wired network planning in many ways. unlike wired networks, the primary question isn’t bandwidth or reliability, but availability. wireless networking enables mobility — and mobile connectivity — in ways never before seen in the world of computers. just as movie theaters and television coexist despite their similarities, wired and wireless networks will coexist. each has it’s unique benefits and drawbacks. each is desirable for different purposes. bush’s fiscal felony matt miller’s npr commentary about the bush budget includes the following details: a deficit of billion means borrowing almost out of dollars in the budget. it includes billion in tax cuts that go mostly to the rich, but ignores the trillion dollar shortfall in social security and medicare that will start to come due in five years. bush plans to send an addendum to the budget to cover the growing costs of the us military presence in iraq and afghanistan after the november elections. flight planning software for mac i hope someday to have a need for flight planning software, so i’ll keep these urls around for a while: mac flight planner and flight math. vegas links now that the nevada test site historical foundation’s atomic testing museum. is open, you don’t have to wait for the doe’s occaisional tours of the test site to get your radiation fix. lawrence livermore national lab has a review of the new museum. we caught a show at the amargosa opera house (official site) in death valley, just a short drive west of vegas. the opera house deserves a story of its own and the views and scenery of death valley are just beautiful. shopping in new york, ny we watch queer eye for the straight guy a lot over here. it seems we can make time for about one hour of tv per week, and sandee’s decided we’ll spend it with the fab five. i’m sure the new york merchants featured in the show are expecting this, but we’ve started to keep a list of places we have to visit when we next go to the city. i’m posting it here for my use as much as anybody else’s. vegas! i might get around to telling the story later, but for now all i have is a couple movies and a few pictures. there’s a short video of the koi and gardens at the flamingo, an album of snapshots and nightlife, an album of pictures from the very unique amargosa hotel and opera house, and a short video of our short visit to crystal, nv. we saw zoomanity and a show at the amargosa opera house. getting to vegas i blame missouri. kansas city in particular. i’m sure there’s probably another airport like this somewhere, but i don’t know about it. kci, mo, is setup so that you have to exit and re-enter security areas just to change planes. then, if you need to use the bathroom or get something to eat, well then you have to go through security again then too. of all the airports to suffer a three hour delay in, kci might be the worst. dreaming of a sony clie peg th i’ve pre-ordered the just-released sony clie peg th and am anxiously awaiting its arrival. brighthand has a nice review that speaks (mostly) highly of the new palm os compatible handheld. high points were the integrated wifi, excellent battery life (compared to other wifi handhelds), large screen, integrated camera, and relatively good software bundle. low points were the email client, the low resolution of the integrated camera ( × ), and lack of bluetooth (which is included in the european and japanese versions). land of the loops was listening to land of the loops’ bundle of joy on the way home from work tonight. it somehow fit the mood and i found myself really enjoying it. yes, it’s loop/sample-based, but the results are anything bet techno or hip-hop. originally released in (i think?), it holds its tune seven years later. . . things to remember while doing upgrades on mission critical sun equipment…. a: sending stop-a with non-sun keyboards or over a telnet connection with a terminal server, the terminal is hardcoded to a “cli” interface which, in turn, telnets to the console port on the destination host. the point is to get the *telnet* to generate a break, which can be done by: press ctrl-] (or whatever is the telnet escape sequence) at the telnet prompt, enter “send break” newbury open net just saw a link to newbury open net, a community wireless project in boston. newbury open net describes itself: newburyopen.net is a network which provides high-speed internet services, in the form of free wireless and for-pay workstations, to boston’s residents, workers, and travelers. … we believe that high-speed internet must become like a public utility: cheap, simple to access, easy to find, and available to everyone, no matter their location or social status. macdevcenter on home automation first, i found this story at macdevcenter rather interesting: home automation with mac os x, part by alan graham — having more control over how your home operates isn’t just a geek fantasy. you can lower energy costs, improve security, and enhance the overall ambiance of your humble abode. alan graham shows you how to leverage your mac os x computer and get started. home automation is, of course, something i’ve wanted to play with ever since i heard about it. sure, itunes visuals are great, but what about programming all the lights in your house to work like a huge color organ to pulse with the music? but i was also amused by the o’reilly/macdevcenter website. along with the usual print and [email][ ] buttons they had a [blog this][ ] button. while they clearly wanted visitors to see the website as something more substantial than a weblog, they also wanted to cash in on the blogging public’s ability to create buzz and swing google rankings. we like the moon, biscuits, and more flash animation the folks at rathergood.com have no end of flash animations to entertain and delight. may i suggest starting off with moon song, and biscuits? along those lines, i also found (the far too obviously named) flash archive with even more great goodies. yes, you’ve seen some of these before, but there are some new ones there too. and, of course, regular laughs can be had at homestarrunner.com, where strong bad’s email (updated each monday, usually) will likely make you a repeat visitor. zygo: the last energy drink cola wars are one thing, but “altbev” sure has come a long way since soft drink makers identified the market segment in the s. coke’s fruitopia was among the entries from the majors, but, as usual, it’s the independents that have lead the way. water remains the leading altbev, but energy and “health” drinks are squeezing the market. just as coke and pepsi were developing their bottled water brands to catch up with poland spring (owned by nestle, by the way), red bull appeared and turned things upside down. useful dohickeys why can’t i find the sumajin smartwrap, a small cable management device that looks perfect for headphones and other small cables, locally? smartwrap, winner of id magazine’s design distinction award, is a cord manager for headphone cables designed and developed by sumajin, an industrial design firm in singapore. you snap the cord into place at one of two places then wrap and snap into place again. smartwrap comes in seven colors and are produced in limited quantities. /etc/hosts in macos x . i’ve run into a situation things would work better with a static host mapping, but my first thought/fear was that macos x’s netinfo would get in my way. google turned up some old info on reconfiguring netinfo, as well as a slightly more current netinfo tip. but as it turns out, panther is all setup to read your /etc/hosts entries and use those before going to dns or netinfo. so there you go. what is ibiblio? if -year-olds were old enough to remember bush sr., they’d think this bush monologue was the funniest thing all day. so, in the interest of educating and entertaining those -year-olds, let me explain that the current president bush is the oldest son of a previous president bush. bush sr. was elected in , his term of presidency included huge job losses and recession, and he got us entangled in a war in iraq and many other places. deep thoughts; timewasters here’s a graph to get you thinking about politics: job growth per president. who knows if the numbers are real, but it jives with my memory of the past years. this dark and slightly objectionable cartoon of life features a good soundtrack and really cool styling. finally, everybody likes latin translations of old rap songs. right? “magnae clunes mihi placent, nec possum de hac re mentiri.” peer-to-peer, dmca, riaa, lawsuits after six months of riaa lawsuits, you’d think this would be old news, but…. it’s been a while since i’ve reported on the music industry’s attempts to control online music distribution, but ars technica has been following that and the larger issues all along. the story took a turn in december when a three judge panel ruled that the riaa’s subpoenas were illegal. that was a win for the isps that had brought the appeal against the riaa and have now ceased cooperation with the music industry. tivo getting close to home. too close. the folks at ars technica are asking question that i first started wondering about during the patriot’s superbowl win. after the game, the tivo folks released an announcement that britney spears’ pepsi commercial was the most-rewatched ad of the game. their claim was apparently based on stats from the tivos in people living rooms. we’re all familiar with nielson tv ratings, but those viewers know their habits are being recorded. mit tech review’s ten technologies that refuse to die the folks at ars also pointed out an interesting story by the mit tech review. it’s all about things that were expected to have been passed by, but weren’t. it sort of puts us in our place. microsoft, in its biggest act of irony ever, issues security education posters microsoft corp, the software company responsible for producing some of the most notoriously (and dangerously) insecure software ever has issued a collection of posters aimed at, start your irony engine, computer security education. “educate your students, faculty, and staff on the simple steps they can take to protect their pcs,” says the microsoft website offering the posters. site updated um, not many people noticed, but this site was offline for a few months because the hosting company i was using shut down operations. well, i’m back, mostly. i’ve redesigned things (having stolen the design from another site of mine), but there are still a number of things missing. theoretically i still have a backup of the comments and members and stuff, but i may not bother looking. the redstone brewery info is in here, but the categories list is gone. how to get off an rbl it sucks to get on a email blackhole list. click “more” to find out how we got psu off att.net’s proprietary rbl. entertainment value first, take a look at < bushin seconds.org > . it will do more to make you mad than entertain you, but take a look and channel that anger into something meaningful. now that that’s over, take a look at < ebaumsworld.com > and waste the rest of the day laughing. there’s no shortage of video, cartoons, and other junk. enjoy it all. here are a couple links to get you started: super truck, paranoid, something else funny, and yet another thing. the unwired world is growing first, look at some numbers: “‘last year under percent of the laptops have wi-fi built in, this year it’s percent.’ says brain grimm, communications director for the wi-fi alliance” now consider that the quote appeared in a story in aaaworld (yes, the american auto association). their demographic is generally older and non-technical, so either their demographic is changing or “non-technical” is being redefined. i’m going to bet that the water is rising and, just as the world now accepts email, it now seems to expect some understanding of networking. hmmm. [update] and now the minneapolis federal reserve bank is reporting on growing wifi use in the mid-west! oh my. why superbowl ads matter last saturday was the th anniversary of the macintosh. apple announced the macintosh to about million households in a second ad during the superbowl. the ad, which has been lauded as one of the best ads ever and created “event marketing,” rocks. it was this theory of event marketing that lead advertisers to create ever larger, ever more expensive ad spots. and that’s when the ads during the superbowl became the the main event for some viewers. okay, now i want one there are two things you need to know about the the international streamlined tatra site: it’s cool, and they’re cool. i happen to love art deco advertising, and it seems tatra has some of the best. of course, i wouldn’t know anything about tatra (it’s a car company, or it was, they now only make trucks) except i stumbled across this story elsewhere. warren republicans vote democrat former vermont governor howard dean carried the polls in warren this primary night. the numbers for the rest of the state are still being counted, but what’s more impressive to me is the number of voters who went to the polls and the number of registered republicans who wrote in democrats on their ballots. twenty three out of republican ballots cast in this very conservative northern new hampshire town had democrats written in for president. czech it out! bad headline, yes, but what this guy has done with his car is pretty cool. antarctica in my name it’s good to know that there’s an antarctic outpost in my namesake. good ol’ casey station even has a webcam. [update:] here’s an interesting sattelite image of the area, found at this remote sensing project website. ethel’s holiday fashion nothing says holidays like leopard print. more photos from maisonbisson how to have fun like i just did start with approx cup of bacon grease collected over time just like jon’s mom said to do. pour grease into small disposable aluminum loaf pan. insert pan with grease into burning wood stove. wait. watch. wait. watch as oil ignites with a whooosh that’s vaguely reminiscent of a chimney fire. no, that woooosh is exactly how you remember that chimney fire. close stove air intakes and continue to watch fire. more complaining and whining the lousy red cross can’t get its act together well enough to schedule blood drives in plymouth (where i work each day) well enough so regular donors can go to all of them. the red cross knows that something like % of their blood comes from regular donors who make it a point to donate at every opportunity (and how many of us can there be in plymouth?). yet, they schedule a blood drive today, fewer than days since their last blood drive. o’reilly’s wireless hacks the question here is between . x authentication and web-based, captive portal authentication. the former has high client requirements, the later seems too simple. rob flickenger’s wireless hacks has fired me up for captive portals. an excerpt, dispelling the myth of wireless security, makes clear the need for application layer security, an argument i’d say applies to wired and wireless network alike. point: wireless is exposing holes that have existed in our network security all along, but patching those holes will secure everything, including wireless without spending loads of money on expensive aps and proprietary clients. wireless vulnerabilities related to my review of wireless security landscape is this review of threats to wireless security. passive sniffing “the same information in a probe response frame is available in the beacon frames that every . network is required to transmit (even closed networks). so, we just listen for these frames in monitor mode instead.” extreme tech’s guide to exploiting and protecting wifi networks “airsnort can determine the wep key in seconds…” the wireless security landscape the view from the trenches fall below is an email i sent to maclabmanagers mail list in late september . our discussions of wireless security had just begun at that time. the wireless landscape has changed a lot since then, but the responses have information that remains valid and useful to us today. howdy, we’re using wireless in many locations here, but somebody just got scared about security. until now we haven’t been using wep, nor have we cloaking the network name for wireless base stations that serve mobile classrooms on campus. wired mag’s commandments of programming wired magazine has an interesting article on “extreme programming.” supposedly, the solo programmer pulling all-nighters on excessive caffein is out. in are hour work weeks, group coordination, and two people per computer. but what about productivity cry the managers. according to the article, coders do more, do it faster, and do it with fewer bugs this way. summary page for music industry wackiness i’ve posted a number of stories and links related to the music industry and p p and such. here’s a short summary of them. first was a story about how music swappers actually buy more music. then came a story about the decline of the album format, and why it’s a good thing for listeners. i followed that up with something about copying is theft, and other legal myths. and just now i posted a story about the real reasons for the decline in the music biz. perfect for the church social hey, so what about the local sports team and their player that’s excelling with that thing that he does? some people like to argue so much they run out of material. or, maybe it’s like what rob gordon says in high fidelity: “it’s not what you’re like, it’s what you like.” so maybe arguments erupt as we try to establish and defend our identity (evidence: teenagers). if true, and our identity is made up of the pop-culture elements that we consume, then what are the key traits we must evaluate? street lights…and other things that don’t work the way they should it’s probably due to my color blindness, but i have the darndest time seeing streetlights (the red/yellow/green things at controlled intersections) at night. i’ve had to explain it a million times, but nobody seems to understand. finally i’ve discovered a sympathetic friend, sort of. michael darnell writes about his complaints with street lights and other things that don’t work well or aren’t designed well. time wasters i found myself waiting. a cd quietly burned in the combo-drive, a computer slowly reboot after a system update, and a large file was drifting across the ether[net] between my laptop and sever. clearly this was the time to surf over to ilovebacon.com and waste some time. i was in luck right away. ask snoop isn’t quite as funny as old unix jive, but it’s good for some quick laughs. music this, music that continuing the recent music and copyright theme…. it turns out that i wasn’t the only one who thought the buymusic.com ads looked a little familiar. rob walker wrote about the new apple clones for slate.com. “…i kept re-watching the buymusic ads to try and figure out what i was missing. is there a hidden critique here? a satire? not really. they’re just knockoffs. it’s as if, by borrowing the look and feel of apple’s ads, buymusic is explicitly interested in underscoring that its service is a copycat. website spotlight i just added arstechnica to the list of websites i check daily. i’ve been reading technical articles there for years, but two articles today clinched it: “the social complexities of the f-word” and “your cheating heart’s been clickin’ her buttons. both are well worth reading for anybody who cares about the social aspects of technology. well, the first one doesn’t really have anything to do with technology, it’s just funny. copying is theft – and other legal myths music has been an issue for me lately. what with my previous stories about the “decline of the album format” (and why i think it’s a good thing) and how music swappers apparently buy more music, you’d think i’d gotten the matter out of my system. no. copying is theft – and other legal myths is an article that everybody who’s ever heard of mp s should read. no matter what you’ve come to believe (or how much the riaa pays you), the title is real. usb hacking so i’d like to get this old usb video capture device working in os x, but the vendor has quit the business and no os x drivers are around for it. a little searching on the web netted the following how-to on making one vendor’s usb device drivers work with another vendor’s products. the details relate to usb wifi adapters, but we can generalize. with the tips in that story in mind, we can face down the next question: are there any drivers that might be made to work with my usb device? whiney sell-outs charles haddad writes in business week online about musicians making a stand for the “integrity of the album format.” fortunately, he gets it right: this isn’t about artists looking after their art, this is about the end of a business strategy where a few good tracks are mingled with a pile of chaff and called an ‘album.’ what’s really important here is that you can buy what you want, rather than just what labels and the bands have decided you should have. no longer do you have take the fat with the meat — and pay $ or more for a cd that has only three songs you like. …this doesn’t necessarily mean the death of album rock, just bad album rock. a package of great songs that work together will still sell. just look at the evergreen appeal of the who’s tommy or miles davis’ kind of blue . the labels may be forced to change. if filler no longer sells, will the music industry continue to compel bands to produce it? maybe, just maybe, bands and labels will start improving the overall quality of pop music. music labels have heads up asses a story on bbc news (file swappers ‘buy more music’) reports on a study that claims those who download music using p p services (old napster, gnutella, etc) actually buy more music. it should make sense to anybody with a hair of marketing experience: try before you buy. yummy shit karen pointed out an article about scary-but-common food ingredients at fortune.com stupid os x server hint os x server is great, but it doesn’t respond well when you change its ip number. the resulting fiasco will make you think working a fast food job is worth it. here are some links that won’t make it easier but will at least give you a bootable machine: a little how-to support discussion more discussion even more discussion update august , : apple has finally done something, just a little something, to address this problem. dvrs are cool i don’t watch much tv and i don’t own a tivo, but i love the idea. so i’m glad to read about open source folks building their own dvrs. apollo archive the apollo archive boasts a wealth of content covering the moon landing. good stuff. google-watch google has been raved about since it first appeared on the search engine scene four years ago. now that it’s trounced all the other, however, people are getting concerned about the effects of the monopoly. google-watch is leading the charge. their claim? they say that google’s pagerank means only that the rich get richer, and they’re concerned about close ties between google and government snoops. hmmm. you are being lied to i found a collection of three books by the disinformation company on a shelf in city lights. i’d already picked out my book (toothpicks & logos) when i saw abuse your illusions, everything you know is wrong, and you are being lied to lined up and beckoning to me. i’ll have to take another look at them, but at least the publisher has an interesting story. good liberal rabble rousing it’s a pleasure to read the many pages of molotov cocktail for the soul. iug : library portal integration elaine allard and i will be presenting on library portal integration at the iug in san jose, ca. two sessions have been scheduled for sunday, april th: am and : pm. our description, in the program guide: like many colleges, plymouth state college is working to consolidate its online resources inside a portal. within this single point of service students can register for classes and check their grades, faculty can review their rosters and post grades, and staff can review benefits and vacation time. tinkerer’s joy while reading up on the slimp network mp player i came across some mention of dallas semiconductor and their line of wonderfully hackable tini ics. these little things have ethernet interfaces, java runtime engines, and webservers built-in, and are ideal for making non-networked devices internet ready. as if we don’t now have enough internet connected light switches and soda machines. a nice overview of tini is available. ohh, film music pornorchestra: the pornorchestra is an attempt to radically reinterpret the soundtrack to pornographic film. this complicated genre has taken its share of scorn: from adult film producers who refuse to pay it any mind to legions of consumers who instinctively snap the sound off after pressing play. performing live improvised and composed scores to pornographic film, the pornorchestra invigorates the mysterious experience of the voyeur-cum-auditeur. the equivalent of a circus band with its collective eye on the trapeze artist: the pornorchestra teases out the thrill, amplifying the collective gasp at pornographic triumph — and tragedy — using the most eclectic and creative musical minds working in the bay area today. the promise of wireless wired has a story about the effect of wireless on agriculture, theme parks, health care, and conferences. so speaketh o’reilly’s rael dornfest about a recent conference with ubiquitous wifi access: “people weren’t disappearing back to their rooms to check email between sessions. they’d just sit down in one of the common areas and log on. because everyone was gathering in the same place, there was a lot more spontaneous discussion. also, the sessions themselves became more interactive.” cool fonts font diner offers some darn cool fonts. go visit their site for freebies too. a farmer’s job i don’t know who gets the worse end of this stick, but it’s really sad that chemists can’t tell the difference between banned nerve agents and agricultural pesticides. conflict management how to talk down your adversary: “there is no reproach between me and you except the stabbing of kidneys and the chopping of heads.” damn cool site plumb design’s visual thesaurus may be the coolest thing ever. psychoanalysis word of the day ego dystonic elvis vs. nixon a friend forwarded a link that reveals the following story (as quoted from the website): on december , , elvis presley paid a visit to president richard m. nixon at the white house in washington, d.c. the meeting was initiated by presley, who wrote nixon a six-page letter requesting a visit with the president and suggesting that he be made a “federal agent-at-large” in the bureau of narcotics and dangerous drugs. tom bihn bags the story is that tom bihn designs and makes bags for laptops and other stuff. or, at least that’s what tom says at his site. tom bihn has been designing and making bags for well over twenty years. daypacks he made when he was years old are still in use, and in santa cruz, california, where tom grew up, his laptop cases and book bags are almost legendary. conferencing in dc i’m in washington d.c. at the computers in libraries conference. it’s a good lineup of presenters and good programs, but i’m sad to know that i’ll be missing a peace rally this saturday. where to eat and drink: old dominion brewery is in virginia not far from dc. it’s in an industrial park and you’ll doubt that you’re in the right place, but the food and local brews are good. short quiz for discussion: world history mid-term exam this test consists of one ( ) multiple-choice question (so you better get it right!) here’s a list of the countries that the u.s. has bombed since the end of world war ii, compiled by historian william blum: china: - korea: - china: - guatemala: indonesia: cuba: - guatemala: congo: peru: laos: - vietnam: - cambodia: - guatemala: - bi bam bab in cambridge the korea garden is on pearl street somewhere behind the middle east in cambridge, mass. it’s the sort of place that attracts local asians and very few white boys (like me). so it’s hard to say what they must have thought when cliff and i walked in one night this winter. an argument broke out in the kitchen as the waitress presented our order. we joked and smiled among ourselves about it, but my smile fell as my dinner was delivered. counterscript telemarketers may be people too, but this script will ease the pain of their next call. take a look at egbg’s counterscript. and if you’re looking for serious anti-telemarketing resources, look at junkbusters’s resources. warren redstone brochure available! i found a brochure about the warren redstone and present it here for your enjoyment in pdf form. it features the story of how and why it came to warren, written by ted asselin, the man who brought it here. it also has information about the progress of the rocketry in the s. the brochure was originally in tri-fold form, but is presented here as a two page pdf file. enjoy. yum! email received today: nothing starts a monday off like kippered seafood snacks, deviled ham, with a side of spam, potted meat food product, followed by vienna sausage, all washed down with some icey cold clam juice. now i am ready to face the day. yours meatily, dr. meaty mcmeat meatofski meatovich hamkowsky-beafeau porkson justin and the sled dogs the season for running sled dogs is almost at its end. here’s a short video of justin racing for the finish of one of his last races of . click the link to watch justin’s big finish. ashcroft’s biggest boob in the way emails thread their way from one person to another i came across the text of a speech about antics in the us justice department. it was titled “an open letter to john ashcroft” and came with this preface: the following is a letter read by claire braz-valentine, author at this year’s in celebration of the muse, cabrillo college. it is worth knowing that the author is a woman of + years, conservatively dressed and obviously quite talented. marketing artifacts each of us deals with a lot of stuff unique to our jobs or life context, stuff that outsiders never see. now and then it’s fun to see that other stuff. here’s some: silly marketing materials. more commercialism! people have asked about this whole t-shirt thing. click the banner to see how it works. sign up! update: i just found a similar service for video distribution. you might want to check out customflix.com. state of the union? it’s not real, but it may be more accurate. watch the state of the union speech here. thanks to my sister for pointing me to this. [update]: the link above may be down, the speech is mirrored here. where have all the updates gone, long time passing? since this website is such an important and valued news source for so many people, i’ve received many dire complaints about the scarcity of updates over the past month. here’s the story: january is a busy, busy month at work. students are gone, computers must be updated. work also includes many large changes to the lamson library website, and more updates are due shortly. daytime work is one thing, but i’ve also been pursuing my side business more actively. common sense revisited? this may not be news to somebody who hadn’t swallowed the school approved version of american history whole, but there are a few important things to note: before , colonists paid less in taxes than britons in their homeland did. while the colonies were not represented in parliament, neither were big british cities such as liverpool or manchester. meanwhile the colonists enjoyed a free press, voted for local representation, ate better, lived in larger houses, and were generally better educated than their british cousins (the literacy rate in massachusetts was more than twice that in britain). bryson on language speaking on language patterns around the time of the american civil war, bill bryson states: …no nineteenth century journalist with any self-respect would ever write that a house had burned down, but must instead say that a great conflagration consumed the edifice.’ –bill bryson quoting (in part) kenneth cmiel’s democratic eloquence in, made in america, an informal history of the english language in the united states. mitnick off parole he’ll be on parole of a long time, and he’s facing a number of additional restrictions, but kevin mitnick is finally free! maison bisson’s winter drink the holidays are long since past, here’s a drink to carry you through ’till spring. rusty nail parts scotch part drambuie serve over ice in an old fashioned glass. please enjoy it responsibly. the light i’ve found it. it’s here! newswatch: foreign secrets: bad; domestic secrets: good. the news of the day is government secrecy. npr’s all things considered ran two stories about the matter today. one story about general secrecy, and another story about admiral poindexter (formerly of the iran-contra scandal). previously, npr ran a capsule biography about henry kissinger. of note is the discussion about kissinger’s disbelief in open government. that story was followed by analysis by daniel schorr which may suggest why kissinger was chosen to head up the independent panel to investigate the attacks of september th, then another story about his resignation from that panel. trickle down voodoo it seems clear that trickle down economics is back with new tax breaks for the rich, new spending on the security-industrial complex, and our first dip into deficit spending in years. while some call it it voodo economics, faith in trickle down economics seems to be based upon the oft repeated line that anytime you put money into the economy, it benefits everybody. when pressed about rising executive salaries, believers embrace that too as eventually benefitting the economy. i found myself in an argument about these matters recently, and had to take a moment to assemble my thoughts about it. new books i used to read magazines — i find it difficult to commit to things and magazines let me off easy, but i’ve been feeling unfulfilled by magazines lately (those who know me might also point out that i was somehow able to commit to marriage, and i’m still married over four years now). so i’ve been reading books left and right. now, after the holidays, i’ve got a pile more. bowling for columbine highlights meaningless ideology there’s a small battle being fought in the comments of my previous entry about bowling for columbine. it should be no surprise that gun rights are a very serious matter for many people. nonetheless, guns are involved in a huge number of homicides in the us each year. and so those who would seek to prevent or limit those murders find themselves battling gun owners who would rather ignore them. road rage while the state argues with environmentalists about needed environmental abatement in the project to widen i , we should all take a moment to consider the social implications of the plan. wider roads will inevitably lead more people to commute greater distances to work each day. whatever the causes of road rage, we can all acknowledge that time spent in the car is not quality time. incidents of road rage are at their highest in areas where commuting times are the greatest — think of la and washington dc. ipod links: ipod ipodhacks.com ipods around the world newtons around the world ipoding.com podnews wired news’ cult of mac wired ipod hacking story water world water is the primary ingredient in every liquid soap, body wash, shampoo, and conditioner product in my bathroom. some even boast “purified water.” ebn videos online ebn, emergency broadcast network, was a band of media jammers from the days of the gulf war (the one back in ). they disappeared from the scene a few years ago, but you can find some of their old videos over at guerrillanews.com. and, as long as we’re talking about media jamming, i should throw this book at you: jamming the media by gareth branwyn. edit: the links here go nowhere, but a few videos are in youtube: movie: bowling for columbine a friend of mine recently pointed out what i should have seen for myself: conservatives won’t change. so, while bowling for columbine is great entertainment for open-minded folks, it won’t make an impact on the folks who most need to see it. if you’re lucky you may still be able to catch this film in theaters, but everybody should take a moment to view this clip of the cartoon that appears in the film: a brief history. turn of century bridge jumpers had wide field of opportunity the opening of a new bridge in the early th century attracted a lot of attention. it was at that time that materials and engineering skill finally allowed cities to bridge rivers that had formerly required a ferry to cross. new york, with its many islands and rivers, was exceptional in this regard. new yorkers eagerly followed news of the design and construction of bridges. bridge openings where celebrated with days of events and fireworks attended by presidents and luminaries. wnyc’s _on the media_ does sex show. on the media’s recent show on november th and a piece in all things considered explored the relationship between technology and pornography. this is familiar territory for some—wired magazine reports on it regularly… click the links above and listen for yourself. booklist: nickel and dimed when i first found barbara ehrenreich’s nickel and dimed while waiting for someone or something, i picked it up and started reading in the middle. i found myself immediately taken in to her story and her writing, and was more than a little remise to give it up. not many non-fiction books about social issues are call page-turners. but this is one. ehrenreich attempts three low-wage jobs in three cities for a month each, trying to find housing and food within the budget allowed by such work. apple and the future of intelectual property macintouch pointed me to a blog entry at plasticbag.org related to the role of computers in the war over digital intellectual property rights. the author believes apple has already staked out its territory in this matter. after a series of examples, he explains the following: the reasons for all this, of course, are that – for good or ill – at the moment copyrighted material and intellectual property are endangered and cornered beasts anyway. marching toward privatization republicans and business leaders have been pushing privatization (and deregulation) for decades. now, the results of this effort are becoming clear. even as the bush administration announces plans to privatize nearly a million federal jobs, reports of the costs and failures of such privatization roll in. mother jones reports this month on the growth in privatization of municipal water systems. the result in cities like atlanta has been water boiling alerts do to dangerous bacteria levels, and poor service do to a workforce slashed by cost cutting. activist art art is not, or does not have to be, cheery. it turns out that people become troubled and conflicted when they see pictures of the hungry and the homeless just weeks before thanksgiving and the start of the holidays. the nashua telegraph takes up the story here: a new exhibit in the town hall gallery, designed to raise awareness of and funds for the open cupboard food pantry, has gathered some complaints from residents and prompted the board of selectmen to suggest that it be removed. the exhibit consists of a selection of black- and-white photographs taken by resident preston heller of urban street scenes and various people he describes as being at the bottom of the social ladder.’ update nov- - : nhpr reported on this story today, and linked to the photographer’s online gallery. in mother jones: a confederacy of cronies readers can trust mother jones to shine liberal light on conservatives. in a confederacy of cronies george packer tells us how difficult it can be to play america’s ceo, where regular americans really stand. great movie criticism it’s hard to explain why or how i just stumbled across a year old roger ebert movie review, so i won’t. i will try to explain why i found the review so real. i actually saw this movie, and it’s really every bit as bad as the review suggests. ebert questions how movies stereotype baddies. ebert doesn’t get too controversial, so this is as much as we’ll get out of him. mac geeks have more fun thanks to the folks at macos x hints, i’ve been pointed to the most useless thing ever: a tool that allows you to view any quicktime file in your terminal window as ascii text. yes, it is absolutely useless. understanding marijuana liane hansen of npr’s weekend edition sunday interviewed dr. mitch earleywine about his recent book, understanding marijuana: a new look at the scientific evidence this weekend. earleywine has the credentials to look at this seriously and be taken seriously. but he probably won’t be. there’s no shortage of books on this subject, and the drug war marches on. but as long as we’re slinging books, let me throw michael pollan’s botany of desire at you. framethief animation toolbox framethief is a toolbox for capturing hand-drawn frames and assembling them as animation. image sources can include video camera — the old standby, and digital still camera — a new twist that allows animators to work in hdtv resolutions. one component, framesplicer, can be used to turn any quicktime compatible video file into a dv stream that can be used in imovie. political-economic conspiracy? marektplace comentator james galbraith explains in tuesday’s show how this will be a longer and deeper recession than previously thought and many economic indicators may have been manipulated to hide the recession’s true nature prior to november . galbraith reminds us that things were rather similar years ago, when unemployment rose over % and democrats took control of congress from a far-right conservative president. history did not repeat itself, yet. mile markers matt frondorf’s american mile markers takes us on a tour from new york to san francisco, one photo per mile. it’s a fine concept — inspiring, really, but the pictures are quite a mishmash. matt calls his mile marker project statistical photography.’ a lot of photography tends to be anecdotal and heavily edited,’ he says. and it doesn’t present what is really there — every picture from beginning to end.’ yahoo! pen twirling! pen twirling takes great skill that can be achieved only by hard practice and determination. though promoted by stars as famous as miss iyo matsumoto, it can be difficult to find pen twirling masters capable of teaching the sport. hideaki kondoh, who’s interest in pen twirling was sparked by a tv appearance by iyo matsumoto, struggled to learn: “i couldn’t help admiring her excellent performance, but i didn’t think i would try to spin a pen myself. hops n’ things it was a few years ago now that jon at hops n’ things put us on track to brew our first big batch of cider. knowledge comes from books, but a guy like jon can give you know-how. today he introduced us to distillers’ active dry yeast, or dady. our last batch of cider went to proof with epernay champaign yeast, dady might get us to proof! more importantly, he was kind enough to help us fix a co leak in our keg system — and he stayed open late to get it done. redstonebrewery.com online! after months of lost time, redstonebrewery.com is finally online. there’s not much there, but you wait baby. you just wait and see. or. um. well, we’ll see what happens there next. raspberry jelly i usually try to keep this blog above trivial things like this, but not today. i enjoy penut butter and jelly sandwiches, but usually with raspberry preserves — the stuff with fruit chunks a seeds in it. so i was rather surprised when i found i’d accidentally bought hannaford brand red raspberry jelly. it mostly tastes like raspberry, but it’s been pureed smooth like jello. i tried it, the product doesn’t spread well and the texture is all wrong. modern drunkard magazine this little ‘zine just scored distribution with borders book stores. but if you can’t find it there, take a look at modern drunkard magazine online. take a look at their wino wisdom section where you’ll find gems like “the secret of being a good drunk is not to try to hard. to me, it just comes naturally. you might even say it’s effortless.” and “i don’t smoke filtered cigarettes for the same reason i don’t drink whiskey through a bar rag. megahertz gap? so the project to crack a -bit rc encryption key is over. some computer in japan figured it out in july, but everybody was too busy to notice until last week. the real news here isn’t that -bit rc is crackable (everybody knew it could be done, eventually), the real news is that they compiled efficiency statistics on the various computer platforms that did the job. here’s the quote, straight from their press release: “our peak rate of , , kkeys/sec is equivalent to , mhz apple powerbook g laptops or , ghz amd athlon xp machines…” was capitalism the only difference? <a href="http://www.cera.com/commandingheights/” title=”commanding heights“>_commanding heights_ authors daniel yergen and joseph stanislaw tell us that workers in communist russia were not motivated to work simply because the government controlled economy offered no rewards for innovation. this they use as the basis for their argument that communism/government controlled economies were bad and capitalism was good. and what’s truly amazing is that in this obvious comparison between the usa and communist russia, they find the most significant difference to be economic. mc hawking drops some science you the opening to this site announces “yo! this site is your ultimate resource for information about stephen hawking the gangsta rapper.” and if that isn’t enough to make you go look there right now, then i suppose you feel bad for the poor guy and don’t like jerks who wish to make fun of him. anyway. just now he’s got a link up that points out one more sport i’ve never heard of or imagined: cup stacking. the first law of assignation the person [closest to the act/holding the instrument of the act], no matter how qualified or culpable is first to be assigned [credit/blame] for the act. natalie jeremijenko and the interaction between humans and technology it’s not for nothing that the mit technology review named natalie jeremijenko “one of the top one hundred young innovators.” anybody who bothers to read this blog should run out and look over her portfolio now. weeds and flowers weeds and flowers alike seek the sunlight — nobody can fault them for that — but some of them learn do it with beauty and grace. human-intoface: face=identity? from the artist’s statement: “images of faces hold little ability to communicate the totality of a personality. the essence of a personality is not something that is stored in a static two dimentional array of dots, grains, or pixels. rather, what is stored are subtle cues which signify base personality traits, such as a curl of a lip, squint of an eye, or pursing of the lips. these can work in series or combinations to suggest complexity of description, but ultimately, amount only to a caricature. hungry-man xxl! the marketers and designers for this product found their audience, and know how to speak to them. just look at the pictures. “i know what i like, and i like a lot of it” reads the text next to the over-weight, blue-collared white boy on the back. in bold yellow type at the bottom, it reads “it’s good to be full.” with . pounds of food, this preprocessed meal delivers calories, % of your recommended fat intake ( % of saturated fats), and % of your recommended sodium. book list: flight of passage i’m all wrapped up by flight of passage, rinker buck’s tale of his journey cross country with his brother in an old piper cub. as much as it’s a tale of flying, it’s a tale of teenage angst. both subjects that i identify with (but aren’t we supposed to grow out of teenage angst?). american tyranny the worst forms of tyranny are those so subtle, so deeply ingrained, so thoroughly controlling as not even to be consciously experienced. so there are americans who are afraid to entertain contrary notions for fear of jeopardizing their jobs, but who still think they are “free.”  –michael parenti’s democracy for the few. corn flakes, mccarthy, and flag wavers this story would be more appropriate for early july — that’s probably when this flag-printed box of kellogg’s corn flakes was put on the shelf — but it was just last weekend when i came across it at our warren village market. of course, in early july, everything including corn chips and cat litter was available in patriotic red, white, and blue, so it really wouldn’t have stood out then. dreams. what do they mean? years ago, i used to wake up with a start. i’d be trying to sit up with my hands outstretched in front of me. i’d wake up thinking i’d been falling. now. i find that i wake up thinking i’d stubbed my toe or hit my head. somewhat unrelated: i’ve gotten no end of laughs and amusement from dion mcgregor dreams again, a collection of sleep talking from dion mcgregor, an apparently famous “somniloquist. casey’s sky diving adventure i made my one and only parachute jump back in the fall of . about a year ago i re-edited the video of that event. casey’s skydiving adventure o’reilly offers macos x conference the o’reilly folks aren’t the only old unix geeks who’ve been looking at mac os x with hungry eyes. mac os x is cool enough to get its own section on slash dot. and, of course, apple is pushing it’s ‘switch‘ campaign toward windows users. but as much as the o’reilly folks love mac os x, they probably wouldn’t be planning a conference about it if it wasn’t clear there were hordes of like-minded geeks willing to shell out the $ or so it costs to attend. vegas guide, part : introduction las vegas may be the most thoroughly american city. no other town has been so shaped by the singular desire to make a buck. churches and strip clubs coexist in close proximity. each competes for the hard luck — but not broke — gamblers seeking refuge from their losses. if capitalism works, it works in vegas. vegas is america’s liver. the worst of pop culture eventually finds a home someplace in las vegas or the surrounding clark county. vegas guide, part : peyote most of nevada’s land is under federal control. the pentagon, department of energy, and bureau of land management claim a total area of about % of the state. it’s mostly desert, and the desert dois best left alone, so few people seem to care. some towns, mostly old silver mining camps, persist amid the desert. horses graze free on the school ball field in blue diamond, nevada. the town sits on a spring in red rock canyon. vegas guide, part : nukes and moon hoaxes on a map, mercury sits a little northwest of las vegas. there is nothing to suggest that the town is inaccessible to the average tourist, but it is in fact a part of the nevada test site — a nuclear bomb testing facility. the site was formed in from land originally granted to the shoshone indians. nearly one thousand nuclear devices have been detonated there between its formation and , when president bush imposed a moratorium on tests that has been extended by succeeding administrations. vegas guide, part : flesh prostitution in vegas is illegal, but that’s okay. for a little jiggle, you can check out the innumerable gentlemen’s clubs and strip shows. even many of the ritzy hotels often have their own “tantalizing topless revues.” freemont street, the heart of old vegas and one of the city’s largest attractions, is home to more than one strip club. but a short drive will get you more than jiggle. fifty miles west of las vegas on highway , just accross the clark county line in nye county you’ll find the sleepy town of pahrump — “heart of the new old west” according to the welcome sign at the town line. morse museum mummy unmasked this isn’t current news by any stretch. the story was reported in the boston globe when it happened in , and can be found on the web at maine antique digest. it goes like this: the contents of the morse museum were auctioned off in the early s. among the spoils were two egyptian mummies. one of them landed in the hands of a maine antiques dealer. the egyptian government learned of the mummy, which was advertised as a ‘princess. redstone brewery’s product labels brewing cider takes a long time. …and most of it is just waiting. so while we wait, i draw up new labels. click for maison bisson’s summer drink hot weather demands cool drinks. lemonade is fine for the kids, but adults need a pitcher of something more entertaining. give it a try: vicker’s delight: part vodka parts lemonade dash lime juice dash orange juice prepare in a pitcher with ice and share. adjust quantities to taste. enjoy safely. the old scooter yes. the scooter was a thing of ridicule for most people, but i loved it. riding the scooter was like ‘playing bikes’ when i was ten. it was just fun, and i didn’t need an excuse to do it. i named her trixie, but most people just called her scooter. but the scooter is sold now. it went first to cliffy, then to chuck. did cliffy appreciate it like i did? airplane safety it may be a little bit cliche after being ridiculed in fight club (the line was “look at their faces, as calm as hindu cows.”), but i’ve always loved airplane safety guides. click for warren’s morse museum it’s hard to say which is more memorable: warren’s rocket or our morse museum. for larger picture, click who are these dorks? what a motley crew who work for its. click for pictures. newton: best pda ever just as i’m about to retire my old newton, just as i’m exporting the contacts and calendar entries, i rediscovered why the newton was — and still is — the best pda ever. the newton had a rough start back in the early s when the first model was released. i’ve never used an older model, but it’s clear that the handwriting recognition was bad enough to be ridiculed in comics and the simpsons. now even the conservatives agree: supporting the drug war supports terrorists this may be old news (it was published on may th, ) but, david r. henderson’s essay on how the drug war effects the war against terrorism is a must read for everybody. conservatives tell truth about drug war. why do i say the hoover institution is a pack of conservatives? because eric alterman says so. cape cod dining: ay caramba cafe sandee and i stumbled into the ay caramba cafe on main street in harwich at just the right time. we were starving and desperate for something other than fried sea food. diners can help themselves to chips and three varieties of homemade salsa. each is rather unique, and far more complex than the mild, medium, and hot descriptions we typically use to describe salsas. sandee and i both had the pork tomales that were on special — cheese tomales were also offered. cape cod our friends troy and karen were kind enough to invite us to cape cod to visit them. we lazed around on the beach, took in a show at the wellfleet drive-in, and twice gorged ourselves on fried seafood at arnold’s restaurant. geeks may take interest in cape cod’s involvment in the history of trans-atlantic communications. nauset light beach was a former terminus for many undersea telegraph cables. friendy links: see troy here, here, and here. doonesbury’s middle age slump a feature story by jesse walker in reason magazine’s july issue confirms something i’ve been worried about for a while: doonesbury isn’t what it used to be. walker gives us examples detailing trudeau’s mild conservitive shift, and his more unfortunate shift toward irrelevence. i’m too young to know the strip from its beginnings in the early s (or earlier), but we can all compare old and new cartoons online in the doonsebury retrospective. the incident the front the shocks and coil springs slowed the downward thrust of the front suspension as inertia, stable just moments before, pitches the vehicle forward. a small, unconscious rightward twitch of the steering wheel is amplified by tires which, at this moment, have greater than normal mechanical advantage. the turn, though slight, moves the center of gravity even farther forward and now to the left. the rear of the vehicle, lightly weighted under normal conditions, is riding at the full extension of the rear leaf springs. now playing at maison bisson while mainstream (commercial) pop music producers are anxiously introducing ever younger children to ever more sexualised music, they might be giants are busy making music for kids of all ages. their new album, no!, might sound fluffy and sacharine compared to the band’s earlier work, but so what. like so many of their songs, you’ll quickly be singing along. besides, sandee says “it’s just good music.” lustworthy: honda silver wing and reflex sure, italian scooters look great, but where do you get them serviced? motostrada in maryland has a great selection of new and vintage european scooters, but that’s the nearest dealership and service center. it’s a great shop, don’t get me wrong, but it’s not really a solution for people in northern new hampshire. so if i don’t trust biff at the local cycle shop to work on an european import scooter, what would i trust biff to work on? learning unix macos x’s unix underpinnings have had mac users asking the same question for a while now: “how can i learn unix?” and for those who really want to learn unix, i point them to ?leenfrisch’s <a href="http://www.oreilly.com/catalog/esa /” title="essential system administration, rd edition“>essential system administration, rd edition. it’s direct and concise, yet thorough. it was the book i turned to for an introduction to unix, and it’s a book i keep on my shelf as a reference when i need it. frozen mud slides — from scratch who wouldn’t enjoy a frozen mud slide on a hot summer day? typical recipes call for crushed ice and cream or ice cream. for some reason, we decided to try making them from ice cream, from scratch. the maisonbisson frozen mud slide this recipe requires an ice cream maker, we used the deni scoop factory. . cups heavy cream cup milk cup sugar . cups bailey’s dash vanilla mix ingredients in bowl, then pour into ice cream maker’s freezer container. the plan what we need is a van. a black van with red alloy wheels and a diamond bubble window. yeah. get on the jazz, sucka. streamripper saves mp radio to disk i must be an idiot not to have found streamripper sooner. in the days before walkmans i used to record radio broadcasts on an early portable cassette recorder so i could listen later. this is how i discovered “angel in a centerfold” and many other great cultural landmarks from the early s. of course, things have changed since then. my taste hasn’t improved so much as commercial radio has fallen. internet radio, thankfully, may rescue me. story review: derryl murphy’s last call one: i discovered fictionwise.com, a source all types of fiction in ebook formats. two: here’s the assignment that lead me to look for fictionwise in the first place. click for pdf. [update] it’s funny how things circulate on the web. i’ve googled myself enough to know how i show up in odd places, so i can understand how derryl murphy might have wondered how a review of one of his many stories appeared here. my new favorite pop i found a bottle of ibc cream soda at our famous warren village market and it quickly reminded me of why i love cream soda. but now, no other cream soda tastes as good. i’ve tried a few; they just make me sad. now i need to speak with the folks at the market to get a case of the good stuff. it can also be ordered from popsoda.com. pictures of the warren rocket warren is blessed with a rocket. it was once a intermediate range ballistic missile, but it’s basically the same rocket that launched america’s first astronauts allen b. shepherd and gus grissom into sub-orbital space. it’s enough to be proud of, anyway. roadsideamerica.com has a story on our rocket, but it’s based on reader reports and it seems people just don’t know what town they’re in when they see the thing. redstone brewery’s first steps in the fall of cliff convinced me that i needed to brew hard cider. in turn, i convinced him that we needed to brew lots of it. we soon bought barrels that had been used for cherry coke concentrate and found an orchard that would sell us bulk sweet cider. after siphoning the gallons from two barrels in my truck into two barrels prepared in my basement, adding sugar and other flavors, and pitching the yeast, we waited. color theory my overwhelming interest in earth-tones and browns leads me to look for them and define them numerically. a lousy overview of color models, especially the hsv model. originally written for one of my classes. click here for pdf. [update]: i’d like to point out a later story about color blindness and streetlights. tempo cameras need regular testing. don’t they? view tempo at .mac theater. originally put together to demonstrate synchronization of music and images. look for daria and her silly monkey, and a short appearance by travis. hammernode dynodns services hammernode dynamic dns services couldn’t be better. well, what could be better than a free, high quality service? headshots our new camera equipment arrived one day in august . obviously, it needed testing. this is the result.view headshots at .mac theater. that’s me looking like an idiot. and cliff too. sorry, this one isn’t “fast start.” you’ll have to wait until it loads all mbs. iug : houston officially i’m here to attend the innovative users’ group conference, but there’s a lot more to do in texas and i took a few extra days to do it. my brother lives just north of austin, and just north of that is waco. being so close, i had to go visit. …and while there, i couldn’t help but look for the branch davidian compound. houston is an interesting city, but two landmarks particularly interested me. looking at waco **texas stories** i had a chance to visit waco in april . here are some links that i gathered from that time. eventually i’ll post a story to go with them. dr. pepper museum waco visitor bureau red men museum texas ranger museum branch davidians contrasting houston texas stories the beer can house on the northwest side of town was built by john milkovisch starting in . over the next years he drank a six-pack per day to furnish and adorn the house with almost , cans. meanwhile, on the southeast side of town, cleveland turner looked to god to help get him off the sauce. as thanks for his salvation and sobriety, he gathered up all the trash in his neighborhood, painted it, and arranged it to look like flowers. galveston’s seawolf park **texas stories** while in texas i had an oportunity to see galveston and visit seawolf park. seawolf park is home to a wwii sub and an escort cruiser. it pleased me to no end that i was able to climb all over inside and outside both boats. i took more pictures there than anywhere else during my texas adventure. [](http://homepage.mac.com/misterbisson/seawolfpark/ _ .jpg) cavalla’s diving controls <td align="center" valign="middle"> [<img src="http://homepage. visiting the branch davidian compound texas stories work brought me to texas in april , but morbid curiosity brought me to waco. i found a story by dan tobias about the branch davidian compound and its remains. following his directions, i found my way to the site and later emailed dan with the changes i found since he last visited. my email to him is included in the body of this story, but i recommend you read dan’s story about the branch davidians first. quicktime embed tags apple’s docs on embedding qt media in web pages. it’s here mostly as a bookmark for me. click here for the docs. search from https://gist.github.com/eddiewebb/ feb f f ddd ae a cb ae, which continues: this file exists solely to respond to /search url with the related search layout template. no content shown here is rendered, all content is based in the template $theme/layouts/page/search.html setting a very low sitemap priority will tell search engines this is not important content. this implementation uses fusejs, jquery and mark.js the full details can be found in https://gist.github.com/eddiewebb/ feb f f ddd ae a cb ae. you should never see this content! chilling effect - wikipedia chilling effect from wikipedia, the free encyclopedia jump to navigation jump to search for other uses, see chilling effect (disambiguation). not to be confused with chilling effects. part of a series on censorship by country countries algeria armenia australia azerbaijan bangladesh belarus bhutan bolivia brazil canada china (hong kong/overseas) cuba czech republic denmark ecuador eritrea finland france germany (nazi / democratic republic / federal republic) honduras india iran iraq ireland israel italy jamaica japan malaysia maldives mexico myanmar new zealand nigeria north korea pakistan paraguay philippines poland portugal romania russia (soviet union / russian empire) samoa saudi arabia serbia singapore somalia south korea spain sri lanka sweden taiwan thailand tunisia turkey ukraine united kingdom united states venezuela vietnam see also freedom of speech by country internet censorship and surveillance by country v t e in a legal context, a chilling effect is the inhibition or discouragement of the legitimate exercise of natural and legal rights by the threat of legal sanction.[ ] the right that is most often described as being suppressed by a chilling effect is the us constitutional right to free speech. a chilling effect may be caused by legal actions such as the passing of a law, the decision of a court, or the threat of a lawsuit; any legal action that would cause people to hesitate to exercise a legitimate right (freedom of speech or otherwise) for fear of legal repercussions. when that fear is brought about by the threat of a libel lawsuit, it is called libel chill.[ ] a lawsuit initiated specifically for the purpose of creating a chilling effect may be called a strategic lawsuit against public participation ("slapp"). "chilling" in this context normally implies an undesirable slowing. outside the legal context in common usage; any coercion or threat of coercion (or other unpleasantries) can have a chilling effect on a group of people regarding a specific behavior, and often can be statistically measured or be plainly observed. for example, the news headline "flood insurance [price] spikes have chilling effect on some home sales,"[ ] and the abstract title of a two‐part survey of college students involved in dating relationships: "the chilling effect of aggressive potential on the expression of complaints in intimate relationships."[ ] contents usage history . chilling effects on wikipedia users see also references external links usage[edit] in united states and canadian law, the term chilling effects refers to the stifling effect that vague or excessively broad laws may have on legitimate speech activity.[ ] however, the term is also now commonly used outside american legal jargon, such as the chilling effects of high prices[ ] or of corrupt police, or of "anticipated aggressive repercussions" (in say, personal relationships[ ]). a chilling effect is an effect that reduces, suppresses, discourages, delays, or otherwise retards reporting concerns of any kind. an example of the "chilling effect" in canadian case law can be found in iorfida v. macintyre where the constitutionality of a criminal law prohibiting the publication of literature depicting illicit drug use was challenged. the court found that the law had a "chilling effect" on legitimate forms of expression and could stifle political debate on issues such as the legalization of marijuana.[ ] the court noted that it did not adopt the same "chilling effect" analysis used in american law but considered the chilling effect of the law as a part of its own analysis.[ ] regarding Ömer faruk gergerlioğlu case in turkey, press release of the office of the united nations high commissioner for human rights (ohchr) defined, turkey's mis-using of counter-terrorism measures can have a chilling effect on the enjoyment of fundamental freedoms and human rights.[ ] history[edit] in john milton expressed the chilling effect of censorship in areopagitica: for to distrust the judgement and the honesty of one who hath but a common repute in learning and never yet offended, as not to count him fit to print his mind without a tutor or examiner, lest he should drop a schism or something of corruption, is the greatest displeasure and indignity to a free and knowing spirit that can be put upon him.[ ] the term chilling effect has been in use in the united states since as early as .[ ] the united states supreme court first refers to the "chilling effect" in the context of the united states constitution in wieman v. updegraff in .[ ] it, however, became further used as a legal term when william j. brennan, a justice of the united states supreme court, used it in a judicial decision (lamont v. postmaster general) which overturned a law requiring a postal patron receiving "communist political propaganda"[ ] to specifically authorize the delivery.[ ] the lamont case, however, did not center around a law that explicitly stifles free speech. the "chilling effect" referred to at the time was a "deterrent effect" on freedom of expression—even when there is no law explicitly prohibiting it. however, in general, "chilling effect" is now often used in reference to laws or actions that do not explicitly prohibit legitimate speech, but that impose undue burdens.[ ][failed verification] chilling effects on wikipedia users[edit] edward snowden disclosed in that the us government's upstream program was collecting data on people reading wikipedia articles. this revelation had significant impact on the self-censorship of the readers, as shown by the fact that there were substantially fewer views for articles related to terrorism and security.[ ] the court case wikimedia foundation v. nsa has since followed. see also[edit] censorship culture of fear opinion corridor fear mongering media transparency prior restraint self-censorship strategic lawsuit against public participation references[edit] ^ chilling effect. (n.d.). retrieved october , , from http://law.yourdictionary.com/chilling-effect ^ green, allen (october , ). "banish the libel chill". the guardian. ^ a b "flood insurance spikes have chilling effect on some home sales". wwl‑tv eyewitness news. october , . archived from the original on november , . realtors say [price spikes are] already causing home sales to fall through when buyers realize they can't afford the flood insurance. ^ a b cloven, denise h.; roloff, michael e. ( ). "the chilling effect of aggressive potential on the expression of complaints in intimate relationships". communication monographs. ( ): – . doi: . / . a two‐part survey of college students involved in dating relationships.... this chilling effect was greater when individuals who generally feared conflict anticipated aggressive repercussions (p < . ), and when people anticipated symbolic aggression from relationally independent partners (p < . ). ^ "censorship-reports-striking-a-balance-hate-speech-freedom-of-expression-and-nondiscrimination- - -pp". doi: . / - _hrd- - . cite journal requires |journal= (help) ^ iorfida v. macintyre, canlii (on sc)at para. , < "archived copy". archived from the original on july , . retrieved october , .cs maint: archived copy as title (link)> retrieved on - - ^ iorfida v. macintyre, canlii (on sc) at para. , < "archived copy". archived from the original on july , . retrieved october , .cs maint: archived copy as title (link)> retrieved on - - ^ https://www.ohchr.org/en/newsevents/pages/displaynews.aspx?newsid= &langid=e&s= ^ john milton ( ) areopagitica, edited by george h. sabine ( ), page , appleton-century-crofts ^ freund, paul a. " vanderbilt law review , at ( – ): the supreme court and civil liberties". ^ "the chilling effect in constitutional law". columbia law review. ( ): – . may . doi: . / . jstor  . ^ safire, william (july , ). "safire urges federal journalist shield law". center for individual freedom. retrieved june , . justice brennan reported having written a decision striking down a state's intrusion on civil liberty because of its "chilling effect upon the exercise of first amendment rights...” ^ a b "lamont v. postmaster general, u. s. ( )". justia. retrieved june , . ^ penney, jonathon w. ( ). "chilling effects: online surveillance and wikipedia use". berkeley technology law journal. doi: . /z ss . retrieved august , . external links[edit] lumen, containing many current examples of alleged chilling effects terms associated with libel cases cato policy analysis no. chilling the internet? lessons from fcc regulation of radio broadcasting libel reform campaign the chilling effect of english libel law v t e censorship media regulation books books banned films banned films internet circumvention music postal press radio speech and expression thought video games banned video games methods bleeping book burning broadcast delay burying of scholars censor bars chilling effect concision conspiracy of silence content-control software damnatio memoriae euphemism minced oath expurgation fogging gag order heckling heckler's veto internet police memory hole national intranet newspaper theft pixelization prior restraint propaganda purge revisionism sanitization self-censorship speech code strategic lawsuit surveillance computer and network mass whitewashing word filtering contexts criminal corporate hate speech online ideological lgbt issues media bias moralistic fallacy naturalistic fallacy politics propaganda model religious suppression of dissent systemic bias by country censorship chinese issues overseas freedom of speech internet censorship v t e law core subjects administrative law civil law constitutional law contract criminal law deed equity evidence international law law of obligations private law procedure civil criminal property law public law restitution statutory law tort other subjects agricultural law aviation law amnesty law banking law bankruptcy commercial law competition law conflict of laws construction law consumer protection corporate law cyberlaw election law energy law entertainment law environmental law family law financial law financial regulation health law history of the legal profession history of the american legal profession immigration law intellectual property international criminal law international human rights international slavery laws jurimetrics labour law of war legal archaeology legal fiction maritime law media law military law probate estate will and testament product liability public international law space law sports law tax law transport law trust law unenforced law women in law sources of law charter code constitution custom divine right divine law human rights natural law natural and legal rights case law precedent law making ballot measure codification decree edict executive order proclamation legislation delegated legislation regulation rulemaking promulgation repeal treaty concordat statutory law statute act of parliament act of congress (us) legal systems civil law common law chinese law legal pluralism religious law canon law catholic canon law hindu law jain law jewish law sharia roman law socialist law statutory law xeer yassa legal theory anarchist contract theory critical legal studies comparative law feminist fundamental theory of catholic canon law law and economics legal formalism history libertarian international legal theory principle of legality principle of typicality rule of law sociology jurisprudence adjudication administration of justice criminal justice court-martial dispute resolution fiqh lawsuit/litigation legal opinion legal remedy judge justice of the peace magistrate judgment judicial review jurisdiction jury justice practice of law attorney barrister counsel lawyer legal representation prosecutor solicitor question of fact question of law trial trial advocacy trier of fact verdict legal institutions bureaucracy the bar the bench civil society court court of equity election commission executive judiciary law enforcement legal education law school legislature military police political party tribunal category index outline portal authority control ma: retrieved from "https://en.wikipedia.org/w/index.php?title=chilling_effect&oldid= " categories: censorship freedom of expression american legal terminology hidden categories: cs errors: missing periodical cs maint: archived copy as title use mdy dates from august all articles with failed verification articles with failed verification from january wikipedia articles with ma identifiers navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages العربية deutsch italiano nederlands 日本語 polski português suomi türkçe 中文 edit links this page was last edited on march , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement webinar registration - zoom skip to main content . . . join a meeting host a meeting with video off with video on host a meeting with video emory it service desk       sign in sign up, it's free sign up, it's free webinar register page topic samvera virtual connect description samvera virtual connect (svc), is an opportunity for samvera community participants to gather online to learn about initiatives taking place across interest groups, working groups, local and collaborative development projects, and other efforts. svc will give the samvera community a chance to come together to catch up on developments, make new connections, and learn more about the community. webinar is over, you cannot register now. if you have any questions, please contact webinar host: heather greer klein (she/her/hers). × share via email all fields are required your information send to message preview hi, you are invited to a zoom webinar. topic: samvera virtual connect register in advance for this webinar: https://emory.zoom.us/webinar/register/wn_sfr-wxkytl kldjmvwapww after registering, you will receive a confirmation email containing information about joining the webinar.   send cancel × switch time zone time zone:   please select your time zone... (gmt- : ) midway island, samoa (gmt- : ) pago pago (gmt- : ) hawaii (gmt- : ) alaska (gmt- : ) juneau (gmt- : ) vancouver (gmt- : ) pacific time (us and canada) (gmt- : ) tijuana (gmt- : ) arizona (gmt- : ) edmonton (gmt- : ) mountain time (us and canada) (gmt- : ) mazatlan (gmt- : ) saskatchewan (gmt- : ) guatemala (gmt- : ) el salvador (gmt- : ) managua (gmt- : ) costa rica (gmt- : ) tegucigalpa (gmt- : ) chihuahua (gmt- : ) winnipeg (gmt- : ) central time (us and canada) (gmt- : ) mexico city (gmt- : ) panama (gmt- : ) bogota (gmt- : ) lima (gmt- : ) monterrey (gmt- : ) montreal (gmt- : ) eastern time (us and canada) (gmt- : ) indiana (east) (gmt- : ) puerto rico (gmt- : ) caracas (gmt- : ) santiago (gmt- : ) la paz (gmt- : ) guyana (gmt- : ) halifax (gmt- : ) montevideo (gmt- : ) recife (gmt- : ) buenos aires, georgetown (gmt- : ) sao paulo (gmt- : ) atlantic time (canada) (gmt- : ) newfoundland and labrador (gmt- : ) greenland (gmt- : ) cape verde islands (gmt+ : ) azores (gmt+ : ) universal time utc (gmt+ : ) greenwich mean time (gmt+ : ) reykjavik (gmt+ : ) casablanca (gmt+ : ) nouakchott (gmt+ : ) dublin (gmt+ : ) london (gmt+ : ) lisbon (gmt+ : ) west central africa (gmt+ : ) algiers (gmt+ : ) tunis (gmt+ : ) belgrade, bratislava, ljubljana (gmt+ : ) sarajevo, skopje, zagreb (gmt+ : ) oslo (gmt+ : ) copenhagen (gmt+ : ) brussels (gmt+ : ) amsterdam, berlin, rome, stockholm, vienna (gmt+ : ) amsterdam (gmt+ : ) rome (gmt+ : ) stockholm (gmt+ : ) vienna (gmt+ : ) luxembourg (gmt+ : ) paris (gmt+ : ) zurich (gmt+ : ) madrid (gmt+ : ) harare, pretoria (gmt+ : ) warsaw (gmt+ : ) prague bratislava (gmt+ : ) budapest (gmt+ : ) tripoli (gmt+ : ) cairo (gmt+ : ) johannesburg (gmt+ : ) khartoum (gmt+ : ) helsinki (gmt+ : ) nairobi (gmt+ : ) sofia (gmt+ : ) istanbul (gmt+ : ) athens (gmt+ : ) bucharest (gmt+ : ) nicosia (gmt+ : ) beirut (gmt+ : ) damascus (gmt+ : ) jerusalem (gmt+ : ) amman (gmt+ : ) moscow (gmt+ : ) baghdad (gmt+ : ) kuwait (gmt+ : ) riyadh (gmt+ : ) bahrain (gmt+ : ) qatar (gmt+ : ) aden (gmt+ : ) djibouti (gmt+ : ) mogadishu (gmt+ : ) kiev (gmt+ : ) minsk (gmt+ : ) dubai (gmt+ : ) muscat (gmt+ : ) baku, tbilisi, yerevan (gmt+ : ) tehran (gmt+ : ) kabul (gmt+ : ) yekaterinburg (gmt+ : ) islamabad, karachi, tashkent (gmt+ : ) india (gmt+ : ) mumbai, kolkata, new delhi (gmt+ : ) asia/colombo (gmt+ : ) kathmandu (gmt+ : ) almaty (gmt+ : ) dacca (gmt+ : ) astana, dhaka (gmt+ : ) rangoon (gmt+ : ) novosibirsk (gmt+ : ) krasnoyarsk (gmt+ : ) bangkok (gmt+ : ) vietnam (gmt+ : ) jakarta (gmt+ : ) irkutsk, ulaanbaatar (gmt+ : ) beijing, shanghai (gmt+ : ) hong kong sar (gmt+ : ) taipei (gmt+ : ) kuala lumpur (gmt+ : ) singapore (gmt+ : ) perth (gmt+ : ) yakutsk (gmt+ : ) seoul (gmt+ : ) osaka, sapporo, tokyo (gmt+ : ) darwin (gmt+ : ) adelaide (gmt+ : ) vladivostok (gmt+ : ) guam, port moresby (gmt+ : ) brisbane (gmt+ : ) canberra, melbourne, sydney (gmt+ : ) hobart (gmt+ : ) magadan (gmt+ : ) solomon islands (gmt+ : ) new caledonia (gmt+ : ) kamchatka (gmt+ : ) fiji islands, marshall islands (gmt+ : ) auckland, wellington (gmt+ : ) independent state of samoa ok cancel × continue to paypal click to continue × × upcoming meetings would you like to start this meeting? would you like to start one of these meetings? view more... start a new meeting gatorbox - wikipedia gatorbox from wikipedia, the free encyclopedia jump to navigation jump to search gatorbox cs the gatorbox is a localtalk-to-ethernet bridge, a router used on macintosh-based networks to allow appletalk communications between clients on localtalk and ethernet physical networks. the gatorsystem software also allowed tcp/ip and decnet protocols to be carried to localtalk-equipped clients via tunneling, providing them with access to these normally ethernet-only systems. when the gatorbox is running gatorprint software, computers on the ethernet network can send print jobs to printers on the localtalk network using the 'lpr' print spool command. when the gatorbox is running gatorshare software, computers on the localtalk network can access network file system (nfs) hosts on ethernet. contents specifications software software requirements see also references external links specifications[edit] the original gatorbox (model: ) is a desktop model that has a  mhz motorola cpu, mb ram, k eprom for boot program storage, kb nvram for configuration storage, localtalk mini-din- connector, serial port mini-din- connector, bnc connector, aui connector, and is powered by an external power supply ( vac a transformer that is connected by a . mm plug). this model requires a software download when it is powered on to be able to operate. the gatorbox cs (model: ) is a desktop model that uses an internal power supply ( / v, . a, –  hz). the gatormim cs is a media interface module that fits in a cabletron multi-media access center (mmac). the gatorbox cs/rack (model: ) is a rack-mountable version of the gatorbox cs that uses an internal power supply ( / v, . a, –  hz). the gatorstar gxm integrates the gatormim cs with a port localtalk repeater.[ ] the gatorstar gxr integrates the gatorbox cs/rack with a port localtalk repeater.[ ] this model does not have a bnc connector and the serial port is a female de- connector. all "cs" models have mb of memory and can boot from images of the software that have been downloaded into the eprom using the gatorinstaller application. software[edit] there are three disks in the gatorbox software package. note that the content of the disks for an original gatorbox is different from that of the gatorbox cs models. configuration - contains gatorkeeper, mactcp folder and either gatorinstaller (for cs models) or gatorbox tftp and gatorbox udp-tftp (for original gatorbox model) application - contains gatorsystem, gatorprint or gatorshare, which is the software that runs in the gatorbox. the application software for the gatorbox cs product family has a "cs" at the end of the filename. gatorprint includes gatorsystem functionality. gatorshare includes gatorsystem and gatorprint functionality. network applications - ncsa telnet, unstuffit software requirements[edit] the gatorkeeper . application requires macintosh system version . . up to . . and finder version . (or later) mactcp (not open transport)[ ] see also[edit] kinetics fastpath line printer daemon protocol – print spooling localtalk-to-ethernet bridge – other localtalk-to-ethernet bridges/routers macip – tcp/ip gateway references[edit] mccoy, michael (august ). setting up your gatorbox - hardware installation guide. cayman systems. pp.  – , a- – . ^ data communication network at the asrm facility - see . . ^ "glossary of macintosh networking terms - see gatorstar". archived from the original on - - . retrieved - - . ^ christopher, mason. "gatorbox software". external links[edit] gatorbox cs configuration information internet archive copy of a configuration guide produced by the university of illinois juiced.gs magazine volume , issue (dec ) contains an article on how to set up a gatorbox for use with an apple iigs software and scanned manuals for the gatorbox and gatorbox cs retrieved from "https://en.wikipedia.org/w/index.php?title=gatorbox&oldid= " categories: networking hardware navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages add links this page was last edited on december , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement "blockchain empowers social resistance and terrorism through decentrali" by armin krishnan home search browse collections my account about digital commons network™ skip to main content my account faq about this ir scholar commons     home > usf libraries > open access journals > jss > vol. > no. ( )   article title blockchain empowers social resistance and terrorism through decentralized autonomous organizations authors armin krishnan, east carolina universityfollow author biography armin krishnan, phd is an associate professor and director of security studies at east carolina university. he is the author of five books on new developments in warfare and conflict, including killer robots: the legality and ethicality of autonomous weapons published by ashgate and military neuroscience and the coming age of neurowarfare published by routledge. his most recent book is why paramilitary operations fail published by palgrave macmillan. dr. krishnan has earned his doctorate from university of salford, uk and he holds other graduate degrees in political science and international relations from the university of munich and the university of salford. he has previously taught intelligence studies as a visiting assistant professor at the university of texas at el paso. doi https://doi.org/ . / - . . . subject area keywords cybersecurity, nonstate actors, security studies, social media abstract the invention of the internet has changed the way social resistance, revolutionary movements and terror groups are organized with new features such as loose network organization, netwars, social media campaigns, and lone wolf attacks. this article argues that blockchain technology will lead to more far-reaching changes in the organization of resistance to authority. blockchain is a distributed ledger that records transactions using a consensus protocol, and when it meets objective conditions, it also enables smart contracts that execute transactions. blockchain technology is not only a system for transferring value, but also it is a trustless system in which strangers can cooperate without the need for having to trust each other, as computer code governs their interactions. blockchain will not only allow resistance/ terror organizations to easily receive donations globally, to have assets that a government can easily confiscate, and to disseminate censorship-resistant propaganda, but more importantly, to operate and cooperate across the world in a truly leaderless, coordinated, and highly decentralized fashion. governments will need to be more proactive in the area of blockchain technology to mitigate some of the dangers to political stability that may emerge from it. acknowledgements i want to thank the anonymous reviewers of the article for their encouragement, insights, and constructive criticism that has helped to improve the quality of the article. recommended citation krishnan, armin. "blockchain empowers social resistance and terrorism through decentralized autonomous organizations." journal of strategic security , no. ( ) : - . doi: https://doi.org/ . / - . . . available at: https://scholarcommons.usf.edu/jss/vol /iss / view as pdf downloads since march , share coins       journal home abstracting & indexing aims & scope associates call for papers editorial board instructions for reviewers policies for the journal of strategic security publication ethics submit manuscript submission requirements most popular papers receive email notices or rss special issues: vol. , no. climate change and global security volume , no. , special issue winter : understanding and resolving complex strategic security issues volume , no. , special issue spring : designing danger: complex engineering by violent non-state actors select an issue: all issues vol. , no. vol. , no. climate change and global security vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. volume , no. , special issue winter : understanding and resolving complex strategic security issues vol. , no. vol. , no. volume , no. , special issue spring : designing danger: complex engineering by violent non-state actors volume , no. , fall supplement: eleventh annual iafie conference vol. , no. volume , no. , special issue fall : intelligence: analysis, tradecraft, training, education, and practical application vol. , no. volume , no. , special issue winter : future challenges in drone geopolitics vol. , no. volume , no. , special issue summer : the global sof network vol. , no. volume , no. , fall supplement: ninth annual iafie conference: expanding the frontiers of intelligence education vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. volume , no. , fall : energy security vol. , no. vol. , no. volume , no. , winter : perspectives on radicalization and involvement in terrorism vol. , no. volume , no. , summer : strategic security in the cyber age vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no. vol. , no.   search enter search terms: select context to search: in this journal in this repository across all repositories advanced search issn: - (print)issn: - (online)   hosted by:   digital commons scholar commons | about this ir | faq | my account | accessibility statement privacy copyright amia/dlf hack day | amia about code of conduct contact us become an amia member! conference committee gender pronouns & conference badges prior conferences amia program keynote speakers poster sessions amia award recipients program stream: content as data – archival approaches virtual conference recorded sessions - programs conference photos photos from amia photos from amia photos from amia the programming the program borders and borderlands: conversations and documentation keynote: manuelito wheeler, navajo nation museum opening plenary: let’s get uncomfy together a keynote conversation with mario van peebles conference schedule poster sessions committee meetings spring conference speakers amia/dlf hack day virtual conference tour the archives information for speakers fall conference survey virtual pavilion our partners partners & sponsors become a sponsor navigation home » » amia/dlf hack day amia/dlf hack day april – april , registration is free! #avhack you do not have to be registered for amia to attend and participate in hack day. hack day will take place from thursday, april through thursday, april , . this year, there will be two additional kickoff activities: introductory/informational session on thursday, march , introduction to git workshop (hosted by brendan coates) on thursday, april , signing up here indicates your interest in all hack day activities! for more information on these events, please see the wiki: https://wiki.diglib.org/amia-dlf_hack_day_ a partnership between amia and the digital library federation, hack day is a unique opportunity for practitioners and managers of digital audiovisual collections to join with developers and engineers for an intense day of collaboration to develop solutions for digital audiovisual preservation and access. all are welcome! for more information, follow #avhack on twitter or email avhackday at gmail dot com. when you sign up for hack day, you’ll receive a discount code for the introduction to git workshop on april st.     intro to git workshop april , | : am – : pm (pacific) collaborating with people in virtual spaces and across time zones can get messy. one way to manage these projects is through git, a tool that tracks changes and performs version control. this webinar will serve as an introduction to git and github basics. attendees will learn about version control, the git framework, and the difference between git and github, and understand common git terms such as branches, fetching, pushing, and pulling. by the end of the webinar, attendees will be able to contribute to a repository using git! for those participating in the amia/dlf hack day event, please use the discount code included in your hack day confirmation.  brendan coates is a gardener, fermentation enthusiast, member of the los angeles tenants union, and the sr. archivist at academy oral history projects, where he’s worked since , focusing on all aspects of post-production, archiving, preservation, and access. prior to this, he worked as the audiovisual digitization technician at the university of california, santa barbara, where he supervised the migration of a variety of materials, from “wax” cylinders to digibetas. he’s a graduate of the university of michigan’s school of information and has been working with open-source software since , primarily focused on workflow and quality control automation.     search for: recent posts archival screening night encore for members rutgers university join us in the pavilion committee meetings fall conference survey about the conference about the conference recorded sessions previous conference programs meta log in entries feed comments feed wordpress.org follow us facebook twitter instagram flickr linkedin youtube designed by elegant themes | powered by wordpress news – duraspace.org news – duraspace.org meet the members welcome to the first in a series of blog posts aimed at introducing you to some of the movers and shakers who work tirelessly to advocate, educate and promote fedora and other community-supported programs like ours. at fedora, we are strong because of our people and without individuals like this advocating for continued development we... read more &# ; the post meet the members appeared first on duraspace.org. fedora migration paths and tools project update: january this is the fourth in a series of monthly updates on the fedora migration paths and tools project – please see last month’s post for a summary of the work completed up to that point. this project has been generously funded by the imls. the grant team has been focused on completing an initial build... read more &# ; the post fedora migration paths and tools project update: january appeared first on duraspace.org. fedora migration paths and tools project update: december this is the third in a series of monthly updates on the fedora migration paths and tools project – please see last month’s post for a summary of the work completed up to that point. this project has been generously funded by the imls. the principal investigator, david wilcox, participated in a presentation for cni... read more &# ; the post fedora migration paths and tools project update: december appeared first on duraspace.org. fedora alpha release is here today marks a milestone in our progress toward fedora &# ; the alpha release is now available for download and testing! over the past year, our dedicated fedora team, along with an extensive list of active community members and committers, have been working hard to deliver this exciting release to all of our users. so... read more &# ; the post fedora alpha release is here appeared first on duraspace.org. fedora migration paths and tools project update: october this is the first in a series of monthly blog posts that will provide updates on the imls-funded fedora migration paths and tools: a pilot project. the first phase of the project began in september with kick-off meetings for each pilot partner: the university of virginia and whitman college. these meetings established roles and responsibilities... read more &# ; the post fedora migration paths and tools project update: october appeared first on duraspace.org. fedora in the time of covid- the impacts of coronavirus disease are being felt around the world, and access to digital materials is essential in this time of remote work and study. the fedora community has been reflecting on the value of our collective digital repositories in helping our institutions and researchers navigate this unprecedented time.  many member institutions have... read more &# ; the post fedora in the time of covid- appeared first on duraspace.org. now available: dspace . beta the dspace leadership group, the dspace committers and lyrasis are proud to announce that dspace . beta is now available for download and testing. beta is the second scheduled beta release provided for community feedback and to introduce the new features of the . platform. as a beta release, we highly advise against... read more &# ; the post now available: dspace . beta appeared first on duraspace.org. now available: vivo . . vivo . . is now available! vivo . . is a point release containing two patches to the previous . . release: &# ; security patch that now prevents users with self-edit privileges from editing other user profiles [ ] &# ; minor security patch to underlying puppycrawl dependency (cve- - ) [ ] upgrading from . . to . . should be a trivial drop-in... read more &# ; the post now available: vivo . . appeared first on duraspace.org. now available: dspace . beta the dspace leadership group, the dspace committers and lyrasis are proud to announce that dspace . beta is now available for download and testing.  beta is the first of several scheduled beta releases provided for community feedback and to introduce the new features of the . platform. as a beta release, we do not... read more &# ; the post now available: dspace . beta appeared first on duraspace.org. curriculum available: islandora and fedora camp in arizona the curriculum for the upcoming islandora and fedora camp at arizona state university, february - , is now available here. islandora and fedora camp, hosted by arizona state university libraries, offers everyone a chance to dive in and learn all about the latest versions of islandora and fedora. training will begin with the basics and build... read more &# ; the post curriculum available: islandora and fedora camp in arizona appeared first on duraspace.org. none distributed hash table - wikipedia distributed hash table from wikipedia, the free encyclopedia jump to navigation jump to search decentralized distributed system with lookup service this article needs additional citations for verification. please help improve this article by adding citations to reliable sources. unsourced material may be challenged and removed. find sources: "distributed hash table" – news · newspapers · books · scholar · jstor (september ) (learn how and when to remove this template message) a distributed hash table (dht) is a distributed system that provides a lookup service similar to a hash table: key-value pairs are stored in a dht, and any participating node can efficiently retrieve the value associated with a given key. the main advantage of a dht is that nodes can be added or removed with minimum work around re-distributing keys. keys are unique identifiers which map to particular values, which in turn can be anything from addresses, to documents, to arbitrary data.[ ] responsibility for maintaining the mapping from keys to values is distributed among the nodes, in such a way that a change in the set of participants causes a minimal amount of disruption. this allows a dht to scale to extremely large numbers of nodes and to handle continual node arrivals, departures, and failures. dhts form an infrastructure that can be used to build more complex services, such as anycast, cooperative web caching, distributed file systems, domain name services, instant messaging, multicast, and also peer-to-peer file sharing and content distribution systems. notable distributed networks that use dhts include bittorrent's distributed tracker, the coral content distribution network, the kad network, the storm botnet, the tox instant messenger, freenet, the yacy search engine, and the interplanetary file system. distributed hash tables contents history properties structure . keyspace partitioning . . consistent hashing . . rendezvous hashing . . locality-preserving hashing . overlay network . algorithms for overlay networks security implementations examples . dht protocols and implementations . applications using dhts see also references external links history[edit] dht research was originally motivated, in part, by peer-to-peer (p p) systems such as freenet, gnutella, bittorrent and napster, which took advantage of resources distributed across the internet to provide a single useful application. in particular, they took advantage of increased bandwidth and hard disk capacity to provide a file-sharing service.[ ] these systems differed in how they located the data offered by their peers. napster, the first large-scale p p content delivery system, required a central index server: each node, upon joining, would send a list of locally held files to the server, which would perform searches and refer the queries to the nodes that held the results. this central component left the system vulnerable to attacks and lawsuits. gnutella and similar networks moved to a query flooding model – in essence, each search would result in a message being broadcast to every other machine in the network. while avoiding a single point of failure, this method was significantly less efficient than napster. later versions of gnutella clients moved to a dynamic querying model which vastly improved efficiency.[ ] freenet is fully distributed, but employs a heuristic key-based routing in which each file is associated with a key, and files with similar keys tend to cluster on a similar set of nodes. queries are likely to be routed through the network to such a cluster without needing to visit many peers.[ ] however, freenet does not guarantee that data will be found. distributed hash tables use a more structured key-based routing in order to attain both the decentralization of freenet and gnutella, and the efficiency and guaranteed results of napster. one drawback is that, like freenet, dhts only directly support exact-match search, rather than keyword search, although freenet's routing algorithm can be generalized to any key type where a closeness operation can be defined.[ ] in , four systems—can,[ ] chord,[ ] pastry, and tapestry—ignited dhts as a popular research topic. a project called the infrastructure for resilient internet systems (iris) was funded by a $ million grant from the united states national science foundation in .[ ] researchers included sylvia ratnasamy, ion stoica, hari balakrishnan and scott shenker.[ ] outside academia, dht technology has been adopted as a component of bittorrent and in the coral content distribution network. properties[edit] dhts characteristically emphasize the following properties: autonomy and decentralization: the nodes collectively form the system without any central coordination. fault tolerance: the system should be reliable (in some sense) even with nodes continuously joining, leaving, and failing .[ ] scalability: the system should function efficiently even with thousands or millions of nodes. a key technique used to achieve these goals is that any one node needs to coordinate with only a few other nodes in the system – most commonly, o(log n) of the n participants (see below) – so that only a limited amount of work needs to be done for each change in membership. some dht designs seek to be secure against malicious participants[ ] and to allow participants to remain anonymous, though this is less common than in many other peer-to-peer (especially file sharing) systems; see anonymous p p. finally, dhts must deal with more traditional distributed systems issues such as load balancing, data integrity, and performance (in particular, ensuring that operations such as routing and data storage or retrieval complete quickly). structure[edit] the structure of a dht can be decomposed into several main components.[ ][ ] the foundation is an abstract keyspace, such as the set of -bit strings. a keyspace partitioning scheme splits ownership of this keyspace among the participating nodes. an overlay network then connects the nodes, allowing them to find the owner of any given key in the keyspace. once these components are in place, a typical use of the dht for storage and retrieval might proceed as follows. suppose the keyspace is the set of -bit strings. to index a file with given filename and data in the dht, the sha- hash of filename is generated, producing a -bit key k, and a message put(k, data) is sent to any node participating in the dht. the message is forwarded from node to node through the overlay network until it reaches the single node responsible for key k as specified by the keyspace partitioning. that node then stores the key and the data. any other client can then retrieve the contents of the file by again hashing filename to produce k and asking any dht node to find the data associated with k with a message get(k). the message will again be routed through the overlay to the node responsible for k, which will reply with the stored data. the keyspace partitioning and overlay network components are described below with the goal of capturing the principal ideas common to most dhts; many designs differ in the details. keyspace partitioning[edit] most dhts use some variant of consistent hashing or rendezvous hashing to map keys to nodes. the two algorithms appear to have been devised independently and simultaneously to solve the distributed hash table problem. both consistent hashing and rendezvous hashing have the essential property that removal or addition of one node changes only the set of keys owned by the nodes with adjacent ids, and leaves all other nodes unaffected. contrast this with a traditional hash table in which addition or removal of one bucket causes nearly the entire keyspace to be remapped. since any change in ownership typically corresponds to bandwidth-intensive movement of objects stored in the dht from one node to another, minimizing such reorganization is required to efficiently support high rates of churn (node arrival and failure). consistent hashing[edit] further information: consistent hashing consistent hashing employs a function δ ( k , k ) {\displaystyle \delta (k_{ },k_{ })} that defines an abstract notion of the distance between the keys k {\displaystyle k_{ }} and k {\displaystyle k_{ }} , which is unrelated to geographical distance or network latency. each node is assigned a single key called its identifier (id). a node with id i x {\displaystyle i_{x}} owns all the keys k m {\displaystyle k_{m}} for which i x {\displaystyle i_{x}} is the closest id, measured according to δ ( k m , i x ) {\displaystyle \delta (k_{m},i_{x})} . for example, the chord dht uses consistent hashing, which treats nodes as points on a circle, and δ ( k , k ) {\displaystyle \delta (k_{ },k_{ })} is the distance traveling clockwise around the circle from k {\displaystyle k_{ }} to k {\displaystyle k_{ }} . thus, the circular keyspace is split into contiguous segments whose endpoints are the node identifiers. if i {\displaystyle i_{ }} and i {\displaystyle i_{ }} are two adjacent ids, with a shorter clockwise distance from i {\displaystyle i_{ }} to i {\displaystyle i_{ }} , then the node with id i {\displaystyle i_{ }} owns all the keys that fall between i {\displaystyle i_{ }} and i {\displaystyle i_{ }} . rendezvous hashing[edit] further information: rendezvous hashing in rendezvous hashing, also called highest random weight (hrw) hashing, all clients use the same hash function h ( ) {\displaystyle h()} (chosen ahead of time) to associate a key to one of the n available servers. each client has the same list of identifiers {s , s , ..., sn }, one for each server. given some key k, a client computes n hash weights w = h(s , k), w = h(s , k), ..., wn = h(sn, k). the client associates that key with the server corresponding to the highest hash weight for that key. a server with id s x {\displaystyle s_{x}} owns all the keys k m {\displaystyle k_{m}} for which the hash weight h ( s x , k m ) {\displaystyle h(s_{x},k_{m})} is higher than the hash weight of any other node for that key. locality-preserving hashing[edit] further information: locality-preserving hashing locality-preserving hashing ensures that similar keys are assigned to similar objects. this can enable a more efficient execution of range queries, however, in contrast to using consistent hashing, there is no more assurance that the keys (and thus the load) is uniformly randomly distributed over the key space and the participating peers. dht protocols such as self-chord and oscar[ ] address such issues. self-chord decouples object keys from peer ids and sorts keys along the ring with a statistical approach based on the swarm intelligence paradigm.[ ] sorting ensures that similar keys are stored by neighbour nodes and that discovery procedures, including range queries, can be performed in logarithmic time. oscar constructs a navigable small-world network based on random walk sampling also assuring logarithmic search time. overlay network[edit] each node maintains a set of links to other nodes (its neighbors or routing table). together, these links form the overlay network.[ ] a node picks its neighbors according to a certain structure, called the network's topology. all dht topologies share some variant of the most essential property: for any key k, each node either has a node id that owns k or has a link to a node whose node id is closer to k, in terms of the keyspace distance defined above. it is then easy to route a message to the owner of any key k using the following greedy algorithm (that is not necessarily globally optimal): at each step, forward the message to the neighbor whose id is closest to k. when there is no such neighbor, then we must have arrived at the closest node, which is the owner of k as defined above. this style of routing is sometimes called key-based routing. beyond basic routing correctness, two important constraints on the topology are to guarantee that the maximum number of hops in any route (route length) is low, so that requests complete quickly; and that the maximum number of neighbors of any node (maximum node degree) is low, so that maintenance overhead is not excessive. of course, having shorter routes requires higher maximum degree. some common choices for maximum degree and route length are as follows, where n is the number of nodes in the dht, using big o notation: max. degree max route length used in note o ( ) {\displaystyle o( )} o ( n ) {\displaystyle o(n)} worst lookup lengths, with likely much slower lookups times o ( ) {\displaystyle o( )} o ( log ⁡ n ) {\displaystyle o(\log n)} koorde (with constant degree) more complex to implement, but acceptable lookup time can be found with a fixed number of connections o ( log ⁡ n ) {\displaystyle o(\log n)} o ( log ⁡ n ) {\displaystyle o(\log n)} chord kademlia pastry tapestry most common, but not optimal (degree/route length). chord is the most basic version, with kademlia seeming the most popular optimized variant (should have improved average lookup) o ( log ⁡ n ) {\displaystyle o(\log n)} o ( log ⁡ n / log ⁡ ( log ⁡ n ) ) {\displaystyle o(\log n/\log(\log n))} koorde (with optimal lookup) more complex to implement, but lookups might be faster (have a lower worst case bound) o ( n ) {\displaystyle o({\sqrt {n}})} o ( ) {\displaystyle o( )} worst local storage needs, with much communication after any node connects or disconnects the most common choice, o ( log ⁡ n ) {\displaystyle o(\log n)} degree/route length, is not optimal in terms of degree/route length tradeoff, but such topologies typically allow more flexibility in choice of neighbors. many dhts use that flexibility to pick neighbors that are close in terms of latency in the physical underlying network. in general, all dhts construct navigable small-world network topologies, which trade-off route length vs. network degree.[ ] maximum route length is closely related to diameter: the maximum number of hops in any shortest path between nodes. clearly, the network's worst case route length is at least as large as its diameter, so dhts are limited by the degree/diameter tradeoff[ ] that is fundamental in graph theory. route length can be greater than diameter, since the greedy routing algorithm may not find shortest paths.[ ] algorithms for overlay networks[edit] aside from routing, there exist many algorithms that exploit the structure of the overlay network for sending a message to all nodes, or a subset of nodes, in a dht.[ ] these algorithms are used by applications to do overlay multicast, range queries, or to collect statistics. two systems that are based on this approach are structella,[ ] which implements flooding and random walks on a pastry overlay, and dq-dht, which implements a dynamic querying search algorithm over a chord network.[ ] security[edit] because of the decentralization, fault tolerance, and scalability of dhts, they are inherently more resilient against a hostile attacker than a centralized system.[vague] open systems for distributed data storage that are robust against massive hostile attackers are feasible.[ ] a dht system that is carefully designed to have byzantine fault tolerance can defend against a security weakness, known as the sybil attack, which affects all current dht designs.[ ][ ] petar maymounkov, one of the original authors of kademlia, has proposed a way to circumvent the weakness to the sybil attack by incorporating social trust relationships into the system design.[ ] the new system, codenamed tonika or also known by its domain name as ttt, is based on an algorithm design known as "electric routing" and co-authored with the mathematician jonathan kelner.[ ] maymounkov has now undertaken a comprehensive implementation effort of this new system. however, research into effective defences against sybil attacks is generally considered an open question, and wide variety of potential defences are proposed every year in top security research conferences.[citation needed] implementations[edit] most notable differences encountered in practical instances of dht implementations include at least the following: the address space is a parameter of dht. several real-world dhts use -bit or -bit key space. some real-world dhts use hash functions other than sha- . in the real world the key k could be a hash of a file's content rather than a hash of a file's name to provide content-addressable storage, so that renaming of the file does not prevent users from finding it. some dhts may also publish objects of different types. for example, key k could be the node id and associated data could describe how to contact this node. this allows publication-of-presence information and often used in im applications, etc. in the simplest case, id is just a random number that is directly used as key k (so in a -bit dht id will be a -bit number, usually randomly chosen). in some dhts, publishing of nodes' ids is also used to optimize dht operations. redundancy can be added to improve reliability. the (k, data) key pair can be stored in more than one node corresponding to the key. usually, rather than selecting just one node, real world dht algorithms select i suitable nodes, with i being an implementation-specific parameter of the dht. in some dht designs, nodes agree to handle a certain keyspace range, the size of which may be chosen dynamically, rather than hard-coded. some advanced dhts like kademlia perform iterative lookups through the dht first in order to select a set of suitable nodes and send put(k, data) messages only to those nodes, thus drastically reducing useless traffic, since published messages are only sent to nodes that seem suitable for storing the key k; and iterative lookups cover just a small set of nodes rather than the entire dht, reducing useless forwarding. in such dhts, forwarding of put(k, data) messages may only occur as part of a self-healing algorithm: if a target node receives a put(k, data) message, but believes that k is out of its handled range and a closer node (in terms of dht keyspace) is known, the message is forwarded to that node. otherwise, data are indexed locally. this leads to a somewhat self-balancing dht behavior. of course, such an algorithm requires nodes to publish their presence data in the dht so the iterative lookups can be performed. since on most machines sending messages is much more expensive than local hash table accesses, it makes sense to bundle many messages concerning a particular node into a single batch. assuming each node has a local batch consisting of at most b operations, the bundling procedure is as follows. each node first sorts its local batch by the identifier of the node responsible for the operation. using bucket sort, this can be done in o(b + n), where n is the number of nodes in the dht. when there are multiple operations addressing the same key within one batch, the batch is condensed before being sent out. for example, multiple lookups of the same key can be reduced to one or multiple increments can be reduced to a single add operation. this reduction can be implemented with the help of a temporary local hash table. finally, the operations are sent to the respective nodes.[ ] examples[edit] dht protocols and implementations[edit] apache cassandra baton overlay mainline dht – standard dht used by bittorrent (based on kademlia as provided by khashmir)[ ] content addressable network (can) chord koorde kademlia pastry p-grid riak tapestry tomp p voldemort applications using dhts[edit] btdigg: bittorrent dht search engine codeen: web caching coral content distribution network freenet: a censorship-resistant anonymous network glusterfs: a distributed file system used for storage virtualization gnunet: freenet-like distribution network including a dht implementation i p: an open-source anonymous peer-to-peer network i p-bote: serverless secure anonymous email ipfs: a content-addressable, peer-to-peer hypermedia distribution protocol jxta: open-source p p platform oracle coherence: an in-memory data grid built on top of a java dht implementation perfect dark: a peer-to-peer file-sharing application from japan retroshare: a friend-to-friend network[ ] jami: a privacy-preserving voice, video and chat communication platform, based on a kademlia-like dht tox: an instant messaging system intended to function as a skype replacement twister: a microblogging peer-to-peer platform yacy: a distributed search engine see also[edit] couchbase server: a persistent, replicated, clustered distributed object storage system compatible with memcached protocol. memcached: a high-performance, distributed memory object caching system. prefix hash tree: sophisticated querying over dhts. merkle tree: tree having every non-leaf node labelled with the hash of the labels of its children nodes. most distributed data stores employ some form of dht for lookup. skip graphs are an efficient data structure for implementing dhts. references[edit] ^ stoica, i.; morris, r.; karger, d.; kaashoek, m. f.; balakrishnan, h. ( ). "chord: a scalable peer-to-peer lookup service for internet applications" (pdf). acm sigcomm computer communication review. ( ): . doi: . / . . a value can be an address, a document, or an arbitrary data item. ^ liz, crowcroft; et al. ( ). "a survey and comparison of peer-to-peer overlay network schemes" (pdf). ieee communications surveys & tutorials. ( ): – . citeseerx  . . . . . doi: . /comst. . . ^ richter, stevenson; et al. ( ). "analysis of the impact of dynamic querying models on client-server relationships". trends in modern computing: – . ^ searching in a small world chapters & (pdf), retrieved - - ^ "section . . " (pdf), a distributed decentralized information storage and retrieval system, retrieved - - ^ ratnasamy; et al. ( ). "a scalable content-addressable network" (pdf). in proceedings of acm sigcomm . retrieved - - . cite journal requires |journal= (help) ^ hari balakrishnan, m. frans kaashoek, david karger, robert morris, and ion stoica. looking up data in p p systems. in communications of the acm, february . ^ david cohen (october , ). "new p p network funded by us government". new scientist. retrieved november , . ^ "mit, berkeley, icsi, nyu, and rice launch the iris project". press release. mit. september , . archived from the original on september , . retrieved november , . ^ r mokadem, a hameurlain and am tjoa. resource discovery service while minimizing maintenance overhead in hierarchical dht systems. proc. iiwas, ^ guido urdaneta, guillaume pierre and maarten van steen. a survey of dht security techniques. acm computing surveys ( ), january . ^ moni naor and udi wieder. novel architectures for p p applications: the continuous-discrete approach. proc. spaa, . ^ gurmeet singh manku. dipsea: a modular distributed hash table archived - - at the wayback machine. ph. d. thesis (stanford university), august . ^ girdzijauskas, Šarūnas; datta, anwitaman; aberer, karl ( - - ). "structured overlay for heterogeneous environments". acm transactions on autonomous and adaptive systems. ( ): – . doi: . / . . issn  - . ^ forestiero, agostino; leonardi, emilio; mastroianni, carlo; meo, michela (october ). "self-chord: a bio-inspired p p framework for self-organizing distributed systems". ieee/acm transactions on networking. ( ): – . doi: . /tnet. . . ^ galuba, wojciech; girdzijauskas, sarunas ( ), "peer to peer overlay networks: structure, routing and maintenance", in liu, ling; Özsu, m. tamer (eds.), encyclopedia of database systems, springer us, pp.  – , doi: . / - - - - _ , isbn  ^ girdzijauskas, sarunas ( ). designing peer-to-peer overlays a small-world perspective. epfl.ch. epfl. ^ the (degree,diameter) problem for graphs, maite .upc.es, archived from the original on - - , retrieved - - ^ gurmeet singh manku, moni naor, and udi wieder. "know thy neighbor's neighbor: the power of lookahead in randomized p p networks". proc. stoc, . ^ ali ghodsi. "distributed k-ary system: algorithms for distributed hash tables", archived may at the wayback machine. kth-royal institute of technology, . ^ castro, miguel; costa, manuel; rowstron, antony ( january ). "should we build gnutella on a structured overlay?" (pdf). acm sigcomm computer communication review. ( ): . citeseerx  . . . . . doi: . / . . ^ talia, domenico; trunfio, paolo (december ). "enabling dynamic querying over distributed hash tables". journal of parallel and distributed computing. ( ): – . doi: . /j.jpdc. . . . ^ baruch awerbuch, christian scheideler. "towards a scalable and robust dht". . doi: . / . ^ maxwell young; aniket kate; ian goldberg; martin karsten. "practical robust communication in dhts tolerating a byzantine adversary". ^ natalya fedotova; giordano orzetti; luca veltri; alessandro zaccagnini. "byzantine agreement for reputation management in dht-based peer-to-peer networks". doi: . /ictel. . ^ chris lesniewski-laas. "a sybil-proof one-hop dht" (pdf): . cite journal requires |journal= (help) ^ jonathan kelner, petar maymounkov ( ). "electric routing and concurrent flow cutting". arxiv: . . bibcode: arxiv . k. cite journal requires |journal= (help) ^ sanders, peter; mehlhorn, kurt; dietzfelbinger, martin; dementiev, roman ( ). sequential and parallel algorithms and data structures: the basic toolbox. springer international publishing. isbn  - - - - . ^ tribler wiki archived december , , at the wayback machine retrieved january . ^ retroshare faq retrieved december external links[edit] distributed hash tables, part by brandon wiley. distributed hash tables links carles pairot's page on dht and p p research kademlia.scs.cs.nyu.edu archive.org snapshots of kademlia.scs.cs.nyu.edu eng-keong lua; crowcroft, jon; pias, marcelo; sharma, ravi; lim, steve ( ). "ieee survey on overlay network schemes". citeseerx  . . . . : cite journal requires |journal= (help) covering unstructured and structured decentralized overlay networks including dhts (chord, pastry, tapestry and others). mainline dht measurement at department of computer science, university of helsinki, finland. v t e bittorrent companies bittorrent, inc. vuze, inc. people bram cohen ross cohen eric klinker ashwin navin justin sun technology glossary broadcatching distributed hash tables dna i p index local peer discovery peer exchange protocol encryption super-seeding tracker torrent file tcp udp µtp webrtc webtorrent clients (comparison, usage share) ares galaxy bittorrent (original client) bitcomet bitlord deluge free download manager flashget frostwire getright go!zilla ktorrent libtorrent (library) limewire µtorrent miro mldonkey qbittorrent rtorrent shareaza tixati transmission tribler vuze (formerly azureus) webtorrent desktop xunlei tracker software (comparison) opentracker peertracker torrentpier xbt tracker search engines (comparison) x btdigg demonoid etree extratorrent eztv isohunt karagarga kickasstorrents nyaa torrents the pirate bay rarbg tamil rockers torrentz yify yourbittorrent defunct websites btjunkie burnbit lokitorrent mininova oink's pink palace openbittorrent suprnova.org t torrent project torrentspy what.cd youtorrent related topics axxo bittorrent open source license glossary of bittorrent terms popcorn time slyck.com torrentfreak category commons retrieved from "https://en.wikipedia.org/w/index.php?title=distributed_hash_table&oldid= " categories: distributed data storage file sharing distributed data structures hash based data structures network architecture hashing hidden categories: cs errors: missing periodical webarchive template wayback links articles with short description short description is different from wikidata articles needing additional references from september all articles needing additional references all wikipedia articles needing clarification wikipedia articles needing clarification from june all articles with unsourced statements articles with unsourced statements from may navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages Български català deutsch español فارسی français 한국어 italiano magyar nederlands 日本語 norsk bokmål polski português Русский Српски / srpski suomi svenska türkçe Українська tiếng việt 中文 edit links this page was last edited on march , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement evaluation strategy - wikipedia evaluation strategy from wikipedia, the free encyclopedia jump to navigation jump to search evaluation strategies eager evaluation lazy evaluation partial evaluation remote evaluation short-circuit evaluation v t e evaluation strategies are used by programming languages to determine two things—when to evaluate the arguments of a function call and what kind of value to pass to the function. to illustrate, a function application may evaluate the argument before evaluating the function's body and pass the ability to look up the argument's current value and modify it via assignment.[ ] the notion of reduction strategy in lambda calculus is similar but distinct. in practical terms, many modern programming languages like c# and java have converged on a call-by-value/call-by-reference evaluation strategy for function calls.[clarification needed] some languages, especially lower-level languages such as c++, combine several notions of parameter passing. historically, call by value and call by name date back to algol , which was designed in the late s. call by reference is used by pl/i and some fortran systems.[ ] purely functional languages like haskell, as well as non-purely functional languages like r, use call by need. evaluation strategy is specified by the programming language definition, and is not a function of any specific implementation. contents strict evaluation . applicative order . call by value . . implicit limitations . call by reference . call by sharing . call by copy-restore . partial evaluation non-strict evaluation . normal order . call by name . call by need . call by macro expansion nondeterministic strategies . full β-reduction . call by future . optimistic evaluation see also references further reading strict evaluation[edit] main article: eager evaluation in strict evaluation, the arguments to a function are always evaluated completely before the function is applied. under church encoding, eager evaluation of operators maps to strict evaluation of functions; for this reason, strict evaluation is sometimes called "eager". most existing programming languages use strict evaluation for functions. applicative order[edit] applicative order evaluation is an evaluation strategy in which an expression is evaluated by repeatedly evaluating its leftmost innermost reducible expression. this means that a function's arguments are evaluated before the function is applied.[ ] call by value[edit] call by value (also known as pass by value) is the most common evaluation strategy, used in languages as different as c and scheme. in call by value, the argument expression is evaluated, and the resulting value is bound to the corresponding variable in the function (frequently by copying the value into a new memory region). if the function or procedure is able to assign values to its parameters, only its local variable is assigned—that is, anything passed into a function call is unchanged in the caller's scope when the function returns. call by value is not a single evaluation strategy, but rather the family of evaluation strategies in which a function's argument is evaluated before being passed to the function. while many programming languages (such as common lisp, eiffel and java) that use call by value evaluate function arguments left-to-right, some evaluate functions and their arguments right-to-left, and others (such as scheme, ocaml and c) do not specify order. implicit limitations[edit] in some cases, the term "call by value" is problematic, as the value which is passed is not the value of the variable as understood by the ordinary meaning of value, but an implementation-specific reference to the value. the effect is that what syntactically looks like call by value may end up rather behaving like call by reference or call by sharing, often depending on very subtle aspects of the language semantics. the reason for passing a reference is often that the language technically does not provide a value representation of complicated data, but instead represents them as a data structure while preserving some semblance of value appearance in the source code. exactly where the boundary is drawn between proper values and data structures masquerading as such is often hard to predict. in c, an array (of which strings are special cases) is a data structure but the name of an array is treated as (has as value) the reference to the first element of the array, while a struct variable's name refers to a value even if it has fields that are vectors. in maple, a vector is a special case of a table and therefore a data structure, but a list (which gets rendered and can be indexed in exactly the same way) is a value. in tcl, values are "dual-ported" such that the value representation is used at the script level, and the language itself manages the corresponding data structure, if one is required. modifications made via the data structure are reflected back to the value representation and vice versa. the description "call by value where the value is a reference" is common (but should not be understood as being call by reference); another term is call by sharing. thus the behaviour of call by value java or visual basic and call by value c or pascal are significantly different: in c or pascal, calling a function with a large structure as an argument will cause the entire structure to be copied (except if it's actually a reference to a structure), potentially causing serious performance degradation, and mutations to the structure are invisible to the caller. however, in java or visual basic only the reference to the structure is copied, which is fast, and mutations to the structure are visible to the caller. call by reference[edit] call by reference (or pass by reference) is an evaluation strategy where a function receives an implicit reference to a variable used as argument, rather than a copy of its value. this typically means that the function can modify (i.e., assign to) the variable used as argument—something that will be seen by its caller. call by reference can therefore be used to provide an additional channel of communication between the called function and the calling function. a call-by-reference language makes it more difficult for a programmer to track the effects of a function call, and may introduce subtle bugs. a simple litmus test for whether a language supports call-by-reference semantics is if it's possible to write a traditional swap(a, b) function in the language.[ ] many languages support call by reference in some form, but few use it by default. fortran ii is an early example of a call-by-reference language. a few languages, such as c++, php, visual basic .net, c# and realbasic, default to call by value, but offer a special syntax for call-by-reference parameters. c++ additionally offers call by reference to const. call by reference can be simulated in languages that use call by value and don't exactly support call by reference, by making use of references (objects that refer to other objects), such as pointers (objects representing the memory addresses of other objects). languages such as c, ml and rust use this technique. it is not a separate evaluation strategy—the language calls by value—but sometimes it is referred to as "call by address" or "pass by address". in ml, references are type- and memory-safe, similar to rust. a similar effect is achieved by call by sharing (passing an object, which can then be mutated), used in languages like java, python, and ruby. in purely functional languages there is typically no semantic difference between the two strategies (since their data structures are immutable, so there is no possibility for a function to modify any of its arguments), so they are typically described as call by value even though implementations frequently use call by reference internally for the efficiency benefits. following is an example that demonstrates call by reference in the e programming language: def modify(var p, &q) { p := # passed by value: only the local parameter is modified q := # passed by reference: variable used in call is modified } ? var a := # value: ? var b := # value: ? modify(a, &b) ? a # value: ? b # value: following is an example of call by address that simulates call by reference in c: void modify(int p, int* q, int* r) { p = ; // passed by value: only the local parameter is modified *q = ; // passed by value or reference, check call site to determine which *r = ; // passed by value or reference, check call site to determine which } int main() { int a = ; int b = ; int x = ; int* c = &x; modify(a, &b, c); // a is passed by value, b is passed by reference by creating a pointer (call by value), // c is a pointer passed by value // b and x are changed return ; } call by sharing[edit] call by sharing (also known as "call by object" or "call by object-sharing") is an evaluation strategy first noted by barbara liskov in for the clu language.[ ] it is used by languages such as python,[ ] java (for object references), ruby, javascript, scheme, ocaml, applescript, and many others. however, the term "call by sharing" is not in common use; the terminology is inconsistent across different sources. for example, in the java community, they say that java is call by value.[ ] call by sharing implies that values in the language are based on objects rather than primitive types, i.e., that all values are "boxed". because they are boxed they can be said to pass by copy of reference (where primitives are boxed before passing and unboxed at called function). the semantics of call by sharing differ from call by reference: "in particular it is not call by value because mutations of arguments performed by the called routine will be visible to the caller. and it is not call by reference because access is not given to the variables of the caller, but merely to certain objects".[ ] so, for example, if a variable was passed, it is not possible to simulate an assignment on that variable in the callee's scope.[ ] however, since the function has access to the same object as the caller (no copy is made), mutations to those objects, if the objects are mutable, within the function are visible to the caller, which may appear to differ from call by value semantics. mutations of a mutable object within the function are visible to the caller because the object is not copied or cloned—it is shared. for example, in python, lists are mutable, so: def f(a_list): a_list.append( ) m = [] f(m) print(m) outputs [ ] because the append method modifies the object on which it is called. assignments within a function are not noticeable to the caller, because, in these languages, passing the variable only means passing (access to) the actual object referred to by the variable, not access to the original (caller's) variable. since the rebound variable only exists within the scope of the function, the counterpart in the caller retains its original binding. compare the python mutation above with the code below, which binds the formal argument to a new object: def f(a_list): a_list = [ ] m = [] f(m) print(m) outputs [], because the statement a_list = [ ] reassigns a new list to the variable rather than to the location it references. for immutable objects, there is no real difference between call by sharing and call by value, except if object identity is visible in the language. the use of call by sharing with mutable objects is an alternative to input/output parameters: the parameter is not assigned to (the argument is not overwritten and object identity is not changed), but the object (argument) is mutated.[ ] although this term has widespread usage in the python community, identical semantics in other languages such as java and visual basic are often described as call by value, where the value is implied to be a reference to the object.[citation needed] call by copy-restore[edit] call by copy-restore—also known as "copy-in copy-out", "call by value result", "call by value return" (as termed in the fortran community)—is a special case of call by reference where the provided reference is unique to the caller. this variant has gained attention in multiprocessing contexts and remote procedure call:[ ] if a parameter to a function call is a reference that might be accessible by another thread of execution, its contents may be copied to a new reference that is not; when the function call returns, the updated contents of this new reference are copied back to the original reference ("restored"). the semantics of call by copy-restore also differ from those of call by reference, where two or more function arguments alias one another (i.e., point to the same variable in the caller's environment). under call by reference, writing to one will affect the other; call by copy-restore avoids this by giving the function distinct copies, but leaves the result in the caller's environment undefined depending on which of the aliased arguments is copied back first—will the copies be made in left-to-right order both on entry and on return? when the reference is passed to the callee uninitialized, this evaluation strategy may be called "call by result". partial evaluation[edit] main article: partial evaluation in partial evaluation, evaluation may continue into the body of a function that has not been applied. any sub-expressions that do not contain unbound variables are evaluated, and function applications whose argument values are known may be reduced. if there are side effects, complete partial evaluation may produce unintended results, which is why systems that support partial evaluation tend to do so only for "pure" expressions (i.e., those without side effects) within functions. non-strict evaluation[edit] this section does not cite any sources. please help improve this section by adding citations to reliable sources. unsourced material may be challenged and removed. (june ) (learn how and when to remove this template message) in non-strict evaluation, arguments to a function are not evaluated unless they are actually used in the evaluation of the function body. under church encoding, lazy evaluation of operators maps to non-strict evaluation of functions; for this reason, non-strict evaluation is often referred to as "lazy". boolean expressions in many languages use a form of non-strict evaluation called short-circuit evaluation, where evaluation returns as soon as it can be determined that an unambiguous boolean will result—for example, in a disjunctive expression (or) where true is encountered, or in a conjunctive expression (and) where false is encountered, and so forth. conditional expressions also usually use lazy evaluation, where evaluation returns as soon as an unambiguous branch will result. normal order[edit] normal order evaluation is an evaluation strategy in which an expression is evaluated by repeatedly evaluating its leftmost outermost reducible expression. this means that a function's arguments are not evaluated before the function is applied.[ ] call by name[edit] call by name is an evaluation strategy where the arguments to a function are not evaluated before the function is called—rather, they are substituted directly into the function body (using capture-avoiding substitution) and then left to be evaluated whenever they appear in the function. if an argument is not used in the function body, the argument is never evaluated; if it is used several times, it is re-evaluated each time it appears. (see jensen's device.) call-by-name evaluation is occasionally preferable to call-by-value evaluation. if a function's argument is not used in the function, call by name will save time by not evaluating the argument, whereas call by value will evaluate it regardless. if the argument is a non-terminating computation, the advantage is enormous. however, when the function argument is used, call by name is often slower, requiring a mechanism such as a thunk. an early use was algol . today's .net languages can simulate call by name using delegates or expression parameters. the latter results in an abstract syntax tree being given to the function. eiffel provides agents, which represent an operation to be evaluated when needed. seed provides call by name with function parameters. java programs can accomplish similar lazy evaluation using lambda expressions and the java.util.function.supplier interface. call by need[edit] main article: lazy evaluation call by need is a memoized variant of call by name, where, if the function argument is evaluated, that value is stored for subsequent use. if the argument is pure (i.e., free of side effects), this produces the same results as call by name, saving the cost of recomputing the argument. haskell is a well-known language that uses call-by-need evaluation. because evaluation of expressions may happen arbitrarily far into a computation, haskell only supports side effects (such as mutation) via the use of monads. this eliminates any unexpected behavior from variables whose values change prior to their delayed evaluation. in r's implementation of call by need, all arguments are passed, meaning that r allows arbitrary side effects. lazy evaluation is the most common implementation of call-by-need semantics, but variations like optimistic evaluation exist. .net languages implement call by need using the type lazy. call by macro expansion[edit] call by macro expansion is similar to call by name, but uses textual substitution rather than capture, thereby avoiding substitution. but macro substitution may cause mistakes, resulting in variable capture, leading to undesired behavior. hygienic macros avoid this problem by checking for and replacing shadowed variables that are not parameters. nondeterministic strategies[edit] full β-reduction[edit] under "full β-reduction", any function application may be reduced (substituting the function's argument into the function using capture-avoiding substitution) at any time. this may be done even within the body of an unapplied function. call by future[edit] see also: futures and promises "call by future", also known as "parallel call by name", is a concurrent evaluation strategy in which the value of a future expression is computed concurrently with the flow of the rest of the program with promises, also known as futures. when the promise's value is needed, the main program blocks until the promise has a value (the promise or one of the promises finishes computing, if it has not already completed by then). this strategy is non-deterministic, as the evaluation can occur at any time between creation of the future (i.e., when the expression is given) and use of the future's value. it is similar to call by need in that the value is only computed once, and computation may be deferred until the value is needed, but it may be started before. further, if the value of a future is not needed, such as if it is a local variable in a function that returns, the computation may be terminated partway through. if implemented with processes or threads, creating a future will spawn one or more new processes or threads (for the promises), accessing the value will synchronize these with the main thread, and terminating the computation of the future corresponds to killing the promises computing its value. if implemented with a coroutine, as in .net async/await, creating a future calls a coroutine (an async function), which may yield to the caller, and in turn be yielded back to when the value is used, cooperatively multitasking. optimistic evaluation[edit] optimistic evaluation is another call-by-need variant where the function's argument is partially evaluated for some amount of time (which may be adjusted at runtime). after that time has passed, evaluation is aborted and the function is applied using call by need.[ ] this approach avoids some the call-by-need strategy's runtime expenses while retaining desired termination characteristics. see also[edit] beta normal form comparison of programming languages eval lambda calculus call-by-push-value parameter (computer science) references[edit] this article includes a list of general references, but it remains largely unverified because it lacks sufficient corresponding inline citations. please help to improve this article by introducing more precise citations. (april ) (learn how and when to remove this template message) ^ daniel p. friedman; mitchell wand ( ). essentials of programming languages (third ed.). cambridge, ma: the mit press. isbn  - . ^ some fortran systems use call by copy-restore. ^ "applicative order reduction". encyclopedia .thefreedictionary.com. retrieved - - . ^ "java is pass-by-value, dammit!". retrieved - - . ^ liskov, barbara; atkinson, russ; bloom, toby; moss, eliot; schaffert, craig; scheifler, craig; snyder, alan (october ). "clu reference manual" (pdf). laboratory for computer science. massachusetts institute of technology. archived from the original (pdf) on - - . retrieved - - . ^ lundh, fredrik. "call by object". effbot.org. retrieved - - . ^ "java is pass-by-value, dammit!". retrieved - - . ^ clu reference manual ( ), p.  - . sfnp error: no target: citerefclu_reference_manual (help) ^ note: in clu language, "variable" corresponds to "identifier" and "pointer" in modern standard usage, not to the general/usual meaning of variable. ^ "ca : avoid out parameters". microsoft. ^ "rpc: remote procedure call protocol specification version ". tools.ietf.org. ietf. retrieved april . ^ "normal order reduction". encyclopedia .thefreedictionary.com. retrieved - - . ^ ennals, robert; jones, simon peyton (august ). "optimistic evaluation: a fast evaluation strategy for non-strict programs". further reading[edit] abelson, harold; sussman, gerald jay ( ). structure and interpretation of computer programs (second ed.). cambridge, massachusetts: the mit press. isbn  - - - - . baker-finch, clem; king, david; hall, jon; trinder, phil ( - - ). "an operational semantics for parallel call-by-need" (ps). research report. faculty of mathematics & computing, the open university. ( ). ennals, robert; peyton jones, simon ( ). optimistic evaluation: a fast evaluation strategy for non-strict programs (pdf). international conference on functional programming. acm press. ludäscher, bertram ( - - ). "cse lecture notes". cse : programming languages: principles & paradigms. pierce, benjamin c. ( ). types and programming languages. mit press. isbn  - - - . sestoft, peter ( ). mogensen, t; schmidt, d; sudborough, i. h. (eds.). demonstrating lambda calculus reduction (pdf). the essence of computation: complexity, analysis, transformation. essays dedicated to neil d. jones. lecture notes in computer science. . springer-verlag. pp.  – . isbn  - - - . "call by value and call by reference in c programming". call by value and call by reference in c programming explained. archived from the original on - - . retrieved from "https://en.wikipedia.org/w/index.php?title=evaluation_strategy&oldid= " categories: evaluation strategy hidden categories: harv and sfn no-target errors wikipedia articles needing clarification from january all articles with unsourced statements articles with unsourced statements from june articles needing additional references from june all articles needing additional references articles lacking in-text citations from april all articles lacking in-text citations articles with example python (programming language) code navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages Čeština deutsch français 한국어 日本語 português Русский slovenčina Українська 中文 edit links this page was last edited on march , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement filter (software) - wikipedia filter (software) from wikipedia, the free encyclopedia jump to navigation jump to search for internet filtering software, see content-control software. for video filtering software, see filter (video). for other uses, see email filtering. a filter is a computer program or subroutine to process a stream, producing another stream. while a single filter can be used individually, they are frequently strung together to form a pipeline. some operating systems such as unix are rich with filter programs. windows and later are also rich with filters, as they include windows powershell. in comparison, however, few filters are built into cmd.exe (the original command-line interface of windows), most of which have significant enhancements relative to the similar filter commands that were available in ms-dos. os x includes filters from its underlying unix base but also has automator, which allows filters (known as "actions") to be strung together to form a pipeline. contents unix . list of unix filter programs dos windows references external links unix[edit] in unix and unix-like operating systems, a filter is a program that gets most of its data from its standard input (the main input stream) and writes its main results to its standard output (the main output stream). auxiliary input may come from command line flags or configuration files, while auxiliary output may go to standard error. the command syntax for getting data from a device or file other than standard input is the input operator (<). similarly, to send data to a device or file other than standard output is the output operator (>). to append data lines to an existing output file, one can use the append operator (>>). filters may be strung together into a pipeline with the pipe operator ("|"). this operator signifies that the main output of the command to the left is passed as main input to the command on the right. the unix philosophy encourages combining small, discrete tools to accomplish larger tasks. the classic filter in unix is ken thompson's grep, which doug mcilroy cites as what "ingrained the tools outlook irrevocably" in the operating system, with later tools imitating it.[ ] grep at its simplest prints any lines containing a character string to its output. the following is an example: cut -d : -f /etc/passwd | grep foo this finds all registered users that have "foo" as part of their username by using the cut command to take the first field (username) of each line of the unix system password file and passing them all as input to grep, which searches its input for lines containing the character string "foo" and prints them on its output. common unix filter programs are: cat, cut, grep, head, sort, uniq, and tail. programs like awk and sed can be used to build quite complex filters because they are fully programmable. unix filters can also be used by data scientists to get a quick overview about a file based dataset.[ ] list of unix filter programs[edit] awk cat comm cut expand compress fold grep head less more nl perl paste pr sed sh sort split strings tail tac tee tr uniq wc zcat dos[edit] two standard filters from the early days of dos-based computers are find and sort. examples: find "keyword" < inputfilename > outputfilename sort "keyword" < inputfilename > outputfilename find /v "keyword" < inputfilename | sort > outputfilename such filters may be used in batch files (*.bat, *.cmd etc.). for use in the same command shell environment, there are many more filters available than those built into windows. some of these are freeware, some shareware and some are commercial programs. a number of these mimic the function and features of the filters in unix. some filtering programs have a graphical user interface (gui) to enable users to design a customized filter to suit their special data processing and/or data mining requirements. windows[edit] windows command prompt inherited ms-dos commands, improved some and added a few. for example, windows server features six command-line filters for modifying active directory that can be chained by piping: dsadd, dsget, dsmod, dsmove, dsrm and dsquery.[ ] windows powershell adds an entire host of filters known as "cmdlets" which can be chained together with a pipe, except a few simple ones, e.g. clear-screen. the following example gets a list of files in the c:\windows folder, gets the size of each and sorts the size in ascending order. it shows how three filters (get-childitem, foreach-object and sort-object) are chained with pipes. get-childitem c:\windows | foreach-object { $_.length } | sort-object -ascending references[edit] ^ mcilroy, m. d. ( ). a research unix reader: annotated excerpts from the programmer's manual, – (pdf) (technical report). cstr. bell labs. . cs maint: discouraged parameter (link) ^ data analysis with the unix shell archived - - at the wayback machine - bernd zuther, comsysto gmbh, ^ holme, dan; thomas, orin ( ). managing and maintaining a microsoft windows server environment : exam - . redmond, wa: microsoft press. pp.  | — | . isbn  . external links[edit] http://www.webopedia.com/term/f/filter.html retrieved from "https://en.wikipedia.org/w/index.php?title=filter_(software)&oldid= " categories: software design patterns programming paradigms operating system technology hidden categories: cs maint: discouraged parameter webarchive template wayback links navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages Čeština dansk español français italiano magyar 日本語 Українська walon edit links this page was last edited on january , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement erc- non-fungible token standard | ethereum.org help update this page there’s a new version of this page but it’s only in english right now. help us translate the latest version. translate page see english use ethereum ethereum wallets get eth decentralized applications (dapps) stablecoins stake eth learn what is ethereum? what is ether (eth)? decentralized finance (defi) decentralized autonomous organisations (daos) non-fungible tokens (nfts) history of ethereum ethereum whitepaper ethereum . ethereum glossary ethereum improvement proposals community guides and resources developers developers' home documentation tutorials learn by coding set up local environment enterprise mainnet ethereum private ethereum community ethereum community grants no results for your search "" languages use ethereum ethereum wallets get eth decentralized applications (dapps) stablecoins stake eth learn what is ethereum? what is ether (eth)? decentralized finance (defi) decentralized autonomous organisations (daos) non-fungible tokens (nfts) history of ethereum ethereum whitepaper ethereum . ethereum glossary ethereum improvement proposals community guides and resources developers developers' home documentation tutorials learn by coding set up local environment enterprise mainnet ethereum private ethereum community ethereum community grants search light languages search no results for your search "" search away! this page is incomplete and we'd love your help. edit this page and add anything that you think might be useful to others. erc- non-fungible token standard on this page introduction prerequisites body examples popular nfts further reading introduction what is a non-fungible token? a non-fungible token (nft) is used to identify something or someone in a unique way. this type of token is perfect to be used on platforms that offer collectible items, access keys, lottery tickets, numbered seats for concerts and sports matches, etc. this special type of token has amazing possibilities so it deserves a proper standard, the erc- came to solve that! what is erc- ? the erc- introduces a standard for nft, in other words, this type of token is unique and can have different value than another token from the same smart contract, maybe due to its age, rarity or even something else like its visual. wait, visual? yes! all nfts have a uint variable called tokenid, so for any erc- contract, the pair contract address, uint tokenid must be globally unique. said that a dapp can have a "converter" that uses the tokenid as input and outputs an image of something cool, like zombies, weapons, skills or amazing kitties! prerequisites accounts smart contracts token standards body the erc- (ethereum request for comments ), proposed by william entriken, dieter shirley, jacob evans, nastassia sachs in january , is a non-fungible token standard that implements an api for tokens within smart contracts. it provides functionalities like to transfer tokens from one account to another, to get the current token balance of an account, to get the owner of a specific token and also the total supply of the token available on the network. besides these it also has some other functionalities like to approve that an amount of token from an account can be moved by a third party account. if a smart contract implements the following methods and events it can be called an erc- non-fungible token contract and, once deployed, it will be responsible to keep track of the created tokens on ethereum. from eip- : methods function balanceof(address _owner) external view returns (uint ); function ownerof(uint _tokenid) external view returns (address); function safetransferfrom(address _from, address _to, uint _tokenid, bytes data) external payable; function safetransferfrom(address _from, address _to, uint _tokenid) external payable; function transferfrom(address _from, address _to, uint _tokenid) external payable; function approve(address _approved, uint _tokenid) external payable; function setapprovalforall(address _operator, bool _approved) external; function getapproved(uint _tokenid) external view returns (address); function isapprovedforall(address _owner, address _operator) external view returns (bool); show all copy events event transfer(address indexed _from, address indexed _to, uint indexed _tokenid); event approval(address indexed _owner, address indexed _approved, uint indexed _tokenid); event approvalforall(address indexed _owner, address indexed _operator, bool _approved); copy examples let's see how a standard is so important to make things simple for us to inspect any erc- token contract on ethereum. we just need the contract application binary interface (abi) to create an interface to any erc- token. as you can see below we will use a simplified abi, to make it a low friction example. web .py example first, make sure you have installed web .py python library: $ pip install web from web import web from web .utils.events import get_event_data w = web (web .httpprovider("https://cloudflare-eth.com")) ck_token_addr = " x c cf bead deae f f e a d" # cryptokitties contract acc_address = " xb c e a ed bab b de fb d c" # cryptokitties sales auction # this is a simplified contract application binary interface (abi) of an erc- nft contract. # it will expose only the methods: balanceof(address), name(), ownerof(tokenid), symbol(), totalsupply() simplified_abi = [ { 'inputs': [{'internaltype': 'address', 'name': 'owner', 'type': 'address'}], 'name': 'balanceof', 'outputs': [{'internaltype': 'uint ', 'name': '', 'type': 'uint '}], 'payable': false, 'statemutability': 'view', 'type': 'function', 'constant': true }, { 'inputs': [], 'name': 'name', 'outputs': [{'internaltype': 'string', 'name': '', 'type': 'string'}], 'statemutability': 'view', 'type': 'function', 'constant': true }, { 'inputs': [{'internaltype': 'uint ', 'name': 'tokenid', 'type': 'uint '}], 'name': 'ownerof', 'outputs': [{'internaltype': 'address', 'name': '', 'type': 'address'}], 'payable': false, 'statemutability': 'view', 'type': 'function', 'constant': true }, { 'inputs': [], 'name': 'symbol', 'outputs': [{'internaltype': 'string', 'name': '', 'type': 'string'}], 'statemutability': 'view', 'type': 'function', 'constant': true }, { 'inputs': [], 'name': 'totalsupply', 'outputs': [{'internaltype': 'uint ', 'name': '', 'type': 'uint '}], 'statemutability': 'view', 'type': 'function', 'constant': true }, ] ck_extra_abi = [ { 'inputs': [], 'name': 'pregnantkitties', 'outputs': [{'name': '', 'type': 'uint '}], 'payable': false, 'statemutability': 'view', 'type': 'function', 'constant': true }, { 'inputs': [{'name': '_kittyid', 'type': 'uint '}], 'name': 'ispregnant', 'outputs': [{'name': '', 'type': 'bool'}], 'payable': false, 'statemutability': 'view', 'type': 'function', 'constant': true } ] ck_contract = w .eth.contract(address=w .tochecksumaddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) name = ck_contract.functions.name().call() symbol = ck_contract.functions.symbol().call() kitties_auctions = ck_contract.functions.balanceof(acc_address).call() print(f"{name} [{symbol}] nfts in auctions: {kitties_auctions}") pregnant_kitties = ck_contract.functions.pregnantkitties().call() print(f"{name} [{symbol}] nfts pregnants: {pregnant_kitties}") # using the transfer event abi to get info about transferred kitties. tx_event_abi = { 'anonymous': false, 'inputs': [ {'indexed': false, 'name': 'from', 'type': 'address'}, {'indexed': false, 'name': 'to', 'type': 'address'}, {'indexed': false, 'name': 'tokenid', 'type': 'uint '}], 'name': 'transfer', 'type': 'event' } # we need the event's signature to filter the logs event_signature = w .sha (text="transfer(address,address,uint )").hex() logs = w .eth.getlogs({ "fromblock": w .eth.blocknumber - , "address": w .tochecksumaddress(ck_token_addr), "topics": [event_signature] }) # notes: # - blocks is the max range for cloudflare provider # - if you didn't find any transfer event you can also try to get a tokenid at: # https://etherscan.io/address/ x c cf bead deae f f e a d#events # click to expand the event's logs and copy its "tokenid" argument recent_tx = [get_event_data(tx_event_abi, log)["args"] for log in logs] kitty_id = recent_tx[ ]['tokenid'] # paste the "tokenid" here from the link above is_pregnant = ck_contract.functions.ispregnant(kitty_id).call() print(f"{name} [{symbol}] nfts {kitty_id} is pregnant: {is_pregnant}") show all copy cryptokitties contract has some interesting events other than the standard ones. let's check two of them, pregnant and birth. # using the pregnant and birth events abi to get info about new kitties. ck_extra_events_abi = [ { 'anonymous': false, 'inputs': [ {'indexed': false, 'name': 'owner', 'type': 'address'}, {'indexed': false, 'name': 'matronid', 'type': 'uint '}, {'indexed': false, 'name': 'sireid', 'type': 'uint '}, {'indexed': false, 'name': 'cooldownendblock', 'type': 'uint '}], 'name': 'pregnant', 'type': 'event' }, { 'anonymous': false, 'inputs': [ {'indexed': false, 'name': 'owner', 'type': 'address'}, {'indexed': false, 'name': 'kittyid', 'type': 'uint '}, {'indexed': false, 'name': 'matronid', 'type': 'uint '}, {'indexed': false, 'name': 'sireid', 'type': 'uint '}, {'indexed': false, 'name': 'genes', 'type': 'uint '}], 'name': 'birth', 'type': 'event' }] # we need the event's signature to filter the logs ck_event_signatures = [ w .sha (text="pregnant(address,uint ,uint ,uint )").hex(), w .sha (text="birth(address,uint ,uint ,uint ,uint )").hex(), ] # here is a pregnant event: # - https://etherscan.io/tx/ xc eb a acc ac d d a ea da ac b dff e db e f cef#eventlog pregnant_logs = w .eth.getlogs({ "fromblock": w .eth.blocknumber - , "address": w .tochecksumaddress(ck_token_addr), "topics": [ck_extra_events_abi[ ]] }) recent_pregnants = [get_event_data(ck_extra_events_abi[ ], log)["args"] for log in pregnant_logs] # here is a birth event: # - https://etherscan.io/tx/ x e a bb c f eb b c bf e f a birth_logs = w .eth.getlogs({ "fromblock": w .eth.blocknumber - , "address": w .tochecksumaddress(ck_token_addr), "topics": [ck_extra_events_abi[ ]] }) recent_births = [get_event_data(ck_extra_events_abi[ ], log)["args"] for log in birth_logs] show all copy popular nfts etherscan nft tracker list the top nft on ethereum by tranfers volume. cryptokitties is a game centered around breedable, collectible, and oh-so-adorable creatures we call cryptokitties. sorare is a global fantasy football game where you can collect limited editions collectibles, manage your teams and compete to earn prizes. the ethereum name service (ens) offers a secure & decentralised way to address resources both on and off the blockchain using simple, human-readable names. unstoppable domains is a san francisco-based company building domains on blockchains. blockchain domains replace cryptocurrency addresses with human-readable names and can be used to enable censorship-resistant websites. gods unchained cards is a tcg on the ethereum blockchain that uses nft's to bring real ownership to in-game assets. further reading eip- : erc- non-fungible token standard openzeppelin - erc- docs openzeppelin - erc- implementation back to top ↑ did this page help answer your question? yesno previouserc- : fungible tokens nextoracles edit page on this page introduction prerequisites body examples popular nfts further reading website last updated: april , use ethereum ethereum wallets get eth decentralized applications (dapps) stablecoins stake eth learn what is ethereum? what is ether (eth)? community guides and resources history of ethereum ethereum whitepaper ethereum . ethereum glossary ethereum improvement proposals developers get started documentation tutorials learn by coding set up local environment developer resources ecosystem ethereum community ethereum foundation ethereum foundation blog ecosystem support program ecosystem grant programs ethereum brand assets devcon enterprise mainnet ethereum private ethereum enterprise about ethereum.org about us jobs contributing language support privacy policy terms of use cookie policy contact fear of missing out - wikipedia fear of missing out from wikipedia, the free encyclopedia jump to navigation jump to search "fomo" redirects here. for the album by liam finn, see fomo (album). type of social anxiety smartphones enable people to remain in contact with their social and professional network continuously. this may result in compulsive checking for status updates and messages, for fear of missing an opportunity.[ ] fear of missing out (fomo) is a social anxiety[ ] stemming from the belief that others might be having fun while the person experiencing the anxiety is not present. it is characterized by a desire to stay continually connected with what others are doing.[ ] fomo is also defined as a fear of regret,[ ] which may lead to concerns that one might miss an opportunity for social interaction, a novel experience or a profitable investment.[ ] it is the fear that deciding not to participate is the wrong choice.[ ][ ] social networking creates many opportunities for fomo. while it provides opportunities for social engagement,[ ] it offers an endless stream of activities in which any given person is not involved. psychological dependence on social networks can result in anxiety and can lead to fomo[ ] or even pathological internet use.[ ] fomo is claimed to negatively influence psychological health and well-being.[ ] contents history definition effects causes marketing technique see also references history[edit] the phenomenon was first identified in by marketing strategist dr. dan herman, who conducted research for adam bellouch and published the first academic paper on the topic in in the journal of brand management.[ ] author patrick j. mcginnis coined the term fomo[ ] and popularized it in a op-ed in the harbus, the magazine of harvard business school. the article was titled mcginnis' two fos: social theory at hbs, and also referred to another related condition, fear of a better option (fobo), and their role in the school's social life.[ ][ ][ ] the origin of fomo has also been traced to the harbus article by academic joseph reagle.[ ] definition[edit] fomo refers to the apprehension that one is either not in the know or missing out on information, events, experiences, or decisions that could make one's life better.[ ] those affected by it may not know exactly what they are missing but may still worry that others are having a much better time or doing something better than they are, without them.[ ] fomo could result from not knowing about a conversation,[ ] missing a t.v. show, not attending a wedding or party,[ ] or hearing that others have discovered a new restaurant.[ ] within video games, fomo is also used to describe the similar anxiety around missing the ability to obtain in-game items or complete activities that are only available for a limited time.[ ] effects[edit] a study by jwtintelligence suggests that fomo can influence the formation of long-term goals and self-perceptions.[ ] in this study, around half of the respondents stated that they are overwhelmed by the amount of information needed to stay up-to-date, and that it is impossible to not miss out on something. the process of relative deprivation creates fomo and dissatisfaction. it reduces psychological well-being.[ ][ ][ ] fomo led to negative social and emotional experiences, such as boredom and loneliness.[ ] a study found that it negatively impacts mood and life satisfaction,[ ] reduces self-esteem, and affects mindfulness.[ ] according to john m. grohol, founder and editor-in-chief of psych central, fomo may lead to a constant search for new connections with others, abandoning current connections to do so. moreover, the desire to stay in touch may endanger personal safety, e.g., while driving.[ ] a university of glasgow study surveyed adolescents, and found that the respondents felt societal pressure to always be available.[ ] fomo-sufferers may increasingly seek access to others' social lives, and consume an escalating amount of real-time information.[ ] causes[edit] fomo arises from situational or long-term deficits in psychological needs satisfaction, which are not a new phenomenon.[ ] before the internet, a related phenomenon, "keeping up with the jones'", was widely experienced. fomo generalized and intensified this experience because so much more of people's lives became publicly documented and easily accessed. further, a common tendency is to post about positive experiences (that great restaurant) rather than negative ones (bad first date). self-determination theory contends that an individual's psychological satisfaction in their competence, autonomy, and relatedness consists of three basic psychological needs for human beings.[ ] test subjects with lower levels of basic psychological satisfaction reported a higher level of fomo. basic psychological satisfaction and fomo were positively correlated.[ ] four in ten young people reported fomo sometimes or often.[ ] fomo was found to be negatively correlated with age, and men were more likely than women to report it.[ ] social media platforms that are associated with fomo include snapchat,[ ] facebook,[ ] instagram,[ ] and twitter. marketing technique[edit] advertising and marketing campaigns may seek to intensify fomo within a marketing strategy. examples include at&t's "don't be left behind" campaign, duracell's powermat "stay in charge" campaign and heineken's "sunrise" campaign.[ ] the "sunrise" campaign, in particular, aimed to encourage responsible drinking by portraying excessive drinking as a way to miss the best parts of a party, rather than claiming that excessive drinking is a risk to personal health. other brands attempt counter fomo, such as nescafé's "wake up to life" campaign.[ ] harnessing tv viewers' fomo is also perceived to foster higher broadcast ratings. real-time updates about status and major social events allow for a more engaging media consumption experience and faster dissemination of information.[ ] real-time tweets about the super bowl are considered to be correlated with higher tv ratings due to their appeal to fomo and the prevalence of social media usage.[ ] see also[edit] hyperbolic discounting kiasu loss aversion irrational exuberance missed connections murray's system of needs opportunity cost relative deprivation self-determination theory social media status anxiety social proof references[edit] ^ anderson, hephzibah ( april ). "never heard of fomo? you're so missing out". the guardian. retrieved june . ^ a b c d e f g h "fear of missing out (fomo)" (pdf). j. walter thompson. march . archived from the original (pdf) on june , . ^ a b c d e f g h przybylski, andrew k.; murayama, kou; dehaan, cody r.; gladwell, valerie (july ). "motivational, emotional, and behavioral correlates of fear of missing out". computers in human behavior. ( ): – . doi: . /j.chb. . . . ^ a b c d wortham, j. (april , ). "feel like a wall flower? maybe it's your facebook wall". the new york times. ^ shea, michael ( july ). "living with fomo". the skinny. retrieved january . ^ alt, dorit; boniel-nissim, meyran ( - - ). "parent–adolescent communication and problematic internet use: the mediating role of fear of missing out (fomo)". journal of family issues. ( ): – . doi: . / x . issn  - x. s cid  . ^ jonathan k. j. ( ). "internet addiction on campus: the vulnerability of college students". cyberpsychology & behavior. ( ): – . doi: . /cpb. . . . archived from the original on - - . ^ song, indeok; larose, robert; eastin, matthew s.; lin, carolyn a. (september ). "internet gratifications and internet addiction: on the uses and abuses of new media". cyberpsychology & behavior. ( ): – . doi: . /cpb. . . . pmid  . ^ herman, dan ( - - ). "introducing short-term brands: a new branding tool for a new consumer reality". journal of brand management. ( ): – . doi: . /bm. . . issn  - x. s cid  . ^ kozodoy, peter ( - - ). "the inventor of fomo is warning leaders about a new, more dangerous threat". inc.com. retrieved - - . ^ "social theory at hbs: mcginnis' two fos". the harbus. may . retrieved march . ^ schreckinger, ben ( july ). "the home of fomo". boston. retrieved march . ^ blair, linda ( october ). "how to beat 'fear of missing out' as the growth of social media sites feeds the trend - independent.ie". independent.ie. retrieved - - . ^ "fomo's etymology". reagle.org. retrieved - - . ^ tait, amelia ( - - ). "why do we experience the curse of conversation envy?". metro. retrieved - - . ^ "why fomo at uni is totally ok to feel". debut. - - . retrieved - - . ^ delmar, niamh. "fomo: are you afraid of missing out?". the irish times. retrieved - - . ^ close, james; lloyd, joanne ( ). lifting the lid on loot-boxes (pdf) (report). gambleaware. retrieved april . cs maint: discouraged parameter (link) ^ morford, m. (august , ). "oh my god you are so missing out". san francisco chronicle. ^ burke, m.; marlow, c. & lento, t. ( ). social network activity and social well-being. postgraduate medical journal. . pp.  – . citeseerx  . . . . . doi: . / . . isbn  . s cid  . ^ "the fomo health factor". psychology today. retrieved - - . ^ grohol, j. (february , ). "fomo addiction: the fear of missing out". world of psychology. psych central. ^ "woods, h. c. and scott, h. ( ) #sleepyteens: social media use in adolescence is associated with poor sleep quality, anxiety, depression and low self-esteem. journal of adolescence, , pp. - " (pdf). university of glasgow. retrieved may . ^ amichai-hamburger, y. & ben-artzi, e. ( ), "loneliness and internet use", computers in human behavior, ( ): – , doi: . /s - ( ) - ^ deci, e.l. & ryan, r.m. ( ). intrinsic motivation and self-determination in human behavior. plenum press. isbn  . ^ "why snapchat is the leading cause of fomo". the odyssey online. - - . retrieved - - . ^ krasnova, hanna; widjaja, thomas; wenninger, helena; buxmann, peter ( ). "envy on facebook: a hidden threat to users' life satisfaction? - semantic scholar". doi: . /boris. . s cid  . cite journal requires |journal= (help) ^ djisseglo, ayoko ( - - ). "fomo: an instagram anxiety". medium. retrieved - - . v t e conformity enforcement proscription enemy of the people enemy of the state ostracism blacklisting cancel culture censorship outlaw civil death vogelfrei public enemy group pressure bandwagon effect brainwashing collectivism consensus reality deplatforming dogma emotional contagion behavioral crime hysterical suicide fear of missing out groupthink hazing herd mentality indoctrination invented tradition memory conformity milieu control mobbing nationalism normalization normative social influence patriotism peer pressure pluralistic ignorance propaganda rally 'round the flag effect scapegoating shunning social influence socialization spiral of silence teasing tyranny of the majority untouchability xeer individual pressure authoritarianism personality control freak obsessive–compulsive personality disorder conformity compliance communal reinforcement countersignaling herd behavior internalization obedience social proof experiments asch conformity experiments breaching experiment milgram experiment stanford prison experiment anticonformity alternative media anti-authoritarianism anti-social behaviour auto-segregation civil disobedience cosmopolitanism counterculture culture jamming deviance devil's advocate dissent eccentricity eclecticism hermit idiosyncrasy individualism pueblo clown rebellion red team satire shock value counterconformists cagot damnatio memoriae dissident exile homo sacer nonperson outcast persona non grata retrieved from "https://en.wikipedia.org/w/index.php?title=fear_of_missing_out&oldid= " categories: advertising anxiety internet culture social media hidden categories: cs maint: discouraged parameter cs errors: missing periodical articles with short description short description matches wikidata navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages العربية català deutsch Ελληνικά español فارسی français 한국어 Հայերեն italiano עברית 日本語 norsk bokmål pälzisch português Русский ไทย Українська 中文 edit links this page was last edited on april , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement interplanetary file system - wikipedia interplanetary file system from wikipedia, the free encyclopedia jump to navigation jump to search content-addressable, peer-to-peer hypermedia distribution protocol interplanetary file system original author(s) juan benet and protocol labs[ ] developer(s) protocol labs initial release february  ;  years ago ( - )[ ] stable release . . /  february ; months ago ( - - )[ ] repository github.com/ipfs/ipfs written in protocol implementations: go (reference implementation), javascript, c,[ ] python client libraries: go, java, javascript, python, scala, haskell, swift, common lisp, rust, ruby, php, c#, erlang operating system linux, freebsd, openbsd, macos, windows available in go, javascript, python type protocol, distributed file system, content delivery network license mit license, apache license . website ipfs.io part of a series on file sharing technologies file hosting services online video platform peer to peer usenet web hosting webrtc xdcc video sharing sites movies dailymotion peertube putlocker youtube bittorrent sites x demonoid extratorrent eztv isohunt kickasstorrents nyaa torrents rarbg tamil rockers the pirate bay yify academic #icanhazpdf internet archive library genesis sci-hub academic torrents z-library file sharing networks bittorrent direct connect edonkey freenet gnutella gnutella ipfs lbry ares galaxy list of p p protocols opennap webtorrent p p clients bitcomet dc++ deluge emule μtorrent qbittorrent shareaza soulseek transmission tribler vuze winmx napster streaming programs butter project popcorn time torrents-time anonymous file sharing anonymous p p darknet freenet friend-to-friend i p private p p proxy server seedbox tor vpn development and societal aspects timeline legality bittorrent issues by country or region canada japan singapore uk us comparisons comparison of bittorrent clients comparison of bittorrent sites comparison of edonkey software comparison of internet relay chat clients comparison of usenet newsreaders v t e the interplanetary file system (ipfs) is a protocol and peer-to-peer network for storing and sharing data in a distributed file system. ipfs uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices.[ ] contents design history other notable uses see also references external links design[edit] this section needs expansion. you can help by adding to it. (june ) ipfs allows users to host and receive content in a manner similar to bittorrent. as opposed to a centrally located server, ipfs is built around a decentralized system[ ] of user-operators who hold a portion of the overall data, creating a resilient system of file storage and sharing. any user in the network can serve a file by its content address, and other peers in the network can find and request that content from any node who has it using a distributed hash table (dht). in contrast to bittorrent, ipfs aims to create a single global network. this means that if alice and bob publish a block of data with the same hash, the peers downloading the content from alice will exchange data with the ones downloading it from bob.[ ] ipfs aims to replace protocols used for static webpage delivery by using gateways which are accessible with http.[ ] users may choose not to install an ipfs client on their device and instead use a public gateway. a list of these gateways is maintained on the ipfs github page.[ ] history[edit] this section needs expansion. you can help by adding to it. (june ) ipfs was launched in an alpha version in february , and by october of the same year was described by techcrunch as "quickly spreading by word of mouth."[ ] the catalan independence referendum, taking place in september–october , was deemed illegal by the constitutional court of spain and many related websites were blocked. subsequently, the catalan pirate party mirrored the website on ipfs to bypass the high court of justice of catalonia order of blocking.[ ][ ] phishing attacks have also been distributed through cloudflare's ipfs gateway since july . the phishing scam html is stored on ipfs, and displayed via cloudflare's gateway. the connection shows as secure via a cloudflare ssl certificate.[ ] the ipstorm botnet, first detected in june , uses ipfs, so it can hide its command-and-control amongst the flow of legitimate data on the ipfs network.[ ] security researchers had worked out previously the theoretical possibility of using ipfs as a botnet command-and-control system.[ ][ ] other notable uses[edit] during the block of wikipedia in turkey, ipfs was used to create a mirror of wikipedia, which allows access to the content of wikipedia despite the ban.[ ] that archived version of wikipedia is a limited immutable copy that cannot be updated. filecoin, also inter-related to ipfs and developed by juan benet and protocol labs, is an ipfs-based cooperative storage cloud.[ ] cloudflare runs a distributed web gateway to simplify, speed up, and secure access to ipfs without needing a local node.[ ] microsoft's self-sovereign identity system, microsoft ion, builds on the bitcoin blockchain and ipfs through a sidetree-based did network.[ ] brave uses origin protocol and ipfs to host its decentralized merchandise store[ ] and in added support into their browser.[ ] opera for android has default support for ipfs, allowing mobile users to browse ipfs:// links to access data on the ipfs network.[ ] see also[edit] content addressable storage dat (software) distributed file system freenet gnunet zeronet references[edit] ^ a b c case, amber ( october ). "why the internet needs ipfs before it's too late". techcrunch. retrieved july . ^ https://github.com/ipfs/go-ipfs/releases ^ agorise ( october ). "c-ipfs: ipfs implementation in c. why c? think bitshares' stealth backups, openwrt routers (decentralize the internet/meshnet!), android tv, decentralized media, decentralized websites, decent." github.com. retrieved october . ^ finley, klint ( june ). "the inventors of the internet are trying to build a truly permanent web". wired. ^ krishnan, armin ( ). "blockchain empowers social resistance and terrorism through decentralized autonomous organizations". journal of strategic security. ( ): – . doi: . / - . . . . issn  - . jstor  . ^ "content addressing". docs.ipfs.io. retrieved august . ^ "ipfs gateway". docs.ipfs.io. retrieved august . ^ "public gateway checker | ipfs". ipfs.github.io. retrieved august . ^ balcell, marta poblet ( october ). "inside catalonia's cypherpunk referendum". eureka street. ^ hill, paul ( september ). "catalan referendum app removed from google play store". neowin. retrieved october . ^ abrams, lawrence ( october ). "phishing attacks distributed through cloudflare's ipfs gateway". bleeping computer. retrieved august . ^ palmer, danny ( june ). "this unusual windows malware is controlled via a p p network". zdnet. retrieved august . ^ patsakis, constantinos; casino, fran ( june ). "hydras and ipfs: a decentralised playground for malware". international journal of information security. ( ): – . arxiv: . . doi: . /s - - - . s cid  . ^ bruno macabeus; marcus vinicius; jo ̃ao paolo cavalcante; cidcley teixeira de souza ( may ). "protocolos ipfs e ipns como meio para o controle de botnet: prova de conceito" (pdf). wscdc - sbrc (in portuguese). retrieved april . ^ dale, brady ( may ). "turkey can't block this copy of wikipedia". observer media. archived from the original on october . retrieved december . ^ johnson, steven ( january ). "beyond the bitcoin bubble". the new york times. retrieved september . ^ orcutt, mike ( october ). "a big tech company is working to free the internet from big tech companies". mit technology review. retrieved april . ^ simons, alex ( may ). "toward scalable decentralized identifier systems". azure active directory identity blog. retrieved april . ^ "brave launches new swag store powered by origin". brave.com (press release). march . retrieved april . ^ porter, jon ( january ). "brave browser takes step toward enabling a decentralized web". the verge. retrieved january . ^ "opera introduces major updates to its blockchain-browser on android". opera blog (press release). march . retrieved april . external links[edit] official website v t e file systems comparison of file systems distributed unix filesystem disk adfs advfs amiga ffs amiga ofs apfs athfs bcachefs beegfs bfs be file system boot file system btrfs cvfs cxfs dfs efs encrypting file system extent file system episode ext ext ext ext cow ext ffs/ffs fat exfat files- fossil gpfs hammer hammer hfs hfs+ hpfs htfs jfs lfs mfs macintosh file system tivo media file system minix netware file system next nilfs nilfs nss ntfs onefs pfs qfs qnx fs refs reiserfs reiser reliance reliance nitro rfs sfs snfs soup (apple) tux ubifs ufs soft updates wapbl vxfs wafl xiafs xfs xsan zfs zfs optical disc hsf iso iso udf flash memory and ssd apfs fat exfat chfs tfat erofs ffs f fs hpfs jffs jffs jfs logfs nilfs nilfs nvfs yaffs ubifs distributed cxfs gfs google file system ocfs orangefs pvfs qfs xsan more... nas p afs (openafs) afp coda dfs google file system gpfs lustre ncp nfs pohmelfs hadoop smb (cifs) sshfs more... specialized aufs axfs boot file system cdfs compact disc file system cramfs davfs erofs ftpfs fuse lnfs ltfs nova mvfs squashfs umsdos overlayfs unionfs wbfs pseudo and virtual configfs devfs debugfs kernfs procfs specfs sysfs tmpfs winfs encrypted ecryptfs encfs efs rubberhose sshfs zfs types clustered global grid self-certifying flash journaling log-structured object record-oriented semantic steganographic synthetic versioning features case preservation copy-on-write data deduplication data scrubbing execute in place extent file attribute extended file attributes file change log fork links hard symbolic access control access-control list filesystem-level encryption permissions modes sticky bit interfaces file manager file system api installable file system virtual file system lists cryptographic default log-structured v t e peer-to-peer file sharing networks, protocols centralized direct connect opennap soribada soulseek decentralized ares bittorrent dat edonkey fasttrack freenet gnunet gnutella gnutella i p ipfs kad lbry openft perfect dark retroshare share tribler webtorrent winmx winny zeronet historic audiogalaxy cutemx entropy kazaa limewire morpheus overnet napster scour waste comparisons of clients advanced direct connect bittorrent direct connect edonkey gnutella gnutella webtorrent hyperlinks ed k magnet metalink uses backup broadcatching segmented file transfer disk sharing game & video sharing image sharing music sharing peercasting sharing software web hosting (freesite, ipfs, zeronet) legal aspects concepts privacy anonymous p p darknet darkweb friend-to-friend open music model private p p tor internal technologies dht merkle tree nat traversal pex protocol encryption sha- super-seeding tracker udp hole punching µtp v t e internet censorship circumvention technologies background internet censorship internet censorship in china national intranet censorship and blocking technologies ip address blocking dns cache poisoning wordfilter great firewall of china blocks on specific websites facebook twitter wikipedia principles with a proxy server p p web proxies ssh vpn pac without a proxy server https ipv transition mechanism hosts dnscrypt domain fronting refraction networking anti-censorship software free software lantern psiphon shadowsocks outline vpn goagent piratebox proprietary software freegate ultrasurf hotspot shield garden networks telex cgiproxy proxify browser extensions uproxy anonymity anonymous software tor jap (jondonym) flash proxy mixmaster anonymous p p network i p zeronet freenet stealthnet physical circumvention methods sneakernet usb dead drop relevant organizations greatfire freeweibo turkey blocks reference great cannon italics indicates that maintenance of the tool has been discontinued. category commons retrieved from "https://en.wikipedia.org/w/index.php?title=interplanetary_file_system&oldid= " categories: application layer protocols computer-related introductions in distributed data storage distributed file systems file transfer protocols free network-related software free software programmed in python internet privacy software internet protocols network protocols peer-to-peer computing world wide web hidden categories: cs portuguese-language sources (pt) articles with short description short description matches wikidata use dmy dates from january articles to be expanded from june all articles to be expanded articles using small message boxes navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages العربية català Čeština deutsch Ελληνικά español esperanto فارسی français italiano 日本語 polski português Русский Українська 吴语 中文 edit links this page was last edited on april , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement punchup | we create meaningful conversation with data + design + story. skip to content menu about project blog contact close about project blog contact get in touch hi@punchup.world data +design+ story we create meaningful conversation with data + design + story. through storytelling and visualization, we provide a service of consulting and create new ways of communication. what we do consulting when you’ve no idea how to tell your story, we help you design creative and insightful ways. หากคุณมีเรื่องหรือข้อมูลที่อยากเล่า เรายินดีช่วยออกแบบวิธีสื่อสาร ด้วยเทคนิคที่น่าสนใจ และเต็มไปด้วยความคิดสร้างสรรค์ production we provide a variety of innovative tools to tell your story way better : data visualization, interactive content, visual essays, etc. เรารับออกแบบและผลิตชิ้นงาน ด้วยเทคนิคและเครื่องมือต่างๆ ที่ช่วยทำให้ข้อมูลน่าสนใจและเข้าใจง่ายขึ้น workshop we’re happy to offer a fun and friendly session to make you learn how to tell story yourself. เรารับจัดเวิร์คชอปเพื่อแนะนำและให้คุณทดลองเรียนรู้ที่จะออกแบบการเล่าเรื่องด้วยตัวคุณเอง client project < > เปิดกระป๋อง แบรนด์ทูน่าไทย อุตสาหกรรมยักษ์ใหญ่ พร้อมความรับผิดชอบที่ใหญ่ยิ่ง ร่วมสำรวจปัญหาเบื้องหลังอุตสาหกรรมทูน่ากระป๋องไทย ผ่านข้อมูลผลกระทบด้านสิ่งแวดล้อม แรงงาน และความโปร่งใส ที่เปิดโอกาสให้ทุกคนมีส่วนร่วมแก้ไขปัญหา thailand is the world biggest exporter of canned tuna, although some controversies still occur around domestic canned tuna products. this storytelling clarifies major issues behind thai tuna industry. visit site more on client project studio project < > love chart quiz ในช่วงวันวาเลนไทน์ punch up อยากชวนคุณมาวิชวลไลซ์หัวใจด้วยควิซคิวท์ๆ เล่นชิวๆ แถมได้รู้จักชาร์ตหลายแบบ ความรักของคุณเป็นแบบไหน? เล่าผ่านชาร์ตอะไรดี? ลองเล่นได้ที่นี่ on valentine’s day, punch up would like to invite you to visualize your love with this simple quiz that can interpret your relationship in different charts. what is your love like? let’s play! visit site more on studio project blog
    best of digital news design งานที่เราว่า ว้าว! เลยอยากแบ่งกันดู thanisara ruangdej (gg) recap – open data for democracy เปิดข้อมูลรัฐสู่สาธารณะ  เพื่อประชาธิปไตย punch up team แสนล้าน กู้มาแล้วไปไหน? ชวนดูเครื่องมือติดตามและตรวจสอบเงินกู้โควิด- punch up team
    นี่ว่าดี! งาน visual & data-driven stories จาก the pudding cup punch up team see all blog event recap – open data for democracy เปิดข้อมูลรัฐสู่สาธารณะ  เพื่อประชาธิปไตย mar more info punch up x skooldio เวิร์คชอปออนไลน์ที่นำบรรยากาศห้องเรียนมาอยู่บนหน้าจอที่บ้าน jun more info พลิกโฉมสื่อไทยด้วยข้อมูลใน data journalism workshop jun more info punch up x wisesight : workshop แปลงโฉม data report ให้ย่อยง่าย น่าดู อ่านสนุก ตอบโจทย์ผู้อ่าน dec more info
    no. building, th floor, soi patpong, surawong rd, bang rak, bangkok copyright , punch up say hi! hi@punchup.world or leave us a message notice: javascript is required for this content. principal - labiks ir para o conteúdo linkedininstagramtwitteryoutubefacebooke-mail buscar resultados para: quem somos biblioteca projetos relatório anual mapa painel de dados blog contato buscar resultados para: loading... sistema de bicicletas compartilhadas na amÉrica latina relatÓrio painel de dados os sistemaslatino-americanos navegue mapa latino-americano de sistemas de bicicletas compartilhadas visite principaladmin - - t : : + : latin american bike knowledge sharing a labiks nasce com a missão de reunir, compartilhar e potencializar conhecimento sobre os sistemas de bicicletas públicas da américa latina. nós realmente acreditamos no valor e contribuição das pesquisas para alcançarmos cidades e comunidades mais sustentáveis. sendo assim, nós trabalhamos por mais transparência e responsabilidade governamental na américa latina. conheÇa a labiks latin american bike knowledge sharing a labiks nasce com a missão de reunir, compartilhar e potencializar conhecimento sobre os sistemas de bicicletas públicas da américa latina. nós realmente acreditamos no valor e contribuição das pesquisas para alcançarmos cidades e comunidades mais sustentáveis. sendo assim, nós trabalhamos por mais transparência e responsabilidade governamental na américa latina. conheÇa a labiks nossos desafios transformar conhecimento em ação junte-se a labiks! para que mais cidades possam usufruir de sistemas de bicicletas compartilhadas de qualidade é importante estimular a capacitação de todos os atores sobre tendências e boas práticas aplicadas ao planejamento, financiamento, gestão e monitoramento destes sistemas. assim, a labiks convida pesquisadores, governos, indústria, financiadores e todos os interessados a serem parceiros desta iniciativa. junte-se a nós! latin american bike knowledge sharing site feito pela liquefeito ir ao topo managing remote conference presenters with zoom | disruptive library technology jester skip links skip to primary navigation skip to content skip to footer disruptive library technology jester about resume toggle search toggle menu peter murray library technologist, open source advocate, striving to think globally while acting locally follow columbus, ohio email twitter keybase github linkedin stackoverflow orcid email managing remote conference presenters with zoom posted on march , and updated on april ,     minute read bringing remote presenters into a face-to-face conference is challenging and fraught with peril. in this post, i describe a scheme using zoom that had in-person attendees forgetting that the presenter was remote! the code lib conference was this week, and with the covid- pandemic breaking through many individuals and institutions made decisions to not travel to pittsburgh for the meeting. we had an unprecedented nine presentations that were brought into the conference via zoom. i was chairing the livestream committee for the conference (as i have done for several years—skipping last year), so it made the most sense for me to arrange a scheme for remote presenters. with the help of the on-site a/v contractor, we were able to pull this off with minimal requirements for the remote presenter. list of requirements zoom pro accounts pc/mac with video output, as if you were connecting an external monitor (the “receiving zoom” computer) pc/mac (the “coordinator zoom” computer) usb audio interface hardwired network connection for the receiving zoom computer (recommended) the pro-level zoom accounts were required because we needed to run a group call for longer than minutes (to include setup time). and two were needed: one for the coordinator zoom machine and one for the dedicated receiving zoom machine. it would have been possible to consolidate the two zoom pro accounts and the two pc/mac machines into one, but we had back-to-back presenters at code lib, and i wanted to be able to help one remote presenter get ready while another was presenting. in addition to this equipment, the a/v contractor was indispensable in making the connection work. we fed the remote presenter’s video and audio from the receiving zoom computer to the contractor’s a/v switch through hdmi, and the contractor put the video on the ballroom projectors and audio through the ballroom speakers. the contractor gave us a selective audio feed of the program audio minus the remote presenter’s audio (so they wouldn’t hear themselves come back through the zoom meeting). this becomes a little clearer in the diagram below. physical connections and setup this diagram shows the physical connections between machines. the audio mixer and video switch were provided and run by the a/v contractor. the receiving zoom machine was the one that is connected to the a/v contractor’s video switch via an hdmi cable coming off the computer’s external monitor connection. in the receiving zoom computer’s control panel, we set the external monitor to mirror what was on the main monitor. the audio and video from the computer (i.e., the zoom call) went out the hdmi cable to the a/v contractor’s video switch. the a/v contractor took the audio from the receiving zoom computer through the video switch and added it to the audio mixer as an input channel. from there, the audio was sent out to the ballroom speakers the same way audio from the podium microphone was amplified to the audience. we asked the a/v contractor to create an audio mix that includes all of the audio sources except the receiving zoom computer (e.g., in-room microphones) and plugged that into the usb audio interface. that way, the remote presenter could hear the sounds from the ballroom—ambient laughter, questions from the audience, etc.—in their zoom call. (note that it was important to remove the remote presenter’s own speaking voice from this audio mix; there was a significant, distracting delay between the time the presenter spoke and the audio was returned to them through the zoom call.) we used a hardwired network connection to the internet, and i would recommend that—particularly with tech-heavy conferences that might overflow the venue wi-fi. (you don’t want your remote presenter’s zoom to have to compete with what attendees are doing.) be aware that the hardwired network connection will cost more from the venue, and may take some time to get functioning since this doesn’t seem to be something that hotels often do. in the zoom meeting, we unmuted the microphone and selected the usb audio interface as the microphone input. as the zoom meeting was connected, we made the meeting window full-screen so the remote presenter’s face and/or presentation were at the maximum size on the ballroom projectors. setting up the zoom meetings the two zoom accounts came from the open library foundation. (thank you!) as mentioned in the requirements section above, these were pro-level accounts. the two accounts were olf_host @openlibraryfoundation.org and olf_host @openlibraryfoundation.org. the olf_host account was used for the receiving zoom computer, and the olf_host account was used for the coordinator zoom computer. the zoom meeting edit page looked like this: this is for the “code lib remote presenter a” meeting with the primary host as olf_host @openlibraryfoundation.org. note these settings: a recurring meeting that ran from : am to : pm each day of the conference. enable join before host is checked in case the remote presenter got on the meeting before i did. record the meeting automatically in the cloud to use as a backup in case something goes wrong. alternative hosts is olf_host @openlibraryfoundation.org the “code lib remote presenter b” meeting was exactly the same except the primary host was olf_host , and olf_host was added as an alternative host. the meetings were set up with each other as the alternative host so that the coordinator zoom computer could start the meeting, seamlessly hand it off to the receiving zoom computer, then disconnect. preparing the remote presenter remote presenters were given this information: code lib will be using zoom for remote presenters. in addition to the software, having the proper audio setup is vital for a successful presentation. microphone: the best option is a headset or earbuds so a microphone is close to your mouth. built-in laptop microphones are okay, but using them will make it harder for the audience to hear you. speaker: a headset or earbuds are required. do not use your computer’s built-in speakers. the echo cancellation software is designed for small rooms and cannot handle the delay caused by large ballrooms. you can test your setup with a test zoom call. be sure your microphone and speakers are set correctly in zoom. also, try sharing your screen on the test call so you understand how to start and stop screen sharing. the audience will see everything on your screen, so quit/disable/turn-off notifications that come from chat programs, email clients, and similar tools. plan to connect to the zoom meeting minutes before your talk to work out any connection or setup issues. at the -minute mark before the remote presentation, i went to the ballroom lobby and connected to the designated zoom meeting for the remote presenter using the coordinator zoom computer. i used this checklist with each presenter: check presenter’s microphone level and sound quality (make sure headset/earbud microphone is being used!) check presenter’s speakers and ensure there is no echo test screen-sharing (start and stop) with presenter remind presenter to turn off notifications from chat programs, email clients, etc. remind the presenter that they need to keep track of their own time; there is no way for us to give them cues about timing other than interrupting them when their time is up the critical item was making sure the audio worked (that their computer was set to use the headset/earbud microphone and audio output). the result was excellent sound quality for the audience. when the remote presenter was set on the zoom meeting, i returned to the a/v table and asked a livestream helper to connect the receiving zoom to the remote presenter’s zoom meeting. at this point, the remote presenter can hear the audio in the ballroom of the speaker before them coming through the receiving zoom computer. now i would lock the zoom meeting to prevent others from joining and interrupting the presenter (from the zoom participants panel, select more then lock meeting). i hung out on the remote presenter’s meeting on the coordinator zoom computer in case they had any last-minute questions. as the speaker in the ballroom was finishing up, i wished the remote presenter well and disconnected the coordinator zoom computer from the meeting. (i always selected leave meeting rather than end meeting for all so that the zoom meeting continued with the remote presenter and the receiving zoom computer.) as the remote presenter was being introduced—and the speaker would know because they could hear it in their zoom meeting—the a/v contractor switched the video source for the ballroom projectors to the receiving zoom computer and unmuted the receiving zoom computer’s channel on the audio mixer. at this point, the remote speaker is off-and-running! last thoughts this worked really well. surprisingly well. so well that i had a few people comment that they were taken aback when they realized that there was no one standing at the podium during the presentation. i’m glad i had set up the two zoom meetings. we had two cases where remote presenters were back-to-back. i was able to get the first remote presenter set up and ready on one zoom meeting while preparing the second remote presenter on the other zoom meeting. the most stressful part was at the point when we disconnected the first presenter’s zoom meeting and quickly connected to the second presenter’s zoom meeting. this was slightly awkward for the second remote presenter because they didn’t hear their full introduction as it happened and had to jump right into their presentation. this could be solved by setting up a second receiving zoom computer, but this added complexity seemed to be too much for the benefit gained. i would definitely recommend making this setup a part of the typical a/v preparations for future code lib conferences. we don’t know when an individual’s circumstances (much less a worldwide pandemic) might cause a last-minute request for a remote presentation capability, and the overhead of the setup is pretty minimal. tags: code lib, howto, zoom categories: raw technology twitter facebook linkedin previous next you may also enjoy more thoughts on pre-recording conference talks minute read over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion abo... should all conference talks be pre-recorded? minute read the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and con... user behavior access controls at a library proxy server are okay minute read earlier this month, my twitter timeline lit up with mentions of a half-day webinar called cybersecurity landscape - protecting the scholarly infrastructure. ... as a cog in the election system: reflections on my role as a precinct election official minute read i may nod off several times in composing this post the day after election day. hopefully, in reading it, you won’t. it is a story about one corner of democ... enter your search term... twitter github feed © peter murray. powered by jekyll & minimal mistakes. half-life - wikipedia half-life from wikipedia, the free encyclopedia jump to navigation jump to search scientific and mathematical term this article is about the scientific and mathematical concept. for the video game, see half-life (video game). for other uses, see half-life (disambiguation). this article is missing information about the history of the term half-life. please expand the article to include this information. further details may exist on the talk page. (july ) number of half-lives elapsed fraction remaining percentage remaining ⁄ ⁄ ⁄ ⁄ . ⁄ . ⁄ . ⁄ . ⁄ . ... ... ... n / n / n half-life (symbol t ⁄ ) is the time required for a quantity to reduce to half of its initial value. the term is commonly used in nuclear physics to describe how quickly unstable atoms undergo radioactive decay or how long stable atoms survive. the term is also used more generally to characterize any type of exponential or non-exponential decay. for example, the medical sciences refer to the biological half-life of drugs and other chemicals in the human body. the converse of half-life is doubling time. the original term, half-life period, dating to ernest rutherford's discovery of the principle in , was shortened to half-life in the early s.[ ] rutherford applied the principle of a radioactive element's half-life to studies of age determination of rocks by measuring the decay period of radium to lead- . half-life is constant over the lifetime of an exponentially decaying quantity, and it is a characteristic unit for the exponential decay equation. the accompanying table shows the reduction of a quantity as a function of the number of half-lives elapsed. contents probabilistic nature formulas for half-life in exponential decay . half-life and reaction orders . decay by two or more processes . examples in non-exponential decay in biology and pharmacology see also references external links probabilistic nature[edit] simulation of many identical atoms undergoing radioactive decay, starting with either atoms per box (left) or (right). the number at the top is how many half-lives have elapsed. note the consequence of the law of large numbers: with more atoms, the overall decay is more regular and more predictable. a half-life usually describes the decay of discrete entities, such as radioactive atoms. in that case, it does not work to use the definition that states "half-life is the time required for exactly half of the entities to decay". for example, if there is just one radioactive atom, and its half-life is one second, there will not be "half of an atom" left after one second. instead, the half-life is defined in terms of probability: "half-life is the time required for exactly half of the entities to decay on average". in other words, the probability of a radioactive atom decaying within its half-life is %.[ ] for example, the image on the right is a simulation of many identical atoms undergoing radioactive decay. note that after one half-life there are not exactly one-half of the atoms remaining, only approximately, because of the random variation in the process. nevertheless, when there are many identical atoms decaying (right boxes), the law of large numbers suggests that it is a very good approximation to say that half of the atoms remain after one half-life. various simple exercises can demonstrate probabilistic decay, for example involving flipping coins or running a statistical computer program.[ ][ ][ ] formulas for half-life in exponential decay[edit] main article: exponential decay an exponential decay can be described by any of the following three equivalent formulas:[ ]: – n ( t ) = n ( ) t t / n ( t ) = n e − t τ n ( t ) = n e − λ t {\displaystyle {\begin{aligned}n(t)&=n_{ }\left({\frac { }{ }}\right)^{\frac {t}{t_{ / }}}\\n(t)&=n_{ }e^{-{\frac {t}{\tau }}}\\n(t)&=n_{ }e^{-\lambda t}\end{aligned}}} where n is the initial quantity of the substance that will decay (this quantity may be measured in grams, moles, number of atoms, etc.), n(t) is the quantity that still remains and has not yet decayed after a time t, t ⁄ is the half-life of the decaying quantity, τ is a positive number called the mean lifetime of the decaying quantity, λ is a positive number called the decay constant of the decaying quantity. the three parameters t ⁄ , τ, and λ are all directly related in the following way: t / = ln ⁡ ( ) λ = τ ln ⁡ ( ) {\displaystyle t_{ / }={\frac {\ln( )}{\lambda }}=\tau \ln( )} where ln( ) is the natural logarithm of (approximately . ).[ ]: half-life and reaction orders[edit] the value of the half-life depends on the reaction order: zero order kinetics: the rate of this kind of reaction does not depend on the substrate concentration. the rate law of zero order kinetics is as follows: [ a ] = [ a ] − k t {\displaystyle [a]=[a]_{ }-kt} in order to find the half life we have to replace the concentration value for the initial concentration divided by and isolate the time. if we do it, we find the equation of the half life of the zero order reaction: t / = [ a ] k {\displaystyle t_{ / }={\frac {[a]_{ }}{k }}} the t / formula for a zero order reaction suggests the half-life depends on the amount of initial concentration and rate constant. first order kinetics: in first order reactions, the concentration of the reaction will continue to decrease as time progresses until it reaches zero, and the length of half-life will be constant, independent of concentration. the time for [a] to decrease from [a] to ½ [a] in a first-order reaction is given by the following equation: k t / = − ln ⁡ ( / [ a ] [ a ] ) = − ln ⁡ = ln ⁡ {\displaystyle kt_{ / }=-\ln {\biggl (}{\frac { / [a]_{ }}{[a]_{ }}}{\biggr )}=-\ln {\frac { }{ }}=\ln } for a first-order reaction, the half-life of a reactant is independent of its initial concentration. therefore, if the concentration of a at some arbitrary stage of the reaction is [a], then it will have fallen to ½ [a] after a further interval of (\ln )/k. hence, the half-life of a first order reaction is given as the following: t / = ln ⁡ k {\displaystyle t_{ / }={\frac {\ln }{k}}} the half-life of a first order reaction is independent of its initial concentration and depends solely on the reaction rate constant, k. second order kinetics: in the second order reactions, the concentration of the reactant decrease following this formula: [ a ] = k t + [ a ] {\displaystyle {\frac { }{[a]}}=kt+{\frac { }{[a]_{ }}}} then, we replace [a] for [a] divided by in order to calculate the half-life of the reactant a and isolate the time of the half-life (t / ): t / = [ a ] k {\displaystyle t_{ / }={\frac { }{[a]_{ }k}}} as you can see, the half-life of the second order reactions depends on the initial concentration and rate constant. decay by two or more processes[edit] some quantities decay by two exponential-decay processes simultaneously. in this case, the actual half-life t ⁄ can be related to the half-lives t and t that the quantity would have if each of the decay processes acted in isolation: t / = t + t {\displaystyle {\frac { }{t_{ / }}}={\frac { }{t_{ }}}+{\frac { }{t_{ }}}} for three or more processes, the analogous formula is: t / = t + t + t + ⋯ {\displaystyle {\frac { }{t_{ / }}}={\frac { }{t_{ }}}+{\frac { }{t_{ }}}+{\frac { }{t_{ }}}+\cdots } for a proof of these formulas, see exponential decay § decay by two or more processes. examples[edit] half-life demonstrated using dice in a classroom experiment further information: exponential decay § applications and examples there is a half-life describing any exponential-decay process. for example: as noted above, in radioactive decay the half-life is the length of time after which there is a % chance that an atom will have undergone nuclear decay. it varies depending on the atom type and isotope, and is usually determined experimentally. see list of nuclides. the current flowing through an rc circuit or rl circuit decays with a half-life of ln( )rc or ln( )l/r, respectively. for this example the term half time tends to be used, rather than "half-life", but they mean the same thing. in a chemical reaction, the half-life of a species is the time it takes for the concentration of that substance to fall to half of its initial value. in a first-order reaction the half-life of the reactant is ln( )/λ, where λ is the reaction rate constant. in non-exponential decay[edit] the term "half-life" is almost exclusively used for decay processes that are exponential (such as radioactive decay or the other examples above), or approximately exponential (such as biological half-life discussed below). in a decay process that is not even close to exponential, the half-life will change dramatically while the decay is happening. in this situation it is generally uncommon to talk about half-life in the first place, but sometimes people will describe the decay in terms of its "first half-life", "second half-life", etc., where the first half-life is defined as the time required for decay from the initial value to %, the second half-life is from % to %, and so on.[ ] in biology and pharmacology[edit] see also: biological half-life a biological half-life or elimination half-life is the time it takes for a substance (drug, radioactive nuclide, or other) to lose one-half of its pharmacologic, physiologic, or radiological activity. in a medical context, the half-life may also describe the time that it takes for the concentration of a substance in blood plasma to reach one-half of its steady-state value (the "plasma half-life"). the relationship between the biological and plasma half-lives of a substance can be complex, due to factors including accumulation in tissues, active metabolites, and receptor interactions.[ ] while a radioactive isotope decays almost perfectly according to so-called "first order kinetics" where the rate constant is a fixed number, the elimination of a substance from a living organism usually follows more complex chemical kinetics. for example, the biological half-life of water in a human being is about to days,[ ] though this can be altered by behavior and other conditions. the biological half-life of caesium in human beings is between one and four months. the concept of a half-life has also been utilized for pesticides in plants,[ ] and certain authors maintain that pesticide risk and impact assessment models rely on and are sensitive to information describing dissipation from plants.[ ] in epidemiology, the concept of half-life can refer to the length of time for the number of incident cases in a disease outbreak to drop by half, particularly if the dynamics of the outbreak can be modeled exponentially.[ ][ ] see also[edit] half time (physics) list of radioactive nuclides by half-life mean lifetime median lethal dose references[edit] ^ john ayto, th century words ( ), cambridge university press. ^ muller, richard a. (april , ). physics and technology for future presidents. princeton university press. pp.  – . isbn  . ^ chivers, sidney (march , ). "re: what happens during half-lifes [sic] when there is only one atom left?". madsci.org. ^ "radioactive-decay model". exploratorium.edu. retrieved - - . ^ wallin, john (september ). "assignment # : data, simulations, and analytic science in decay". astro.glu.edu. archived from the original on - - .cs maint: unfit url (link) ^ a b rösch, frank (september , ). nuclear- and radiochemistry: introduction. . walter de gruyter. isbn  - - - - . ^ jonathan crowe; tony bradshaw ( ). chemistry for the biosciences: the essential concepts. p.  . isbn  . ^ lin vw; cardenas dd ( ). spinal cord medicine. demos medical publishing, llc. p.  . isbn  - - - - . ^ pang, xiao-feng ( ). water: molecular structure and properties. new jersey: world scientific. p.  . isbn  . ^ australian pesticides and veterinary medicines authority ( march ). "tebufenozide in the product mimic wp insecticide, mimic sc insecticide". australian government. retrieved april . ^ fantke, peter; gillespie, brenda w.; juraske, ronnie; jolliet, olivier ( july ). "estimating half-lives for pesticide dissipation from plants". environmental science & technology. ( ): – . bibcode: enst... . f. doi: . /es p. pmid  . ^ balkew, teshome mogessie (december ). the sir model when s(t) is a multi-exponential function (thesis). east tennessee state university. ^ ireland, mw, ed. ( ). the medical department of the united states army in the world war, vol. ix: communicable and other diseases. washington: u.s.: u.s. government printing office. pp.  – . external links[edit] look up half-life in wiktionary, the free dictionary. wikimedia commons has media related to half times. welcome to nucleonica, nucleonica.net (archived ) wiki: decay engine, nucleonica.net (archived ) system dynamics – time constants, bucknell.edu researchers nikhef and uva measure slowest radioactive decay ever: xe- with billion trillion years v t e radiation (physics and health) main articles non-ionizing radiation acoustic radiation force infrared light starlight sunlight microwave radio waves ultraviolet ionizing radiation radioactive decay cluster decay background radiation alpha particle beta particle gamma ray cosmic ray neutron radiation nuclear fission nuclear fusion nuclear reactors nuclear weapons particle accelerators radioactive materials x-ray earth's energy budget electromagnetic radiation synchrotron radiation thermal radiation black-body radiation particle radiation gravitational radiation cosmic background radiation cherenkov radiation askaryan radiation bremsstrahlung unruh radiation dark radiation radiation and health radiation syndrome acute chronic health physics dosimetry electromagnetic radiation and health laser safety lasers and aviation safety medical radiography mobile phone radiation and health radiation protection radiation therapy radioactivity in the life sciences radioactive contamination radiobiology biological dose units and quantities wireless electronic devices and health radiation heat-transfer related articles half-life nuclear physics radioactive source radiation hardening list of civilian radiation accidents costa rica accident goiânia accident moroccan accident zaragoza accident see also: the categories radiation effects, radioactivity, radiobiology, and radiation protection authority control gnd: - ma: , retrieved from "https://en.wikipedia.org/w/index.php?title=half-life&oldid= " categories: chemical kinetics exponentials radioactivity hidden categories: cs maint: unfit url articles with short description short description is different from wikidata articles to be expanded from july commons category link is on wikidata wikipedia articles with gnd identifiers wikipedia articles with ma identifiers wikipedia articles with multiple identifiers navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version in other projects wikimedia commons languages afrikaans العربية aragonés asturianu বাংলা bân-lâm-gú Беларуская भोजपुरी Български bosanski català Чӑвашла Čeština cymraeg dansk الدارجة deutsch eesti Ελληνικά español esperanto euskara فارسی français gaeilge galego 贛語 한국어 हिन्दी hrvatski bahasa indonesia Íslenska italiano עברית ಕನ್ನಡ ქართული Қазақша kiswahili kreyòl ayisyen latviešu lietuvių limburgs magyar Македонски മലയാളം bahasa melayu nederlands 日本語 nordfriisk norsk bokmål norsk nynorsk occitan oʻzbekcha/ўзбекча پنجابی plattdüütsch polski português română runa simi Русский simple english slovenčina slovenščina کوردی Српски / srpski srpskohrvatski / српскохрватски suomi svenska தமிழ் Татарча/tatarça తెలుగు ไทย türkçe Українська اردو tiếng việt 吴语 粵語 中文 edit links this page was last edited on march , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement the age of surveillance capitalism - wikipedia the age of surveillance capitalism from wikipedia, the free encyclopedia jump to navigation jump to search book published in the age of surveillance capitalism front cover author shoshana zuboff subject politics, cybersecurity publisher profile books publication date january , isbn the age of surveillance capitalism is a non-fiction book by professor shoshana zuboff which looks at the development of digital companies like google and amazon, and suggests that their business models represent a new form of capitalist accumulation that she calls "surveillance capitalism".[ ][ ] while industrial capitalism exploited and controlled nature with devastating consequences, surveillance capitalism exploits and controls human nature with a totalitarian order as the endpoint of the development.[ ] premise[edit] zuboff states that surveillance capitalism "unilaterally claims human experience as free raw material for translation into behavioural data [which] are declared as a proprietary behavioural surplus, fed into advanced manufacturing processes known as ‘machine intelligence’, and fabricated into prediction products that anticipate what you will do now, soon, and later." she states that these new capitalist products "are traded in a new kind of marketplace that i call behavioural futures markets."[ ] in a capitalist society, information, such as a users likes and dislikes, observed from accessing a platform like facebook is information that can be freely used by that platform to better the experience of a user by feeding them information that data obtained from their previous activity would have shown them to be interested in. this in many ways can be done through the use of an algorithm that automatically filters out information. the danger of surveillance capitalism is that platforms and tech companies are entitled to this information because it is free for them to access. there is very little supervision by governments and users themselves. because of this, there has been backlash on how these companies have used the information gathered. for example, google, which is said to be “the pioneer of surveillance capitalism”, zuboff ( )[ ] introduced a feature that used “commercial models…discovered by people in a time and place”, zuboff ( ).[ ] this means that not only are commercials being specifically targeted to you through your phone, but now work hand in hand with your environment and habits such as being shown an advertisement of a local bar when walking around downtown in the evening. advertising attempts this technical and specific can easily have an impact on the one's decision-making process in the activities they choose and in political decisions. thus the idea that these companies seemingly go unchecked whilst having the power to observe and control thinking is one of the many reasons tech companies such as google themselves are under so much scrutiny. furthermore, the freedom allotted to tech companies comes from the idea that “surveillance capitalism does not abandon established capitalist ‘laws’ such as competitive production, profit maximization, productivity and growth”, zuboff ( ),[ ] as they are principles any business in a capitalistic society should aim to excel in, in order to be competitive. zuboff ( )[ ] claims in an article that “new logic accumulation…introduces its own laws of motion”. in other words, this is a new phenomenon in capitalistic operations that should be treated as such and be instilled with its own specific restrictions and limitations. lastly, as invasive as platforms have been in terms of accumulating information, they have also led to what is now called a “sharing economy”, van dijck ( )[ ] in which digital information can be obtained by individuals carrying out their own surveillance capitalism through the aid of platforms themselves. thus “individuals can greatly benefit from this transformation because it empowers them to set up business”, van dijck ( ).[ ] small businesses will also benefit in potentially growing faster than they would have without knowing consumer demands and wants. this leaves surveillance capitalism as an exceptionally useful tool for businesses, but also an invasion of privacy to users. reception[edit] the new yorker listed the age of surveillance capitalism as one of its top non-fiction books of .[ ] former president of the united states barack obama also listed it as one of his favourite books of , which journalism researcher avi asher-schapiro noted as an interesting choice, given that the book heavily criticises the "revolving door of personnel who migrated between google & the obama admin”.[ ] sam dibella, writing for the lse blog, criticised the book's approach which could "inspire paralysis rather than praxis when it comes to forging collective action to counter systematic corporate surveillance."[ ] the financial times called the book a "masterwork of original thinking and research".[ ] references[edit] ^ bridle, james ( february ). "the age of surveillance capitalism by shoshana zuboff review – we are the pawns". the guardian. issn  - . retrieved - - – via www.theguardian.com. cs maint: discouraged parameter (link) ^ naughton, john ( january ). "'the goal is to automate us': welcome to the age of surveillance capitalism". the observer. issn  - . retrieved - - – via www.theguardian.com. cs maint: discouraged parameter (link) ^ "the new tech totalitarianism". www.newstatesman.com. retrieved - - . ^ naughton, john ( - - ). "'the goal is to automate us': welcome to the age of surveillance capitalism". the observer. issn  - . retrieved - - . ^ a b c d zuboff, shoshana; möllers, norma; murakami wood, david; lyon, david ( - - ). "surveillance capitalism: an interview with shoshana zuboff". surveillance & society. ( / ): – . doi: . /ss.v i / . . issn  - . ^ a b van dijck, josé; poell, thomas; de waal, martijn ( - - ). "the platform society". oxford scholarship online. doi: . /oso/ . . . isbn  . ^ yorker, the new ( - - ). "our favorite nonfiction books of ". the new yorker (serial). issn  - x. retrieved - - . ^ binder, matt. "obama praises book that slams his white house for its google relationship". mashable. retrieved - - . ^ november th; reviews, |book; democracy; comments, culture| ( - - ). "book review: the age of surveillance capitalism: the fight for a human future at the new frontier of power by shoshana zuboff". usapp. retrieved - - . ^ graphics, ft interactive. "the age of surveillance capitalism by shoshana zuboff". ft business book of the year award. retrieved - - . retrieved from "https://en.wikipedia.org/w/index.php?title=the_age_of_surveillance_capitalism&oldid= " categories: american non-fiction books non-fiction books books critical of capitalism hidden categories: cs maint: discouraged parameter articles with short description short description matches wikidata navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages italiano edit links this page was last edited on april , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement unix philosophy - wikipedia unix philosophy from wikipedia, the free encyclopedia jump to navigation jump to search philosophy on developing software ken thompson and dennis ritchie, key proponents of the unix philosophy the unix philosophy, originated by ken thompson, is a set of cultural norms and philosophical approaches to minimalist, modular software development. it is based on the experience of leading developers of the unix operating system. early unix developers were important in bringing the concepts of modularity and reusability into software engineering practice, spawning a "software tools" movement. over time, the leading developers of unix (and programs that ran on it) established a set of cultural norms for developing software; these norms became as important and influential as the technology of unix itself; this has been termed the "unix philosophy." the unix philosophy emphasizes building simple, short, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators. the unix philosophy favors composability as opposed to monolithic design. contents origin the unix programming environment program design in the unix environment doug mcilroy on unix programming do one thing and do it well eric raymond's unix rules mike gancarz: the unix philosophy "worse is better" criticism see also notes references external links origin[edit] the unix philosophy is documented by doug mcilroy[ ] in the bell system technical journal from :[ ] make each program do one thing well. to do a new job, build afresh rather than complicate old programs by adding new "features". expect the output of every program to become the input to another, as yet unknown, program. don't clutter output with extraneous information. avoid stringently columnar or binary input formats. don't insist on interactive input. design and build software, even operating systems, to be tried early, ideally within weeks. don't hesitate to throw away the clumsy parts and rebuild them. use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them. it was later summarized by peter h. salus in a quarter-century of unix ( ):[ ] write programs that do one thing and do it well. write programs to work together. write programs to handle text streams, because that is a universal interface. in their award-winning unix paper of [citation needed], ritchie and thompson quote the following design considerations:[ ] make it easy to write, test, and run programs. interactive use instead of batch processing. economy and elegance of design due to size constraints ("salvation through suffering"). self-supporting system: all unix software is maintained under unix. the whole philosophy of unix seems to stay out of assembler. — michael sean mahoney[ ] the unix programming environment[edit] in their preface to the book, the unix programming environment, brian kernighan and rob pike, both from bell labs, give a brief description of the unix design and the unix philosophy:[ ] rob pike, co-author of the unix programming environment even though the unix system introduces a number of innovative programs and techniques, no single program or idea makes it work well. instead, what makes it effective is the approach to programming, a philosophy of using the computer. although that philosophy can't be written down in a single sentence, at its heart is the idea that the power of a system comes more from the relationships among programs than from the programs themselves. many unix programs do quite trivial things in isolation, but, combined with other programs, become general and useful tools. the authors further write that their goal for this book is "to communicate the unix programming philosophy."[ ] program design in the unix environment[edit] brian kernighan has written at length about the unix philosophy in october , brian kernighan and rob pike published a paper called program design in the unix environment. in this paper, they criticize the accretion of program options and features found in some newer unix systems such as . bsd and system v, and explain the unix philosophy of software tools, each performing one general function:[ ] much of the power of the unix operating system comes from a style of program design that makes programs easy to use and, more important, easy to combine with other programs. this style has been called the use of software tools, and depends more on how the programs fit into the programming environment and how they can be used with other programs than on how they are designed internally. [...] this style was based on the use of tools: using programs separately or in combination to get a job done, rather than doing it by hand, by monolithic self-sufficient subsystems, or by special-purpose, one-time programs. the authors contrast unix tools such as cat, with larger program suites used by other systems.[ ] the design of cat is typical of most unix programs: it implements one simple but general function that can be used in many different applications (including many not envisioned by the original author). other commands are used for other functions. for example, there are separate commands for file system tasks like renaming files, deleting them, or telling how big they are. other systems instead lump these into a single "file system" command with an internal structure and command language of its own. (the pip file copy program found on operating systems like cp/m or rsx- is an example.) that approach is not necessarily worse or better, but it is certainly against the unix philosophy. doug mcilroy on unix programming[edit] doug mcilroy (left) with dennis ritchie mcilroy, then head of the bell labs computing sciences research center, and inventor of the unix pipe,[ ] summarized the unix philosophy as follows:[ ] this is the unix philosophy: write programs that do one thing and do it well. write programs to work together. write programs to handle text streams, because that is a universal interface. beyond these statements, he has also emphasized simplicity and minimalism in unix programming:[ ] the notion of "intricate and beautiful complexities" is almost an oxymoron. unix programmers vie with each other for "simple and beautiful" honors — a point that's implicit in these rules, but is well worth making overt. conversely, mcilroy has criticized modern linux as having software bloat, remarking that, "adoring admirers have fed linux goodies to a disheartening state of obesity."[ ] he contrasts this with the earlier approach taken at bell labs when developing and revising research unix:[ ] everything was small... and my heart sinks for linux when i see the size of it. [...] the manual page, which really used to be a manual page, is now a small volume, with a thousand options... we used to sit around in the unix room saying, 'what can we throw out? why is there this option?' it's often because there is some deficiency in the basic design — you didn't really hit the right design point. instead of adding an option, think about what was forcing you to add that option. do one thing and do it well[edit] as stated by mcilroy, and generally accepted throughout the unix community, unix programs have always been expected to follow the concept of dotadiw, or "do one thing and do it well." there are limited sources for the acronym dotadiw on the internet, but it is discussed at length during the development and packaging of new operating systems, especially in the linux community. patrick volkerding, the project lead of slackware linux, invoked this design principle in a criticism of the systemd architecture, stating that, "attempting to control services, sockets, devices, mounts, etc., all within one daemon flies in the face of the unix concept of doing one thing and doing it well."[ ] eric raymond's unix rules[edit] in his book the art of unix programming that was first published in ,[ ] eric s. raymond, an american programmer and open source advocate, summarizes the unix philosophy as kiss principle of "keep it simple, stupid."[ ] he provides a series of design rules:[ ] build modular programs write readable programs use composition separate mechanisms from policy write simple programs write small programs write transparent programs write robust programs make data complicated when required, not the program build on potential users' expected knowledge avoid unnecessary output write programs which fail in a way that is easy to diagnose value developer time over machine time write abstract programs that generate code instead of writing code by hand prototype software before polishing it write flexible and open programs make the program and protocols extensible. mike gancarz: the unix philosophy[edit] in , mike gancarz (a member of the team that designed the x window system), drew on his own experience with unix, as well as discussions with fellow programmers and people in other fields who depended on unix, to produce the unix philosophy which sums it up in nine paramount precepts: small is beautiful. make each program do one thing well. build a prototype as soon as possible. choose portability over efficiency. store data in flat text files. use software leverage to your advantage. use shell scripts to increase leverage and portability. avoid captive user interfaces. make every program a filter. "worse is better"[edit] main article: worse is better richard p. gabriel suggests that a key advantage of unix was that it embodied a design philosophy he termed "worse is better", in which simplicity of both the interface and the implementation are more important than any other attributes of the system—including correctness, consistency, and completeness. gabriel argues that this design style has key evolutionary advantages, though he questions the quality of some results. for example, in the early days unix used a monolithic kernel (which means that user processes carried out kernel system calls all on the user stack). if a signal was delivered to a process while it was blocked on a long-term i/o in the kernel, then what should be done? should the signal be delayed, possibly for a long time (maybe indefinitely) while the i/o completed? the signal handler could not be executed when the process was in kernel mode, with sensitive kernel data on the stack. should the kernel back-out the system call, and store it, for replay and restart later, assuming that the signal handler completes successfully? in these cases ken thompson and dennis ritchie favored simplicity over perfection. the unix system would occasionally return early from a system call with an error stating that it had done nothing—the "interrupted system call", or an error number (eintr) in today's systems. of course the call had been aborted in order to call the signal handler. this could only happen for a handful of long-running system calls such as read(), write(), open(), and select(). on the plus side, this made the i/o system many times simpler to design and understand. the vast majority of user programs were never affected because they did not handle or experience signals other than sigint and would die right away if one was raised. for the few other programs—things like shells or text editors that respond to job control key presses—small wrappers could be added to system calls so as to retry the call right away if this eintr error was raised. thus, the problem was solved in a simple manner. criticism[edit] in a article entitled "the truth about unix: the user interface is horrid"[ ] published in datamation, don norman criticized the design philosophy of unix for its lack of concern for the user interface. writing from his background in cognitive science and from the perspective of the then-current philosophy of cognitive engineering,[ ] he focused on how end-users comprehend and form a personal cognitive model of systems—or, in the case of unix, fail to understand, with the result that disastrous mistakes (such as losing an hour's worth of work) are all too easy. see also[edit] cognitive engineering unix architecture minimalism (computing) software engineering kiss principle hacker ethic list of software development philosophies everything is a file worse is better notes[edit] ^ a b c d e raymond, eric s. ( ). "basics of the unix philosophy". the art of unix programming. addison-wesley professional (published - - ). isbn  - - - . retrieved - - . ^ doug mcilroy, e. n. pinson, b. a. tague ( july ). "unix time-sharing system: foreword". the bell system technical journal. bell laboratories: – .cs maint: multiple names: authors list (link) ^ dennis ritchie; ken thompson ( ), "the unix time-sharing system" (pdf), communications of the acm, ( ): – , doi: . / . , s cid  ^ a b "an oral history of unix". princeton university history of science. ^ a b kernighan, brian w. pike, rob. the unix programming environment. . viii ^ a b rob pike; brian w. kernighan (october ). "program design in the unix environment" (pdf). ^ dennis ritchie ( ), "the evolution of the unix time-sharing system" (pdf), at&t bell laboratories technical journal, ( ): – , doi: . /j. - . .tb .x ^ douglas mcilroy. "remarks for japan prize award ceremony for dennis ritchie, may , , murray hill, nj" (pdf). retrieved - - . ^ bill mcgonigle. "ancestry of linux — how the fun began ( )". retrieved - - . ^ "interview with patrick volkerding of slackware". linuxquestions.org. - - . retrieved - - . ^ raymond, eric ( - - ). the art of unix programming. addison-wesley. isbn  - - - . retrieved - - . ^ raymond, eric ( - - ). "the unix philosophy in one lesson". the art of unix programming. addison-wesley. isbn  - - - . retrieved - - . ^ norman, don ( ). "the truth about unix: the user interface is horrid" (pdf). datamation. ( ). references[edit] the unix programming environment by brian kernighan and rob pike, program design in the unix environment – the paper by pike and kernighan that preceded the book. notes on programming in c, rob pike, september , a quarter century of unix, peter h. salus, addison-wesley, may , ( isbn  - - - ) philosophy — from the art of unix programming, eric s. raymond, addison-wesley, september , ( isbn  - - - ) final report of the multics kernel design project by m. d. schroeder, d. d. clark, j. h. saltzer, and d. h. wells, . the unix philosophy, mike gancarz, isbn  - - - external links[edit] basics of the unix philosophy – by catb.org the unix philosophy: a brief introduction – by the linux information project (linfo) why the unix philosophy still matters retrieved from "https://en.wikipedia.org/w/index.php?title=unix_philosophy&oldid= " categories: software development philosophies unix hidden categories: cs maint: multiple names: authors list articles with short description short description matches wikidata all articles with unsourced statements articles with unsourced statements from march navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages العربية Čeština deutsch español فارسی français 한국어 italiano 日本語 norsk bokmål português Русский 中文 edit links this page was last edited on march , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement futurearch, or the future of archives... futurearch, or the future of archives... a place for thoughts on hybrid archives and manuscripts at the bodleian library. this blog is no longer being updated born digital: guidance for donors, dealers, and archival repositories digital preservation: what i wish i knew before i started transcribe at the archive atlas of digital damages dayofdigitalarchives sprucing up the tikafileidentifier spruce mashup: th- th april media recognition: dv part media recognition: dv part media recognition: dv part digital preservation: what i wish i knew before i started what is ‘the future of the past of the web’? day of digital archives, another source for old software comparing software tools mobile forensics preserving born-digital video - what are good practices? hidden pages media recognition - floppy disks part preserving digital sound and vision: a briefing th april sharp font writer files got any older? world backup day advisory board meeting, march randori - wikipedia randori from wikipedia, the free encyclopedia jump to navigation jump to search free-style practice in japanese martial arts this article needs additional citations for verification. please help improve this article by adding citations to reliable sources. unsourced material may be challenged and removed. find sources: "randori" – news · newspapers · books · scholar · jstor (december ) (learn how and when to remove this template message) randori japanese name kanji 乱取り hiragana らんどり transcriptions revised hepburn randori randori (乱取り) is a term used in japanese martial arts to describe free-style practice (sparring). the term denotes an exercise in 取り tori, applying technique to a random ( 乱 ran) succession of uke attacks. the actual connotation of randori depends on the martial art it is used in. in judo, jujutsu, and shodokan aikido, among others, it most often refers to one-on-one sparring where partners attempt to resist and counter each other's techniques. in other styles of aikido, in particular aikikai, it refers to a form of practice in which a designated aikidoka defends against multiple attackers in quick succession without knowing how they will attack or in what order. contents in japan in judo in tenshin aikido in kendo in karate in ninjutsu see also references external links in japan[edit] the term is used in aikido, judo, and brazilian jiu-jitsu dojos outside japan. in japan, this form of practice is called taninzu-gake (多人数掛け), which literally means multiple attackers. in judo[edit] the term was described by jigoro kano, the founder of judo, in a speech at the los angeles olympic games: "randori, meaning "free exercise", is practiced under conditions of actual contest. it includes throwing, choking, holding the opponent down, and bending or twisting of the arms. the two combatants may use whatever methods they like provided they do not hurt each other and obey the rules of judo concerning etiquette, which are essential to its proper working." [ ] there are types of randori.[ ] [ ] in tenshin aikido[edit] in steven seagal's tenshin aikido federation (affiliated with the aikikai), randori is different from that of aikikai, in that the attackers can do anything to the defender (e.g. punch, grab, kick, etc.), and the randori continues on the ground until a pin. in kendo[edit] in kendo, jigeiko means "friendly" free combat, as in competition, but without counting points. in karate[edit] although in karate the word kumite is usually reserved for sparring, some schools also employ the term randori with regard to "mock-combat" in which both karateka move with speed, parrying and attacking with all four limbs (including knees, elbows, etc.). in these schools, the distinction between randori and kumite is that in randori, the action is uninterrupted when a successful technique is applied. (also known as ju kumite or soft sparring.) in ninjutsu[edit] randori is also practiced in bujinkan ninjutsu and usually represented to the practitioner when he reaches the "shodan" level. in ninjutsu, randori puts the practitioner in a position where he is armed or unarmed and is attacked by multiple attackers. see also[edit] kata sparring randori-no-kata references[edit] ^ original text of this speech available at the judo information site at http://judoinfo.com/kano .htm ^ ohlenkamp, neil ( may ). black belt judo. new holland. isbn  – via google books. ^ tello, rodolfo ( august ). judo: seven steps to black belt (an introductory guide for beginners). amakella publishing. isbn  – via google books. external links[edit] judo information site youtube: randori in tenshin aikido v t e japanese martial arts lists list of japanese martial arts list of koryū schools of martial arts ko-budō battōjutsu bōjutsu hojōjutsu iaijutsu jōjutsu jujutsu jittejutsu kenjutsu kyūjutsu naginatajutsu ninjutsu shurikenjutsu sōjutsu gendai budō aikido daitō-ryū aiki-jūjutsu iaido judo karate kendo kyūdō nippon kempo shorinji kempo sumo terms aiki budō dōjō kuzushi maai mushin randori uchi-deshi zanshin japanese martial arts  • japan martial arts v t e martial arts list of styles history timeline hard and soft regional origin china europe india indonesia japan korea philippines unarmed techniques chokehold clinch footwork elbow strike headbutt hold kick knee strike joint lock punch sweep takedown throw weapons duel melee weapons knife fighting stick-fighting swordsmanship ranged weapons archery shooting training kata boxing gloves practice weapon punching bag pushing hands randori sparring grappling brazilian jiu-jitsu judo jujutsu sambo shuai jiao sumo wrestling striking bando boxing capoeira karate kickboxing lethwei muay thai pradal serey sanshou savate taekwondo vovinam internal aikido aikijutsu baguazhang tai chi xing yi quan full contact / combat sports professional boxing professional kickboxing knockdown karate mixed martial arts pankration submission wrestling vale tudo self-defense / combatives arnis bartitsu hapkido kajukenbo jieitaikakutōjutsu krav maga mcmap pencak silat systema wing chun legal aspects silat melayu eclectic / hybrids american kenpo chun kuk do jeet kune do shooto shorinji kempo unifight entertainment beat 'em up fighting game martial arts film (chanbara) professional wrestling stage combat wuxia portal outline retrieved from "https://en.wikipedia.org/w/index.php?title=randori&oldid= " categories: aikido japanese martial arts japanese martial arts terminology judo mock combat training hidden categories: articles with short description short description is different from wikidata articles needing additional references from december all articles needing additional references articles containing japanese-language text navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version languages বাংলা deutsch español français italiano עברית nederlands 日本語 polski português Русский Српски / srpski suomi svenska Українська edit links this page was last edited on february , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement nfts: crypto grifters try to scam artists, again – attack of the foot blockchain skip to content attack of the foot blockchain blockchain and cryptocurrency news and analysis by david gerard about the author attack of the foot blockchain: the book book extras business bafflegab, but on the blockchain buterin’s quantum quest dogecoin ethereum smart contracts in practice icos: magic beans and bubble machines imogen heap: “tiny human”. total sales: $ . index libra shrugged: how facebook tried to take over the money my cryptocurrency and blockchain commentary and writing for others press coverage: attack of the foot blockchain press coverage: libra shrugged table of contents the conspiracy theory economics of bitcoin the dao: the steadfast iron will of unstoppable code search for: main menu nfts: crypto grifters try to scam artists, again th march th march - by david gerard - comments. non-fungible tokens, or nfts, are the crypto hype for — since defi ran out of steam in , and bitcoin’s pumped bubble seems to be deflating. the scam is to sell nfts to artists as a get-rich-quick scheme, to make life-changing money. there’s a gusher of money out there! you just create a token! and any number of crypto grifters would be delighted to assist you. for a small consideration. it’s con men with a new variety of magic beans to feed the bubble machine — and artists are their excuse this time. the nft grift works like this: tell artists there’s a gusher of free money! they need to buy into crypto to get the gusher of free money. they become crypto advocates, and make excuses for proof-of-work and so on. a few artists really are making life-changing money from this! you probably won’t be one of them. in a nicer, happier world, nfts would be fun little things you could make and collect and trade, and it’d be great. it’s a pity this is crypto.     what is an nft? an nft is a crypto-token on a blockchain. the token is virtual — the thing you own is a cryptographic key to a particular address on the blockchain — but legally, it’s property that you can buy, own or sell like any other property. most crypto-tokens, such as bitcoins, are “fungible” — e.g., you mostly don’t care which particular bitcoins you have, only how much bitcoin you have. non-fungible tokens are a bit different. each one is unique — and can be used as an identifier for an individual object. the nft can contain a web address, or maybe just a number, that points somewhere else. an nft is just a pointer. if the place the nft points to is a site that claims to sell nfts that represent artworks — then you have what’s being called crypto-art! note that it’s only the token that’s non-fungible — the art it points to is on a website, under centralised control, and easily changeable. when i buy an nft, what do i get? the art itself is not in the blockchain — the nft is just a pointer to a piece of art on a website. you’re buying the key to a crypto-token. you’re not buying anything else. an nft doesn’t convey copyright, usage rights, moral rights, or any other rights, unless there’s an explicit licence saying so. it’s like a “certificate of authenticity” that’s in comic sans, and misspelt. at absolute best, you’re buying a piece of official merchandise — one that’s just a number pointing to a website. why is an nft? nfts exist so that the crypto grifters can have a new kind of magic bean to sell for actual money, and pretend they’re not selling magic beans. the purpose of nfts is to get you to give your money to crypto grifters. when the grifter has your money, the nft has done its job, and none of the fabulous claims about nfts need to work or be true past that point. nfts are entirely for the benefit of the crypto grifters. the only purpose the artists serve is as aspiring suckers to pump the concept of crypto — and, of course, to buy cryptocurrency to pay for “minting” nfts. sometimes the artist gets some crumbs to keep them pumping the concept of crypto. cryptokitties, in late , was the first popular nft. cryptokitties was largely fueled by bored holders of ether — the cryptocurrency for ethereum — spending their ether, that they had too much of to cash out easily, on some silly toys that they traded amongst themselves. since then, various marketers have tried to push the idea along. people pay real money for hats in video games, don’t they? then surely they’ll buy crypto tokens that allegedly represent their favourite commercial ip! these mostly haven’t taken off. the first real success is nba top shots, where you buy an official nba-marketed token that gives you a website trading card of a video snippet. this has taken off hugely. nba top shots has its own issues, which i’ll probably deal with in a later post. defi pumpers tried pushing nfts in october last year, but they couldn’t get the idea to stick. the recent bitcoin bubble feels like it’s running out of steam — so they’re pushing the nft idea again, and pumping it hard. with nba top shots and some heavily promoted big-money alleged sales, crypto art nfts are hitting the headlines. how do i make an nft? if you aren’t a technically-minded blockchain enthusiast, there are websites where you can “mint” an nft. first, you need to buy some ether. this covers the transaction fee to make your nft. you’ll need ethereum wallet software, probably metamask, which is a browser extension. how much do you need? well, guess and hope you’re lucky. ethereum transaction fees peaked at $ per transaction in february. lots of poor artists have tried making nfts and lost over $ they really couldn’t spare — so guess high! you might notice that this looks a lot like a vanity gallery scam, or pay-to-play. you’d be correct — the purpose is to suck your precious actual-money into the crypto economy. connect your ethereum wallet to one of the nft marketplaces. upload your file and its description. you have created a token! now you need to hope a bored crypto holder will buy it. what is “digital ownership”? without a specific contract saying otherwise, an nft does not grant ownership of the artwork it points to in any meaningful sense. all implications otherwise are lies to get your money. this is the “registration scam” — like selling your name on a star, or a square foot of land on the moon. musicians will know the “band name registry” scam, where the scammer sells something that they imply will work like a trademark on your name — but, of course, it doesn’t. (there have been multiple “register your band name on a blockchain” scams.) crypto grifters will talk about “digital ownership.” this is meaningless. the more detail you ask for what actual usable rights this “ownership” conveys, the vaguer the claims will get. the whole idea of bitcoin was property unconfiscatable by the government, that they could use as money. instead of a framework of laws and rights, they’d use … a blockchain! this notion is incoherent and stupid on multiple levels — money is a construct agreed upon in a society, property rights are a construct of law and social expectations — but it’s also what the bitcoiners believe and what they wanted. nfts try to justify themselves with variations on this claim as the marketing pitch. christie’s auction of an nft is a fabulous worked example. there’s a -page terms and conditions document, and if you wade through the circuitous verbiage, it finally admits that … you’re just buying the crypto-token itself: [christie’s, pdf, archive] you acknowledge that ownership of an nft carries no rights, express or implied, other than property rights for the lot (specifically, digital artwork tokenized by the nft). … you acknowledge and represent that there is substantial uncertainty as to the characterization of nfts and other digital assets under applicable law. the magic bean in question is bidding at $ million as i write this, which means christie’s stands to make about $ million commission. pretty good payday for a cryptographic hash. [christie’s] i don’t understand any of this. please explain it like i’m five. “would you like to watch your favourite cbeebies show — or would you like me to write on a piece of paper that you own the show? all you get is the piece of paper.” the trouble with explaining nfts to a five-year-old is that you’ll have a hard time convincing a five-year-old that this nonsense isn’t the nonsense it obviously is. it sounds unfathomably stupid because it’s unfathomably stupid. the k foundation burn a million nfts: crypto art’s ghastly co production proof-of-work is the reprehensible, planet-destroying mechanism that the ethereum and bitcoin blockchains use to decide who gets fresh ether or bitcoins. proof-of-work is inexcusable nonsense, and every single person making money in anything linked to ethereum or bitcoin should feel personal shame. (crypto grifters don’t possess a shame organ.) like bitcoin, ethereum uses an whole country’s worth of electricity just to keep running — and generates a country’s worth of co . the ethereum developers claim they’re totally moving off proof-of-work any day now — but they’ve been saying that since . crypto grifters making bad excuses for proof-of-work will often object to calculating their favourite magic bean’s per-transaction energy use, at all. the excuse is that adding more transactions doesn’t directly increase bitcoin or ethereum’s energy consumption. the actual reason is that the numbers for bitcoin and ethereum are bloody awful. [digiconomist; digiconomist] the grifters will routinely pretend it’s somehow impossible to do arithmetic, and divide the energy use by the work achieved with it — in the precise same manner we do for literally every other enterprise or industry that uses energy. but if you’re calculating energy efficiency — of bitcoin, ethereum, visa, twitter or banks — then taking the total energy used and dividing it by the total work done is the standard way to work that out. sites have sprung up to calculate the share of energy that crypto art spends. the site cryptoart.wtf picks a random piece of crypto art and calculates that transaction’s energy use. “these figures do not include the production or storage of the works, or even web hosting, but is simply for the act of using the pow ethereum blockchain to keep track of sales and activity.” the creator also has a blog post to explain the site, and address common bad excuses for proof-of-work. [cryptoart.wtf; medium] you may tell yourself “but my personal marginal effect is minimal” — but in that case, don’t pretend you’re not just another aspiring crypto grifter. there are other blockchains that don’t use proof-of-work. hardly anybody does nfts on these chains — almost nobody uses them, and the local cryptocurrency for your fees is a lot more work to get hold of. and even if you did use one of these other blockchains, all the other ways that nfts are a scam would still hold. but what about artists? they need money too artist pay is terrible. even quite successful artists whose names you know wonder if they could tap into the rich people status-and-vanity art market, and get life-changing money. (i’ve already seen one artist bedazzled by the prospect of nft money say that anyone who objects to crypto art must be a shill for big tech.) artists don’t know technology any more than anyone else does, so a lot of artists who tentatively essayed an nft were completely unaware of the ghastly co production involved in anything that touches cryptocurrency. several were shocked at the backlash over an issue they’d had no idea existed. famous artists are getting into nfts. grimes did an nft, and it’d be fair to say that elon musk’s partner isn’t going to be doing an nft for the money. even if it’s a bit at odds with her album about ecological collapse. but famous musicians have long had a habit of adopting some awful headline-friendly technology that’s utterly unready for prime time consumer use, in order to show that they are hep and up to speed with the astounding future. then they never speak of it again. remember björk’s cryptocurrency album in ? kings of leon are doing an nft of their new album — sort of. their page on nft site opensea suggests that you buy a digital download (not an nft), limited edition vinyl (not an nft), or a collectible artwork (a wallpaper). so what you’re actually buying is a vinyl record with a download, and in return, you not only give the band money, but hasten ecological collapse. some small artists have done very well indeed from nfts — and that’s excellent news! if you’ve made life-changing money from an nft, then that’s good for the world as well as for you — ‘cos now the money’s out of the hands of the crypto grifters. (for goodness’ sake, cash out now.) an important rule of crypto is: every number that can be faked is faked. nfts are the sort of con where a shill appears to make a ton of money, so you’ll think you can too. put a large price tag on your nft by buying it from yourself — then write a press release talking about your $ , sale, and you’re only out the transaction fee. journalists who can’t be bothered checking things will write this up without verifying that the buyer is a separate person who exists. just like the high-end art world! another thing that the high-end art world shares with crypto is money laundering. press coverage tends to focus on cultural value, and assume this stuff must be of artistic weight because someone spent a fortune on it. the part that functions as a money-laundering scam is only starting to get comment recently. [national law review, ; art & object, ] nfts will almost certainly be used for money laundering as well, because crypto has always been a favourite for that use case. banksying the unbanksied: fraudulent nfts there is no mechanism to ensure that an nft for an artwork is created by the artist. a lot of nfts are just straight-up fraud. if nfts weren’t a scam, there would be legal and technical safeguards to help ensure the nft was being created by someone who owned the work in question, to fend off scammers. but there aren’t any — the sites all work on the basis “we’ll clean it up later, maybe.” this is because nfts only exist to further the crypto grift. there are multiple nft sites — you could create an unlimited number of nfts that all claimed to be of a single particular work. there are a number of twitter bots that will make an nft of any tweet you point them at. the point is for the bot owner to make a commission from the sale of the nfts, before the suckers catch on. don’t expect twitter to do anything about these people — twitter ceo jack dorsey has a $ . million offer for an nft of his first tweet. the offer is from dorsey’s fellow crypto grifter justin sun. now, you might think these two massive crypto holders were just trying to get headlines for the nft market. [rolling stone] someone nfted all of dinosaur artist corbin rainbolt’s tweeted illustrations — and he took down the lot and put up watermarked versions. “i am not pleased that i have to take this sort of scorched earth policy with my artwork, frankly i am livid.” [twitter] you could go through and block and report all the twitter bots, though more will just spring up. [twitter] but think of all the good things you could do with nfts, you luddite when you point out that cryptocurrencies are terrible and nfts are a scam, crypto grifters will start talking about all the things that you could potentially do if nfts worked like they claim they do. this is a standard crypto grifter move — any clear miserable failure in the present will be answered with talking about the fabulous future! e.g., claiming bitcoin or blockchain promises will surely come true, because it’s just like the early internet. which, of course, it isn’t. what can artists and buyers do about fraudulent nfts? if the nft site has a copy of your artwork up, you can send a dmca notice to them, and to their upstream network provider. if the nft site is just claiming or implying that you created this nft when you did not, this is clearly fraudulent (misrepresentation, passing off) — but may be harder to get immediate action on. if you bought an nft thinking it was put up by the artist, and it wasn’t, then you’ve been defrauded, and should ask for a refund. if the nft site won’t refund you, then bring to bear absolutely everything you can on them. if the site is unresponsive to notices of fraud — which is quite common, because crypto grifters think “digital ownership” is a thing, and don’t care that other rights might exist in law or society — it is absolutely in order to shout from the rooftops that they are frauds, and blacken their name as best you can. contact their financial backers too. then talk about that as well. ask around to see if you have a lawyer friend, or a friend of a friend, who might be in a position to assist pro bono just because these grifters are that terrible. the most important thing for artists to do about nft fraud is to work to make nfts widely considered to be worthless, fraudulent magic beans, with massive co generation per transaction. this shouldn’t be terribly difficult, given that nfts are in fact worthless, fraudulent magic beans, with massive co generation per transaction. but is it art? you can tell that crypto art is definitely art, because so many proponents of it are insufferable manifesto bros. just the manifestos could cause runaway global warming from sheer volume of hot air. (“banksying the unbanksied” courtesy etienne beureux.)   pleased to offer a nft version of neoreaction a basilisk, which you can obtain at https://t.co/spznjzigoi — el sandifer, rationality expert to the stars (@elsandifer) march ,   you claim to place such moral stock in "artists getting paid" yet do not subscribe to my patreon, curious — dr samantha keeper md (@samfatekeeper) march ,   we have a unique opportunity to help the planet and make culture better for future generations, and everyone can contribute simply by not giving a toss about nfts. — dan davies (@dsquareddigest) march ,   your subscriptions keep this site going. sign up today! share this: click to share on twitter (opens in new window) click to share on facebook (opens in new window) click to share on linkedin (opens in new window) click to share on reddit (opens in new window) click to share on telegram (opens in new window) click to share on hacker news (opens in new window) click to email this to a friend (opens in new window) taggedchristie'scorbin rainboltcryptokittiesethereumgrimesjack dorseyjustin sunkings of leonnba top shotsnftopenseaproof of work post navigation previous article news: india crypto ban, north korea, bitmex execs to appear, ibm blockchain dead, more mcafee charges next article foreign policy: it’s a $ million jpeg, but is it art? comments on “nfts: crypto grifters try to scam artists, again” adam achen says: th march at : am wait, so, nft don’t even typically include a license for use of the underlying?! reply david gerard says: th march at : am nope! note how even the christie’s contract basically says “we dunno wtf this thing is, have fun” reply k. paul says: th march at : am isn’t it curious that on the same day that billion tethers get minted on the tron blockchain, beeple’s nft gets sold for usd million worth of eth? apparently justin sun (founder of the tron blockchain) was the leading bidder until losing it to another crypto bro at the last bid. super curious, no? money laundering? reply david gerard says: th march at : am i’m sure it’s just coincidence, and that sun definitely didn’t snipe his own bid under another name for press release purposes. reply k. paul says: th march at : am lol reply david gerard says: th march at : pm it turns out it was bought by … a guy beeple was already in the crypto business with! https://amycastor.com/ / / /metakovan-the-mystery-beeple-art-buyer-and-his-nft-defi-scheme/ so the $ m (in eth) to christie’s is correctly viewed as a marketing expense reply k. paul says: th march at : am i think sun, beeple, christie’s, vignesh, musk, etc. are all working together to push nfts. it all just seems so… planned and organized in advance. look at what musk is doing now. meanwhile, tether printer goes brrrrrrrrr!!! wk says: th march at : pm thanks; this was an interesting read. i’ve been reading about “crypto” on and off for a while now, trying to understand what it’s all about because it seems like nonsense. my initial skepticism has so far been reinforced and i completely fail to see how bitcoin or any other digital currency is independent of actual existing hard currencies. this nft business ($ . m for a tweet?) is headscratchingly ridiculous. reply john s says: st march at : pm crypto is a perfect way to take money from “midwits.” lower iq people instinctively know it’s dumb and the barrier of entry keeps them out. genuinely smart people (i’m not a genius but i would place myself in this category) read all the claims and conclude that there is no intrinsic value, regardless of limits on supply etc. people in the middle read the claims and convince themselves they understand this stuff and the marketing (better than fiat, banks, libertarian utopia etc) are true and get burned. the people who make money in crypto are either insiders or they know it’s crap and sell it during bubble periods instead of holding with the expectation that the value will perpetually increase due to magical properties. reply ingvar says: th march at : pm jwz on nfts. worth a read, including the comments (which, frankly, is not something i am used to saying). reply blaise says: th march at : pm great work: i now have a much better understanding of nft and your “contrarian” view makes perfect sense. reply adam burns says: th march at : pm > it’s [nfts are] like a “certificate of authenticity” that’s in comic sans, and misspelt. written in crypto crayons. for the love of humanity! oh … but wait. check out these ‘humanitarians’ https://www.proofofhumanity.id/ reply jetblack says: rd march at : am just more proof of the unmitigated stupidity of the world we live in. wow. and grimes just sold a bunch of ntfs for a tidy sum. hmm… i wonder who bought those? is she connected to anyone with a lot of disposable income with an vested interest in bitcoin and crypto? reply alex says: th march at : am hello! i have a question, help me out. let’s say an artist put up his/her work in a conditional nft market, an auction started and he/she successfully sold it. after this event – what rights does the artist have towards the auctioned work? or the work is still the intellectual property of the artist? reply david gerard says: th march at : am all the rights, unless explicitly stated otherwise in the sale of the nft. the purchaser might try to claim implied rights – e.g. a limited right to reproduce the work for the purpose of saying “this is what i bought an nft of” – but not major rights like copyright or reproduction without an explicit license. though i am not your lawyer, so ask one if it’s important. reply leave a reply cancel reply your email address will not be published. required fields are marked * comment name * email * website notify me of follow-up comments by email. notify me of new posts by email. this site uses akismet to reduce spam. learn how your comment data is processed. search for: click here to get signed copies of the books!   get blog posts by email! email address subscribe support this site on patreon! hack through the blockchain bafflegab: $ /month for early access to works in progress! $ /month for early access and even greater support! $ /month corporate rate, for your analyst newsletter budget! buy the books! libra shrugged us paperback uk/europe paperback isbn- : kindle: uk, us, australia, canada (and all other kindle stores) — no drm google play books (pdf) apple books kobo smashwords other e-book stores attack of the foot blockchain us paperback uk/europe paperback isbn- : kindle: uk, us, australia, canada (and all other kindle stores) — no drm google play books (pdf) apple books kobo smashwords other e-book stores available worldwide  rss - posts  rss - comments recent blog posts news: coinbase goes public, bitcoin hashrate goes down, nfts go down, proof-of-space trashes hard disk market stilgherrian: the pm dumb anarcho-capitalist blockchain scams with david gerard podcast: i don’t speak german # : crypto fascists, with david gerard desperate investors, neoliberalism and keynes: how to increase returns new york’s excelsior pass for covid- , on ibm blockchain: doing the wrong thing, badly excerpts from the book table of contents the conspiracy theory economics of bitcoin dogecoin buterin’s quantum quest icos: magic beans and bubble machines ethereum smart contracts in practice the dao: the steadfast iron will of unstoppable code business bafflegab, but on the blockchain imogen heap: “tiny human”. total sales: $ . index about press coverage for attack of the foot blockchain press coverage for libra shrugged my cryptocurrency and blockchain press commentary and writing facebook author page about the author contact the content of this site is journalism and personal opinion. nothing contained on this site is, or should be construed as providing or offering, investment, legal, accounting, tax or other advice. do not act on any opinion expressed here without consulting a qualified professional. i do not hold a position in any crypto asset or cryptocurrency or blockchain company. amazon product links on this site are affiliate links — as an amazon associate i earn from qualifying purchases. (this doesn’t cost you any extra.) copyright © – david gerard powered by wordpress and hitmag. send to email address your name your email address cancel post was not sent - check your email addresses! email check failed, please try again sorry, your blog cannot share posts by email. everybody's libraries everybody's libraries libraries for everyone, by everyone, shared with everyone, about everything public domain day : honoring a lost generation it&# ;s public domain day again. in much of europe, and other countries with &# ;life+ years&# ; copyright terms, works by authors who died in , such as george orwell, karin michaelis, george bernard shaw, and edna st. vincent millay, have joined &# ; continue reading &# ; counting down to in the public domain we&# ;re rapidly approaching another public domain day, the day at the start of the year when a year&# ;s worth of creative work joins the public domain. this will be the third year in a row that the us will have &# ; continue reading &# ; from our subjects to yours (and vice versa) (tl;dr: i&# ;m starting to implement services and publish data to support searching across library collections that use customized subject headings, such as the increasingly-adopted substitutes for lcsh terms like &# ;illegal aliens&# ;. read on for what i&# ;m doing, why, and where &# ; continue reading &# ; everybody&# ;s library questions: finding films in the public domain welcome to another installment of everybody&# ;s library questions, where i give answers to questions people ask me (in comments or email) that seem to be useful for general consumption. before i start, though, i want to put in a plug &# ; continue reading &# ; build a better registry: my intended comments to the library of congress on the next register of copyrights the library of congress is seeking public input on abilities and priorities desired for the next register of copyrights, who heads the copyright office, a department within the library of congress.  the deadline for comments as i write this is &# ; continue reading &# ; welcome to everybody&# ;s online libraries as coronavirus infections spread throughout the world, lots of people are staying home to slow down the spread and save lives.  in the us, many universities, schools, and libraries have closed their doors.  (here&# ;s what happening at the library where &# ; continue reading &# ; public domain day : coming around again i&# ;m very happy for to be arriving.  as the start of the s, it represents a new decade in which we can have a fresh start, and hope to make better decisions and have better outcomes than some of &# ; continue reading &# ; vision # : rhapsody in blue by george gershwin it&# ;s only a few hours from the new year where i write this, but before i ring in the new year, and a new year&# ;s worth of public domain material, i&# ;d like to put in a request for what music &# ; continue reading &# ; vision # : ding dong merrily on high by george ratcliffe woodward and others it&# ;s beginning to sound a lot like christmas everywhere i go.  the library where i work had its holiday party earlier this week, where i joined librarian colleagues singing christmas, hanukkah, and winter-themed songs in a pick-up chorus.  radio stations &# ; continue reading &# ; vision # : the most dangerous game by richard connell &# ;be a realist. the world is made up of two classes&# ;the hunters and the huntees. luckily, you and i are hunters.&# ; sanger rainsford speaks these words at the start of &# ;the most dangerous game&# ;, one of the most famous short &# ; continue reading &# ; fail!lab fail!lab technology, libraries and the future! luddites, trumpism and change: a crossroads for libraries &# ;globalization is a proxy for technology-powered capitalism, which tends to reward fewer and fewer members of society.&# ; &# ; om malik corner someone and they will react. we may be seeing this across the world as change, globalization, technology and economic dislocation force more and more people into the corner of benefit-nots. they are reacting out [&# ;] is d printing dying? inc.&# ;s john brandon recently wrote about the slow, sad, and ultimately predictable decline of d printing. uh, not so fast. d printing is just getting started. for libraries whose adopted mission is to introduce people to emerging technologies, this is a fantastic opportunity to do so. but it has to be done right. another dead [&# ;] the state of the library website t&# ;was a time when the library website was an abomination. those dark days have lightened significantly. but new clouds have appeared on the horizon. darkest before the dawn in the dark ages of library websites, users suffered under ux regimes that were rigid, unhelpful and confusing. this was before responsive design became a standard in [&# ;] virtual realty is getting real in the library my library just received three samsung s devices with gear vr goggles. we put them to work right away. the first thought i had was: wow, this will change everything. my second thought was: wow, i can&# ;t wait for apple to make a vr device! the samsung gear vr experience is grainy and fraught with [&# ;] w c’s css framework review i&# ;m a longtime bootstrap fan, but recently i cheated on my old framework. now i&# ;m all excited by the w c&# ;s new framework. like bootstrap, the w c&# ;s framework comes with lots of nifty utilities and plug and play classes and ui features. even if you have a good cms, you&# ;ll find many of their code libraries [&# ;] ai first looking to the future, the next big step will be for the very concept of the “device” to fade away. over time, the computer itself—whatever its form factor—will be an intelligent assistant helping you through your day. we will move from mobile first to an ai first world. google founder&# ;s letter, april my library [&# ;] google analytics and privacy collecting web usage data through services like google analytics is a top priority for any library. but what about user privacy? most libraries (and websites for that matter) lean on google analytics to measure website usage and learn about how people access their online content. it&# ;s a great tool. you can learn about where people [&# ;] the l word i&# ;ve been working with my team on a vision document for what we want our future digital library platform to look like. this exercise keeps bringing us back to defining the library of the future. and that means addressing the very use of the term, &# ;library.&# ; when i first exited my library (and information science) [&# ;] locking down windows i&# ;ve recently moved back to windows for my desktop computing. but windows comes with enormous privacy and security issues that people need to take into account&# ;and get under a semblance of control. here&# ;s how i did it. there has been much written on this subject, so what i&# ;m including here is more of a [&# ;] killer apps & hacks for windows did the ux people at microsoft ever test windows ? here are some must have apps and hacks i&# ;ve found to make life on windows quick and easy. set hotkeys for apps sometimes you just want to launch an app from your keyboard. using a method on laptopmag.com, you can do this for most [&# ;] library hat library hat http://www.bohyunkim.net/blog/ blockchain: merits, issues, and suggestions for compelling use cases * this post was also published in acrl techconnect.*** blockchain holds a great potential for both innovation and disruption. the adoption of blockchain also poses certain risks, and those risks will need to be addressed and mitigated before blockchain becomes mainstream. a lot of people have heard of blockchain at this point. but many are [&# ;] taking diversity to the next level ** this post was also published in acrl techconnect on dec. , .*** getting minorities on board i recently moderated a panel discussion program titled “building bridges in a divisive climate: diversity in libraries, archives, and museums.” participating in organizing this program was interesting experience. during the whole time, i experienced my perspective constantly shifting [&# ;] from need to want: how to maximize social impact for libraries, archives, and museums at the ndp at three event organized by imls yesterday, sayeed choudhury on the “open scholarly communications” panel suggested that libraries think about return on impact in addition to return on investment (roi). he further elaborated on this point by proposing a possible description of such impact. his description was that when an object or [&# ;] how to price d printing service fees ** this post was originally published in acrl techconnect on may. , .*** many libraries today provide d printing service. but not all of them can afford to do so for free. while free d printing may be ideal, it can jeopardize the sustainability of the service over time. nevertheless, many libraries tend to worry [&# ;] post-election statements and messages that reaffirm diversity these are statements and messages sent out publicly or internally to re-affirm diversity, equity, and inclusion by libraries or higher ed institutions. i have collected these &# ; some myself and many others through my fellow librarians. some of them were listed on my blog post, &# ;finding the right words in post-election libraries and higher ed.&# ; [&# ;] finding the right words in post-election libraries and higher ed ** this post was originally published in acrl techconnect on nov. , .*** this year’s election result has presented a huge challenge to all of us who work in higher education and libraries. usually, libraries, universities, and colleges do not comment on presidential election result and we refrain from talking about politics at work. but [&# ;] say it out loud – diversity, equity, and inclusion i usually and mostly talk about technology. but technology is so far away from my thought right now. i don’t feel that i can afford to worry about internet surveillance or how to protect privacy at this moment. not that they are unimportant. such a worry is real and deserves our attention and investigation. but [&# ;] cybersecurity, usability, online privacy, and digital surveillance ** this post was originally published in acrl techconnect on may. , .*** cybersecurity is an interesting and important topic, one closely connected to those of online privacy and digital surveillance. many of us know that it is difficult to keep things private on the internet. the internet was invented to share things with others [&# ;] three recent talks of mine on ux, data visualization, and it management i have been swamped at work and pretty quiet here in my blog. but i gave a few talks recently. so i wanted to share those at least. i presented about how to turn the traditional library it department and its operation that is usually behind the scene into a more patron-facing unit at the recent american library association midwinter [&# ;] near us and libraries, robots have arrived ** this post was originally published in acrl techconnect on oct.  , .*** the movie, robot and frank, describes the future in which the elderly have a robot as their companion and also as a helper. the robot monitors various activities that relate to both mental and physical health and helps frank with various house chores. [&# ;] zotero zotero collect, organize, cite, and share your research move zotero citations between google docs, word, and libreoffice last year, we added google docs integration to zotero, bringing to google docs the same powerful citation functionality — with support for over , citation styles — that zotero offers in word and libreoffice. today we&# ;re adding a feature that lets you move documents between google docs and word or libreoffice while preserving active zotero citations. [&# ;] retracted item notifications with retraction watch integration zotero can now help you avoid relying on retracted publications in your research by automatically checking your database and documents for works that have been retracted. we&# ;re providing this service in partnership with retraction watch, which maintains the largest database of retractions available, and we&# ;re proud to help sustain their important work. how it works [&# ;] scan books into zotero from your iphone or ipad zotero makes it easy to collect research materials with a single click as you browse the web, but what do you do when you want to add a real, physical book to your zotero library? if you have an iphone or ipad running ios , you can now save a book to zotero just by [&# ;] zotero comes to google docs we&# ;re excited to announce the availability of zotero integration with google docs, joining zotero&# ;s existing support for microsoft word and libreoffice. the same powerful functionality that zotero has long offered for traditional word processors is now available for google docs. you can quickly search for items in your zotero library, add page numbers and other [&# ;] improved pdf retrieval with unpaywall integration as an organization dedicated to developing free and open-source research tools, we care deeply about open access to scholarship. with the latest version of zotero, we&# ;re excited to make it easier than ever to find pdfs for the items in your zotero library. while zotero has always been able to download pdfs automatically as you [&# ;] introducing zoterobib: perfect bibliographies in minutes we think zotero is the best tool for almost anyone doing serious research, but we know that a lot of people — including many students — don’t need all of zotero’s power just to create the occasional bibliography. today, we’re introducing zoterobib, a free service to help people quickly create perfect bibliographies. powered by the same technology [&# ;] zotero . . : new pdf features, faster citing in large documents, and more the latest version of zotero introduces some major improvements for pdf-based workflows, a new citing mode that can greatly speed up the use of the word processor plugin in large documents, and various other improvements and bug fixes. new pdf features improved pdf metadata retrieval while the &# ;save to zotero&# ; button in the zotero connector [&# ;] zotero . and firefox: frequently asked questions in a unified zotero experience, we explained the changes introduced in zotero . that affect zotero for firefox users. see that post for a full explanation of the change, and read on for some additional answers. what&# ;s changing? zotero . is available only as a standalone program, and zotero . for firefox is being replaced [&# ;] new features for chrome and safari connectors we are excited to announce major improvements to the zotero connectors for chrome and safari. chrome the zotero connector for chrome now includes functionality that was previously available only in zotero for firefox. automatic institutional proxy detection many institutions provide a way to access electronic resources while you are off-campus by signing in to a [&# ;] a unified zotero experience since the introduction of zotero standalone in , zotero users have had two versions to choose from: the original firefox extension, zotero for firefox, which provides deep integration into the firefox user interface, and zotero standalone, which runs as a separate program and can be used with any browser. starting with the release of zotero [&# ;] none none none none collaborations workshop - keynotes live stream - invidious true invidious log in collaborations workshop - keynotes live stream video unavailable. watch on youtube show annotations download is disabled. genre: family friendly? no wilson score: . rating: . / engagement: . % softwaresaved subscribe | - shared march , hi! looks like you have javascript turned off. click here to view comments, keep in mind they may take a bit longer to load. play next by default: : collaborations workshop - panel live stream softwaresaved views : : python software carpentry workshop march - version control with git module softwaresaved views : : python software carpentry workshop - nov - building programs with python (part ) softwaresaved views : : april series: enhancing learning using google for education tools franco nicolo addun k views : : python software carpentry workshop - nov - automating tasks with the unix shell softwaresaved views : : april series | communicating using google for education tools franco nicolo addun k views : fellowship programme launch webinar softwaresaved views : : resurrecting retail virtual launch party retail prophet k views : chris hartgerink keynote talk on "the social model of inaccessibility" softwaresaved views : : april series: organizing life and work using google for education tools franco nicolo addun k views : : volt europa general assembly . . | #votevolt volt europa . k views : : python software carpentry workshop - march - building programs with python module part softwaresaved views released under the agplv by omar roth. btc: dpzymxu ryd yqzjs n kgkwcyry bch: qq ptclkzej eza a et ggc hxsq aylqut npk liberapay view javascript license information. / view privacy policy. current version: . . - ba @ master none how to tweet – what is a tweet, keyboard shortcuts, and sources open menu help center help topics using twitter managing your account safety and security rules and policies guides new user faq glossary a safer twitter our rules my privacy getting started guide contact us provide feedback search go to twitter sign out sign in search this site search goglobalwithtwitterbanner tweets search using twitter tweets adding content to your tweet search and trends following and unfollowing blocking and muting direct messages twitter on your device website and app integrations using periscope twitter voices fleets managing your account login and password username, email, and phone account settings notifications verified accounts suspended accounts deactivate and reactivate accounts safety and security security and hacked accounts privacy spam and fake accounts sensitive content abuse rules and policies twitter rules and policies general guidelines and policies law enforcement guidelines research and experiments help center tweets how to tweet how to tweet a tweet may contain photos, gifs, videos, links, and text. looking for information on how to tweet at someone? check out our article about how to post replies and mentions on twitter. view instructions for: how to tweet tap the tweet compose icon  compose your message (up to characters) and tap tweet. how to tweet tap on the tweet compose icon  enter your message (up to characters), and then tap tweet. a notification will appear in the status bar on your device and will go away once the tweet successfully sends. how to tweet type your tweet (up to characters) into the compose box at the top of your home timeline, or click the tweet button in the navigation bar. you can include up to photos, a gif, or a video in your tweet. click the tweet button to post the tweet to your profile. to save a draft of your tweet, click the x icon in the top left corner of the compose box, then click save. to schedule your tweet to be sent at a later date/time, click on the calendar icon at the bottom of the compose box and make your schedule selections, then click confirm. to access your drafts and scheduled tweets, click on unsent tweets from the tweet compose box.   tweet source labels tweet source labels help you better understand how a tweet was posted. this additional information provides context about the tweet and its author. if you don’t recognize the source, you may want to learn more to determine how much you trust the content.   click on a tweet to go to the tweet details page. at the bottom of the tweet, you’ll see the label for the source of the account’s tweet. for example, twitter for iphone, twitter for android, or twitter for web. tweets containing the twitter for advertisers label indicate they are created through the twitter ads composer and not whether they are paid content or not. paid content contains a promoted badge across all ad formats. in some cases you may see a third-party client name, which indicates the tweet came from a non-twitter application. authors sometimes use third-party client applications to manage their tweets, manage marketing campaigns, measure advertising performance, provide customer support, and to target certain groups of people to advertise to. third-party clients are software tools used by authors and therefore are not affiliated with, nor do they reflect the views of, the tweet content. tweets and campaigns can be directly created by humans or, in some circumstances, automated by an application. visit our partners page for a list of common third-party sources. deleting tweets read about how to delete a tweet. note that you can only delete your own tweets. you cannot delete tweets which were posted by other accounts. instead, you can unfollow, block or mute accounts whose tweets you do not want to receive. read about how to delete or undo a retweet. keyboard shortcuts  the following are a list of keyboard shortcuts to use on twitter.com. actions n  =  new tweet l  =  like r  =  reply t  =  retweet m  =  direct message u  =  mute account b  =  block account enter  =  open tweet details o   =  expand photo /  =  search cmd-enter | ctrl-enter  =  send tweet navigation ?  =  full keyboard menu j  =  next tweet k  =  previous tweet space  =  page down .  =  load new tweets timelines g and h  =  home timeline g and o  =  moments g and n  =  notifications tab g and r  =  mentions g and p  =  profile  g and l  =  likes tab g and i  =  lists tab g and m  =  direct messages g and s  =  settings and privacy g and u  =  go to someone’s profile bookmark or share this article scroll to top twitter platform twitter.com status card validator privacy center transparency center twitter, inc. about the company twitter for good company news brand toolkit jobs and internships investors help help center using twitter twitter media ads help center managing your account safety and security rules and policies contact us developer resources developer home documentation forums communities developer blog engineering blog developer terms business resources advertise twitter for business resources and guides twitter for marketers marketing insights brand inspiration twitter data twitter flight school © twitter, inc. cookies privacy terms and conditions english help center english español 日本語 한국어 português deutsch türkçe français italiano العربيّة nederlands bahasa indonesia Русский हिंदी সহায়তা কেন্দ্র मदत केंद्र સહાયતા કેન્દ્ર உதவி மையம் ಸಹಾಯ ಕೇಂದ್ರ by using twitter’s services you agree to our cookies use. we use cookies for purposes including analytics, personalisation, and ads. ok none everybody's libraries | libraries for everyone, by everyone, shared with everyone, about everything everybody's libraries libraries for everyone, by everyone, shared with everyone, about everything skip to content home about about the free decimal correspondence free decimal correspondence ils services for discovery applications john mark ockerbloom the metadata challenge ← older posts public domain day : honoring a lost generation posted on january , by john mark ockerbloom it’s public domain day again. in much of europe, and other countries with “life+ years” copyright terms, works by authors who died in , such as george orwell, karin michaelis, george bernard shaw, and edna st. vincent millay, have joined the public domain. canada, and other countries that still have the berne convention’s “life+ years” copyright terms, get works by authors like e. m. forster, nelly sachs, bertrand russell, elsa triolet, and other authors who died in in the public domain. and in the united states, copyrights from that are still in force have expired, introducing to the public domain a wide variety of works i’ve covered in my prior blog post. the new public domain work that i’ve seen most widely noted is f. scott fitzgerald’s jazz age novel the great gatsby. my library has a copy of the first edition, and its scan of the volume became available on hathitrust today. though he doesn’t use the term in gatsby, fitzgerald and many other authors writing around are often considered both members and chroniclers of the “lost generation”. the term was coined by gertrude stein, and made famous by ernest hemingway, who used it in the epigraph to his novel the sun also rises (one of many more works scheduled to join the us public domain a year from now). the lost generation describes an age cohort that was disrupted by the first world war, and all the deaths caused by that war and by the influenza pandemic that arose in its wake. society would never be the same afterwards. it’s ironic that some of the definitive creations of that generation are themselves part of a largely lost generation. at the time of their publication, they were supposed to enter the public domain after years at most, but that maximum term has been extended by more years, well over a generation’s worth of time. the creators of these works that got the full copyright term are almost all now dead, and many of the less famous works in this cohort have also become lost from most people’s memories. some, including many fragile films of that era, now have all copies lost as well. the generation that now sees these works joining the public domain also has many of the makings of a new “lost generation”. the number of deaths from covid- in the united states, which badly botched its response compared to many similar countries, far exceeds the number of american deaths in world war i, and is a sizable and rapidly growing fraction of all the american deaths from the - flu pandemic. many more people who have dealt with illness and quarantine have also experienced what feels like a lost year, one that hasn’t ended yet despite today’s change in the calendar. but it’s also important to recognize the key role of the public domain and of open access publications in preventing further loss. while philadelphia, where i live, has been hit hard by this pandemic, it hasn’t been hit as hard as some other places, in part because masking and other behavioral changes have been more widely used and accepted here. not long before the current pandemic started, the mutter museum’s spit spreads death exhibit reminded us of the horrifying death toll of the flu pandemic here, caused in large part by failing to stop mass gatherings that made the flu spread like wildfire here. the exhibit’s narrative, which many other local media outlets further elaborated on, was able to freely draw on a wide variety of source materials of the era that were all in the public domain due to their age. the freely available sources from helped spread public health awareness here in . open access to resources also spurred the rapid development and testing of effective treatments against covid. open sharing of the novel coronavirus genomes, and related scientific data, enabled research on the virus and effective responses to be carried out by many different labs across the globe, and many of the resulting research papers and research materials have also been made freely available in venues that are usually limited to paid subscribers. while much of this work is not public domain, strictly speaking, it is being shared and built on largely as if it were. that has enabled vaccines to be safely rolled out much more quickly than they have been for other diseases. while we celebrate today’s belated additions to the public domain, it’s also important to promote and protect it, because there are still efforts to freeze it or roll it back. the successor to the nafta trade deal requires canada to add years to its copyright terms, for instance (though canada has not yet implemented that provision). and while there is no current legislation to extend us copyright terms any further, such extensions have been proposed in the past, and we’ve just seen in congress’s recent funding bill how questionable changes to copyright law can be jammed into “must-pass” legislation with little or no warning or recourse. the public domain enriches our culture, reminds us and lets us learn from our past, and helps us make better futures. as gives us opportunities to turn the page, let’s celebrate the new opportunities we have to enjoy, share, reuse, and build on our newly public domain works. and let’s make sure we don’t lose any more generations. posted in online books, open access, publicdomain | comments counting down to in the public domain posted on december , by john mark ockerbloom we’re rapidly approaching another public domain day, the day at the start of the year when a year’s worth of creative work joins the public domain. this will be the third year in a row that the us will have a full crop of new public domain works (after a prior -year drought), and once again, i’m noting and celebrating works that will be entering the public domain shortly. approaching , i wrote a one-post-a-day advent calendar for works throughout the month of december, and approaching , i highlighted a few works, and related copyright issues, in a series of december posts called vision. this year i took to twitter, making one tweet per day featuring a different work and creator using the #publicdomaindaycountdown hashtag. tweets are shorter than blog posts, but i started days out, so by the time i finish the series at the end of december, i’ll have written short notices on more works than ever. since not everyone reads twitter, and there’s no guarantee that my tweets will always be accessible on that site, i’ll reproduce them here. (this post will be updated to include all the tweets up to .) the tweet links have been reformatted for the blog, a couple of -tweet threads have been recombined, and some typos may be corrected. if you’d like to comment yourself on any of the works mentioned here, or suggest others i can feature, feel free to reply here or on twitter. (my account there is @jmarkockerbloom. you’ll also find some other people tweeting on the #publicdomaindaycountdown hashtag, and you’re welcome to join in as well.) september : it’s f. scott fitzgerald’s birthday. his best-known book, the great gatsby, joins the us public domain days from now, along with other works with active copyrights. #publicdomaindaycountdown (links to free online books by fitzgerald here.) september : c. k. scott-moncrieff’s birthday’s today. he translated proust’s remembrance of things past (a controversial title, as the public domain review notes). the guermantes way, his translation of proust’s rd volume, joins the us public domain in days. #publicdomaindaycountdown september : today is t.s. eliot’s birthday. his poem “the hollow men” (which ends “…not with a bang but a whimper”) was first published in full in , & joins the us public domain in days. #publicdomaindaycountdown more by & about him here. september : lady cynthia asquith, born today in , edited a number of anthologies that have long been read by children and fans of fantasy and supernatural fiction. her first major collection, the flying carpet, joins the us public domain in days. #publicdomaindaycountdown september : as @marketplace reported tonight, agatha christie’s mysteries remain popular after years. in days, her novel the secret of chimneys will join the us public domain, as will the expanded us poirot investigates collection. #publicdomaindaycountdown september : homer hockett’s and arthur schlesinger, sr.’s political and social history of the united states first came out in , and was an influential college textbook for years thereafter. the first edition joins the public domain in days. #publicdomaindaycountdown september : inez haynes gillmore irwin died years ago this month, after a varied, prolific writing career. this blog post looks at of her books, including gertrude haviland’s divorce, which joins the public domain in days. #publicdomaindaycountdown october : for some, spooky stories and themes aren’t just for october, but for the whole year. we’ll be welcoming a new year’s worth of weird tales to the public domain in months. see what’s coming, and what’s already free online, here. #publicdomaindaycountdown october : misinformation and quackery has been a threat to public health for a long time. in weeks, the book the patent medicine and the public health, by american quack-fighter arthur j. cramp joins the public domain. #publicdomaindaycountdown october : sophie treadwell, born this day in , was a feminist, modernist playwright with several plays produced on broadway, but many of her works are now hard to find. her play “many mansions” joins the public domain in days. #publicdomaindaycountdown october : it’s edward stratemeyer’s birthday. books of his syndicate joining the public domain in days include the debuts of don sturdy & the blythe girls, & further adventures of tom swift, ruth fielding, baseball joe, betty gordon, the bobbsey twins, & more. #publicdomaindaycountdown october : russell wilder was a pioneering diabetes doctor, testing newly invented insulin treatments that saved many patients’ lives. his book diabetes: its cause and its treatment with insulin joins the public domain in days. #publicdomaindaycountdown october : queer british catholic author radclyffe hall is best known for the well of loneliness. hall’s earlier novel a saturday life is lighter, though it has some similar themes in subtext. it joins the us public domain in days. #publicdomaindaycountdown october : edgar allan poe’s stories have long been public domain, but some work unpublished when he died (on this day in ) stayed in © much longer. in days, the valentine museum’s book of his previously unpublished letters finally goes public domain. #publicdomaindaycountdown october : in , the nobel prize in literature went to george bernard shaw. in days, his table-talk, published that year, will join the public domain in the us, and all his solo works published in his lifetime will be public domain nearly everywhere else. #publicdomaindaycountdown october : author and editor edward bok was born this day in . in twice thirty ( ), he follows up his pulitzer-winning memoir the americanization of edward bok with a set of essays from the perspective of his s. it joins the public domain in days. #publicdomaindaycountdown october : in the silent comedy “the freshman”, harold lloyd goes to tate university, “a large football stadium with a college attached”, and goes from tackling dummy to unlikely football hero. it joins the public domain in days. #publicdomaindaycountdown october : it’s françois mauriac’s birthday. his le desert de l’amour, a novel that won the grand prix of the académie française, joins the us public domain in days. published translations may stay copyrighted, but americans will be free to make new ones. #publicdomaindaycountdown october : pulitzer-winning legal scholar charles warren’s congress, the constitution, and the supreme court ( ) analyzes controversies, some still argued, over relations between the us legislature and the us judiciary. it joins the public domain in days. #publicdomaindaycountdown october : science publishing in was largely a boys’ club, but some areas were more open to women authors, such as nursing & science education. i look forward to maude muse’s textbook of psychology for nurses going public domain in days. #publicdomaindaycountdown #adalovelaceday october : happy birthday to poet e. e. cummings, born this day in . (while some of his poetry is lowercase he usually still capitalized his name when writing it out) his collection xli poems joins the public domain in days. #publicdomaindaycountdown october : it’s pg wodehouse’s birthday. in days more of his humorous stories join the us public domain, including sam in the suburbs. it originally ran as a serial in the saturday evening post in . all that year’s issues also join the public domain then. #publicdomaindaycountdown october : playwright and nobel laureate eugene o’neill was born today in . his “desire under the elms” entered the us public domain this year; in days, his plays “marco’s millions” and “the great god brown” will join it. #publicdomaindaycountdown october : not everything makes it to the end of the long road to the us public domain. in days, the copyright for the film man and maid (based on a book by elinor glyn) expires, but no known copies survive. maybe someone will find one? #publicdomaindaycountdown october : corra harris became famous for her novel a circuit rider’s wife and her world war i reporting. the work she considered her best, though, was as a woman thinks. it joins the public domain in days. #publicdomaindaycountdown october : edna st. vincent millay died years ago today. all her published work joins the public domain in days in many places outside the us. here, magazine work like “sonnet to gath” (in sep vanity fair) will join, but renewed post-’ work stays in ©. #publicdomaindaycountdown october : all songs eventually reach the public domain. authors can put them there themselves, like tom lehrer just did for his lyrics. but other humorous songs arrive by the slow route, like tilzer, terker, & heagney’s “pardon me (while i laugh)” will in days. #publicdomaindaycountdown october : sherwood anderson’s winesburg, ohio wasn’t a best-seller when it came out, but his dark laughter was. since joycean works fell out of fashion, that book’s been largely forgotten, but may get new attention when it joins the public domain in days. #publicdomaindaycountdown october : artist nc wyeth was born this day in . the brandywine museum near philadelphia shows many of his works. his illustrated edition of francis parkman’s book the oregon trail joins the public domain in days. #publicdomaindaycountdown october : today (especially at : , on / ) many chemists celebrate #moleday. in days, they’ll also get to celebrate historically important chemistry publications joining the us public domain, including all issues of justus liebigs annalen der chemie. #publicdomaindaycountdown october : while some early alfred hitchcock films were in the us public domain for a while due to formality issues, the gatt accords restored their copyrights. his directorial debut, the pleasure garden, rejoins the public domain (this time for good) in days. #publicdomaindaycountdown (addendum: there may still be one more year of copyright to this film as of ; see the comments to this post for details.) october : albert barnes took a different approach to art than most of his contemporaries. the first edition of the art in painting, where he explains his theories and shows examples from his collection, joins the public domain in days. #publicdomaindaycountdown october : prolific writer carolyn wells had a long-running series of mystery novels featuring fleming stone. here’s a blog post by the passing tramp on one of them, the daughter of the house, which will join the public domain in days. #publicdomaindaycountdown october : theodore roosevelt was born today in , and died over years ago, but some of his works are still copyrighted. in days, volumes of his correspondence with henry cabot lodge, written from - and published in , join the public domain. #publicdomaindaycountdown october : american composer and conductor howard hanson was born on this day in . his choral piece “lament for beowulf” joins the public domain in days. #publicdomaindaycountdown october : “skitter cat” was a white persian cat who had adventures in several children’s books by eleanor youmans, illustrated by ruth bennett. the first of the books joins the public domain in days. #publicdomaindaycountdown #nationalcatday october : “secret service smith” was a detective created by canadian author r. t. m. maitland. his first magazine appearance was in ; his first original full-length novel, the black magician, joins the public domain in weeks. #publicdomaindaycountdown october : poet john keats was born this day in . amy lowell’s -volume biography links his romantic poetry with her imagist poetry. ( review.) she finished and published it just before she died. it joins the public domain in days. #publicdomaindaycountdown november : “not just for an hour, not for just a day, not for just a year, but always.” irving berlin gave the rights to this song to his bride in . both are gone now, and in months it will join the public domain for all of us, always. #publicdomaindaycountdown november : mikhail fokine’s the dying swan dance, set to music by camille saint-saëns, premiered in , but its choreography wasn’t published until , the same year a film of it was released. it joins the public domain in days. #publicdomaindaycountdown (choreography copyright is weird. not only does the term not start until publication, which can be long after st performance, but what’s copyrightable has also changed. before it had to qualify as dramatic; now it doesn’t, but it has to be more than a short step sequence.) november : herbert hoover was the only sitting president to be voted out of office between & . before taking office, he wrote the foreword to carolyn crane’s everyman’s house, part of a homeowners’ campaign he co-led. it goes out of copyright in days. #publicdomaindaycountdown november : “the golden cocoon” is a silent melodrama featuring an election, jilted lovers, and extortion. the ruth cross novel it’s based on went public domain this year. the film will join it there in days. #publicdomaindaycountdown november : investigative journalist ida tarbell was born today in . her history of standard oil helped break up that trust in , but her life of elbert h. gary wrote more admiringly of his chairmanship of us steel. it joins the public domain in days. #publicdomaindaycountdown november : harold ross was born on this day in . he was the first editor of the new yorker, which he established in coöperation with his wife, jane grant. after ninety-five years, the magazine’s first issues are set to join the public domain in fifty-six days. #publicdomaindaycountdown november : “sweet georgia brown” by ben bernie & maceo pinkard (lyrics by kenneth casey) is a jazz standard, the theme tune of the harlem globetrotters, and a song often played in celebration. one thing we can celebrate in days is it joining the public domain. #publicdomaindaycountdown november : today i hiked on the appalachian trail. it was completed in , but parts are much older. walter collins o’kane’s trails and summits of the white mountains, published in when the at was more idea than reality, goes public domain in days. #publicdomaindaycountdown november : in sinclair lewis’ arrowsmith, a brilliant medical researcher deals with personal and ethical issues as he tries to find a cure for a deadly epidemic. the novel has stayed relevant well past its publication, and joins the public domain in days. #publicdomaindaycountdown november : john marquand was born today in . he’s known for his spy stories and satires, but an early novel, the black cargo, features a sailor curious about a mysterious payload on a ship he’s been hired onto. it joins the us public domain in days. #publicdomaindaycountdown november : the first world war, whose armistice was years ago today, cast a long shadow. among the many literary works looking back to it is ford madox ford’s novel no more parades, part of his “parade’s end” tetralogy. it joins the public domain in days. #publicdomaindaycountdown november : anne parrish was born on this day in . in , the dream coach, co-written with her brother, got a newbery honor , and her novel the perennial bachelor was a best-seller. the latter book joins the public domain in days. #publicdomaindaycountdown november : in “the curse of the golden cross”, g. k. chesterton’s father brown once again finds a natural explanation to what seem to be preternatural symbols & events. as of today, friday the th, the story is exactly weeks away from the us public domain. #publicdomaindaycountdown november : the pop standard “yes sir, that’s my baby” was the baby of walter donaldson (music) and gus kahn (lyrics). it’s been performed by many artists since its composition, and in days, this baby steps out into the public domain. #publicdomaindaycountdown november : marianne moore, born on this day in , had a long literary career, including editing the influential modernist magazine the dial from on. in days, all issues of that magazine will be fully in the public domain. #publicdomaindaycountdown november : george s. kaufman, born today in , wrote or directed a play in every broadway season from till . in days, several of his plays join the public domain, including his still-performed comedy “the butter and egg man”. #publicdomaindaycountdown november : shen of the sea was a newbery-winning collection of stories presented as “chinese” folktales, but written by american author arthur bowie chrisman. praised when first published, seen more as appropriation later, it’ll be appropriable itself in days. #publicdomaindaycountdown november : i share a birthday today with jacques maritain, a french catholic philosopher who influenced the universal declaration of human rights. his book on reformers (luther, descartes, and rousseau) joins the public domain in days. #publicdomaindaycountdown november : prevailing views of history change a lot over years. the pulitzer history prize went to a book titled “the war for southern independence”. the last volume of edward channing’s history of the united states, it joins the public domain in days. #publicdomaindaycountdown november : alfred north whitehead’s science and the modern world includes a nuanced discussion of science and religion differing notably from many of his contemporaries’. (a recent review of it.) it joins the us public domain in weeks. november : algonquin round table member robert benchley tried reporting, practical writing, & reviews, but soon found that humorous essays & stories were his forte. one early collection, pluck and luck, joins the public domain in days. #publicdomaindaycountdown november : i’ve often heard people coming across a piano sit down & pick out hoagy carmichael’s “heart and soul”. he also had other hits, one being “washboard blues“. his original piano instrumental version becomes public domain in days. #publicdomaindaycountdown november : harpo marx, the marx brothers mime, was born today in . in his oldest surviving film, “too many kisses” he does “speak”, but silently (like everyone else in it), without his brothers. it joins the public domain in days. #publicdomaindaycountdown november : in the man nobody knows, bruce barton likened the world of jesus to the world of business. did he bring scriptural insight to management, or subordinate christianity to capitalism? it’ll be easier to say, & show, after it goes public domain in days. #publicdomaindaycountdown november : before virgil thomson (born today in ) was well-known as a composer, he wrote a music column for vanity fair. his first columns, and the rest of vanity fair for , join the public domain in days. #publicdomaindaycountdown november : “each moment that we’re apart / you’re never out of my heart / i’d rather be lonely and wait for you only / oh how i miss you tonight” those staying safe by staying apart this holiday might appreciate this song, which joins the public domain in days. #publicdomaindaycountdown (the song, “oh, how i miss you tonight” is by benny davis, joe burke, and mark fisher, was published in , and performed and recorded by many musicians since then, some of whom are mentioned in this wikipedia article.) november : feminist author katharine anthony, born today in , was best known for her biographies. her biography of catherine the great, which drew extensively on the empress’s private memoirs, joins the public domain in days. #publicdomaindaycountdown november : tonight in “barn dance” (soon renamed “grand ole opry”) debuted in nashville. most country music on it & similar shows then were old favorites, but there were new hits too, like “the death of floyd collins”, which joins the public domain in days. #publicdomaindaycountdown (the song, with words by andrew jenkins and music by john carson, was in the line of other disaster ballads that were popular in the s. this particular disaster had occurred earlier in the year, and became the subject of song, story, drama, and film.) november : as many folks get ready for christmas, many christmas-themed works are also almost ready to join the public domain in days. one is the holly hedge, and other christmas stories by temple bailey. more on the book & author. #publicdomaindaycountdown november : in john maynard keynes published the economic consequences of sterling parity objecting to winston churchill returning the uk to the gold standard. that policy ended in ; the book’s us copyright lasted longer, but will finally end in days. #publicdomaindaycountdown december : du bose heyward’s novel porgy has a distinguished legacy of adaptations, including a broadway play, and gershwin’s opera “porgy and bess”. when the book joins the public domain a month from now, further adaptation possibilities are limitless. #publicdomaindaycountdown december : in dorothy black’s romance — the loveliest thing a young englishwoman “inherits a small sum of money, buys a motor car and goes off in search of adventure and romance”. first serialized in ladies’ home journal, it joins the public domain in days. #publicdomaindaycountdown december : joseph conrad was born on this day in , and died in , leaving unfinished his napoleonic novel suspense. but it was still far enough along to get serialized in magazines and published as a book in , and it joins the public domain in days. #publicdomaindaycountdown december : ernest hemingway’s first us-published story collection in our time introduced his distinctive style to an american audience that came to view his books as classics of th century fiction: it joins the public domain in days. #publicdomaindaycountdown december : libertarian author rose wilder lane helped bring her mother’s “little house” fictionalized memoirs into print. before that, she published biographical fiction based on the life of jack london, called he was a man. it joins the public domain in days. #publicdomaindaycountdown december : indiana naturalist and author gene stratton-porter died on this day in . her final novel, the keeper of the bees, was published the following year, and joins the public domain in days. one review. #publicdomaindaycountdown december : willa cather was born today in . her novel the professor’s house depicts s cultural dislocation from a different angle than f. scott fitzgerald’s better-known great gatsby. it too joins the public domain in days. #publicdomaindaycountdown december : the last symphony published by finnish composer jean sibelius (born on this day in ) is described in the grove dictionary as his “most remarkable compositional achievement”. it joins the public domain in the us in days. #publicdomaindaycountdown december : when the habsburg empire falls, what comes next for the people & powers of vienna? the novel old wine, by phyllis bottome (wife of the local british intelligence head) depicts a society undergoing rapid change. it joins the us public domain in days. #publicdomaindaycountdown december : lewis browne was “a world traveler, author, rabbi, former rabbi, lecturer, socialist and friend of the literary elite”. his first book, stranger than fiction: a short history of the jews, joins the public domain in days. #publicdomaindaycountdown december : in , john scopes was convicted for teaching evolution in tennessee. books explaining the science to lay audiences were popular that year, including henshaw ward’s evolution for john doe. it becomes public domain in weeks. #publicdomaindaycountdown december : philadelphia artist jean leon gerome ferris was best known for his “pageant of a nation” paintings. three of them, “the birth of pennsylvania”, “gettysburg, ”, and “the mayflower compact”, join the public domain in days. #publicdomaindaycountdown december : the queen of cooks, and some kings was a memoir of london hotelier rosa lewis, as told to mary lawton. her life story was the basis for the bbc and pbs series “the duchess of duke street”. it joins the public domain in days. #publicdomaindaycountdown december : today we’re celebrating new films being added to the national film registry. in days, we can also celebrate more registry films joining the public domain. one is the clash of the wolves, starring rin tin tin. #publicdomaindaycountdown december : etsu inagaki sugimoto, daughter of a high-ranking japanese official, moved to the us in an arranged marriage after her family fell on hard times. her memoir, a daughter of the samurai, joins the public domain in days. #publicdomaindaycountdown december : on the trail of negro folk-songs compiled by dorothy scarborough assisted by ola lee gulledge, has over songs. scarborough’s next of kin (not gulledge, or any of their sources) renewed its copyright in . but in days, it’ll be free for all. #publicdomaindaycountdown december : virginia woolf’s writings have been slowly entering the public domain in the us. we’ve had the first part of her mrs. dalloway for a while. the complete novel, and her first common reader essay collection, join it in days. #publicdomaindaycountdown december : lovers in quarantine with harrison ford sounds like a movie made for , but it’s actually a silent comedy (with a different harrison ford). it’ll be ready to go out into the public domain after a -day quarantine. #publicdomaindaycountdown december : ma rainey wrote, sang, and recorded many blues songs in a multi-decade career. two of her songs becoming public domain in days are “shave ’em dry” (written with william jackson) & “army camp harmony blues” (with hooks tilford). #publicdomaindaycountdown december : for years we’ve celebrated the works of prize-winning novelist edith wharton as her stories join the public domain. in days, the writing of fiction, her book on how she writes her memorable tales, will join that company. #publicdomaindaycountdown december : albert payson terhune, born today in , raised and wrote about dogs he kept at what’s now a public park in new jersey. his book about wolf, who died heroically and is buried there, will also be in the public domain in days. #publicdomaindaycountdown december : in the s it seemed buster keaton could do anything involving movies. go west, a feature film that he co-wrote, directed, co-produced, and starred in, is still enjoyed today, and it joins the public domain in days. #publicdomaindaycountdown december : in days, not only will theodore dreiser’s massive novel an american tragedy be in the public domain, but so will a lot of the raw material that went into it. much of it is in @upennlib‘s special collections. #publicdomaindaycountdown december : johnny gruelle, born today in , created the raggedy ann doll, and a series of books sold with it that went under many christmas trees. two of them, raggedy ann’s alphabet book and raggedy ann’s wishing pebble, join the public domain in days. #publicdomaindaycountdown december : written in hebrew by joseph klausner, translated into english by anglican priest herbert danby, jesus of nazareth reviewed jesus’s life and teachings from a jewish perspective. it made a stir when published in , & joins the public domain in days. #publicdomaindaycountdown december : “it’s a travesty that this wonderful, hilarious, insightful book lives under the inconceivably large shadow cast by the great gatsby.” a review of anita loos’s gentlemen prefer blondes, also joining the public domain in days. #publicdomaindaycountdown december : “on revisiting manhattan transfer, i came away with an appreciation not just for the breadth of its ambition, but also for the genius of its representation.” a review of the john dos passos novel becoming public domain in days. #publicdomaindaycountdown december : all too often legal systems and bureaucracies can be described as “kafkaesque”. the kafka work most known for that sense of arbitrariness and doom is der prozess (the trial), reviewed here. it joins the public domain in days. #publicdomaindaycountdown december : chocolate kiddies, an african american music and dance revue that toured europe in , featured songs by duke ellington and jo trent including “jig walk”, “jim dandy”, and “with you”. they join the public domain in days. #publicdomaindaycountdown december : lon chaney starred in of the top-grossing movies of . the phantom of the opera has long been in the public domain due to copyright nonrenewal. the unholy three, which was renewed, joins it in the public domain in days. #publicdomaindaycountdown (if you’re wondering why some of the other big film hits of haven’t been in this countdown, in many cases it’s also because their copyrights weren’t renewed. or they weren’t actually copyrighted in .) december : “…you might as well live.” dorothy parker published “resumé” in , and ultimately outlived most of her algonquin round table-mates. this poem, and her other writing for periodicals, will be in the public domain tomorrow. #publicdomaindaycountdown posted in copyright, publicdomain | comments from our subjects to yours (and vice versa) posted on december , by john mark ockerbloom (tl;dr: i’m starting to implement services and publish data to support searching across library collections that use customized subject headings, such as the increasingly-adopted substitutes for lcsh terms like “illegal aliens”. read on for what i’m doing, why, and where i would value advice and discussion on how to proceed.) i’ve run the forward to libraries service for a few years now. as i’ve noted in earlier posts here, it’s currently used on the online books page and in some wikipedia articles to search for resources in your local library (or any other library you’re interested in) on a subject you’re exploring. one of the key pieces of infrastructure that makes it work is the library of congress subject headings (lcsh) system, which many research libraries use to describe their holdings. using the headings in the system, along with mappings between it and other systems for describing subjects (such as the english wikipedia article titles that forward to libraries knows how to relate to lcsh) allows researchers to find materials on the same subjects across multiple collections, using common terminology. there are limitations to relying on lcsh for cross-collection subject searches, though. first of all, many libraries, particularly those outside the us, do not use lcsh. some use other subject vocabularies. if a mapping has been defined between lcsh and another subject vocabulary (as has been done, for example, with mesh) one can use that mapping to determine search terms to use in libraries that use that subject vocabulary. we don’t yet have that capability in forward to libraries, but i’m hoping to add it eventually. changing the subjects i’m now also seeing more libraries that use lcsh, but that also use different terms for certain subjects that they find more appropriate for their users. while there is a process for updating lcsh terms (and its terms get updated on a monthly basis) the process can be slow, hard for non-specialists to participate in, and contentious, particularly for larger-scale subject heading changes. it can also be subject to pressure by non-librarians. the library of congress ultimately answers to congress (as its name suggests), and members of congress have used funding bills to block changes in subject headings that the librarian-run process had approved. they did that in for the subject heading “illegal aliens”, where librarians had recommended using other terms to cover subjects related to unauthorized immigration. the documentary film “change the subject” (linked with context in this article) has a detailed report on this controversy. four years after the immigration subject changes were blocked, some libraries have decided not to wait for lcsh to change, and are introducing their own subject terms. the university of colorado boulder, for example, announced in that they would use the term “undocumented immigrants” where the library of congress had “illegal aliens”. other libraries have recently announced similar changes. some library consortia have organized systematic programs to supersede outdated and offensive terms in lcsh in their catalogs. some groups now maintain specialized subject vocabularies that can both supplement and supersede lcsh terms, such as homosaurus for lgbt+-related subjects. and there’s also been increasing interest in using subject terms and classifications adapted to local communities. for instance, the brian deer classification system is intended to be both used and shaped by local indigenous communities, and therefore libraries in different locations that use it may well use different terms for some subjects, depending on local usage and interests. supporting cross-collection search in a community of localized catalogs we can still search across collections that use local terms, as long as we know what those terms are and how to translate between them. forward to libraries already uses a data file indicating wikipedia article titles that correspond closely to lcsh subjects, and vice versa. by extension, we can also create a data file indicating terms to use at a given library that correspond to terms in lcsh and other vocabularies, so we can see what resources are available at different places on a given topics. you can see how that works in practice at the online books page. as i write this, we’re still using the unaltered lcsh subjects (updated to october ), so we have a subject page showing free online books on “illegal aliens”. you can follow links from there to see what other libraries have. if you select the “elsewhere” link in the upper left column and choose the library of congress as the library to search, you’ll see what they hold under that subject heading. but if you instead choose the university of colorado boulder, you’ll see what they have under “undocumented immigrants”, the subject term they’ve adopted there. similar routing happens from wikipedia. the closest related wikipedia article at present is “illegal immigration”, and if you go down to the further reading section and select links in the library resources box, selecting “online books” or most libraries will currently take you to their “illegal aliens” subject search. but selecting university of colorado boulder (from “resources in other libraries” if you don’t already have it specified as your preferred library in wikipedia) will take you to their “undocumented immigrants” search. this routing applies two mappings, one from wikipedia terms to lcsh terms, and another from lcsh terms to local library terms. a common data resource these sorts of transformations are fundamentally data-driven. my forward to libraries github repository now includes a data file listing local subject terms that different libraries use, and how they relate to lcsh subject terms. (the library codes used in the file are the same ones that are used in my libraries data file, and are based on oclc and/or isil identifiers.) the local subject terms file is very short for now– as i write this, it only has enough data for the examples i’ve described above, but i’ll be adding more data shortly for other libraries that have announced and implemented subject headings changes. (and i’ll be glad to hear about more so i can add them.) as with other data in this repository, the data in this file is cc , so it can be used by anyone for any purpose. in particular, it could be be used by services other than my forward to libraries tool, such as by aggregated catalogs that incorporate data from multiple libraries, some of which might use localized subject terms that have lcsh analogues. where to go next what i’ve shown so far is not far removed from a proof-of-concept demo, but i hope it suggests ways that services can be developed to support searches among and across library collections with diverse subject headings. as i mentioned, i’ll be adding more data on localized subject headings as i hear about it, as well as adding more functionality to the forward to libraries service (such as the ability to link from a collection with localized subject headings, so i can support them in the online books page, or in other libraries that have such headings and want to use to the service). there are some extensions that could be done to the basic data model to support scaling up these sorts of localizations, such as customizations used by all the libraries in a given consortium, or ones that adopt wholesale an alternative set of subjects, whether that be mesh, homosaurus, or the subject thesaurus of a national library outside the us. even with data declarations supporting those sorts of “bulk” subject mappings, a universal subject mapping knowledge base could get large over time. i’ve created my own mapping file for my services, and for now i’m happy to grow it as needed and share the data freely. but if there is another suitable mapping hub already available or in the works, i’m happy to consider using that instead. it’s important to support exploration across a community of diverse libraries with a diverse array of subject terms and descriptions. i hope the tools and data i’ve described here will help advance us towards that goal, and that i can help grow them from their current nascent state to make them more broadly useful. posted in discovery, metadata, subjects, wikipedia | leave a comment everybody’s library questions: finding films in the public domain posted on march , by john mark ockerbloom welcome to another installment of everybody’s library questions, where i give answers to questions people ask me (in comments or email) that seem to be useful for general consumption. before i start, though, i want to put in a plug for your local librarians.  even though many library buildings are closed now (as they should be) while we’re trying to get propagation and treatment for covid- under control, many of those libraries offer online services, including interactive online help from librarians. (many of our libraries are also expanding the scope and hours of these services during this health crisis.)   your local librarians will have the best knowledge of what’s available to you, can find out more about your needs when they talk to you, and will usually be able to respond to questions faster than i or other specific folks on the internet can. check out your favorite library’s website, and look for links like “get help” or “online chat” and see what they offer. ok, now here’s the question, extracted from a comment made by nicholas escobar to a recent post: i am currently studying at the university of edinburgh getting masters degree in film composition. for my final project i am required to score a minute film. i was thinking of picking a short silent film (any genre) in the public domain that is minutes (or very close to that length) and was wondering if you had any suggestions? there are three questions implied by this one: first, how do you find out what films exist that meet your content criteria?  second, how do you find out whether films in that set are in the public domain?  finally, how can you get access to a film so you can do things with it (such as write a score for it)? there are a few ways you can come up with films to consider.  one is to ask your local librarian (see above) or professor to recommend reference works or data sources that feature short films.  (information about feature films, which run longer, are often easier to find, but there’s a fair bit out there as well on short films.)  another is to search some of the reference works and online data sources i’ll mention in the other answers below. the answer to the copyright question depends on where you are.  in the united states, there are basically three categories of public domain films: first, there are films copyrighted before .  all such films’ copyrights have now expired in the us.  this covers most, but not all, of the commercial silent-film era; once the jazz singer came out in , movie studies quickly switched to films with sound. second, there are us films that entered the public domain because they did not take the steps required to secure or maintain their copyrights.  researching whether this has occurred with a particular film can be complicated, but because there’s been so much interest in cinema history, others have already researched the copyright history of many us films.  the wikipedia article “list of films in the public domain in the united states” cites a number of reference sources you can check for the status of various films.  (it also lists specific films believed to be in the public domain, but you should check sources cited in the article for those films, and not just take the word of what could be a random internet user before relying on that information.) third, there are films created in their entirety by the us government.  there’s a surprisingly large number of these, in various genres and lengths, with tens of thousands or more digitized in the internet archive’s united states government film collection or listed in the national archives catalog.  you can do lots of things with works of the united states government, which are generally not subject to copyright. that’s the situation in the united states, at least.  however, if you’re not in the united states, different rules may apply.  in edinburgh and elsewhere in the united kingdom (and in most of the rest of europe), works are generally copyrighted until the end of the th year after the death of the last author.  in the uk, the authors of a film are considered to be the principal director, the screenwriter(s), and the composer(s).  (for more specifics, see the relevant portion of uk law.)  however, some countries will also let the copyrights of foreign works expire when they do in their country of origin, and in those a us film that’s in the public domain in the us would also be public domain in those countries.  as you can see in the uk law section i link to, the uk does apply such a “rule of the shorter term” to films from outside the european economic area (eea), if none of the authors are eea nationals.  so you might be good to go in the uk with many, but not all, us films that are public domain in the us.  (i’m not a uk copyright expert, though; you might want to talk to one to be sure.) let’s suppose you’ve come up with some suitable possible films, either ones that are in the public domain, ones that have suitable creative commons licenses or you can otherwise get permission to score, or ones that are in-copyright but that you could score in the context of a study project, even if you couldn’t publish the resulting audiovisual work.  (educational fair use is a thing, though its scope also varies from country to country.  here a guide from the british library on how it works in the uk.)  we then move on to the last question: how do you get hold of a copy so you can write a score for it? the answer to that question depends on your situation.  right now, the situation for many of us is that we’re stuck at home, and can’t visit libraries or archives in person.  (and our ability to get physical items like dvds or videotapes may be limited too.)  so for now, you may be limited to films you can obtain online.  there are various free sources of public domain films: i’ve already mentioned the internet archive, whose moving image archive includes many films that are in the public domain (and many that are not, so check rights before choosing one to score).  the library of congress also offers more than , compilations and individual films free to all online.  and your local library may well offer more, as digital video, or as physical recordings (if you can still obtain those).  a number of streaming services that libraries or individuals can subscribe to offer films in the public domain that you can free free to set to music.  check with your librarian or browse the collection of your favorite streaming service. i’m not an expert in films myself.  folks reading this who know more, or have more suggestions, should feel free to add comments to this post while comments are open.  in general, the first librarians you talk to won’t usually be experts about the questions you ask.  but even when we can’t give definitive answers on our own, we’re good at sending researchers in productive directions, whether that’s to useful research and reference sources, or to more knowledgeable people.  i hope you’ll take advantage of your librarians’ help, especially during this health crisis.  and, for my questioner and other folks who are interested in scoring or otherwise building on public domain films, i’ll be very interested in hearing about the new works you produce from them.   posted in copyright, publicdomain, questions | comments off on everybody’s library questions: finding films in the public domain build a better registry: my intended comments to the library of congress on the next register of copyrights posted on march , by john mark ockerbloom the library of congress is seeking public input on abilities and priorities desired for the next register of copyrights, who heads the copyright office, a department within the library of congress.  the deadline for comments as i write this is march , though i’m currently having trouble getting the form to accept my input, and operations at the library, like many other places, are in flux due to the covid- pandemic.  below i reproduce the main portion of the comments i’m hoping to get in before the deadline, in the hope that they will be useful for both them and others interested in copyright.  i’ve added a few hyperlinks for context. at root, the register of copyrights needs to do the job the position title implies: build and maintain an effective copyright registry. a well designed, up-to-date digital registry should make it easy for rightsholders to register, and for the public to use registration information. using today’s copyright registry involves outdated, cumbersome, and costly technologies and practices. much copyright data is not online, and the usability of what is online is limited. the library of congress is now redesigning its catalogs for linked data and modern interfaces. its copyright office thus also has an opportunity to build a modern copyright registry linked to library databases and to the world, with compatible linked data technologies, robust apis, and free open bulk downloads. the copyright office’s registry and the library of congress’s bibliographic and authority knowledge bases could share data, using global identifiers to name and describe entities they both cover, including publications, works, creators, rightsholders, publishers, serials and other aggregations, registrations, relationships, and transactions. the copyright office need not convert wholesale to bibframe, or to other library-specific systems. it simply needs to create and support identifiers for semantic entities described in the registry (“things, not strings“), associate data with them, and exchange data in standard formats with the library of congress catalog and other knowledge bases. as a comprehensive us registry for creative works of all types, the copyright office is uniquely positioned to manage such data. the deep backfile project at the university of pennsylvania (which i maintain) provides one example of uses that can be made of linked copyright data. at is a page showing selected copyrights associated with collier’s magazine ( - ). it links to online copies of public domain issues, contents and descriptive information from external sources like fictionmags, wikidata, and wikipedia, and rights contact information for some of its authors. the information shown has no rights restrictions, and can be used by humans and machines. json files, and the entire deep backfile knowledge base, are available from this page and from github. it is not the copyright office’s job to produce applications like these. but it can provide data that powers them. much of our deep backfile data was copied manually from scanned catalog of copyright entries pages, and from online catalogs lacking easily exported or linked data. the copyright office and the library of congress could instead produce such data natively (first prospectively, eventually retrospectively). in the process, they could also cross-pollinate each other’s knowledge bases. to implement this vision, the register needs to understand library standards and linked open data technologies, gather and manage a skilled implementation team, and be sufficiently persuasive, trusted, and organized to bring stakeholders together inside and outside the copyright office and the library of congress to support and fund a new system’s development. if explained and implemented well, a registry of the sort described here could greatly benefit copyright holders and copyright users alike. the register of copyrights should also know copyright law thoroughly, implement sensible regulations required by copyright law and policy, and be a trusted and inclusive expert that rightsholders, users, and policymakers can consult. i expect other commenters to go into more detail about these skills, which are also useful in building a trustworthy registry of the sort i describe. but the copyright office is long overdue to be led by a register who can revitalize its defining purpose: register copyrights, in up-to-date, scalable, and flexible ways that encourage wide use of the creations they cover, and thus promote the progress of science and useful arts. update, march : as of the late afternoon on the day of the deadline, the form appears to be still rejecting my submission, without a clear error message.  it did, however, accept a very short submission without any attachment, and with a url pointing here.  so below i include the rest of my intended comment, listing top priorities. (the essay above was for the longer comment asked for about knowledge, skills, and abilities.) these priorities largely restate in summary form what i wrote above.   if anyone else reading this was unable to post their full comment by the deadline due to technical difficulties, you can try emailing something to me (or leaving a comment to this post) and posting a simple comment to that effect on the lc site, and i’ll do my best to get your full comment posted on this blog. priority # : make copyright registration data easy to use: data should be easy to search, consult, and analyze, individually and in bulk, by people and machines, linked with the library of congress’s rich bibliographic data, facilitating verification of copyright ownership, licensing from rightsholders, and cataloging and analysis by libraries, publishers, vendors, and researchers. priority # : make effective copyright registration easy to do: ensure copyright registration is simple, inexpensive, supports a variety of electronic and physical deposits, and where possible supports persistent, addressible identifiers and accompanying data for semantic entities described in registrations, and their relationships. priority # : be a trusted, inclusive resource for understanding copyright and its uses: creators, publishers, consumers, and policymakers all are concerned with copyright, and with possible reforms. the register should help all understand their rights, and provide expert and impartial advice and mediation for diverse copyright stakeholders and policymaking priorities. other factors: the register of copyrights should also be capable of creating, implementing, and keeping up to date appropriate regulations and practices required or implied by congressional statutes.  (for the “additional comments” attachment, i had a static pdf attachment showing the collier’s web page linked from my main essay, as it was on march .)   posted in copyright, data, metadata, open access, serials | comments off on build a better registry: my intended comments to the library of congress on the next register of copyrights welcome to everybody’s online libraries posted on march , by john mark ockerbloom as coronavirus infections spread throughout the world, lots of people are staying home to slow down the spread and save lives.  in the us, many universities, schools, and libraries have closed their doors.  (here’s what happening at the library where i work, which as i write this has closed all its buildings.)  but lots of people are still looking for information, to continue studies online, or just to find something good to read. libraries are stepping up to provide these things online.  many libraries have provided online information for years, through our own websites, electronic resources that we license, create, or link to, and other online services.  during this crisis, as our primary forms of interaction move online, many of us will be working hard to meet increased demand for digital materials and services (even as many library workers also have to cope with increased demands and stresses on their personal lives). services are likely to be in flux for a while.  i have a few suggestions for the near term: check your libraries’ web sites regularly. they should tell you whether the libraries are now physically open or closed (many are closed now, for good reason), and what services the library is currently offering.  those might change over time, sometimes quickly.  our main library location at penn, for instance, was declared closed indefinitely last night, less than hours before it was next due to reopen.   on the other hand, some digitally mediated library services and resources might not be available initially, but then become available after we have safe and workable procedures set up for them and sufficient staffing.    many library web sites also prominently feature their most useful electronic resources and services, and have extensive collections of electronic resources in their catalogs or online directories.  they may be acquiring more electronic resources to meet increased user demand for online content. some providers are also increasing what they offer to their library customers during the crisis, and sometimes making some of their material free for all to access. if  you need particular things from your library during this crisis, reach out to them using the contact information given on their website.  when libraries know what their users need, they can often make those needs a priority, and can let you know if and when they can provide them. check out other free online library services.    i run one of them, the online books page, which now lists over million books and serials freely readable online due to their public domain status or the generosity of their rightsholders.   we’ll be adding more material there over the next few weeks as we incorporate the listings of more collections, and respond to your requests.  there are many other services online as well.   wikipedia serves not only as a crowd-sourced collection of articles on millions of topics, but also as a directory of further online resources related to those topics.   and the internet archive also offers access millions of books and other information resources no longer readily commercially available, many through controlled digital lending and other manifestations of fair use.  (while the limits of fair use are often subject to debate, library copyright specialists make a good case that its bounds tend to increase during emergencies like this one.  see also kyle courtney’s blog for more discussion of useful things libraries can do in a health crisis with their copyright powers.) support the people who provide the informative and creative resources you value.  the current health crisis has also triggered an economic crisis that will make life more precarious for many creators.  if you have funds you can spare, send some of them their way so they can keep making and publishing the content you value.  humble bundles, for instance, offer affordable packages of ebooks, games, and other online content you can enjoy while you’re staying home, and pay for to support their authors, publishers, and associated charities.  (i recently bought their tachyon sf bundle with that in mind; it’s on offer for two more weeks as i write this.)  check the websites of your favorite authors and artists to see if they offer ways to sponsor their work, or specific projects they’re planning.  buy books from your favorite independent booksellers (and if they’re closed now, check their website or call them to see if you can buy gift cards to keep them afloat now and redeem them for books later on).  pay for journalism you value.  support funding robust libraries in your community. consider ways you can help build up online libraries.  many research papers on covid- and related topics have been opened to free access by their authors or publishers since the crisis began.  increasing numbers of scholarly and other works are also being made open access, especially by those who have already been paid for creating them.   if you’re interested in sharing your work more broadly, and want to learn more about how you can secure rights to do so, the authors’ alliance has some useful resources. as libraries shift focus from in-person to online service, some librarians may be busy with new tasks, while others may be left hanging until new plans and procedures get put into motion.  if you’re in the latter category, and want something to do, there are various library-related projects you can work on or learn about.  one that i’m running is the deep backfile project to identify serial issues that are in the public domain in less-than-obvious ways, and to find or create free digital copies of these serials (so that, among other things, people who are stuck at home can read them online).  i’ve recently augmented my list of serial backfiles to research to include serials held by the library in which i work, in the hopes that we could eventually find or produce digital surrogates for some of them that our readers (and anyone else interested) could access from afar.  i can also add sets for other libraries; if you’re interested in one for yours, let me know and i can go into more detail about the data i’m looking for.  (i’m not too worried about creating too many serial sets to research, especially since once information about a serial is added into one of the serial sets, it also gets automatically added into any other sets that include that serial.) take care of yourself, and your loved ones.  whether you work in libraries of just use them, this is a stressful time.  give yourself and those around you room and resources to cope, as we disengage from much of our previous activities, and deal with new responsibilities and concerns.  i’m gratified to see the response of the wikimedia foundation, for instance, which is committed both to keeping the world well-informed and up-to-date through wikipedia and related projects, and also to letting its staff and contractors work half-time for the same pay during the crisis, and waiving sick-day limits. among new online community support initiatives, i’m also pleased to see librarian-created resources like the ontario library association’s pandemic information brief, with useful information for library users and workers, and the covid glam discord community, a discussion space to support the professional and personal needs of people working in libraries, archives, galleries and museums. these will be difficult times ahead.  our libraries can make a difference online, even as our doors are closed.  i hope you’ll be able to put them to good use.   posted in libraries, online books, open access | comments public domain day : coming around again posted on january , by john mark ockerbloom i’m very happy for to be arriving.  as the start of the s, it represents a new decade in which we can have a fresh start, and hope to make better decisions and have better outcomes than some of what we’ve gone through in recent years.  and i’m also excited to have a full year’s worth of copyrighted works entering the public domain in much of the world, including in the us for the second year in a row after a -year public domain freeze. outside the us, in countries that still use the berne convention‘s “life plus years” copyright terms, works by authors who died in are now in the public domain.  (such countries include canada, new zealand, and a number of other countries mostly in asia and africa.)  many other countries, including most european countries, have extended copyright terms to life of the author(s) plus years, often under pressure from the united states or the european union.  in those countries, works by authors who died in are now in the public domain.  the public domain review has a “class of ” post featuring some of these authors, along with links to lists of other people who died in the relevant years. in the us, nearly all remaining copyrights from have now expired, just as copyrights from expired at the start of last year.  (the exceptions are sound recordings, which will still be under copyright for a little while longer.   but thanks to recent changes in copyright law, those too will join the public domain soon instead of remaining indefinitely in state copyright.)  i discussed some of the works joining the public domain in a series of blog posts last month, in the last one linking to some posts by others that mentioned new public domain arrivals from .  but i’m happy not just because of these specific works, but also because new arrivals to the us public domain are now an annual event, and not just something that happens with published works at rare intervals.  i could get used to this. it isn’t all good news this year.  the most recent draft of the intellectual property chapter of the us-canada-mexico trade agreement requires canada to extend its copyrights another years, making it freeze its public domain not long after we’ve unfrozen our own in the us.  but the agreement hasn’t yet been ratified, and could conceivably still be changed or rejected.  and the continued force of copyrights from the second half of the previous ’ s while we’re entering a new set of ’ s is a reminder that us copyright terms remain overlong; so long, in fact, that many works from that era are lost or severely deteriorated before their copyrights expire. but there’s now an annual checklist of things to do for me and for many other library organizations.  for me, some of the things to do for the online books page include: updating our documentation on what’s public domain  (done) and on what versions of our site are public domain (also done; as in previous years, i’m dedicating to the public domain works that i wrote whose copyrights i control that are were published more than years ago.  this year that includes the copyrights to the online books page.) removing the “no us access” notices from books i’d linked to at non-us sites, when i couldn’t previously establish that they were public domain here; and removing “us access only” notices for volumes at hathitrust, which over the next few days will be making -year-old volumes globally accessible without requiring author-death-date review.   (this and other activities below will start tomorrow and continue until done.) updating our list of first active renewals for serials and our “determining copyright status of serial issues” decision guide to reflect the expiration of ’s copyrights.  as part of this process, i’ll be deleting all the serial issue and contribution renewals currently recorded in our serials knowledge base, since they’re no longer in force.  if anyone wants to know what they were for historical or other analytical purposes, i have a zipped collection of all our serial renewals records as of the end of , available on request.  they can also be found in the january , commit of this github directory. adding newly opened or scanned books to our listings, through our automated oai harvests of selected digital collections, readers’ suggestions and requests, surveys of prize winners and other relevant collections, and our own bibliographer selections. all of this is work i’m glad to be doing this year, and hope to be doing more in the years to come.  (and i’m already streamlining our processes to make it easier to do in years to come.)  its the job of libraries to collect and preserve works of knowledge and creativity and make them easy for people to discover, access, and use.  it’s also our job to empower our users to draw on those works to make new ones.  as the public domain grows, we can freely collect and widely share more works, and our users can likewise build on and reuse more public domain works in their own creations. supporting the public domain, then, is supporting the work and mission of libraries.  i therefore hope that all libraries and their users will support a robust public domain, and have more works to celebrate and work with every year.  happy public domain day!       posted in publicdomain | comments off on public domain day : coming around again vision # : rhapsody in blue by george gershwin posted on december , by john mark ockerbloom it’s only a few hours from the new year where i write this, but before i ring in the new year, and a new year’s worth of public domain material, i’d like to put in a request for what music to ring it in with: george gershwin’s rhapsody in blue, which joins the public domain in the us as the clock strikes twelve, over years after it was first performed. the unofficial song for public domain day turned out to be “yes! we have no bananas”, one of the members of the first big class of us public domain works in the last years.  that’s a fun novelty song, and certainly memorable, but not something i necessarily want to hear a lot.  in contrast, for me rhapsody in blue has a freshness that makes it a joy for me to hear repeatedly, right from the opening clarinet glissando (apparently the idea of clarinetist ross gorman, who took the scale that gershwin had composed for the piece and gave it the bendy, slidy wail that tells you right away that this is no ordinary concert piece).  it’s brought together classical, popular, high-art and everyday music, as it’s been played and recorded countless times by jazz bands (the original scoring is for jazz band and piano), symphony orchestras, and pop musicans like billy joel.  even its licensing as an theme tune for an airline hasn’t diminished it. there’s lots of other work joining the public domain along with gershwin’s tune.  i’ve only had a chance to mention a few others in my short series, but others have mentioned more works you may find of interest. at the internet archive’s blog, elizabeth townsend gard writes about vera brittain’s not without honour and other works that will be in the public domain very soon.  duke’s public domain day post mentions various books, films, and musical compositions joining the public domain as well (and has more to say on rhapsody in blue).  wikipedia’s various articles also mention various works that will either be joining the public domain, or becoming more clearly established there.  and hathitrust will begin opening access to tens of thousands of scanned volumes from over the next few days. i’ll have more to say on the new arrivals tomorrow, sometime after the midnight bells chime.  by tradition, the first tune played in the new year is usually the public domain song “auld lang syne”.  but after that, at your new years’ party or at a later public domain celebration, you might enjoy hearing or playing gershwin’s new arrival in the public domain.     posted in publicdomain | comments off on vision # : rhapsody in blue by george gershwin vision # : ding dong merrily on high by george ratcliffe woodward and others posted on december , by john mark ockerbloom it’s beginning to sound a lot like christmas everywhere i go.  the library where i work had its holiday party earlier this week, where i joined librarian colleagues singing christmas, hanukkah, and winter-themed songs in a pick-up chorus.  radio stations and shopping centers play a familiar rotation of popular seasonal songs whose biggest hits are from a surprisingly narrow date range centered in the s.  and more traditional familiar christmas carols, hymns, and songs are being sung and played in concert halls and churches well into january. the more “classic” christmas music often feels timeless to those of us singing and hearing it.  but while their roots often go back far, the form in which we know them is often much newer that we might think.  notice how the list in the previous link, for instance, includes “carol of the bells”, dated .  that’s when it was first published as a christmas song, one that’s still under copyright.  its roots are older, and darker, as is made clear in a recent slate article well worth reading. as noted there, the melody is based on a ukrainian folk tune (date unknown), its full musical setting composed by mykola leontovych (assassinated by a soviet agent in ), and christmas-themed lyrics written by the ukrainian-descended american musician peter wilhousky (who lived until ). while “carol of the bells” still has a number of years left to go on its copyright, another classic christmas carol will most likely be joining the public domain in the us in just under two weeks.  like carol of the bells, “ding dong merrily on high” is based on a folk tune, in this case a secular dance tune first published in france in the th century under the title “branle de l’official”.  in , george ratcliffe woodward, an english cleric already known for publishing collections of old songs, wrote lyrics for the tune recalling earlier ages, and included them in the cambridge carol-book, published that year by the society for promoting christian knowledge. charles wood, who’d collaborated with woodward on the earlier cowley carol book,  wrote a harmonization to go with it.  while you won’t hear it at every christmas service, it remains widely sung this time of year.  that’s in large part because it’s so much fun to sing, with its dance-like rhythms, its long bell-like vocal runs on “gloria” (something also heard in “angels we have heard on high“), and its praise of various forms of music (musicians liking to hear good things about themselves as much as anyone else). i don’t actually know for sure that “ding dong merrily on high” is still under copyright here.  i have not found a or copyright renewal for the song or the book it was published in, but i’m assuming that, if nothing else, gatt restoration retroactively secured and automatically renewed a us copyright for the song as published in the cambridge carol-book.  (folks with more knowledge or legal expertise are free to correct me on that.)  later published arrangements of the song may continue to have active copyrights, but only for material original to those arrangements.  ’s remaining copyrights, on the other hand, all end in the us on january .   (and since woodward and wood both died over years ago, the song’s already public domain in most other countries.) the arrival of , then, should at least clear up any ambiguity about the public domain status of the basic carol.  i appreciate that, in part because this song, like many other christmas carols, lives in a sort of liminal space between the private property regimes set up for copyright holders and the older, more informal understandings of folk culture.  both kinds of spaces have good reason to exist. on the one hand, it’s good to have more than a few people who can earn a living through music, and one important way many musicians do so is by controlling rights to their compositions.  on the other hand, the folk process, which originally gave rise to the tunes for both “ding dong merrily on high” and “carol of the bells”, is also a very good way of creating and passing on shared cultural works. conflict can rage when two different sets of cultural expectations around creative works try to occupy the same space.  that’s one reason we’ve seen decades of conflict in academia over open access, where scholarly work is largely published by companies that depend on its control and sale to earn money, while it’s largely written by scholars who earn their money in other ways, and tend to prefer free, widespread availability of their work.  sometimes informal arrangements work best to keep the peace.  publishers, for instance, have grown more used to free preprint servers, and memes and fan fiction communities have become more widely accepted (and even winning awards) as long as they stay well away from unauthorized commercial exploitation (where both big and small creators tend to draw the line). sometimes, though, it’s best to have a more formal understanding that works are free for anyone to freely use as we like.  that’s what we’ll have when ’s copyrights end, and the works they cover, such as “ding dong merrily on high” are clearly seen to be in the public domain.  and then, those of us who are so inclined can freely sing “hosanna in excelsis!“ posted in publicdomain | comments off on vision # : ding dong merrily on high by george ratcliffe woodward and others vision # : the most dangerous game by richard connell posted on december , by john mark ockerbloom “be a realist. the world is made up of two classes–the hunters and the huntees. luckily, you and i are hunters.” sanger rainsford speaks these words at the start of “the most dangerous game”, one of the most famous short stories of all time. first published in collier’s magazine in , it’s been reprinted in numerous anthologies, been adapted for radio, tv, and multiple movies, and assigned in countless middle and high school english classes.  the tropes established in the story, in which a hunter finds himself a “huntee”, are so well-established in present-day american culture that there are lengthy tv tropes pages not just for the story itself, but for the trope named by its title. up until now, the story’s been under copyright in the us, as well as in europe and other countries that have “life plus years” copyright terms.  (the author, richard connell,  died just over years ago in , so as of january , it will be public domain nearly everywhere in the world.)  anyone reprinting the story, or explicitly adapting it for drama or art has had to get permission or pay a royalty.  on the other hand, many creators have reused its basic idea– humans being hunted for sport or entertainment– without getting such permission. that’s because ideas themselves are not copyrightable, but rather the expression of those ideas.  and the basic idea long predates this particular story: consider, for instance, gladiators in roman arenas, or tributes being hunted down in the labyrinth by the minotaur of greek mythology.  but the particular formulation in connell’s short story, in which general zaroff, a former nobleman bored with hunting animals, lures humans to his private island to hunt and kill them for sport, is both distinctively memorable, and copyrightable.  stray too close to it, or quote too much from the story, and you may find yourself the target of lawyers.  (but perhaps not if you yourself are dangerous enough game.  i don’t know if the makers of “the incredibles“, which also featured a rich recluse using his wits and inventions to hunt humans on a private island, paid royalties to connell’s estate, or relied on fair use or arguments about uncopyrightable ideas.  but in any case, disney is better equipped to either negotiate or defend themselves against infringement lawsuits than others would be.) rereading the story recently, i’m struck by both how it reflects its time in some ways, and in how its action is surprisingly economical.  in , we were still living in the shadow of the first world war, in which multiple empires and noble houses fell, while others continued but began to teeter.  the deadly spectacles of public executions and lynchings were still not uncommon in the united states.  and the dividing of people into two classes– those who are inherently privileged and those who are left in the cold or even considered fair game– was particularly salient that year, as the second incarnation of the ku klux klan neared its peak in popularity, and as immigration law was changed to explicitly keep out people of the “wrong” national origin or race.  those sorts of division haunt our society to this day. rainsford objects to zaroff’s dehumanizing game in what we now tend to think of the story’s setup, which actually takes most of the story’s telling.  (the description of the hunt itself is relatively brief, and no words at all are used to describe the final showdown, which implicitly takes place in the gap between the story’s last two sentences.)  in the end, though, rainsford prevails by beating his opponent at his own game.  he doesn’t want to kill another human being, but when pressed to the extreme, he adopts his opponent’s rules (at the end giving zaroff the sporting warning “i am still a beast at bay… get ready”) and proves to be the better killer. with the story entering the public domain in less than three weeks, we’ll have the chance to reuse, adapt, and critique the story in quotation more freely than ever before.  i hope we use the opportunity not just to recapitulate the story, but to go beyond it in new ways. that’s what happens in the best reuses of tropes.  consider for instance, how in the hunger games books, the main character katniss repeatedly finds ways to subvert the trope of killing others for entertainment.  instead of prevailing by beating opponents at the deadly human-hunting game the enemy has created, she and her allies find ways to reject the game’s premise, cut it short, or prevent its recurrence. when, in days, we get another year’s worth of public domain works, i hope we too find ways not just to revisit what’s come before, but make new and better work out of them.  that’s something that the public domain allows everyone, and not just members of some privileged class, to do.           posted in publicdomain | comments off on vision # : the most dangerous game by richard connell ← older posts search for: rss feed pages about free decimal correspondence ils services for discovery applications john mark ockerbloom the metadata challenge recent posts public domain day : honoring a lost generation counting down to in the public domain from our subjects to yours (and vice versa) everybody’s library questions: finding films in the public domain build a better registry: my intended comments to the library of congress on the next register of copyrights recent comments jason on public domain day : honoring a lost generation john mark ockerbloom on public domain day : honoring a lost generation norma bruce on public domain day : honoring a lost generation brent reid on counting down to in the public domain john mark ockerbloom on counting down to in the public domain archives january december march january december november october september july june january december october june january december september january october september july may january january june january october august april march february january december july may january october september june may april january december november october september august july june may april march february january december october september august july june may april march january december november october september august july june may april march february january december november access for all open access news copyrights and wrongs copyfight copyright & fair use freedom to tinker lawrence lessig general library-related news and comment lisnews teleread interesting folks jessamyn west john scalzi jonathan rochkind k. g. schneider karen coyle lawrence lessig leslie johnston library loon lorcan dempsey paul courant peter brantley walt crawford metadata and friends planet cataloging shiny tech boing boing o’reilly radar planet code lib tales from the repository repositoryman writing and publishing if:book making light publishing frontier everybody's libraries blog at wordpress.com. everybody's libraries blog at wordpress.com. email (required) name (required) website   loading comments... comment × hublog by alf eatonsearch continuous deployment of a web service on cloud run march , creating and deploying a web service using cloud run's continuous deployment, github integration and cloud build's buildpacks cloud runnode.jsgithubbuilding amd docker images with arm (m ) macos march , using docker buildx bake to build docker images for different system architectures docker"git scraping" data from the office for national statistics api march , fetching and publishing regularly-updated data as a web service with github actions and datasette github actiondatasettecsvsqlitedocker on a raspberry pi december , using armv docker images on a raspberry pi dockerraspberry piarman express app as a web service in cloud functions july , deploying a simple web service to cloud functions node.jscloud functionsan express app as a web service in cloud run july , deploying a simple web service to cloud run node.jscloud runa single-author web app hosted on cloud run june , developing, building and deploying a single-author web app blogjavascriptexpressnode.jscloud rungithubsending a raw https request may , storing, editing and sending a multipart/form-data request over https converting pdf to png or jpeg september , tools and services for converting a page of a pdf to an image how to build a user interface april , the steps of designing a software product may , designing a user interface for moving data from one state to another openid connect march , a summary of the openid connect protocol and its usage for authentication in an spa serving a web application over https february , using nginx and letsencrypt to serve a web application over https janice: a prototype re-implementation of jane, using the semantic scholar open research corpus january , formatting a lacie external drive for time machine january , indexing semantic scholar's open research corpus in elasticsearch january , building an elasticsearch index of semantic scholar's open research corpus dataset a single-user blog october , building a simple blog using react and firebase recovering from a failed macos high sierra upgrade october , oauth in a chrome extension october , es export/import august , exporting/importing/re-exporting es modules styling and theming react components august , using css in js to style and theme react components async is more than await april , symfony forms march , symfony is best at allowing users to apply mutations to resources via html forms polymer + firebase makefile october , a makefile for deploying polymer apps to firebase distributed consensus april , what aaron understood september , what colour is a tree? september , collections of items in time and space fetching web resources september , using resource and collection interfaces to retrieve data from the web quantifying journals september , metrics for scoring and ranking journals it's a shame about google plus september , urls for people distributed asynchronous composable resources september , filling out data tables using promises and computed properties access-control-allow-origin: * april , add the access-control-allow-origin: * header to the data you publish no more documents april , client-side xml validation in javascript april , using an emscripten port of xmllint to validate xml against a dtd in a web browser. organising, building and deploying static web sites/applications march , using jekyll (remote or local) or yeoman (local) to build, serve and deploy a github pages site or application visualising political donations february , using tableau public to visualise donations to uk political parties force-directed tag clouds february , using artists as the dark matter in a graph of tags, to visualise the thematic content of radio shows exploring a personal twitter network january , using gephi to create a network graph showing the most highly-connected twitter friends of those i follow. searching for mergeable tables january , finding tabular data sets that can be merged, using urls for data types uk prospective parliamentary candidates january , the people who will be standing as candidates in the general election creating a map of grade i listed buildings january , filtering an environment agency shapefile to create a custom map uk parliamentary constituencies january , boundaries, names and codes of the uk's parliamentary constituencies the trouble with scientific software december , scientific software is often opaque, and difficult to obtain and cite archiving and displaying tweets with dat september , don't just publish json-ld june , publish plain, simple json, with a linked context document for consumers that want it vege-table: the data table that grows, with leaves may , the easiest, most resourceful way to harvest, explore and publish a collection of data. line-oriented data formats february , iterating arrays february , javascript methods for iterating arrays publishing research on the web january , two examples of publishing code, data and a human-readable report jquery microdata january , a jquery plugin for working with html microdata creating printable cards with html and css december , use html and css to fill a printed card with content post-humanist technology december , if you can't tell why a technology would be useful to you, it's for the robots collecting article metrics with openrefine december , using openrefine to collect article metrics data json templates december , using json templates to describe objects and query by example json-ld december , using context documents to map local property names to shared urls csv on the web, with php december , fetching, parsing and publishing csv publishing, versioning and persistence december , some rules for publishing a resource online select * from web december , ok guha describing objects december , using names and classes as shorthand for object properties switching off hubmed's rss and atom feeds august , hubmed's rss and atom feeds are discontinued web components july , using web components to define custom html elements internet surveillance june , methods of gathering information from the internet. citing articles within articles march , html markup for inline citations in scholarly articles open, social, academic bookmarking: save to app.net february , using app.net's file api to create an open, personal reading library. html metadata for journal articles november , a summary of ontologies for describing journal articles ten years of hubmed november , an overview of the ten years since hubmed was created publishing a podcast using google drive (in theory) september , generate a podcast feed for audio files stored on google drive, using apps script and yahoo pipes publishing articles using gists september , introducing macrodocs.org, a client-side renderer for articles stored in gists music seeds and more like these august , sources for music recommendation; querying by example querying data sets using google bigquery august , using google fusion tables to provide an api to data files august , resourceful web interfaces august , classlessness june , a resourceful alternative to oai-pmh june , adding files to google drive using php may , working with the harvard library bibliographic dataset april , bbc radio -> xspf bookmarklet march , how to text mine open access documents february , open access author manuscripts in pubmed central february , issn(l)s and serial title abbreviations february , extracting text from a pdf using only javascript november , open graph wins the semantic web september , citing with uris in google docs september , client-side pubmed searching july , capturing a manipulated web page with phantomjs march , this weblog in (some) urls march , a modular system for automatic entity extraction and manual annotation of academic papers february , getting and sending binary files with xmlhttprequest december , aoty november , reco: a music recommender october , artists october , creating a single file, lossless rip of a dvd chapter in ubuntu august , london cycle hire data/apps august , writing firefox add-ons with the jetpack sdk july , uk fuel consumption for energy use july , current uk reservoir stocks july , ecryptfs in ubuntu (lucid) june , using stix fonts with @font-face june , inline annotations/formatting in html may , command line twitter authentication using the pecl oauth library may , automatically mounting a remote directory in ubuntu using autofs + sshfs may , a simple hit counter with node.js and redis may , voting correlation (uk general election ) may , uk general election may , installing php . etc on ubuntu karmic ( . ) may , maps at the british library, and on the bbc may , mapstvbillions april , archiving timestamped copies of bookmarked web content march , a wsdl . description of the eutils efetch web service march , phpschemaxmlrest web services, xml and data typing march , phpxmlgoogle bookmarks lists march , googlelistsmapsa solr index of wikipedia on ec /ebs march , ec lucenesolrmapping xml named character references to unicode characters march , a pipe for new episodes in a bbc series march , bbce xjavascriptpipesrdfxmlyahooyqlindependent uk record labels on spotify march , adding spotify links to bbc radio playlists, via rdfa, using greasemonkey and rdfquery march , indexing json data in mongodb using php february , showing delicious bookmarks of pages within a domain february , elasticsearch in php february , describing rest apis with html forms february , the top google search result for each unicode character january , listing unicode characters january , spotify playlist: the hype machine top albums of january , on a bus updated january , using the bing maps web services in php january , publishing files using a public folder in google docs january , web applications january , installing platform-specific applications january , operating systems and application launching january , an os x single site browser with html storage support? january , a basic web app with a settings page, using jqtouch and php january , openurl + opensearch january , map overlays january , mapsthird-party cookies december , spotify lookup and playdar in aoty december , aotyplaydarspotifyopensearch + yql december , importing geoplanet data into mysql december , semantic assistants november , text mining november , soylatte: java . for -bit os x november , javaosxtransforming xml files with xslt . and saxon-he on os x, using an xml catalog october , xmllatest npg articles in pubmed central october , exploring pubchem via sparql october , bacode october , yahoo! apis terms of use changed october , using pubmed's autocomplete data in jquery september , html template september , htmlsheevaplug as a torrent seed box september , graphing weather time series data with timetric september , dataweatherconverting pdf to png using imagemagick or ghostscript august , the music industry (version) august , qr code testing on the iphone august , embedding chemical structure information in image files august , applescriptchemistryusing the tesco api with php august , apiphptopic modelling with mallet august , travel with an iphone august , iphonetravelmarking up a bibliographic reference with rdfa july , entities in scientific news stories june , onabus.com june , annotation of scientific articles june , annotationnow playing in songbird june , musicnow-playingsongbirda private radio archive june , notuberadiodealing with election results data june , adding bing search results to google june , extracting keyphrases from documents using mesh terms and kea june , scraping with yql execute june , scrapingclustering documents with cluto may , exploring an oai-pmh repository may , oaiyahoo! placemaker may , apilocationyahoofetching article citation counts from web of science may , apiphp, dom, dtds and named entities may , phpxmlphp, dom and xml encodings may , phpxmlrecording video from a webcam in ubuntu may , ubuntuvideoquerying bbc programmes in a talis data store may , bbcrdfurioai, yql and json may , phpyqlwhat's the unicode character for "irony"? may , updating local copies of databases and ontologies may , server-side dom scraping with javascript: options april , domjavascriptsolr/lucene on ec /ebs april , ec lucenesolrinstalling couchdb from source on os x april , everything? april , playdar as an openurl resolver? april , audiocoinsopenurlplaydarresolutiongraph of new albums added to spotify april , analysing 'science' bookmarks in delicious march , deliciousposting shared items from google reader to delicious march , deliciousphpresolving urls with php march , phpfinding all occurrences of a utf- -encoded needle in a utf- -encoded haystack march , phpusing yql and pipes to make a screensaver of the big picture march , pipesyqlpages tagged as 'science' on delicious, by co-tags march , delicioussciencepopular pages tagged as 'science' on delicious march , deliciousscienceselecting wikipedia articles by inchi march , chemistryinchirdfcontent hashing march , similarityyql open data tables march , scrapingyqlfestive spotify playlists march , playlistsradioxspftfl feeds march , semantic/scientific authoring add-ins for microsoft word march , publishingsemanticdata, science and stories march , datamusic recipe march , musicdelicious network meme tracker march , deliciouscomparing similar articles and categorisation with wikipedia march , fetching articles from the ny times api march , apiguardian + lucene = similar articles + categorisation march , guardian open platform march , apicloudmade february , mapsan open question to authors of text mining tools february , text-mininghtml + wmv -> xspf + mp february , phpvideoanalysing the tictocs collection of journal toc feeds february , freebase: types, topics, timelines and mentions february , freebaseontologygoogle, jquery and plugin loading february , googlejavascriptjqueryyoumomus february , bigmaps with modest maps january , mapsquestion for a map january , mapsbigmaps with cutycapt and xvfb january , ecsstract: scraping in xulrunner with json/css selectors january , generating standard chemical identifiers (standard inchi) january , pubmed xml in exist on os x january , difficult album titles of january , musicprivacy online: prevent tracking using adblock plus' site-specific filters january , adblockprivacyextracting a certificate/key pair from a java keystore january , spotified sxsw catalog january , greasemonkeyspotifydefining scraper mappings using css selectors january , an annotated timeline of u.s. public debt, using google spreadsheet and google calendar january , datagenerative art in second life january , installing an independent php . to run from the command line january , phpnotes on using the ubuntu ec ami january , events! january , radio now january , iplayerradioubuntu on ec january , displaying new episodes from bbc iplayer january , bbciplayertvzemanta api january , making a lucene index of wikipedia for morelikethis queries january , lucenephpwikipediaalbums of the year collages january , musicend-of-year tv (uk only) january , tvskyrails december , graphnetworkvisualisationspotification december , greasemonkeyuniprot / rdf / sparql december , rdfuniprotgetting a visitor's location (city) december , browse my privates december , firefox . , maxversion for extensions december , firefoxalbums of the year december , nokeepalive december , potatoo december , greasemonkeysongbird links and bookmarks december , libxml , php and utf- december , the most interesting regions in second life november , secondlifeon a bus november , iphonemapstransportsecond life person pseudo-apis november , second life region apis november , secondlifesecond life bigmap november , mouse coordinates bookmarklet november , bookmarkletencoding aac/mp audio files on os x november , audioosxinline wikipedia history, updated november , greasemonkeywikipediaintrepid vs nvidia november , ubuntunational public transport data repository data november , transportroyal mail paf data november , datatransport direct api november , apiphptransportgetting started in second life november , secondlifejsonp, google spreadsheet security october , securityuima october , minimal php script for downloading pubmed xml october , phppubmedminimal php script for downloading pubmed xml (with error checking) october , phppubmedhuffduffer october , who cares about open access october , publishingsciencesecond life: "teleport to camera position" october , second lifevideo encoding recommendations october , videomaximise os x windows with a keyboard shortcut september , query parameters in uris september , logout/login csrf september , pure data september , audiopuredataplaylist builder using freebase suggest september , freebasemetadataweb playlist tool september , mediaplaylistspreprints and categorisation september , creating a freebase data view september , datafreebaserasmus lerdorf on php performance september , phpubiquity pubmed search september , audacity september , php, simplexml, xpath and namespaced attributes september , removing 'for each' from javascript examples september , pubmed json api september , apijavascriptjsonpubmedlinux music players: compilations and watching folders september , audiolinuxbbc aod filter pipe september , audiobbcpipesgopubmed export api september , ubiquity commands september , national rail bus service sparklines september , businfographictransportgmail menuextra ssb in fluid august , veodia august , second lifevideopulseaudio resampling august , audioprojectm-pulseaudio august , audioubuntu,visualisationlondon: cycling and walking route maps august , london: visitors bus map, mobile tfl august , pulseaudio voodoo august , audioubuntuukpa negotiates a licence for commercial music podcasting august , podcastgeonames nearbywikipedia api august , apijavascriptjquerylocationwikipediaaiderss postrank api august , apijqueryuk postcode -> bus stop prototype august , maptransport , bus stops august , locationphpfull-text feeds as a route around censorship august , feedsepub and stanza august , epubliteraturepdfmendeley august , bibliographypdfcreating maptube maps with neighbourhood statistics data august , mapsan amazon wishlist competition/contest august , amazoncompetitionwishlistlisten later updated august , audiobbcextensionfirefoxmobile bus departures august , locationtransportupload to google docs bookmarklet august , bookmarkletgooglegrowl alerts for gmail messages from address book august , applescriptgmailradio comedy feeds august , bbcradiosending a url from safari to firefox august , applescriptosxwriting an atom feed in php august , atomphphow to share a social network august , portabilityprivacylocatory august , britain from above august , bbctvmeta-tv august , tviphone reader for google reader starred items august , feedsgoogleiphonefree august , iphonecount/distinct queries august , mysqlrdfxquerymanipulating forms in google spreadsheets august , googlespreadsheetstiddlywiki zoomable interface august , tiddlywikiiphone interface for delicious network august , deliciousiphonemapping statistics mini-presentation at barcamb august , mapsds game classics july , dsgameslondon age distribution maps part july , mapslondon age distribution maps july , mapsdata uri for a google search box july , googleiphonesecurity email addresses that are black holes july , securitybeware of the app july , iphonesecurityxmpp comments july , xmppupcoming api (php ) july , apiphpsend pdfs from skim to gmail july , applescriptgmailpdflisten direct /programmes july , bbcgreasemonkeyradioinstalling java advanced imaging in ubuntu hardy july , javaubuntuconvert amr files to wav in ubuntu hardy july , audiolinuxubuntuneighbourhood statistics api july , apiphpsoapordnance survey-based bigmap of the uk july , mapartist -> bbc radio shows lookup june , bbcmusicphpradiosoul bubbles june , gamesessential add-ons for firefox june , extensionsfirefoxchris wetherell on google reader june , feedsgooglepod-u-like june , app-enginepodcastsusing google to fetch all of a feed's items june , apifeedsgooglephpfirefox, opensearch and autocomplete june , firefoxopensearchopencalais api june , apiskim: open all with papers june , applescriptosxpdftumblr auto-pager june , greasemonkeywebclipcountupdown june , csssafaricreate a calendar from del.icio.us bookmarks june , calendardel.icio.uspod news june , podcastsbringing a publisher's content to the life science researcher may , presentationpublishingslidestext-miningthe rules of web . may , publications may , app-enginemedlineopensocialpublicationspythonon the rain-slick precipice of darkness, from penny arcade may , gameopensocial terminology may , opensocialmy speediest gatherers updated may , del.icio.usphpupgrading to gmail may , emailwith or without uids may , metadatapresentationsearchslidesxtechi'm feeling unlucky may , googlegreasemonkeymeta latest may , searchdealing with corrupt preference files on os x may , osxrecipebook april , drupalrecipebookrecipesmixingit april , drupalminingphpradiotextgazelle april , musicp pnow playing on the radio april , bbcradioxmpprealplayer for linux april , linuxradiorealplayerpubmed search url april , pubmedhow to make someone fetch a url with a blank referer header april , securityreification april , rdfsecurity against sql injection in wordpress april , phpsecuritywordpresstwubble april , twittergoogle docs april , code quality in contributed drupal modules april , drupalnds april , dsgamessecure password hashing april , drupalopenpasswordssecuritysourcewordpresshow identifight works april , identifightprivacysemgine's mymap for exploring semantic networks of information april , datagraphinterfacerdfvst instruments in linux march , linuxvstgoogle site search bookmarklet march , bookmarkletgooglebookmooch, librarything march , bookssneetchalizer march , audiolinuxlast.fm fingerprinting client march , last.fmmetadatamusicdecentralised music subscription services march , musicdrupalcpp march , drupals e march , tvpenguin march , booksidentifight additions march , identifightprivacyidentifight march , identifightprivacyspokeo march , identityphp script for downloading mp files from iplayer march , bbcphptopcited march , citationpublishingdownload tv shows from the bbc iplayer as mp march , bbctvclimate change march , climate-changeconferenceparticipationlocating london buses march , busesopen-databuilding a "now playing" wall february , amarokxmppmusicbrainz artist info api february , apimusicbrainzphplast.fm artist info api february , lastfmphp"relation" metadata february , metadatapublishingxmpp, publish-subscribe, pep and user tune february , pubsubxmppfull openurl metadata from crossref february , openurlsetting the height of a cross-domain iframe using postmessage february , htmljavascriptno frills fullscreen february , extensionsfirefoxkitte february , designwordpresscrossref citation plugin february , citationcrossref"play in sidebar" firefox extension february , audioextensionfirefoxplaylistvlccoding niggles february , codezowbar february , firefoxmetadatazoterorefactormycode february , codewindows-less? february , linuxmusicrenoisewindowscanon printers in ubuntu february , printubuntulinking to papers february , citationconversationsdisambiguationunpredictability of influence january , xmpp january , firefoxxmppupdating "selected text" bookmarklets january , bookmarkletsfinding conversations around academic publications january , citationconversationscintillacanonical pubmed urls january , pubmedlisten later january , bbcextensionfirefoxradiohow a firefox extension works january , extensionsfirefoxfsdl january , searchsingle window mode january , firefoxmozilla, chrome and fuel january , firefoxfirefox , del.icio.us posting extension january , del.icio.usextensionfirefoxopenurled january , openurlfeed deltas: what's changed? january , feedsblog remix january , musicxspfannotations in xml january , annotationsubmitting author manuscripts to pubmed central january , publishingdepositing nature articles in pubmed central january , natureopen-accesspublishingbpr markup january , citationmicroformatscrowbar january , scrapingzoterothe long arm of copyright january , copyrightgamesall nature papers now available online january , natureaccessing the umlsks soap web service using php january , apiphpcoverflow-ish for newest amarok albums january , amarokphpcommunicating with amarok from a local web page january , amarokhttp post in php january , phparchiving del.icio.us bookmarks january , del.icio.usdrupalprojectm in amarok december , audiovisualisationcontextlinks amarok plugin december , amarokamarok: record labels from musicbrainz december , amarokmusicbrainzpythonamarok: album release dates from musicbrainz december , amarokmusicbrainzpythontv on the internet december , bbctvbbc cross-platform iplayer december , bbcradiotvbest albums of lists december , drupalmusicpresenting replicates in a table december , datahtmlpublishingcharting features december , datajavascriptvisualisationair december , e xeasylistener bookmarklet december , bookmarkletplayraida toolkit entity extraction api december , medlineminingreasons for loving cash music december , musicmyexperiment december , bioinformaticsxnat workflow december , sciencefirefox's sandbox december , firefoxsecurityjquery in zotero november , jqueryzoterothe world is pixels at zoom level november , googlemapconditionally hiding html elements with jquery/css november , jqueryamazon aws api november , amazonapipubchem (eutilities) api november , apieutilsphpcross-platform javascript omissions november , javascriptrenoise november , musicrenoisesideload/mp tunes vs emi november , copyrightmusicpredictive accuracy is substantially improved when blending multiple predictors november , algorithmsserver-side scraping with javascript november , javascriptmetadatacurehunter's graph viewer november , visualisationscraping web pages with php november , phpscrapingmaking a screencast november , screencastvideorev="review" november , citationmicroformatspreserving pdf metadata november , metadatapdfgutsy november , ubuntubpr november , citationmicroformatsstill oink-less november , musicp pted november , p ptvmyspace -> file hd greasemonkey script november , greasemonkeymetadata scrapers october , metadatadel.icio.us / earlier october , del.icio.ushype machine october , musicsongbirdgetting a local copy of medline october , medlinephppubmedbbc radio player as a separate application, with webrunner october , bbcfirefoxradioi forgot my password october , securityxul ftw october , xulfix ssh in mac os x by reinstalling kerberos.framework october , osxmail -> thunderbird october , emailmethods for private atom/rss feeds october , feedssecuritylinux and wireless devices september , linuxwifigmail vulnerability september , emailsecuritythings that taste great together september , notes from drupalcon barcelona september , drupalupdate: artist popularity in specific countries september , lastfmncbi resource locator september , pubmedhcalendar, microformats and google calendar september , microformatsdealing with hard drives in ubuntu september , ubuntulondon cinema today september , cinemadrupalhigh usage of pubmed's "related articles" august , pubmedsearchinline wikipedia history august , greasemonkeywikipediaon the wire has a podcast august , radiomusicsun august , audioscrobblervisualisationnon-destructive faceted browsing august , searchvisualisationquite |kw?t| august , adding random email addresses to facebook august , geocoding apis august , apigeogene network api august , apibioinformaticsphppostgenomic api august , apicitationwhatizit api august , apibioinformaticsphppubmed api august , apiphppubmedclearforest sws api august , apimetadataphpcss workarounds for internet explorer < august , csswikipedia api july , apifreebase api july , apiscopus api july , apicitationrss nightmare july , feedslazytube july , screencastvideopublishing data tables july , datapublishinguser styles july , cssfarewell azureus july , p pepub and adobe digital editions july , publishingif it's ready, release it july , musicopera mini beta july , faceted search in solr/drupal july , drupalsearchmusic.of.interest july , musicpeel sessions july , drupalradioscintilla june , naturescintillacreate a google custom search engine on the fly june , googlesearchxtech science bof slides june , presentationxtechunofficial london rss feeds june , feedslondonbenchmarking php . . string manipulation june , phpbenchmarking php . . string manipulation june , phpexpanding abbreviations in hubmed june , hubmedmahalo june , searchpodule # may , poduleslast.fm listening graph may , lastfmvisualisationpodcast awards may , podcastxss vulnerabilities by pagerank may , securityriaa-safe top may , musicp pcompiling and installing xalan on os x may , osxprogramming language reference widgets for dashboard may , osxwebjay → last.fm playlists may , lastfmplaylistsnotes from xtech may , xtechpredictions/observations for may , mobile feed reader may , feedsreal-time, -bit audio processing may , audioplay this gene may , greasemonkeyitems you rated in amazon may , amazonrecommendationrate items quickly in amazon with greasemonkey april , amazongreasemonkeyxtech april , xtechmultiple "related articles" in pubmed april , pubmedr ds april , ds album covers april , musicvisualisationfetching cover art for a list of albums april , amarokmusicmusicbrainzpythonadd publications from hubmed to publicationslist.org april , greasemonkeyhubmedpublicationsmirror last.fm listening statistics april , lastfmmusicphpmobile mapping/gps april , gpszotero ? hubmed tags april , extensionfirefoxhubmedzoteroownership of user-contributed data march , data-portabilitytouchgraph relaunched march , touchgraphamarok → last.fm links (my first ruby) march , amaroklastfmmusicrubyadding musicbrainz data to an amarok database march , amarokmusicmusicbrainzpythonsmall pieces please march , p pthe sorry state of online music march , musicvideo aggregators march , video -bit firefox on -bit ubuntu march , ubuntuwhat's on your google homepage? march , googlevisual scrapers march , automationscrapingxhtml vs html march , xhtmlfour tenets of web security march , securityone column layouts march , cssfirefox offline browsing march , firefoxpublishinglast.fm user listening data march , lastfmscientific article conversations and distributed libraries february , citationsearch-and-replace february , bashwarning: don't use hpmount february , linuxplos one february , publishingopensearchfox february , extensionfirefoxcopying bookmarks from del.icio.us to connotea february , bookmarksdel.icio.use xgreasemonkeygetting an audio file in another format from an m p on os x february , audioosxmemcached and drupal february , drupaldrupal module for solr february , drupalsearchubuntu edgy, bluetooth and sony ericsson k i february , mobileubuntumame reviews february , drupalgamesa web interface to search and download albums in an amarok library february , amarokphpq: what am i using itunes for? january , musicposting machine tags to del.icio.us january , del.icio.usdrupal january , drupalberyl . beta january , berylubuntubt have been busy january , btthings you need to play arcade games january , gamesdvd::rip january , dvdlinuxnew server january , server days of london widget january , drupallondonosxplos too december , drupalpublishingmetrack december , del.icio.usgreasemonkeyautomatically play youtube videos in a full window december , greasemonkeyyoutubeplaying web video in fullscreen december , playliststits & sharks & acid december , audiomashupnautilus actions december , ubuntuplaying youtube videos in ubuntu december , ubuntuvideosound from a microphone on hda intel in ubuntu december , ubuntumetalicious november , javascriptperlmusicbrainz picard tagger november , metadatamusicmusicbrainzuniform requirements for manuscripts november , citationvisual jquery user style november , cssjquerycheap-ish windows xp november , windowsgeocoding uk postcodes with postcodeanywhere november , geophpyahoo! bookmarks november , bookmarksgmap geocoding uk postcodes november , geolast.fm events calendar october , lastfmnovelty vs necessity october , ubuntufitting in ubuntu october , firefoxubuntuamarok, mysql, json and greasemonkey october , amarokgreasemonkeyphpthe case of the disappearing comments october , wikipedia export format for citing papers from hubmed october , greasemonkeyhubmedunapiwikipediatgn analysis in the lancet october , immunologytgn hubmed speed october , hubmednnw sneak peek release october , netnewswirezotero and compound documents october , metadatapublishingzoterometaphors that have had their day october , google webpage gadgets october , googleprivacydreamhost promotion today october , msn.co.uk doesn't rank firefox october , firefoxsearchi candy september , ubuntuall you need on a (consumer) pc september , appsosxubuntuwindowsubuntu and core duo pcs september , ubuntumigrate movable type to drupal ( . ) september , drupalmtsecurity as a non-admin user in os x september , securitynetnewswire: "mark all as read and proceed" september , netnewswirebuilding a site to handle images in drupal september , drupalbt home hub september , btpodcasts for people who say they don't know any good podcasts september , podcastssharing a list of podcasts september , podcastsfirefox beta september , firefoxwhy is myspace popular august , myspace steps to making myspace nicer august , cssgreasemonkeymyspacescan in itunes august , applescriptitunesgenerate a bookmarklet to automate offprint requests august , bookmarkletpublishingnature.com css august , cssnaturestylishcleanliness july , osxnotate july , annotationpublishingaggademia july , aggregationdrupalnatureunapi link enabler for greasemonkey july , greasemonkeyunapihubmed paper in nucleic acids research july , hubmedsphere it! july , bookmarkletrss feeds for bloglines citation searches july , bloglinesfeedsferret: lucene for ruby july , lucenerubysearch - - data webs conference june , conferencemore about/like this page june , bookmarkletsmapping and tagging greasemonkey scripts june , connoteagreasemonkeygraph your connotea library june , connoteatouchgraphvisualisationxsl files for publishing from nlm xml may , publishingxsllucene . may , lucenesearchmesh information in hubmed may , hubmedmeshpodule # may , podulesquery statistics in hubmed may , hubmedsentence ordering in otmi may , text-mininggoogle co-op may , googlesearchadd hubmed links to google search results may , greasemonkeyhubmedadd radio commands to bbc radio player may , bbcgreasemonkeyradiostructure of a scientific article may , publishingrelated articles algorithms may , hubmedhealth-related queries in google may , googlerecommendations from hubmed may , hubmedrecommendationa plan for publishing journal articles may , publishingtreemaps of medline may , medlinevisualisationplaying streaming radio [realaudio, bbc, os x] through an airport express may , osxa network of politicians and interviewers/journalists on the bbc may , touchgraophvisualisationtouchgraph of bbc tv/radio collaborators april , bbctouchgraphvisualisationrecent papers in hubmed search results april , hubmedpersonalisation and privacy april , hubmedpersonalisationmarkov-chained text from medline abstracts april , medlineitunes alarm clock (ical + applescript) april , applescriptitunesosxemail notifications in gnome april , emailubuntudocument clustering in hubmed april , hubmedrecording streaming radio (improved) april , bashradiovlc, xspf, dapper and tango april , playlistsubuntuopen text mining interface (otmi) april , text-mininginterdb links in hubmed april , hubmedex-html april , htmlhubmed extension for mediawiki march , hubmedctla- -ig march , immunologyadobe xmp sdk beta march , metadatapdfxmppeer review with marginalia march , annotationpublishingfulltext links from hubmed's feeds march , hubmeda week of tv in pictures (comedy, mostly) march , tvcriticker march , filmrecommendationfeedback down march , playr's xspf player march , playrpodule # march , podulestgn march , immunologytgn my most played artists this week, from last.fm march , lastfmxhtml, svg and mathml march , xhtmlgetting document elements out of the clipboard march , bookmarklethobbs on rewind march , lots of comment spam march , mtgetting document elements into the clipboard march , bookmarkletexclusive photo of the new google colander march , googlecopy and paste with unapi march , unapilinking and storing supplementary data march , datanotepress for wordpress march , wordpressconnecting to the nintendo wfc march , dssupplementary data march , databluetooth intellimouse explorer on os x march , osxsound in ubuntu february , ubuntutorrentbot missed some episodes february , p pmanaging metadata for academic pdfs february , bibdeskbibtexmetadatapdfscalable bar charts with tables and css february , cssopenurl for music february , openurlpimp my paper! february , publishingwhere to download firefox february , firefoxsearchuniprot creative commons licensed, available as rdf february , rdfthe state of online biomedical full text articles february , publishingallfulltext february , bookmarkletshubmeda_list of podcasts february , podcaststhe state of biomedical pdfs february , publishingmanaging academic papers (almost) like mp s february , publishingquery expansion in hubmed february , hubmedwebphones february , audioauthor contributions in scientific paper metadata february , publishingupcoming.org simple event posting form february , calendareventsinterview with david lipman of the ncbi february , pubmedbritish albums vs mercury nominees february , musicpodule # january , podulesthings that reek of greatness january , normalising uris january , citationad-hoc xml databases with mysql . january , mysqlxlmpubmed lookup for structure blogging january , hubmednotepressrelevance-ranked search results in hubmed january , hubmedpopulate itunes with webjay playlists update january , applescriptituneswebjaynlm mods january , xsltcreating an atom feed in perl january , atomperltv january , tvcreating an openoffice document in perl january , openofficeperla suggestion for opensearch january , opensearchlistenable retrospectives january , feedsmusicbest albums of january , musicrvwhubmed bibtex changes january , bibtexhubmedciteproxy january , citationidentifiersmodsxmlreading feeds january , feedsosxsoftwaremp blog toplist updated january , blogsmusicvideo chat between mac and pc december , imosxvideoa script for slogger december , bookmarksextensionfirefoxmachineprose december , biomedicalontologypublishingrdfacademic metadata workflow december , metadatanow that's what i call weblogs... vol december , weblogsgoogle music search december , googleupdated opensearch templates for movable type december , mtmore useful firefox extensions december , firefoxdragthing [os x] december , osxsoftwareeasynews search plugin december , firefoxsearchpluginsspacer december , bookmarkletextracting knowledge from biomedical text december , biomedicalhubmedrdftextbioinformatics workflows december , bioinformaticsalbums of snapshot december , musicthings of interest added to hubmed december , hubmedindestructible user profiles december , searchgoggle update december , greasemonkeyrdf interoperability for social bookmarking tools december , feedshubmedrdftagspopulate itunes with webjay playlists november , applescriptituneswebjaysequence manipulation en-suite november , javascriptscienceindex diagnosticus november , searchbest of: bookmarklets november , bookmarkletsstylish november , firefoxbest of: games on os x november , gamesosxbest of: applescripts for itunes november , itunesosxbest of: firefox extensions november , extensionsfirefoxmechanical turking november , amazonrdf export from hubmed tags november , hubmedrdftagscontent negotiation for hubmed tags november , hubmedpiggybankrdftagsyahoo! canada movies feed november , cinemafeedcached web pages and spurl november , bookmarkscacheutf- citation export from hubmed november , hubmeda modular dynamic web page for bioinformatics searches november , bioinformaticsperllast.fm search plugin november , firefoxlastfmdated web page snapshots with my web november , bookmarkletcachemywebsubmitting reviews to google base november , googlegreasemonkeyrvwcreating a citable archive of a web page november , archivebookmarkscitationeeeeeeeeeeeevil november , googlethe wire on resonance fm podcast november , musicplayrpodcastmime types and feed handlers november , feedspodcastspodule # november , musicpodulesfoaf + hcard november , yahoo's my web . november , taggingvisible changes in hubmed this week november , hubmeddisabling caps lock in ubuntu november , ubuntuvisible changes to hubmed this week november , hubmedblogbridge november , softwarejedit november , softwaretemporary feed subscriptions and individual item archives november , feedsopenoffice on os x november , openofficeosxnotepress october , notepressresearchwordpressflock october , firefoxflockhealthline october , healthsearcha definite lack of standards for academic metadata october , metadatalooking for mp s? october , firefoxsearchpluginstweaking firefox for user-side accessibility october , accessibilitycssfirefoxstart.com gadgets october , a couple of music videos on slow servers october , musicpublishing whole documents using an open xml standard format october , publishingxmlsomeone comes to town october , torontosomeone leaves town october , parisfixation october , hubmedrvwtiny greasemonkey script for flickr page titles october , flickrgreasemonkeynews.com graph visualisation for related stories october , anti-personal portal aggregators october , blogpulse alert feed for recently played artists september , audioscrobblerfeedslast.fmmusicpodule # september , musicpodulesopensearch description and atom-based response templates for movable type september , atommovabletypeopensearchsearchubuntu breezy september , breezyubuntureplace the guardian logo september , greasemonkeyopensearch . september , firefoxopensearchsearchsruspyware . september , security september , fruityloopsmusicfirefox search plugin for google blog search september , firefoxgooglesearchpluginsmetadata in feeds (again) september , atommetadatardfreviewsthou shalt not make me squint september , accessibilitycssfirefoxflickr vs yahoo sign-up september , flickrsecurityyahoobookmark folders september , bookmarksfirefoxchanging feed format september , atomfeedsrdfrssdvd ripping to matroska september , dvdmatroskaoggxvidmovable type + tags september , movabletypetagaudioscrobbler browser update september , last.fmmusictouchgraphcoins browser extensions updated september , bookmarkletcoinsgreasemonkeyopenurltv august , torrentbottvsort del.icio.us popular (again) august , deliciousgreasemonkeygetting firefox bookmarks into spotlight august , firefoxspotlightdyld_fallback_library_path (os x) august , osxexport citations from hubmed to refworks august , bookmarklethubmedself-contained firefox search plugins august , firefoxsearchpluginsxsltfirefox search plugin template for a movable type weblog august , firefoxmovabletypesearchpluginstalk to google august , googleprivacyextracting microcontent (xslt, grddl, rdf) august , firefoxgreasemonkeymicrocontentrdfsome handy links for del.icio.us august , deliciouscoins to crossref resolver script august , coinsgreasemonkeymicrocontentopenurla better cite bookmarklet august , bookmarkletcitemicrocontentadding to last.fm with greasemonkey august , flittergreasemonkeylast.fmmusictorrentbot additions august , torrentbotturning a java jar into an application bundle (os x) august , jackson & his computer band (a test of bleep.com's web tools) august , hide flickr comments from specific users august , flickrgreasemonkeyplayr atom feed august , atomplayrpandora august , musicaudioscrobbler & last.fm relaunch august , audioscrobblerlast.fmdel.icio.us firefox extension security update august , deliciousfirefoxpodule # august , musicpodulesserver speed august , debianntrstng (os x) august , flickrperlhide flickr comments (greasemonkey) august , flickrgreasemonkeypublication of cytokines august , converting rtf to plain text (os x) july , osxgatherers of the month # july , deliciousmaking a big old map july , perlplayr's mp blogs section july , playrpodcastsopenurl coins july , coinsopenurlpodule # july , musicpodulesbbc air time july , bbcvisualisationatom . in hubmed july , atomfeedshubmedlinux applications july , linuxsoftwareubuntufirefox form widgets in os x july , firefoxosxatom . july , atomfeedsinsecure rss encryption july , greasemonkeysecuritydel.icio.us inbox in firefox's sidebar july , deliciousfirefoxos x url handler to open links to local files july , applescriptosxwordpressflickr pro accounts july , almost everything about hubmed july , hubmedstatistics in nature immunology july , publishingstatisticsitunes podcasts june , itunesplayrpodcastsextracting microcontent june , greasemonkeymicrocontentit's about the catalogue june , musicp peasynewzbin june , greasemonkeyhubmed tag storage june , hubmedtaggive us a big back! june , cssfirefoxspotlight june , osxsemantic weblog posts with movable type june , movabletyperdftv june , tvmore feeds please, vicar june , feedsclient-side m u generation june , playrgoggle update may , googlegreasemonkeyoperation d-elite may , p pweb assistants may , firefoxrdf data in hubmed may , hubmedpiggybankrdfparis may , mapsparisg.w.a. may , googleprivacyfof may , feedonfeedsabout reviews and microformats may , microcontentreviewsconcatenating multiple mp s into one big playable mp may , musicsoftwarepodules may , musicpodcastspodulestag search may , searchtagbagram may , m.i.a. loop may , musicgoggle may , firefoxgooglegreasemonkeyscreencast of hubmed and bibdesk may , bibliographyhubmedscreencastpubmed rss may , automator plug-ins may , osxgot adblock? may , firefoxopen sourcing apis april , opensourcethe hype machine april , musicemail reply notifications (mail and growl) april , applescriptgrowlosxhow to get a firefox that works (os x) april , firefoxosxtargeted advertising april , cssnetnewswireplay lhb daily downloads april , playrbrowser anti-aliasing april , firefoxitems for consideration april , bibliographyidentifiersopenurlsidєɳotÑ” april , osxsoftwareskinning del.icio.us with firefox and uriid april , deliciousfirefoxfirefox search plugin for audioscrobbler april , audioscrobblerfirefoxsearchpluginssend me a file april , gpgjavascript benchmarks april , firefoxosxsafariswitching from safari to firefox april , firefoxosxfirefox search plugin installer april , firefoxsearchpluginsbest albums of april , musicreviewsprefetch google ad links april , googlegreasemonkeynew rvw! april , deliciousreviewsdeliciousify audioscrobbler april , audioscrobblerdeliciousgreasemonkeylesinrocksparis march , concertsfeedsparisflash + xspf in playr march , xspfupcoming api march , tv march , tvupdates march , why upcoming.org isn't more popular march , upcomingopensearch march , feedssearchflitter v . march , flittersearchgive me all your cookies march , greasemonkeyopenurl resolver bookmarklet march , bookmarkletopenurladd search links to audioscrobbler artist pages march , audioscrobblerbookmarkletgreasemonkeyartist popularity in specific countries march , audioscrobblermusicvisualisationremove pdf delay for journal articles march , pithhelmethubmed utf- export march , bibtexhubmedrisutf- us vs uk band popularity february , audioscrobblermusicvisualisationblackwell's 'author pays' publishing february , biomedicalskip sourceforge delay page february , pithhelmethide selected content with css (in the future) february , cssnetnewswiressl certificates for apache , courier, exim and jabberd on debian february , debiansslxml-based book authoring february , softwaresubversionwordpress . february , softwarewordpresschilibot february , biomedicaldatavisualisationradio rss feeds february , bbcfeedsradiobd graphit floating (modified) style for netnewswire february , cssnetnewswiretorrentbot moved february , torrentbotsorted lists of reviews, using rvw! and del.icio.us february , deliciousreviewsflickrdesk update february , flickrsoftwaresorting del.icio.us/popular february , bookmarkletdeliciousmap interfaces february , googlemapsgre.gario.us february , deliciousdynamic openurl resolver links february , openurlpubmed tabs and amplify february , biomedicalosxpubmedsoftwaremy speediest gatherers february , deliciousgatherers of the month february , deliciousswervedriver oddities february , musicpithhelmet hubmed redirect january , hubmedpithhelmetordnance survey copyright annoyance (again) january , mapsmfeeds january , feedsmusicplayrbeagle january , linuxsoftwarewpa january , ubuntumore paris rss feeds january , feedsparisoclc software contest january , a 's street photos january , mapsgraph del.icio.us subscriptions network january , deliciousvisualisationgraph del.icio.us related tags january , deliciousvisualisationexplosion january , playrm ucast update january , m ucastosxplayrsoftwaregames toplist january , deliciousblogresearch toplist january , deliciousmp blog toplist january , deliciousmusicyesterday's kexp january , musicradioflitter with del.icio.us links january , deliciousflitterlugradio interviews mark shuttleworth january , radioubuntucoral too slow january , p pplayrflitter with band photos january , flitterflickrdesk update january , flickrsoftwarejavascript drag-and-drop ordered lists january , javascriptunshuffly ipod january , svg maps from pdf january , mapspdfsvgxspf + swf january , xspflistmania january , liststechnorati touchgraph january , touchgraphvisualisationa mini svg map january , mapsparissvgupcoming.org for paris concerts january , feedsparisupcomingbreezy listening january , flitter bookmarklet january , flitteritunes music store gift certificates january , musicp pbands of january , musicbe the coolest december , bookmarkletdeliciouscatching up december , feedsmusicp ptvlocalopenurl and localsfx for hubmed pages december , openurlxslt export from omnioutliner pro december , osxsoftwarexsltparis concerts rss feed update december , concertsfeedspariscompiled live swervedriver albums december , search a restricted set of feeds december , feedssearchgoogle reviews december , googlereviewswi-fi ipod december , musicp phubmed tutorials? december , hubmedamiga emulation december , emulationwindows applications december , softwarewindowsvennmaster december , biomedicalvisualisationworlds apart december , musicflitter december , musicmusic in del.icio.us december , playlistshorizontal amazon music thing december , amazonpricenoia december , amazonucomics atom feeds for netnewswire november , feedperlgoogle scholar bookmarklet november , bookmarklettouchgraph browser for amazon citations november , touchgraphciteseer oai compliance november , citeseertouchgraph browser for google scholar november , googletouchgraphvisualisationpaper cd case november , john peel's final show november , musicadium groupchats november , links to google scholar november , free shipping for books at amazon france november , more tv november , mark steel lectures november , os x applications november , osxclusty pubmed november , dowser november , momentum november , citeulike november , a decent setup for writing (os x, with latex) november , sending files from one computer to another november , motorcasting november , fluxpod november , visitors october , flickrdesk: daily updated desktop pictures from flickr (os x) october , define the lie october , netgear wg fs and airport express on ubuntu october , ubuntu october , m ucast october , desktop pictures from flickr, using magpie and os x october , making podcasts from mp blogs october , what's in your menubar? october , realplayer update october , fulltext links from hubmed october , must... resist... october , torrentbot missed episodes september , bookmarklets september , review sites reviewed september , reviewsfirefox extensions updated september , glit_ september , hercules/powervr drivers september , storing or aggregating microcontent september , netnewswire . beta september , feed your reader september , mp .com community features september , albums for people who are bored of music september , deliciouspresidential candidates on science september , a buttload of bootlegs september , bootlegsnew web software releases september , softwaremolecular systems biology - a new open access journal from npg september , open-accessmedical literature info sorting overload september , aggregate feeds as impromptu record labels september , musicdivision of laura lee september , musicgoogle vs medline september , pubmedthe return of stg september , p pdocco september , documentssearchvisualisationdiebold's tamper-conducive vote counter august , securitycoral august , cachedata retention august , googleartificial meme tracking august , memenobel laureates call for open access to public-funded research august , open-accessthe p challenge august , radiofactory resetting an airport express august , appleibook/powerbook + ipod rebate august , appledevendra banhart august , musicthings google knows about you august , googleblogger's next blog tour august , ingentaconnect august , rss munging with urchin august , aws . beta august , rilo kiley + others august , i wish i had a tripod august , the guardian digital music survey august , alac droplet august , some people say 'tax the rich' august , audio channelling august , osxplanet is fantastic august , flac → alac august , what to do if you're running out of bandwidth august , rss feeds of playlist recommendations from playr august , inducement to hymn august , justeport streams audio to an airport express august , create a wishlist of videos to rent august , allmusic desertion august , caching media files august , brain hacks august , joggle tellybot august , tagged reviews august , cover art in del.icio.us rss feeds august , sidebar stars august , meme destruction project august , rvw! tool repurposed august , deliciousreview of an airport express august , allconsuming book list july , connected bands july , cross-cluster navigation july , nodule organiser july , hallowed be thy game july , punk voter playlist july , pagerank sites july , pubmed search field tags july , pdf warning from css july , a . gb torrent july , open source + television july , drm denial july , cachem u july , mobile rfid reader july , feed autodetection in firefox july , ipapers july , biomail july , omg - nomusic july , html wget m u mpg july , bbc news video console july , wget m u playlist files july , mp blog playlists july , simpler todo rss feed july , music to go to sleep by july , audioscrobbler browser bugfix july , twitch july , crossref/google search july , choose your open access with springer july , a ghost is born july , realplayer beta for os x july , getting the web out of the browser july , data auto-detection in browsers july , identifying papers with content hashes june , ris format confusion june , document publishing diagram june , hubmed.org june , apple tiger june , compressing pdfs containing colour images june , server switch june , mail.app, imap and courier june , torrentbot updates june , live music from the sonar festival june , webjay alarm clock june , clevercactus share june , soap interface for e-utilities june , suprnova discographies (-ish) feed june , firefox . june , favourite albums at/of the moment june , os x root email account forwarding june , rvw . june , jem archives june , blogdigger media june , muziekhobbyist webradio june , your kids need drugs june , pocket radio june , goliath x june , scopus links from hubmed june , drupaled and drupalblog june , ome june , hubmed history tab june , music file data hashes june , all back to mine may , rvw! formatter may , détente may , boosh on tv may , elsevier author self-archiving may , server co-op may , pnas offers open access option may , real bbc radio may , that man will not hang may , bastet may , swervedriver may , mp .com may , safari vulnerability may , google groups atom feeds may , printing from windows to a shared cups printer on panther using samba may , endnote incompatibility may , infomediaries may , sente: like itunes, for biomedical literature may , penance soirée may , red cross reports may , dropload may , fillable, home-networked file servers may , hubmed search box may , rss feeds for new album releases may , rock ahoy may , a big red blip may , synchronized multimedia working group may , printer sharing may , the golden apples of the sun may , hey hey k may , franz ferdinand - - may , prefuse visualisation toolkit may , electric chill noise may , searching scientific papers online may , unbinding may , ipod pricing may , returned-to albums may , fnac listings in paris concerts rss feed may , be not afraid april , blosxom april , itunes . april , flickr photo badging april , geneinfoviz april , inline del.icio.us april , random mp .com playlist april , inline musilog april , academic pdf workflow april , collaborative playlists april , current advantages of im clients april , follow mouse focus in x windows april , dafont april , lab notebook database system april , genotyping a meme april , os x fonts in gtk /gimp april , google ads april , unicode vs latin- april , pixies reunion show april , pdf browser plugin april , culturepool april , imagemagick april , musicompass april , tv torrent/rss automation april , spillsbury april , fibonacci ratios and musical intervals april , a shared word processor-bibliographic manager interface april , musiclogging from winamp april , torrentbot pt april , torrentbot april , smell the satire april , musiclogging april , mltorrents bookmarklet april , wonderfalls april , ml_www april , outcesticide set april , the live music archive is huge april , repaying generosity april , bittorrent command line client on os x april , bitcollider april , entrez search updates april , mediaseek april , link extraction bookmarklet for webjay march , user-centric data services march , aibrainz march , amg new releases march , gimp.app march , album cover art tagging for windows march , tv shows march , openurl router march , text mining march , science commons march , remembering konspire march , music ownership in an open, online database march , perlprimer march , music publishers, sales and metadata march , atomly march , hubmed svg graphs march , free software directory march , liars march , playr update march , time shifting march , pyget***** march , shn and flac tools march , x on os x march , acknowledgements march , latex add-ons march , latex for dummies march , latex for the modern age march , how to find (more of) what you want march , ipod whamb skin with volume march , join groups, find better music march , propa' mash-up ragga-rave dubplate bloodclot jungle tekno tour-de-force march , semantic hifi march , document handling linkdump march , /cores march , sparklines march , closed-access data from open-acces publications march , hubmed atom feeds march , power laws and purchasing priorities february , one world in march february , audioscrobbler browser update february , darkplace february , reviewskimya dawson february , netlabel catalogue february , releasing mac word . february , groupthinking, but on which side? february , the advancement of science and culture february , ranchero's big cat scripts plugin february , movable type 'edit this entry' bookmarklet february , advancemame february , zoom player february , latex february , gtk/panther february , ram february , yahoo search bookmarklet february , mperia february , jukebox mp collection for £ . february , recommend playlists with flickr february , berlin bastard lesson february , raster noton february , reviewr february , reviewssubviral rna february , america's sweetheart february , dear microsoft word february , listening post february , deepvacuum [os x] february , throttled [os x] february , citespace february , open-source audio, tools for endless music [os x] february , omniamea february , endnote pubmed import filter february , compiling an mp -playing helix client on panther february , helix developer grants february , netnewswire has no atom february , ecto final january , betterpropaganda january , quicktime for m u january , kazaa/kapsule test needed january , emotilinks january , usb floppy drive with red hat linux january , install classic after panther january , primer design for cdna amplification january , vienna rna january , it's called i like january , webjay.org january , nothing in return january , playlist bookmarklet update january , sente january , automatically update itunes library with daapd january , earth map desktop january , macgde january , musicplasma january , itunes music store rss generator january , mtcommentauthorlink january , m u playlists page january , artemis sequence viewer january , itunes opener january , jpegs progress january , pick of the bastard pops january , realplayer installation january , copper, prions and tse january , suprnova rss feed january , hubmed print-friendly pages january , scientific stories january , mp to m u or smil playlist january , return of the mac january , kx project and avg january , firebird tabbrowser extensions january , morality of software patches january , transmission january , pitchfork singles of january , are you feeling throaty? january , & free hosting january , largehearted boy january , what a difference a year makes january , linking to musicbrainz january , fountain of youth january , collections of music files from distributed sources january , trying this again january , ibook display problems? january , festive fifty january , happy new year january , some contributions to saving the internet december , who represents my points of view december , scientists for dean december , social software interfaces december , movable type plugins december , using religion for aggression december , playlist distribution december , gpsweb december , rpxp web service december , mldonkey [os x] december , vocal removal december , pester december , make gtk apps pretty december , mad plugin eats track numbers december , the signaling gateway december , movable type on windows xp december , xstream radio december , sourceforge december , no fink december , fluorescence microscopy movies december , gofigure december , rumoured demise of biomednet december , semblogbibman december , not safe for work december , rdf for last played tracks, via audioscrobbler december , mp blogs are switched on december , rss feed for paris concerts december , google irregularity december , festival octopus december , azureus december , day audio december , kid video december , album continuum december , laptop dj december , firebird [os x] december , playlist tracklisting update december , weasel december , electromagnetism december , qotsa/kyuss circle of collaboration december , musictouchgraphbbc radio interface november , the shins on kcrw november , unfree the music november , movable type spam vulnerability november , french-speaking weblog rankings november , qtfairuse november , got foaf november , cgi_buffer november , blam for trial november , vorbis updates november , bibdesk november , the perfect email november , singingfish november , glc november , bleep.com november , free- or donation-ware updates for panther november , you will require... november , xml for individual entries november , eugene garfield commentaries november , styling rss with css to make it browser-friendly november , scidev open access section november , reviews-enabled movable type november , sublime electronica november , excel add-in to remove low numbers november , fixed the blaxm reviews exchange november , blogware with reviews metadata november , a tune called grin october , longhorn october , itunes playlist hint october , facil-o-smil update for m u and cc october , phrase searching in pubmed october , the knowledge society october , flowjo october , wow. a big clock. october , playlouder msp october , soulseek recommendations october , winamp october , pdc pokemon october , fink upgrade for gcc . october , google glossary october , plos biology october , chutes too narrow october , constant playlist october , facil-o-smil october , weed october , gnu privacy guard october , os x im: msn is on october , plos biology trackbacks in hubmed october , plos biology october , from the ashes october , stop the leaks october , tuna october , empty pages in search results october , steam [os x] october , calendar events from xhtml october , sound october , in defence of open access october , emusic pricing changes october , digital accretion october , daily mp s from pitchforkmedia october , albums of the year (so far) october , dynamo playlist october , pure data dsp software october , open source democracy october , bad spiders october , mercora october , boom selected october , headcloud october , flat-fee p p model october , neuro-info-transmitters october , what's on my docks? october , metadata in the metaweblog api october , rdf review vocabulary october , the wellcome trust supports open access october , shareable playlists october , bloglines recommendations october , mini-links rss feed september , research mapper september , downstream september , iwebcal september , dynamic event files september , freak up, look smart september , x goodies september , export an event from a web page to ical september , terminally ill september , ical events from web pages september , fingertips september , natureevents september , kde september , share the music september , jumbled words september , equinox september , syncato september , wsil for blogroll autodiscovery september , tv listings and audio streaming licensing september , worst jobs in science september , digital marketplace summary september , uk data surveillance measures september , intellectual is not physical september , collective payment september , icaris september , the importance of open access for semantic research september , devonagent [os x] september , polished turds september , fame *and* fortune (if you're good enough) september , open source bibliography format september , biologging september , science and religion forum september , scientific publishing september , konspire radio channel september , subscribe to comments september , trackbacks september , nicotine september , waypath september , my.pubmed rss feeds september , musical interlude september , biotech protocols september , smokescreen september , openam.com subdomains august , armagetron tron clone august , netnewswire with webkit august , fun with xmltv august , peel sessions august , the return of openam august , bbc creative archive august , radiolaw enforcement against prohibition august , earthstation august , msn network rejigged august , tofu august , album cover artwork august , freakmachine august , human knowledge navigator august , peer review under scrutiny august , tools for handling information august , mcode august , classification of associations august , morale-o-meter august , miranda im august , prism for rdf august , who's going to pay? august , perception august , blufilter august , trillian pro . beta august , protein interaction browser august , music browser repaired august , august , jobs as rss extensions august , quick release august , test august , openam linking july , rock-it launcher july , aol journals july , myths and legends of file sharing july , os x show desktop july , the same thing, again july , digital sales network july , yapc july , buy back continues july , blosxom.com july , vague memories july , amazon tracks search box july , perl culture july , we're all going straight to hell :-) july , biomed central links july , faculty of links july , open bibliography software july , musical artifacts july , wiretap july , the marigolds july , the holy grail july , audioscrobbler + last.fm july , safari fullscreen bookmarklet july , biomed central articles in one big zip july , negative feedback on ebay july , copyright for scientific papers in eprint archives july , performance at the cost of expansibility july , i (heart symbol) mp july , when fireworks attack july , online electronic hardware stores july , touchgraph livejournal browser july , zane lowe on radio july , clutter update july , endnote v july , rss legacy july , did you know? july , open access conference reports june , phone gps june , searching for the social benefits of technological progress june , eff seeks p p licensing scheme june , cites and insights july june , public access to science act june , blosxom rating plugin june , pithhelmet june , nitle blog census api june , blogs ! us june , concept clustering june , molecular graphics on os x june , how i got soulseek to work on os x june , handy hints june , public library of science june , id card consultation figures june , nature pdf content extraction june , openurl draft standard june , politics and the english language june , four tet favourites june , costs of illicit mp downloading june , spoogefest june , unicode characters in hubmed june , paid for software june , site redesign june , ontologies in scientific research june , concert listings june , pdf annotation june , spared from internet hell june , political positioning june , technicalities of a p p music market june , modelling social interactions june , andromeda on os x may , back on track may , rvw specification may , jack valenti says may , kast/konspire b may , come together may , emergence may , itunes script may , emusic signs beggars group may , principles of emergent democracy may , lo-fi may , jabber notification of new referrers may , lamebrain may , kwiki and voodoopad may , music recommendations may , technorati api in blaxm! may , if they want to do this the hard way... may , sfx/openurl interview may , advertoys may , nodalpoint - moderated bioinformatics papers from pubmed may , rvw success may , test review for rvw markup in rss . may , photopal may , geograffiti may , rvw format in rss . may , video sans frontieres may , the scientist in rss may , rvw format in rss may , arrowsmith may , winamp aac/mp input plugin may , isuck may , itunes, again may , global friendster visualisation may , peer-to-peer search spidering may , drm within aac files may , processing soda may , improving science through online commentary may , rvw standard metadata format for reviews may , dj martian's page may , itunes download may , fos news catchup may , scrobbleyou may , on the wire may , emusic upgrade may , itunes may , electric six - fire april , itunes music store top downloads april , cd industry seeks niche april , echocloud april , music licensing april , semantic blogging demonstrator april , modular, extensible rdf april , touchgraph audioscrobbler browser april , antisocial behaviour in online communities april , laszlo april , the world live web april , finding people april , the wipers - box set -- is this real april , librarians on the offensive april , environmental noise retards auditory cortical development april , the liberation will not be nationalised april , fire with intent april , thinkbot april , globe alive april , journal of mammalogy april , open access april , equator april , last.fm april , completion of the human genome project april , rdf braindump april , wavefinder, dab april , microsound april , sumeria april , george boosh april , terrestrial jukebox april , not content april , summarise this april , queens of the stone age - feel good hit of the summer april , many to many april , digital video april , digital music streaming april , an excellent lab web page april , w c drafting, drifting april , internet explorer april , winamp . april , phoenix april , clarity of writing april , a miscommunication with civilians april , a few blam! and blaxm! updates april , not in my name ++ april , some radio shows april , automata and visualisation april , complexity digest rss april , political fiction april , distributing music on plastic discs one album at a time april , discussion from cto forum april , blueprint for phased access journals april , mp ripping and encoding benchmark april , new clinic album april , a tune april , rock & roll library april , more sites on sticks april , the day music became priceless april , blaxm!, foaf, rss march , mp track ids march , death of an activist march , iraqi opposition march , web applications march , anacubis visual google march , beos file system with metadata for os x march , bioinformatrix march , acromed march , foaf browser march , thinkbot march , lock down march , empire march , a global discussion forum, by invitation only. march , techgnosis march , blam! + radio march , blam! + blogger march , xnap hint for os x march , standardised review metadata march , blam! + moveable type march , oai searches from hubmed march , newzcrawler update march , imdb moveabletype hack march , amazon cd track listings march , not unexpectedly pleasant march , blam!: amazon review creator march , research buy-back march , endnote march , mp sushi march , but why? march , making money march , sciencedirect backfiles march , a simplified valuation of commoditised art march , apple java hooray march , ibook usb fm radio tuner march , more mini-things march , digital collection and peer review march , spirographx march , biopedia march , the ends of the internet march , biologging part march , oral traditions in online communication march , value of music march , biologging march , spiders march , citation trackbacks march , keyboard shortcuts march , giftbox march , cnps march , allabstracts bookmarklet march , citation maps february , science citation index february , medscape headlines in rss february , iscrobbler february , open access literature part iii february , open access literature part ii february , visualisations of political polarisation february , better late than never february , andromeda/php on os x february , open access literature february , hublink february , allmusic-to-magnet-uri bookmarklet february , semantic blogging and bibliographies february , linking services february , nice titles february , endnote import filter updated february , endnotehubmedexceptions to copyright february , latent semantic indexing february , fair use february , proper p p february , taking the internet outside february , the infography february , safari cookies february , cookiessafaritoc alerts january , alertsnewsreaderpushrsszetoc evaluation january , paratools january , citationparaciteparsingintegrated comments and trackbacks january , commentstrackbackfixed touchgraph scripts january , applettouchgraphvisualisationcitation parser update january , citationparsereferencescollaboration network browser january , analogies with trackback variants january , analogiesbiomedicalliteraturenetworksself-organisingtrackbackmake a list january , collaborativelisttrackbackweblogedina join-up january , openurlcitation matcher updated for multiple references january , citationparseris citation export file suffix january , exportfileriscitation matching january , citationopcitparsehublog rss update january , hublogrsstrackback january , trackbackalternative software for community-driven literature management january , blogcommunitysitesoftwarepersonal/group publishing january , knowledgeliteraturepersonalpublishingwebimmunolog launched january , collaborativejournaljoining the dots - advances in online biomedical literature management. january , biomedicalknowledgeliteraturemanagementsafari, touchgraph update january , touchgraphsfx lookup bookmarklet january , bookmarkletsfx - - : perl scripts for organising pdfs january , acrobatperl - - : library lookup issn bookmarklet january , bookmarkletlibrarylookup - - : experimental links january , citationdoi - - : gnutella p p january , gnutellamagnetp p - - : bibtex output january , bibtexpubmed - - : endnote and ris import filters january , endnoteexportpubmed - - : related articles algorithm january , articlespubmedrelated - - : linkout urls january , fulltextlinkoutpubmed - - : pubmed javascript january , javascriptpubmed - - : hubmed online. january , perlpubmedutilitiesxml none a quantitative analysis of the impact of arbitrary blockchain content on bitcoin roman matzutt , jens hiller , martin henze , jan henrik ziegeldorf , dirk müllmann , oliver hohlfeld , and klaus wehrle communication and distributed systems, rwth aachen university, germany, {matzutt,hiller,henze,ziegeldorf,hohlfeld,wehrle}@comsys.rwth-aachen.de data protection research institute, goethe university, frankfurt/main, muellmann@jur.uni-frankfurt.de abstract. blockchains primarily enable credible accounting of digital events, e.g., money transfers in cryptocurrencies. however, beyond this original purpose, blockchains also irrevocably record arbitrary data, rang- ing from short messages to pictures. this does not come without risk for users as each participant has to locally replicate the complete blockchain, particularly including potentially harmful content. we provide the first systematic analysis of the benefits and threats of arbitrary blockchain content. our analysis shows that certain content, e.g., illegal pornogra- phy, can render the mere possession of a blockchain illegal. based on these insights, we conduct a thorough quantitative and qualitative anal- ysis of unintended content on bitcoin’s blockchain. although most data originates from benign extensions to bitcoin’s protocol, our analysis re- veals more than files on the blockchain, over % of which are texts or images. among these files there is clearly objectionable content such as links to child pornography, which is distributed to all bitcoin partic- ipants. with our analysis, we thus highlight the importance for future blockchain designs to address the possibility of unintended data insertion and protect blockchain users accordingly. introduction bitcoin [ ] was the first completely distributed digital currency and remains the most popular and widely accepted of its kind with a market price of ∼ usd per bitcoin as of august st, [ ]. the enabler and key innovation of bit- coin is the blockchain, a public append-only and tamper-proof log of all transac- tions ever issued. these properties establish trust in an otherwise trustless, com- pletely distributed environment, enabling a wide range of new applications, up to distributed general-purpose data management systems [ ] and purely digital data-sharing markets [ ]. in this work, we focus on the arbitrary, non-financial data on bitcoin’s famous blockchain, which primarily stores financial transac- tions. this non-financial data fuels, e.g., digital notary services [ ], secure re- leases of cryptographic commitments [ ], or non-equivocation schemes [ ]. however, since all bitcoin participants maintain a complete local copy of the blockchain (e.g., to ensure correctness of blockchain updates and to bootstrap new users), these desired and vital features put all users at risk when objection- able content is irrevocably stored on the blockchain. this risk potential is exem- plified by the (mis)use of bitcoin’s blockchain as an anonymous and irrevocable content store [ , , ]. in this paper, we systematically analyse non-financial content on bitcoin’s blockchain. while most of this content is harmless, there is also content to be considered objectionable in many jurisdictions, e.g., the depic- tion of nudity of a young woman or hundreds of links to child pornography. as a result, it could become illegal (or even already is today) to possess the block- chain, which is required to participate in bitcoin. hence, objectionable content can jeopardize the currently popular multi-billion dollar blockchain systems. these observations raise the question whether or not unintended content is ultimately beneficial or destructive for blockchain-based systems. to address this question, we provide the first comprehensive and systematic study of unin- tended content on bitcoin’s blockchain. we first survey and explain methods to store arbitrary, non-financial content on bitcoin’s blockchain and discuss poten- tial benefits as well as threats, most notably w.r.t. content considered illegal in different jurisdictions. subsequently and in contrast to related work [ , , ], we quantify and discuss unintended blockchain content w.r.t. the wide range of insertion methods. we believe that objectionable blockchain content is a pres- suring issue despite potential benefits and hope to stimulate research to mitigate the resulting risks for novel as well as existing systems such as bitcoin. this paper is organized as follows. we survey methods to insert arbitrary data into bitcoin’s blockchain in section and discuss their benefits and risks in section . in section , we systematically analyze non-financial content in bitcoin’s blockchain and assess resulting consequences. we discuss related work in section and conclude this paper in section . data insertion methods for bitcoin beyond intended recording of financial transactions, bitcoin’s blockchain also allows for injection of non-financial data, either short messages via special trans- action types or even complete files by encoding arbitrary data as standard trans- actions. we first briefly introduce bitcoin transactions and subsequently survey methods available to store arbitrary content on the blockchain via transactions. bitcoin transactions transfer funds between a payer (sender) and a payee (receiver), who are identified by public-private key pairs. payers announce their transactions to the bitcoin network. the miners then publish these transactions in new blocks using their computational power in exchange for a fee. these fees vary, but averaged at satoshi per byte during august [ ] ( satoshi = − bitcoin). each transaction consists of several input scripts, which unlock funds of previous transactions, and of several output scripts, which specify who receives these funds. to unlock funds, input scripts contain a signature for the previous transaction generated by the owner of the funds. to prevent malicious scripts from causing excessive transaction verification overheads, bitcoin uses transaction script templates and expects peers to discard non-compliant scripts. data insertion methods input scriptsoutput scripts p pk p pkh p shp ms p sh injectors satoshicryptograffiti apertus standardop_ret. non-st. coinbase p shnon-st. fig. : bitcoin data insertion methods (italics show content insertion services) method payload costs/b eff. op ret. b . – . ct poor coinbase b — poor non-st. out. b . – . ct poor non-st. in. med. p pk b . – . ct high p pkh b . – . ct high p ms b . – . ct high p sh out. b . – . ct high p sh in. b . – . ct high table : payload, costs, and efficiency of low-level data insertion methods figure shows the insertion methods for non-financial data we identified in bitcoin. we distinguish low-level data insertion methods inserting small data chunks and content insertion services, which systematically utilize the low-level methods to insert larger chunks of data. in the following, we refer to non-financial blockchain data as content if it has a self-contained structure, e.g., a file or read- able text, or as data otherwise, e.g., fragments inserted via a low-level method. . low-level data insertion methods we first survey the efficiency of the low-level data insertion methods w.r.t. to in- sertable payload and costs per transaction (table ). to this end, we first explain our comparison methodology, before we detail i) intended data insertion meth- ods (op return and coinbase), ii) utilization of non-standard transactions, and iii) manipulation of standard transactions to insert arbitrary data. comparison methodology. we measure the payload per transaction (ppt), i.e., the number of non-financial bytes that can be added to a single standard- sized transaction (≤ b). costs are given as the minimum and maximum costs per byte (cpb) for the longest data chunk a transaction can hold, and for inserting b. costs are inflicted by paying transaction fees and possibly burning currency (at least satoshi per output script), i.e., making it unspendable. for our cost analysis we assume bitcoin’s market price of . usd as of august st, [ ] and the average fees of satoshi per byte as of august [ ]. note that high variation of market price and fees results in frequent changes of presented absolute costs per byte. finally, we rate the overall efficiency of an approach w.r.t. insertion of arbitrary-length content. intuitively, a method is efficient if it allows for easy insertion of large payloads at low costs. op return. this special transaction template allows attaching one small data chunk to a transaction and thus provides a controlled channel to an- notate transactions without negative side effects. e.g., in typical implementa- tions peers increase performance by caching spendable transaction outputs and op return outputs can safely be excluded from this cache. however, data chunk sizes are limited to b per transaction. coinbase. in bitcoin, each block contains exactly one coinbase transaction, which introduces new currency into the system to incentivize miners to dedi- cate their computational power to maintain the blockchain. the input script of coinbase transactions is up to b long and consists of a variable-length field encoding the new block’s position in the blockchain [ ]. stating a larger size than the overall script length allows placing arbitrary data in the resulting gap. this method is inefficient as only active miners can insert only small data chunks. non-standard transactions. transactions can deviate from the approved transaction templates [ ] via their output scripts as well as input scripts. in the- ory, such transactions can carry arbitrarily encoded data chunks. transactions using non-standard output scripts can carry up to . kib at comparably low costs. however, they are inefficient as miners ignore them with high probability. yet, non-standard output scripts occasionally enter the blockchain if miners in- sufficiently check them (cf. section . ). contrarily, non-standard input scripts are only required to match their respective output script. hence, input scripts can be altered to carry arbitrary data if their semantics are not changed, e.g., by using dead conditional branches. this makes non-standard input scripts slightly better suited for large-scale content insertion than non-standard output scripts. standard financial transactions. even standard financial transactions can be (mis)used to insert data using mutable values of output scripts. there are four approved templates for standard financial transactions: pay to public-key (p pk) and pay to public-key hash (p pkh) transactions send currency to a dedicated receiver, identified by an address derived from her private key, which is required to spend any funds received [ ]. similarly, multi-signature (p ms) transactions require m out of n private keys to authorize payments. pay to script hash (p sh) transactions refer to a script instead of keys to enable complex spending conditions [ ], e.g., to replace p ms [ ]. the respective public keys (p pk, p ms) and script hash values (p pkh, p sh) can be replaced with ar- bitrary data as bitcoin peers can not verify their correctness before they are ref- erenced by a subsequent input script. while this method can store large amounts of content, it involves significant costs: in addition to transaction fees, the user must burn bitcoins as she replaces valid receiver identifiers with arbitrary data (i.e., invalid receiver identities), making the output unspendable. using multi- ple outputs enables ppts ranging from . kib (p pkh) to . kib (p sh inputs) at cpbs from . ct to . ct. as they behave similarly w.r.t. data in- sertion, we collectively refer to all standard financial transactions as p x in the following. p sh scripts also allow for efficient data insertion into input scripts as p sh input scripts are published with their redeem script. due to miners’ verification of p sh transactions, transaction are not discarded if the redeem script is not template-compliant (but the overall p sh transaction is). we now survey different services that systematically leverage the discussed data insertion methods to add larger amounts of content to the blockchain. . content insertion services content insertion services rely on the low-level data insertion methods to add content, i.e., files such as documents or images, to the blockchain. we identify four conceptually different content insertion services and present their protocols. cryptograffiti. this web-based service [ ] reads and writes messages and files from and to bitcoin’s blockchain. it adds content via multiple p pkh output scripts within a single transaction, storing up to kib of content. to retrieve previously added content, cryptograffiti scans for transactions that either con- sist of at least % printable characters or contain an image file. satoshi uploader. the satoshi uploader [ ] inserts content using a single transaction with multiple p x outputs. the inserted data is stored together with a length field and a crc checksum to ease decoding of the content. p sh injectors. several services [ ] insert content via slightly varying p sh input scripts. they store chunks of a file in p sh input scripts. to ensure file integrity, the p sh redeem scripts contain and verify hash values of each chunk. apertus. this service [ ] allows fragmenting content over multiple transac- tions using an arbitrary number of p pkh output scripts. subsequently, these fragments are referenced in an archive stored on the blockchain, which is used to retrieve and reassemble the fragments. the chosen encoding optionally allows augmenting content with a comment, file name, or digital signature. to conclude, bitcoin offers various options to insert arbitrary, non-financial data. these options range from small-scale data insertion methods exclusive to active miners to services that allow any user to store files of arbitrary length. this wide spectrum of options for data insertion raises the question which benefits and risks arise from storing content on bitcoin’s blockchain. benefits and risks of arbitrary blockchain content bitcoin’s design includes several methods to insert arbitrary, non-financial data into its blockchain in both intended and unintended ways. in this section, we discuss potential benefits of engraving arbitrary data into bitcoin’s blockchain as well as risks of (mis)using these channels for content insertion. . benefits of arbitrary blockchain content besides the manipulation of standard financial transactions, bitcoin offers coin- base and op return transactions as explicit channels to irrevocably insert small chunks of non-financial data into its blockchain (cf. section ). as we discuss in the following, each insertion method has distinguishing benefits: op return. augmenting transactions with short pieces of arbitrary data is beneficial for a wide area of applications [ , , ]. different services use op return to link non-financial assets, e.g., vouchers, to bitcoin’s block- chain [ , ], to attest the existence of digital documents at a certain point of time as a digital notary service [ , , ], to realize distributed digital rights management [ , ], or to create non-equivocation logs [ , ]. coinbase. coinbase transactions differ from op return as only miners, who dedicate significant computational resources to maintain the blockchain, can use them to add extra chunks of data to their newly mined blocks. beyond advertisements or short text messages [ ], coinbase transactions can aid the mining process. adding random bytes to the coinbase transactions allows miners to increase entropy when repeatedly testing random nonces to solve the proof- of-work puzzle [ ]. furthermore, adding identifiable voting flags to transactions enables miners to vote on proposed features, e.g., the adoption of p sh [ ]. large-scale data insertion. engraving large amounts of data into the block- chain creates a long-term non-manipulable file storage. this enables, e.g., the archiving of historical data or censorship-resistant publication, which helps pro- tecting whistleblowers or critical journalists [ ]. however, their content is repli- cated to all users, who do not have a choice to reject storing it. hence, non-financial data on the blockchain enables new applications that leverage bitcoin’s security guarantees. in the following, we discuss threats of forcing honest users to download copies of all blockchain content. . risks of arbitrary blockchain content despite potential benefits of data in the blockchain, insertion of objectionable content can put all participants of the bitcoin network at risk [ , , ], as such unwanted content is unchangeable and locally replicated by each peer of the bitcoin network as benign data. to underpin this threat, we first derive an extensive catalog of content that poses high risks if possessed by individuals and subsequently argue that objectionable blockchain content is able to harm honest users. in the following, we identify five categories of objectionable content: copyright violations. with the advent of file-sharing networks, pirated data has become a huge challenge for copyright holders. to tackle this problem, copy- right holders predominantly target users that actively distribute pirated data. e.g., german law firms sue users who distribute copyright-protected content via file-sharing networks for fines on behalf of the copyright holders [ ]. in re- cent years, prosecutors also convicted downloaders of pirated data. for instance, france temporarily suspended users’ internet access and subsequently switched to issuing high fines [ ]. as users distribute their blockchain copy to new peers, copyright-protected material on the blockchain can thus provoke legal disputes about copyright infringement. malware. another threat is to download malware [ , ], which could poten- tially be spread via blockchains [ ]. malware has serious consequences as it can destroy sensitive documents, make devices inoperable, or cause financial losses [ ]. furthermore, blockchain malware can irritate users as it causes an- tivirus software to deny access to important blockchain files. e.g., microsoft’s antivirus software detected a non-functional virus signature from on the blockchain, which had to be fixed manually [ ]. privacy violations. by disclosing sensitive personal data, individuals can harm their own privacy and that of others. this threat peaks when individuals deliberately violate the privacy of others, e.g., by blackmailing victims under the threat of disclosing sensitive data about them on the blockchain. real-world manifestations of these threats are well-known, e.g., non-consensually releasing private nude photos or videos [ ] or fully disclosing an individual’s identity to the public with malicious intents [ ]. jurisdictions such as the whole european union begin to actively prosecute the unauthorized disclosure and forwarding of private information in social networks to counter this novel threat [ ]. politically sensitive content. governments have concerns regarding the leakage of classified information such as state secrets or information that other- wise harms national security, e.g., propaganda. although whistleblowers reveal nuisances such as corruption, they force all blockchain users to keep a copy of leaked material. depending on the jurisdiction, the intentional disclosure or the mere possession of such content may be illegal. while, e.g., the us government usually tends to prosecute intentional theft or disclosure of state secrets [ ], in china the mere possession of state secrets can result in longtime prison sen- tences [ ]. furthermore, china’s definition of state secrets is vague [ ] and covers, e.g., “activities for safeguarding state security” [ ]. such vague allega- tions w.r.t. state secrets have been applied to critical news in the past [ , ]. illegal and condemned content. some categories of content are virtually universally condemned and prosecuted. most notably, possession of child pornog- raphy is illegal at least in the countries [ ] that ratified an optional protocol to the convention on the rights of the child [ ]. religious content such as cer- tain symbols, prayers, or sacred texts can be objectionable in extremely religious countries that forbid other religions and under oppressive regimes that forbid re- ligion in general. as an example, possession of items associated with an objected religion, e.g., bibles in islamist countries, or blasphemy have proven risky and were sometimes even punished by death [ , ]. in conclusion, a wide range of objectionable content can cause direct harm if possessed by users. in contrast to systems such as social media platforms, file-sharing networks, or online storage systems, such content can be stored on blockchains anonymously and irrevocably. since all blockchain data is down- loaded and persistently stored by users, they are liable for any objectionable content added to the blockchain by others. consequently, it would be illegal to participate in a blockchain-based systems as soon as it contains illegal content. while this risk has previously been acknowledged [ ], definitive answers re- quire court rulings yet to come. however, considering legal texts we anticipate a high potential for illegal blockchain content to jeopardize blockchain-based sys- tem such as bitcoin in the future. our belief stems from the fact that, w.r.t. child pornography as an extreme case of illegal content, legal texts from countries such as the usa [ ], england [ ], ireland [ ] deem all data illegal that can be con- verted into a visual representation of illegal content. as we stated in section , it is easily possible to locate and reassemble such content on the blockchain. hence, even though convertibility usually covers creating a visual representation by, e.g., decoding an image file, we expect that the term can be interpreted to include blockchain data in the future. for instance, this is already covered implicitly by german law, as a person is culpable for possession of illegal content if she knowingly possesses an accessible document holding said content [ ]. it is criti- cal here that german law perceives the hard disk holding the blockchain as an document [ ] and that users can easily reassemble any illegal content within the blockchain. furthermore, users can be assumed to knowingly maintain control over such illegal content w.r.t. german law if sufficient media coverage causes the content’s existence to become public knowledge among bitcoin users [ ], as has been attempted by interpol [ ]. we thus believe that legislators will speak law w.r.t. non-financial blockchain content and that this has the potential to jeopardize systems such as bitcoin if they hold illegal content. blockchain content landscape to understand the landscape of non-financial blockchain data and assess its potentials and risks, we thoroughly analyze bitcoin’s blockchain as it is the most widely used blockchain today. especially, we are interested in i) the degree of utilization of data and content insertion methods, ii) the temporal evolution of data insertion, and iii) the types of content on bitcoin’s blockchain, especially w.r.t. objectionable content. in the following, we first outline our measurement methodology before we present an overview and the evolution of non-financial data on bitcoin’s blockchain. finally, we analyze files stored on the blockchain to derive if any objectionable content is already present on the blockchain. . methodology we detect data-holding transactions recorded on bitcoin’s blockchain based on our study of data insertion methods and content insertion services (cf. section ). we distinguish detectors for data insertion methods and detectors for content insertion services. to reduce false positives, e.g., due to public-key hash values that resemble text, we exclude all standard transaction outputs that include already-spent funds from analysis. this is sensible as data-holding transactions replace public keys or hashes such that spending requires computing correspond- ing private keys or pre-images, which is assumed to be infeasible. contrarily, even though we thoroughly analyzed possible insertion methods, there is still a chance that we do not exhaustively detect all non-financial data. nevertheless, our con- tent type analysis establishes a solid lower bound as we only consider readable files retrieved from bitcoin’s blockchain. in the following, we explain the key characteristics of the two classes of our blockchain content detectors. low-level insertion method detectors. the first class of detectors is tai- lored to match individual transactions that are likely to contain non-financial data (cf. section . ). these detectors detect manipulated financial transactions as well as op return, non-standard, and coinbase transactions. our text detector scans for p x output scripts for mutable values containing ≥ % printable ascii characters (to avoid false positives). the detector returns the concatenation of all output scripts of the same transaction that contain text. finally, we consider all coinbase and op return transactions as well as non-standard output scripts. we detect coinbase transactions based on the length field mismatch described in section . . op return scripts are detectable as they always begin with an op return operation. non-standard output scripts comprise all output scripts which are not template-conform. t ra n sa c ti o n s [# ] op ret. coinb. non-st. p x p sh input fig. : cumulative numbers of detected transactions per data insertion method . . . . . . . p re se n c e in t x s [% ] op ret. p x p sh input fig. : ratio of transactions that utilize data insertion methods service detectors. we implemented detectors specific to the content insertion services we identified in section . . these service-specific detectors enable us to detect and extract files based on the services’ protocols. these detectors also track the data insertion method used in service-created transactions. the cryptograffiti detector matches transactions with an output that sends a tip to a public-key hash controlled by its provider. for such a transaction, we concatenate all mutable values of output scripts that spend fewer than satoshi and store them in a file. this threshold is used to ignore non- manipulated output scripts, e.g., the service provider spending their earnings. to detect a satoshi uploader transaction, we concatenate all of its mutable values that spend the same small amount of bitcoins. if we find the first eight bytes to contain a valid combination of length and crc checksum for the transaction’s payload, we store the payload as an individual file. we detect p sh injector content based on redeem scripts containing more than one hash operation (standard transactions use at most one). we then ex- tract the concatenation of the second inputs of all redeem scripts (the first one contains a signature) of a transaction as one file. finally, the apertus detector recursively scans the blockchain for apertus archives, i.e., apertus-encoded lists of previous transaction identifiers. once a referred apertus payload does not constitute another archive, we retrieve its payload file and optional comment by parsing the apertus protocol. suspicious transaction detector. to account for less wide-spread insertion services, we finally analyze standard transactions that likely carry non-financial data but are not detected otherwise. we only consider transactions with at least suspicious outputs, i.e., roughly kib of content. we consider a set of outputs suspicious if all outputs i) spend the same small amount (< satoshi) and ii) are unspent. this detector trades off detection rate against false-positive rate. due to overlaps with service detectors, we exclude matches of this detector from our quantitative analysis, but discuss individual findings in section . . . utilization of data insertion methods data and content insertion in bitcoin has evolved over time, transitioning from single miners exploiting coinbase transactions to sophisticated services that en- able the insertion of whole files into the blockchain. we study this evolution in in se rt io n s/ m o n th [# ] p sh injectors cryptograffiti satoshi uploader apertus fig. : number of files inserted via con- tent insertion services per month t x si z e s [m ib ] p sh injectors cryptograffiti satoshi uploader apertus fig. : cumulative sizes of transactions from content insertion services terms of used data insertion methods as well as content insertion services and quantify the amount of blockchain data using our developed detectors. our key insights are that op return constitutes a well-accepted success story while content insertion services are currently only infrequently utilized. however, the introduction of op return did not shut down other insertion methods, e.g., p x manipulation, which enable single users to insert objectionable content. our measurements are based on bitcoin’s complete blockchain as of august st, , containing blocks and transactions with a total disk size of . gib. we first analyze the popularity of different data inser- tion methods and subsequently turn towards the utilization of content insertion services to assess how non-financial data enters the blockchain. data insertion methods. as described in section . , op return and coinbase transactions constitute intended data insertion methods, whereas p x and non-standard p sh inputs manipulate legitimate transaction templates to contain arbitrary data. figure shows the cumulative number of transactions containing non-financial data on a logarithmic scale. in total, our detectors found transactions carrying a total payload of . mib, i.e., only . % of bitcoin transactions contain non-financial data. however, we strive to further un- derstand the characteristics of non-financial blockchain content as even a single instance of objectionable content can potentially jeopardize the overall system. the vast majority of extracted transactions are op return ( . % of all matches) and coinbase ( . %) transactions. combined, they constitute . mib ( . % of all extracted data). out of all blocks, . % have content- holding coinbase transactions. while only . % of these contain ≥ % print- able text, . % of them contain ≥ consecutive printable ascii characters (mostly surrounded by data without obvious structure). of these short messages, . % contain voting flags for new features (cf. section . ). apart from this, miners often advertise themselves or leave short messages, e.g., prayer verses. op return transactions were introduced in to offer a benign way to augment single transactions with non-financial data. this feature is widely used, as shown by figure . among all methods, op return is the only one to be present with a rising tendency, with currently . % of all transactions containing op return outputs. these transactions predominantly manage off-blockchain assets or originate from notary services [ ]. while p x transactions are contin- uously being manipulated, they make up only . % of all transactions; p sh inputs are virtually irrelevant. hence, short non-financial data chunks are well- accepted, viable extensions to the bitcoin system (cf. section . ). p x transactions are asymmetric w.r.t. the number and sizes of data-carrying transactions. although constituting only . % of all detector hits, they make up . % of non-financial data ( . mib). this again highlights the high content- insertion efficiency of p x transactions (cf. section . ). finally, we discuss non-standard transactions and non-standard p sh in- put scripts. in total, we found transactions containing non-standard out- puts. the three first non-standard transactions (july ) repeatedly used the op checksig operation. we dedicate this to an attempted dos attack that tar- gets to cause high verification times. furthermore, we found p pkh transac- tions from october that contained op instead of a hash value. the steady increase of non-standard transactions in is due to scripts that consist of seemingly random bytes. contrarily, p sh input scripts sporadically carry non- standard redeem scripts and are then often used to insert larger data chunks (as they are used by p sh injectors). this is due to p sh scripts not being checked for template conformity. we found such transactions holding . mib of data. although peers should reject such transactions [ ], they still often man- age to enter the blockchain. non-standard p sh scripts even carry a substantial amount of data ( . % of the total data originate from p sh injectors). content insertion services. we now investigate to which extent content insertion services are used to store content on bitcoin’s blockchain. figure shows utilization patterns for each service and figure shows the cumulative size of non-financial data inserted via the respective service. notably, only few users are likely responsible for the majority of service-inserted content. in total, content insertion services account for . mib of non-financial data. more than a half of this content ( . mib) originates from p sh in- jectors. the remainder was mostly inserted using apertus ( . % of service- inserted data) and satoshi uploader ( . %). finally, cryptograffiti accounts for . mib ( . %) of content related to content insertion services. in the following, we study how the individual services have been used over time. our key observation is that both cryptograffiti and p sh injectors are in- frequently but steadily used; since we recognize on average . data items being added per month using these services. contrarily, apertus has been used only times since , while the satoshi uploader has not been used at all. in fact, the satoshi uploader was effectively used only during a brief period: . % of all transactions emerged in april . during this time, the service was used to upload four archives, six backup text files, and a pdf file. although apertus and the satoshi uploader have been used only infrequently, together they constitute . % of all p x data we detected. this stems from the utilization of those services to engrave files into the blockchain, e.g., archives or documents (satoshi uploader), or images (apertus). similarly, p sh injectors are used to backup conversations regarding development of the bitcoin client, especially online chat logs, forum threads, and emails, with a significant peak file via service? overall file via service? overall type yes no portion type yes no portion text . % archive . % images . % audio . % html . % pdf . % source code . % total . % table : distribution of blockchain file types according to our content-insertion- service and suspicious-transactions detectors. utilization between may and june ( . % of p sh injector matches). es- pecially apertus is well-suited for this task as files are spread over multiple trans- actions. based on the median, the average apertus file has a size of . kib and is spread over transactions, including all overheads. the largest aper- tus file is . kib large (including overheads), i.e., three times the size of a standard transaction, and is spread over transactions. the most heavily frag- mented apertus file is even spread over transactions. contrarily, . % of cryptograffiti matches are short text messages with a median length of byte. in conclusion, content insertion services are only infrequently used with vary- ing intentions and large portions of content was uploaded in bursts, indicating that only few users are likely responsible for the majority of service-inserted blockchain content. while cryptograffiti is mostly used to insert short text messages that also fit into one op return transaction, other services are pre- dominantly used to store, e.g., images or documents. as such files can constitute objectionable content, we further investigate them in the following. . investigating blockchain files after quantifying basic content insertion in bitcoin, we now focus on readable files that are extractable from the blockchain. we refer to files as findings of our content-insertion-service or suspicious-transaction detectors that are viewable using appropriate standard software. we reassemble fragmented files only if this is unambiguously possible, e.g., via an apertus archive. out of the . mib of blockchain data not originating from coinbase or op return transactions, we can extract and analyze files with meaningful content. in addition to these, we could extract files using our suspicious-transaction detector ( . % text). table summarizes the different file types of the analyzed files. the vast majority are text-based files and images ( . %). in the following, we discuss our findings with respect to objectionable con- tent. we manually evaluated all readable files with respect to the problematic categories we identified in section . . this analysis reveals that content from all those categories already exists in bitcoin’s blockchain today. for each of these categories, we discuss the most severe examples. to protect the safety and pri- vacy of individuals, we omit personal identifiable information and refrain from providing exact information on the location of critical content in the blockchain. copyright violations. we found seven files that publish (intellectual) property and showcase bitcoin’s potential to aid copyright violations. engraved are the text of a book, a copy of the original bitcoin paper [ , ], and two short textual white papers. furthermore, we found two leaked cryptographic keys: one rsa private key and a firmware secret key. finally, the blockchain contains a so-called illegal prime, encoding software to break the copy protection of dvds [ ]. malware. we could not find actual malware in bitcoin’s blockchain. how- ever, an individual non-standard transaction contains a non-malicious cross-site scripting detector. a security researcher inserted this small piece of code which, if interpreted by an online blockchain parser, notifies the author about the vul- nerability. such malicious code could become a threat for users as most websites offering an online blockchain parser also offer online bitcoin accounts. privacy violations. users store memorable private moments on the block- chain. we extracted six wedding-related images and one image showing a group of people, labeled with their online pseudonyms. furthermore, transactions contain online public chat logs, emails, and forum posts discussing bitcoin, in- cluding topics such as money laundering. storing private chat logs on the block- chain can, e.g., leak single user’s private information irrevocably. moreover, third parties can release information without knowledge nor consent of affected users. most notably, we found at least two instances of doxing, i.e., the complete dis- closure of another individual’s personal information. this data includes phone numbers, addresses, bank accounts, passwords, and multiple online identities. recently, jurisdictions such as the european union began to punish such serious privacy violations, including the distribution of doxing data [ ]. again, carrying out such assaults via blockchains fortifies the problem due to their immutability. politically sensitive content. the blockchain has been used by whistleblow- ers as a censorship-resistant permanent storage for leaked information. we found backups of the wikileaks cablegate data [ ] as well as an online news arti- cle concerning pro-democracy demonstrations in hong kong in [ ]. as stated in section . , restrictive governments are known to prosecute the pos- session of such content. for example, state-critical media coverage has already put individuals in china [ ] or turkey [ ] at the risk of prosecution. illegal and condemned content. bitcoin’s blockchain contains at least eight files with sexual content. while five files only show, describe, or link to mildly pornographic content, we consider the remaining three instances objectionable for almost all jurisdictions: two of them are backups of link lists to child pornog- raphy, containing links to websites, of which refer to tor hidden services. the remaining instance is an image depicting mild nudity of a young woman. in an online forum this image is claimed to show child pornography, albeit this claim cannot be verified (due to ethical concerns we refrain from providing a ci- tation). notably, two of the explicit images were only detected by our suspicious- transaction detector, i.e., they were not inserted via known services. while largely harmless, potentially objectionable blockchain content is infre- quently inserted, e.g., links to alleged child pornography or privacy violations. we thus believe that future blockchain designs must proactively cope with objec- tionable content. peers can, e.g., filter incoming transactions or revert content- holding transactions [ , ], but this must be scalable and transparent. related work previous work related to ours comprises i) mitigating the distribution of objec- tionable content in file-sharing peer-to-peer networks, ii) studies on bitcoin’s blockchain, iii) reports on bitcoin’s susceptibility for content insertion, and iv) approaches to retrospectively remove blockchain content. the trade-off between enabling open systems for data distribution and risking that unwanted or even illegal content is being shared is already known from peer-to-peer networks. peer-to-peer-based file-sharing protocols typically limit the spreading of objectionable public content by tracking the reputation of users offering files [ , , , ] or assigning a reputation to files themselves [ , ]. this way, users can reject objectionable content or content from untrustworthy sources. contrarily, distributed content stores usually resort to encrypt private files before outsourcing them to other peers [ , ]. by storing only encrypted files, users can plausibly deny possessing any content of others and can thus obliviously store it on their hard disk. unfortunately, these protection mechanisms are not applicable to blockchains, as content cannot be deleted once it has been added to the blockchain and the utilization of encryption cannot be enforced reliably. bitcoin’s blockchain was analyzed w.r.t. different aspects by numerous stud- ies. in a first step, multiple research groups [ , , , , ] studied the currency flows in bitcoin, e.g., to perform wealth analyses. from a different line of re- search, several approaches focused on user privacy and investigated the identities used in bitcoin [ , , , , ]. these works analyzed to which extent users can be de-anonymized by clustering identities [ , , , , ] and augmenting these clusters with side-channel information [ , , , ]. finally, the blockchain was analyzed w.r.t. the use cases of op return transactions [ ]. while this work is very close to ours, we provide a first comprehensive study of the complete landscape of non-financial data on bitcoin’s blockchain. the seriousness of objectionable content stored on public blockchains has been motivated by multiple works [ , , , , , ]. these works, however, fo- cus on reporting individual incidents or consist of preliminary analyses of the distribution and general utilization of content insertion. to the best of our knowl- edge, this paper gives the first comprehensive analysis of this problem space, including a categorization of objectionable content and a survey of potential risks for users if such content enters the blockchain. in contrast to previously considered attacks on bitcoin’s ecosystem [ , ], illegal content can be inserted instantly at comparably low costs and can put all participants at risk. the utilization of chameleon hash functions [ ] to chain blocks recently opened up a potential approach to mitigate unwanted or illegal blockchain con- tent [ ]. here, a single blockchain maintainer or a small group of maintainers can retrospectively revert single transactions, e.g., due to illegal content. to overcome arising trust issues, µchain [ ] leverages the consensus approach of traditional blockchains to vote on alterations of the blockchain history. as these approaches tackle unwanted content for newly designed blockchains, we seek to motivate a discussion on countermeasures also for existing systems, e.g., bitcoin. conclusion the possibility to store non-financial data on cryptocurrency blockchains is both beneficial and threating for its users. although controlled channels to insert non- financial data at small rates opens up a field of new applications such as digital notary services, rights management, or non-equivocation systems, objectionable or even illegal content has the potential to jeopardize a whole cryptocurrency. although court rulings do not yet exist, legislative texts from countries such as germany, the uk, or the usa suggest that illegal content such as child pornography can make the blockchain illegal to possess for all users. as we have shown in this paper, a plethora of fundamentally different meth- ods to store non-financial–potentially objectionable–content on the blockchain exists in bitcoin. as of now, this can affect at least countries in which pos- sessing content such as child pornography is illegal. this especially endangers the multi-billion dollar markets powering cryptocurrencies such as bitcoin. to assess this problem’s severity, we comprehensively analyzed the quantity and quality of non-financial blockchain data in bitcoin today. our quantitative analysis shows that . % of the roughly million transactions in bitcoin’s blockchain carry arbitrary data. we could retrieve over files, with new con- tent infrequently being added. despite a majority of arguably harmless content, we also identify different categories of objectionable content. the harmful poten- tial of single instances of objectionable blockchain content is already showcased by findings such as links to illegal pornography or serious privacy violations. acknowledgements this work has been funded by the german federal ministry of education and research (bmbf) under funding reference number kis . the responsibil- ity for the content of this publication lies with the authors. references . german criminal code, section ( ) . german criminal code, sections b and c ( ) . protection of children act, chapter , section ( ) . bitcoin transaction fees. https://bitcoinfees.info ( ) accessed / / . . general data protection regulation, section ( ) . aberer, k., despotovic, z.: managing trust in a peer- -peer information system. in: acm cikm. ( ) pp. – . adya, a., bolosky, w.j., castro, m., cermak, g., chaiken, r., douceur, j.r., howell, j., lorch, j.r., theimer, m., wattenhofer, r.p.: farsite: federated, available, and reliable storage for an incompletely trusted environment. sigops oper. syst. rev. (si) ( ) pp. – . ali, m., shea, r., nelson, j., freedman, m.j.: blockstack: a new decentralized internet. ( ) accessed / / . https://bitcoinfees.info . andresen, g.: block v (height in coinbase). https://github.com/bitcoin/ bips/blob/master/bip- .mediawiki ( ) accessed / / . . andresen, g.: pay to script hash. https://github.com/bitcoin/bips/blob/ master/bip- .mediawiki ( ) accessed / / . . ateniese, g., magri, b., venturi, d., andrade, e.: redactable blockchain – or – rewriting history in bitcoin and friends. in: ieee euros&p. ( ) pp. – . bartoletti, m., pompianu, l.: an analysis of bitcoin op return metadata. in: fc bitcoin workshop. ( ) . bellinger, j., hussain, m.: freedom of speech: the great divide and the common ground between the united states and the rest of the world. islamic law and international human rights law: searching for common ground? ( ) pp. – . blockchain.info: bitcoin charts. https://blockchain.info/charts ( ) ac- cessed / / . . camenisch, j., derler, d., krenn, s., pöhls, h.c., samelin, k., slamanig, d.: chameleon-hashes with ephemeral trapdoors. in: pkc ’ . ( ) pp. – . clark, j., essex, a.: commitcoin: carbon dating commitments with bitcoin. in: fc. ( ) pp. – . clarke, i., sandberg, o., wiley, b., hong, t.w.: freenet: a distributed anony- mous information storage and retrieval system. in: designing privacy enhanc- ing technologies: workshop on design issues in anonymity and unobservability. ( ) pp. – . committee to protect journalists: chinese journalist accused of illegally acquiring state secrets. https://cpj.org/x/ d ( ) accessed / / . . damiani, e., di vimercati, d.c., paraboschi, s., samarati, p., violante, f.: a reputation-based approach for choosing reliable resources in peer-to-peer net- works. in: acm ccs. ( ) pp. – . dell security: annual threat report. ( ) accessed / / . . douglas, d.m.: doxing: a conceptual analysis. ethics and information technology ( ) ( ) pp. – . eyal, i., sirer, e.g.: majority is not enough: bitcoin mining is vulnerable. in: fc. ( ) pp. – . fleder, m., kester, m., sudeep, p.: bitcoin transaction graph analysis. ( ) . freedom house: turkey freedom of the press report. https://freedomhouse. org/report/freedom-press/ /turkey ( ) accessed / / . . gracie, c.: hong kong stages huge national day democracy protests. http: //www.bbc.com/news/world-asia-china- ( ) accessed / / . . gupta, m., judge, p., ammar, m.: a reputation system for peer-to-peer net- works. in: acm nossdav. ( ) pp. – . heilman, e., kendler, a., zohar, a., goldberg, s.: eclipse attacks on bitcoin’s peer-to-peer network. in: usenix security. ( ) pp. – . herald union: copyright infringement by illegal file sharing in ger- many. http://www.herald-union.com/copyright-infringement-by-illegal- file-sharing-in-germany ( ) accessed / / . . hugpuddle: apertus – archive data on your favorite blockchains. http:// apertus.io ( ) accessed / / . . “hyena”: cryptograffiti.info. http://cryptograffiti.info accessed / / . . interpol: interpol cyber research identifies malware threat to virtual curren- cies. https://www.interpol.int/news-and-media/news/ /n - ( ) accessed / / . https://github.com/bitcoin/bips/blob/master/bip- .mediawiki https://github.com/bitcoin/bips/blob/master/bip- .mediawiki https://github.com/bitcoin/bips/blob/master/bip- .mediawiki https://github.com/bitcoin/bips/blob/master/bip- .mediawiki https://blockchain.info/charts https://cpj.org/x/ d https://freedomhouse.org/report/freedom-press/ /turkey https://freedomhouse.org/report/freedom-press/ /turkey http://www.bbc.com/news/world-asia-china- http://www.bbc.com/news/world-asia-china- http://www.herald-union.com/copyright-infringement-by-illegal-file-sharing-in-germany http://www.herald-union.com/copyright-infringement-by-illegal-file-sharing-in-germany http://apertus.io http://apertus.io http://cryptograffiti.info https://www.interpol.int/news-and-media/news/ /n - . irish office of the attorney general: child trafficking and pornography act, section . irish statue book ( ) pp. – . kondor, d., pósfai, m., csabai, i., vattay, g.: do the rich get richer? an empirical analysis of the bitcoin transaction network. plos one ( ) ( ) pp. – . labs, f.s.: ransomware: how to predict, prevent, detect & resond. threat response ( ) accessed / / . . le calvez, a.: non-standard p sh scripts. https://medium.com/@alcio/non- standard-p sh-scripts- fa df ( ) accessed / / . . lee, d.: france ends three-strikes internet piracy ban policy. http://www.bbc. com/news/technology- ( ) accessed / / . . lynch, l.: the leak heard round the world? cablegate in the evolving global mediascape. in brevini, b., hintz, a., mccurdy, p., eds.: beyond wikileaks: implications for the future of communications, journalism and society. palgrave macmillan uk ( ) pp. – . lyons, k., blight, g.: where in the world is the worst place to be a christian? ( ) accessed / / . . maesa, d.d.f., marino, a., ricci, l.: uncovering the bitcoin blockchain: an analysis of the full users graph. in: ieee dsaa. ( ) pp. – . matzutt, r., hohlfeld, o., henze, m., rawiel, r., ziegeldorf, j.h., wehrle, k.: poster: i don’t want that content! on the risks of exploiting bitcoin’s block- chain as a content store. in: acm ccs. ( ) . matzutt, r., müllmann, d., zeissig, e.m., horst, c., kasugai, k., lidynia, s., wieninger, s., ziegeldorf, j.h., gudergan, g., spiecker gen. döhmann, i., wehrle, k., ziefle, m.: mynedata: towards a trusted and user-controlled ecosystem for sharing personal data. in eibl, m., gaedke, m., eds.: informatik, gesellschaft für informatik, bonn ( ) pp. – . mcafee labs: threats report (december ). ( ) accessed / / . . mcreynolds, e., lerner, a., scott, w., roesner, f., kohno, t.: cryptographic currencies from a tech-policy perspective: policy issues and technical directions. in: springer lncs. volume . ( ) pp. – . meiklejohn, s., pomarole, m., jordan, g., levchenko, k., mccoy, d., voelker, g.m., savage, s.: a fistful of bitcoins: characterizing payments among men with no names. in: imc. ( ) pp. – . nakamoto, s.: bitcoin: a peer-to-peer electronic cash system. ( ) https: //bitcoin.org/bitcoin.pdf. . ober, m., katzenbeisser, s., hamacher, k.: structure and anonymity of the bit- coin transaction graph. future internet ( ) ( ) pp. – . office of the law revision counsel of the united states house of representatives: u.s. code, title , chapter , § ( ) . okupski, k.: bitcoin developer reference. technical report ( ) . peerenboom, r.p.: assessing human rights in china: why the double standard. ( ) accessed / / . . poex co., ltd: proof of existence. https://proofofexistence.com ( ) ac- cessed / / . . puddu, i., dmitrienko, a., capkun, s.: µchain: how to forget without hard forks. iacr cryptology eprint archive / ( ) accessed / / . . reid, f., harrigan, m.: an analysis of anonymity in the bitcoin system. in: security and privacy in social networks. ( ) pp. – . ron, d., shamir, a.: quantitative analysis of the full bitcoin transaction graph. in: fc. ( ) pp. – https://medium.com/@alcio/non-standard-p sh-scripts- fa df https://medium.com/@alcio/non-standard-p sh-scripts- fa df http://www.bbc.com/news/technology- http://www.bbc.com/news/technology- https://bitcoin.org/bitcoin.pdf https://bitcoin.org/bitcoin.pdf https://proofofexistence.com . scheller, s.h.: a picture is worth a thousand words: the legal implications of revenge porn. north carolina law review ( ) ( ) pp. – . selcuk, a.a., uzun, e., pariente, m.r.: a reputation-based trust management system for p p networks. in: ieee ccgrid. ( ) pp. – . shirriff, k.: hidden surprises in the bitcoin blockchain and how they are stored: nelson mandela, wikileaks, photos, and python software. http://www. righto.com/ / /ascii-bernanke-wikileaks-photographs.html ( ) ac- cessed / / . . sleiman, m.d., lauf, a.p., yampolskiy, r.: bitcoin message: data insertion on a proof-of-work cryptocurrency system. in: acm cw. ( ) pp. – . snow, p., deery, b., lu, j., johnston, d., kirby, p.: factom: business processes secured by immutable audit trails on the blockchain. https://www.factom.com/ devs/docs/guide/factom-white-paper- - ( ) accessed / / . . spagnuolo, m., maggi, f., zanero, s.: bitiodine: extracting intelligence from the bitcoin network. in: fc. ( ) pp. – . standing committee of the national people’s congress: law of the people’s re- public of china on guarding state secrets. ( ) accessed / / . . taylor, g.: concepts of intention in german criminal law. oxford journal of legal studies ( ) ( ) pp. – . tomescu, a., devadas, s.: catena: efficient non-equivocation via bitcoin. in: ieee s&p. ( ) pp. – . tucker, e.: a look at federal cases on handling classified in- formation. http://www.military.com/daily-news/ / / /a-look-at- federal-cases-on-handling-classified-information.html ( ) accessed / / . . united nations: appendix to the optional protocols to the convention on the rights of the child on the involvement of children in armed conflict and on the sale of children, child prostitution and child pornography ( ) . united nations: optional protocols to the convention on the rights of the child on the involvement of children in armed conflict and on the sale of children, child prostitution and child pornography. ( ) pp. – . waldman, m., rubin, a.d., cranor, l.: publius: a robust, tamper-evident, censorship-resistant and source-anonymous web publishing system. in: usenix security. ( ) pp. – . walsh, k., sirer, e.g.: experience with an object reputation system for peer- to-peer filesharing. in: nsdi. ( ) . wei, w.: ancient ’stoned’ virus signatures found in bitcoin block- chain. https://thehackernews.com/ / /microsoft-security-essential- found.html ( ) accessed / / . . wood, g.: ethereum: a secure decentralised generalised transaction ledger. ethereum project yellow paper ( ) accessed / / . . zeilinger, m.: digital art as ‘monetised graphics’: enforcing intellectual property on the blockchain. philosophy & technology ( ) . ziegeldorf, j.h., grossmann, f., henze, m., inden, n., wehrle, k.: coinparty: secure multi-party mixing of bitcoins. in: acm codaspy. ( ) pp. – . ziegeldorf, j.h., matzutt, r., henze, m., grossmann, f., wehrle, k.: secure and anonymous decentralized bitcoin mixing. fgcs ( ) – . zimmermann, t., rüth, j., wirtz, h., wehrle, k.: maintaining integrity and reputation in content offloading. in: ieee/ifip wons. ( ) pp. – http://www.righto.com/ / /ascii-bernanke-wikileaks-photographs.html http://www.righto.com/ / /ascii-bernanke-wikileaks-photographs.html https://www.factom.com/devs/docs/guide/factom-white-paper- - https://www.factom.com/devs/docs/guide/factom-white-paper- - http://www.military.com/daily-news/ / / /a-look-at-federal-cases-on-handling-classified-information.html http://www.military.com/daily-news/ / / /a-look-at-federal-cases-on-handling-classified-information.html https://thehackernews.com/ / /microsoft-security-essential-found.html https://thehackernews.com/ / /microsoft-security-essential-found.html a quantitative analysis of the impact of arbitrary blockchain content on bitcoin none issues · lostrses/escape-room · github skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} lostrses / escape-room notifications star fork code issues pull requests actions projects security insights more code issues pull requests actions projects security insights labels milestones labels milestones new issue have a question about this project? sign up for a free github account to open an issue and contact its maintainers and the community. pick a username email address password sign up for github by clicking “sign up for github”, you agree to our terms of service and privacy statement. we’ll occasionally send you account related emails. already on github? sign in to your account open closed open closed author filter by author author: filter by this user label filter by label use alt + click/return to exclude labels. projects filter by project milestones filter by milestone assignee filter by who’s assigned sort sort by newest oldest most commented least commented recently updated least recently updated most reactions 👍 👎 😄 🎉 😕 ❤️ 🚀 👀 add some books about python to the bookshelf in room # opened apr , by jezcope weave a name for our absent rse into the narrative for continuity # opened apr , by jezcope add small pictures for some of the interactable objects in the room # opened apr , by jezcope add some breadcrumb navigation to the story website # opened apr , by jezcope check description of rooms for consistency # opened apr , by jezcope add illustrations for items in the rse office # opened apr , by tlestang make sure all images have alt text # opened apr , by jezcope move image credits from laptop page to readme for assets folder # opened apr , by lauracarter create a presentation for the end of the hackday # opened apr , by jezcope how do we get the a&h to use this? how do we get the word out? # opened apr , by marionbweinzierl make it shinier! # opened apr , by marionbweinzierl updating the readme to include all the information required for judging criteria for cw hackday ( april ) # opened apr , by lauracarter of create puzzles for software sustainability # opened apr , by marionbweinzierl create puzzle for research software engineering # opened apr , by marionbweinzierl create puzzles for software testing and ci # opened apr , by marionbweinzierl create puzzle for version control # opened apr , by marionbweinzierl create puzzle for licenses # opened apr , by marionbweinzierl create puzzle for readmes # opened apr , by marionbweinzierl protip! find all open issues with in progress development work with linked:pr. © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. ¡el futuro es ahora! | future lab ☰ ✎ edit navigation inicio nosotros eventos blog contacto somos future lab, la comunidad del futuro. desarrollamos tecnología y compartimos conocimiento. trabajamos por el futuro que queremos ver. síguenos en facebook desarrollamos proyectos de base científica y tecnológica ya sea que nosotros mismo metamos mano en el desarrollo, o que sea a través de mentorías, nos encanta ser capaces de innovar y poder aportar al desarrollo de nuevas tecnologías; llevarlo a diferentes partes de méxico y poder presentar nuestros proyectos en diferentes eventos con empresas que están en el medio. compartimos conocimiento y fomentamos la educación en tecnología a través de talleres, charlas, conferencias y participaciones en eventos compartimos conocimientos técnicos y de cultura para el desarrollo de tecnología. vinculamos y creamos comunidad nos encanta empoderar a nuestra comunidad, apoyar y poder vincular con quien pueda potencializar a las grandes mentes del futuro que se nos acercan. nuestra visión en future lab es poder desarrollar nuestro futuro, compartir conocimientos y poder crear las conexiones que ayuden a nuestra comunidad. rodolfo ferro, co-fundador de future lab. ¡conoce todo lo que estamos haciendo! future lab en facebook ✎ edit footer © future lab. aha! | an arts & humanities adventure view on github aha! an arts & humanities adventure you are a researcher in the classics department. as part of your current research project, you have become interested in the life of a woman called fabrica collaborare, who lived in roman britain. there’s not much written specifically about fabrica, but you have seen her name mentioned in several texts from that time. you are not looking forward to the task of having to look at lots more texts to find out where fabrica - and the collaborare family - are mentioned. on your way out of the library to get a cup of coffee, you meet your colleague priya, and tell her about your problem. she tells you about a group at the university who might be able to help. you haven’t heard of the rse team before: priya tells you that ‘rse’ stands for research software engineering, and that their office is in room . . go to room . aha! maintained by lostrses published with github pages intro to the fediverse erambler home about series tags talks rdm resources intro to the fediverse date: - - tags: [fediverse] [social media] [twitter] wow, it turns out to be years since i wrote this beginners guide to twitter. things have moved on a loooooong way since then. far from being the interesting, disruptive technology it was back then, twitter has become part of the mainstream, the establishment. almost everyone and everything is on twitter now, which has both pros and cons. so what’s the problem? it’s now possible to follow all sorts of useful information feeds, from live updates on transport delays to your favourite sports team’s play-by-play performance to an almost infinite number of cat pictures. in my professional life it’s almost guaranteed that anyone i meet will be on twitter, meaning that i can contact them to follow up at a later date without having to exchange contact details (and they have options to block me if they don’t like that). on the other hand, a medium where everyone’s opinion is equally valid regardless of knowledge or life experience has turned some parts of the internet into a toxic swamp of hatred and vitriol. it’s easier than ever to forget that we have more common ground with any random stranger than we have similarities, and that’s led to some truly awful acts and a poisonous political arena. part of the problem here is that each of the social media platforms is controlled by a single entity with almost no accountability to anyone other than shareholders. technological change has been so rapid that the regulatory regime has no idea how to handle them, leaving them largely free to operate how they want. this has led to a whole heap of nasty consequences that many other people have done a much better job of documenting than i could (shoshana zuboff’s book the age of surveillance capitalism is a good example). what i’m going to focus on instead are some possible alternatives. if you accept the above argument, one obvious solution is to break up the effective monopoly enjoyed by facebook, twitter et al. we need to be able to retain the wonderful affordances of social media but democratise control of it, so that it can never be dominated by a small number of overly powerful players. what’s the solution? there’s actually a thing that already exists, that almost everyone is familiar with and that already works like this. it’s email. there are a hundred thousand email servers, but my email can always find your inbox if i know your address because that address identifies both you and the email service you use, and they communicate using the same protocol, simple mail transfer protocol (smtp) . i can’t send a message to your twitter from my facebook though, because they’re completely incompatible, like oil and water. facebook has no idea how to talk to twitter and vice versa (and the companies that control them have zero interest in such interoperability anyway). just like email, a federated social media service like mastodon allows you to use any compatible server, or even run your own, and follow accounts on your home server or anywhere else, even servers running different software as long as they use the same activitypub protocol. there’s no lock-in because you can move to another server any time you like, and interact with all the same people from your new home, just like changing your email address. smaller servers mean that no one server ends up with enough power to take over and control everything, as the social media giants do with their own platforms. but at the same time, a small server with a small moderator team can enforce local policy much more easily and block accounts or whole servers that host trolls, nazis or other poisonous people. how do i try it? i have no problem with anyone for choosing to continue to use what we’re already calling “traditional” social media; frankly, facebook and twitter are still useful for me to keep in touch with a lot of my friends. however, i do think it’s useful to know some of the alternatives if only to make a more informed decision to stick with your current choices. most of these services only ask for an email address when you sign up and use of your real name vs a pseudonym is entirely optional so there’s not really any risk in signing up and giving one a try. that said, make sure you take sensible precautions like not reusing a password from another account. instead of… try… twitter, facebook mastodon, pleroma, misskey slack, discord, irc matrix whatsapp, fb messenger, telegram also matrix instagram, flickr pixelfed youtube peertube the web interplanetary file system (ipfs) which, if you can believe it, was formalised nearly years ago in and has only had fairly minor changes since then! ↩︎ comments you can comment on this post, "intro to the fediverse", by: replying to its tweet on twitter or its toot on mastodon sending a webmention from your own site to https://erambler.co.uk/blog/intro-to-the-fediverse/ using this button: comments & reactions haven't loaded yet. you might have javascript disabled but that's cool 😎. me elsewhere :: keyoxide | keybase | mastodon | matrix | twitter | github | gitlab | orcid | pypi | linkedin © jez cope | built by: hugo | theme: mnemosyne build status: except where noted, this work is licensed under a creative commons attribution . international license. geoladies ph geoladiesph home join about projects contact geoladiesph we advocate for community diversity, collaborative participation, and affirmative spaces especially for women and under-represented communities. cheers to the ladies! 😉 join our latest workshop! for our latest workshop, we will provide an introduction to how drones are used in geospatial aerial surveys. apply for a slot below. according to the civil aviation authority of the philippines, only % of licensed drone pilots are women. with this, please note that women applicants will be prioritized to generate interest from an under-represented sector, in which our group would like to focus on. powered by typeform learn more about geoladies ph about our core team jen one of jen's advocacies is mapping breastfeeding stations in the philippines to help fellow wives and mommies. 🤱🏽 andi andi advocates for mapping mental health resources and services and promoting mental health awhereness to fight the stigma on it. 🌻 leigh drone expert! 🛫 cham artist mapper 🎨 nalie nalie is an advocate for sustainable living and she maps for work and voluntarily. 🌿 feye disaster response mapper 🌊 👉🏽resources for knowledge sharing ✨ view/download here. projects recent projects, workshops, and activities drone't you wish your girl friend could fly like me? a workshop on how drones are used in geospatial aerial surveys. women applicants are prioritized to generate interest from an under-represented sector in this field. pista ng mapa we've participated at the pista ng mapa ! more workshops more workshops! more projects more projects! follow us on social media for more updates or email us. follow us on facebook! email us here! view larger map copyright © geoladies ph fail!lab | technology, libraries and the future! fail!lab technology, libraries and the future! menu skip to content home about luddites, trumpism and change: a crossroads for libraries posted on december , by mryanhess “globalization is a proxy for technology-powered capitalism, which tends to reward fewer and fewer members of society.” – om malik corner someone and they will react. we may be seeing this across the world as change, globalization, technology and economic dislocation force more and more people into the corner of benefit-nots. they are reacting out of desperation. it’s not rational. it’s not pretty. but it shouldn’t be surprising. years ago at a library conference, one of the keynote speakers forecast that there would be a return to the analog (sorry my twitter-based memory does not identify the person). the rapidity of digitization would be met by a reaction. people would scurry back to the familiar, he said. they always do. fast forward to , where the decades-long trends toward globalization, borderless labor markets, denationalization, exponential technological change and corresponding social revolutions has hit the wall of public reaction. brexit. global trumpism. call it what you will. we’re in a change moment. the reaction is here. reacting to the reaction people in the blue zones, the technorati, the beneficiaries of cheap foreign labor, free trade and technological innovation are scratching their heads. for all their algorithms and ai, they didn’t see this coming. everything looked good on their feeds. no danger could possibly burst their self-assured bubble of inevitability. all was quiet. it was like a clear blue, september , morning in new york city. it was like the boardroom in the federal reserve in . the serenity was over in an instant. since brexit, and then trump’s election, the glittery digitarians have initiated a period of introspection. they’re looking up from their stock tickers and gold-plated smart watches to find a grim reality: the world is crowded with people that have lost much ground at the expense of the global maelstrom that has elevated a very small, lucky few to greatness. they are now seeing, as for the first time, the shuttered towns. the empty retail stores. the displaced and homeless. suddenly their confident talk of personal ai assistants has turned from technolust to terror. their success suddenly looks short-sighted. om malik wrote in his recent new yorker op-ed, that silicon valley may soon find itself equated with the super villains on wall street. he posits that a new business model needs to account for the public good…or else. i recently read throwing rocks at the google bus: how growth became the enemy of prosperity by douglas rushkoff. if you haven’t read it, now would be a good time. like bernie sanders and others, rushkoff has been warning of this kind of reaction for awhile. the system is not designed for the public good, but only around a narrow set of shareholder requirements. all other considerations do not compute. my reaction let me put this in personal perspective. in my work, i engage the public in “the heart of silicon valley” on what they want from their community and what’s missing. what i hear is concern about the loss of quiet, of connection to others, of a pace of life that is not / always a click away. this is consistent. people feel overwhelmed. as one of the chief technologists for my library, this puts me in a strange place. and i’ve been grappling with it for the past few months. on the one hand, people are curious. they’re happy to try the next big thing. but you also hear the frustration. meanwhile, the burden of the tech industry is more than inflated rents and traffic. there’s a very obvious divide between long-time residents and newcomers. there’s a sense that something has been lost. there’s anger too, even here in the shadow of google and facebook. the library as a philosophy the other day, i was visited by a eurpean library director who wanted to talk about vr. he asked me where i thought we’d be in ten years. i hesitated. my thoughts immediately went back to the words of despair that i’d been hearing from the public lately. of course, the genie’s out of the bottle. we can’t stop the digital era. vr interface revolutions will likely emerge. the robots will come. but we can harness this change to our benefit. we can add rules to heal it to our collective needs. this is where the library comes in. we have a sharing culture. a model that values bridging divides, pooling resources and re-distributing knowledge. it’s a model that is practically unique to the library if you think about it. as i read rushkoff, i kept coming back to the librarian’s philosophy on sharing. in his book, he contends that we need to re-imagine (re-code) our economy to work for people. he recalls technologies like http and rss which were invented and then given away to the world to share and re-use. this sounded very ‘librarian’ to me. we share knowledge in the form of access to technology, after all. we host training on new maker gear, coding, robotics, virtual reality. perhaps we need to double-down on this philosophy. perhaps, we can be more than just a bridge. maybe we can be the engine driving our communities to the other side. we can not just advocate, but do. have a hackathon? build a public alternative to the airbnb app to be used by people in your town. know the future in the end, libraires, technologists and digitarians need to tell a better story. we need to get outside our bubbles and tell that story with words that resonate with the benefit-nots. and more, we need that story to be backed up with real-world benefits. it starts with asking the community what kind of world they want to live it? what obstacles keep them from living that way? and then how the library and technology can help make change. we have the philosophy, we have the spaces and we have public permission. let’s get to work. posted in innovation, librarianship, society, technology, uncategorized | leave a comment is d printing dying? posted on october , by mryanhess inc.’s john brandon recently wrote about the slow, sad, and ultimately predictable decline of d printing. uh, not so fast. d printing is just getting started. for libraries whose adopted mission is to introduce people to emerging technologies, this is a fantastic opportunity to do so. but it has to be done right. another dead end? brandon cites a few reasons for his pessimism: d printed objects are low quality and the printers are finicky d printing growth is falling behind initial estimates people in manufacturing are not impressed and the costs are too high i won’t get into all that’s wrong with this analysis, as i feel like most of it is incorrect, or at the very least, a temporary problem typical of a new technology. instead, i’d like to discuss this in the library maker context. and in fact, you can apply these ideas to any tech project. how to make failure a win—no matter what libraries are quick to jump on tech. remember those qr codes that would revolutionize mobile access? did your library consider a second life branch? how about those chromebooks! inevitably, these experiments are going to fail. but that’s okay. as this blog often suggests, failure is a win when doing so teaches you something. experimenting is the first step in the process of discovery. and that’s really what all these kinds of projects need to be. in the case of a d printing project at your library, it’s important to keep this notion front and center. a d printing pilot with the goal of introducing the public to the technology can be successful if people simply try it out. that seems easy enough. but to be really successful, even this kind of basic d printing project needs to have a fair amount of up-front planning attached to it. chicago public library created a successful maker lab. their program was pretty simple: hold regular classes showing people how to use the d printers and then allow those that completed the introductory course to use the printers in open studio lab times. when i tried this out at cpl, it was quite difficult to get a spot in the class due to popularity. the grant-funded project was so successful, based on the number of attendees, that it was extended and continues to this day. as a grant-funded endeavor, cpl likely wrote out the specifics before any money was handed over. but even an internally-funded project should do this. keep the goals simple and clear so expectations on the front line match those up the chain of command. figure out what your measurements of success are before you even purchase the first printer. be realistic. always document everything. and return to that documentation throughout the project’s timeline. taking it to the next level san diego public library is an example of a maker project that went to the next level. uyen tran saw an opportunity to merge startup seminars with their maker tools at her library. she brought aspiring entrepreneurs into her library for a startup weekend event where budding innovators learned how the library could be a resource for them as they launched their companies. d printers were part of this successful program. it’s important to note that uyen already had the maker lab in place before she launched this project. and it would be risky for a library to skip the establishment of a rudimentary d printer program before trying for this more ambitious program. but it could be done if that library was well organized with solid project managers and deep roots in the target community. but that’s a tall order to fill. what’s the worst thing that could go wrong? the worst thing that could go wrong is doubling down on failure: repeating one failed project after another without changing the flawed approach behind it. i’d also add that libraries are often out ahead of the public on these technologies, so dead ends are inevitable. to address this, i would also add one more tactic to your tech projects: listening. the public has lots of concerns about a variety of things. if you ask them, they’ll tell you all about them. many of their concerns are directly related to libraries, but we can often help. we have permission to do so. people trust us. it’s a great position to be in. but we have to ask them to tell us what’s on their mind. we have to listen. and then we need to think creatively. listening and thinking outside the box was how san diego took their d printers to the next level. the long future of d printing the wright brothers first flight managed only feet in the air. a year later, they flew miles. these initial attempts looked nothing like the jet age and yet the technology of flight was born from these humble experiments. already, d printing is being adopted in multiple industries. artists are using it to prototype their designs. astronauts are using it to print parts aboard the international space station. bio-engineers are now looking at printing stem-cell structures to replace organs and bones. we’re decades away from the jet age of d printing, but this tech is here to stay. john brandon’s read is incorrect simply because he’s looking at the current state and not seeing the long-term promise. when he asks a ford engineer for his take on d printing in the assembly process, he gets a smirk. not a hotbed of innovation. what kind of reaction would he have gotten from an engineer at tesla? at apple? fundamentally, he’s approaching d printers from the wrong perspective and this is why it looks doomed. libraries should not make this mistake. the world is changing ever more quickly and the public needs us to help them navigate the new frontier. we need to do this methodically, with careful planning and a good dose of optimism. posted in innovation, technology | tagged d printing, innovation, project planning | comments the state of the library website posted on september , by mryanhess t’was a time when the library website was an abomination. those dark days have lightened significantly. but new clouds have appeared on the horizon. darkest before the dawn in the dark ages of library websites, users suffered under ux regimes that were rigid, unhelpful and confusing. this was before responsive design became a standard in the library world. it was before search engine optimization started to creep into library meetings. it was before user experience became an actual librarian job title. we’ve come a long way since i wrote the ugly truth about library websites. most libraries have evolved beyond the old “website as pamphlet” paradigm to one that is dynamic and focused on user tasks. public libraries have deployed platforms like bibliocommons to serve responsive, task-oriented interfaces that integrate their catalogs, programming and website into a single social platform. books, digital resources, programs and even loanable equipment are all accessible via a single search. what’s more, the critical social networking aspects of library life are also embedded along the user’s path. celebrated examples of this integrated solution include the san francisco public library and chicago public library. queens is also hard at work to develop a custom solution. in the academic realm, libraries have turned to unified discovery layers like worldcat discovery and ebsco discovery service to simplify (googlize) the research process. these systems put a single-search box front and center that access resources on the shelf, but also all those electronic resources that make up the bulk of academic budgets. and while there are still many laggards, few libraries ignore these problems outright. the storm ahead while the general state of online library interfaces has improved, the unforgiving, hyperbolic curve of change continues to press forward. and libraries cannot stay put. indeed, we need to quicken our pace and prepare our organizations for ongoing recalibration as the tempo of change increases. the biggest problem for library websites, is that there is little future for the library website. that’s because people will get less and less information through web browsers. indeed, consider how often you use a web browser on your phone versus an app. developments in ai, augmented reality and virtual reality will compound that trend. if you’re like chris milk, videographer and vr evangelist, you see the writing on the wall. the modes of how we experience information are about to undergo a fundamental revolution. milk likens the current state of vr to the old black and white silent films at the dawn of motion pictures. i’d extend this line of thinking to the web page. within a decade or two, i expect people will look back on web pages as a brief, transitory medium bridging print information to linked data. and as our ai, vr and ar technologies take off, they will liberate information from the old print paradigms altogether. in short, people will interact with information in more direct ways. they will ask a computer to provide them the answer. they will virtually travel to a “space” where they can experience the information they seek. get ready to re-invent the library…again so where does the library fit into this virtualized and automated future? one possibility is that the good work to transform library data into linked data will enable us to survive this revolution. in fact, it may be our best hope. another hope is that we continue to emphasize the library as a social space for people to come together around ideas. whether its a virtual library space or a physical one, the library can be the place in both local and global communities where people meet their universal thirst for connecting with others. the modes of those ideas (books, ebooks, videos, games) will matter far less than the act of connecting. in a sense, you could define the future online library as something between an mmorpg, meetup.com and the ted conference. so, the library website is vastly improved, but we won’t have long to rest on our laurels. ready player one? put on your vr goggles. call up siri. start rethinking everything you know about the library website.     posted in information architecture, librarianship | tagged internet, libraries, user experience, web design, websites | comment virtual realty is getting real in the library posted on june , by mryanhess my library just received three samsung s devices with gear vr goggles. we put them to work right away. the first thought i had was: wow, this will change everything. my second thought was: wow, i can’t wait for apple to make a vr device! the samsung gear vr experience is grainy and fraught with limitations, but you can see the potential right away. the virtual reality is, after all, working off a smartphone. there is no high-end graphics card working under the hood. really, the goggles are just a plastic case holding the phone up to your eyes. but still, despite all this, it’s amazing. within twenty-four hours, i’d surfed beside the world’s top surfers on giant waves off hawaii, hung out with the masai in africa and shared an intimate moment with a pianist and his dog in their (new york?) apartment. it was all beautiful. we’ve been here before remember when the internet came online? if you’re old enough, you’ll recall the crude attempts to chat on digital bulletin board systems (bbs) or, much later, the publication of the first colorful (often jarringly so) html pages. it’s the hello world! moment for vr now. people are just getting started. you can tell the content currently available is just scratching the surface of potentialities for this medium. but once you try vr and consider the ways it can be used, you start to realize nothing will be the same again. the internet will disappear so said google ceo erik schmidt in . he was talking about the rise of ai, wearable tech and many other emerging technologies that will transform how we access data. for schmidt, the internet will simply fade into these technologies to the point that it will be unrecognizable. i agree. but being primarily a web librarian, i’m mostly concerned with how new technologies will translate in the library context. what will vr mean for library websites, online catalogs, ebooks, databases and the social networking aspects of libraries. so after trying out vr, i was already thinking about all this. here are some brief thoughts: visiting the library stacks in vr could transform the online catalog experience library programming could break out of the physical world (virtual speakers, virtual locations) vr book discussions could incorporate virtual tours of topics/locations touched on in books collections of vr experiences could become a new source for local collections vr maker spaces and tools for creatives to create vr experiences/objects year zero? still, vr makes your eyes tired. it’s not perfect. it has a long way to go. but based on my experience sharing this technology with others, it’s addictive. people love trying it. they can’t stop talking about it afterward. so, while it may be some time before the vr revolution disrupts the internet (and virtual library services with it), it sure feels imminent. posted in innovation, librarianship, technology | tagged gear vr, internet, oculus, samsung, virtual reality, vr | leave a comment w c’s css framework review posted on may , by mryanhess i’m a longtime bootstrap fan, but recently i cheated on my old framework. now i’m all excited by the w c’s new framework. like bootstrap, the w c’s framework comes with lots of nifty utilities and plug and play classes and ui features. even if you have a good cms, you’ll find many of their code libraries quite handy. and if you’re cms-deficient, this framework will save you time and headaches! why a framework? frameworks are great for saving time. you don’t have to reinvent the wheel for standard ui chunks like navigation, image positioning, responsive design, etc. all you need to do is reference the framework in your code and you can start calling the classes to make your site pop. and this is really great since not all well-meaning web teams have an eye for good design. most quality frameworks look really nice, and they get updated periodically to keep up with design trends. and coming from this well-known standards body, you can also be assured that the w c’s framework complies with all the nitty-gritty standards all websites should aspire to. things to love some of the things i fell in love with include: css-driven navigation menus. there’s really no good reason to rely on javascript for a responsive, interactive navigation menu. the w c agrees. icon support. this framework allows you to choose from three popular icon sets to bring icons right into your interface. image support: lots of great image styling including circular cropping, shadowing, etc. cards. gotta love cards in your websites and this framework has some very nice looking card designs for you to use. built-in colors. nuff sed. animations. there are plenty of other nice touches like buttons that lift off the screen, elements that drop into place and much more. i give it a big thumbs up! check it out at the w c.org.     posted in reviews | tagged css, frameworks, w c, web design | comment ai first posted on may , by mryanhess looking to the future, the next big step will be for the very concept of the “device” to fade away. over time, the computer itself—whatever its form factor—will be an intelligent assistant helping you through your day. we will move from mobile first to an ai first world. google founder’s letter, april my library recently finalized a vision document for our virtual library presence. happily, our vision was aligned with the long-term direction of technology as understood by movers and shakers like google. as i’ve written previously, the library website will disappear. but this is because the internet (as we currently understand it) will also disappear. in its place, a new mode of information retrieval and creation will move us away from the paper-based metaphor of web pages. information will be more ubiquitous. it will be more free-form, more adaptable, more contextualized, more interactive. part of this is already underway. for example, people are becoming a data set. and other apps are learning about you and changing how they work based on who you are. your personal data set contains location data, patterns in speech and movement around the world, consumer history, keywords particular to your interests, associations based on your social networks, etc. ai emerging all of this information makes it possible for emerging ai systems like siri and cortana to better serve you. soon, it will allow ai to control the flow of information based on your mood and other factors to help you be more productive. and like a good friend that knows you very, very well, ai will even be able to alert you to serendipitous events or inconveniences so that you can navigate life more happily. people’s expectations are already being set for this kind of experience. perhaps you’ve noticed yourself getting annoyed when your personal assistant just fetches a wikipedia article when you ask it something. you’re left wanting. what we want is that kernel of gold we asked about. but what we get right now, is something too general to be useful. but soon, that will all change. nascent ai will soon be able to provide exactly the piece of information that you really want rather than a generalized web page. this is what google means when they make statements like “ai first” or “the web will die.” they’re talking about a world where information is not only presented as article-like web pages, but broken down into actual kernels of information that are both discrete and yet interconnected. ai first in the library library discussions often focus on building better web pages or navigation menus or providing responsive websites. but the conversation we need to have is about pulling our data out of siloed systems and websites and making it available to all modes like ai, apps and basic data harvesters. you hear this conversation in bits and pieces. the ongoing linked data project is part of this long-term strategy. so too with next-gen opacs. but on the ground, in our local strategy meetings, we need to tie every big project we do to this emerging reality where web browsers are increasingly no longer relevant. we need to think ai first. posted in librarianship, society, tech industry | tagged artificial intelligence, google, internet, libraries, linked data | leave a comment google analytics and privacy posted on april , by mryanhess collecting web usage data through services like google analytics is a top priority for any library. but what about user privacy? most libraries (and websites for that matter) lean on google analytics to measure website usage and learn about how people access their online content. it’s a great tool. you can learn about where people are coming from (the geolocation of their ip addresses anyway), what devices, browsers and operating systems they are using. you can learn about how big their screen is. you can identify your top pages and much much more. google analytics is really indispensable for any organization with an online presence. but then there’s the privacy issue. is google analytics a privacy concern? the question is often asked, what personal information is google analytics actually collecting? and then, how does this data collection jive with our organization’s privacy policies. it turns out, as a user of google analytics, you’ve already agreed to publish a privacy document on your site outlining the why and what of your analytics program. so if you haven’t done so, you probably should if only for the sake of transparency. personally identifiable data fact is, if someone really wanted to learn about a particular person, it’s not entirely outside the realm of possibility that they could glean a limited set of personal attributes from the generally anonymized data google analytics collects. ip addresses can be loosely linked to people. if you wanted to, you could set up filters in google analytics that look at a single ip. of course, on the google side, any user that is logged into their gmail, youtube or other google account, is already being tracked and identified by google. this is a broadly underappreciated fact. and it’s a critical one when it comes to how approach the question of dealing with the privacy issue. in both the case of what your organization collects with google analytics and what all those web trackers, including google’s trackers, collect, the onus falls entirely on the user. the internet is public over the years, the internet has become a public space and users of the web should understand it as such. everything you do, is recorded and seen. companies like google, facebook, mircosoft, yahoo! and many, many others are all in the data mining business. carriers and internet service providers are also in this game. they deploy technologies in websites that identify you and then sell what your interests, shopping habits, web searches and other activities are to companies interested in selling to you. they’ve made billions on selling your data. ever done a search on google and then seen ads all over the web trying to sell you that thing you searched last week? that’s the tracking at work. only you can prevent data fires the good news is that with little effort, individuals can stop most (but not all) of the data collection. browsers like chrome and firefox have plugins like ghostery, avast and many others that will block trackers. google analytics can be stopped cold by these plugins. but it won’t solve all the problems. users also need to set up their browsers to delete cookies websites save to their browsers. and moving off of accounts provided from data mining companies “for free” like facebook accounts, gmail and google.com can also help. but you’ll never be completely anonymous. super cookies are a thing and are very difficult to stop without breaking websites. and some trackers are required in order to load content. so sometimes you need to pay with your data to play. policies for privacy conscious libraries all of this means that libraries wishing to be transparent and honest about their data collection, need to also contextualize the information in the broader data mining debate. first and foremost, we need to educate our users on what it means to go online. we need to let them know its their responsibility alone to control their own data. and we need to provide instructions on doing so. unfortunately, this isn’t an opt-in model. that’s too bad. it actually would be great if the world worked that way. but don’t expect the moneyed interests involved in data mining to allow the us congress to pass anything that cuts into their bottom line. this ain’t germany, after all. there are ways with a little javascript to create a temporary opt-in/opt-out feature to your site. this will toggle tags added by google tag manager on and off with a single click. but let’s be honest. most people will ignore it. and if they do opt-out, it will be very easy for them to overlook everytime without a much more robust opt-in/opt-out functionality baked in to your site. but for most sites and users, this is asking alot. meanwhile, it diverts attention from the real solution: users concerned about privacy need to protect themselves and not take a given websites word for it. we actually do our users a service by going with the opt-out model. this underlines the larger privacy problems on the wild wild web, which our sites are a part of. posted in online security & privacy, society | tagged data mining, google analytics, online security & privacy | comments the l word posted on march , by mryanhess i’ve been working with my team on a vision document for what we want our future digital library platform to look like. this exercise keeps bringing us back to defining the library of the future. and that means addressing the very use of the term, ‘library.’ when i first exited my library (and information science) program, i was hired by adobe systems to work in a team of other librarians. my manager warned us against using the word ‘librarian’ among our non-librarian colleagues. i think the gist was: too much baggage there. so, we used the word ‘information specialist.’ fast forward a few years to my time in an academic environment at depaul university library and this topic came up in the context of services the library provided. faculty and students associated the library in very traditional ways: a quiet, book-filled space. but the way they used the library was changing despite the lag in their semantic understanding. the space and the virtual tools we put in place online helped users not only find and evaluate information, but also create, organize and share information. a case in point was our adoption of digital publishing tools like bepress and omeka, but also the scholar’s lab. i’m seeing a similar contradiction in the public library space. say library and people think books. walk into a public library and people do games, meetings, trainings and any number of online tasks. this disconnect between what the word ‘library’ evokes in the mind’s eye and what it means in practice is telling. we’ve got a problem with our brand. in fact, we may need a new word. taken literally, a library has  been a word for a physical collection of written materials. the library of alexandria held scrolls for example. even code developers rely on ‘libraries’ today, which are collections of materials. in every case, the emphasis is on the collection of things. now, i’m not suggesting that we move away from books. books are vessels for ideas and libraries will always be about ideas. in fact, this focus on ideas rather than any one mode for transmitting ideas is key. in today’s library’s people not only read about ideas, they meet to discuss ideas, they brainstorm ideas. i don’t pretend to have the magic word. in fact, maybe it’s taking so long for us to drop ‘library’ because there is not a good word in existence. maybe we need create a new one. one tactic that comes to mind as we navigate this terminological evolution is to retain the library, but subsume it inside of something new. i’ve seen this done to various degrees in other libraries. for example, loyola university in chicago built an entirely new building adjacent to the book-filled library. administratively, the building is run by the library, but it is called the klarchek information commons. in that rather marvelous space looking out over lake michigan, you’ll find the modern ‘library’ in all its glory. computers, collaboration booths, etc. i like this model for fixing our identity problem and i think it would work without throwing the baby out with the bathwater. however, its done, one thing is for sure. our users have moved on from ‘the library’ and are left with no accurate way to describe that place that they love to go to when they want to engage with ideas. let’s put our thinking caps on and puts a word on their lips that does justice to what the old library has become. let’s get past the l word. posted in librarianship | tagged branding, information commons | leave a comment locking down windows posted on march , by mryanhess i’ve recently moved back to windows for my desktop computing. but windows comes with enormous privacy and security issues that people need to take into account…and get under a semblance of control. here’s how i did it. there has been much written on this subject, so what i’m including here is more of a digest of what i’ve found elsewhere with perspective on how it worked out for me over time. windows tweaker this is a pretty good tool that does what windows should do out of the box: give you one-stop access to all windows’ settings. as it is, windows has spread out many settings, including those for privacy, to the settings screen as well as registry editor and group policy editor. there are dozens of look and feel tweaks, including an easy way to force windows to use the hidden dark theme. the privacy tab, however, is the single most important. there, you can easily turn of all the nasty privacy holes in windows , such as how the os sends things like keystrokes (that’s right!) back to microsoft. the list of holes it will close is long: telemetry, biometrics, advertising id, cortana, etc. cortana speaking of cortana, i was really excited that this kind of virtual assistant was embedded in windows . i looked forward to trying it out. but then i read the fine print. cortana is a privacy nightmare. she can’t be trusted. she’s a blabbermouth and repeats back everything you tell her to not just microsoft, but indirectly to all of their advertising partners. and who knows where all that data goes and how secure it is in the long run. yuck! turn her off. pull the plug. zero her out. the easiest way to disable her is to set up a local account. but there’s more info out there, including this at pc world. local account when you first install windows , unplug the ethernet and shut down wifi. then, when you’re certain that all of msft’s listeners can’t communicate with your machine, go through the installation set up process and when asked to create/log in to your microsoft account, don’t. instead, use the local account option. the down sides of going this route are that you can’t sync your experience, accounts and apps across devices. you also won’t be able to use cortana. the up sides are that using a local account means you will be far more secure and private in whatever you do with your computer (as long as you maintain the many other privacy settings). reduce risk and streamline your pc windows comes crammed with many programs you may not want. some of these may even be tracking and sharing, so if you don’t actually use it, why not lighten the load on your system and remove them. you can do this the slow way, one app at a time, or you can use the powershell nuclear option and kill them all at once. i did this and haven’t regretted it one bit. so fire away… privacy settings i won’t go into all of this. there is plenty of solid advise on reducing your exposure on other sites (like at pc world) and some lengthy youtube videos which you can easily find. but it is critical that you go into the settings panel and turn everything off at the very least. that’s my feeling. some tell you that you even need to set up ip blocks to keep your machine from reporting back to microsoft and its advertising partners. others say this is somewhat overblown, and not unique to windows, like over at lifehacker, so i’ll leave it to you to decide. conclusion it’s really too bad that operating systems have gone down this road. our pcs should be tools for us and not the other way around. imagine if everything that happened on your device stayed private. imagine if it was all encrypted and nobody could hack into your pc or microsoft’s servers or their advertisers’ databases and learn all kinds of things about you, your family, your work, your finances, your secrets. and yet, this is precisely what microsoft (and ios, android and others) did, intentionally. frankly, i think its bordering on criminal negligence, but good luck suing when your data gets exploited. better safe than sorry…that’s my take. do a little work and lock down your computer. good luck out there…   posted in online security & privacy, technology | tagged microsoft, online security & privacy, security, windows | leave a comment killer apps & hacks for windows  posted on march , by mryanhess did the ux people at microsoft ever test windows ? here are some must have apps and hacks i’ve found to make life on windows quick and easy. set hotkeys for apps sometimes you just want to launch an app from your keyboard. using a method on laptopmag.com, you can do this for most any program. i use this in combination with macros like those noted below. quick switch to vpn vpn macro if you’re a smart and secure internet user, you probably already use a vpn service to encrypt the data and web requests you send over the internet (especially while on public wif-fi networks). but windows makes connecting to your vpn service a bit of a chore (i use private internet access, by the way). it’s weird because windows actually placed the connect to vpn in the communications center, but you still need to click into that, then click the vpn you want and then click connect…that’s clicks if you’re counting. i’ve tried two methods to make this at least a little easier. one caveat on all of this: if you log in with an administrator account (which i don’t because i’m concerned about security after all!), you could have your vpn client launch at start, but you’d still need to click the connect button and anytime you put the machine to sleep, it would disconnect (why they do that is beyond me). with both methods, you need to manually add a vpn account to windows built-in vpn feature. anyway, here are my two methods: macro method you can record actions as a “macro” and then save it as an executable program. you can then save the program to your desktop, start or taskbar. it’s a bit of a chore and in the end, the best you get is two-click access to your vpn connection…not the one-click you would get on a mac. if my memory serves, this method only works if you log-in with an administrator account. otherwise, you’ll be prompted for an administrator password each time…an who wants that? create shortcut to settings page add a hotkey to shortcut: create macro using something like jitbit that uses the new hotkey. save as executable create a shortcut to the desktop and pin to start optionally, change the icon to look pretty pin the communicator vpn app to your start pane. this is actually how i ended up going in the end. to do this, you need to ‘hack’ a shortcut that points to your vpn settings panel (where the connect button resides). on your desktop, right-click and select new > shortcut a shortcut wizard will open paste ms-settings:network-vpn into the form now pin the shortcut to your start and you have quick access to the connect dialog for your vpn switch between audio devices sometimes i want to jump between my speakers and my headphones and because i hate clicking and loath jumping out of windows ’s metro design into the old-school looking audio device controller, i followed the advice from the windows club. their solution uses freeware called audio switcher to assign a hotkey to different audio devices. i added audio switcher to my startup to make this a little more automated. unfortunately, because i normally work in a non-administrator account on windows , i get asked for an admin password to launch this app at startup. egads! in my case, i can now click the f (headphones) and f (speakers)  keys to switch playback devices for sound. overcoming the windows education or windows pro watermark windows embeds a horrible little windows education or windows pro watermark over the lower right corner of your desktop if you use one of those versions. there are two solutions to removing this remarkably distracting bit of text. use a white background to “disappear” the white text or, have an app sit over that space. i use musicbee (recommended by lifehacker) and set position the mini-version over that spot. supposedly there’s a regex trick where you delete the text but that’s a bit much work for me for such a slight annoyance. other tricks there are a couple other tricks that i’ve used to clean up windows. removing metro apps. this allows you to remove all the built-in apps that are there simply to confound your privacy and peddle your identity to microsoft’s advertising partners. remove them. removing default folders from explorer. if you’re like me and want better performance, you use a separate hard disk drive for your music, video and images and another drive (probably an ssd) for your os and programs. windows is confusing for people with this kind of set up by placing folders in the file explorer to your images, documents, etc. on your c drive. in my case, that’s not the right drive. so i used the method linked above to remove those from explorer. posted in technology | tagged life hacks, macros, vpn, windows | leave a comment post navigation ← older posts search search subscribe enter your email address to subscribe to this blog and receive notifications of new posts by email. join other followers email address: sign me up! recent luddites, trumpism and change: a crossroads for libraries is d printing dying? the state of the library website virtual realty is getting real in the library w c’s css framework review topics best practices ( ) case studies ( ) digital services ( ) green tech ( ) information architecture ( ) innovation ( ) international librarianship ( ) librarianship ( ) library management ( ) online security & privacy ( ) reviews ( ) society ( ) tech industry ( ) technology ( ) uncategorized ( ) tweets rt @techn joy: i often check other library websites for design inspiration. today, i found my very favorite stat on @uvalibrary 's page htt…  years ago congress has sold your privacy. let's buy theirs - gofundme.com/buycongressdat…  years ago luddites, trumpism and change: a crossroads for libraries faillab.wordpress.com/ / / /lud…  years ago archives archives select month december october september june may april march january december november april february january december november september april march february november october july june may april march february january november october september august july march february january december october september august july june may april march february january december blog at wordpress.com. fail!lab blog at wordpress.com. email (required) name (required) website   loading comments... comment × privacy & cookies: this site uses cookies. by continuing to use this website, you agree to their use. to find out more, including how to control cookies, see here: cookie policy none none none none talk: using light from the dumpster fire to illuminate a more just digital world – erin white erinrwhite published april , skip to content erinrwhite in libraries, richmond | april , talk: using light from the dumpster fire to illuminate a more just digital world this february i gave a lightning talk for the richmond design group. my question: what if we use the light from the dumpster fire of to see an equitable, just digital world? how can we change our thinking to build the future web we need? presentation is embedded here; text of talk is below. hi everybody, i’m erin. before i get started i want to say thank you to the rva design group organizers. this is hard work and some folks have been doing it for years. thank you to the organizers of this group for doing this work and for inviting me to speak. this talk isn’t about . this talk is about the future. but to understand the future, we gotta look back. the web in travel with me to . twenty-five years ago! i want to transport us back to the mindset of the early web. the fundamental idea of hyperlinks, which we now take for granted, really twisted everyone’s noodles. so much of the promise of the early web was that with broad access to publish in hypertext, the opportunities were limitless. technologists saw the web as an equalizing space where systems of oppression that exist in the real world wouldn’t matter, and that we’d all be equal and free from prejudice. nice idea, right? you don’t need to’ve been around since to know that’s just not the way things have gone down. pictured before you are some of the early web pioneers. notice a pattern here? these early visions of the web, including barlow’s declaration of independence of cyberspace, while inspiring and exciting, were crafted by the same types of folks who wrote the actual declaration of independence: the landed gentry, white men with privilege. their vision for the web echoed the declaration of independence’s authors’ attempts to describe the world they envisioned. and what followed was the inevitable conflict with reality. we all now hold these truths to be self-evident: the systems humans build reflect humans’ biases and prejudices. we continue to struggle to diversify the technology industry. knowledge is interest-driven. inequality exists, online and off. celebrating, rather than diminishing, folks’ intersecting identities is vital to human flourishing. the web we have known profit first: monetization, ads, the funnel, dark patterns can we?: innovation for innovation’s sake solutionism: code will save us visual design: aesthetics over usability lone genius: “hard” skills and rock star coders short term thinking: move fast, break stuff shipping: new features, forsaking infrastructure let’s move forward quickly through the past years or so of the web, of digital design. all of the web we know today has been shaped in some way by intersecting matrices of domination: colonialism, capitalism, white supremacy, patriarchy. (thank you, bell hooks.) the digital worlds where we spend our time – and that we build!! – exist in this way. this is not an indictment of anyone’s individual work, so please don’t take it personally. what i’m talking about here is the digital milieu where we live our lives. the funnel drives everything. folks who work in nonprofits and public entities often tie ourselves in knots to retrofit our use cases in order to use common web tools (google analytics, anyone?) in chasing innovation™ we often overlook important infrastructure work, and devalue work — like web accessibility, truly user-centered design, care work, documentation, customer support and even care for ourselves and our teams — that doesn’t drive the bottom line. we frequently write checks for our future selves to cash, knowing damn well that we’ll keep burying ourselves in technical debt. that’s some tough stuff for us to carry with us every day. the “move fast” mentality has resulted in explosive growth, but at what cost? and in creating urgency where it doesn’t need to exist, focusing on new things rather than repair, the end result is that we’re building a house of cards. and we’re exhausted. to zoom way out, this is another manifestation of late capitalism. emphasis on late. because… happened. what taught us hard times amplify existing inequalities cutting corners mortgages our future infrastructure is essential “colorblind”/color-evasive policy doesn’t cut it inclusive design is vital we have a duty to each other technology is only one piece together, we rise the past year has been awful for pretty much everybody. but what the light from this dumpster fire has illuminated is that things have actually been awful for a lot of people, for a long time. this year has shown us how perilous it is to avoid important infrastructure work and to pursue innovation over access. it’s also shown us that what is sometimes referred to as colorblindness — i use the term color-evasiveness because it is not ableist and it is more accurate — a color-evasive approach that assumes everyone’s needs are the same in fact leaves people out, especially folks who need the most support. we’ve learned that technology is a crucial tool and that it’s just one thing that keeps us connected to each other as humans. finally, we’ve learned that if we work together we can actually make shit happen, despite a world that tells us individual action is meaningless. like biscuits in a pan, when we connect, we rise together. marginalized folks have been saying this shit for years. more of us than ever see these things now. and now we can’t, and shouldn’t, unsee it. the web we can build together current state: – profit first – can we? – solutionism – aesthetics – “hard” skills – rockstar coders – short term thinking – shipping future state: – people first: security, privacy, inclusion – should we? – holistic design – accessibility – soft skills – teams – long term thinking – sustaining so let’s talk about the future. i told you this would be a talk about the future. like many of y’all i have had a very hard time this year thinking about the future at all. it’s hard to make plans. it’s hard to know what the next few weeks, months, years will look like. and who will be there to see it with us. but sometimes, when i can think clearly about something besides just making it through every day, i wonder. what does a people-first digital world look like? who’s been missing this whole time? just because we can do something, does it mean we should? will technology actually solve this problem? are we even defining the problem correctly? what does it mean to design knowing that even “able-bodied” folks are only temporarily so? and that our products need to be used, by humans, in various contexts and emotional states? (there are also false binaries here: aesthetics vs. accessibility; abled and disabled; binaries are dangerous!) how can we nourish our collaborations with each other, with our teams, with our users? and focus on the wisdom of the folks in the room rather than assigning individuals as heroes? how can we build for maintenance and repair? how do we stop writing checks our future selves to cash – with interest? some of this here, i am speaking of as a web user and a web creator. i’ve only ever worked in the public sector. when i talk with folks working in the private sector i always do some amount of translating. at the end of the day, we’re solving many of the same problems. but what can private-sector workers learn from folks who come from a public-sector organization? and, as we think about what we build online, how can we also apply that thinking to our real-life communities? what is our role in shaping the public conversation around the use of technologies? i offer a few ideas here, but don’t want them to limit your thinking. consider the public sector here’s a thread about public service. ⚖️🏛️ 💪🏼💻🇺🇸 — dana chisnell (she / her) (@danachis) february , i don’t have a ton of time left today. i wanted to talk about public service like the very excellent dana chisnell here. like i said, i’ve worked in the public sector, in higher ed, for a long time. it’s my bread and butter. it’s weird, it’s hard, it’s great. there’s a lot of work to be done, and it ain’t happening at civic hackathons or from external contractors. the call needs to come from inside the house. working in the public sector government should be – inclusive of all people – responsive to needs of the people – effective in its duties & purpose — dana chisnell (she / her) (@danachis) february , i want you to consider for a minute how many folks are working in the public sector right now, and how technical expertise — especially in-house expertise — is something that is desperately needed. pictured here are the old website and new website for the city of richmond. i have a whole ‘nother talk about that new richmond website. i foia’d the contracts for this website. there are accessibility errors on the homepage alone. it’s been in development for years and still isn’t in full production. bottom line, good government work matters, and it’s hard to find. important work is put out for the lowest bidder and often external agencies don’t get it right. what would it look like to have that expertise in-house? influencing technology policy we also desperately need lawmakers and citizens who understand technology and ask important questions about ethics and human impact of systems decisions. pictured here are some headlines as well as a contract from the city of richmond. y’all know we spent $ . million on a predictive policing system that will disproportionately harm citizens of color? and that earlier this month, city council voted to allow richmond and vcu pd’s to start sharing their data in that system? the surveillance state abides. technology facilitates. i dare say these technologies are designed to bank on the fact that lawmakers don’t know what they’re looking at. my theory is, in addition to holding deep prejudices, lawmakers are also deeply baffled by technology. the hard questions aren’t being asked, or they’re coming too late, and they’re coming from citizens who have to put themselves in harm’s way to do so. technophobia is another harmful element that’s emerged in the past decades. what would a world look like where technology is not a thing to shrug off as un-understandable, but is instead deftly co-designed to meet our needs, rather than licensed to our city for . million dollars? what if everyone knew that technology is not neutral? closing this is some of the future i can see. i hope that it’s sparked new thoughts for you. let’s envision a future together. what has the light illuminated for you? thank you! erinrwhite published april , write a comment cancel reply write a comment comment name email website categories categoriesselect category bikes conferences libraries life projects richmond archives archives select month april march may march march february september august january december september august may april march march february contact e-mail me follow @erinrwhite independent publisher empowered by wordpress none twarc/deletes.py at main · docnow/twarc · github skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} docnow / twarc notifications star k fork code issues pull requests actions projects wiki security insights more code issues pull requests actions projects wiki security insights permalink main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags twarc/utils/deletes.py / jump to code definitions no definitions found in this file. code navigation not available for this commit go to file go to file t go to line l go to definition r copy path copy permalink     cannot retrieve contributors at this time executable file lines ( sloc) . kb raw blame open with desktop view raw view blame #!/usr/bin/env python """ this program assumes that you are feeding it tweet json data for tweets that have been deleted. it will use the metadata and the api to analyze why each tweet appears to have been deleted. note that lookups are based on user id, so may give different results than looking up a user by screen name. """ import json import fileinput import collections import requests import twarc import argparse import logging user_ok = "user_ok" user_deleted = "user_deleted" user_protected = "user_protected" user_suspended = "user_suspended" tweet_ok = "tweet_ok" tweet_deleted = "tweet_deleted" # you have been blocked by the user. tweet_blocked = "tweet_blocked" retweet_deleted = "retweet_deleted" original_tweet_deleted = "original_tweet_deleted" original_tweet_blocked = "original_tweet_blocked" original_user_deleted = "original_user_deleted" original_user_protected = "original_user_protected" original_user_suspended = "original_user_suspended" t = twarc.twarc() def main(files, enhance_tweet=false, print_results=true): counts = collections.counter() for count, line in enumerate(fileinput.input(files=files)): if count % == : logging.info("processed {:,} tweets".format(count)) tweet = json.loads(line) result = examine(tweet) if enhance_tweet: tweet['delete_reason'] = result print(json.dumps(tweet)) else: print(tweet_url(tweet), result) counts[result] += if print_results: for result, count in counts.most_common(): print(result, count) def examine(tweet): user_status = get_user_status(tweet) # go with user status first (suspended, protected, deleted) if user_status != user_ok: return user_status else: retweet = tweet.get('retweeted_status', none) tweet_status = get_tweet_status(tweet) # if not a retweet and tweet deleted, then tweet deleted. if tweet_status == tweet_ok: return tweet_ok elif retweet is none or tweet_status == tweet_blocked: return tweet_status else: rt_status = examine(retweet) if rt_status == user_deleted: return original_user_deleted elif rt_status == user_protected: return original_user_protected elif rt_status == user_suspended: return original_user_suspended elif rt_status == tweet_deleted: return original_tweet_deleted elif rt_status == tweet_blocked: return original_tweet_blocked elif rt_status == tweet_ok: return retweet_deleted else: raise "unexpected retweet status %s for %s" % (rt_status, tweet['id_str']) users = {} def get_user_status(tweet): user_id = tweet['user']['id_str'] if user_id in users: return users[user_id] url = "https://api.twitter.com/ . /users/show.json" params = {"user_id": user_id} # user_deleted: and {"errors": [{"code": , "message": "user not found."}]} # user_protected: and user object with "protected": true # user_suspended: and {"errors":[{"code": ,"message":"user has been suspended."}]} result = user_ok try: resp = t.get(url, params=params, allow_ =true) user = resp.json() if user['protected']: result = user_protected except requests.exceptions.httperror as e: try: resp_json = e.response.json() except json.decoder.jsondecodeerror: raise e if e.response.status_code == and has_error_code(resp_json, ): result = user_deleted elif e.response.status_code == and has_error_code(resp_json, ): result = user_suspended else: raise e users[user_id] = result return result tweets = {} def get_tweet_status(tweet): id = tweet['id_str'] if id in tweets: return tweets[id] # user_suspended: and {"errors":[{"code": ,"message":"user has been suspended."}]} # user_protected: and {"errors":[{"code": ,"message":"sorry, you are not authorized to see this status."}]} # tweet_deleted: and {"errors":[{"code": ,"message":"no status found with that id."}]} # or {"errors":[{"code": ,"message":"sorry, that page does not exist."}]} url = "https://api.twitter.com/ . /statuses/show.json" params = {"id": id} result = tweet_ok try: t.get(url, params=params, allow_ =true) except requests.exceptions.httperror as e: try: resp_json = e.response.json() except json.decoder.jsondecodeerror: raise e if e.response.status_code == and has_error_code(resp_json, ( , )): result = tweet_deleted elif e.response.status_code == and has_error_code(resp_json, ): result = user_suspended elif e.response.status_code == and has_error_code(resp_json, ): result = user_protected elif e.response.status_code == and has_error_code(resp_json, ): result = tweet_blocked else: raise e tweets[id] = result return result def tweet_url(tweet): return "https://twitter.com/%s/status/%s" % ( tweet['user']['screen_name'], tweet['id_str']) def has_error_code(resp, code): if isinstance(code, int): code = (code, ) for error in resp['errors']: if error['code'] in code: return true return false if __name__ == "__main__": parser = argparse.argumentparser() parser.add_argument('--enhance', action='store_true', help='enhance tweet with delete_reason and output enhanced tweet.') parser.add_argument('--skip-results', action='store_true', help='skip outputting delete reason summary') parser.add_argument('files', metavar='file', nargs='*', help='files to read, if empty, stdin is used') args = parser.parse_args() main(args.files if len(args.files) > else ('-',), enhance_tweet=args.enhance, print_results=not args.skip_results and not args.enhance) copy lines copy permalink view git blame reference in new issue go © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. home - ilda about about ilda transparency report strategic areas community gender and inclusion developing technologies transparency and governance projects femicide data standard artificial intelligence regional open data barometer global data barometer resources papers reports tools blog contact  español  english  português do brasil we work towards an open, equal and data-driven region featured projects proyectos status: active ilda: the next generation proyectos status: active empatía proyectos status: active femicide data standardization proyectos status: active global data barometer proyectos status: active regional open data barometer proyectos status: active data+art news posts / / open data standards design behind closed doors? recursos / / data for development – a road ahead recursos / / flow to identify femicides dirección legal rincon / montevideo - uruguay impact hub av. , entre calle y , san pedro san josé - costa rica home researches projects blog contacto suscribite a nuestro newsletter: leave this field empty if you're human: contactanos seguinos seguinos en: apoyan: go to hellman go to hellman if you wanna end war and stuff, you gotta sing loud! open access for backlist books, part ii: the all-stars open access for backlist books, part i: the slush pile creating value with open access books infra-infrastructure, inter-infrastructure and para-infrastructure we should regulate virality notes on work-from-home teams your identity, your library four-leaf clovers responding to critical reviews ra : technology is not the problem. ra doesn't address the yet-another-wayf problem. radical inclusiveness would. ra 's recommended technical approach is broken by emerging browser privacy features ra draft rp session timeout recommendation considered harmful ra rp does not require secure protocols. it should. fudge, and open access ebook download statistics on the surveillance techno-state towards impact-based oa funding a milestone for gitenberg ebook drm and blockchain play cryptokitty and mouse. and the winner is... my face is personally identifiable information the vast potential for blockchain in libraries the shocking truth about ra : it's made of people! choose privacy week: your library organization is watching you everything* you always wanted to know about voodoo (but were afraid to ask) holtzbrinck has attacked project gutenberg in a new front in the war of copyright maximization digitalno inovacijsko stičišče slovenije - digitalno inovacijsko stičišče slovenije o nas kontakt slovenščina | english vstop iskanje katalog strokovnjakov brskajte po katalogu vpis v katalog vavčerji aktualno novice dogodki baza znanja katalog dobrih praks strokovna gradiva video vsebine razpisi sodelujte ob predsedovanju slovenije svetu eu se predstavite na digitalnem razstavišču tehnologija za ljudi poziv podjetjem k sodelovanju v pozivu - spletne tržnice sps z vavčerji znova podpira digitalizacijo naložbo sofinancirata republika slovenija in evropska unija iz evropskega sklada za regionalni razvoj. brskajte po katalogu strokovnjakov pridobite vavčer za sofinanciranje vpišite se v katalog strokovnjakov novice . apr. priložnosti za digitalizacijo slovenskega gospodarstva v okviru nove finančne perspektive - . apr. oblikovanje predlogov vsebin za študijske programe . mar. z novo pobudo lažje do digitalnih znanj za delovna mesta prihodnosti vse novice dosezite podobne rezultate tudi vi. sodelujte z nami! odkrijte prednosti povezovanja partnerjev v dih slovenije. sodelujte z nami dogodki udeležite se srečanj za digitalno transformacijo. vavčerji do % sofinanciranja na področju digitalizacije. omogočamo digitalno transformacijo. gradimo med-sektorska in multidisciplinarna partnerstva: univerze, raziskovalne in poslovne ustanove, podjetja, ponudniki ikt in podporne organizacije za podjetja, ki predstavljajo ekosistem za trajnostno kratkoročno in dolgoročno podporo tej viziji. povezovanje dih slovenije zagotavlja povezave z vlagatelji, olajša dostop do financiranja digitalne transformacije, poveže uporabnike in ponudnike digitalnih inovacij ter omogoča sinergije med digitalnimi in drugimi ključnimi tehnologijami. kompetence razvoj digitalnih kompetenc in kadrov prihodnosti. podpora digitalni transformaciji skupni razvoj storitev za podporo upravljanju digitalne preobrazbe v podjetjih. inovacije in prototipi spodbujanje odprtega inoviranja, oblikovanje novih poslovnih modelov, eksperimentalnih in pilotnih okolij. internacionalizacija prenos dobrih praks in sodelovanje z drugimi digitalnimi inovacijskimi stičišči v eu. več o dih slovenija strateški partnerji, ki nam pomagajo graditi digitalno prihodnost slovenije sodelujte z nami tudi vi? ostanite na tekočem. prijavite se na enovice! prijavite se na enovice katalog strokovnjakov vavčerji aktualno brskajte po katalogu strokovnjakov pridobite vavčer za sofinanciranje vpišite se v katalog strokovnjakov sodelujte z nami odkrijte prednosti povezovanja partnerjev v dih slovenije. sodelujte z nami dimičeva , ljubljana, slovenija pon.–pet., : - : info@dihslovenia.si podpora naložbo sofinancirata republika slovenija in evropska unija iz evropskega sklada za regionalni razvoj. Članstvo © digital innovation hub slovenia. vse pravice pridržane. pravna obvestila politika zasebnosti piškotki prosimo, potrdite piškotke. na spletni strani dihslovenia.si uporabljamo piškotke z namenom zagotavljanja spletne storitve in funkcionalnosti, ki jih brez njih ne bi mogli nuditi. prosimo vas, da s klikom na spodnji gumb potrdite uporabo piškotkov na naši spletni strani. strinjam se več informacij none github - softwaresaved/habeas-corpus: a corpus of research software used in covid- research. skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} softwaresaved / habeas-corpus notifications star fork a corpus of research software used in covid- research. mit license stars forks star notifications code issues pull requests actions projects security insights more code issues pull requests actions projects security insights main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags branches tags go to file code clone https github cli use git or checkout with svn using the web url. work fast with our official cli. learn more. open with github desktop download zip launching github desktop if nothing happens, download github desktop and try again. go back launching github desktop if nothing happens, download github desktop and try again. go back launching xcode if nothing happens, download xcode and try again. go back launching visual studio if nothing happens, download the github extension for visual studio and try again. go back latest commit   git stats commits files permalink failed to load latest commit information. type name latest commit message commit time r     data     docs     notebooks     .gitignore     habeas corpus logo.png     license     readme.md     postbuild     requirements.txt     view code habeas corpus contributing ✏️ project roadmap 🏁 licensing acknowledgements 👪 references 📚 readme.md habeas corpus this is work done during the hack day at collaborations workshop , to create a corpus of research software used for covid- and coronavirus-related research that will be useful in a number of ways to the research software sustainability community around the software sustainability institute. this is based on and extends the "cord- software mentions" dataset published by the chan zuckerberg institute (doi: https://doi.org/ . /dryad.vmcvdncs ). contributing ✏️ habeas corpus is a collaborative project and we welcome suggestions and contributions. we hope one of the invitations below works for you, but if not, please let us know! 🏃 i'm busy, i only have minute tell a friend about the project! ⏳ i've got minutes - tell me what i should do suggest ideas for how you would like to use habeas corpus 💻 i've got a few hours to work on this take a look at the issues and see if there are any you can contribute to create an analysis using the data and let us know about it 🎉 i really want to help increase the community organise a hackday to use or improve habeas corpus please open a github issue to suggest a new idea or let us know about bugs. project roadmap 🏁 for tasks to work on in the near future, please see open issues. for the bigger picture, please check and contribute to plan.md licensing software code and notebooks from this project are licensed under the open source mit license. project documentation and images are licensed under cc by . . data produced by this project in the data/outputs directory is licensed under cc . other data included in this project from other sources remains licensed under its original license. acknowledgements 👪 this project originated as part of the collaborations workshop . it was based on an original idea by neil chue hong (@npch) and stephan druskat (@sdruskat), incorporated ideas and feedback from michelle barker, daniel s. katz, shoaib sufi, carina haupt and callum rollo, and was developed by alexander konovalov (@alex-konovalov), hao ye (@ha ye), louise chisholm (@louisechisholm), mark turner (@marklturner), neil chue hong (@npch), sammie buzzard (@sammiebuzzard), and stephan druskat (@sdruskat). the data is derived from the "cord- software mentions" dataset published by alex d wade and ivana williams from the chan zuckerberg initiative and released under a cc license. references 📚 softcite dataset v . : du, c., cohoon, j., lopez, p., & howison, j. (forthcoming). softcite dataset: a dataset of software mentions in biomedical and economic research publications. journal of the association for information science and technology. doi: . /asi. . cord- software mentions software in the scientific literature: problems with seeing, finding, and using software mentioned in the biology literature introducing the pid graph about a corpus of research software used in covid- research. topics research-software resources readme license mit license releases no releases published packages no packages published contributors languages jupyter notebook . % other . % © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. none meta interchange meta interchange libraries, computing, metadata, and more trading for images let&# ;s search a koha catalog for something that isn&# ;t at all controversial: what you search for in a library catalog ought to be only between... entering a very brief post to start the new year. i&# ;m not inclined to make elaborate resolutions for the new year other than being very firm... data cleanup as a force for evil a quotidian concern of anybody responsible for a database is the messy data it contains. see a record about a pedro gonzález? bah, the assumption of... on being wrong, wrong, wrong yesterday i gave a lightning talk at the evergreen conference on being wrong. appropriately, i started out the talk on the wrong foot. i intended... fostering a habit of nondisclosure it almost doesn&# ;t need to be said that old-fashioned library checkout cards were terrible for patron privacy. want to know who had checked out a... scaling the annual code lib conference one of the beautiful things about code lib qua banner is that it can be easily taken up by anyway without asking permission. if i wanted... amelia, - last year, i wrote about the blossoming of the mellie-cat, and closed with this line: &# ;sixteen years is not long enough to get to know... mashcat at ala annual + shared notes i&# ;m leaving for chicago tomorrow to attend ala annual (and to eat some real pizza), and while going over the schedule i found some... what makes an anti-librarian? assuming the order gets made and shipped in time (update - - : it did), i&# ;ll be arriving in chicago for ala annual carrying a few tens... imls support for free and open source software the institute of museum and library services is the u.s. government&# ;s primary vehicle for direct federal support of libraries, museums, and archives across the entire... github - docnow/twarc-ids: a plugin for twarc to extract tweet ids from tweet json. skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} docnow / twarc-ids notifications star fork a plugin for twarc to extract tweet ids from tweet json. mit license star forks star notifications code issues pull requests actions projects security insights more code issues pull requests actions projects security insights main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags branch tags go to file code clone https github cli use git or checkout with svn using the web url. work fast with our official cli. learn more. open with github desktop download zip launching github desktop if nothing happens, download github desktop and try again. go back launching github desktop if nothing happens, download github desktop and try again. go back launching xcode if nothing happens, download xcode and try again. go back launching visual studio if nothing happens, download the github extension for visual studio and try again. go back latest commit   git stats commits files permalink failed to load latest commit information. type name latest commit message commit time test-data     .gitignore     license     readme.md     setup.cfg     setup.py     test_twarc_ids.py     twarc_ids.py     view code readme.md twarc-ids this module is a simple example of how to create a plugin for twarc. it uses click-plugins to extend the main twarc command, and to manage the command line options. first you need to install twarc and this plugin: pip install twarc pip install twarc-ids now you can collect data using the core twarc utility: twarc search blacklivesmatter > tweets.jsonl and you have a new subcommand ids that is supplied by twarc-ids. twarc ids tweets.jsonl > ids.txt it's good practice to include some tests for your module. see test_twarc_ids.py for an example. you can run it directly with pytest or using: python setup.py test when creating your setup.py make sure you don't forget the entry_points magic so that twarc will find your plugin when it is installed! about a plugin for twarc to extract tweet ids from tweet json. resources readme license mit license releases no releases published packages no packages published languages python . % © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. bethany nowviskie skip to content bethany nowviskie menu bio minor arcana jmu libraries cv search for: search reconstitute the world speculative collections on capacity and care foreword (to the past) posted on october october by bethany nowviskie congratulations to melissa terras and paul gooding on the publication of an important new collection of essays entitled electronic legal deposit: shaping the library collections of the future! this volume takes a global outlook on challenges and successes in preserving digital information, and stems from their digital library futures ahrc project, which first analyzed the impact of electronic legal deposit legislation on academic libraries and their users in the uk. more from melissa here, including “an ark to save learning from deluge? reconceptualising legal deposit after the digital turn,” an oa version of the opening chapter she & paul contributed to the collection. i was honored to be asked to write a foreword to the book, which i share here, under facet publishing’s green oa agreement, as my own author’s last copy of a single chapter from an edited collection. i thought i’d post it, particularly, now — as next week not only marks world digital preservation day, but another highly significant election day in the united states. we are four years on from the moment i describe below… on the morning of november th, , i looked out over a milwaukee ballroom crowded with librarians, archivists, and specialists in digital preservation. some were pensive. many were weeping. others seemed stricken. my audience had gathered for the first joint conference of the digital library federation (dlf, the us-based nonprofit organization i then directed) with its new partner, the national digital stewardship alliance (ndsa)—a cross-industry group that had recently come under dlf’s wing from its place of genesis at the library of congress. we were strangers and friends, largely though not exclusively american, united in a community of practice and the common cause of a dedication to the future of libraries, archives, and their holdings and information services in the digital age. but it suddenly felt as if we didn’t know what information was, and whether—despite all our efforts, expertise, and the shared infrastructure that our memory institutions represented—its future could be made secure. the unexpected outcome of the us presidential election, announced in the wee hours the night before, had cast a pall over this professional audience that crossed party lines. how could so many confident, data-driven predictions have been so wrong? what shared social understandings—built from the seeming common landscape of ubiquitous digital information that we had met to manage and survey—had never, in fact, been shared or were even commonly legible at all? and what evidentiary traces of this time would remain, in a political scene of post-truth posturing, the devaluation of expert knowledge, and the willingness of our new authorities—soon to become as evident on federal websites as in press conferences and cable news punditry—to revise and resubmit the historical record? the weeks and months that followed, for dlf and ndsa members, were filled with action. while the end of term web archive project sprang to its regular work of harvesting us federal domains at moments of presidential transition, reports that trump administration officials had ordered the removal of information on climate change and animal welfare from the websites of the environmental protection agency and us department of agriculture fostered a fear of the widespread deletion of scientific records, and prompted emergency ‘data rescue’ download parties. a new dlf government records transparency and accountability working group was launched. its members began watch-dogging preparations for the us census and highlighting house and senate bills meant to curtail scientific and demographic data creation; scrutinizing proposed changes to the records retention schedules of federal agencies and seeking ways to make the arcanum of their digital preservation workflows more accessible to the general public; and—amid new threats of the deportation of immigrants and the continued rise of violent nationalism—asking crucial questions about what electronic information should be made discoverable and accessible, for the protection of vulnerable persons. the social sciences research council convened a meeting on challenges to the digital preservation of documents of particular value to historians, economists, cultural anthropologists, and other social scientists, and the pegi project—focusing on the preservation of electronic government information—commissioned a wide-ranging report on at-risk, born-digital information meant to be held by us federal depository libraries and other cultural memory institutions for long-term public access and use. over time, reflective, pedagogical, and awareness-raising projects like endangered data week emerged, ties among the ndsa and international organizations like the uk-based digital preservation coalition were strengthened, and conversations on college campuses (fueled by the cambridge analytica scandal and the work of scholars of race, technology, and social media like safiya noble and siva vaidhyanathan) turned more squarely to data ethics and algorithmic literacy. frenetic data rescue parties gave over to the more measured advocacy and storytelling approach of the data refuge movement. and in the uk, an ahrc-funded ‘digital library futures’ project led by paul gooding and melissa terras (the seed of this edited collection) offered a golden opportunity to reflect—in the light of altered global understandings of the preservation and access challenges surrounding digital information—on the parliamentary legal deposit libraries (non print works) regulations of , which extended collecting practices dating to the early modern period to new media formats beyond the book. you hold in your hands (or view on your screens, or listen to through e-readers, or encounter in some other way i can’t yet foresee) an important and timely volume. it is well balanced between reflection-and-outlook and practice-and-method in what our editors call the ‘contested space’ of e-legal deposit—taking on the international and very long-term consequences of our present-day conception, regulation, assembly, positioning, and use of library-held digital collections. in other words, the essays assembled here cross space and time. the editors take a necessarily global view in bringing together a broad array of national approaches to the legal deposit of materials that already circulate in world-wide networks. and while the authors they’ve invited to contribute certainly take a long view of digital information, they also frequently address, head-on, the ways that electronic legal deposit forces our attention not just on posterity, but on the here-and-now of what media consumption means and how it works in the digital age. rather than asking us to rest our imaginations on a far-future prospect in which reading is conducted as it ever was in print (was any such act, as jerome mcgann would ask, self-identical?), the authors of these essays, collectively, assert that the kaleidoscopic mediations of e-legal deposit show us we’ve never really known what reading is.  the best thinkers on libraries question the very assumptions that our memory institutions rest upon, while elevating and honoring both their promise and the centuries of labor and careful (if not always disinterested or benign) intent that have made them what they are. melissa terras and paul gooding are among the best, and the perspectives they have assembled here—from publishers, eminent librarians and archivists, technologists, organizers, and scholars—make this edited collection an essential contribution to the literature on digital preservation. it is a necessary book that grapples with legal, practical, technical, and conceptual problems: with the distinctive visions and values of libraries; with the necessarily concomitant development of policies and platforms; and even with the very nature of our documentary heritage, at a moment when print-era logics break down. what i most appreciate is that this book—like the notion of e-legal deposit itself—calls for careful consideration of both present-day services and research possibilities not yet dreamt of. in this, it serves the true mission of legal deposit libraries: to be a stable bridge between a past that is perpetually constructed by our acts of preservation and erasure—and the many futures we may mediate but can barely imagine. posted in higher ed, infrastructure a pledge: self-examination and concrete action in the jmu libraries posted on june june by bethany nowviskie “the beauty of anti-racism is that you don’t have to pretend to be free of racism to be an anti-racist. anti-racism is the commitment to fight racism wherever you find it, including in yourself. and it’s the only way forward.” — ijeoma oluo, author of so you want to talk about race. black lives matter. too long have we allowed acts of racism and deeply ingrained, institutionalized forces of white supremacy to devalue, endanger, and grievously harm black people and members of other minoritized and marginalized groups. state-sanctioned violence and racial terror exist alongside slower and more deep-seated forces of inequality, anti-blackness, colonization, militarization, class warfare, and oppression. as members of the jmu libraries dean’s council and council on diversity, equity, and inclusion, we acknowledge these forces to be both national and local, shaping the daily lived experiences of our students, faculty, staff, and community members. as a blended library and educational technology organization operating within a pwi, the jmu libraries both participates in and is damaged by the whiteness and privilege of our institutions and fields. supporting the james madison university community through a global pandemic has helped us see imbalances, biases, and fault lines of inequality more clearly. we pledge self-examination and concrete action. libraries and educational technology organizations hold power, and can share or even cede it. as we strive to create welcoming spaces and services for all members of our community, we assert the fundamental non-neutrality of libraries and the necessity of taking visible and real action against the forces of racism and oppression that affect bipoc students, faculty, staff, and community members. specifically, and in order to “fight racism wherever [we] find it, including in [ourselves],” we commit to: listen to bipoc and student voices, recognizing that they have long spoken on these issues and have too often gone unheard. educate ourselves and ask questions of all the work we do. (“to what end? to whose benefit? whose comfort is centered? who has most agency and voice? who is silenced, ignored, or harmed? who is elevated, honored, and made to feel safe? who can experience and express joy?”)  set public and increasingly measurable goals related to diversity, equity, inclusion, and anti-racism, so that we may be held accountable. continue to examine, revise, and augment our collections, services, policies, spending patterns, and commitments, in order to institutionalize better practices and create offerings with enduring impact. learn from, and do better by, our own colleagues. we are a predominantly white organization and it is likely that we will make mistakes as we try to live up to this pledge. when that happens, we will do the work to learn and rectify. we will apologize, examine our actions and embedded power structures, attempt to mitigate any harm caused by our actions, and we will do better. continue reading “a pledge: self-examination and concrete action in the jmu libraries” posted in higher ed change us, too posted on june may by bethany nowviskie [the following is a brief talk i gave at the opening plenary of rbms , a meeting of the rare books and manuscripts section of the acrl/ala. this year’s theme was “response and responsibility: special collections and climate change,” and my co-panelists were frances beinecke of the national resources defense council and brenda ekwurzel of the union of concerned scientists. many thanks to conference chairs ben goldman and kate hutchens, session chair melissa hubbard, and outgoing rbms chair shannon supple. the talk draws together some of my past writings, all of which are linked to and freely available. images in my slide deck, as here, were by catherine nelson.] six years ago, i began writing about cultural heritage and cultural memory in the context of our ongoing climate disaster. starting to write and talk publicly was a frank attempt to assuage my terror and my grief—my personal grief at past and coming losses in the natural world, and the sense of terror growing inside me, both at the long-term future of the digital and physical collections in my charge, and at the unplanned-for environmental hardships and accelerating social unrest my two young children, then six and nine years old, would one day face. i latched, as people trained as scholars sometimes do, onto a set of rich and varied theoretical frameworks. these were developed by others grappling with the exact same existential dread: some quite recent, some going back to the s, the s, even the s—demonstrating, for me, not just the continuity of scientific agreement on the facts of climate change and the need for collective action (as my co-panelists have demonstrated), but scholarly and artistic agreement on the generative value of responses from what would become the environmental humanities and from practices i might call green speculative design. the concepts and theories i lighted on, however, served another function. they allowed me simultaneously to elevate and to sublimate many of my hardest-hitting feelings. in other words, i put my fears into a linguistic machine labeled “the anthropocene”—engineered to extract angst and allow me to crank out historicized, lyrical melancholy on the other end. since then i’ve also become concerned that, alongside and through the explicit, theoretical frameworks i found in the literature, i leaned unconsciously—as cis-gender white women and other members of dominant groups almost inevitably do—on implicit frameworks of white supremacy, on my gender privilege, and on the settler ideologies that got us here in the first place, all of which uphold and support the kind of emotional and fundamentally self-centered response i was first disposed to make. i see more clearly now that none of this is about my own relatively vastly privileged children and well-tended collections—except insofar as both of them exist within broader networks and collectives of care, as one achingly beloved and all-too-transitory part. please don’t misunderstand me: it remains absolutely vital that we honor our attachments, and acknowledge the complexity and deep reality of our emotional responses to living through the sixth great mass extinction of life on this planet—vital to compassionate teaching and leadership, to responsible stewardship, and to defining value systems that help us become more humane in the face of problems of inhuman scale. grappling with our emotions as librarians and archivists (and as curators, conservators, collectors, community organizers, scholars, and scientists) will be a major part of the work of this conference. it is also vital to doing work that appreciates its own inner standing point, and uses its positionality to promote understanding and effect change. but i’ve felt my own orientation changing. for me, all of this is, every day, less and less about my feelings on special collections and climate change—except to the degree that those feelings drive me toward actions that have systemic impact and are consonant with a set of values we may share. so this is a brief talk that will try to walk you (for what it’s worth) along the intellectual path i’ve taken over the past six years—in the space of about sixteen minutes. continue reading “change us, too” posted in design, infrastructuretagged embodied from the grass roots posted on march june by bethany nowviskie [this is a cleaned-up version of the text from which i spoke at the conference of research libraries uk, held at the wellcome collection in london last week. i’d like to thank my wonderful hosts for an opportunity to reflect on my time at dlf. as i said to the crowd, i hope the talk offers some useful—or at least productively vexing—ideas.] at a meeting in which the status of libraries as “neutral spaces” has been asserted and lauded, i feel obligated to confess: i’m not a believer in dispassionate and disinterested neutrality—not for human beings nor for the institutions that we continually reinforce or reinvent, based on our interactions in and through them. my training as a humanities scholar has shown me all the ways that it is in fact impossible for us to step wholly out of our multiple, layered, subjective positions, interpretive frameworks, and embodied existence. it has also taught me the dangers of assuming—no matter how noble our intentions—that socially constructed institutions might likewise escape their historical and contemporary positioning, and somehow operate as neutral actors in neutral space. happily, we don’t need neutrality to move constructively from independent points of view to shared understandings and collective action. there are models for this. the ones i will focus on today are broadly “dh-adjacent,” and they depend, sometimes uncomfortably, on the vulnerability, subjectivity, and autonomy of the people who engage with them—foregrounding the ways that individual professional roles intersect with personal lives as they come together around shared missions and goals. and as i discuss them, please note that i’ll be referring to the digital humanities and to digital librarianship somewhat loosely—in their cultural lineaments—speaking to the diffuse and socially constructed way both are practiced on the ground. in particular, i’ll reference a dh that is (for my purposes today) relatively unconcerned with technologies, methods, and objects of study. it’s my hope that shifting our focus—after much fruitful discussion, this week, of concrete research support—to a digital humanities that can also be understood as organizational, positional, and intersubjective might prompt some structural attunement to new ways of working in libraries. and i do this here, at a consortial gathering of “the most significant research libraries in the uk and ireland,” because i think that self-consciously expanding our attention in library leadership from the pragmatic provision of data, platforms, skills-teaching, and research support for dh, outward to its larger organizational frame is one way of cracking open serious and opportune contributions by people who would not consider themselves digital humanists at all. this likely includes many of you, your colleagues in university administration across areas and functions, and most members of your libraries’ personnel. such a change in focus invites all of us to be attentive to the deeper and fundamentally different kinds of engagement and transformation we might foster through dh as a vector and perhaps with only simple re-inflections of the resources we already devote to the field. it could also open our organizations up to illuminating partnerships with communities of practice who frankly don’t give a fig about academic disciplinary labels or whether they are or are not “doing dh.” i also speak to library leaders because my call is not for work to be done by individual scholars as researchers and teachers alone, nor even by small teams of librarians laboring in support of the research and cultural heritage enterprise—but rather by our fully-engaged institutions as altered structures of power. continue reading “from the grass roots” posted in administrivia, higher edtagged community-archives, digital humanities, libraries, politics how the light gets in posted on january january by bethany nowviskie i took a chance on a hackberry bowl at a farmer’s market—blue-stained and turned like a drop of water. it’s a good name for it. he had hacked it down at the bottom of his garden. (they’re filling in the timber where the oaks aren’t coming back.) but the craftsman had never worked that kind of wood before, kiln-dried at steamy summer’s height. “will it split?” it did. now it’s winter, and i make kintsukuroi, a golden repair. i found the wax conservators use on gilded picture-frames, and had some mailed from london. it softens in the heat of hands. go on. let the dry air crack you open. you can break and be mended again. posted in infrastructure, past lives posts navigation … next recent travel/talks april , : mcleod memorial lecture, wustl, on “cultural memory and the peri-pandemic library” march -april : speaking/travel hiatus during the pandemic february , : featured talk, aaad : “black temporalities: past, present, and future” july – january : speaking/travel hiatus while starting my new position at james madison university june , : tensions of europe keynote on machine learning & historical understanding, luxembourg june , : rmbs opening plenary on climate change & libraries/archives, baltimore june - , : teaching rare book school in philadelphia: “community archives and digital cultural memory” march , : rluk keynote on dh at the grassroots, london themes themesselect category administrivia design documents geospatial higher ed infrastructure past lives soft circuits & code swinburne twittering unfiltered archives archives select month october june june march january june april march february november october april february november october may march february november july may february january october september august may january november october june april march january november october september june may april january december october september june april march january december october july june may recent posts foreword (to the past) a pledge: self-examination and concrete action in the jmu libraries change us, too from the grass roots how the light gets in reconstitute the world spectra for speculative knowledge design we raise our voices iv. coda: speculative computing ( ) inauguration day open invitations speculative collections alternate futures/usable pasts everywhere, every when oldies but goodies digital humanities in the anthropocene asking for it toward a new deal resistance in the materials too small to fail reality bytes lazy consensus a skunk in the library why, oh why, cc-by? what do girls dig? standard disclaimer this site and its contents are my responsibility alone, and may not reflect the opinions of my employer, colleagues, students, children, or imaginary friends. yours everything here is free to use under a creative commons attribution . international license. twitter linkedin github flickr instagram powered by miniva wordpress theme none github - elichad/software-twilight: software end of project plans skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this user all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} elichad / software-twilight notifications star fork software end of project plans view license stars forks star notifications code issues pull requests actions projects security insights more code issues pull requests actions projects security insights main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags branches tags go to file code clone https github cli use git or checkout with svn using the web url. work fast with our official cli. learn more. open with github desktop download zip launching github desktop if nothing happens, download github desktop and try again. go back launching github desktop if nothing happens, download github desktop and try again. go back launching xcode if nothing happens, download xcode and try again. go back launching visual studio if nothing happens, download the github extension for visual studio and try again. go back latest commit   git stats commits files permalink failed to load latest commit information. type name latest commit message commit time __pycache__     .replit     codeofconduct.md     contributing.md     license.md     readme.md     backend.py     decisions.py     environment.yml     index.ipynb     questionnaire.md     test_data.py     twilight_date_example.svg     twilight_plan_example.svg     view code software-twilight license introduction available badges question themes running design question format customization of ui further resources known issues readme.md this work is licensed under a creative commons attribution . international license. software-twilight software end of project plans license this project is licensed under the cc-by license. you are free to: share — copy and redistribute the material in any medium or format adapt — remix, transform, and build upon the material for any purpose, even commercially. the licensor cannot revoke these freedoms as long as you follow the license terms. the full text of the license can be found here. introduction development of software under a fixed-term project should consider several aspects of ongoing support after the project's end. there are two main eventualities: the software's development abruptly ends; there is some end-user support, although there will be no new feature development. each of these presents a problem. ending support reduces the sustainability of the environment, while ongoing maintenance requires the dedication of further resources. under the software twilight plan, the project's developer will be aware of necessary considerations. this repository is intended to be used to assess and guide a project maintainer in plans for the software's end of life. we provide a tool to be used, during the active development phase, by a project maintainer to assess and certify support plans for the project once it will no longer be actively developed. on completion of a short questionnaire the user is offered a badge to add to the repository to signal to the community when, and how, the software will go gentle into its good night. available badges we have two badges, as examples, which look look like and mean the following: - we have a (good) plan - twilight is coming up at the specified time question themes the tool covers a number of themes, including: potential funding for ongoing development required levels of future support deployment infrastructure required size of user community size of maintainer group status of ongoing contact with main developer(s)/development group running design the tool is designed in three parts: the front-end is designed with jupyer notebooks. it uses jupyter widgets, appmode package and mybinder.org to display automatically the notebook cells as a web app. the questions and answers are populated by the backend, that provides the appropriate next question based on the answer to the previous one, following a decision tree, until there are no more (relevant) questions to ask. finally, all the answers are processed and one or more badges informing on the end-of-life status of the project are provided in the form of markdown text. a summary of the answers is also provided. this text can be easily pasted into the project readme file. question format the decision tree is populated from the file decisions.py. this file has quite customizable entries in the format described below. this is initially represented by a serialized python dictionary. we have a python object question which has attributes for the question text and a dictionary for the answers (and links to each answer's follow-up question). our input file is like: decision_tree = { : question("is this a question?", {"yes": , "no", }), : question("is it a good question?", {"yes": none, "no", }), : question("really!?", {"yes": none, "no": none}) } decision_tree is an object with (contiguous, [ ,n]?) numeric identifier and a question object with question text and answer dictionary. the answer dictionary keys are answer text (diplayed) and the value the link to the question to follow. none is used to indicate that a decision will be reached with this answer. in this prototype there is no full decision tree. we indicate the path to follow by placing non-supported answers in parentheses. customization of ui if the ui can be readily customized, we describe here that. further resources here we list related resources which may be of interest to the developer of a sustainable project. fairness, etc. known issues this is a proof of concept. it is far from complete. we have a desire that the following features be implemented: improved decision tree input (not deserialization) complete decision tree final badge choice and design about software end of project plans resources readme license view license releases no releases published packages no packages published contributors languages jupyter notebook . % python . % © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. none none collaborations workshop - panel live stream - invidious true invidious log in collaborations workshop - panel live stream video unavailable. watch on youtube show annotations download is disabled. genre: family friendly? no wilson score: . rating: . / engagement: . % softwaresaved subscribe | - shared march , hi! looks like you have javascript turned off. click here to view comments, keep in mind they may take a bit longer to load. play next by default: : : python software carpentry workshop march - version control with git module softwaresaved views : : python software carpentry workshop - nov - building programs with python (part ) softwaresaved views : collaborations workshop - keynotes live stream softwaresaved views : fellowship programme launch webinar softwaresaved views : : python software carpentry workshop - nov - automating tasks with the unix shell softwaresaved views : ssi fellows community call: february softwaresaved views : chris hartgerink keynote talk on "the social model of inaccessibility" softwaresaved views : : r data carpentry workshop - oct - data analysis and visualisation in r softwaresaved views : : python software carpentry workshop march - automating tasks with shell module softwaresaved views : research software camp: q&a with chris hartgerink softwaresaved views : research software camp: chris hartgerink's abstract softwaresaved views : the most elegant key change in all of pop music adam neely . m views released under the agplv by omar roth. btc: dpzymxu ryd yqzjs n kgkwcyry bch: qq ptclkzej eza a et ggc hxsq aylqut npk liberapay view javascript license information. / view privacy policy. current version: . . - ba @ master meta interchange – libraries, computing, metadata, and more skip to content meta interchange libraries, computing, metadata, and more search for submit primary menu about comment policy privacy policy search for submit trading for images posted: february categories: libraries, patron privacy let’s search a koha catalog for something that isn’t at all controversial: what you search for in a library catalog ought to be only between you and the library — and that, only briefly, as the library should quickly forget. of course, between “ought” and “is” lies the devil and his details. let’s poke around with chrome’s devtools: hit control-shift-i (on windows) switch to the network tab. hit control-r to reload the page and get a list of the http requests that the browser makes. we get something like this: there’s a lot to like here: every request was made using https rather than http, and almost all of the requests were made to the koha server. (if you can’t trust the library catalog, who can you trust? well… that doesn’t have an answer as clear as we would like, but i won’t tackle that question here.) however, the two cover images on the result’s page come from amazon: https://images-na.ssl-images-amazon.com/images/p/ . .tzzzzzzz.jpg https://images-na.ssl-images-amazon.com/images/p/ . .tzzzzzzz.jpg what did i trade in exchange for those two cover images? let’s click on the request on and see: :authority: images-na.ssl-images-amazon.com :method: get :path: /images/p/ . .tzzzzzzz.jpg :scheme: https accept: image/webp,image/apng,image/,/*;q= . accept-encoding: gzip, deflate, br accept-language: en-us,en;q= . cache-control: no-cache dnt: pragma: no-cache referer: https://catalog.libraryguardians.com/cgi-bin/koha/opac-search.pl?q=anarchist sec-fetch-dest: image sec-fetch-mode: no-cors sec-fetch-site: cross-site user-agent: mozilla/ . (windows nt . ; win ; x ) applewebkit/ . (khtml, like gecko) chrome/ . . . safari/ . here’s what was sent when i used firefox: host: images-na.ssl-images-amazon.com user-agent: mozilla/ . (windows nt . ; win ; x ; rv: . ) gecko/ firefox/ . accept: image/webp,/ accept-language: en-us,en;q= . accept-encoding: gzip, deflate, br connection: keep-alive referer: https://catalog.libraryguardians.com/cgi-bin/koha/opac-search.pl?q=anarchist dnt: pragma: no-cache amazon also knows what my ip address is. with that, it doesn’t take much to figure out that i am in georgia and am clearly up to no good; after all, one look at the referer header tells all. let’s switch over to using google book’s cover images: https://books.google.com/books/content?id=phzfwaeacaaj&printsec=frontcover&img= &zoom= https://books.google.com/books/content?id=wdgrjqaacaaj&printsec=frontcover&img= &zoom= this time, the request headers are in chrome: :authority: books.google.com :method: get :path: /books/content?id=phzfwaeacaaj&printsec=frontcover&img= &zoom= :scheme: https accept: image/webp,image/apng,image/,/*;q= . accept-encoding: gzip, deflate, br accept-language: en-us,en;q= . cache-control: no-cache dnt: pragma: no-cache referer: https://catalog.libraryguardians.com/ sec-fetch-dest: image sec-fetch-mode: no-cors sec-fetch-site: cross-site user-agent: mozilla/ . (windows nt . ; win ; x ) applewebkit/ . (khtml, like gecko) chrome/ . . . safari/ . x-client-data: cko yqeiilbjaqimtskbcmg yqeiqz kaqi qsobcmuuygeiz /kaqi smobcje ygei bxkaqinusobgkukygeyvrrkaq== and in firefox: host: books.google.com user-agent: mozilla/ . (windows nt . ; win ; x ; rv: . ) gecko/ firefox/ . accept: image/webp,/ accept-language: en-us,en;q= . accept-encoding: gzip, deflate, br connection: keep-alive referer: https://catalog.libraryguardians.com/ dnt: pragma: no-cache cache-control: no-cache on the one hand… the referer now contains only the base url of the catalog. i believe this is due to a difference in how koha figures out the correct image url. when using amazon for cover images, the isbn of the title is normalized and used to construct a url for an tag. koha doesn’t currently set a referrer-policy, so the default of no-referrer-when-downgrade is used and the full referrer is sent. google book’s cover image urls cannot be directly constructed like that, so a bit of javascript queries a web service and gets back the image urls, and for reasons that are unclear to me at the moment, doesn’t send the full url as the referrer. (cover images from openlibrary are fetched in a similar way, but full referer header is sent.) as a side note, the x-client-data header sent by chrome to books.google.com is… concerning. there are some relatively simple things that can be done to limit leaking the full referring url to the likes of google and amazon, including setting the referrer-policy header via web server configuration or meta tag to something like origin or origin-when-cross-origin. setting referrerpolicy for """ % (wordcloud_js.decode('utf '), json.dumps(words, indent= )) sys.stdout.write(output) def text(t): if 'full_text' in t: return t['full_text'] return t['text'] if __name__ == "__main__": main() copy lines copy permalink view git blame reference in new issue go © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. github - lostrses/escape-room: escape room: translating between rses and arts & humanities researchers skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} lostrses / escape-room notifications star fork escape room: translating between rses and arts & humanities researchers lostrses.github.io/escape-room/ cc-by- . license star forks star notifications code issues pull requests actions projects security insights more code issues pull requests actions projects security insights main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags branches tags go to file code clone https github cli use git or checkout with svn using the web url. work fast with our official cli. learn more. open with github desktop download zip launching github desktop if nothing happens, download github desktop and try again. go back launching github desktop if nothing happens, download github desktop and try again. go back launching xcode if nothing happens, download xcode and try again. go back launching visual studio if nothing happens, download the github extension for visual studio and try again. go back latest commit   git stats commits files permalink failed to load latest commit information. type name latest commit message commit time docs     code_of_conduct.md     contributing.md     license     readme.md     view code aha: an arts and humanities adventure! welcome! what is aha? problem solution readme.md aha: an arts and humanities adventure! welcome! welcome to ⭐aha: an arts and humanities adventure!⭐ what is aha? aha: an arts and humanities adventure is an interactive game to help 'translate' concepts from computer science, for researchers in the arts and humanities. for researchers in the arts and humanities: this game aims to help you understand some of the ideas, concepts (and jargon) that your research software engineering colleagues have been using. for research software engineers: this will help you explain the ideas and concepts that you use in your work to people who do not have a computer science background. we hope that playing this game will help rses and arts and humanities reserachers work together better and build research software that helps advance research in artss and humanities! this project began at a hackday run as part of software sustainability institute's collaborations workshop . there is a proof-of-concept web version of the game now online! you can see the source for that website in the docs folder. problem researchers in the arts & humanities can benefit greatly from research software, but often don’t have the kind of background in formally-structured design that a physicist or engineer does. this can make developing research software for them challenging- particularly when a&h problems are often defined in ways that are very different from how computational problems are defined. we want to help researchers in a&h and rses to communicate better, so that they can collaborate on building research software more easily. using gamified versions of boring and dry training materials for software development, we want to make learning about software development fun and accessible. solution virtual escape room: solve a set of connected puzzles to escape the virtual game room. in the course of solving the puzzles, the participants will learn key concepts from research software development. our pitch: develop the part of this escape room series: theme: gamified activities to learn the meaning of common jargon words. e.g. api, object, function, sprint, version, agile, automation the escape room will be themed around learning to translate an alien language (software development) expressed in an unusual way, so that the unfamiliar concepts can be understood in the context of our work. for example: which of these flow diagrams is the correct one? what analogy of a rse concept can we find in humanities? format: online, can use existing websites or a github repository with questions and clues to find information. learning journey. aim: the aim is to encourage participants to look for information and find out resources about software development practices and rse related concepts themselves as they find answers to solve the puzzles. outcome of the escape room activity: participants are familiar with concepts/jargon words usually used by software developers. participants are now in a better position to work/interact with research software engineers- or to go on and learn to become digital humanities developers themselves. potential topics and set of activities for escape rooms for part onwards (not proposed for this pitch, but idea for future collaboration): set a repo to teach github / version control (create with long history, ask people to find who did what, and on what days) give a project goal that required chunking down one goal into different tasks and create clues (agile development) create puzzles to teach reproducibility use interesting data table to teach about dataframe and coding using pandas use a visualization tool or shiny app to solve different puzzles about escape room: translating between rses and arts & humanities researchers lostrses.github.io/escape-room/ resources readme license cc-by- . license contributors © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. digital preservation embracing digitality - call for proposals dlf about overview calendar faq foundational principles leadership strategic plan membership join the ndsa member orientation members groups overview interest groups content infrastructure standards and practices active working groups communications and publications conference program fixity survey innovation awards levels of preservation staffing survey publications overview levels of preservation ndsa agenda osf repository conference digipres conference digipres conference cfp past digipres conferences news digital preservation embracing digitality - call for proposals the national digital stewardship alliance (ndsa) invites proposals for digital preservation : embracing digitality (#digipres ) to be held online this year on november th. digitality - the experience of living in a digital culture - has been accelerated by the global pandemic, shifting how we think, work, and exist in digital spaces. digital stewardship professionals have demonstrated that we are able to respond creatively to the preservation, discovery, and access of information beyond the physical environment. how does the advancement of digitality expand the landscape of possibilities for people, systems, the environment, and the world? what opportunities have we gained, and what must we be wary of losing? how can we best position our profession to embrace digitality and intentionally develop strategies, tools, and practices that move us forward as a community? how can we foster partnerships with other professional backgrounds to join us in this effort? please note that proposals do not have to adhere to our conference theme to be considered, but we especially encourage proposals related to embracing digitality, particularly presentations that address: emergent institutional or social/cultural barriers, risks, and opportunities inherent in preserving digitality collaboration and dismantling digital stewardship silos balancing innovation with long-term planning and maintenance critical examination of digital existence(s) and how it impacts the scope of our work envisioning a roadmap for the future of our profession or “where do we go from here, and who are we going with?” because of the virtual format and our interest in minimizing screen fatigue but still facilitating community connection, we will be offering a reduced number of sessions than are typically offered during the in-person digital preservation conference. to make space for as many voices as possible, individuals may present only once on the conference program, though names may be listed more than once in affiliation with awards and/or projects. we will offer additional ways for community members to share content and resources whether conference proposals are accepted or not. proposals are due by monday, may , at : pm est. submission length and format submissions are invited in the following lengths and formats: -minute panel: panels with - speakers on a shared topic, and an emphasis on discussion, will be given -minutes. in line with the rest of the programming, strong preference will be given to panels that are fully inclusive and reflect a wide range of expression and identity. -minute talk/demo: presentations and demonstrations are allocated minutes each, and speakers should reserve time within that allotment ( - minutes) for interactive exchanges on next steps, possible ndsa community action, and discussion or debate. : : lightning talk: share your ideas and/or projects in a lightning talk of six slides, in minutes, using one keyword or picture per slide. solution rooms: looking to connect with colleagues and brainstorm solutions to a preservation problem? propose it for the solution room! these will be -minute breakout rooms in zoom where you can receive peer support on answers to a digital stewardship challenge. submission requirements: proposal title submission format and event: varies by event first and last names, organizational affiliations, and email addresses for all authors / presenters abstract ( words max) proposal ( works max for all formats except for panels, up to words) five keywords for your proposal all submissions will be peer-reviewed by ndsa’s digital preservation program committee. the digipres planning committee will give strong preference to programming that is fully inclusive and reflects a wide range of expression and identity. presenters will be notified of their acceptance in june and guaranteed a registration slot. accepted presentations, panels, and lightning talks will be delivered via pre-recorded video that will “go live” at specific times during the conference, to avoid technology challenges and to provide a more accessible format to all of our attendees. presenters will be expected to be in attendance and available during their presentation time for live q&a. presenters will receive support in the form of tutorials, resources, and individual assistance. proposals are due by monday, may , at : pm est. about the ndsa and digital preservation the ndsa is a consortium of over organizations committed to the long-term preservation and stewardship of digital information and cultural heritage. digital preservation is the major meeting and conference of the ndsa. open to members and non-members alike, it highlights the theory and practice of digital stewardship and preservation, data curation, the digital object lifecycle, and related issues. digital preservation (#digipres ) is held in partnership with our host organization, the council on library and information resources’ (clir) digital library federation. separate calls are being issued for clir+dlf’s events, the dlf forum (november - ) and associated workshop series learn@dlf (november - ). ndsa strives to create a safe, accessible, welcoming, and inclusive event, and adheres to dlf’s code of conduct. questions? feel free to reach out to ndsa-digipres@lists.clir.org and someone will get back to you as soon as possible. ndsa about members groups calendar social twitter itunes youtube news linkedin contact ndsa c/o clir union street suite -pmb alexandria, va e: ndsa@diglib.org ndsa the ndsa is proudly hosted by the digital library federation at clir. all content on this site is available for re-use under a cc by-sa . international license. dlf view this page on github github - robintw/cw-ideas: hack day project from cw working on collating and analysing collaborative ideas and hack day projects from previous collaborations workshops skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this user all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} robintw / cw-ideas notifications star fork hack day project from cw working on collating and analysing collaborative ideas and hack day projects from previous collaborations workshops robintw.github.io/cw-ideas/ mit license star forks star notifications code issues pull requests actions projects security insights more code issues pull requests actions projects security insights main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags branches tags go to file code clone https github cli use git or checkout with svn using the web url. work fast with our official cli. learn more. open with github desktop download zip launching github desktop if nothing happens, download github desktop and try again. go back launching github desktop if nothing happens, download github desktop and try again. go back launching xcode if nothing happens, download xcode and try again. go back launching visual studio if nothing happens, download the github extension for visual studio and try again. go back latest commit   git stats commits files permalink failed to load latest commit information. type name latest commit message commit time .github/workflows     archetypes     content     static     themes/papermod     contributing.md     license     readme.md     config.yml     view code exploring previous collaborations workshop ideas (cw-ideas) building locally task split during the hack day hack day presentation readme.md exploring previous collaborations workshop ideas (cw-ideas) this is the repo for a hack day project from collaborations workshop which aims to explore previous ideas from collaborations workshops and provide them in an easily browseable and searchable form. a live version of the website is hosted at https://robintw.github.io/cw-ideas/. the repo consists of markdown versions of the collaborative ideas and hackday pitches, plus code to host a website to view them. to contribute to the repository - either by adding new ideas from previous cws, or to contribute to the code to view the ideas - please see the contributing guide. this repository is licensed under the mit license, and all the ideas themselves are cc-by (this is mentioned at the bottom of each idea). the team creating this was mario antonioletti, heather turner and robin wilson. building locally the repository is automatically built and deployed on every push, but if you want to build locally for testing or debugging purposes, follow the instructions below: install hugo in the root of the repo, run hugo server the site will be built, and served on localhost - see the command-line output for the full url task split during the hack day heather turner: the brains behind the idea robin wilson: the technical guru mario antonioletti: the plodder with superpowers tasks divided orthogonally conversion of past google doc proposals to markdown (mario and robin) configuring and setting up hugo (robin and heather) provisioning a github repo (robin) hack day presentation available here about hack day project from cw working on collating and analysing collaborative ideas and hack day projects from previous collaborations workshops robintw.github.io/cw-ideas/ resources readme license mit license releases no releases published packages no packages published contributors       languages html . % css . % javascript . % © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. the andrew w. mellon foundation   covid- response & recovery mellon continues to distribute additional funds to help shore up struggling arts and cultural organizations and higher learning institutions. learn more covid- response & recovery mellon continues to distribute additional funds to help shore up struggling arts and cultural organizations and higher learning institutions. learn more   about mission history founders andrew w. mellon staff trustees annual reports annual report financials social bond framework investment overview policies code of ethics conflicts of interest and disclosure policy equal opportunity and anti-harassment policy third-party reports of misconduct or misuse of foundation funds whistleblower policy careers contact information programs higher learning research universities and institutes liberal arts colleges mellon mays undergraduate fellowship program new directions fellowships sawyer seminars regranting programs inquiries and guidelines call for proposals: the future of higher learning in prison arts and culture regranting programs inquiries and guidelines art museum staff demographic survey public knowledge publishing preservation access services inquiries and guidelines call for proposals to community-based archives humanities in place initiatives the monuments project monuments faq covid- response & recovery liberation and learning puerto rico just futures research mellon research forum research reports institutional research grants grants database grantmaking policies and guidelines grantmaking policies grant proposal guidelines grant reporting guidelines grant modifications and matching payments guides and forms news & blog events   covid- response & recovery mellon continues to distribute additional funds to help shore up struggling arts and cultural organizations and higher learning institutions. learn more covid- response & recovery mellon continues to distribute additional funds to help shore up struggling arts and cultural organizations and higher learning institutions. learn more poets, poems, years of national poetry month. learn more press releases a statement on voting rights april , shared experiences blog a legendary poet's home becomes a sanctuary for young artists april , press releases mellon foundation announces five new proposals funded through the monuments project february , press releases library of congress enriches america’s story by connecting with minority communities, funded by $ m andrew w. mellon foundation grant january , covid- response, press releases andrew w. mellon foundation launches "creatives rebuild new york" january , mellon news with books and new focus, mellon foundation to foster social equity june , all news & blog posts     about the andrew w. mellon foundation as the largest supporter of the arts and humanities in the us, the mellon foundation seeks to build just communities where ideas and imagination can thrive. learn more   stay connected sign up to stay informed about news and events at the mellon foundation. by signing up, you agree to our privacy policy. *required mellon by the numbers ( - present) continents grants , awarded $ . billion grants database   our core programs we believe that the arts and humanities are where we express our complex humanity. that belief is at the core of our grantmaking programs:   higher learningenriching our understanding of a complex world, higher learning supports inclusive, multivocal humanities education and diverse learning environments with a focus on historically underserved populations. arts and culturearts and culture celebrates the power of the arts to challenge and activate the human spirit while nurturing a robust and equitable arts and culture ecosystem. public knowledgepublic knowledge supports the creation and preservation of our shared cultural record to help us explore and better understand our intertwined humanity. humanities in placehumanities in place supports a fuller, more complex telling of american histories and lived experiences by deepening the range of how and where our stories are told. created with sketchtool.  stay connected sign up to stay informed about news and events at the mellon foundation. by signing up, you agree to our privacy policy. *required sign up below to receive emails from the andrew w mellon foundation. by doing so you agree to our privacy policy. email address* first name last name organization title send me information about (check as many as apply) higher learning arts and culture humanities in place- monuments public knowledge - libraries, archives, publishing, and tech press releases and announcements events subscribe stay connected sign up to stay informed about news and events at the mellon foundation. by signing up, you agree to our privacy policy. *required   follow us facebooktwitterlinkedin created with sketchtool.instagram  terms of use privacy rss contact us © the andrew w. mellon foundation. github - dokempf/credit-all skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this user all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} dokempf / credit-all notifications star fork mit license stars forks star notifications code issues pull requests actions projects wiki security insights more code issues pull requests actions projects wiki security insights master switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags branch tags go to file code clone https github cli use git or checkout with svn using the web url. work fast with our official cli. learn more. open with github desktop download zip launching github desktop if nothing happens, download github desktop and try again. go back launching github desktop if nothing happens, download github desktop and try again. go back launching xcode if nothing happens, download xcode and try again. go back launching visual studio if nothing happens, download the github extension for visual studio and try again. go back latest commit   git stats commits files permalink failed to load latest commit information. type name latest commit message commit time creditall     .all-contributorsrc     .gitignore     codeofconduct.md     credit-all.odp     license.md     manifest.in     readme.md     sandstrom .jpg     setup.py     view code welcome! thanks for visiting credit all! 😁 what is this project about and why is it important? the problem the solution installation who are we? what does this project need? we need you! how can you get involved? get in touch thank you readme.md welcome! thanks for visiting credit all! 😁 in this document you can find lots of information about this project. you can just scroll down or use the quick links below for each section. welcome! thanks for visiting credit all! 😁 what is this project about and why is it important? the problem the solution installation who are we? what does this project need? we need you! how can you get involved? get in touch thank you what is this project about and why is it important? there is no one size fits all system for capturing all of the contributions during different research projects. this could be a scientific research project, a software development project or an open-source community project. we think it is important that all contributions are recorded and therefore everyone is given credit for their work more fairly. the problem current systems that attribute contributions to authors in academic outputs do not include all of the jobs/roles/tasks that are encompassed in research projects. the current problems include: capturing all roles on a project. capturing all tasks within those roles. how to convert this into the actual authorship or contributions list that can be used for project outputs. how this list can be presented. the solution taking inspiration from malin sandstroms lightning talk at the software sustainability institutes collaboration workshop , in which she proposed to combine the current contributions approaches. slide from malin sandstrom's ssi talk in this project, we propose to: expand current lists to be more inclusive - using current systems such as credit, inria, bids contributors. develop a tool to be used to record these contributions during the project such as within a github repository - we have adapted the all contributor bot for our tool. develop a way that this can be shown on academic papers - lists, table, cinema title page? (look at e.g. brainhack paper w + authors and living with machines). installation you can install the command line tool using pip: python -m pip install git+git://github.com/dokempf/credit-all.git who are we? in alphabetical order: daisy perry (writing a code of conduct, curating data) dominic kempf (initial ideas of the project, writing new code, writing documentation about the code) emma karoune (initial ideas of the project, curating data) malin sandström (initial ideas of the project, curating data) what does this project need? we need you! please review our list of tasks and tell us if something needs to be added. spot a bug and tell us about it! suggest new ways that our contributions list can be presented. if you have any feedback on the work that is going on, then please get in contact. how can you get involved? if you think you can help in any way or just want to suggest something currently not in the project, then please check out the contributor’s guidelines. please note that it’s very important to maintain a positive and supportive environment for everyone who wants to participate. when you join as a collaborator, you must follow the code of conduct in all interactions both on and offline. get in touch please feel free to get in touch with our team: ekaroune@googlemail.com thank you thanks for taking the time to read this project page and do please get involved. about no description, website, or topics provided. resources readme license mit license releases no releases published packages no packages published contributors         languages python . % tex . % © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. twarc/urls.py at main · docnow/twarc · github skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} docnow / twarc notifications star k fork code issues pull requests actions projects wiki security insights more code issues pull requests actions projects wiki security insights permalink main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags twarc/utils/urls.py / jump to code definitions no definitions found in this file. code navigation not available for this commit go to file go to file t go to line l go to definition r copy path copy permalink     cannot retrieve contributors at this time executable file lines ( sloc) bytes raw blame open with desktop view raw view blame #!/usr/bin/env python """ print out the urls in a tweet json stream. """ from __future__ import print_function import json import fileinput for line in fileinput.input(): tweet = json.loads(line) for url in tweet["entities"]["urls"]: if 'unshortened_url' in url: print(url['unshortened_url']) elif url.get('expanded_url'): print(url['expanded_url']) elif url.get('url'): print(url['url']) copy lines copy permalink view git blame reference in new issue go © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. none islandorans unite! it's release time | islandora skip to main content toggle navigation main menu home about events blog contact newsletter support islandora search search you are here : home islandorans unite! it's release time about menu islandora foundation get started community contribute help islandorans unite! it's release time it's that time again everyone!  our amazing community contributors have made all sorts of improvements and upgrades to islandora.  some have been merged, but some are still hanging out, waiting for the love they need to make it into the code base.  we're calling on you - yes you! - to help us get things merged, tested, documented, and released to the world. i would like to kick off this release cycle with a sprint to mop up some the amazing improvements that have unmerged pull requests.  did you know that we have pull requests for an advanced search module and a basic batch ingest form just lounging around?  and that's not all.  there are all kinds of great improvements that just need some time and attention. a little code review and some basic testing by others are all that is needed before we freeze the code and start turning the crank on the release process. here's a rough timetable for the release: april - th: code sprint may rd: code freeze may rd - th: testing, bug fixing, responding to feedback may th - th: documentation sprint may st - june th: more testing, bug fixing, and responding to feedback june st - july nd: testing sprint release! this is, of course, an optimistic plan.  if major issues are discovered we will take the time to address them which can affect the timeline.  i also plan on liaising with the documentation interest group and folks from the users' call / open meetings for the documentation and testing sprints, and their availabilities may nudge things a week in either direction. an open and transparent release process is one of the hallmarks of our amazing community. if you or your organization have any interest in helping out, please feel free to reach out or sign up for any of the upcoming sprints.  there are plenty of opportunities to contribute regardless of your skill set or level of experience with islandora.  there's something for everyone! we'll make further announcements for the other sprints, but you can sign up for the code sprint now using our sign up sheet.  hope to see you there!   submitted by dlamb on mon, / / - : log in to post comments notvisible home about events blog contact newsletter support islandora © copyright islandora foundation. header photo credits. privacy policy. pinboard (items tagged code lib) https://pinboard.in/t:code lib/ ( ) https://twitter.com/rudokemper/status/ /photo/ - - t : : + : https://twitter.com/rudokemper/status/ /photo/ bsscdt rt @rudokemper: floored and honored to have been invited to give a keynote for the #c l #code lib conference next monday. i can't wait to share about our work building open-source tech for communities to map oral histories, and how my journey started in the library + archive space! @code lib c l code lib https://twitter.com/ https://pinboard.in/u:bsscdt/b: a fefac / untitled (https://d keuthy s c .cloudfront.net/static/ems/upload/files/code lib _discogs_blacklight.pdf) - - t : : + : https://d keuthy s c .cloudfront.net/static/ems/upload/files/code lib _discogs_blacklight.pdf rybesh rt @sf : really happy to share, “dynamic integration of discogs data within a blacklight catalog” from now on i’m going to ask myself, “can this talk be a poster?” #code lib code lib https://twitter.com/ https://pinboard.in/u:rybesh/b: d f f/ the code lib journal – advancing arks in the historical ontology space - - t : : + : https://journal.code lib.org/articles/ geephroh code lib digitallibraries digitalpreservation data ontology identifiers digitalhumanities ark computationalarchivalscience cas archives journalarticle https://pinboard.in/ https://pinboard.in/u:geephroh/b: e caf / the code lib journal – managing an institutional repository workflow with gitlab and a folder-based deposit system - - t : : + : https://journal.code lib.org/articles/ aarontay managing an institutional repository workflow with gitlab and a folder-based deposit system by whitney r. johnson-freeman, @vphill, and kristy k. phillips #code lib journal issue . code lib https://twitter.com/ https://pinboard.in/u:aarontay/b: dfc c cda/ listserv . - code lib archives - - t : : + : https://lists.clir.org/cgi-bin/wa?a =code lib;e bc . miaridge rt @kiru: i forgot to post the call earlier: the code lib journal () is looking for volunteers to join its editorial committee. deadline: oct. #code lib code lib https://twitter.com/ https://pinboard.in/u:miaridge/b:e e fb / - c l [ ] future role of libraries in researcher workflows - google slides - - t : : + : https://t.co/jcoe mvhd elibtronic research-lifecycle code lib publish scholarly-communication https://pinboard.in/u:elibtronic/b: b f a/ twitter - - t : : + : https://twitter.com/i/web/status/ aarontay new issue of the the #code lib journal published. some terrific looking papers, including a review of pids for heri… code lib https://twitter.com/ https://pinboard.in/u:aarontay/b: b b d/ ( ) https://journal.code lib.org/ - - t : : + : https://journal.code lib.org/ miaridge rt @kiru: i am very happy to announce the publication of the @code lib journal issue # : webscraping… code lib https://twitter.com/ https://pinboard.in/u:miaridge/b: f c d d c/ the code lib journal – column: we love open source software. no, you can’t have our code - - t : : + : https://journal.code lib.org/articles/ pfhyper librarians are among the strongest proponents of open source software. paradoxically, libraries are also among the least likely to actively contribute their code to open source projects. this article identifies and discusses six main reasons this dichotomy exists and offers ways to get around them. code lib library libt opensource finalproject https://pinboard.in/ https://pinboard.in/u:pfhyper/b: da d a b / the code lib journal – barriers to initiation of open source software projects in libraries - - t : : + : https://journal.code lib.org/articles/ pfhyper libraries share a number of core values with the open source software (oss) movement, suggesting there should be a natural tendency toward library participation in oss projects. however dale askey’s code lib column entitled “we love open source software. no, you can’t have our code,” claims that while libraries are strong proponents of oss, they are unlikely to actually contribute to oss projects. he identifies, but does not empirically substantiate, six barriers that he believes contribute to this apparent inconsistency. in this study we empirically investigate not only askey’s central claim but also the six barriers he proposes. in contrast to askey’s assertion, we find that initiation of and contribution to oss projects are, in fact, common practices in libraries. however, we also find that these practices are far from ubiquitous; as askey suggests, many libraries do have opportunities to initiate oss projects, but choose not to do so. further, we find support for only four of askey’s six oss barriers. thus, our results confirm many, but not all, of askey’s assertions. code lib library libt opensource finalproject https://pinboard.in/ https://pinboard.in/u:pfhyper/b: f d e / twitter - - t : : + : https://twitter.com/i/web/status/ jbfink rt @kiru: the #code lib journal's issue ( / ) has been just published: . worldcat search api, go… code lib https://twitter.com/ https://pinboard.in/u:jbfink/b:d cd f e / twitter - - t : : + : https://twitter.com/i/web/status/ jbfink rt @mjingle: who's excited for the next #code lib conference?! it will be in pittsburgh, pa from march - . is your org interes… code lib https://twitter.com/ https://pinboard.in/u:jbfink/b: defc eb / attempto project - - t : : + : http://attempto.ifi.uzh.ch/site/ blebo nlp basic cnl computationallinguistics controlledlanguage controlled_language code lib compsci english knowledgerepresentation https://pinboard.in/u:blebo/b: a b f a fd/ twitter - - t : : + : https://twitter.com/i/web/status/ danbri when our grandchildren ask about the great #code lib irc battle of the tisane, we will serve them both tea and coff… code lib https://twitter.com/ https://pinboard.in/u:danbri/b: ce a e/ code lib recap – bloggers! - - t : : + : https://saaers.wordpress.com/ / / /code lib- -recap/ geephroh code lib digitallibraries research saa archives https://pinboard.in/ https://pinboard.in/u:geephroh/b: afd / digital technologies development librarian | nc state university libraries - - t : : + : https://www.lib.ncsu.edu/jobs/ehra/dtdl cdmorris we're hiring a digital technologies development librarian @ncsulibraries ! #job #libjobs #code lib #dlf #libtech dlf libtech code lib job libjobs https://twitter.com/ https://pinboard.in/u:cdmorris/b:cf e f / twitter - - t : : + : https://twitter.com/i/web/status/ jbfink ) all the men who want to preserve the idea of a #code lib discussion space as one that's free of such topics as s… code lib https://twitter.com/ https://pinboard.in/u:jbfink/b:d f / google refine cheat sheet (code lib) - - t : : + : https://code libtoronto.github.io/ - - -access/googlerefinecheatsheets.pdf psammead openrefine code lib how-to cheatsheet https://pinboard.in/ https://pinboard.in/u:psammead/b:d c d / untitled (https://www.youtube.com/watch?v=icblvnchpnw) - - t : : + : https://www.youtube.com/watch?v=icblvnchpnw cdmorris code lib southeast happening today! live stream starting at : am eastern. #code libse #code lib code libse code lib https://twitter.com/ https://pinboard.in/u:cdmorris/b:d cf c/ twitter - - t : : + : https://twitter.com/i/web/status/ lbjay it occurs to me the #code lib statement of support for chris bourg, , offers a better model… code lib https://twitter.com/ https://pinboard.in/u:lbjay/b:d d c f/ github - code lib/c l -keynote-statement: code lib community statement in support of chris bourg - - t : : + : https://github.com/code lib/c l -keynote-statement lbjay it occurs to me the #code lib statement of support for chris bourg, , offers a better model… code lib https://twitter.com/ https://pinboard.in/u:lbjay/b: b ef c / twitter - - t : : + : https://twitter.com/i/web/status/ jbfink now that the #code lib discord is up & running, i'm contemplating leaving slack overall, with exception for plannin… code lib https://twitter.com/ https://pinboard.in/u:jbfink/b:c d f ddd d/ ( ) https://twitter.com/palcilibraries/status/ /photo/ - - t : : + : https://twitter.com/palcilibraries/status/ /photo/ cdmorris talking privacy and ra at #c l with dave lacy from @templelibraries #code lib c l code lib https://twitter.com/ https://pinboard.in/u:cdmorris/b: f c c f / scope: an access interface for dips from archivematica - - t : : + : https://github.com/cca-public/dip-access-interface sdellis archives code lib https://pinboard.in/ https://pinboard.in/u:sdellis/b: ef d c / review, appraisal and triage of mail (ratom) - - t : : + : http://ratom.web.unc.edu/ sdellis archives code lib https://pinboard.in/ https://pinboard.in/u:sdellis/b: cdd / national web privacy forum - msu library | montana state university - - t : : + : http://www.lib.montana.edu/privacy-forum/ sdellis privacy analytics code lib https://pinboard.in/ https://pinboard.in/u:sdellis/b: b db e / the code lib journal - - t : : + : https://journal.code lib.org/ ratledge code lib library_technology journal journals_code lib https://pinboard.in/ https://pinboard.in/u:ratledge/b: a f c b / code lib | we are developers and technologists for libraries, museums, and archives who are dedicated to being a diverse and inclusive community, seeking to share ideas and build collaboration. - - t : : + : https://code lib.org/ ratledge code lib https://pinboard.in/ https://pinboard.in/u:ratledge/b: cfc ccb / twitter - - t : : + : https://twitter.com/i/web/status/ verwinv ne'er had the pleasure to attend #code lib myself ... but if you're thinking about it but can't afford to go - ther… code lib https://twitter.com/ https://pinboard.in/u:verwinv/b:f ceb/ twitter - - t : : + : https://twitter.com/justindlc/status/ /photo/ librariesval rt @justindlc: pre-conference meetup at ormsby's for code lib southeast ! #code libse #code lib code lib code libse https://twitter.com/ https://pinboard.in/u:librariesval/b: c ad b / twitter - - t : : + : https://twitter.com/i/web/status/ jbfink thanks @lydia_zv @redlibrarian and jolene (are you on twitter, i can find you?) for a great #code lib day! it was… code lib https://twitter.com/ https://pinboard.in/u:jbfink/b: faa e bad/ twitter - - t : : + : https://twitter.com/i/web/status/ jbfink my slides and speakers notes from #code lib #c ln on ursula franklin's "real world of technology" (which i really… code lib c ln https://twitter.com/ https://pinboard.in/u:jbfink/b:a ed a fc / twitter - - t : : + : https://twitter.com/i/web/status/ jbfink in an unfortunate timing, it appears the code lib wiki is down the first day of #code lib north - there's a cache o… code lib https://twitter.com/ https://pinboard.in/u:jbfink/b: edcfb c/ twitter - - t : : + : https://twitter.com/i/web/status/ jbfink rt @kiru: just off the (word)press: the #code lib journal issue is available: . great articles writ… code lib https://twitter.com/ https://pinboard.in/u:jbfink/b:db c bb a / the code lib journal - - t : : + : http://journal.code lib.org/ jbfink rt @kiru: just off the (word)press: the #code lib journal issue is available: . great articles writ… code lib https://twitter.com/ https://pinboard.in/u:jbfink/b: be / twitter - - t : : + : https://twitter.com/gitwishes/status/ lbjay this is all of #code lib working on @bot lib circa . code lib https://twitter.com/ https://pinboard.in/u:lbjay/b: e b b / twitter - - t : : + : https://twitter.com/gmcharlt/status/ danbri this is fabulous news for the cultural heritage open source world. big ups to @code lib and @clirdlf! #code lib code lib https://twitter.com/ https://pinboard.in/u:danbri/b: cbe ff f / twitter - - t : : + : https://twitter.com/i/web/status/ miaridge rt @achdotorg: we too co-sign the #code lib community statement in support of @mchris duke. we continue to admire an honor our col… code lib https://twitter.com/ https://pinboard.in/u:miaridge/b:cf f d e / code lib/c l -keynote-statement: code lib community statement in support of chris bourg - - t : : + : https://github.com/code lib/c l -keynote-statement jbfink code lib github https://pinboard.in/ https://pinboard.in/u:jbfink/b: b f bd / code lib community statement in support of chris bourg | c l -keynote-statement - - t : : + : https://code lib.github.io/c l -keynote-statement/ wragge rt @clirdlf: we’re proud to stand with the #code lib community in support of #c l keynoter @mchris duke: code lib c l https://twitter.com/ https://pinboard.in/u:wragge/b:d e b e / matthew reidsma : auditing algorithms - - t : : + : https://matthew.reidsrow.com/talks/ malantonio
    talks about libraries, technology, and the web by matthew reidsma.
    algorithms bias search libraries technology code lib code lib- https://pinboard.in/u:malantonio/b: dd c f / for the love of baby unicorns: my code lib keynote | feral librarian - - t : : + : https://chrisbourg.wordpress.com/ / / /for-the-love-of-baby-unicorns-my-code lib- -keynote/ petej code lib diversity technology libraries inclusion mansplaining https://pinboard.in/ https://pinboard.in/u:petej/b: d e f / jira for archives - google slides - - t : : + : https://docs.google.com/presentation/d/ uwywg -nt qjm-j haavsoh ikzucax efbnlcy /edit#slide=id.g a ccaec_ _ malantonio see https://youtu.be/ cno sernxi?t= h m s for presentation code lib code lib- libraries work-life https://pinboard.in/u:malantonio/b: fc b e / twitter - - t : : + : https://twitter.com/justin_littman/status/ /photo/ aarontay rt @justin_littman: peer review of my #code lib poster on "where to get twitter data for academic research." code lib https://twitter.com/ https://pinboard.in/u:aarontay/b:c c e d/ availability calendar - kalorama guest house - - t : : + : https://secure.rezovation.com/reservations/availabilitycalendar.aspx?s=ut fw wid skorasaurus kalorama guest house code lib https://pinboard.in/ https://pinboard.in/u:skorasaurus/b: f ea / ( ) https://twitter.com/i/web/status/ - - t : : + : https://twitter.com/i/web/status/ docdre rt @nowviskie: icymi: #code lib registration is open! @mmsubram & @mchris duke to keynote, reception in the great hall… code lib https://twitter.com/ https://pinboard.in/u:docdre/b: e f cb/ ( ) https://twitter.com/freethefiles/status/ /photo/ - - t : : + : https://twitter.com/freethefiles/status/ /photo/ verwinv yay! i'm presenting at #code lib. and i can say hello to walter forsberg, @hbmcd and @cristalyze! code lib https://twitter.com/ https://pinboard.in/u:verwinv/b: bf d / ( ) https://twitter.com/i/web/status/ - - t : : + : https://twitter.com/i/web/status/ verwinv registration for #code lib is now open! and its being held in #washingtondc where our #memorylab is - so come visit… washingtondc code lib memorylab https://twitter.com/ https://pinboard.in/u:verwinv/b: bc fa c/ code lib - washington, d.c. - - t : : + : http:// .code lib.org/ verwinv last day to vote #code lib program! don't forget 😓! code lib https://twitter.com/ https://pinboard.in/u:verwinv/b: efcaa db a / presentation voting survey - - t : : + : https://www.surveymonkey.com/r/c l -presentations verwinv vote #code lib proposals rather than the presenters. new anonymity feature! check it: got until / code lib https://twitter.com/ https://pinboard.in/u:verwinv/b: a e b / lodlam challenge winners - - t : : + : https://summit .lodlam.net/ / / /lodlam-challenge-winners/ miaridge rt @lodlam: #lodlam challenge prize winners congrats to dive+ (grand) & warsampo (open data) teams #dh #musetech #code lib dh musetech lodlam code lib https://twitter.com/ https://pinboard.in/u:miaridge/b:c bd / jobboard - - t : : + : https://jobs.code lib.org/ lbjay some heroes don't wear capes, y'all. back online and and better than ever thanks to @ryanwick and @_cb_ #code lib code lib https://twitter.com/ https://pinboard.in/u:lbjay/b:a f f b e/ digital technologies development librarian | ncsu libraries - - t : : + : https://www.lib.ncsu.edu/jobs/ehra/digital-technologies-development-librarian jbfink rt @ronallo: job opening: digital technologies development librarian @ncsulibraries #code lib #libtechwomen know someone? libtechwomen code lib https://twitter.com/ https://pinboard.in/u:jbfink/b: a bff fd/ who's using ipfs in libraries, archives and museums - communities / libraries, archives and museums - discuss.ipfs.io - - t : : + : https://discuss.ipfs.io/t/whos-using-ipfs-in-libraries-archives-and-museums/ sdellis career ipfs libraries code lib https://pinboard.in/ https://pinboard.in/u:sdellis/b:df f bc b/ scott w. h. young on twitter: "slides for my talk on participatory design with underrepresented populations. thank you, #c l :) https://t.co/rvs zdv u" - - t : : + : https://twitter.com/hei_scott/status/ brainwane refers to my code lib keynote on empathy & ux yay code lib https://pinboard.in/ https://pinboard.in/u:brainwane/b: c ef cde / twitter - - t : : + : https://twitter.com/i/web/status/ lbjay have not read the full report but based on the abstract seems useful to those involved in the #code lib incorporati… code lib https://twitter.com/ https://pinboard.in/u:lbjay/b: f f b b / resistanceisfertile - google drive - - t : : + : https://drive.google.com/drive/folders/ b ooqctdnhjmy wn zw htxc pmhswe code lib harlow keynote https://pinboard.in/u:pmhswe/b: c / resistanceisfertile - google drive - - t : : + : https://drive.google.com/drive/folders/ b ooqctdnhjmy wn zw htxc markpbaggett code lib harlow keynote https://pinboard.in/ https://pinboard.in/u:markpbaggett/b:cffeeb e e / google drive cms - - t : : + : https://www.drivecms.xyz/ jju webdev programming tech code lib https://pinboard.in/u:jju/b:f af e a a / code lib | docker presentation - google slides - - t : : + : https://docs.google.com/presentation/d/ p pr p dxikxjwe _sha-rsktax-hzquo-ffz-th /edit#slide=id.p markpbaggett code lib docker https://pinboard.in/ https://pinboard.in/u:markpbaggett/b:bd aec e/ best catalog results page ever - - t : : + : https://www.dropbox.com/s/jbxe jpbdck z/deibel-c l -best-ever.pptx markpbaggett code lib accessibility presentation https://pinboard.in/ https://pinboard.in/u:markpbaggett/b: f b fea a/ participatory user experience design with underrepresented populations: a model for disciplined empathy - - t : : + : http:// .code lib.org/talks/participatory-user-experience-design-with-underrepresented-populations-a-model-for-disciplined-empathy brainwane am honored & humbled to see #c l glad my talk/article was helpful! wish i were at #code lib to thank you in person c l code lib https://twitter.com/ https://pinboard.in/u:brainwane/b: bf ebd d d/ twitter - - t : : + : https://twitter.com/i/web/status/ bsscdt why don't you join us in the #libux slack? sign yourself up: #litaux #ux #code lib… ux libux litaux code lib https://twitter.com/ https://pinboard.in/u:bsscdt/b: f bd a / untitled (http://libux.co/slack?utm_content=buffer f &utm_medium=social&utm_source=twitter.com&utm_campaign=buffer) - - t : : + : http://libux.co/slack bsscdt why don't you join us in the #libux slack? sign yourself up: #litaux #ux #code lib… ux libux litaux code lib https://twitter.com/ https://pinboard.in/u:bsscdt/b: a bf / twitter - - t : : + : https://twitter.com/jschneider/status/ /photo/ jcarletonoh ten principles for user protection: #code lib #privacy #ischoolui ischoolui privacy code lib https://twitter.com/ https://pinboard.in/u:jcarletonoh/b: bf dea b/ technology in hostile states: ten principles for user protection | the tor blog - - t : : + : https://blog.torproject.org/blog/technology-hostile-states-ten-principles-user-protection jcarletonoh ten principles for user protection: #code lib #privacy #ischoolui ischoolui privacy code lib https://twitter.com/ https://pinboard.in/u:jcarletonoh/b: aebf a/ analyzing marc with microxpath, part - u. ogbuji on the s & sies - - t : : + : http://uogbuji.tumblr.com/post/ /analyzing-marc-with-microxpath-part- #_=_ uche analyzing marc with microxpath, part #xml #xpath #libraries #code lib xpath xml libraries code lib https://twitter.com/ https://pinboard.in/u:uche/b: f fca a / library technology jobs - - t : : + : http://librarytechnology.org/jobs/ jbfink rt @yo_bj: / for the #code lib, #lita, and #mashcat crowds, keep an eye out on for #libtech jobs. libtech mashcat lita code lib https://twitter.com/ https://pinboard.in/u:jbfink/b:ad bba / keynote speakers nominations - code lib - - t : : + : http://wiki.code lib.org/ _keynote_speakers_nominations verwinv do you know who should keynote #code lib ? help us out: #c l code lib c l https://twitter.com/ https://pinboard.in/u:verwinv/b:fe b c e/ library of congress lccn permalink sh - - t : : + : https://lccn.loc.gov/sh anneheathen rt @julieswierczek: #code lib #c l - "black lives matter movement" is now a subject heading. . catalogers, make sure you use it! c l code lib https://twitter.com/ https://pinboard.in/u:anneheathen/b: de d ff/ hope for girls & women skip to content facebook instagram twitter linkedin search for: hope for girls & women menu news news from hope upcoming events about us about rhobi about hope about fgm in tanzania background updates from rhobi our supporters awards & articles contact challenges team members marketing material covid- what we do safe houses sponsor a girl sponsored girls community road shows alternative rites of passage film screenings: in the name of your daughter digital champions mapping re-educating cutters donate we provide a safe environment for girls escaping female genital mutilation (fgm) girls often arrive at hope’s safe houses late at night with just the clothes they have run away in. those arriving on foot have to navigate from remote, rural areas in the dark. we also work with local police teams to rescue girls when we are alerted that fgm is going to take place. we provide girls with safety, education and hope. donate to hope sponsor a girl according to the united nations, in the mara region of tanzania, % of women aged between and report having undergone fgm. hope for girls and women was founded by the tanzanian activist rhobi samwelly in . rhobi’s personal experience of being forced to undergo female genital mutilation (fgm) as a child inspired her lifelong commitment to fight for the rights of girls and women. our organisation runs two safe houses in the butiama and serengeti districts of the mara region of tanzania, which shelter and support those fleeing fgm, child marriage, and other forms of gender based violence. read more here. find out more about our important work to provide alternative rites of passage ceremonies here. we’re continually working on raising awareness locally and globally, whilst also raising funds for our safe houses. watch our new film here subscribe here to follow our updates: email address: sign up share this: twitter facebook recent posts / / beccadash human rights detecting pests in maize and cassava with the plantnuru app / / / / beccadash event reports rhobi participates in women’s health talk / / beccadash event reports debating gender-based violence with male villagers in northern tanzania / / / / hopeforgirlsandwomen event reports fighting fgm with maps / / / / beccadash human rights how mapping is helping tanzanian villages source water more posts→ create a website or blog at wordpress.com email (required) name (required) website   loading comments... comment × none none none learn@dlf - dlf forum skip to content home about code of conduct coc reporting form thank you resources news affiliated events learn@dlf ndsa’s #digipres sponsors sponsorship opportunities registration cfp search for... search for... toggle navigation toggle navigation home about code of conduct coc reporting form thank you resources news affiliated events learn@dlf ndsa’s #digipres sponsors sponsorship opportunities registration cfp join us for learn@dlf november - , to cultivate creative training and professional development opportunities stemming from our past three successful dlf forum pre-conferences as well as our series of video tutorials from last year’s first-ever virtual dlf forum, we are excited to host learn@dlf the week immediately following the dlf forum and ndsa’s digital preservation on monday-wednesday, november - , . stay tuned for updates on learn@dlf offerings. share your experiences on twitter with #learnatdlf! want forum news? subscribe to our newsletter to stay informed! subscribe sponsorship opportunities about dlf join dlf contact menu sponsorship opportunities about dlf join dlf contact envelope facebook twitter youtube instagram linkedin skip to content open toolbar accessibility tools increase text decrease text grayscale high contrast negative contrast light background links underline readable font reset sitemap call for proposals - dlf forum skip to content home about code of conduct coc reporting form thank you resources news affiliated events learn@dlf ndsa’s #digipres sponsors sponsorship opportunities registration cfp search for... search for... toggle navigation toggle navigation home about code of conduct coc reporting form thank you resources news affiliated events learn@dlf ndsa’s #digipres sponsors sponsorship opportunities registration cfp call for proposals dlf forum & learn@dlf call for proposals clir’s digital library federation invites proposals for the dlf forum (november - ) and learn@dlf (november - ), our workshop series, both held online this year. a separate call will be issued for digital preservation , the annual conference of the ndsa (november ). the forum is a meeting place, a marketplace, and a congress for digital library practitioners from dlf member institutions and the broader community. now that our events will take place virtually for a second time, we look forward to new and better ways to come together—as always, with community at the center.  therefore, our guiding focus for this year’s forum is sustaining our community. relentless innovation, disruptive change, and constant demands on our time and energy rarely allow for a pause to assess how we got here. sustenance comes in many forms and while it allows for growth, it is also an end in itself. how can we then shift our focus to prioritize the sustaining and nurturing of ourselves and our communities while still pushing for greater openness and inclusivity?  pervasive racism persists and contributes to wrenching inequalities in the united states, especially among our black, indigenous, and people of color (bipoc) communities. clir has long recognized this inequity; diversity, social justice, and broad access to cultural heritage have been integral to our mission. in , we reaffirm our commitment to pursuing greater equity and justice throughout the dlf forum, working with our entire community toward an inclusivity that prizes the chorus of diverse voices needed for systemic change. as such, the planning committee will again prioritize submissions from bipoc people and people working at historically black colleges and universities (hbcus) and other bipoc-centered libraries, archives, and museums. we therefore have self-identification options in the proposal submission form. for all events, we encourage proposals from dlf members and non-members; regulars and newcomers; digital library practitioners and those in adjacent fields such as institutional research and educational technology; and students, early-career professionals and senior staff alike. proposals to more than one event are permitted, though please submit different proposals for each. our events the dlf forum will take place monday, november through wednesday, november , . digital preservation : embracing digitality will take place on thursday, november , . more information on that event can be found here: https://ndsa.org/conference/ learn@dlf is a series of workshops offered the week after the dlf forum, november - , . about presenting accepted presentations and panels will be delivered via pre-recorded video. this format allows for flexible watch times and speeds, captioning, and avoids many technical challenges. videos must be submitted by wednesday, september . presenters will receive support in the form of tutorials, resources, and individual assistance. presenters will be expected to be in attendance and available during their presentation time for live q&a (chat-based or video, format tbd). to make space for as many voices as possible, individuals may present only once on the forum program. the dlf forum is explicitly designed to enact and support the dlf community’s values, and we strive to create a safe, accessible, welcoming, and inclusive event that reflects our code of conduct. submissions & evaluation based on community feedback and the work of our program committee, we welcome submissions geared toward a practitioner audience that: clearly engage with dlf’s mission of advancing research, learning, social justice, and the public good through the creative design and wise application of digital library technologies activate and inspire participants to think, make, and do engage people from different backgrounds, experience levels, and disciplines include clear take-aways that participants can implement in their own work submission formats sessions are invited in the following lengths and formats: at the dlf forum, november - : -minute panels: a panel discussion of three to four speakers on a unified topic, with an emphasis on the discussion. a maximum of four speakers is allowed per submission. proposals with representative and inclusive speaker involvement will be favored by the committee, and all-male-identifying panels will not be accepted. the main goals of the panel format at the dlf forum are to bring together diverse perspectives on a topic and to encourage a community discussion of panelists’ approaches or findings. -minute presentations: a presentation by one to two speakers on a single topic or project. a maximum of two speakers is allowed per submission. presentations will be grouped by the program committee based on overarching themes or ideas. -minute lightning talks: high-profile, high-energy lightning talks held in plenary, with the opportunity to point attendees to contact information and additional materials online. no more than two speakers are allowed per submission. -minute birds of a feather (boaf) sessions: working on a project on which you’d like feedback? have a question you want to ponder with other interested people? new this year, -minute boaf sessions are live video discussion sections where folks can discuss a topic of the proposer’s choice. these are roundtables where ideas can be shared and questions can be asked in the spirit of shared knowledge.   at learn@dlf, november - : -minute workshops: live, in-depth, hands-on training sessions on specific tools, techniques, workflows, or concepts. all workshop organizers are asked to provide details on technology needed, participant proficiency level, and learning outcomes for participants. workshops must be interactive and inclusive, and the strongest proposals will demonstrate this clearly. interested in presenting something longer? consider submitting a ‘part i’ (morning session) and ‘part ii’ (afternoon session). - -minute tutorials: pre-recorded training sessions or demonstrations between to minutes in length about specific tools, techniques, workflows, or concepts. proposal requirements proposal title submission format and event: varies by event first and last names, organizational affiliations, and email addresses for all authors / presenters abstract ( words max) proposal ( works max for all formats except for panels and workshops, up to words) five keywords for your proposal   submit using our online system: bit.ly/ clircfps. submit your proposal the deadline for all proposals is monday, may , , at : pm eastern time. as in previous years, all submissions will be peer reviewed. broader dlf community input will also be solicited through an open community voting process, which will inform the program committee’s final decisions. selected presenters will be notified over the summer and will have a minimum of four weeks to prepare their recordings. we are still looking for sponsors for this year’s events! if you or someone you know may be interested, check out our sponsorship opportunities or contact us. questions? you can reach us at forum@diglib.org. want forum news? subscribe to our newsletter to stay informed! subscribe sponsorship opportunities about dlf join dlf contact menu sponsorship opportunities about dlf join dlf contact envelope facebook twitter youtube instagram linkedin skip to content open toolbar accessibility tools increase text decrease text grayscale high contrast negative contrast light background links underline readable font reset sitemap none github - hughrun/yawp: command line app for publishing social media posts skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this user all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} hughrun / yawp notifications star fork command line app for publishing social media posts agpl- . license stars forks star notifications code issues pull requests actions projects security insights more code issues pull requests actions projects security insights main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags branch tag go to file code clone https github cli use git or checkout with svn using the web url. work fast with our official cli. learn more. open with github desktop download zip launching github desktop if nothing happens, download github desktop and try again. go back launching github desktop if nothing happens, download github desktop and try again. go back launching xcode if nothing happens, download xcode and try again. go back launching visual studio if nothing happens, download the github extension for visual studio and try again. go back latest commit   git stats commits files permalink failed to load latest commit information. type name latest commit message commit time src add more detail to readme apr , .gitignore more readme updates apr , cargo.lock initial code commit apr , cargo.toml minor updates to cargo.toml and readme apr , license initial commit apr , readme.md add yawp definition to readme apr , example.env add more detail to readme apr , view code yawp in brief installation macos or linux from source usage: flags: options: args: environment variables mastodon twitter examples readme.md yawp a command line (cli) app for publishing social media posts. in brief yawp takes some text as an argument and publishes it to the social media accounts of your choice. no need to read the comments, just send your yawp and move on with your day. current options are twitter and mastodon, it's possible more will be added in future (or not). yawp is specifically designed to fit within a broader toolchain: in general terms it tries to follow "the unix philosophy": can take input from stdin (e.g. redirected from a file or another process) outputs the message as plaintext to stdout (i.e. the output is the input) takes all configuration from environment (env) values to enable flexibility installation macos or linux download the relevant binary file from the latest release. save it somewhere in your path, e.g. in /usr/local/bin/. alternatively you can symlink it from wherever you want to save it, like this: ln -s /my/awesome/directory/yawp /usr/local/bin/ from source if you're using another platform or don't trust my binaries you can build your own from source: git clone or download the repository as a zip. cargo build --release usage: yawp [flags] [options] flags: -h, --help prints help information -m, --mastodon send toot -q, --quiet suppress output (error messages will still be sent to stderr) -t, --twitter send tweet -v, --version prints version information options: -e, --env path to env file args: message (post) to send. if using stdin you must provide a hyphen (-) as the argument. however if you do this and are not redirecting stdin from somewhere, yawp will hang your shell unless you supply eof by pressing ctrl + d. (see example below). environment variables yawp requires some environment variables in order to actually publish your message. you can set these in a number of ways depending on your operating system. yawp also allows you to call them in from a file. see example for using a file or example for setting environment values at the same time you call yawp. an example environment variables file is provided at example.env. the possible values are: mastodon for mastodon you need the base url of your instance (server), and an api access token. mastodon_access_token - you can create a token at settings - applications in your mastodon account. you require write:statuses permission. mastodon_base_url - this is the base url of your server. e.g. https://mastodon.social twitter for twitter you need the four tokens provided when you create an app at https://developer.twitter.com/en/apps. twitter_consumer_key twitter_consumer_secret twitter_access_token twitter_access_secret examples provide message on command line: yawp 'hello, world!' -t # output: hello, world! # tweets: hello, world! pipe in message: echo 'hello again, world!' | yawp - -m # output: hello again, world! # toots: hello again, world! read from file # create a file (echo hello fronds; echo " it's me"; echo ...a tree 🌳) > message.txt # run yawp and direct file content into it yawp - output.txt # the message.txt and output.txt files are now identical. read from user input this is not really recommended, but you may find yourself facing a user input prompt if you use a hyphen without providing any redirected input. i.e. if you do this: yawp - # machine awaits user further input from command line don't panic, you can provide the message text by typing it in at the command prompt. there is a catch, however, in that yawp will wait for further input until it reaches eof (end of file). this will not happen when you press enter but can usually be provided by pressing ctrl + d: yawp -t - # machine awaits user further input from command line awoo! [ctrl + d] # output: awoo! # tweets: awoo! provide environment variables from file in some situtations (e.g. when using docker compose) you may have already set environment variables specific to those needed by yawp. if not, you can call them in from a file by providing the filepath using -e or --env: yawp -m --env 'yawp.env' 'i love to toot!' provide environment variables on command line you could also set env settings manually when you call yawp: mastodon_base_url=https://ausglam.space mastodon_access_token=abcd yawp -m '🎺 i am tooting!' about command line app for publishing social media posts resources readme license agpl- . license releases . . latest apr , packages no packages published languages rust . % shell . % © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. orcid skip to main content for full functionality of this site it is necessary to enable javascript. here are the instructions for enabling javascript in your web browser. orcid uses cookies to improve your experience and to help us understand how you use our websites. learn more about how we use cookies. home · carpenpi/docs wiki · github skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} carpenpi / docs notifications star fork code issues pull requests actions projects wiki security insights more code issues pull requests actions projects wiki security insights home jump to bottom flic anderson edited this page apr , · revisions about carpenpi carpenpi aims to facilitate software carpentry and data carpentry lessons to be taught from a cluster of raspberry pis, to allow them to be run in places with unreliable internet connections. carpenpi was born out of the software sustainability institute's collababorations workshop. the idea was formed by a team during the collaborative ideas session, and the implementation began on the hack day. for more info on the project motivation see the collabw -demo-presentation repository. minimum requirements all raspberry pi's need wifi capability which is built into version and pi's but usb dongles can be included for lower versions. at least two pi's are required for infrastructure and then enough pi's for all attendees. code of conduct we follow the code of conduct outlined by the carpentries architecture see pi-network for an overview. repositories raspberry pi images/setup accesspoint: runs an access point on a pi to set up a local network webserver: runs a web server on a pi to host the carpentries training materials without internet access git-server: runs a git server on a pi to allow course participants to collaborate via git without needing external internet access other repositories traintrainers: carpentry course for trainers who want to use a pi cluster collabw -demopresentation: presentation for the collaborations workshop hackday docs: repository for this wiki workshop-admin: repository for a web app to help administer the courses recent decisions project name: carppi carpenpis carpentpis (with the 't'?) carpentries in a case carpintries the fruit of knowledge pandora's box deliverpi rasppitrain off-grid carpentries raspberry carpenpis carpentryjam logo : combining raspberry pi and carpentries logo. colour scheme close to pi or carpentries? why chose? lets not modify the original images carpentry bolt with raspberry on or replace bolt with raspberry? remove th bolt due to clash of colours fun font or formal? we're too fun to be formal. licence : following the carpentries website we are using the mit licence for code and cc-by for materials. future work see project issues for details for future work. the main areas are: making the pi network auto-configurable updating the training materials the workshop admin area contributors in alphabetical order: abhishek dasgupta alison clarke emily lewis flic anderson irma hafidz jannetta steyn rebecca wilson sam haynes talia caplan pages home pi network clone this wiki locally © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. github - knowledgecaptureanddiscovery/somef-github-action skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} knowledgecaptureanddiscovery / somef-github-action notifications star fork apache- . license stars forks star notifications code issues pull requests actions projects security insights more code issues pull requests actions projects security insights main switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags branches tag go to file code clone https github cli use git or checkout with svn using the web url. work fast with our official cli. learn more. open with github desktop download zip launching github desktop if nothing happens, download github desktop and try again. go back launching github desktop if nothing happens, download github desktop and try again. go back launching xcode if nothing happens, download xcode and try again. go back launching visual studio if nothing happens, download the github extension for visual studio and try again. go back latest commit   git stats commits files permalink failed to load latest commit information. type name latest commit message commit time .github/workflows     dockerfile     license     readme.md     action.yml     entrypoint.sh     view code somef github action basic usage advanced workflow readme.md somef github action this action uses somef to generate a .codemeta file and meet the recommendations from howfairis basic usage in its more basic usage, the github action only uses somef to generate a codemeta.json file. on: [push] jobs: somef_job: runs-on: ubuntu-latest name: run somef steps: # checks-out your repository under $github_workspace, so your job can access it - name: chechout repo uses: actions/checkout@v # use somef generate codemeta.json - name: somef with repo-url input uses: knowledgecaptureanddiscovery/somef-github-action@main with: repo-url: "https://github.com/${{ github.repository }}" advanced workflow a more advanced workflow uses howfairis and create pull request actions to create a howfairis badge and send a pull request with the generated codemeta.json file if necessary: on: [push] jobs: somef_job: runs-on: ubuntu-latest name: test somef steps: # checks-out your repository under $github_workspace, so your job can access it - name: chechout repo uses: actions/checkout@v # run howfairis - name: fair-software uses: fair-software/howfairis-github-action@ . . with: my_repo_url: "https://github.com/${{ github.repository }}" # use somef generate codemeta.json - name: somef with repo-url input uses: knowledgecaptureanddiscovery/somef-github-action@main with: repo-url: "https://github.com/${{ github.repository }}" # create a pr - name: create pull request uses: peter-evans/create-pull-request@v . . with: title: generating codemeta template commit-message: add codemeta.json template committer: github author: ${{ github.actor }} <${{ github.actor }}@users.noreply.github.com> labels: automated pr branch: add-codemeta about no description, website, or topics provided. resources readme license apache- . license releases tags packages no packages published contributors       languages shell . % dockerfile . % © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. pull requests · frictionlessdata/frictionless-py · github skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} frictionlessdata / frictionless-py notifications star fork code issues pull requests actions projects security insights more code issues pull requests actions projects security insights labels milestones labels milestones new pull request new open closed open closed author filter by author author: filter by this user label filter by label use alt + click/return to exclude labels. projects filter by project milestones filter by milestone reviews filter by reviews no reviews review required approved review changes requested assignee filter by who’s assigned sort sort by newest oldest most commented least commented recently updated least recently updated most reactions 👍 👎 😄 🎉 😕 ❤️ 🚀 👀 there aren’t any open pull requests. you could search all of github or try an advanced search. protip! mix and match filters to narrow down what you’re looking for. © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. none strategies for learning from failure subscribe sign in clear suggested topics explore hbr diversity latest the magazine most popular podcasts video store webinars newsletters popular topics managing yourself leadership strategy managing teams gender innovation work-life balance all topics for subscribers the big idea visual library reading lists case selections subscribe my account my library topic feeds orders account settings email preferences log out sign in subscribe diversity latest podcasts video the magazine store webinars newsletters all topics the big idea visual library reading lists case selections my library account settings log out sign in your cart your shopping cart is empty. visit our store guest user subscriber my library topic feeds orders account settings email preferences log out reading list reading lists you have free articles left this month. you are reading your last free article for this month. subscribe for unlimited access. create an account to read more. leadership strategies for learning from failure we are programmed at an early age to think that failure is bad. that belief prevents organizations from effectively learning from their missteps. by amy c. edmondson by amy c. edmondson from the magazine (april ) tweet post share save get pdf buy copies print summary.    reprint: r b many executives believe that all failure is bad (although it usually provides lessons) and that learning from it is pretty straightforward. the author, a professor at harvard business school, thinks both beliefs are misguided. in organizational life, she says, some failures are inevitable and some are even good. and successful learning from failure is not simple: it requires context-specific strategies. but first leaders must understand how the blame game gets in the way and work to create an organizational culture in which employees feel safe admitting or reporting on failure. failures fall into three categories: preventable ones in predictable operations, which usually involve deviations from spec; unavoidable ones in complex systems, which may arise from unique combinations of needs, people, and problems; and intelligent ones at the frontier, where “good” failures occur quickly and on a small scale, providing the most valuable information. strong leadership can build a learning culture—one in which failures large and small are consistently reported and deeply analyzed, and opportunities to experiment are proactively sought. executives commonly and understandably worry that taking a sympathetic stance toward failure will create an “anything goes” work environment. they should instead recognize that failure is inevitable in today’s complex work organizations. tweet post share save get pdf buy copies print leer en español the wisdom of learning from failure is incontrovertible. yet organizations that do it well are extraordinarily rare. this gap is not due to a lack of commitment to learning. managers in the vast majority of enterprises that i have studied over the past years—pharmaceutical, financial services, product design, telecommunications, and construction companies; hospitals; and nasa’s space shuttle program, among others—genuinely wanted to help their organizations learn from failures to improve future performance. in some cases they and their teams had devoted many hours to after-action reviews, postmortems, and the like. but time after time i saw that these painstaking efforts led to no real change. the reason: those managers were thinking about failure the wrong way. most executives i’ve talked to believe that failure is bad (of course!). they also believe that learning from it is pretty straightforward: ask people to reflect on what they did wrong and exhort them to avoid similar mistakes in the future—or, better yet, assign a team to review and write a report on what happened and then distribute it throughout the organization. these widely held beliefs are misguided. first, failure is not always bad. in organizational life it is sometimes bad, sometimes inevitable, and sometimes even good. second, learning from organizational failures is anything but straightforward. the attitudes and activities required to effectively detect and analyze failures are in short supply in most companies, and the need for context-specific learning strategies is underappreciated. organizations need new and better ways to go beyond lessons that are superficial (“procedures weren’t followed”) or self-serving (“the market just wasn’t ready for our great new product”). that means jettisoning old cultural beliefs and stereotypical notions of success and embracing failure’s lessons. leaders can begin by understanding how the blame game gets in the way. the blame game failure and fault are virtually inseparable in most households, organizations, and cultures. every child learns at some point that admitting failure means taking the blame. that is why so few organizations have shifted to a culture of psychological safety in which the rewards of learning from failure can be fully realized. executives i’ve interviewed in organizations as different as hospitals and investment banks admit to being torn: how can they respond constructively to failures without giving rise to an anything-goes attitude? if people aren’t blamed for failures, what will ensure that they try as hard as possible to do their best work? this concern is based on a false dichotomy. in actuality, a culture that makes it safe to admit and report on failure can—and in some organizational contexts must—coexist with high standards for performance. to understand why, look at the exhibit “a spectrum of reasons for failure,” which lists causes ranging from deliberate deviation to thoughtful experimentation. which of these causes involve blameworthy actions? deliberate deviance, first on the list, obviously warrants blame. but inattention might not. if it results from a lack of effort, perhaps it’s blameworthy. but if it results from fatigue near the end of an overly long shift, the manager who assigned the shift is more at fault than the employee. as we go down the list, it gets more and more difficult to find blameworthy acts. in fact, a failure resulting from thoughtful experimentation that generates valuable information may actually be praiseworthy. when i ask executives to consider this spectrum and then to estimate how many of the failures in their organizations are truly blameworthy, their answers are usually in single digits—perhaps % to %. but when i ask how many are treated as blameworthy, they say (after a pause or a laugh) % to %. the unfortunate consequence is that many failures go unreported and their lessons are lost. not all failures are created equal a sophisticated understanding of failure’s causes and contexts will help to avoid the blame game and institute an effective strategy for learning from failure. although an infinite number of things can go wrong in organizations, mistakes fall into three broad categories: preventable, complexity-related, and intelligent. preventable failures in predictable operations. most failures in this category can indeed be considered “bad.” they usually involve deviations from spec in the closely defined processes of high-volume or routine operations in manufacturing and services. with proper training and support, employees can follow those processes consistently. when they don’t, deviance, inattention, or lack of ability is usually the reason. but in such cases, the causes can be readily identified and solutions developed. checklists (as in the harvard surgeon atul gawande’s recent best seller the checklist manifesto) are one solution. another is the vaunted toyota production system, which builds continual learning from tiny failures (small process deviations) into its approach to improvement. as most students of operations know well, a team member on a toyota assembly line who spots a problem or even a potential problem is encouraged to pull a rope called the andon cord, which immediately initiates a diagnostic and problem-solving process. production continues unimpeded if the problem can be remedied in less than a minute. otherwise, production is halted—despite the loss of revenue entailed—until the failure is understood and resolved. unavoidable failures in complex systems. a large number of organizational failures are due to the inherent uncertainty of work: a particular combination of needs, people, and problems may have never occurred before. triaging patients in a hospital emergency room, responding to enemy actions on the battlefield, and running a fast-growing start-up all occur in unpredictable situations. and in complex organizations like aircraft carriers and nuclear power plants, system failure is a perpetual risk. although serious failures can be averted by following best practices for safety and risk management, including a thorough analysis of any such events that do occur, small process failures are inevitable. to consider them bad is not just a misunderstanding of how complex systems work; it is counterproductive. avoiding consequential failures means rapidly identifying and correcting small failures. most accidents in hospitals result from a series of small failures that went unnoticed and unfortunately lined up in just the wrong way. intelligent failures at the frontier. failures in this category can rightly be considered “good,” because they provide valuable new knowledge that can help an organization leap ahead of the competition and ensure its future growth—which is why the duke university professor of management sim sitkin calls them intelligent failures. they occur when experimentation is necessary: when answers are not knowable in advance because this exact situation hasn’t been encountered before and perhaps never will be again. discovering new drugs, creating a radically new business, designing an innovative product, and testing customer reactions in a brand-new market are tasks that require intelligent failures. “trial and error” is a common term for the kind of experimentation needed in these settings, but it is a misnomer, because “error” implies that there was a “right” outcome in the first place. at the frontier, the right kind of experimentation produces good failures quickly. managers who practice it can avoid the unintelligent failure of conducting experiments at a larger scale than necessary. leaders of the product design firm ideo understood this when they launched a new innovation-strategy service. rather than help clients design new products within their existing lines—a process ideo had all but perfected—the service would help them create new lines that would take them in novel strategic directions. knowing that it hadn’t yet figured out how to deliver the service effectively, the company started a small project with a mattress company and didn’t publicly announce the launch of a new business. although the project failed—the client did not change its product strategy—ideo learned from it and figured out what had to be done differently. for instance, it hired team members with mbas who could better help clients create new businesses and made some of the clients’ managers part of the team. today strategic innovation services account for more than a third of ideo’s revenues. tolerating unavoidable process failures in complex systems and intelligent failures at the frontiers of knowledge won’t promote mediocrity. indeed, tolerance is essential for any organization that wishes to extract the knowledge such failures provide. but failure is still inherently emotionally charged; getting an organization to accept it takes leadership. building a learning culture only leaders can create and reinforce a culture that counteracts the blame game and makes people feel both comfortable with and responsible for surfacing and learning from failures. (see the sidebar “how leaders can build a psychologically safe environment.”) they should insist that their organizations develop a clear understanding of what happened—not of “who did it”—when things go wrong. this requires consistently reporting failures, small and large; systematically analyzing them; and proactively searching for opportunities to experiment. how leaders can build a psychologically safe environment if an organization’s employees are to help spot existing and pending failures and to learn from them, their leaders must make it safe to speak up. julie morath, the chief operating officer of children’s hospital and clinics of minnesota from to , did just that when she led a highly successful effort to reduce medical errors. here are five practices i’ve identified in my research, with examples of how morath employed them to build a psychologically safe environment. frame the work accurately people need a shared understanding of the kinds of failures that can be expected to occur in a given work context (routine production, complex operations, or innovation) and why openness and collaboration are important for surfacing and learning from them. accurate framing detoxifies failure. in a complex operation like a hospital, many consequential failures are the result of a series of small events. to heighten awareness of this system complexity, morath presented data on u.s. medical error rates, organized discussion groups, and built a team of key influencers from throughout the organization to help spread knowledge and understanding of the challenge. embrace messengers those who come forward with bad news, questions, concerns, or mistakes should be rewarded rather than shot. celebrate the value of the news first and then figure out how to fix the failure and learn from it. morath implemented “blameless reporting”—an approach that encouraged employees to reveal medical errors and near misses anonymously. her team created a new patient safety report, which expanded on the previous version by asking employees to describe incidents in their own words and to comment on the possible causes. soon after the new system was implemented, the rate of reported failures shot up. morath encouraged her people to view the data as good news, because the hospital could learn from failures—and made sure that teams were assigned to analyze every incident. acknowledge limits being open about what you don’t know, mistakes you’ve made, and what you can’t get done alone will encourage others to do the same. as soon as she joined the hospital, morath explained her passion for patient safety and acknowledged that as a newcomer, she had only limited knowledge of how things worked at children’s. in group presentations and one-on-one discussions, she made clear that she would need everyone’s help to reduce errors. invite participation ask for observations and ideas and create opportunities for people to detect and analyze failures and promote intelligent experiments. inviting participation helps defuse resistance and defensiveness. morath set up cross-disciplinary teams to analyze failures and personally asked thoughtful questions of employees at all levels. early on, she invited people to reflect on their recent experiences in caring for patients: was everything as safe as they would have wanted it to be? this helped them recognize that the hospital had room for improvement. suddenly, people were lining up to help. set boundaries and hold people accountable paradoxically, people feel psychologically safer when leaders are clear about what acts are blameworthy. and there must be consequences. but if someone is punished or fired, tell those directly and indirectly affected what happened and why it warranted blame. when she instituted blameless reporting, morath explained to employees that although reporting would not be punished, specific behaviors (such as reckless conduct, conscious violation of standards, failing to ask for help when over one’s head) would. if someone makes the same mistake three times and is then laid off, coworkers usually express relief, along with sadness and concern—they understand that patients were at risk and that extra vigilance was required from others to counterbalance the person’s shortcomings. leaders should also send the right message about the nature of the work, such as reminding people in r&d, “we’re in the discovery business, and the faster we fail, the faster we’ll succeed.” i have found that managers often don’t understand or appreciate this subtle but crucial point. they also may approach failure in a way that is inappropriate for the context. for example, statistical process control, which uses data analysis to assess unwarranted variances, is not good for catching and correcting random invisible glitches such as software bugs. nor does it help in the development of creative new products. conversely, though great scientists intuitively adhere to ideo’s slogan, “fail often in order to succeed sooner,” it would hardly promote success in a manufacturing plant. the slogan “fail often in order to succeed sooner” would hardly promote success in a manufacturing plant. often one context or one kind of work dominates the culture of an enterprise and shapes how it treats failure. for instance, automotive companies, with their predictable, high-volume operations, understandably tend to view failure as something that can and should be prevented. but most organizations engage in all three kinds of work discussed above—routine, complex, and frontier. leaders must ensure that the right approach to learning from failure is applied in each. all organizations learn from failure through three essential activities: detection, analysis, and experimentation. detecting failure spotting big, painful, expensive failures is easy. but in many organizations any failure that can be hidden is hidden as long as it’s unlikely to cause immediate or obvious harm. the goal should be to surface it early, before it has mushroomed into disaster. shortly after arriving from boeing to take the reins at ford, in september , alan mulally instituted a new system for detecting failures. he asked managers to color code their reports green for good, yellow for caution, or red for problems—a common management technique. according to a story in fortune, at his first few meetings all the managers coded their operations green, to mulally’s frustration. reminding them that the company had lost several billion dollars the previous year, he asked straight out, “isn’t anything not going well?” after one tentative yellow report was made about a serious product defect that would probably delay a launch, mulally responded to the deathly silence that ensued with applause. after that, the weekly staff meetings were full of color. that story illustrates a pervasive and fundamental problem: although many methods of surfacing current and pending failures exist, they are grossly underutilized. total quality management and soliciting feedback from customers are well-known techniques for bringing to light failures in routine operations. high-reliability-organization (hro) practices help prevent catastrophic failures in complex systems like nuclear power plants through early detection. electricité de france, which operates nuclear power plants, has been an exemplar in this area: it goes beyond regulatory requirements and religiously tracks each plant for anything even slightly out of the ordinary, immediately investigates whatever turns up, and informs all its other plants of any anomalies. such methods are not more widely employed because all too many messengers—even the most senior executives—remain reluctant to convey bad news to bosses and colleagues. one senior executive i know in a large consumer products company had grave reservations about a takeover that was already in the works when he joined the management team. but, overly conscious of his newcomer status, he was silent during discussions in which all the other executives seemed enthusiastic about the plan. many months later, when the takeover had clearly failed, the team gathered to review what had happened. aided by a consultant, each executive considered what he or she might have done to contribute to the failure. the newcomer, openly apologetic about his past silence, explained that others’ enthusiasm had made him unwilling to be “the skunk at the picnic.” in researching errors and other failures in hospitals, i discovered substantial differences across patient-care units in nurses’ willingness to speak up about them. it turned out that the behavior of midlevel managers—how they responded to failures and whether they encouraged open discussion of them, welcomed questions, and displayed humility and curiosity—was the cause. i have seen the same pattern in a wide range of organizations. a horrific case in point, which i studied for more than two years, is the explosion of the columbia space shuttle, which killed seven astronauts (see “facing ambiguous threats,” by michael a. roberto, richard m.j. bohmer, and amy c. edmondson, hbr november ). nasa managers spent some two weeks downplaying the seriousness of a piece of foam’s having broken off the left side of the shuttle at launch. they rejected engineers’ requests to resolve the ambiguity (which could have been done by having a satellite photograph the shuttle or asking the astronauts to conduct a space walk to inspect the area in question), and the major failure went largely undetected until its fatal consequences days later. ironically, a shared but unsubstantiated belief among program managers that there was little they could do contributed to their inability to detect the failure. postevent analyses suggested that they might indeed have taken fruitful action. but clearly leaders hadn’t established the necessary culture, systems, and procedures. one challenge is teaching people in an organization when to declare defeat in an experimental course of action. the human tendency to hope for the best and try to avoid failure at all costs gets in the way, and organizational hierarchies exacerbate it. as a result, failing r&d projects are often kept going much longer than is scientifically rational or economically prudent. we throw good money after bad, praying that we’ll pull a rabbit out of a hat. intuition may tell engineers or scientists that a project has fatal flaws, but the formal decision to call it a failure may be delayed for months. again, the remedy—which does not necessarily involve much time and expense—is to reduce the stigma of failure. eli lilly has done this since the early s by holding “failure parties” to honor intelligent, high-quality scientific experiments that fail to achieve the desired results. the parties don’t cost much, and redeploying valuable resources—particularly scientists—to new projects earlier rather than later can save hundreds of thousands of dollars, not to mention kickstart potential new discoveries. analyzing failure once a failure has been detected, it’s essential to go beyond the obvious and superficial reasons for it to understand the root causes. this requires the discipline—better yet, the enthusiasm—to use sophisticated analysis to ensure that the right lessons are learned and the right remedies are employed. the job of leaders is to see that their organizations don’t just move on after a failure but stop to dig in and discover the wisdom contained in it. why is failure analysis often shortchanged? because examining our failures in depth is emotionally unpleasant and can chip away at our self-esteem. left to our own devices, most of us will speed through or avoid failure analysis altogether. another reason is that analyzing organizational failures requires inquiry and openness, patience, and a tolerance for causal ambiguity. yet managers typically admire and are rewarded for decisiveness, efficiency, and action—not thoughtful reflection. that is why the right culture is so important. the challenge is more than emotional; it’s cognitive, too. even without meaning to, we all favor evidence that supports our existing beliefs rather than alternative explanations. we also tend to downplay our responsibility and place undue blame on external or situational factors when we fail, only to do the reverse when assessing the failures of others—a psychological trap known as fundamental attribution error. my research has shown that failure analysis is often limited and ineffective—even in complex organizations like hospitals, where human lives are at stake. few hospitals systematically analyze medical errors or process flaws in order to capture failure’s lessons. recent research in north carolina hospitals, published in november in the new england journal of medicine, found that despite a dozen years of heightened awareness that medical errors result in thousands of deaths each year, hospitals have not become safer. fortunately, there are shining exceptions to this pattern, which continue to provide hope that organizational learning is possible. at intermountain healthcare, a system of hospitals that serves utah and southeastern idaho, physicians’ deviations from medical protocols are routinely analyzed for opportunities to improve the protocols. allowing deviations and sharing the data on whether they actually produce a better outcome encourages physicians to buy into this program. (see “fixing health care on the front lines,” by richard m.j. bohmer, hbr april .) motivating people to go beyond first-order reasons (procedures weren’t followed) to understanding the second- and third-order reasons can be a major challenge. one way to do this is to use interdisciplinary teams with diverse skills and perspectives. complex failures in particular are the result of multiple events that occurred in different departments or disciplines or at different levels of the organization. understanding what happened and how to prevent it from happening again requires detailed, team-based discussion and analysis. a team of leading physicists, engineers, aviation experts, naval leaders, and even astronauts devoted months to an analysis of the columbia disaster. they conclusively established not only the first-order cause—a piece of foam had hit the shuttle’s leading edge during launch—but also second-order causes: a rigid hierarchy and schedule-obsessed culture at nasa made it especially difficult for engineers to speak up about anything but the most rock-solid concerns. promoting experimentation the third critical activity for effective learning is strategically producing failures—in the right places, at the right times—through systematic experimentation. researchers in basic science know that although the experiments they conduct will occasionally result in a spectacular success, a large percentage of them ( % or higher in some fields) will fail. how do these people get out of bed in the morning? first, they know that failure is not optional in their work; it’s part of being at the leading edge of scientific discovery. second, far more than most of us, they understand that every failure conveys valuable information, and they’re eager to get it before the competition does. in contrast, managers in charge of piloting a new product or service—a classic example of experimentation in business—typically do whatever they can to make sure that the pilot is perfect right out of the starting gate. ironically, this hunger to succeed can later inhibit the success of the official launch. too often, managers in charge of pilots design optimal conditions rather than representative ones. thus the pilot doesn’t produce knowledge about what won’t work. too often, pilots are conducted under optimal conditions rather than representative ones. thus they can’t show what won’t work. in the very early days of dsl, a major telecommunications company i’ll call telco did a full-scale launch of that high-speed technology to consumer households in a major urban market. it was an unmitigated customer-service disaster. the company missed % of its commitments and found itself confronted with a staggering , late orders. customers were frustrated and upset, and service reps couldn’t even begin to answer all their calls. employee morale suffered. how could this happen to a leading company with high satisfaction ratings and a brand that had long stood for excellence? a small and extremely successful suburban pilot had lulled telco executives into a misguided confidence. the problem was that the pilot did not resemble real service conditions: it was staffed with unusually personable, expert service reps and took place in a community of educated, tech-savvy customers. but dsl was a brand-new technology and, unlike traditional telephony, had to interface with customers’ highly variable home computers and technical skills. this added complexity and unpredictability to the service-delivery challenge in ways that telco had not fully appreciated before the launch. a more useful pilot at telco would have tested the technology with limited support, unsophisticated customers, and old computers. it would have been designed to discover everything that could go wrong—instead of proving that under the best of conditions everything would go right. (see the sidebar “designing successful failures.”) of course, the managers in charge would have to have understood that they were going to be rewarded not for success but, rather, for producing intelligent failures as quickly as possible. designing successful failures perhaps unsurprisingly, pilot projects are usually designed to succeed rather than to produce intelligent failures—those that generate valuable information. to know if you’ve designed a genuinely useful pilot, consider whether your managers can answer yes to the following questions: is the pilot being tested under typical circumstances (rather than optimal conditions)? do the employees, customers, and resources represent the firm’s real operating environment? is the goal of the pilot to learn as much as possible (rather than to demonstrate the value of the proposed offering)? is the goal of learning well understood by all employees and managers? is it clear that compensation and performance reviews are not based on a successful outcome for the pilot? were explicit changes made as a result of the pilot test? in short, exceptional organizations are those that go beyond detecting and analyzing failures and try to generate intelligent ones for the express purpose of learning and innovating. it’s not that managers in these organizations enjoy failure. but they recognize it as a necessary by-product of experimentation. they also realize that they don’t have to do dramatic experiments with large budgets. often a small pilot, a dry run of a new technique, or a simulation will suffice.   the courage to confront our own and others’ imperfections is crucial to solving the apparent contradiction of wanting neither to discourage the reporting of problems nor to create an environment in which anything goes. this means that managers must ask employees to be brave and speak up—and must not respond by expressing anger or strong disapproval of what may at first appear to be incompetence. more often than we realize, complex systems are at work behind organizational failures, and their lessons and improvement opportunities are lost when conversation is stifled. savvy managers understand the risks of unbridled toughness. they know that their ability to find out about and help resolve problems depends on their ability to learn about them. but most managers i’ve encountered in my research, teaching, and consulting work are far more sensitive to a different risk—that an understanding response to failures will simply create a lax work environment in which mistakes multiply. this common worry should be replaced by a new paradigm—one that recognizes the inevitability of failure in today’s complex work organizations. those that catch, correct, and learn from failure before others do will succeed. those that wallow in the blame game will not. a version of this article appeared in the april issue of harvard business review. read more on leadership or related topics organizational culture, knowledge management, business processes and experimentation amy c. edmondson is the novartis professor of leadership and management at harvard business school. she is the author of the fearless organization: creating psychological safety in the workplace for learning, innovation, and growth (wiley, ). tweet post share save get pdf buy copies print read more on leadership or related topics organizational culture, knowledge management, business processes and experimentation partner center diversity latest magazine popular topics podcasts video store the big idea visual library case selections subscribe explore hbr the latest most popular all topics magazine archive the big idea reading lists case selections video podcasts webinars visual library my library newsletters hbr press hbr ascend hbr store article reprints books cases collections magazine issues hbr guide series hbr -minute managers hbr emotional intelligence series hbr must reads tools about hbr contact us advertise with us information for booksellers/retailers masthead global editions media inquiries guidelines for authors hbr analytic services copyright permissions manage my account my library topic feeds orders account settings email preferences account faq help center contact customer service follow hbr facebook twitter linkedin instagram your newsreader about us careers privacy policy cookie policy copyright information trademark policy harvard business publishing: higher education corporate learning harvard business review harvard business school copyright ©   harvard business school publishing. all rights reserved. harvard business publishing is an affiliate of harvard business school. home - research data management - library guides at university of california, santa cruz skip to main content university library hours my account contact us giving search form search menuuniversity library find & borrow research materials search: books, articles & more start your search for research materials course reserves set up reserves or find course materials borrowing policies databases a - z continue your research with more databases interlibrary loan: borrow from other libraries borrow items from libraries worldwide search libraries worldwide (melvyl) search beyond the ucsc library request a purchase help & tutorials recommended resources find the best databases for your classes get research help contact the library with your questions cite your sources get help with citation basics sign in from off-campus access books, articles, and other online materials from off-campus start your research learn how to use library resources collections & scholarly communication our collections digital collections, video games, maps, and more media collection & desk borrow films, music, and digital equipment special collections find and use our unique collections and archives borrow tech & equipment laptops, cameras, mics, and more faculty & teaching support faculty & graduate services learn about how we support your work open access learn about oa policies and publishing online journals locate a journal by its title teaching support consult with us on your next assignment digital scholarship upgrade your digital skills about the library about the library news & events stay up-to-date on library events library computers find and use computer stations at both libraries mchenry library reserve a study room student study center science & engineering library campus maps & directions find our libraries on campus research data management home create your plan (dmptool) preserve & publish (dryad) find data for reuse best practices tools video tutorials researcher to researcher we can help you create a data management plan easily create a data management plan for your next grant proposal using the dmptool preserve & publish your data publish your data in dryad for preservation and discovery manage your paper or data set with a unique persistent identifier. request a doi (digital object identifier) manage your data check out these best practices for file naming, file organization, file formats, archival data storage, metadata creation and data sharing options find data for reuse locate an appropriate data repository research data management lifecycle our goal to assist ucsc faculty, staff and students with strategies and tools for organizing, managing and preserving research data throughout the research data life cycle.  request a data consultation scholarly communication & eresearch team email: research@library.ucsc.edu ucsc campus services ucsc its provides a range of research support services, including data backup. next: create your plan (dmptool) >> high streetsanta cruz, ca feedback creative commons attribution . license except where otherwise noted. patrons with disabilities privacy policy staff portal libapps login incident form (staff only) print page edit this page tags: how do i...?, special topics github - code lib/planetcode lib: configuration for https://planet.code lib.org/ skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this organization all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} code lib / planetcode lib notifications star fork configuration for https://planet.code lib.org/ stars forks star notifications code issues pull requests actions projects security insights more code issues pull requests actions projects security insights master switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags branch tags go to file code clone https github cli use git or checkout with svn using the web url. work fast with our official cli. learn more. open with github desktop download zip launching github desktop if nothing happens, download github desktop and try again. go back launching github desktop if nothing happens, download github desktop and try again. go back launching xcode if nothing happens, download xcode and try again. go back launching visual studio if nothing happens, download the github extension for visual studio and try again. go back latest commit   git stats commits files permalink failed to load latest commit information. type name latest commit message commit time themes     venus @ de     .gitignore     .gitmodules     readme.md     config.ini     test.ini     view code planet.code lib.org installation generally installation on the code lib.org server adding (or removing) a feed readme.md planet.code lib.org planet code lib aggregates feeds and blogs of interest to the code lib community. it uses planet venus. installation generally > git clone git@github.com:code lib/planetcode lib.git > cd planetcode lib > git submodule init > git submodule update > ./venus/planet.py --verbose the generated files will be in output/. to test it with one feed, run > ./venus/planet.py --verbose test.ini installation on the code lib.org server downloading and cloning is done over https so it's as generic as possible. no updates are to be made on the server; they should be made locally, pushed to github, then pulled down. > # become the c l user > cd /var/www/code lib.org/planet_new > git clone https://github.com/code lib/planetcode lib.git > cd planetcode lib > git submodule init > git submdule update > ./venus/planet.py --verbose --expunge to update: > # become the c l user > cd /var/www/code lib.org/planet_new/planetcode lib > git pull the relevant line in c l's crontab is: , * * * * cd /var/www/code lib.org/planet_new/planetcode lib; ./venus/planet.py --expunge >& adding (or removing) a feed additions are welcome! email william denton or submit a pull request modifying config.ini. if you're on the list but don't want to be, please do the same, and you'll be removed, no questions asked. about configuration for https://planet.code lib.org/ resources readme releases no releases published packages no packages published contributors + contributors languages xslt . % css . % html . % © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. evergreen downloads – evergreen ils skip to content evergreen – open source library software evergreen – open source library software about us overview annual reports f.a.q. evergreen event code of conduct software freedom conservancy project governance trademark policy documentation official documentation documentation interest group evergreen roadmap evergreen wiki tabular release notes get involved! get involved! committees & interest groups communications mailing lists irc calendar blog jobs proposed development projects merchandise t-shirts and more conference all conferences evergreen international online conference evergreen international online conference event photography policy code of conduct downloads evergreen downloads opensrf downloads home » evergreen downloads evergreen downloads evergreen downloads evergreen depends on the following technologies perl, c, javascript, xml, xpath, xslt, xmpp, opensrf, apache, mod_perl, and postgresql. the latest stable release of a supported linux distribution is recommended for an evergreen installation. for ubuntu, please use the . -bit lts (long term support) server release. currently the latest release from the evergreen . series is recommended for new installations and stable releases are suggested for production systems. note: evergreen servers and staff clients must match. for example, if you are running server version . . , you should use version . . of the staff client. evergreen . . + no longer supports a separate client by default, but building a client remains as an unsupported option. server & staff client downloads . series . series . series status stable stable stable latest release . . . . . . release date - - - - - - release notes release notes release notes release notes tabular release notes summary changelog changelog changelog changelog evergreen installation install instructions install instructions install instructions upgrading notes on upgrading from . . tbd tbd opensrf software . . (md ) . . (md ) . . (md ) server software source (md ) source (md ) source (md ) web staff client extension (“hatch”) windows hatch installer . .  (md ) – installation instructions (windows & linux) git repository git location git location git location other evergreen staff clients staff client archive windows staff clients for slightly older stable releases ( . , . ). for mac and linux installing the evergreen client on macs evergreen . . mac staff client [.dmg] evergreen . . mac staff client [.dmg] evergreen . . mac staff client [.zip] evergreen . . mac staff client [.zip] pre-built mac staff client for evergreen . and .  – provided by sitka evergreen in action visit the evergreen catalog on our demonstration and development servers, or visit this list of live evergreen libraries. you can also download an evergreen staff client and point it at the evergreen demo or development server (see the community servers page for details). bug reports please report any evergreen bugs/wishlist on launchpad. to submit a vulnerability please email your report to open-ils-security@esilibrary.com. evergreen code museum older versions of evergreen software are available from the evergreen code museum. source code repository a gitweb instance sits atop the git repositories for evergreen and opensrf. you can find both repositories at git.evergreen-ils.org. here is the running change log for the evergreen code repository: watch us work. trac sends code commits to two public evergreen mailing lists: for evergreen commits, subscribe to open-ils-commits for opensrf commits, subscribe to opensrf-commits about evergreen this is the project site for evergreen, a highly-scalable software for libraries that helps library patrons find library materials, and helps libraries manage, catalog, and circulate those materials, no matter how large or complex the libraries. © - gpls and others. evergreen is open source software, freely licensed under gnu gplv or later. the evergreen project is a (c) nonprofit organization. community links evergreen bug tracker evergreen on open hub evergreen wiki git repositories join irc! irc logs official documentation · © evergreen ils · powered by · designed with the customizr theme · none commonplace.net – data. the final frontier. skip to content commonplace.net data. the final frontier. publications a common place all posts about contact infrastructure for heritage institutions – ark pid’s november , november , lukas kosterdata, infrastructure, library in the digital infrastructure program at the library of the university of amsterdam we have reached a first milestone. in my previous post in the infrastructure for heritage institutions series, “change of course“, i mentioned the coming implementation of ark persistent identifiers for our collection objects. since november , , ark pid’s are available for our university library alma catalogue through the primo user interface. implementation of ark pid’s for the other collection description systems […] read more infrastructure for heritage institutions – change of course june , lukas kosterdata, infrastructure, library in july i published the first post about our planning to realise a “coherent and future proof digital infrastructure” for the library of the university of amsterdam. in february i reported on the first results. as frequently happens, since then the conditions have changed, and naturally we had to adapt the direction we are following to achieve our goals. in other words: a change of course, of course.  projects  i will leave aside the […] read more infrastructure for heritage institutions – first results february , february , lukas kosterdata, infrastructure, library in july i published the post infrastructure for heritage institutions in which i described our planning to realise a “coherent and future proof digital infrastructure” for the library of the university of amsterdam. time to look back: how far have we come? and time to look forward: what’s in store for the near future? ongoing activities i mentioned three “currently ongoing activities”:  monitoring and advising on infrastructural aspects of new projects maintaining a structured dynamic overview […] read more infrastructure for heritage institutions july , january , lukas kosterdata, infrastructure, library during my vacation i saw this tweet by liber about topics to address, as suggested by the participants of the liber conference in dublin: it shows a word cloud (yes, a word cloud) containing a large number of terms. i list the ones i can read without zooming in (so the most suggested ones, i guess), more or less grouped thematically: open scienceopen dataopen accesslicensingcopyrightslinked open dataopen educationcitizen science scholarly communicationdigital humanities/dhdigital scholarshipresearch assessmentresearch […] read more ten years linked open data june , february , lukas kosterdata, library this post is the english translation of my original article in dutch, published in meta ( - ), the flemish journal for information professionals. ten years after the term “linked data” was introduced by tim berners-lee it appears to be time to take stock of the impact of linked data for libraries and other heritage institutions in the past and in the future. i will do this from a personal historical perspective, as a library technology professional, […] read more maps, dictionaries and guidebooks august , february , lukas kosterdata interoperability in heterogeneous library data landscapes libraries have to deal with a highly opaque landscape of heterogeneous data sources, data types, data formats, data flows, data transformations and data redundancies, which i have earlier characterized as a “data maze”. the level and magnitude of this opacity and heterogeneity varies with the amount of content types and the number of services that the library is responsible for. academic and national libraries are possibly dealing with more […] read more standard deviations in data modeling, mapping and manipulation june , february , lukas kosterdata or: anything goes. what are we thinking? an impression of elag this year’s elag conference in stockholm was one of many questions. not only the usual questions following each presentation (always elicited in the form of yet another question: “any questions?”). but also philosophical ones (why? what?). and practical ones (what time? where? how? how much?). and there were some answers too, fortunately. this is my rather personal impression of the event. for a […] read more analysing library data flows for efficient innovation november , february , lukas kosterlibrary in my work at the library of the university of amsterdam i am currently taking a step forward by actually taking a step back from a number of forefront activities in discovery, linked open data and integrated research information towards a more hidden, but also more fundamental enterprise in the area of data infrastructure and information architecture. all for a good cause, for in the end a good data infrastructure is essential for delivering high […] read more looking for data tricks in libraryland september , january , lukas kosterlibrary ifla annual world library and information congress lyon – libraries, citizens, societies: confluence for knowledge after attending the ifla library linked data satellite meeting in paris i travelled to lyon for the first three days (august - ) of the ifla annual world library and information congress. this year’s theme “libraries, citizens, societies: confluence for knowledge” was named after the confluence or convergence of the rivers rhône and saône where the city of […] read more library linked data happening august , january , lukas kosterlibrary on august the ifla satellite meeting ‘linked data in libraries: let’s make it happen!’ took place at the national library of france in paris. rurik greenall (who also wrote a very readable conference report) and i had the opportunity to present our paper ‘an unbroken chain: approaches to implementing linked open data in libraries; comparing local, open-source, collaborative and commercial systems’. in this paper we do not go into reasons for libraries to […] read more posts navigation older posts profiles and social @lukask on twitter @lukask on mastodon my orcid my impactstory my zotero my uva profile recent posts infrastructure for heritage institutions – ark pid’s infrastructure for heritage institutions – change of course infrastructure for heritage institutions – first results infrastructure for heritage institutions ten years linked open data maps, dictionaries and guidebooks most popular posts is an e-book a book? ( , views) who needs marc? ( , views) linked data for libraries ( , views) mobile app or mobile web? ( , views) user experience in public and academic libraries ( , views) mainframe to mobile ( , views) (discover and deliver) or else ( , views) recent comments maarten brinkerink on infrastructure for heritage institutions gittaca on infrastructure for heritage institutions libraries & the future of scholarly communication at #btpdf – uc portal on beyond the library tatiana bryant (@bibliotecariat) on analysing library data flows for efficient innovation @bibliotecariat on analysing library data flows for efficient innovation @lizwoolcott on analysing library data flows for efficient innovation tags apps authority files catalog collection conferences cultural heritage data data management developer platforms discovery tools elag exlibris foaf frbr hardware identifiers igelu infrastructure innovation integration interoperability libraries library library . library systems linked data linked open data marc meetings metadata mobile next generation open data open source open stack open systems people persistent identifiers rda rdf semantic web social networking technology uri web . this work is licensed under a creative commons attribution-sharealike . international license. system log in entries feed comments feed wordpress.org top posts & pages explicit and implicit metadata analysing library data flows for efficient innovation privacy & cookies: this site uses cookies. by continuing to use this website, you agree to their use. to find out more, including how to control cookies, see here: cookie policy commonplace.net a common place about all posts contact publications powered by wordpress | theme: astrid by athemes. home - dlf forum skip to content home about code of conduct coc reporting form thank you resources news affiliated events learn@dlf ndsa’s #digipres sponsors sponsorship opportunities registration cfp search for... search for... toggle navigation toggle navigation home about code of conduct coc reporting form thank you resources news affiliated events learn@dlf ndsa’s #digipres sponsors sponsorship opportunities registration cfp a world-class marketplace of ideas for digital glam practitioners since what's the dlf forum? dlf programs stretch year-round, but we are perhaps best known for our signature event, the annual dlf forum. the dlf forum welcomes digital library, archives, and museum practitioners from member institutions and beyond—for whom it serves as a meeting place, marketplace, and congress. learn about the event and plan to attend attend our affiliated events! ndsa's digital preservation november digital preservation is the annual conference of the national digital stewardship alliance. digipres is expected to be a crucial venue for intellectual exchange, community-building, development of best practices, and national-level agenda-setting in the field. learn@dlf november - now in its fourth year, learn@dlf returns in includes engaging, hands-on sessions where attendees will gain experience with new tools and resources, exchange ideas, and develop and share expertise with fellow community members as well as short tutorials about specific tools, techniques, workflows, or concepts. make an impact! sponsor the dlf forum and ndsa's #digipres dlf forum starts in days hours minutes seconds now what makes the dlf forum great? after nearly years of academic library experience and subsequently participating in no less than conferences, i can say that the dlf forum was the most progressive and enlightening conference that i have ever attended. it was downright empowering. ana ndumu dlf forum fellow the thoughtful way the experience was designed was due to the efforts of the organizers...as a first-time participant, i am grateful to have been able to participate in this year’s virtual forum and look forward to continuing to learn from the dlf community! betsy yoon dlf forum community journalist forum updates dlf forum, digipres, and learn@dlf calls for proposals april , we’re delighted to share that it’s cfp season for clir’s annual events. based on community feedback, we’ve made the decision… read more want forum news? subscribe to our newsletter to stay informed! subscribe sponsorship opportunities about dlf join dlf contact menu sponsorship opportunities about dlf join dlf contact envelope facebook twitter youtube instagram linkedin skip to content open toolbar accessibility tools increase text decrease text grayscale high contrast negative contrast light background links underline readable font reset sitemap home - dlf forum skip to content home about code of conduct coc reporting form thank you resources news affiliated events learn@dlf ndsa’s #digipres sponsors sponsorship opportunities registration cfp search for... search for... toggle navigation toggle navigation home about code of conduct coc reporting form thank you resources news affiliated events learn@dlf ndsa’s #digipres sponsors sponsorship opportunities registration cfp a world-class marketplace of ideas for digital glam practitioners since what's the dlf forum? dlf programs stretch year-round, but we are perhaps best known for our signature event, the annual dlf forum. the dlf forum welcomes digital library, archives, and museum practitioners from member institutions and beyond—for whom it serves as a meeting place, marketplace, and congress. learn about the event and plan to attend attend our affiliated events! ndsa's digital preservation november digital preservation is the annual conference of the national digital stewardship alliance. digipres is expected to be a crucial venue for intellectual exchange, community-building, development of best practices, and national-level agenda-setting in the field. learn@dlf november - now in its fourth year, learn@dlf returns in includes engaging, hands-on sessions where attendees will gain experience with new tools and resources, exchange ideas, and develop and share expertise with fellow community members as well as short tutorials about specific tools, techniques, workflows, or concepts. make an impact! sponsor the dlf forum and ndsa's #digipres dlf forum starts in days hours minutes seconds now what makes the dlf forum great? after nearly years of academic library experience and subsequently participating in no less than conferences, i can say that the dlf forum was the most progressive and enlightening conference that i have ever attended. it was downright empowering. ana ndumu dlf forum fellow the thoughtful way the experience was designed was due to the efforts of the organizers...as a first-time participant, i am grateful to have been able to participate in this year’s virtual forum and look forward to continuing to learn from the dlf community! betsy yoon dlf forum community journalist forum updates dlf forum, digipres, and learn@dlf calls for proposals april , we’re delighted to share that it’s cfp season for clir’s annual events. based on community feedback, we’ve made the decision… read more want forum news? subscribe to our newsletter to stay informed! subscribe sponsorship opportunities about dlf join dlf contact menu sponsorship opportunities about dlf join dlf contact envelope facebook twitter youtube instagram linkedin skip to content open toolbar accessibility tools increase text decrease text grayscale high contrast negative contrast light background links underline readable font reset sitemap none marcedit_xslt_files/homosaurus_xml.xsl at master · reeset/marcedit_xslt_files · github skip to content sign up sign up why github? features → mobile → actions → codespaces → packages → security → code review → project management → integrations → github sponsors → customer stories→ team enterprise explore explore github → learn and contribute topics → collections → trending → learning lab → open source guides → connect with others the readme project → events → community forum → github education → github stars program → marketplace pricing plans → compare plans → contact sales → education → in this repository all github ↵ jump to ↵ no suggested jump to results in this repository all github ↵ jump to ↵ in this user all github ↵ jump to ↵ in this repository all github ↵ jump to ↵ sign in sign up sign up {{ message }} reeset / marcedit_xslt_files notifications star fork code issues pull requests actions projects security insights more code issues pull requests actions projects security insights permalink master switch branches/tags branches tags nothing to show {{ refname }} default view all branches nothing to show {{ refname }} default view all tags marcedit_xslt_files/homosaurus_xml.xsl go to file go to file t go to line l copy path copy permalink     cannot retrieve contributors at this time lines ( sloc) . kb raw blame open with desktop view raw view blame nz a n " |||anznnbab||||||||||||||a|||||||d homosaurus copy lines copy permalink view git blame reference in new issue go © github, inc. terms privacy security status docs contact github pricing api training blog about you can’t perform that action at this time. you signed in with another tab or window. reload to refresh your session. you signed out in another tab or window. reload to refresh your session. none ipfs powers the distributed web ipfs about install docs team blog help ipfs powers the distributed web a peer-to-peer hypermedia protocol designed to make the web faster, safer, and more open. get started how it works view more disable animation the web of tomorrow needs ipfs today ipfs aims to surpass http in order to build a better web for all of us. today's web is inefficient and expensive http downloads files from one computer at a time instead of getting pieces from multiple computers simultaneously. peer-to-peer ipfs saves big on bandwidth — up to % for video — making it possible to efficiently distribute high volumes of data without duplication. today's web can't preserve humanity's history the average lifespan of a web page is days before it's gone forever. it's not good enough for the primary medium of our era to be this fragile. ipfs keeps every version of your files and makes it simple to set up resilient networks for mirroring data. today's web is centralized, limiting opportunity the internet has turbocharged innovation by being one of the great equalizers in human history — but increasing consolidation of control threatens that progress. ipfs stays true to the original vision of an open, flat web by delivering technology to make that vision a reality. today's web is addicted to the backbone ipfs powers the creation of diversely resilient networks that enable persistent availability — with or without internet backbone connectivity. this means better connectivity for the developing world, during natural disasters, or just when you're on flaky coffee shop wi-fi. install ipfs join the future of the web right now — just choose the option that's right for you. store and share files ipfs desktop ipfs for everyone the desktop app offers menubar/tray shortcuts and an easy interface for adding, pinning, and sharing files — plus a full ipfs node ready for heavy-duty hosting and development too. a great choice for devs and non-devs alike. get ipfs desktop command-line install all ipfs, no frills just want ipfs in your terminal? get step-by-step instructions for getting up and running on the command line using the go implementation of ipfs. includes directions for windows, macos, and linux. get the cli ipfs companion add ipfs to your browser get ipfs:// url support and much more in your web browser with this extension. get companion ipfs cluster for servers or big data automatically allocate, replicate, and track your data as pinsets across multiple ipfs nodes. get cluster build with ipfs go implementation the original ipfs, with core implementation, daemon server, cli tooling, and more. get go-ipfs js implementation written entirely in javascript for a world of possibilities in browser implementations. get js-ipfs here's how ipfs works take a look at what happens when you add a file to ipfs. your file, and all of the blocks within it, is given a unique fingerprint called a cryptographic hash. ipfs removes duplications across the network. each network node stores only content it is interested in, plus some indexing information that helps figure out which node is storing what. when you look up a file to view or download, you're asking the network to find the nodes that are storing the content behind that file's hash. you don't need to remember the hash, though — every file can be found by human-readable names using a decentralized naming system called ipns. take a closer look want to dig in? check out the docs hands-on learner? explore protoschool curious where it all began? read the whitepaper ipfs can help here and now no matter what you do with the web, ipfs helps make it better today. archivists ipfs provides deduplication, high performance, and clustered persistence — empowering you to store the world's information for future generations. service providers providing large amounts of data to users? ipfs offers secure, peer-to-peer content delivery — an approach that could save you millions in bandwidth costs. researchers if you're working with or distributing large data sets, ipfs can help provide fast performance and decentralized archiving. developing world high-latency networks are a big barrier for those with poor internet infrastructure. ipfs provides resilient access to data independent of latency or backbone connectivity. blockchains with ipfs, you can address large amounts of data and put immutable, permanent links in transactions — timestamping and securing content without having to put the data itself on-chain. content creators ipfs brings the freedom and independent spirit of the web in full force — and can help you deliver your content at a much lower cost. who's already using ipfs? companies and organizations worldwide are already building amazing things on ipfs. see the list news and more ipfs blog april welcome to ipfs weekly april meet the new ipfs blog & news april storing nfts on ipfs march welcome to ipfs weekly in the media techcrunch why the internet needs ipfs before it’s too late motherboard ipfs wants to create a permanent web makeuseof faster, safer, decentralized internet with ipfs videos why ipfs? developers speak: building on ipfs more videos stay on top of the latest sign up for the ipfs weekly newsletter to get project updates, community news, event details, and more. in your inbox, each tuesday. subscribe protocol labs about join ipfs install github code of conduct docs community help awesome ipfs ipfs cluster team press blog legal protoschool tutorials events filecoin about faq other projects libp p ipld drand multiformats testground twitter facebook youtube © protocol labs | except as noted, content licensed cc-by . . isni | : home page toggle navigation about what is isni? governance our history objectives & policies isni community the isni community isni registration agencies isni members direct data contributors joining isni resources how isni works data quality procedures data inputs & outputs technical documentation training linked data news news & archive isni newsletter help faqs get an isni contact isni search site mailing list get an isni search database search website: about isni isni is the iso certified global standard number for identifying the millions of contributors to creative works and those active in their distribution, including researchers, inventors, writers, artists, visual creators, performers, producers, publishers, aggregators, and more. as iso , it is part of a family of international standard identifiers that includes identifiers of works, recordings, products and right holders in all repertoires, e.g. doi, isan, isbn, isrc, issn, and iswc. the mission of the isni international agency (isni-ia) is to assign to the public name(s) of a researcher, inventor, writer, artist, performer, publisher, etc. a persistent unique identifying number in order to resolve the problem of name ambiguity in search and discovery; and diffuse each assigned isni across all repertoires in the global supply chain so that every published work can be unambiguously attributed to its creator wherever that work is described. by achieving these goals, the isni will act as a bridge identifier across multiple domains and become a critical component in linked data and semantic web applications. key statistics .  million  isni holds public records of more than   million identities .  million  isni holds public records of over .  million individuals (of which .  million are researchers)  .  million isni holds public records of  , ,  organizations  sources the isni database is a cross-domain resource with direct contributions from  sources news the british library launches its isni portal: a brand new, online service for isni users   we are delighted and privileged to announce that the british library has now launched its online, all-in-one service for the international standard name... read more bds builds a new website for isni bdsdigital, the web services and it arm of bds, has built a new isni website, which went live in june . bds also transferred existing content from the... read more music industry isni registrations now free and automated sound credit music credit cloud profile system offers world's only free and automated isni registration service memphis, tenn., october , – every creative work... read more get an isni search database isni international agency (isni-ia) limited registered address: c/o editeur, united house, north road, london, n dp, uk company registration number: follow us privacy terms of use faqs shane lin | scholars' lab home about blog makerspace our work events for students spatial tech accessibility year of blogging charter library people search site map more› home about blog makerspace our work events for students spatial tech accessibility year of blogging charter library people search site map covid- update: the scholars’ lab staff is available, working remotely to support your teaching and research needs. all of our workshops, events, and consultations will be online this semester. contact us at scholarslab@virginia.edu to ask a question or schedule a virtual gis, vr, digital project, or makerspace consultation. for information about other departments, see the library’s status dashboard and faq. people // shane lin senior developer contact contact email:ssl ab@virginia.edu twitter:@shane-et-al about shane writes codes for scholars’ lab, teaches code lab, and co-directs the slab coffee studies program. on the academic side, he works on the history of computing and the impact of digital technology on culture and politics. shane was previously a praxis fellow ( ), makerspace technologist ( - ), digital humanities fellow ( ), and the sole recipient of the scholars’ lab’s prestigious shane lin memorial fellowship ( ). all posts by shane recovering from failure (with g-code) . . the long and messy history of privacy . . bigger nozzles, faster printing . . ninjaflex on the makerbot . . adventures in d printer maintenance . . one day of praxis . . gender and computing (ctd) . . rails is kind of hard to get up and running . . literals . . holy crap . . learning ruby (again) . . crowdsourcing for profit and pleasure . . a practical prism pedagogy proposal . . #!/bin/sh . . back to top how to blog explore home about events connect facebook twitter github email us rss feed contact email:scholarslab@virginia.edu address:p.o. box charlottesville, va - phone: - - twarc-videos · pypi skip to main content switch to mobile version warning some features may not work without javascript. please try enabling it if you encounter problems. search pypi search help sponsors log in register menu help sponsors log in register search pypi search twarc-videos . . pip install twarc-videos copy pip instructions latest version released: mar , a twarc plugin to extract referenced video from tweet data navigation project description release history download files project links homepage statistics github statistics: stars: forks: open issues/prs: view statistics for this project via libraries.io, or by using our public dataset on google bigquery meta author: ed summers requires: python >= . maintainers esummers project description project details release history download files project description twarc-videos this twarc plugin uses youtube_dl to download videos and their metadata from tweets. this is nice because youtube_dl downloads video from many more platforms than youtube including twitter itself. to use twarc-videos first you need to install it: pip install twarc-videos now you can collect data using the core twarc utility. for example this search finds tweets that mention the word "nirvana" and also have native video (twitter video) or a link to youtube: twarc search 'nirvana (has:videos or url:"https://youtu.be")' > nirvana-tweets.jsonl and you have a new subcommand videos that is supplied by twarc-videos. twarc videos nirvana-tweets.jsonl once it is finished you will have a new videos directory that looks something like: videos ├── archive.txt ├── mapping.tsv ├── twitter │   ├── │   │   ├── psychedelia_-_nirvana_-_come_as_you_are.description │   │   ├── psychedelia_-_nirvana_-_come_as_you_are.info.json │   │   └── psychedelia_-_nirvana_-_come_as_you_are.mp │   ├── │   │   ├── rt_your_fav_bands_-_nirvana_come_as_you_are.description │   │   ├── rt_your_fav_bands_-_nirvana_come_as_you_are.info.json │   │   └── rt_your_fav_bands_-_nirvana_come_as_you_are.mp │   ├── │   │   ├── hanna_-_she_s_in_nirvana....description │   │   ├── hanna_-_she_s_in_nirvana....info.json │   │   └── hanna_-_she_s_in_nirvana....mp │   ├── │   │   ├── music_nostalgia_-_nirvana_the_man_who_sold_the_world_..description │   │   ├── music_nostalgia_-_nirvana_the_man_who_sold_the_world_..info.json │   │   └── music_nostalgia_-_nirvana_the_man_who_sold_the_world_..mp │   ├── │   │   ├── take_it_easy_-_abuelo_donde_andas_nirvana.description │   │   ├── take_it_easy_-_abuelo_donde_andas_nirvana.info.json │   │   └── take_it_easy_-_abuelo_donde_andas_nirvana.mp │   ├── │   │   ├── oraetlabora_-_reel_stories_-_dave_grohl_is_on_@bbctwo_this_saturday_at_ . pm...talking_@nirvana_amp_@foofighters_with_dermot_@radioleary_@wearecraftuk.description │   │   ├── oraetlabora_-_reel_stories_-_dave_grohl_is_on_@bbctwo_this_saturday_at_ . pm...talking_@nirvana_amp_@foofighters_with_dermot_@radioleary_@wearecraftuk.info.json │   │   └── oraetlabora_-_reel_stories_-_dave_grohl_is_on_@bbctwo_this_saturday_at_ . pm...talking_@nirvana_amp_@foofighters_with_dermot_@radioleary_@wearecraftuk.mp │   ├── │   ├── │   ├── │   ├── │   └── │   ├── john_-_nirvana_-_in_bloom_live_at_reading_ _@youtube.description │   ├── john_-_nirvana_-_in_bloom_live_at_reading_ _@youtube.info.json │   └── john_-_nirvana_-_in_bloom_live_at_reading_ _@youtube.mp └── youtube ├── x cgfqyjn │   ├── heart-shaped_box_nirvana_music_box.description │   ├── heart-shaped_box_nirvana_music_box.en.vtt │   ├── heart-shaped_box_nirvana_music_box.info.json │   └── heart-shaped_box_nirvana_music_box.mp ├── ahcttcxcryy │   ├── nirvana_-_about_a_girl_mtv_unplugged.description │   ├── nirvana_-_about_a_girl_mtv_unplugged.en.vtt │   ├── nirvana_-_about_a_girl_mtv_unplugged.info.json │   └── nirvana_-_about_a_girl_mtv_unplugged.mp ├── axu-laao_xq │   ├── nirvana_drain_you_lyrics_sub_espanol.description │   ├── nirvana_drain_you_lyrics_sub_espanol.info.json │   └── nirvana_drain_you_lyrics_sub_espanol.mp ├── d dnm f q │   ├── nirvana_-_in_bloom_live_at_reading_ .description │   ├── nirvana_-_in_bloom_live_at_reading_ .info.json │   └── nirvana_-_in_bloom_live_at_reading_ .mp ├── -fh-bqsv e │   ├── becoming_a_minimalist_w_matt_d_avella.description │   ├── becoming_a_minimalist_w_matt_d_avella.en.vtt │   ├── becoming_a_minimalist_w_matt_d_avella.info.json │   └── becoming_a_minimalist_w_matt_d_avella.mp ├── htwkbfoikeg │   ├── nirvana_-_smells_like_teen_spirit_official_music_video.description │   ├── nirvana_-_smells_like_teen_spirit_official_music_video.en.vtt │   ├── nirvana_-_smells_like_teen_spirit_official_music_video.info.json │   └── nirvana_-_smells_like_teen_spirit_official_music_video.mp ├── jwkst g f │   ├── nirvana_healing_centre_overview.description │   ├── nirvana_healing_centre_overview.info.json │   └── nirvana_healing_centre_overview.mp ├── mw e_tngcsy │   ├── everclear_-_santa_monica_official_music_video.description │   ├── everclear_-_santa_monica_official_music_video.info.json │   └── everclear_-_santa_monica_official_music_video.mp ├── n p sitrwy │   ├── nirvana_-_heart-shaped_box.description │   ├── nirvana_-_heart-shaped_box.info.json │   └── nirvana_-_heart-shaped_box.mp ├── oger oqzgts │   ├── nirvana_-_the_man_who_sold_the_world_live_on_mtv_unplugged_ _unedited.description │   ├── nirvana_-_the_man_who_sold_the_world_live_on_mtv_unplugged_ _unedited.en.vtt │   ├── nirvana_-_the_man_who_sold_the_world_live_on_mtv_unplugged_ _unedited.info.json │   └── nirvana_-_the_man_who_sold_the_world_live_on_mtv_unplugged_ _unedited.mp ├── v ry eimcw │   ├── nirvana_-_smells_like_teen_spirit_cover_radio_tapok.description │   ├── nirvana_-_smells_like_teen_spirit_cover_radio_tapok.en.vtt │   ├── nirvana_-_smells_like_teen_spirit_cover_radio_tapok.info.json │   └── nirvana_-_smells_like_teen_spirit_cover_radio_tapok.mp ├── ychvl w _pa │   ├── nirvana_-_where_did_you_sleep_last_night_ d_audio.description │   ├── nirvana_-_where_did_you_sleep_last_night_ d_audio.info.json │   └── nirvana_-_where_did_you_sleep_last_night_ d_audio.mp └── y-lqgqhd xs ├── dodo_tofubeats_-_nirvana_official_music_video.description ├── dodo_tofubeats_-_nirvana_official_music_video.info.json └── dodo_tofubeats_-_nirvana_official_music_video.mp the video/mapping.tsv file is a tab separated value file of video urls found and their corresponding location in disk. testing to run the tests you will need create a .env file that looks like: bearer_token=your_token_here and then: python setup.py test project details project links homepage statistics github statistics: stars: forks: open issues/prs: view statistics for this project via libraries.io, or by using our public dataset on google bigquery meta author: ed summers requires: python >= . maintainers esummers release history release notifications | rss feed this version . . mar , . . mar , . . mar , . . mar , download files download the file for your platform. if you're not sure which to choose, learn more about installing packages. files for twarc-videos, version . . filename, size file type python version upload date hashes filename, size twarc-videos- . . .tar.gz ( . kb) file type source python version none upload date mar , hashes view close hashes for twarc-videos- . . .tar.gz hashes for twarc-videos- . . .tar.gz algorithm hash digest sha acc caea b dabda a af b fd c cf d f b ed caeb copy md ccb fb f d ae f e bb copy blake - edf ad ac b c dabb ced d d e ec de copy close help installing packages uploading packages user guide faqs about pypi pypi on twitter infrastructure dashboard package index name retention our sponsors contributing to pypi bugs and feedback contribute on github translate pypi development credits using pypi code of conduct report security issue privacy policy terms of use status: all systems operational developed and maintained by the python community, for the python community. donate today! © python software foundation site map switch to desktop version english español français 日本語 português (brasil) українська Ελληνικά deutsch 中文 (简体) русский עברית esperanto supported by aws cloud computing datadog monitoring digicert ev certificate facebook / instagram psf sponsor fastly cdn google object storage and download analytics pingdom monitoring salesforce psf sponsor sentry error logging statuspage status page samvera samvera registration now open for samvera virtual connect, april – registration is now open for samvera virtual connect ! samvera virtual connect will take place april th - st from am &# ; pm edt. registration is free and open to anyone with an interest in samvera. this year&# ;s program is packed with presentations and lightning talks of interest to developers, managers, librarians, and other current or... read more &# ; the post registration now open for samvera virtual connect, april &# ; appeared first on samvera. hyku . release includes new customization features hyku . is now available, with new features and improvements. these features add customization options at the institution level, and the improvements provide for easier maintenance of hyku implementations across all adopters. theming improvements now even more theming capability is in the hands of non-technical administrators, offering the ability to create a unique branded repository... read more &# ; the post hyku . release includes new customization features appeared first on samvera. season’s greetings from the samvera community as draws to a close, we want to share our gratitude for each and every person who has helped the samvera community thrive in this difficult year of profound loss and challenge. we could not be the vibrant, welcoming, and valuable open source solution community we are without each and every person who contributed... read more &# ; the post season&# ;s greetings from the samvera community appeared first on samvera. save the date for samvera virtual connect mark your calendar for samvera virtual connect !tuesday, april &# ; wednesday, april ,   : am &# ; : pm edt / : am – : am pdt / : - : bst / : - : utc watch for more information coming in early including a call for program committee participation and a call for proposals. the post save the date for samvera virtual connect appeared first on samvera. developer resources: bug hunting in hyrax; adding blacklight advanced search to hyku bess sadler from notch has created two excellent guides that may be helpful to developers working in hyrax or hyku applications: bug hunting in hyrax: a well-documented process for finding a bug in a hyrax application adding blacklight_advanced_search to hyku: a how-to guide for adding blacklight advanced search to a hyku application have you or... read more &# ; the post developer resources: bug hunting in hyrax; adding blacklight advanced search to hyku appeared first on samvera. fedora alpha release available for download and testing fedora . alpha- is now available for download and testing. the primary goals for fedora are robust migration support, enhanced digital preservations features, and improved performance and scale. the fedora team will ask the samvera community for testing assistance when the full version is available in early . in the meantime, you can learn... read more &# ; the post fedora alpha release available for download and testing appeared first on samvera. samvera tech : a beginner-friendly overview of samvera samvera connect on-line included an excellent, beginner-friendly overview of “samvera tech ” presented by alisha evans and shana moore, software engineers at notch . evans has turned this presentation into a blog post walking through the technologies used in the samvera community. check out the post on the notch blog: samvera tech the post... read more &# ; the post samvera tech : a beginner-friendly overview of samvera appeared first on samvera. samvera connect presentations if you are not one of the + people who registered to enjoy samvera connect on-line, or if you are but missed a session you wanted to see, links to the recordings and session slide packs are being added to the samvera wiki here. our grateful thanks to all the organizers and speakers who... read more &# ; the post samvera connect presentations appeared first on samvera. things are already happening for samvera connect! samvera connect ‘proper’ is a little over a week away but the poster exhibition is now available here!  there is a slack channel #connect-posters for asynchronous comment or discussion and each presenter has a minute video conferencing slot monday th – wednesday st october for live discussion.  see sched for details.  need a slack... read more &# ; the post things are already happening for samvera connect! appeared first on samvera. samvera connect on-line is nearly here! samvera&# ;s annual connect conference has gone virtual this year, like so many others.  nevertheless, we&# ;ve put together an exciting program of workshops, presentations, posters and community social events that we hope will make up for not being able to meet in person.  the main events are on friday / and monday &# ; thursday / &# ;... read more &# ; the post samvera connect on-line is nearly here! appeared first on samvera. librarian of things librarian of things weeknote ( ) § zotero pdf reader a new look and functionality for zotero&# ;s pdf reader is still in beta. i can&# ;t wait for this version to be unleashed! § mit d o earlier this week, mit press announced a new open access monograph program. it appears that the transition of scholarly ebooks to another form of subscription product &# ; continue reading "weeknote ( )" weeknote (late) last week i had a week that was more taxing than normal and i had nothing in the tank by friday. so i&# ;m putting together last week&# ;s weeknotes today. also, going forward each section heading has been anchor tagged for your link sharing needs. e.g. § § § § § and § . i say this &# ; continue reading "weeknote (late) " weeknote ( ) today the library is closed as is my place of work&# ;s tradition on the last day of reading week. but as i have three events (helping in a workshop, giving a presentation, participating in a focus group) in my calendar, i&# ;m just going to work the day and bank the time for later. § barbara &# ; continue reading "weeknote ( )" weeknote ( ) another week in which i was doing a lot of behind the scenes work. § duly noted: here&# ;s the article in full. § years ago, i gave a keynote called libraries are for use. and by use, i mean copying that featured the short and sad story of a person who was unable to donate &# ; continue reading "weeknote ( )" weeknote ( ) § last friday i was interviewed for the podcast the grasscast — a game-themed podcast named after the book, the grasshopper: games, life, and utopia. i ramble a little bit in the episode as i tried to be more open and conversational than concise and correct. but i also spoke that way because for some &# ; continue reading "weeknote ( )" weeknote ( ) i don&# ;t have much that i can report in this week&# ;s note. you are just going to have to take my word that this week, a large amount of my time was spent at meetings pertaining to my library department, my union, and anti-black racism work. § last year, around this same time, some colleagues &# ; continue reading "weeknote ( )" weeknote ( ) hey. i missed last week&# ;s weeknote. but we are here now. § this week i gave a class on searching scientific literature to a group of biology masters students. while i was making my slides comparing the advanced search capabilities of web of science and scopus, i discovered this weird behaviour of google scholar: a &# ; continue reading "weeknote ( )" weeknote ( ) this week&# ;s post is not going to capture my ability to be productive while white supremacists appeared to be ushered in and out of the us capitol building by complicit police and covid- continued to ravage my community because our provincial government doesn&# ;t want to spend money on the most vulnerable. instead, i&# ;m just going &# ; continue reading "weeknote ( )" weeknote ( ) § it looks like andromeda yelton is sharing weeknotes (&# ;this week in ai&# ;). i can&# ;t wait to see what she shares with us all in . § earlier this fall, clarivate analytics&# ;announced that it was moving toward a future that calculated the journal impact factor (jif) based on the date of electronic publication and not &# ; continue reading "weeknote ( )" weeknote ( ) § i don&# ;t have much to report in regards to the work i&# ;ve been doing this week. i tried to get our orcid-ojs plugin to work but there is some small strange bug that needs to be squished. luckily, next week i will have the benefit of assistance from the good people of crkn and &# ; continue reading "weeknote ( )" inkdroid inkdroid paper or plastic coincidence? twarc this post was originally published on medium but i spent time writing it so i wanted to have it here too. tl;dr twarc has been redesigned from the ground up to work with the new twitter v api and their academic research track. many thanks for the code and design contributions of betsy alpert, igor brigadir, sam hames, jeff sauer, and daniel verdeer that have made twarc possible, as well as early feedback from dan kerchner, shane lin, miles mccain, 李荣蓬, david thiel, melanie walsh and laura wrubel. extra special thanks to the institute for future environments at queensland university of technology for supporting betsy and sam in their work, and for the continued support of the mellon foundation. back in august of last year twitter announced early access to their new v api, and their plans to sunset the v . api that has been active for almost the last years. over the lifetime of their v . api twitter has become deeply embedded in the media landscape. as magazines, newspapers and television have moved onto the web they have increasingly adopted tweets as a mechanism for citing politicians, celebrities and organizations, while also using them to document current events, generate leads and gather feedback for evolving stories. as a result twitter has also become a popular object of study for humanities and social science researchers looking to understand the world as reflected, refracted and distorted by/in social media. on the surface the v api update seems pretty insignificant since the shape of a tweet, its parts, properties and affordances, aren’t changing at all. tweets with characters of text, images and video will continue to be posted, retweeted and quoted. however behind the scenes the representation of a tweet as data, and the quotas that control the rates at which this data can flow between apps and other third party services will be greatly transformed. needless to say, v represents a big change for the documenting the now project. along with community members we’ve developed and maintained open source tools like twarc that talk directly to the twitter api to help users to search for and collect live tweets that match criteria like hashtags, names and geographic locations. today we’re excited to announce the release of twarc v which has been designed from the ground up to work with the v api and twitter’s new academic research track. clearly it’s extremely problematic having a multi-national corporation act as a gatekeeper for who counts as an academic researcher, and what constitutes academic research. we need look no further than the recent experiences of timnit gebru and margaret mitchell at google for an example of what happens when research questions run up against the business objectives of capital. we only know their stories because gebru and mitchell’s bravely took a principled approach, where many researchers would have knowingly or unknowingly shaped their research to better fit the needs of the company. so it is important for us that twarc still be usable by people with and without access to the academic research track. but we have heard from many users that the academic research track presents new opportunities for twitter data collection that are essential for researchers interested in the observability of social media platforms. twitter is making a good faith effort to work with the academic research community, and we thought twarc should support it, even if big challenges lie ahead. so why are people interested in the academic research track? once your application has been approved you are able to collect data from the full history of tweets, at no cost. this is a massive improvement over the v . access which was limited to a one week window and researchers had to pay for access. access to the full archive means it’s now possible to study events that have happened in the past back to the beginning of twitter in . if you do create any historical datasets we’d love for you to share the tweet identifier datasets in the catalog. however this opening up of access on the one hand comes with a simultaneous contraction in terms of how much data can be collected at one time. the remainder of this post describes some of the details and the design decisions we have made with twarc to address them. if you would prefer to watch a quick introduction to using twarc v please check out this short video: installation if you are familiar with installing twarc nothing is changed. you still install (or upgrade) with pip as you did before: $ pip install --upgrade twarc in fact you will still have full access to the v . api just as you did before. so the old commands will continue to work as they did $ twarc search blacklivesmatter > tweets.jsonl twarc was designed to let you to continue to use twitter’s v . api undisturbed until it is finally turned off by twitter, at which point the functionality will be removed from twarc. all the support for the v api is mediated by a new command line utility twarc . for example to search for blacklivesmatter tweets and write them to a file tweets.jsonl: $ twarc search blacklivesmatter > tweets.jsonl all the usual twarc functionality such as searching for tweets, collecting live tweets from the streaming api endpoint, requesting user timelines and user metadata are all still there, twarc --help gives you the details. but while the interface looks the same there’s quite a bit different going on behind the scenes. representation truth be told, there is no shortage of open source libraries and tools for interacting with the twitter api. in the past twarc has made a bit of a name for itself by catering to a niche group of users who want a reliable, programmable way to collect the canonical json representation of a tweet. javascript object notation (json) is the language of web apis, and twitter has kept its json representation of a tweet relatively stable over the years. rather than making lots of decisions about the many ways you might want to collect, model and analyze tweets twarc has tried to do one thing and do it well (data collection) and get out of the way so that you can use (or create) the tools for putting this data to use. but the json representation of a tweet in the twitter v api is completely burst apart. the v base representation of a tweet is extremely lean and minimal, and just includes the text of the tweet its identifier and a handful of other things. all the details about the user who created the tweet, embedded media, and more are not included. fortunately this information is still available, but the user needs to craft their api request to request tweets using a set of expansions that tell the twitter api what additional entities to include. in addition for each expansion there are a set of field options to include that control what of these expansions is returned. so rather than there being a single json representation of a tweet api users now have the ability to shape the data based on what they need, much like how graphql apis work. this kind of makes you wonder why twitter didn’t make their graphql api available. for specific use cases this customizability is very useful, but the mutability of the representation of a tweet presents challenges when collecting data for future use. if you didn’t request the right expansions or fields when collecting the data then you won’t be able to analyze that data later when doing your research. to solve for this twarc has been designed to collect the richest possible representation for a tweet, by requesting all possible expansions and field combinations for tweets. see the expansions module for the details if you are interested. this takes a significant burden off of users to digest the api documentation, and craft the correct api requests themselves. in addition the twarc community will be monitoring the twitter api documentation going forward to incorporate new expansions and fields as they will inevitably be added in the future. flattening this is diving into the weeds a little bit, but it’s worth noting here that twitter’s introduction of expansions allows data that was once duplicated across multiple tweets (such as user information, media, retweets, etc) to be included once per response from the api. this means that instead of seeing information about the user who created a tweet in the context of their tweet the user will be referenced using an identifier, and this identifier will map to user metadata in the outer envelope of the response. it makes sense why twitter have introduced expansions since it means in a set of tweets from a given user the user information will just be included once rather than repeated times, which means less data, less network traffic and less money. it’s even more significant when consider the large number of possible expansions. however this pass by-reference rather than by-value presents some challenges for stream based processing which expects each tweet to be self-contained. for this reason we’ve introduce the idea of flattening the response data when persisting the json to disk. this means that tools and data pipelines that expect to operate on a stream of tweets can continue to do so. since the representation of a tweet is so dependent on how data is requested we’ve taken the opportunity to introduce a small stanza of twarc specific metadata using the __twarc prefix. this metadata records what api endpoint the data was requested from, and when. this information is critically important when interpreting the data, because some information about a tweet like its retweet and quote counts are constantly changing. data flows as mentioned above you can still collect tweets from the search and streaming api endpoints in a way that seems quite similar to the v api. the big changes however are the quotas associated with these endpoints which govern how much can be collected. these quotas control how many requests can be sent to twitter in minute intervals. in fact these quotas are not much changed, but what’s new are app wide quotas that constrain how many tweets a given application (app) can collect every month. an app in this context is a piece of software (e.g. your twarc software) identified by unique api keys set up in the twitter developer portal. the standard api access sets a , tweet per month limit. this is a huge change considering there were no monthly app limits before. if you get approved for the academic research track your app quota is increased to million per month. this is markedly better but the achievable data volume is still nothing like the v . api, as these graphs attempt to illustrate: twarc will still observe the same rate limits, but once you’ve collected your portion for the month there’s not much that can be done, for that app at least. apart from the quotas twitter’s streaming endpoint in v is substantially changed which impacts how users interact with twarc. previously twarc users would be able to create up to to two connections to the filter stream api. this could be done by simply: twarc filter obama > obama.jsonl however in the twitter v api only apps can connect to the filter stream, and they can only connect once. at first this seems like a major limitation but rather than creating a connection per query the v api allows you to build a set of rules for tweets to match, which in turns controls what tweets are included in the stream. this means you can collect for multiple types of queries at the same time, and the tweets will come back with a piece of metadata indicating what rule caused its inclusion. this translates into a markedly different set of interactions at the command line for collecting from the stream where you first need to set your stream rules and then open a connection to fetch it. twarc stream-rules add blacklivesmatter twarc stream > tweets.jsonl one useful side effect of this is that you can update the stream (add and remove rules) while the stream is in motion: twarc stream-rules add blm while you are limited by the api quota in terms of how many tweets you can collect, tweets are not “dropped on the floor” when the volume gets too high. once upon a time the v . filter stream was rumored to be rate limited when your stream exceeds % of the total volume of new tweets. plugins in addition to twarc helping you collect tweets the github repository has also been a place to collect a set of utilities for working with the data. for example there are scripts for extracting and unshortening urls, identifying suspended/deleted content, extracting videos, buiding wordclouds, putting tweets on maps, displaying network graph visualizations, counting hashtags, and more. these utilities all work like unix filters where the input is a stream of tweets and the output varies depending on what the utility is doing, e.g. a gephi file for a network visualization, or a folder of mp files for video extraction. while this has worked well in general the kitchen sink approach has been difficult to manage from a configuration management perspective. users have to download these scripts manually from github or by cloning the repository. for some users this is fine, but it’s a bit of a barrier to entry for users who have just installed twarc with pip. furthermore these plugins often have their own dependencies which twarc itself does not. this lets twarc can stay pretty lean, and things like youtube_dl, networkx or pandas can be installed by people that want to use utilities that need them. but since there is no way to install the utilities there isn’t a way to ensure that the dependencies are installed, which can lead to users needing to diagnose missing libraries themselves. finally the plugins have typically lacked their own tests. twarc’s test suite has really helped us track changes to the twitter api and to make sure that it continues to operate properly as new functionality has been added. but nothing like this has existed for the utilities. we’ve noticed that over time some of them need updating. also their command line arguments have drifted over time which can lead to some inconsistencies in how they are used. so with twarc we’ve introduced the idea of plugins which extend the functionality of the twarc command, are distributed on pypi separately from twarc, and exist in their own github repositories where they can be developed and tested independently of twarc itself. this is all achieved through twarc ’s use of the click library and specifically click-plugins. so now if you would like to convert your collected tweets to csv you can install the twarc-csv: $ pip install twarc-csv $ twarc search covid > covid .jsonl $ twarc csv covid .jsonl > covid .csv or if you want to extract embedded and referenced videos from tweets you can install twarc-videos which will write all the videos to a directory: $ pip install twarc-videos $ twarc videos covid .jsonl --download-dir covid -videos you can write these plugins yourself and release them as needed. check out the plugin reference implementation tweet-ids for a simple example to adapt. we’re still in the process of porting some of the most useful utilities over and would love to see ideas for new plugins. check out the current list of twarc plugins and use the twarc issue tracker on github to join the discussion. you may notice from the list of plugins that twarc now (finally) has documentation on readthedocs external from the documentation that was previously only available on github. we got by with github’s rendering of markdown documents for a while, but github’s boilerplate designed for developers can prove to be quite confusing for users who aren’t used to selectively ignoring it. readthedocs allows us to manage the command line and api documentation for twarc, and to showcase the work that has gone into the spanish, japanese, portuguese, swedish, swahili and chinese translations. feedback thanks for reading this far! we hope you will give twarc a try. let us know what you think either in comments here, in the docnow slack or over on github. ✨ ✨ happy twarcing! ✨ ✨ ✨ windows users will want to indicate the output file using a second argument rather than redirecting output with >. see this page for details.↩ $ j you may have noticed that i try to use this static website as a journal. but, you know, not everything i want to write down is really ready (or appropriate) to put here. some of these things end up in actual physical notebooks–there’s no beating the tactile experience of writing on paper for some kind of thinking. but i also spend a lot of time on my laptop, and at the command line in some form or another. so i have a directory of time stamped markdown files stored on dropbox, for example: ... /home/ed/dropbox/journal/ - - .md /home/ed/dropbox/journal/ - - .md /home/ed/dropbox/journal/ - - .md /home/ed/dropbox/journal/ - - .md /home/ed/dropbox/journal/ - - .md ... sometimes these notes migrate into a blog post or some other writing i’m doing. i used this technique quite a bit when writing my dissertation when i wanted to jot down things on my phone when an idea arrived. i’ve tried a few different apps for editing markdown on my phone, but mostly settled on ia writer which mostly just gets out of the way. but when editing on my laptop i tend to use my favorite text editor vim with the vim-pencil plugin for making markdown fun and easy. if vim isn’t your thing and you use another text editor keep reading since this will work for you too. the only trick to this method of journaling is that i just need to open the right file. with command completion on the command line this isn’t so much of a chore. but it does take a moment to remember the date, and craft the right path. today while reflecting on how nice it is to still be using unix, it occurred to me that i could create a little shell script to open my journal for that day (or a previous day). so i put this little file j in my path: #!/bin/zsh journal_dir="/home/ed/dropbox/journal" if [ "$ " ]; then date=$ else date=`date +%y-%m-%d` fi vim "$journal_dir/$date.md" so now when i’m in the middle of something else and want to jot a note in my journal i just type j. unix, still crazy after all these years. strengths and weaknesses quoting macey ( ), quoting foucault, quoting nietzsche: one thing is needful. – to ‘give style’ to one’s character – a great and rare art! it is practised by those who survey all the strengths and weaknesses that their nature has to offer and then fit them into an artistic plan until each appears as art and reason and even weaknesses delight the eye. nietzsche, williams, nauckhoff, & del caro ( ), p.  this is a generous and lively image of what art does when it is working. art is not perfection. macey, d. ( ). the lives of michel foucault: a biography. verso. nietzsche, f. w., williams, b., nauckhoff, j., & del caro, a. ( ). the gay science: with a prelude in german rhymes and an appendix of songs. cambridge, u.k. ; new york: cambridge university press. data speculation i’ve taken the ill-advised approach of using the coronavirus as a topic to frame the exercises in my computer programming class this semester. i say “ill-advised” because given the impact that covid has been having on students i’ve been thinking they probably need a way to escape news of the virus by way of writing code, rather than diving into it more. it’s late in the semester to modulate things but i think we will shift gears to look at programming through another lens after spring break. that being said, one of the interesting things we’ve been doing is looking at vaccination data that is being released by the maryland department of health through their esri arcgis hub. note: this dataset has since been removed from the web because it has been superseded by a new dataset that includes single dose vaccinations. i guess it’s good that students get a feel for how ephemeral data on the web is, even when it is published by the government. we noticed that this dataset recorded a small number of vaccinations as happening as early as the s up until december , when vaccines were approved for use. i asked students to apply what we have been learning about python (files, strings, loops, and sets) to identify the maryland counties that were responsible for generating this anomalous data. i thought this exercise provided a good demonstration using real, live data that critical thinking about the provenance of data is always important because there is no such thing as raw data (gitelman, ). while we were working with the data to count the number of anomalous vaccinations per county one of my sharp eyed students noticed that the results we were seeing with my version of the dataset (downloaded on february ) were different from what we saw with his (downloaded on march ). we expected to see new rows in the later one because new vaccination data seem to be reported daily–which is cool in itself. but we were surprised to find new vaccination records for dates earlier than december , . why would new vaccinations for these erroneous older dates still be entering the system? for example the second dataset downloaded march acquired new rows: object id vaccination date county daily first dose cumulative first dose daily second dose cumulative second dose / / allegany / / baltimore / / baltimore / / baltimore city / / baltimore / / prince george’s and these rows present in the february version were deleted in the march version: object id vaccination date county daily first dose cumulative first dose daily second dose cumulative second dose / / frederick / / talbot / / baltimore / / caroline / / prince george’s / / anne arundel / / frederick / / wicomico / / frederick i found these additions perplexing at first, because i assumed these outliers were part of an initial load. but it appears that the anomalies are still being generated? the deletions suggest that perhaps the anomalous data is being identified and scrubbed in a live system that is then dumping out the data? or maybe the code that is being used to update the dataset in arcgis hub itself is malfunctioning in some way? if you are interested in toying around with the code and data it is up on github. i was interested to learn about pandas.dataframe.merge which is useful for diffing tables when you use indicator=true. at any rate, having students notice, measure and document anomalies like this seems pretty useful. i also asked them to speculate about what kinds of activities could generate these errors. i meant speculate in the speculative fiction sense of imagining a specific scenario that caused it. i think this made some students scratch their head a bit, because i wasn’t asking them for the cause, but to invent a possible cause. based on the results so far i’d like to incorporate more of these speculative exercises concerned with the functioning of code and data representations into my teaching. i want to encourage students to think creatively about data processing as they learn about the nuts and bolts of how code operates. for example the treatments in how to run a city like amazon, and other fables which use sci-fi to test ideas about how information technologies are deployed in society. another model is the speculative ethics book club which also uses sci-fi to explore the ethical and social consequences of technology. i feel like i need to read up on specualtive research more generally before doing this though (michael & wilkie, ). i’d also like to focus the speculation down at the level of the code or data processing, rather than at the macro super-system level. but that has its place too. another difference is that i was asking students to engage in speculation about the past rather than the future. how did the data end up this way? perhaps this is more of a genealogical approach, of winding things backwards, and tracing what is known. maybe it’s more mystery than sci-fi. the speculative element is important because (in this case) operations at the md dept of health, and their arcgis hub setup are mostly opaque to us. but even when access isn’t a problem these systems they can feel opaque, because rather than there being a dearth of information you are drowning in it. speculation is a useful abductive approach to hypothesis generation and, hopefully, understanding. update - - : over in the fediverse david benque recommended i take a look at matthew stanley’s chapter in (gitelman, ) “where is that moon, anyway? the problem of interpreting historical solar eclipse observations” for the connection to mystery. for the connection to peirce and abduction he also pointed to luciana parisi’s chapter “speculation: a method for the unattainable” in lury & wakeford ( ). definitely things to follow up on! references gitelman, l. (ed.). ( ). “raw data” is an oxymoron. mit press. lury, c., & wakeford, n. ( ). inventive methods: the happening of the social. routledge. michael, m., & wilkie, a. ( ). speculative research. in the palgrave encyclopedia of the possible (pp. – ). cham: springer international publishing. retrieved from https://doi.org/ . / - - - - _ - recovering foucault i’ve been enjoying reading david macey’s biography of michel foucault, that was republished in by verso. macey himself is an interesting figure, both a scholar and an activist who took leave from academia to do translation work and to write this biography and others of lacan and fanon. one thing that struck me as i’m nearing the end of macey’s book is the relationship between foucault and archives. i think foucault has become emblematic of a certain brand of literary analysis of “the archive” that is far removed from the research literature of archival studies, while using “the archive” as a metaphor (caswell, ). i’ve spent much of my life working in libraries and digital preservation, and now studying and teaching about them from the perspective of practice, so i am very sympathetic to this critique. it is perhaps ironic that the disconnect between these two bodies of research is a difference in discourse which foucault himself brought attention to. at any rate, the thing that has struck me while reading this biography is how much time foucault himself spent working in libraries and archives. here’s foucault in his own words talking about his thesis: in histoire de la folie à l’âge classique i wished to determine what could be known about mental illness in a given epoch … an object took shape for me: the knowledge invested in complex systems of institutions. and a method became imperative: rather than perusing … only the library of scientific books, it was necessary to consult a body of archives comprising decrees, rules hospital and prison registers, and acts of jurisprudence. it was in the arsenal or the archives nationales that i undertook the analysis of a knowledge whose visible body is neither scientific nor theoretical discourse, nor literature, but a daily and regulated practice. (macey, , p. ) foucault didn’t simply use archives for his research: understanding the processes and practices of archives were integral to his method. even though the theory and practice of libraries and archives are quite different given their different functions and materials, they are often lumped together as a convenience in the same buildings. macey blurs them a little bit, in sections like this where he talks about how important libraries were to foucault’s work: foucault required access to paris for a variety of reasons, not least because he was also teaching part-time at ens. the putative thesis he had begun at the fondation thiers – and which he now described to polin as being on the philosophy of psychology – meant that he had to work at the bibliothèque nationale and he had already become one of its habitues. for the next thirty years, henri labrouste’s great building in the rue de richelieu, with its elegant pillars and arches of cast iron, would be his primary place of work. his favourite seat was in the hemicycle, the small, raised section directly opposite the entrance, sheltered from the main reading room, where a central aisle separates rows of long tables subdivided into individual reading desks. the hemicycle affords slighty more quiet and privacy. for thirty years, foucault pursued his research here almost daily, with occasional forays to the manuscript department and to other libraries, and contended with the byzantine cataloguing system: two incomplete and dated printed catalogues supplemented by cabinets containing countless index cards, many of them inscribed with copperplate handwriting. libraries were to become foucault’s natural habitat: ‘those greenish institutions where books accumulate and where there grows the dense vegetation of their knowledge’ there’s a metaphor for you: libraries as vegetation :) it kind of reminds me of some recent work looking at decentralized web technologies in terms of mushrooms. but i digress. i really just wanted to note here that the erasure of archival studies from humanities research about “the archive” shouldn’t really be attributed to foucault, whose own practice centered the work of libraries and archives. foucault wasn’t just writing about an abstract archive, he was practically living out of them. as someone who has worked in libraries and archives i can appreciate how power users (pun intended) often knew aspects of the holdings and intricacies of their their management better than i did. archives, when they are working, are always collaborative endeavours, and the important thing is to recognize and attribute the various sides of that collaboration. ps. writing this blog post led me to dig up a few things i want to read (eliassen, ; radford, radford, & lingel, ). references caswell, m. ( ). the archive is not an archives: on acknowledging the intellectual contributions of archival studies. reconstruction, ( ). retrieved from http://reconstruction.eserver.org/issues/ /caswell.shtml eliassen, k. ( ). archives of michel foucualt. in e. røssaak (ed.), the archive in motion, new conceptions of the archive in contemporary thought and new media practices. novus press. macey, d. ( ). the lives of michel foucault: a biography. verso. radford, g. p., radford, m. l., & lingel, j. ( ). the library as heterotopia: michel foucault and the experience of library space. journal of documentation, ( ), – . teaching oop in the time of covid i’ve been teaching a section of the introduction to object oriented programming at the umd college for information studies this semester. it’s difficult for me, and for the students, because we are remote due to the coronavirus pandemic. the class is largely asynchronous, but every week i’ve been holding two synchronous live coding sessions in zoom to discuss the material and the exercises. these have been fun because the students are sharp, and haven’t been shy about sharing their screen and their vscode session to work on the details. but students need quite a bit of self-discipline to move through the material, and probably only about / of the students take advantage of these live sessions. i’m quite lucky because i’m working with a set of lectures, slides and exercises that have been developed over the past couple of years by other instructors: josh westgard, aric bills and gabriel cruz. you can see some of the public facing materials here. having this backdrop of content combined with severance’s excellent (and free) python for everybody has allowed me to focus more on my live sessions, on responsive grading, and to also spend some time crafting additional exercises that are geared to this particular moment. this class is in the college for information studies and not in the computer science department, so it’s important for the students to not only learn how to use a programming language, but to understand programming as a social activity, with real political and material effects in the world. being able to read, understand, critique and talk about code and its documentation is just as important as being able to write it. in practice, out in the “real world” of open source software i think these aspects are arguably more important. one way i’ve been trying to do this in the first few weeks of class is to craft a sequence of exercises that form a narrative around coronavirus testing and data collection to help remind the students of the basics of programming: variables, expressions, conditionals, loops, functions, files. in the first exercise we imagined a very simple data entry program that needed to record results of real-time polymerase chain reaction tests (rt-pcr). i gave them the program and described how it was supposed to work, and asked them describe (in english) any problems that they noticed and to submit a version of the program with problems fixed. i also asked them to reflect on a request from their boss about adding the collection of race, gender and income information. the goal here was to test their ability to read the program and write english about it while also demonstrating a facility for modifying the program. most importantly i wanted them to think about how inputs such as race or gender have questions about categories and standards behind them, and weren’t simply a matter of syntax. the second exercise builds on the first by asking them to adjust the revised program to be able to save the data in a very particular format. yes, in the first exercise the data is stored in memory and printed to the screen in aggregate at the end. the scenario here is that the department of health and human services has assumed the responsibility for covid test data collection from the centers for disease control. of course this really happened, but the data format i chose was completely made up (maybe we will be working with some real data at the end of the semester if i continue with this theme). the goal in this exercise was to demonstrate their ability to read another program and fit a function into it. the students were given a working program that had a save_results() function stubbed out. in addition to submitting their revised code i asked them to reflect on some limitations of the data format chosen, and the data processing pipeline that it was a part of. and in the third exercise i asked them to imagine that this lab they were working in had a scientist who discovered a problem with some of the thresholds for acceptable testing, which required an update to the program from exercise , and also a test suite to make sure the program was behaving properly. in addition to writing the tests i asked them to reflect on what functionality was not being tested that probably should be. this alternation between writing code and writing prose is something i started doing as part of a digital curation class. i don’t know if this dialogical or perhaps dialectical, approach is something others have tried. i should probably do some research to see. in my last class i alternated week by week: one week reading and writing code, the next week reading and writing prose. but this semester i’ve stayed focused on code, but required the reading and writing of code as well as prose about code in the same week. i hope to write more about how this goes, and these exercises as i go. i’m not sure if i will continue with the coronavirus data examples. one thing i’m sensitive to is that my students themselves are experiencing the effects of the coronavirus, and may want to escape it just for a bit in their school work. just writing in the open about it here, in addition to the weekly meetings i’ve had with aric, josh and gabriel has been very useful. speaking of those meetings. i learned today from aric that tomorrow (february th, ) is the th anniversary of python’s first public release! you can see this reflected in this timeline. this v . . release was the first release guido van rossum made outside of cwi and was made on the usenet newsgroup alt.sources where it is split out into chunks that need to be reassembled. back in andrew dalke located a and repackaged these sources in google groups which acquired alt.sources as part of dejanews in . but if you look at the time stamp on the first part of the release you can see that it was made february , (not february ). so i’m not sure if the birthday is actually today. i sent this little note out to my students with this wonderful two part oral history that the computer history museum did with guido van rossum a couple years ago. i turns out both of his parents were atheists and pacifists. his dad went to jail because he refused to be conscripted into the military. that and many more details of his background and thoughts about the evolution of python can be found in these delightful interviews: happy birthday python! gpt- jam one of the joys of pandemic academic life has been a true feast of online events to attend, on a wide variety of topics, some of which are delightfully narrow and esoteric. case in point was today’s reflecting on power and ai: the case of gpt- which lived up to its title. i’ll try to keep an eye out for when the video posts, and update here. the workshop was largely organized around an exploration of whether gpt- , the largest known machine learning language model, changes anything for media studies theory, or if it amounts to just more of the same. so the discussion wasn’t focused so much on what games could be played with gpt- , but rather if gpt- changes the rules of the game for media theory, at all. i’m not sure there was a conclusive answer at the end, but it sounded like the consensus was that current theorization around media is adequate for understanding gpt- , but it matters greatly what theory or theories are deployed. the online discussion after the presentations indicated that attendees didn’t see this as merely a theoretical issue, but one that has direct social and political impacts on our lives. james steinhoff looked at gpt- using a marxist media theory perspective where he told the story of gpt- ’s as a project of openai and as a project of capital. openai started with much fanfare in as a non-profit initiative where the technology, algorithms and models developed would would be kept openly licensed and freely available so that the world could understand the benefits and risks of ai technology. steinhoff described how in the project’s needs for capital (compute power and staff) transitioned it from a non-profit into a capped-profit company, which is now owned, or at least controlled, by microsoft. the code for generating the model as well as the model itself are gated behind a token driven web api run my microsoft. you can get on a waiting list to use it, but apparently a lot of people have been waiting a while, so … being a microsoft employee probably helps. i grabbed a screenshot of the pricing page that steinhoff shared during his presentation: i’d be interested to hear more about how these tokens operate. are they per-request, or are they measured according something else? i googled around a bit during the presentation to try to find some documentation for the web api, and came up empty handed. i did find shreya shankar’s gpt -sandbox project for interacting with the api in your browser (mostly for iteratively crafting text input in order to generate desired output). it depends on the openai python package created by openai themselves. the docs for openai then point at a page on the openai.com website which is behind a login. you can create an account, but you need to be pre-approved (made it through the waitlist) to be able to see the docs. there’s probably some sense that can be made from examining the python client though. all of the presentations in some form or another touched on the billion parameters that were used to generate the model. but the api to the model doesn’t have that many parameters. it allows you to enter text and get text back. but the api surface that the gpt- service provides could be interesting to examine a bit more closely, especially to track how it changes over time. in terms of how this model mediates knowledge and understanding it’ll be important watch. steinhoff’s message seemed to be that, despite the best of intentions, gpt- functions in the service of very large corporations with very particular interests. one dimension that he didn’t explore perhaps because of time, is how the gpt- model itself is fed massive amounts of content from the web, or the commons. indeed % of the data came from the commoncrawl project. gpt- is an example of an extraction project that has been underway at large internet companies for some time. i think the critique of these corporations has often been confined to seeing them in terms of surveillance capitalism rather than in terms of raw resource extraction, or the primitive accumulation of capital. the behavioral indicators of who clicked on what are certainly valuable, but gpt- and sister projects like commoncrawl shows just the accumulation of data with modest amounts of metadata can be extremely valuable. this discussion really hit home for me since i’ve been working with jess ogden and shawn walker using commoncrawl as a dataset for talking about the use of web archives, while also reflecting on the use of web archives as data. commoncrawl provides a unique glimpse into some of the data operations that are at work in the accumulation of web archives. i worry that the window is closing and the commoncrawl itself will be absorbed into microsoft. following steinhoff olya kudina and bas de boer jointly presented some compelling thoughts about how its important to understand gpt- in terms of sociotechnical theory, using ideas drawn from foucault and arendt. i actually want to watch their presentation again because it followed a very specific path that i can’t do justice to here. but their main argument seemed to be that gpt- is an expression of power and that where there is power there is always resistance to power. gpt- can and will be subverted and used to achieve particular political ends of our own choosing. because of my own dissertation research i’m partial to foucault’s idea of governmentality, especially as it relates to ideas of legibility (scott, )–the who, what and why of legibility projects, aka archives. gpt- presents some interesting challenges in terms of legibility because the model is so complex, the results it generates defy deductive logic and auditing. in some ways gpt- obscures more than it makes a population legible, as foucault moved from disciplinary analysis of the subject, to the ways in which populations are described and governed through the practices of pastoral power, of open datasets. again the significance of commoncrawl as an archival project, as a web legibility project, jumps to the fore. i’m not as up on arendt as i should be, so one outcome of their presentation is that i’m going to read her the human condition which they had in a slide. i’m long overdue. references scott, j. c. ( ). seeing like a state: how certain schemes to improve the human condition have failed. yale university press. mimetypes today i learned that python has a mimetypes module, and has ever since guido von rossum added it in . honestly i’m just a bit sheepish to admit this discovery, as someone who has been using python for digital preservation work for about years. but maybe there’s a good reason for that. since the entire version history for python is available on github (which is a beautiful thing in itself) you can see that the mimetypes module started as a guess_type() function built around a pretty simple hard coded mapping of file extensions to mimetypes. the module also includes a little bit of code to look for, and parse, mimetype registries that might be available on the host operating system. the initial mimetype registries used included one from the venerable apache httpd web server, and the netscape web browser, which was about three years old at the time. it makes sense why this function to look up a mimetype for a filename would be useful at that time, since python was being used to serve up files on the nascent web and for sending email, and whatnot. today the module looks much the same, but has a few new functions and about twice as many mimetypes in its internal list. some of the new mimetypes include text/csv, audio.mpeg, application/vnd.ms-powerpoint, application/x-shockwave-flash, application/xml, and application/json. comparing the first commit to the most latest provides a thumbnail sketch of years of web format evolution. i’ll admit, this is is a bit of an esoteric thing to be writing a blog post about. so i should explain. at work i’ve been helping out on a community archiving project which has accumulated a significant amount of photographs, scans, documents of various kinds, audio files and videos. some of these files are embedded in web applications like omeka, some are in cloud storage like google drive, or on the office networked attached storage, and others are on scattered storage devices in people’s desk drawers and closets. we’ve also created new files during community digitization events, and oral history interviews. as part of this work we’ve wanted to start building a place on the web where all these materials live. this has required not only describing the files, but also putting all the files in one place so that access can be provided. in principle this sounds simple. but it turns out that collecting the files from all these diverse locations poses significant challenges, because their context matters. the filenames, and the directories they are found in, are sometimes the only descriptive metadata that exists for this data. in short, the original order matters. but putting this content on the web means that the files need to be brought together and connected with their metadata programmatically. this is how i stumbled across the mimetypes module. i’ve been writing some throwaway code to collect the files together into the same directory structure while preserving their original filenames and locations in an airtable database. i’ve been using the magic module to identify the format of the file, which is used to copy the file into a dropbox storage location. the extension is important because we are expecting this to be a static site serving up the content and we want the files to also be browsable using the dropbox drive. it turns out the mimetypes.guess_extension is pretty useful for turning a mediatype into an file extension. i’m kind of surprised that it took me this long to discover mimetypes, but i’m glad i did. as an aside i think this highlights for me how important git can be as an archive and research method for software studies work. northwest branch cairn here is a short recording and a couple photos from my morning walk along the northwest branch trail with penny. i can’t go every day but at months old she has tons of energy, so it’s generally a good idea for all concerned to go at least every other morning. and it’s a good thing, because the walk is surprisingly peaceful, and it’s such a joy to see her run through the woods. after walking about minutes there is this little cairn that is a reminder for me to turn around. after seeing it grow in size i was sad to see it knocked down one day. but, ever so slowly, it is getting built back up again. spacy · industrial-strength natural language processing in python this app works best with javascript enabled. spacy 💥 out now: spacy v . menu usage models api universe usage models api universe industrial-strength natural language processing in python get things done spacy is designed to help you do real work — to build real products, or gather real insights. the library respects your time, and tries to avoid wasting it. it's easy to install, and its api is simple and productive. get started blazing fast spacy excels at large-scale information extraction tasks. it's written from the ground up in carefully memory-managed cython. if your application needs to process entire web dumps, spacy is the library you want to be using. facts & figures awesome ecosystem in the five years since its release, spacy has become an industry standard with a huge ecosystem. choose from a variety of plugins, integrate with your machine learning stack and build custom components and workflows. read more edit the code & try spacy # pip install -u spacy # python -m spacy download en_core_web_sm import spacy # load english tokenizer, tagger, parser and ner nlp = spacy.load("en_core_web_sm") # process whole documents text = ("when sebastian thrun started working on self-driving cars at " "google in , few people outside of the company took him " "seriously. “i can tell you very senior ceos of major american " "car companies would shake my hand and turn away because i wasn’t " "worth talking to,” said thrun, in an interview with recode earlier " "this week.") doc = nlp(text) # analyze syntax print("noun phrases:", [chunk.text for chunk in doc.noun_chunks]) print("verbs:", [token.lemma_ for token in doc if token.pos_ == "verb"]) # find named entities, phrases and concepts for entity in doc.ents: print(entity.text, entity.label_) features support for + languages trained pipelines for languages multi-task learning with pretrained transformers like bert pretrained word vectors state-of-the-art speed production-ready training system linguistically-motivated tokenization components for named entity recognition, part-of-speech tagging, dependency parsing, sentence segmentation, text classification, lemmatization, morphological analysis, entity linking and more easily extensible with custom components and attributes support for custom models in pytorch, tensorflow and other frameworks built in visualizers for syntax and ner easy model packaging, deployment and workflow management robust, rigorously evaluated accuracy new in v . transformer-based pipelines, new training system, project templates & more spacy v . features all new transformer-based pipelines that bring spacy's accuracy right up to the current state-of-the-art. you can use any pretrained transformer to train your own pipelines, and even share one transformer between multiple components with multi-task learning. training is now fully configurable and extensible, and you can define your own custom models using pytorch, tensorflow and other frameworks. the new spacy projects system lets you describe whole end-to-end workflows in a single file, giving you an easy path from prototype to production, and making it easy to clone and adapt best-practice projects for your own use cases. see what's new from the makers of spacy prodigy: radically efficient machine teaching prodigy is an annotation tool so efficient that data scientists can do the annotation themselves, enabling a new level of rapid iteration. whether you're working on entity recognition, intent detection or image classification, prodigy can help you train and evaluate your models faster. try it out reproducible training for custom pipelines spacy v . introduces a comprehensive and extensible system for configuring your training runs. your configuration file will describe every detail of your training run, with no hidden defaults, making it easy to rerun your experiments and track changes. you can use the quickstart widget or the init config command to get started, or clone a project template for an end-to-end workflow. get started language afrikaans albanian arabic armenian basque bengali bulgarian catalan chinese croatian czech danish dutch english estonian finnish french german greek gujarati hebrew hindi hungarian icelandic indonesian irish italian japanese kannada korean kyrgyz latvian ligurian lithuanian luxembourgish macedonian malayalam marathi multi-language nepali norwegian bokmål persian polish portuguese romanian russian sanskrit serbian setswana sinhala slovak slovenian spanish swedish tagalog tamil tatar telugu thai turkish ukrainian urdu vietnamese yoruba components taggerparsernertextcat hardware cpugpu (transformer) optimize for efficiencyaccuracy # this is an auto-generated partial config. to use it with 'spacy train' # you can run spacy init fill-config to auto-fill all default settings: # python -m spacy init fill-config ./base_config.cfg ./config.cfg [paths] train = null dev = null [system] gpu_allocator = null [nlp] lang = "en" pipeline = [] batch_size = [components] [components.tok vec] factory = "tok vec" [components.tok vec.model] @architectures = "spacy.tok vec.v " [components.tok vec.model.embed] @architectures = "spacy.multihashembed.v " width = ${components.tok vec.model.encode.width} attrs = ["orth", "shape"] rows = [ , ] include_static_vectors = false [components.tok vec.model.encode] @architectures = "spacy.maxoutwindowencoder.v " width = depth = window_size = maxout_pieces = [corpora] [corpora.train] @readers = "spacy.corpus.v " path = ${paths.train} max_length = [corpora.dev] @readers = "spacy.corpus.v " path = ${paths.dev} max_length = [training] dev_corpus = "corpora.dev" train_corpus = "corpora.train" [training.optimizer] @optimizers = "adam.v " [training.batcher] @batchers = "spacy.batch_by_words.v " discard_oversize = false tolerance = . [training.batcher.size] @schedules = "compounding.v " start = stop = compound = . [initialize] vectors = null 🪐get started: pipelines/tagger_parser_ud the easiest way to get started is to clone a project template and run it – for example, this template for training a part-of-speech tagger and dependency parser on a universal dependencies treebank.$python -m spacy project clone pipelines/tagger_parser_ud end-to-end workflows from prototype to production spacy's new project system gives you a smooth path from prototype to production. it lets you keep track of all those data transformation, preprocessing and training steps, so you can make sure your project is always ready to hand over for automation. it features source asset download, command execution, checksum verification, and caching with a variety of backends and integrations. try it out in this free and interactive online course you’ll learn how to use spacy to build advanced natural language understanding systems, using both rule-based and machine learning approaches. it includes exercises featuring videos, slide decks, multiple-choice questions and interactive coding practice in the browser. start the course benchmarks spacy v . introduces transformer-based pipelines that bring spacy's accuracy right up to the current state-of-the-art. you can also use a cpu-optimized pipeline, which is less accurate but much cheaper to run. more results pipeline parser tagger ner en_core_web_trf (spacy v ) . . . en_core_web_lg (spacy v ) . . . en_core_web_lg (spacy v ) . . . full pipeline accuracy on the ontonotes . corpus (reported on the development set). named entity recognition system ontonotes conll ‘ spacy roberta ( ) . . stanza (stanfordnlp) . . flair . . named entity recognition accuracy on the ontonotes . and conll- corpora. see nlp-progress for more results. project template: benchmarks/ner_conll . . qi et al. ( ). . akbik et al. ( ). spacy usage models api reference online course community universe github discussions issue tracker stack overflow connect twitter github youtube blog stay in the loop! receive updates about new releases, tutorials and more. sign up © - explosionlegal / imprint catmandu catmandu catmandu . on may th , nicolas steenlant (our main developer and guru of catmandu) released version . of our catmandu toolkit with some very interesting new features. the main addition is a brand new way how catmandu fix-es can be implemented using the new catmandu::path implementation. this coding by nicolas will make it much easier and [&# ;] lpw : &# ;contrarian perl&# ; &# ; tom hukins at : , tom hukins shares his enthusiasm for catmandu! introducing filestores catmandu is always our tool of choice when working with structured data. using the elasticsearch or mongodb catmandu::store-s it is quite trivial to store and retrieve metadata records. storing and retrieving a yaml, json (and by extension xml, marc, csv,&# ;) files can be as easy as the commands below: $ catmandu import yaml to database [&# ;] catmandu . catmandu . has been released to with some nice new features. there are some new fix routines that were asked by our community: error the &# ;error&# ; fix stops immediately the execution of the fix script and throws an error. use this to abort the processing of a data stream: $ cat myfix.fix unless exists(id)     error("no [&# ;] metadata analysis at the command-line i was last week at the elag  conference in copenhagen and attended the excellent workshop by christina harlow  of cornell university on migrating digital collections metadata to rdf and fedora . one of the important steps required to migrate and model data to rdf is understanding what your data is about. probably old systems need to [&# ;] catmandu . catmandu . has been released today. there has been some speed improvements processing fixes due to switching from the data::util to the ref::util package which has better a support on many perl platforms. for the command line there is now support for preprocessing  fix scripts. this means, one can read in variables from the command line into [&# ;] parallel processing with catmandu in this blog post i&# ;ll show a technique to scale out your data processing with catmandu. all catmandu scripts use a single process, in a single thread. this means that if you need to process times as much data , you need times at much time. running a catmandu convert command with the [&# ;] catmandu . after years of programming, minor releases we are finally there: the release of catmandu . ! we have pushed the test coverage of the code to . % and added and cleaned a lot of our documentation. for the new features read our changes file. a few important changes should be noted. &# ; &# ; by default [&# ;] catmandu chat on friday june : cest, we&# ;ll  provide a one hour introduction/demo into processing data with catmandu. if you are interested, join us on the event page: https://plus.google.com/hangouts/_/event/c jcknos egjlthk m btha o more instructions on the exact google hangout coordinates for this chat will follow on this web page at friday june : . to enter the chat session, [&# ;] matching authors against viaf identities at ghent university library we enrich catalog records with viaf identities to enhance the search experience in the catalog. when searching for all the books about &# ;chekov&# ; we want to match all name variants of this author. consult viaf http://viaf.org/viaf/ /#chekhov,_anton_pavlovich,_ -  and you will see many of them. chekhov Čehov tsjechof txékhov etc any of the these names variants can be [&# ;] nukta africa – making an impact through digital storytelling services our work training events team blog contact menu services our work training events team blog contact subscribe our multimedia and data journalism courses that will help you compete in the global market read more subscribe our multimedia and data journalism courses that will help you compete in the global market read more subscribe our multimedia and data journalism courses that will help you compete in the global market read more subscribe our multimedia and data journalism courses that will help you compete in the global market read more subscribe our multimedia and data journalism courses that will help you compete in the global market read more previous next home of digital & data storytelling learn more how we help journalists realise their career dreams in tanzania in nukta africa through its flagship training program had a lot to celebrate despite the covid- impact on our lives and businesses across the read more how we help journalists realise their career dreams in tanzania in nukta africa through its flagship training program had a lot to celebrate despite the covid- impact on our lives and businesses across the read more our partners and clients mission statement as one of the fastest growing digital media companies, nukta africa aims to transform people’s lives through data and digital tools and content our vision we aim at becoming the leading and most innovative digital media and technology company in sub-saharan africa we provide training and develop digital and data-driven content to improve people’s lives. we are working with journalists, media organisations, ngos and corporates on creating impactful stories what we offer we offer digital and data storytelling trainings we believe in evidence-based journalism and digital storytelling. in our courses you will be able learn emerging techniques and tools on producing data and multimedia projects. on a data journalism course you will be trained on how to produce data-driven stories for print, online, radio and tv while on multimedia storytelling you will learn how to create engaging video, texts, audio and interactive visualisations. we offer training and continuous mentorship to individual journalists, newsrooms, ngos, and companies which want to improve their storytelling skills. our training packages includes:- data journalism courses fact checking courses multimedia storytelling narrative storytelling for advocacy see our upcoming trainings we provide analytical news content through our independent online news portal, www.nukta.co.tz , we offer fresh, analytical and data-driven news stories on business, technology, safari and education. the news stories are not only meant to inform you but also give you evidence-based analyses which can help you make decisions for your daily life, home, work and business. visit nukta.co.tz. provide advertising solutions to businesses businesses can use our news and social media platforms to advertise their products and services to our audience. display ads: you can get all from static images, text, floating banners, popups ads, flash and videos native ads. we provide space for native ads on our site sponsored content: we create impactful content about products and services by answering the so what questions to your customers success stories: we create impactful narratives for csr and success stories for ngos and corporates contact us for more advertising information via sales@nukta.co.tz. we turn complex data into human interesting visualisation has your company spent countless hours and resources collecting data which should be shared with clients and the wider public? we can help you transform this rich data into custom designed infographics with compelling stories. infographics are now a crucial part of storytelling and help to deliver a message as quick as possible to your audience. infographics can help you stand out with engaging report presentations, advertisement and documenting the impact of corporate social responsibility projects. our journey so far + journalists trained on fact checking, digital and data storytelling, multimedia storytelling + training sessions conducted for journalism students, communication professionals and other corporate workers , % online audience growth was recorded within a year in major events on data, digital storytelling and renewable energy were conducted , + articles published in of which % were data driven newly introduced courses to help journalists and communication professionals adopt digital transformation we are committed to provide high quality editorial services while abiding to the best business practices of our media industry. let’s get in touch. privacy policy data policy events training menu privacy policy data policy events training twitter instagram facebook nukta africa . all rights reserved. library hat library hat http://www.bohyunkim.net/blog/ skip to content ↓ bohyunkim.net about publications presentations cv / resume blockchain: merits, issues, and suggestions for compelling use cases jul th, by bohyun (library hat). comments are off for this post * this post was also published in acrl techconnect.*** blockchain holds a great potential for both innovation and disruption. the adoption of blockchain also poses certain risks, and those risks will need to be addressed and mitigated before blockchain becomes mainstream. a lot of people have heard of blockchain at this point. but many are unfamiliar with how this new technology exactly works and unsure about under which circumstances or on what conditions it may be useful to libraries. in this post, i will provide a brief overview of the merits and the issues of blockchain. i will also make some suggestions for compelling use cases of blockchain at the end of this post. what blockchain accomplishes blockchain is the technology that underpins a well-known decentralized cryptocurrency, bitcoin. to simply put, blockchain is a kind of distributed digital ledger on a peer-to-peer (p p) network, in which records are confirmed and encrypted. blockchain records and keeps data in the original state in a secure and tamper-proof manner[ ] by its technical implementation alone, thereby obviating the need for a third-party authority to guarantee the authenticity of the data. records in blockchain are stored in multiple ledgers in a distributed network instead of one central location. this prevents a single point of failure and secures records by protecting them from potential damage or loss. blocks in each blockchain ledger are chained to one another by the mechanism called ‘proof of work.’ (for those familiar with a version control system such as git, a blockchain ledger can be thought of as something similar to a p p hosted git repository that allows sequential commits only.[ ]) this makes records in a block immutable and irreversible, that is, tamper-proof. in areas where the authenticity and security of records is of paramount importance, such as electronic health records, digital identity authentication/authorization, digital rights management, historic materials that may be contested or challenged due to the vested interests of certain groups, and digital provenance to name a few, blockchain can lead to efficiency, convenience, and cost savings. for example, with blockchain implemented in banking, one will be able to transfer funds across different countries without going through banks.[ ] this can drastically lower the fees involved, and the transaction will take effect much more quickly, if not immediately. similarly, adopted in real estate transactions, blockchain can make the process of buying and selling a property more straightforward and efficient, saving time and money.[ ] disruptive potential of blockchain the disruptive potential of blockchain lies in its aforementioned ability to render the role of a third-party authority obsolete, which records and validates transactions and guarantees their authenticity, should a dispute arise. in this respect, blockchain can serve as an alternative trust protocol that decentralizes traditional authorities. since blockchain achieves this by public key cryptography, however, if one loses one’s own personal key to the blockchain ledger holding one’s financial or real estate asset, for example, then that will result in the permanent loss of such asset. with the third-party authority gone, there will be no institution to step in and remedy the situation. issues this is only some of the issues with blockchain. other issues include (a) interoperability between different blockchain systems, (b) scalability of blockchain at a global scale with large amount of data, (c) potential security issues such as the % attack [ ], and (d) huge energy consumption [ ] that a blockchain requires to add a block to a ledger. note that the last issue of energy consumption has both environmental and economic ramifications because it can cancel out the cost savings gained from eliminating a third-party authority and related processes and fees. challenges for wider adoption there are growing interests in blockchain among information professionals, but there are also some obstacles to those interests gaining momentum and moving further towards wider trial and adoption. one obstacle is the lack of general understanding about blockchain in a larger audience of information professionals. due to its original association with bitcoin, many mistake blockchain for cryptocurrency. another obstacle is technical. the use of blockchain requires setting up and running a node in a blockchain network, such as ethereum[ ], which may be daunting to those who are not tech-savvy. this makes a barrier to entry high to those who are not familiar with command line scripting and yet still want to try out and test how a blockchain functions. the last and most important obstacle is the lack of compelling use cases for libraries, archives, and museums. to many, blockchain is an interesting new technology. but even many blockchain enthusiasts are skeptical of its practical benefits at this point when all associated costs are considered. of course, this is not an insurmountable obstacle. the more people get familiar with blockchain, the more ways people will discover to use blockchain in the information profession that are uniquely beneficial for specific purposes. suggestions for compelling use cases of blockchain in order to determine what may make a compelling use case of blockchain, the information profession would benefit from considering the following. what kind of data/records (or the series thereof) must be stored and preserved exactly the way they were created. what kind of information is at great risk to be altered and compromised by changing circumstances. what type of interactions may need to take place between such data/records and their users.[ ] how much would be a reasonable cost for implementation. these will help connecting the potential benefits of blockchain with real-world use cases and take the information profession one step closer to its wider testing and adoption. to those further interested in blockchain and libraries, i recommend the recordings from the library . online mini-conference, “blockchain applied: impact on the information profession,” held back in june. the blockchain national forum, which is funded by imls and is to take place in san jose, ca on august th, will also be livestreamed. notes [ ] for an excellent introduction to blockchain, see “the great chain of being sure about things,” the economist, october , , https://www.economist.com/news/briefing/ -technology-behind-bitcoin-lets-people-who-do-not-know-or-trust-each-other-build-dependable. [ ] justin ramos, “blockchain: under the hood,” thoughtworks (blog), august , , https://www.thoughtworks.com/insights/blog/blockchain-under-hood. [ ] the world food programme, the food-assistance branch of the united nations, is using blockchain to increase their humanitarian aid to refugees. blockchain may possibly be used for not only financial transactions but also the identity verification for refugees. russ juskalian, “inside the jordan refugee camp that runs on blockchain,” mit technology review, april , , https://www.technologyreview.com/s/ /inside-the-jordan-refugee-camp-that-runs-on-blockchain/. [ ] joanne cleaver, “could blockchain technology transform homebuying in cook county — and beyond?,” chicago tribune, july , , http://www.chicagotribune.com/classified/realestate/ct-re- -blockchain-homebuying- -story.html. [ ] “ % attack,” investopedia, september , , https://www.investopedia.com/terms/ / -attack.asp. [ ] sherman lee, “bitcoin’s energy consumption can power an entire country — but eos is trying to fix that,” forbes, april , , https://www.forbes.com/sites/shermanlee/ / / /bitcoins-energy-consumption-can-power-an-entire-country-but-eos-is-trying-to-fix-that/# ff aa bc . [ ] osita chibuike, “how to setup an ethereum node,” the practical dev, may , , https://dev.to/legobox/how-to-setup-an-ethereum-node- a . [ ] the interaction can also be a self-executing program when certain conditions are met in a blockchain ledger. this is called a “smart contract.” see mike orcutt, “states that are passing laws to govern ‘smart contracts’ have no idea what they’re doing,” mit technology review, march , , https://www.technologyreview.com/s/ /states-that-are-passing-laws-to-govern-smart-contracts-have-no-idea-what-theyre-doing/. posted in: coding, library, technology. tagged: bitcoin · blockchain · distributed ledger technology · dlt taking diversity to the next level dec th, by bohyun (library hat). comments are off for this post ** this post was also published in acrl techconnect on dec. , .*** “building bridges in a divisive climate: diversity in libraries, archives, and museums,” panel discussion program held at the university of rhode island libraries on thursday november , . getting minorities on board i recently moderated a panel discussion program titled “building bridges in a divisive climate: diversity in libraries, archives, and museums.” participating in organizing this program was interesting experience. during the whole time, i experienced my perspective constantly shifting back and forth as (i) someone who is a woman of color in the us who experiences and deals with small and large daily acts of discrimination, (ii) an organizer/moderator trying to get as many people as possible to attend and participate, and (iii) a mid-career librarian who is trying to contribute to the group efforts to find a way to move the diversity agenda forward in a positive and inclusive way in my own institution. in the past, i have participated in multiple diversity-themed programs either as a member of the organizing committee or as an attendee and have been excited to see colleagues organize and run such programs. but when asked to write or speak about diversity myself, i always hesitated and declined. this puzzled me for a long time because i couldn’t quite pinpoint where my own resistance was coming from. i am writing about this now because i think it may shed some light on why it is often difficult to get minorities on board with diversity-related efforts. a common issue that many organizers experience is that often these diversity programs draw many allies who are already interested in working on the issue of diversity, equity, and inclusion but not necessarily a lot of those who the organizers consider to be the target audience, namely, minorities. what may be the reason? perhaps i can find a clue for the answer to this question from my own resistance regarding speaking or writing about diversity, preferring rather to be in the audience with a certain distance or as an organizer helping with logistics behind the scene. to be honest, i always harbored a level of suspicion about how much of the sudden interests in diversity is real and how much of it is simply about being on the next hot trend. trends come and go, but issues lived through many lives of those who belong to various systematically disadvantaged and marginalized groups are not trends. although i have been always enthusiastic about participating in diversity-focused programs as attendees and was happy to see diversity, equity, and inclusion discussed in articles and talks, i wasn’t ready to sell out my lived experience as part of a hot trend, a potential fad. to be clear, i am not saying that any of the diversity-related programs or events were asking speakers or authors to be a sell-out. i am only describing how things felt to me and where my own resistance was originating. i have been and am happy to see diversity discussed even as a one-time fad. better a fad than no discussion at all. one may argue that that diversity has been actively discussed for quite some time now. a few years, maybe several, or even more. some of the prominent efforts to increase diversity in librarianship i know, for example, go as far back as when oregon state university libraries sponsored two scholarships to the code lib conference, one for women and the other for minorities, which have continued from then on as the code lib diversity scholarship. but if one has lived the entire life as a member of a systematically disadvantaged group either as a woman, a person of color, a person of certain sexual orientation, a person of a certain faith, a person with a certain disability, etc., one knows better than expecting some sudden interests in diversity to change the world we live in and most of the people overnight. i admit i have been watching the diversity discussion gaining more and more traction in librarianship with growing excitement and concern at the same time. for i felt that all of what is being achieved through so many people’s efforts may get wiped out at any moment. the more momentum it accrues, i worried, the more serious backlash it may come to face. for example, it was openly stated that seeking racial/ethnic diversity is superficial and for appearance’s sake and that those who appear to belong to “team diversity” do not work as hard as those in “team mainstream.” people make this type of statements in order to create and strengthen a negative association between multiple dimensions of diversity that are all non-normative (such as race/ethnicity, religion, sexual orientation, immigration status, disability) and unfavorable value judgements (such as inferior intellectual capacity or poor work ethic).  according to this kind of flawed reasoning, a tech company whose entire staff consists of twenty-something white male programmers with a college degree, may well have achieved a high level of diversity because the staff might have potentially (no matter how unlikely) substantial intellectual and personal differences in their thinking, background, and experience, and therefore their clear homogeneity is no real problem. that’s just a matter of trivial “appearance.” the motivation behind this kind of intentional misdirection is to derail current efforts towards expanding diversity, equity, and inclusion by taking people’s attention away from the real issue of systematic marginalization in our society. of course, the ultimate goal of all diversity efforts should be not the mere inclusion of minorities but enabling them to have agency as equal as the agency those privileged already possess. but note that objections are being raised against mere inclusion. anti-diversity sentiment is real, and people will try to rationalize it in any way they can. then of course, the other source of my inner resistance to speaking or writing about diversity has been the simple fact that thinking about diversity, equity, and inclusion does not take me to a happy place. it reminds me of many bad experiences accumulated over time that i would rather not revisit. this is why i admire those who have spoken and written about their lived experience as a member of a systematically discriminated and marginalized group. their contribution is a remarkably selfless one. i don’t have a clear answer to how this reflection on my own resistance against actively speaking or writing about diversity will help future organizers. but clearly, being asked to join many times had an effect since i finally did accept the invitation to moderate a panel and wrote this article. so, if you are serious about getting more minorities – whether in different religions, genders, disabilities, races, etc. – to speak or write on the issue, then invite them and be ready to do it over and over again even if they decline. don’t expect that they will trust you at the first invitation. understand that by accepting such an invitation, minorities do risk far more than non-minorities will ever do. the survey i ran for the registrants of the “building bridges in a divisive climate: diversity in libraries, archives, and museums” panel discussion program showed several respondents expressing their concern about the backlash at their workplaces that did or may result from participating in diversity efforts as a serious deterrent. if we would like to see more minorities participate in diversity efforts, we must create a safe space for everyone and take steps to deal with potential backlash that may ensue afterwards. a gentle intro or a deep dive? another issue that many organizers of diversity-focused events, programs, and initiatives struggle with is two conflicting expectations from their audience. on one hand, there are those who are familiar with diversity, equity, and inclusion issues and want to see how institutions and individuals are going to take their initial efforts to the next level. these people often come from organizations that already implemented certain pro-diversity measures such as search advocates for the hiring process. and educational programs that familiarize the staff with the topic of diversity, equity, and inclusion. on the other hand, there are still many who are not quite sure what diversity, equity, and inclusion exactly mean in a workplace or in their lives. those people would continue to benefit from a gentle introduction to things such as privilege, microaggression, and unconscious biases. the feedback surveys collected after the “building bridges in a divisive climate: diversity in libraries, archives, and museums” panel discussion program showed these two different expectations. some people responded that they deeply appreciated the personal stories shared by the panelists, noting that they did not realize how often minorities are marginalized even in one day’s time. others, however, said they would be like to hear more about actionable items and strategies that can be implemented to further advance the values of diversity, equity, and inclusion that go beyond personal stories. balancing these two different demands is a hard act for organizers. however, this is a testament to our collective achievement that more and more people are aware of the importance of continuing efforts to improve diversity, equity, and inclusion in libraries, archives, and museums. i do think that we need to continue to provide a general introduction to diversity-related issues, exposing people to everyday experience of marginalized groups such as micro-invalidation, impostor syndrome, and basic concepts like white privilege, systematic oppression, colonialism, and intersectionality. one of the comments we received via the feedback survey after our diversity panel discussion program was that the program was most relevant in that it made “having colleagues attend with me to hear what i myself have never told them” possible. general programs and events can be an excellent gateway to more open and less guarded discussion. at the same time, it seems to be high time for us in libraries, museums, and archives to take a deep dive into different realms of diversity, equity, and inclusion as well. diversity comes in many dimensions such as age, disability, religion, sexual orientation, race/ethnicity, and socioeconomic status. many of us feel more strongly about one issue than others. we should create opportunities for ourselves to advocate for specific diversity issues that we care most. the only thing i would emphasize is that one specific dimension of diversity should not be used as an excuse to neglect others. exploring socioeconomic inequality issues without addressing how they work combined with the systematic oppression of marginalized groups such as native americans, women, or immigrants at the same time can be an example of such a case. all dimensions of diversity are closely knitted with one another, and they do not exist independently. for this reason, a deep dive into different realms of diversity, equity, and inclusion must be accompanied by the strong awareness of their intersectionality. recommendations and resources for future organizers organizing a diversity-focused program takes a lot of effort. while planning the “building bridges in a divisive climate: diversity in libraries, archives, and museums” panel discussion program at the university of rhode island libraries, i worked closely with my library dean, karim boughida, who originally came up with the idea of having a panel discussion program at the university of rhode island libraries, and renee neely in the libraries’ diversity initiatives for approximately two months. for panelists, we decided to recruit as many minorities from diverse institutions and backgrounds. we were fortunate to find panelists from a museum, an archive, both a public and an academic library with varying degrees of experience in the field from only a few years to over twenty-five years, ranging from a relatively new archivist to an experienced museum and a library director. our panel consisted of one-hundred percent people of color. the thoughts and perspectives that those panelists shared were, as a result, remarkably diverse and insightful. for this reason, i recommend spending some time to get the right speakers for your program if your program will have speakers. discussion at the “building bridges in a divisive climate: diversity in libraries, archives, and museums,” at the university of rhode island libraries another thing i would like to share is the questions that i created for the panel discussion. even though we had a whole hour, i was able to cover only several of them. but since i discussed all these questions in advance with the panelists and they helped me put a final touch on some of those, i think these questions can be useful to future organizers who may want to run a similar program. they can be utilized for a panel discussion, an unconference, or other types of programs. i hope this is helpful and save time for other organizers. sample questions for the diversity panel discussion why should libraries, archives, museums pay attention to the issues related to diversity, equity, and inclusion? in what ways do you think the lack of diversity in our profession affects the perception of libraries, museums, and archives in the communities we serve? do you have any personal or work-related stories that you would like to share that relate to diversity, equity, and inclusion issues? how did you get interested in diversity, equity, and inclusion issues? suppose you discovered that your library’s, archive’s or museum’s collection includes prejudiced information, controversial objects/ documents, or hate-inducing material. what would you do? suppose a group of your library / archive / museum patrons want to use your space to hold a local gathering that involves hate speech. what would you do? what would you be mostly concerned about, and what would the things that you would consider to make a decision on how you will respond? do you think libraries, archives, and museums are a neutral place? what do you think neutrality means to a library, an archive, a museum in practice in a divisive climate such as now? what are some of the areas in libraries, museums, and archives where you see privileges and marginalization function as a barrier to achieving our professional values – equal access and critical thinking?  what can we do to remove those barriers? could you tell us how colonialist thinking and practice are affecting libraries, museums, and archives either consciously or unconsciously?  since not everyone is familiar with what colonialism is, please begin with first your brief interpretation of what colonialist thinking or practice look like in libraries, museums, and archives first? what do you think libraries, archives, and museums can do more to improve critical thinking in the community that we serve? although libraries, archives, museums have been making efforts to recruit, hire, and retain diverse personnel in recent years, the success rate has been relatively low. for example, in librarianship, it has been reported that often those hired through these efforts experienced backlash at their own institutions, were subject to unrealistic expectations, and met with unsupportive environment, which led to burnout and a low retention rate of talented people. from your perspective – either as a manager hiring people or a relatively new librarian who looked for jobs – what do you think can be done to improve this type of unfortunate situation? many in our profession express their hesitation to actively participate in diversity, equity, and inclusion-related discussion and initiatives at their institutions because of the backlash from their own coworkers. what do you think we can do to minimize such backlash? some people in our profession express strong negative feelings regarding diversity, equity, and inclusion-related initiatives. how much of this type of anti-diversity sentiment do you think exist in your field? some worry that this is even growing faster in the current divisive and intolerant climate. what do you think we can do to counter such anti-diversity sentiment? there are many who are resistant to the values of diversity, equity, and inclusion. have you taken any action to promote and advance these values facing such resistance? if so, what was your experience like, and what would be some of the strategies you may recommend to others working with those people? many people in our profession want to take our diversity, equity, and inclusion initiatives to the next level, beyond offering mere lip service or simply playing a numbers game for statistics purpose. what do you think that next level may be? lastly, i felt strongly about ensuring that the terms and concepts often thrown out in diversity/equity/inclusion-related programs and events – such as intersectionality, white privilege, microaggression, patriarchy, colonialism, and so on – are not used to unintentionally alienate those who are unfamiliar with them. these concepts are useful and convenient shortcuts that allow us to communicate a large set of ideas previously discussed and digested, so that we can move our discussion forward more efficiently. they should not make people feel uncomfortable nor generate any hint of superiority or inferiority. to this end, i create a pre-program survey which all program registrants were encouraged to take. my survey simply asked people how familiar and how comfortable they are with a variety of terms. at the panel discussion program, we also distributed the glossary of these terms, so that people can all become familiar with them. also, videos can quickly bring all attendees up-to-speed with some basic concepts and phenomena in diversity discussion. for example, in the beginning of our panel discussion program, i played two short videos, “life of privilege explained in a $ race” and “what if we treated white coworkers the way we treat minority coworkers?”, which were well received by the attendees. i am sharing the survey questions, the video links, and the glossary in the hope that they may be helpful as a useful tool for future organizers. for example, one may decide to provide a glossary like this before the program or run an unconference that aims at unpacking the meanings of these terms and discussing how they relate to people’s daily lives. in closing: diversity, libraries, technology, and our own biases disagreements on social issues are natural. but the divisiveness that we are currently experiencing seems to be particularly intense. this deeply concerns us, educators and professionals working in libraries, archives, and museums. libraries, archives, and museums are public institutions dedicated to promoting and advancing civic values. diversity, equity, and inclusion are part of those core civic values that move our society forward. this task, however, has become increasingly challenging as our society moves in a more and more divisive direction. to make matters even more complicated, libraries, archives, museums in general lack diversity in their staff composition. this homogeneity can impede achieving our own mission. according to the recent report from ithaka s+r released this august, we do not appear to have gotten very far. their report “inclusion, diversity, and equity: members of the association of research (arl) libraries – employee demographics and director perspectives,” shows that libraries and library leadership/administration are both markedly white-dominant ( % and % white non-hispanic respectively). also, while librarianship in general are female dominant ( %), the technology field in libraries is starkly male ( %) along with makerspace ( %), facilities ( %), and security ( %) positions. the survey results in the report show that while the majority of library directors say there are barriers to achieving more diversity in their library, they attribute those barriers to external rather than internal factors such as the library’s geographic location and the insufficiently diverse application pool resulting from the library’s location. what is fascinating, however, is that this directly conflicts with the fact that libraries do show little variation in the ratio of white staff based on degree of urbanization. equally interesting is that the staff in more homogeneous and less diverse (over % white non-hispanic) libraries think that their libraries are much more equitable than the library community ( % vs %) and that library directors (and staff) consider their own library to be more equitable, diverse, and inclusive than the library community with respect to almost every category such as race/ethnicity, gender, lgbtq, disabilities, veterans, and religion. while these findings in the ithaka s+r report are based upon the survey results from arl libraries, similar staff composition and attitudes can be assumed to apply to libraries in general. there is a great need for both the library administration and the staff to understand their own unconscious and implicit biases, workplace norms, and organizational culture that may well be thwarting their own diversity efforts. diversity, equity, and inclusion have certainly been a topic of active discussion in the recent years. many libraries have established a committee or a task force dedicated to improving diversity. but how are those efforts paying out? are they going beyond simply paying a lip service? is it making a real difference to everyday experience of minority library workers? can we improve, and if so where and how? where do we go from here? those would be the questions that we will need to examine in order to take our diversity efforts in libraries, archives, and museums to the next level. notes the program description is available at https://web.uri.edu/library/ / / /building-bridges-in-a-divisive-climate-diversity-in-libraries-archives-and-museums/ ↩ carol bean, ranti junus, and deborah mouw, “conference report: code libcon ,” the code lib journal, no. (march , ), http://journal.code lib.org/articles/ . ↩ note that this kind of biased assertions often masquerades itself as an objective intellectual pursuit in academia when in reality, it is a direct manifestation of an existing prejudice reflecting the limited and shallow experience of the person posting the question him/herself. a good example of this is found in the remark in made by larry summers, the former harvard president. he suggested that one reason for relatively few women in top positions in science may be “issues of intrinsic aptitude” rather than widespread indisputable everyday discrimination against women. he resigned after the harvard faculty of arts and sciences cast a vote of no confidence. see scott jaschik, “what larry summers said,” inside higher ed, february , , https://www.insidehighered.com/news/ / / /summers _ . ↩ our pre-program survey questions can be viewed at https://docs.google.com/forms/d/e/ faipqlscp-nqnkhaqli_ pvdidw-dqzraflycdikutu dzjqm f ra/viewform. ↩ for this purpose, asking all participants to respect one another’s privacy in advance can be a good policy. in addition to this, we specifically decided not to stream or record our panel discussion program, so that both panelists and attendees can freely share their experience and thoughts. ↩ a good example is the search advocate program from oregon state university. see http://searchadvocate.oregonstate.edu/. ↩ for an example, see the workshops offered by the office of community, equity, and inclusion of the university of rhode island at https://web.uri.edu/diversity/ced-inclusion-courses-overview/. ↩ for the limitations of the mainstream diversity discussion in lis (library and information science) with the focus on inclusion and cultural competency, see david james hudson, “on ‘diversity’ as anti-racism in library and information studies: a critique,” journal of critical library and information studies , no. (january , ), https://doi.org/https://doi.org/ . /jclis.v i . . ↩ you can see our glossary at https://drive.google.com/file/d/ uci huuytrelgny-dbnsoxf_ilpm n/view?usp=sharing; this glossary was put together by renee neely. ↩ for the nitty-gritty logistical details for organizing a large event with a group of local and remote volunteers, check the organizer’s toolkit created by the #critlib unconference organizers at https://critlib .wordpress.com/organizers-toolkit/. ↩ roger schonfeld and liam sweeney, “inclusion, diversity, and equity: members of the association of research libraries,” ithaka s+r, august , , http://www.sr.ithaka.org/publications/inclusion-diversity-and-equity-arl/. ↩ for the early discussion of diversity-focused recruitment in library technology, see jim hahn, “diversity recruitment in library information technology,” acrl techconnect blog, august , , https://acrl.ala.org/techconnect/post/diversity-recruitment-in-library-information-technology. ↩ see april hathcock, “white librarianship in blackface: diversity initiatives in lis,” in the library with the lead pipe, october , , http://www.inthelibrarywiththeleadpipe.org/ /lis-diversity/ and angela galvan, “soliciting performance, hiding bias: whiteness and librarianship,” in the library with the lead pipe (blog), june , , http://www.inthelibrarywiththeleadpipe.org/ /soliciting-performance-hiding-bias-whiteness-and-librarianship. ↩ posted in: diversity. tagged: equity · inclusion · resources from need to want: how to maximize social impact for libraries, archives, and museums oct th, by bohyun (library hat). comments are off for this post at the ndp at three event organized by imls yesterday, sayeed choudhury on the “open scholarly communications” panel suggested that libraries think about return on impact in addition to return on investment (roi). he further elaborated on this point by proposing a possible description of such impact. his description was that when an object or resource created through scholarly communication efforts is being used by someone we don’t know and is interpreted correctly without contacting us (=libraries, archives, museums etc.), that is an impact; to push that further, if someone uses the object or the resource in a way we didn’t anticipate, that’s an impact; if it is integrated into someone’s workflow, that’s also an impact. this emphasis on impact as a goal for libraries, archives, and museums (or non-profit organizations in general to apply broadly) resonated with me particularly because i gave a talk just a few days ago to a group of librarians at the iolug conference about how libraries can and should maximize their social impact in the context of innovation in the way many social entrepreneurs have been already doing for quite some time. in this post, i would like to revisit one point that i made in that talk. it is a specific interpretation of the idea of maximizing social impact as a conscious goal for libraries, archives, and museums (lam). hopefully, this will provide a useful heuristic for lam institutions in mapping out the future efforts. considering that roi is a measure of cost-effectiveness, i believe impact is a much better goal than roi for lam institutions. we often think that to collect, organize, provide equitable access to, and preserve information, knowledge, and cultural heritage is the goal of a library, an archive, and a museum. but doing that well doesn’t mean simply doing it cost-effectively. our efforts no doubt aim at achieving better-collected, better-organized, better-accessed, and better-preserved information, knowledge, and cultural heritage. however, our ultimate end-goal is attained only when such information, knowledge, and cultural heritage is better used by our users. not simply better accessed, but better used in the sense that the person gets to leverage such information, knowledge, and cultural heritage to succeed in whatever endeavor that s/he was making, whether it be career success, advanced education, personal fulfillment, or private business growth. in my opinion, that’s the true impact that lam institutions should aim at. if that kind of impact were a destination, cost-effectiveness is simply one mode of transportation, preferred one maybe but not quite comparable to the destination in terms of importance. but what does “better used” exactly mean? “integrated into people’s workflow” is a hint; “unanticipated use” is another clue. if you are like me and need to create and design that kind of integrated or unanticipated use at your library, archive, or museum, how will you go about that? this is the same question we ask over and over again. how do you plan and implement innovation? yes, we will go talk to our users, ask what they would like to see, meet with our stakeholders and find out their interests and concerns are, discuss ourselves what we can do to deliver things that our users want, and go from there to another wonderful project we work hard for. then after all that, we reach a stage where we stop and wonder where that “greater social impact” went in almost all our projects. and we frantically look for numbers. how many people accessed what we created? how many downloads? what does the satisfaction survey say? in those moments, how does the “impact” verbiage help us? how does that help us in charting our actual path to creating and maximizing our social impact more than the old-fashioned “roi” verbiage? at least roi is quantifiable and measurable. this, i believe, is why we need a more concrete heuristic to translate the lofty “impact” to everyday “actions” we can take. maybe not quite as specific as to dictate what exactly those actions are at each project level but a bit more specific to enable us to frame the value we are attempting to create and deliver at our lam institutions beyond cost-effectiveness. i think the heuristic we need is the conversion of need to demand. what is an untapped need that people are not even aware of in the realm of information, knowledge, and cultural heritage? when we can identify any such need in a specific form and successfully convert that need to a demand, we make an impact. by “demand,” i mean the kind of user experience that people will desire and subsequently fulfill by using that object, resource, tool, service, etc., we create at our library, archive, and museum. (one good example of such desirable ux that comes to my mind is nypl photo booth: https://www.nypl.org/blog/ / / /snapshots-nypl.) when we create a demand out of such an untapped need, when the fulfillment of that kind of demand effectively creates, strengthens, and enriches our society in the direction of information, knowledge, evidence-based decisions, and truth being more valued, promoted, and equitably shared, i think we get to maximize our social impact. in the last “going forward” panel where the information discovery was discussed, loretta parham pointed out that in the corporate sector, information finds consumers, not the other way. by contrast, we (by which i mean all of us working at lam institutions) still frame our value in terms of helping and supporting users access and use our material, resources, and physical and digital objects and tools. this is a mistake in my opinion, because it is a self-limiting value proposition for libraries, archives, and museums. what is the point of us lam institutions, working so hard to get the public to use their resources and services? the end goal is so that we can maximize our social impact through such use. the rhetoric of “helping and supporting people to access and use our resources” does not adequately convey that. businesses want their clients to use their goods and services, of course. but their real target is the making of profit out of those uses, aka purchases. similarly, but far more importantly, the real goal of libraries, archives and museums is to move the society forward, closer in the direction of knowledge, evidence-based decisions, and truth being more valued, promoted, and equitably shared. one person at a time, yes, but the ultimate goal reaching far beyond individuals. the end goal is maximizing our impact on this side of the public good.   posted in: librarianship, library, management, usability, user experience. tagged: archives · change · d d · design thinking · digital collection · goal · impact · innovation · libraries · museums · ndpthree · social entrepreneurship · ux how to price d printing service fees may nd, by bohyun (library hat). comments are off for this post ** this post was originally published in acrl techconnect on may. , .*** many libraries today provide d printing service. but not all of them can afford to do so for free. while free d printing may be ideal, it can jeopardize the sustainability of the service over time. nevertheless, many libraries tend to worry about charging service fees. in this post, i will outline how i determined the pricing schema for our library’s new d printing service in the hope that more libraries will consider offering d printing service if having to charge the fee is a factor stopping them. but let me begin with libraries’ general aversion to fees. a d printer in action at the health sciences and human services library (hs/hsl), univ. of maryland, baltimore service fees are not your enemy charging fees for the library’s service is not something librarians should regard as a taboo. we live in the times in which a library is being asked to create and provide more and more new and innovative services to help users successfully navigate the fast-changing information landscape. a makerspace and d printing are certainly one of those new and innovative services. but at many libraries, the operating budget is shrinking rather than increasing. so, the most obvious choice in this situation is to aim for cost-recovery. it is to be remembered that even when a library aims for cost-recovery, it will be only partial cost-recovery because there is a lot of staff time and expertise that is spent on planning and operating such new services. libraries should not be afraid to introduce new services requiring service fees because users will still benefit from those services often much more greatly than a commercial equivalent (if any). think of service fees as your friend. without them, you won’t be able to introduce and continue to provide a service that your users need. it is a business cost to be expected, and libraries will not make profit out of it (even if they try). still bothered? almost every library charges for regular (paper) printing. should a library rather not provide printing service because it cannot be offered for free? library users certainly wouldn’t want that. determining your service fees what do you need in order to create a pricing scheme for your library’s d printing service? (a) first, you need to list all cost-incurring factors. those include (i) the equipment cost and wear and tear, (ii) electricity, (iii) staff time & expertise for support and maintenance, and (iv) any consumables such as d print filament, painter’s tape. remember that your new d printer will not last forever and will need to be replaced by a new one in - years. also, some of these cost-incurring factors such as staff time and expertise for support is fixed per d print job. on the other hand, another cost-incurring factor, d print filament, for example, is a cost factor that increases in proportion to the size/density of a d model that is printed. that is, the larger and denser a d print model is, the more filament will be used incurring more cost. (b) second, make sure that your pricing scheme is readily understood by users. does it quickly give users a rough idea of the cost before their d print job begins? an obscure pricing scheme can confuse users and may deter them from trying out a new service. that would be bad user experience. also in d printing, consider if you will also charge for a failed print. perhaps you do. perhaps you don’t. maybe you want to charge a fee that is lower than a successful print. whichever one you decide on, have that covered since failed prints will certainly happen. (c) lastly, the pricing scheme should be easily handled by the library staff. the more library staff will be involved in the entire process of a library patron using the d printing service from the beginning to the end, the more important this becomes. if the pricing scheme is difficult for the staff to work with when they need charge for and process each d print job, the new d printing service will increase their workload significantly. which staff will be responsible for which step of the new service? what would be the exact tasks that the staff will need to do? for example, it may be that several staff at the circulation desk need to learn and handle new tasks involving the d printing service, such as labeling and putting away completed d models, processing the payment transaction, delivering the model, and marking the job status for the paid d print job as ‘completed’ in the d printing staff admin portal if there is such a system in place. below is the screenshot of the hs/hsl d printing staff admin portal developed in-house by the library it team. the hs/hsl d printing staff admin portal, university of maryland, baltimore examples – d printing service fees it’s always helpful to see how other libraries are doing when you need to determine your own pricing scheme. here are some examples that shows ten libraries’ d printing pricing scheme changed over the recent three years. unr delamare library https://guides.library.unr.edu/ dprinting – $ . per cubic inch of modeling material (raised to $ . starting july, ). – uprint – model material: $ . per cubic inch (= . gm= . lb) – uprint – support materials: $ . per cubic inch ncsu hunt library https://www.lib.ncsu.edu/do/ d-printing -  uprint d printer: $ per cubic inch of material (abs), with a $ minimum – makerbot d printer: $ . per gram of material (pla), with a $ minimum – uprint – $ per cubic inch of material, $ minimum – f – $ . per gram of material, $ minimum southern illinois university library http://libguides.siue.edu/ d/request – originally $ per hour of printing time; reduced to $ as the demand grew. – lulzbot taz , luzbot mini – $ .  per hour of printing time. byu library http://guides.lib.byu.edu/c.php?g= &p= – – makerbot replicator / ultimaker extended $ . per gram for standard ( . mm) resolution; $ . per gram for high ( . mm) resolution. university of michigan library the cube d printer checkout is no longer offered. – cost for professional d printing service; open access d printing is free. gvsu library https://www.gvsu.edu/techshowcase/makerspace- .htm – $ . per gram with a $ . minimum – free (ultimaker +, makerbot replicator , , x) university of tennessee, chattanooga library http://www.utc.edu/library/services/studio/ d-printing/index.php – – makerbot th, th – $ . per gram port washington public library http://www.pwpl.org/ d-printing/ d-printing-guidelines/ – makerbot – $ per hour of printing time miami university – $ . per gram of the finished print; – ? ucla library, dalhousie university library ( ) free types of d printing service fees from the examples above, you will notice that many d printing service fee schemes are based upon the weight of a d-print model. this is because these libraries are trying recover the cost of the d filament, and the amount of filament used is most accurately reflected in the weight of the resulting d-printed model. however, there are a few problems with the weight-based d printing pricing scheme. first, it is not readily calculable by a user before the print job, because to do so, the user will have to weigh a model that s/he won’t have until it is d-printed. also, once d-printed, the staff will have to weigh each model and calculate the cost. this is time-consuming and not very efficient. for this reason, my library considered an alternative pricing scheme based on the size of a d model. the idea was that we will have roughly three different sizes of an empty box – small, medium, and large –  with three different prices assigned. whichever box into which a user’s d printed object fits will determine how much the user will pay for her/his d-printed model. this seemed like a great idea because it is easy to determine how much a model will cost to d-print to both users and the library staff in comparison to the weight-based pricing scheme. unfortunately, this size-based pricing scheme has a few significant flaws. a smaller model may use more filament than a larger model if it is denser (meaning the higher infill ratio). second, depending on the shape of a model, a model that fits  in a large box may use much less filament than the one that fits in a small box. think about a large tree model with think branches. then compare that with a % filled compact baseball model that fits into a smaller box than the tree model does. thirdly, the resolution that determines a layer height may change the amount of filament used even if what is d-printed is a same model. different infill ratios – image from https://www.packtpub.com/sites/default/files/article-images/ os_ _ .png charging based upon the d printing time so we couldn’t go with the size-based pricing scheme. but we did not like the problems of the weight-based pricing scheme, either. as an alternative, we decided to go with the time-based pricing scheme because printing time is proportionate to how much filament is used, but it does not require that the staff weigh the model each time. a d-printing software gives an estimate of the printing time, and most d printers also display actual printing time for each model printed. first, we wanted to confirm the hypothesis that d printing time and the weight of the resulting model are proportionate to each other. i tested this by translating the weight-based cost to the time-based cost based upon the estimated printing time and the estimated weight of several cube models. here is the result i got using the makerbot replicator x. . gm/ min= . gm per min. . gm/ min= . gm per min. . gm/ min=  . gm per min. . gm/ min= . gm per min. . gm/ min= . gm per min. . gm/ min= . gm per min. there is some variance, but the hypothesis holds up. based upon this, now let’s calculate the d printing cost by time. d plastic filament is $ for abs/pla and $ for the dissolvable per . kg  (= . lb) from makerbot. that means that filament cost is $ . per gram for abs/pla and $ .  per gram for the dissolvable. so, d filament cost is cents per gram on average. finalizing the service fee for d printing for an hour of d printing time, the amount of filament used would be . gm (= .  x min). this gives us the filament cost of cents per hour of d printing (= . gm x cents). so, for the cost-recovery of filament only, i get roughly $ per hour of d printing time. earlier, i mentioned that filament is only one of the cost-incurring factors for the d printing service. it’s time to bring in those other factors, such as hardware wear/tear, staff time, electricity, maintenance, etc., plus “no-charge-for-failed-print-policy,” which was adopted at our library. those other factors will add an additional amount per d print job. and at my library, this came out to be about $ . (i will not go into details about how these have been determined because those will differ at each library.) so, the final service fee for our new d printing service was set to be $ up to hour of d printing + $ per additional hour of d printing. the $ is broken down to $ per hour of d printing that accounts for the filament cost and $ fixed cost for every d print job. to help our users to quickly get an idea of how much their d print job will cost, we have added a feature to the hs/hsl d print job submission form online. this feature automatically calculates and displays the final cost based upon the printing time estimate that a user enters.   the hs/hsl d print job submission form, university of maryland, baltimore don’t be afraid of service fees i would like to emphasize that libraries should not be afraid to set service fees for new services. as long as they are easy to understand and the staff can explain the reasons behind those service fees, they should not be a deterrent to a library trying to introduce and provide a new innovative service. there is a clear benefit in running through all cost-incurring factors and communicating how the final pricing scheme was determined (including the verification of the hypothesis that d printing time and the weight of the resulting model are proportionate to each other) to all library staff who will be involved in the new d printing service. if any library user inquire about or challenges the service fee, the staff will be able to provide a reasonable explanation on the spot. i implemented this pricing scheme at the same time as the launch of my library’s makerspace (the hs/hsl innovation space at the university of maryland, baltimore – http://www.hshsl.umaryland.edu/services/ispace/) back in april . we have been providing d printing service and charging for it for more than two years. i am happy to report that during that entire duration, we have not received any complaint about the service fee. no library user expected our new d printing service to be free, and all comments that we received regarding the service fee were positive. many expressed a surprise at how cheap our d printing service is and thanked us for it. to summarize, libraries should be willing to explore and offer new innovating services even when they require charging service fees. and if you do so, make sure that the resulting pricing scheme for the new service is (a) sustainable and accountable, (b) readily graspable by users, and (c) easily handled by the library staff who will handle the payment transaction. good luck and happy d printing at your library! an example model with the d printing cost and the filament info displayed at the hs/hsl, university of maryland, baltimore posted in: library, management, technology, user experience. tagged: d printer · d printing · budget · charge · cost · funding · makerspace · service fees · sustainability · user experience · ux post-election statements and messages that reaffirm diversity nov th, by bohyun (library hat). comments are off for this post these are statements and messages sent out publicly or internally to re-affirm diversity, equity, and inclusion by libraries or higher ed institutions. i have collected these – some myself and many others through my fellow librarians. some of them were listed on my blog post, “finding the right words in post-election libraries and higher ed.” so there are some duplicates. if you think that your organization is already so much pro-diversity that there is no need to confirm or re-affirm diversity, you can’t be farther from the everyday reality that minorities experience. sometimes, saying isn’t much. but right now, saying it out loud can mean everything. if you support those who belong to minority groups but don’t say it out loud, how would they know it? right now, nothing is obvious other than there is a lot of hate and violence towards minorities. feel free to use these as your resource to craft a similar message. feel free to add if you have similar messages you have received or created in the comments section. if you haven’t heard from the organization you belong to, please ask for a message reaffirming and committing to diversity, equity, and inclusion. [update / / : statements from ala and lita have been released. i have added them below.] i will continue to add additional statements as i find them. if you see anything missing, please add below in the comment or send it via twitter @bohyunkim. thanks! from librarians but i know that there will be libraries librarian zoe fisher to other librarians care for one another director chris bourg to the mit libraries staff finding the right words in post-election libraries and higher ed (my e-mail sent to the it team at university of maryland, baltimore health sciences and human services library) with a a pin and a prayer dean k. g. schneider to the sonoma state university library staff from library associations lita ala pla arl dlf code lib [draft in github] from libraries james madison university libraries northwestern university libraries university of oregon libraries from higher ed institutions clarke university cuny duke universitymit loyola university, maryland northwestern university penn state university the catholic university of america university of california university of michigan university of nebraska, lincoln university of nevada, reno university of oregon university of rochester and rochester institute of technology university of florida addressing racially charged flyers on the campus marshall university president jerome a. gilbert’s statement regarding post-election tweet drexel university moving on as a community after the election dear members of the drexel community, it is heartening to me to see the drexel community come together over the last day to digest the news of the presidential election — and to do so in the spirit of support and caring that is so much a part of this university. we gathered family-style, meeting in small, informal groups in several places across campus, including the student center for inclusion and culture, our residence halls, and as colleagues over a cup of coffee. many student leaders, particularly from our multicultural organizations, joined the conversation. this is not a process that can be completed in just one day, of course. so i hope these conversations will continue as long as students, faculty and professional staff feel they are needed, and i want to assure you that our professional staff in student life, human resources, faculty affairs, as well as our colleagues in the lindy center for civic engagement, will be there for your support. without question, many members of our community were deeply concerned by the inflammatory rhetoric and hostility on the campaign trail that too often typified this bitter election season. as i wrote over the summer, the best response to an uncertain and at times deeply troubling world is to remain true to our values as an academic community. in the context of a presidential election, it is vital that we understand and respect that members of our broadly diverse campus can hold similarly diverse political views. the expression of these views is a fundamental element of the free exchange of ideas and intellectual inquiry that makes drexel such a vibrant institution. at the same time, drexel remains committed to ensuring a welcoming, inclusive, and respectful environment. those tenets are more important than ever. while we continue to follow changes on the national scene, it is the responsibility of each of us at drexel to join together to move ahead, unified in our commitment to open dialogue, civic engagement and inclusion. i am grateful for all you do to support drexel as a community that welcomes and encourages all of its members. lane community college good morning, colleagues, i am in our nation’s capital today. i’d rather be at home! like me, i am guessing that many of you were glued to the media last night to find out the results of the election. though we know who our next president will be, this transition still presents a lot of uncertainty. it is not clear what our future president’s higher education policies will be but we will be working with our national associations to understand and influence where we can. during times like this there is an opening for us to decide how we want to be with each other. moods will range from joy to sadness and disbelief. it seems trite but we do need to work together, now more than ever. as educators we have a unique responsibility to create safe learning environments where every student can learn and become empowered workers and informed citizens. this imperative seems even more important today. our college values of equity and inclusion have not changed and will not change and it is up to each of us to assure that we live out our values in every classroom and in each interaction. preparing ourselves and our students for contentious discussions sparked by the election is work we must do. it is quite likely that some of our faculty, staff and students may be feeling particularly vulnerable right now. can we reach out to each other and let each other know that we all belong at lane? during my inservice remarks i said that “we must robustly reject the calculated narrative of cynicism, division and despair. instead of letting this leak into our narratives, together we can bet on hope not fear, respect not hate, unity not division.” at lane we have the intellect (and proud of it) and wherewithal to do this. i am attaching a favorite reading from meg wheatley which is resonating with me today and will end with gary snyder’s words from to the children …..stay together learn the flowers go light. maryland institute college of art post-election community forums and support dear campus community, no matter how each of us voted yesterday, most of us likely agree that the presidential campaign has been polarizing on multiple fronts. as a result, today is a difficult day for our nation and our campus community. in our nation, regardless of how one has aligned with a candidate, half of our country feels empowered and the other half sad and perhaps angry. because such dynamics and feelings need to be addressed and supported on campus, this memo outlines immediate resources for our community of students, faculty and staff, and describes opportunities for fashioning dialogues and creative actions going forward. before sharing the specifics, let me say unambiguously that mica will always stand firm in our commitment to diversity and inclusion. this morning’s presidential task force on diversity, inclusion, equity, and globalization meeting discussed measures to ensure that, as a creative community, we will continue to build a culture where everyone is honored and supported for success. the impact of exhibitions such as the current baltimore rising show remains as critical as ever, and mica fosters an educational environment that is welcoming of all. in the short term our focus is to support one another. whether you are happy or distressed with the results, there has been sufficient feedback to indicate that our campus community is struggling with how to make sense of such a divisive election process. you may find the following services helpful and are encouraged to take advantage of them: for students: student counseling maintains walk-in hours from : – : pm every day. students are welcome to stop by the student counseling center ( mt. royal avenue) during that time or call - - and enter x once the recording begins to schedule an appointment. for faculty and staff: the employee assistance program (eap) is available to provide free, confidential support hours a day. the eap can be reached by calling - - - or visiting healthadvocate.com/members and providing the username “maryland institute college of art”. for all mica community members: mica’s chaplain, the rev, maintains standing hours every monday and can be reached in the reflection room (meyerhoff house) or by calling the office of diversity and intercultural development at - - . there are three events this week that can provide a shared space for dialogue; all are welcome: the “after the baltimore uprising: still waiting for change” community forum attached to the baltimore rising exhibition takes place tonight from : pm to : pm in the lazarus center. an open space for all mica community members will be hosted by the black student union tonight at : pm in the meyerhoff house underground. in partnership with our student nami group, mica will host a “messages of hope” event for the entire mica community that will allow for shared space and reflection. this event will be on friday, november th, and will begin at : pm in cohen plaza. in various upcoming meetings we look forward to exploring with campus members other appropriate activities that can be created to facilitate expressions and dialogues. a separate communication is coming from provost david bogen to the faculty regarding classroom conversations with students regarding the election. northwestern university women’s center dear northwestern students, faculty, staff and community members: the women’s center is open today. our staff members are all here and available to talk, to provide resources and tools, or to help however you might need it. most importantly, the space itself is available for whatever you need, whether that is to gather as a group, to sit alone somewhere comfortable and quiet, or to talk to someone who will listen. we are still here, and we are here for all people as an intentionally intersectional space. you are welcome to drop by physically, make a call to our office, or send an email. know that this space is open and available to you. portland community college to the pcc staff as someone who spent the last several years in washington d.c. working to advance community colleges, i feel a special poignancy today hearing so many students, colleagues, and friends wonder and worry about the future—and about their futures. we must acknowledge that this political season has highlighted deep divisions in our society. today i spent time with cabinet speaking about how we can assert our shared values and take positive action as a pcc community to deepen our commitment to equity, inclusion and civic engagement. pcc will always welcome students and colleagues who bring a rich array of perspectives and experiences. that diversity is among our greatest strengths. today it is imperative that we stand by faculty, staff and students who may be experiencing fear or uncertainty—affirming with our words and deeds that pcc is about equitable student success and educational opportunity for all. never has this mission been more powerful or more essential. i have only been here a few months, but have already learned that pcc is a remarkable and caring community. much is happening right now in real time, and i appreciate the efforts of all. for my part, i promise to communicate often as we continue to plan for our shared future. p.s. today and in the days ahead, we will be holding space for people to be together in community. here are a few of the opportunities identified so far. portland community college to students dear students: as someone who spent the last several years working in washington d.c., i feel a special poignancy this week hearing many of you express worry and uncertainty about the future. there is little doubt that this political season has highlighted some deep divisions in our society. both political candidates have acknowledged as much. at the same time, people representing the full and diverse spectrum of our country come to our nation’s community colleges in hopes of a better life. pcc is such a place – where every year thousands of students find their path and pursue their dreams. all should find opportunity here, and all should feel safe and welcome. the rich diversity of pcc offers an amazing opportunity for dialogue across difference, and for developing skills that are the foundation of our democratic society. let this moment renew your passion for making a better life for yourself, your community and your country and for becoming the kind of leader you want to follow. rutgers university aaup-aft (american association of university professors – american federation of teachers) resisting donald trump we are shocked and horrified that donald trump, who ran on a racist, xenophobic, misogynist platform, is now the president of the us. in response to this new political landscape, the administrative heads of several universities have issued statements embracing their diverse student, faculty, and staff bodies and offering support and protection. (see statements from the university of california and the california state university). president barchi has yet to address the danger to the rutgers community and its core mission. this afternoon, our faculty union and the rutgers one coalition held an emergency meeting of students, faculty, and community activists in new brunswick. we discussed means of responding to the attacks that people may experience in the near future. most immediately, we approved the following statement by acclamation at the -strong meeting: “rutgers one, a coalition of faculty, staff, students and community members, calls upon the rutgers administration to join us in condemning all acts of bigotry on this campus and refuse to tolerate any attacks on immigrants, women, arabs, muslims, people of color, lgbtq people and all others in our diverse community. we demand that president barchi and his administration provide sanctuary, support, and protection to those who are already facing attacks on our campuses. we need concrete action that can ensure a safe environment for all. further, we commit ourselves to take action against all attempts by the trump administration to target any of our students, staff or faculty. we are united in resistance to bigotry of every kind and welcome all to join us in solidarity.” we also resolved to take the following steps: we will be holding weekly friday meetings at pm in our union office in new brunswick to bring together students, faculty and staff to organize against the trump agenda. we hope to expand these to camden and newark as well. (if you are willing to help organize this, please email back.) we will be creating a list serve to coordinate our work. if you want to join this list, please reply to this email. we are making posters and stickers which declare sanctuaries from racism, xenophobia, sexism, bigotry, religious intolerance, and attacks on unions. once these materials are ready we will write to you so that you may post them on windows, office doors, cars etc. in the meantime, we urge you to talk to your students and colleagues of color as well as women and offer them your support and solidarity. as you may recall, the executive committee issued a denunciation of donald trump on october , . now our slogan, one from the labor movement, is “don’t mourn. organize!” that is where we are now – all the more poignantly because of donald trump’s appeal to workers. let us organize, and let us also expand our calling of education. in your classrooms, your communities, and your families, find the words and sentiments that will redeem all of us from tuesday’s disgrace. university of chicago message from president and provost early in the fall quarter, we sent a message welcoming each of you to the new academic year and affirming our strong commitment to two foundational values of the university – fostering an environment of free expression and open discourse; and ensuring that diversity and inclusion are essential features of the fabric of our campus community and our interactions beyond campus. recent national events have generated waves of disturbing, exclusionary and sometimes threatening behavior around the country, particularly concerning gender and minority status. as a result, many individuals are asking whether the nation and its institutions are entering a period in which supporting the values of diversity and inclusion, as well as free expression and open discourse, will be increasingly challenging. as the president and provost of the university of chicago, we are writing to reaffirm in the strongest possible terms our unwavering commitment to these values, and to the importance of the university as a community acting on these values every day. fulfilling our highest aspirations with respect to these values and their mutual reinforcement will always demand ongoing attention and work on the part of all of us. the current national environment underscores the importance of this work. it means that we need to manifest these values more rather than less, demand more of ourselves as a community, and together be forthright and bold in demonstrating what our community aspires to be. we ask all of you for your help and commitment to the values of diversity and inclusion, free expression, and open discourse and what they mean for each of us working, learning, and living in this university community every day. university of illinois, chicago dear students, faculty, and staff, the events of the past week have come with mixed emotions for many of you. we want you to know that uic remains steadfast in its commitment to creating and sustaining a community that recognizes and values the inherent worth and dignity of every person, while fostering an environment of mutual respect among all members. today, we reaffirm the university’s commitment to access, equity, inclusion and nondiscrimination. critical to this commitment is the work of several offices on campus that provide resources to help you be safe and successful. if you have questions, need someone to talk to, or a place to express yourself, you should consider contacting these offices: office for access and equity (oae). oae is responsible for assuring campus compliance in matters of equal opportunity, affirmative action, and nondiscrimination in the academic and work environment. oae also offers dispute resolution services (drs) to assist with conflict in the workplace not involving unlawful discrimination matters. uic counseling center. the uic counseling center is a primary resource providing comprehensive mental health services that foster personal, interpersonal, academic, and professional thriving for uic students. student legal services. uic’s student legal services (sls) is a full-service law office dedicated to providing legal solutions for currently enrolled students. office of diversity. the office of diversity leads strategic efforts to advance access, equity, and inclusion as fundamental principles underpinning all aspects of university life. it initiates programs that promote an inclusive university climate, partner with campus units to formulate systems of accountability, and develop links with the local community and alumni groups. centers for cultural understanding and social change. the centers for cultural understanding and social change (ccusc) are a collaborative group of seven centers with distinct histories, missions, and locations that promote the well-being of and cultural awareness about underrepresented and underserved groups at uic. uic dialogue initiative. the uic dialogue initiative seeks to build an inclusive campus community where students, faculty, and staff feel welcomed in their identities, valued for their contributions, and feel their identities can be openly expressed. through whatever changes await us, as a learning community we have a special obligation to ensure that our conversations and dialogues over the next weeks and months respect our varied backgrounds and beliefs. university of maryland, baltimore to the umb community: last week, we elected a new president for our country. i think most will agree that the campaign season was long and divisive, and has left many feeling separated from their fellow citizens. in the days since the election, i’ve heard from the leaders of umb and of the university of maryland medical center and of the many programs we operate that serve our neighbors across the city and state. these leaders have relayed stories of students, faculty, staff, families, and children who feel anxious and unsettled, who feel threatened and fearful. it should be unnecessary to reaffirm umb’s commitment to diversity, inclusion, and respect — these values are irrevocable — but when i hear that members of our family are afraid, i must reiterate that the university will not tolerate incivility of any kind, and that the differences we celebrate as a diverse community include not just differences of race, religion, nationality, gender, and sexual identity, but also of experience, opinion, and political affiliation and ideology. if you suffer any harassment, please contact your supervisor or your student affairs dean. in the months ahead, we will come together as a university community to talk about how the incoming administration might influence the issues we care about most: health care access and delivery; education; innovation; social justice and fair treatment for all. we will talk about the opportunities that lay ahead to shape compassionate policy and to join a national dialogue on providing humane care and services that uplift everyone in america. for anyone who despairs, we will talk about building hope. should you want to share how you’re feeling post-election, counselors are available. please contact the student counseling center or the employee assistance program to schedule an appointment. i look forward to continuing this conversation about how we affirm our fundamental mission to improve the human condition and serve the public good. like the values we uphold, this mission endures — irrespective of the person or party in political power. it is our binding promise to the leaders of this state and, even more importantly, to the citizens we serve together. university of west georgia dear colleagues, as we head into the weekend concluding a week, really several weeks, of national and local events, i am reminded of the incredible opportunity of reflection and discourse we have as a nation and as an institution of higher learning. this morning, we held on campus a moving ceremony honoring our veterans–those who have served and who have given the ultimate sacrifice to uphold and protect our freedoms.  it is those freedoms that provide the opportunity to elect a president and those freedoms that provide an environment of civil discourse and opinion.  clearly, the discourse of this election cycle has tested the boundaries. this is an emotional time for many of our faculty, staff, and students.  i ask that as a campus community we hold true to the intended values of our nation and those who sacrificed to protect those values and the core values of our institution–caring, collaboration, inclusiveness, and wisdom.  we must acknowledge and allow the civil discourse and opinion of all within a safe environment.  that is what should set us apart.  it is part of our dna in higher education to respect and encourage variance and diversity of belief, thought, and culture. i call on your professionalism during these times and so appreciate your passion and care for each other and our students. virginia commonwealth university to staff election message dear vcu and vcu health communities, yesterday, we elected new leaders for our city, commonwealth and nation. i am grateful to those of you who made your voice heard during the electoral process, including many of our students who voted for the first time. whether or not your preferred candidate won, you were a part of history and a part of the process that moves our democracy forward. thank you. i hope you will always continue to make your voice heard, both as voters and as well-educated leaders in our society. as with any election, some members of our community are enthusiastic about the winners, others are not.  for many, this election cycle was notably emotional and difficult. now is the time, then, to demonstrate the values that make virginia commonwealth university such a remarkable place.  we reaffirm our commitment to working together across boundaries of discipline or scholarship, as members of one intellectual community, to achieve what’s difficult.  we reaffirm our commitment to inclusion, to ensuring that every person who comes to vcu is respected and emboldened to succeed.  we reaffirm that we will always be a place of the highest integrity, accountability, and we will offer an unyielding commitment to serving those who need us. history changes with every election. what does not change are the commitments we share as one community that is relentlessly focused on advancing the human experience for all people. you continue to inspire me.  and i know you will continue to be a bright light for richmond, virginia, our nation and our world. virginia commonwealth university school of education to students election message dear students, on tuesday we elected new leaders for our city, our commonwealth and our nation. although leadership will be changing, i echo dr. rao’s message below in that our mission outlined by the quest for distinction to support student success, advance knowledge and strengthen our communities remains steadfast. at the vcu school of education, we work to create safe spaces where innovation, inclusion and collaboration can thrive. we actively work across boundaries and disciplines to address the complex challenges facing our communities, schools and families. the election of new leaders provides new opportunities for our students, faculty and staff to build bridges that help us reach our goal of making an impact in urban and high need environments. i encourage you to engage in positive dialogues with one another as the city, commonwealth and nation adjust to the change in leadership, vision and strategy. virginia commonwealth university division of student affairs dear students, we are writing to you, collectively, as leaders in the division of student affairs.  we acknowledge that this election season was stressful for many individuals in our vcu community, culminating with the election of the next president.  some members of our campus community have felt disrespected, attacked and further marginalized by political rhetoric during the political process.  we want to affirm support of all of our students while also recognizing the unique experiences and concerns of individuals. we want all students to know that we are here to support you, encourage you and contribute to your success. we now live in a space of uncertainty as we transition leadership in our nation.  often, with this uncertainty comes a host of thoughts and feelings.  we hope that you will take advantage of some of the following services and programs we offer through our division to support your well-being, including: office of multicultural student affairs, self-care space, university counseling services , the wellness resource center, trans lives matter panel and survivor solidarity support, recreational sports, restorative yoga and mind & body classes. we encourage students to express their concerns and engage in conversations that further the core values articulated in quest, the vcu strategic plan. we continue to have an opportunity to make individual and collective choices about how we work to bridge differences in a manner that builds up our community. our staff will have a table each day next week on the vcu compass from noon to : p.m. ­­­to receive your concerns, suggestions and just listen.  please stop by to meet us.  we want you to know you have our full support. other organizations aclu joint statement from california legislative leaders on result of presidential election posted in: diversity, librarianship, library, management. tagged: college · communication · diversity · election · equity · higher ed · inclusion · library · university finding the right words in post-election libraries and higher ed nov th, by bohyun (library hat). comments are off for this post ** this post was originally published in acrl techconnect on nov. , .*** this year’s election result has presented a huge challenge to all of us who work in higher education and libraries. usually, libraries, universities, and colleges do not comment on presidential election result and we refrain from talking about politics at work. but these are not usual times that we are living in. a black female student was shoved off the sidewalk and called the ‘n’ word at baylor university. the ku klux klan is openly holding a rally. west virginia officials publicly made a racist comment about the first lady. steve bannon’s prospective appointment as the chief strategist and senior counsel to the new president is being praised by white nationalist leaders and fiercely opposed by civil rights groups at the same time. bannon is someone who calls for an ethno-state, openly calls martin luther king a fraud, and laments white dispossession and the deconstruction of occidental civilization. there are people drawing a swastika at a park. the ‘whites only’ and ‘colored’ signs were put up over water fountains in a florida school. a muslim student was threatened with a lighter. asian-american women are being assaulted. hostile acts targeting minority students are taking place on college campuses. libraries and educational institutions exist because we value knowledge and science. knowledge and science do not discriminate. they grow across all different races, ethnicities, religions, nationalities, sexual identities, and disabilities. libraries and educational institutions exist to enable and empower people to freely explore, investigate, and harness different ideas and thoughts. they support, serve, and belong to ‘all’ who seek knowledge. no matter how naive it may sound, they are essential to the betterment of human lives, and they do so by creating strength from all our differences, not likeness. this is why diversity, equity, inclusion are non-negotiable and irrevocable values in libraries and educational institutions. how do we reconcile these values with the president-elect who openly dismissed and expressed hostility towards them? his campaign made remarks and promises that can be interpreted as nothing but the most blatant expressions of racism, sexism, intolerance, bigotry, harassment, and violence. what will we do to address the concerns of our students, staff, and faculty about their physical safety on campus due to their differences in race, ethnicity, religion, nationality, gender, and sexual identity? how do we assure them that we will continue to uphold these values and support everyone regardless of what they look like, how they identify their gender, what their faiths are, what disabilities they may have, who they love, where they come from, what languages they speak, or where they live? how? we say it. explicitly. clearly. and repeatedly. if you think that your organization is already very much pro-diversity that there is no need to confirm or reaffirm diversity, you can’t be farther from the everyday life minorities experience. sometimes, saying isn’t much. but right now, saying it out loud can mean everything. if you support those who belong to minority groups but don’t say it out loud, how would they know it? right now, nothing is obvious other than there is a lot of hate and violence towards minorities. the entire week after the election, i agonized about what to say to my small team of it people whom i supervise at work. as a manager, i felt that it was my responsibility to address the anxiety and uncertainty that some of my staff – particularly those in minority groups – would be experiencing due to the election result. i also needed to ensure that whatever dialogue takes place regarding the differences of opinions between those who were pleased and those who were distressed with the election result, those dialogues remain civil and respectful. crafting an appropriate message was much more challenging than i anticipated. i felt very strongly about the need to re-affirm the unwavering support and commitment to diversity, equity, and inclusion particularly in relation to libraries and higher education, no matter how obvious it may seem. i also felt the need to establish (within the bounds of my limited authority) that we will continue to respect, value, and celebrate diversity in interacting with library users as well as other library and university staff members. employees are held to the standard expectations of their institutions, such as diversity, equity, inclusion, tolerance, civil dialogue, and no harassment or violence towards minorities, even if their private opinions conflict with them. at the same time, i wanted to strike a measured tone and neither scare nor upset anyone, whichever side they were on in the election. as a manager, i have to acknowledge that everyone is entitled to their private opinions as long as they do not harm others. i suspect that many of us – either a manager or not – want to say something similar about the election result. not so much about who was and should have been as about what we are going to do now in the face of these public incidences of anger, hatred, harassment, violence, and bigotry directed at minority groups, which are coming out at an alarming pace because it affects all of us, not just minorities. finding the right words, however, is difficult. you have to carefully consider your role, audience, and the message you want to convey. the official public statement from a university president is going to take a tone vastly different from an informal private message a supervisor sends out to a few members of his or her team. a library director’s message to library patrons assuring the continued service for all groups of users with no discrimination will likely to be quite different from the one she sends to her library staff to assuage their anxiety and fear. for such difficulty not to delay and stop us from what we have to and want to say to everyone we work with and care for, i am sharing the short message that i sent out to my team last friday, days after the election. (n.b. ‘cats’ stands for ‘computing and technology services’ and umb refers to ‘university of maryland, baltimore.’) this is a customized message to address my own team. i am sharing this as a potential template for you to craft your own message. i would like to see more messages that reaffirm diversity, equity, and inclusion as non-negotiable values, explicitly state that we will not step backwards, and make a commitment to continued unwavering support for them. dear cats, this year’s close and divisive election left a certain level of anxiety and uncertainty in many of us. i am sure that we will hear from president perman and the university leadership soon. in the meantime, i want to remind you of something i believe to be very important. we are all here – just as we have been all along – to provide the most excellent service to our users regardless of what they look like, what their faiths are, where they come from, what languages they speak, where they live, and who they love. a library is a powerful place where people transform themselves through learning, critical thinking, and reflection. a library’s doors have been kept open to anyone who wants to freely explore the world of ideas and pursue knowledge. libraries are here to empower people to create a better future. a library is a place for mutual education through respectful and open-minded dialogues. and, we, the library staff and faculty, make that happen. we get to make sure that people’s ethnicity, race, gender, disability, socio-economic backgrounds, political views, or religious beliefs do not become an obstacle to that pursuit. we have a truly awesome responsibility. and i don’t have to tell you how vital our role is as a cats member in our library’s fulfilling that responsibility. whichever side we stood on in this election, let’s not forget to treat each other with respect and dignity. let’s use this as an opportunity to renew our commitment to diversity, one of the umb’s core values. inclusive excellence is one of the themes of the umb - strategic plan. each and every one of us has a contribution to make because we are stronger for our differences. we have much work ahead of us! i am out today, but expect lots of donuts monday. have a great weekend, bohyun   monday, i brought in donuts of many different kinds and told everyone they were ‘diversity donuts.’ try it. i believe it was successful in easing some stress and tension that was palpable in my team after the election. photo from flickr: https://www.flickr.com/photos/vnysia/ before crafting your own message, i recommend re-reading your institution’s core values, mission and vision statements, and the most recent strategic plan. most universities, colleges, and libraries include diversity, equity, inclusion, or something equivalent to these somewhere. also review all public statements or internal messages that came from your institution that reaffirms diversity, equity, and inclusion. you can easily incorporate those into your own message. make sure to clearly state your (and your institution’s) continued commitment to and unwavering support for diversity and inclusion and explicitly oppose bigotry, intolerance, harassment, and acts of violence. encourage civil discourse and mutual respect. it is very important to reaffirm the values of diversity, equity, and inclusion ‘before’ listing any resources and help that employees or students may seek in case of harassment or assault. without the assurance from the institution that it indeed upholds those values and will firmly stand by them, those resources and help mean little. below i have also listed messages, notes, and statements sent out by library directors, managers, librarians, and university presidents that reaffirm the full support for and commitment to diversity, equity, and inclusion. i hope to see more of these come out. if you have already received or sent out such a message, i invite you to share in the comments. if you have not, i suggest doing so as soon as possible. send out a message if you are in a position where doing so is appropriate. don’t forget to ask for a message addressing those values if you have not received any from your organization. director chris bourg to the mit libraries staff https://chrisbourg.wordpress.com/ / / /care-for-one-another/ dean k. g. schneider to the sonoma state university library staff http://freerangelibrarian.com/ / / /pin-and-a-prayer/ librarian zoe fisher to other librarians https://quickaskzoe.com/ / / /but-i-know-that-there-will-be-libraries/ university of california statement on presidential election results https://www.universityofcalifornia.edu/press-room/university-california-statement-election university of nevada, reno http://www.unr.edu/president/communications/ - - -election university of michigan http://president.umich.edu/news-communications/letters-to-the-community/ -election-message/ university of rochester and rochester institute of technology http://wxxinews.org/post/ur-presidents-post-election-letter-strikes-sour-note-some duke university https://today.duke.edu/ / /statement-president-brodhead-following- -election clarke university http://www.clarke.edu/page.aspx?id= mit https://news.mit.edu/ /letter-mit-community-new-administration-washington- northwestern university https://news.northwestern.edu/stories/ / /president-schapiro-on-the-election-and-the-university/ “post-election statements and messages that reaffirm diversity” (a list of more post-election statements and messages that reaffirm diversity)   posted in: diversity, librarianship, library, management. tagged: diversity · election · equity · inclusion · message · post-election · statement · template · tolerance say it out loud – diversity, equity, and inclusion nov th, by bohyun (library hat). comments are off for this post i usually and mostly talk about technology. but technology is so far away from my thought right now. i don’t feel that i can afford to worry about internet surveillance or how to protect privacy at this moment. not that they are unimportant. such a worry is real and deserves our attention and investigation. but at a time like this when there are so many reports of public incidences of hatred, bigotry, harassment, and violence reported on university and college campuses, on streets, and in many neighborhoods coming in at an alarming pace, i don’t find myself reflecting on how we can use technology to deal with this problem. for the problem is so much bigger. there are people drawing a swastika at a park. the ‘whites only’ and ‘colored’ signs were put up over water fountains in a florida school. a muslim student was threatened with a lighter. asian-american women are being assaulted. hostile acts targeting minority students are taking place on college campuses. a black female student was shoved off the sidewalk and called the ‘n’ word at baylor university. newt gingrich called for a house committee for un-american activities. the ku klux klan is openly holding a rally. the list goes on and on. photo from http://www.wftv.com/news/local/investigation-underway-after- -racist-signs-posted-above-water-fountains-at-first-coast-high-school/ we are justified to be freaking out. i suspect this is a deal breaker to not just democrats, not just clinton supporters, but a whole lot more people. not everyone who voted for donald trump endorse the position that women, people of color, muslims, lgbt, and all other minority groups deserve and should be deprived of the basic human right to be not publicly threatened, harassed, and assaulted, i hope. i am sure that many who voted for donald trump do support diversity, equity, and inclusion as important and non-negotiable values. i believe that many who voted for donald trump do not want a society where some of their family, friends, colleagues, and neighbors have to live in constant fear for their physical safety at minimum. there are very many white people who absolutely condemn bigotry, threat, hatred, discrimination, harassment, and violence directed at minorities and give their unwavering support to diversity, equity, and inclusion. the problem is that i don’t hear it said loudly enough, clearly enough, publicly enough. i realized that we – myself included – do not say this enough. one of my fellow librarians, steve, wrote this on his facebook wall after the election. i am a year old white guy. … i go out into the world today and i’m trying to hold a look on my face that says i don’t hate you black people, hispanic people, gay people, muslim people. i mean you no harm. i don’t want to deport you or imprison you. you are my brothers and sisters. i want for you all of the benefits, the rights, the joys (such as they are) that are afforded to everybody else in our society. i don’t think this look on my face is effective. why should they trust me? you can never appear to be doing the right thing. it requires doing the right thing. of course, steve doesn’t want to harm me because i am not white, i know. i am % positive that he wouldn’t assault me because i am female. but by stating this publicly (i mean as far as his fb friends can see the post), he made a difference to me. steve is not republican. but i would feel so much better if people i know tell me the same thing whether they are democrat or republican. and i think it will make a huge difference to others when we all say this together. sometimes, saying isn’t much. but right now, saying it aloud can mean everything. if you support those who belong to minority groups but don’t say it out loud, how would they know it? because right now, nothing is obvious other than there is a lot of hate and violence towards minorities. at this point, which candidate you voted for doesn’t matter. what matters is whether you will condone open hatred and violence towards minorities and women, thereby making it acceptable in our society. there is a lot at stake here, and this goes way beyond party politics. publicly confirming our continued support for and unwavering commitment to diversity is a big deal. people who are being insulted, threatened, harassed, and assaulted need to hear it. and when we say this together loudly enough, clearly enough, explicitly enough, it will deafen the voice of hatred, bigotry, and intolerance and chase it away to the margins of our society again. so i think i am going to say this whenever i have a chance whether formally or informally whether it is in a written form or in a conversation. if you are a librarian, you should say this to your library users. if you are a teacher, you should say this to your students. if you run a business, you need to say this to your employees and customers. if you manage a team at work, tell your team. say this out loud to your coworkers, friends, family, neighbors, and everyone you interact with. “i support all minorities and stand for diversity, equity, and inclusion.” “i object to and will not condone the acts of harassment, violence, hatred, and threats directed at minorities.” “i will not discriminate anyone based upon their ethnicity, race, sexual orientation, disability, political views, socio-economic backgrounds, or religious beliefs.” we cannot allow diversity, equity, and inclusion to become minority opinions. and it is up to us to keep it mainstream and to make it prevail. say it aloud and act on it. in times like this, many of us look to institutions that we belong to, the organizations we work for, professionally participate in, or personally support. we expect them to reconfirm the very basic values of diversity, equity, and inclusion. since i work for a university, i have been looking up and reading statements from higher education institutions. so far, not a great number of universities have made public statements confirming their continued support for diversity. i am sure more are on the way. but i expected more of them would come out more promptly. this is unfortunate because many of them openly expressed their support for diversity and even include diversity in their values, mission, and goals. if your organization hasn’t already confirmed their support for these values and expressed their commitment to provide safety for all minorities, ask for it. you may even be in a position to actually craft and issue one. for those in need of right words to express your intention clearly, here are some good examples below. “the university of california is proud of being a diverse and welcoming place for students, faculty, and staff with a wide range of backgrounds, experiences and perspectives.  diversity is central to our mission.  we remain absolutely committed to supporting all members of our community and adhering to uc’s principles against intolerance.  as the principles make clear, the university ‘strives to foster an environment in which all are included’ and ‘all are given an equal opportunity to learn and explore.’  the university of california will continue to pursue and protect these principles now and in the future, and urges our students, faculty, staff, and all others associated with the university to do so as well.” –  university of california “our responsibility is to remain committed to education, discovery and intellectual honesty – and to diversity, equity and inclusion. we are at our best when we come together to engage respectfully across our ideological differences; to support all who feel marginalized, threatened or unwelcome; and to pursue knowledge and understanding, as we always have, as the students, faculty and staff of the university of michigan.” – university of michigan “northwestern is committed to being a welcoming and inclusive community for all, regardless of their beliefs, and i assure you that will not change.” – northwestern university “as a catholic university, clarke will not step away from its many efforts to heighten our awareness of the individuals and groups who are exclude and marginalized in so many ways and to take action for their protection and inclusion.  today, i call on us as a community to step up our efforts to promote understanding and inclusion and to reach out to those among us who are feeling further disenfranchised, fearful and confused as a result of the election.” – clarke university “as president, i need to represent all of rit, and i therefore do not express preferences for political candidates. i do feel it important, however, to represent and reinforce rit’s shared commitment to the value of inclusive diversity. i have heard from many in our community that the result of the recent election has raised concerns from those in our minority populations, those who come from immigrant families, those from countries outside of the u.s., those in our lgbtqia+ community, those who practice islam, and even those in our female population about whether they should be concerned for their safety and well-being as a result of the horrific discourse that accompanied the presidential election process and some of the specific views and proposals presented. at rit, we have treasured the diverse contributions of members of these groups to our campus community, and i want to reassure all that one of rit’s highest priorities is to demonstrate the extraordinary value of inclusive diversity and that we will continue to respect, appreciate, and benefit from the contributions of all. anyone who feels unsafe here should make their feelings known to me and to others in a position to address their concerns. concerned members of our community can also take advantage of opportunities to engage in open discourse about the election in the mosaic center and at tomorrow’s grey matter discussion.” – rochester institute of technology please go ahead and say these out loud to people around you if you mean them.  no matter how obvious and cheesy they sound, i assure you, they are not obvious and cheesy to those who are facing open threats, harassment, and violence. let’s boost the signal; let’s make it loud; let’s make it overwhelming. “i support all minorities and stand for diversity, equity, and inclusion.” “i object to and will not condone the acts of harassment, violence, hatred, and threats directed at minorities.” “i will not discriminate anyone based upon their ethnicity, race, sexual orientation, disability, political views, socio-economic backgrounds, or religious beliefs.”   posted in: diversity. tagged: · election · hate crime · racism cybersecurity, usability, online privacy, and digital surveillance may th, by bohyun (library hat). comments are off for this post ** this post was originally published in acrl techconnect on may. , .*** cybersecurity is an interesting and important topic, one closely connected to those of online privacy and digital surveillance. many of us know that it is difficult to keep things private on the internet. the internet was invented to share things with others quickly, and it excels at that job. businesses that process transactions with customers and store the information online are responsible for keeping that information private. no one wants social security numbers, credit card information, medical history, or personal e-mails shared with the world. we expect and trust banks, online stores, and our doctor’s offices to keep our information safe and secure. however, keeping private information safe and secure is a challenging task. we have all heard of security breaches at j.p morgan, target, sony, anthem blue cross and blue shield, the office of personnel management of the u.s. federal government, university of maryland at college park, and indiana university. sometimes, a data breach takes place when an institution fails to patch a hole in its network systems. sometimes, people fall for a phishing scam, or a virus in a user’s computer infects the target system. other times, online companies compile customer data into personal profiles. the profiles are then sold to data brokers and on into the hands of malicious hackers and criminals. image from flickr – https://www.flickr.com/photos/topgold/ cybersecurity vs. usability to prevent such a data breach, institutional it staff are trained to protect their systems against vulnerabilities and intrusion attempts. employees and end users are educated to be careful about dealing with institutional or customers’ data. there are systematic measures that organizations can implement such as two-factor authentication, stringent password requirements, and locking accounts after a certain number of failed login attempts. while these measures strengthen an institution’s defense against cyberattacks, they may negatively affect the usability of the system, lowering users’ productivity. as a simple example, security measures like a captcha can cause an accessibility issue for people with disabilities. or imagine that a university it office concerned about the data security of cloud services starts requiring all faculty, students, and staff to only use cloud services that are soc type ii certified as an another example. soc stands for “service organization controls.” it consists of a series of standards that measure how well a given service organization keeps its information secure. for a business to be soc certified, it must demonstrate that it has sufficient policies and strategies that will satisfactorily protect its clients’ data in five areas known as “trust services principles.” those include the security of the service provider’s system, the processing integrity of this system, the availability of the system, the privacy of personal information that the service provider collects, retains, uses, discloses, and disposes of for its clients, and the confidentiality of the information that the service provider’s system processes or maintains for the clients. the soc type ii certification means that the business had maintained relevant security policies and procedures over a period of at least six months, and therefore it is a good indicator that the business will keep the clients’ sensitive data secure. the dropbox for business is soc certified, but it costs money. the free version is not as secure, but many faculty, students, and staff in academia use it frequently for collaboration. if a university it office simply bans people from using the free version of dropbox without offering an alternative that is as easy to use as dropbox, people will undoubtedly suffer. some of you may know that the usps website does not provide a way to reset the password for users who forgot their usernames. they are instead asked to create a new account. if they remember the account username but enter the wrong answers to the two security questions more than twice, the system also automatically locks their accounts for a certain period of time. again, users have to create a new account. clearly, the system that does not allow the password reset for those forgetful users is more secure than the one that does. however, in reality, this security measure creates a huge usability issue because average users do forget their passwords and the answers to the security questions that they set up themselves. it’s not hard to guess how frustrated people will be when they realize that they entered a wrong mailing address for mail forwarding and are now unable to get back into the system to correct because they cannot remember their passwords nor the answers to their security questions. to give an example related to libraries, a library may decide to block all international traffic to their licensed e-resources to prevent foreign hackers who have gotten hold of the username and password of a legitimate user from accessing those e-resources. this would certainly help libraries to avoid a potential breach of licensing terms in advance and spare them from having to shut down compromised user accounts one by one whenever those are found. however, this would make it impossible for legitimate users traveling outside of the country to access those e-resources as well, which many users would find it unacceptable. furthermore, malicious hackers would probably just use a proxy to make their ip address appear to be located in the u.s. anyway. what would users do if their organization requires them to reset passwords on a weekly basis for their work computers and several or more systems that they also use constantly for work? while this may strengthen the security of those systems, it’s easy to see that it will be a nightmare having to reset all those passwords every week and keeping track of them not to forget or mix them up. most likely, they will start using less complicated passwords or even begin to adopt just one password for all different services. some may even stick to the same password every time the system requires them to reset it unless the system automatically detects the previous password and prevents the users from continuing to use the same one. ill-thought-out cybersecurity measures can easily backfire. security is important, but users also want to be able to do their job without being bogged down by unwieldy cybersecurity measures. the more user-friendly and the simpler the cybersecurity guidelines are to follow, the more users will observe them, thereby making a network more secure. users who face cumbersome and complicated security measures may ignore or try to bypass them, increasing security risks. image from flickr – https://www.flickr.com/photos/topgold/ cybersecurity vs. privacy usability and productivity may be a small issue, however, compared to the risk of mass surveillance resulting from aggressive security measures. in , the guardian reported that the communication records of millions of people were being collected by the national security agency (nsa) in bulk, regardless of suspicion of wrongdoing. a secret court order prohibited verizon from disclosing the nsa’s information request. after a cyberattack against the university of california at los angeles, the university of california system installed a device that is capable of capturing, analyzing, and storing all network traffic to and from the campus for over days. this security monitoring was implemented secretly without consulting or notifying the faculty and those who would be subject to the monitoring. the san francisco chronicle reported the it staff who installed the system were given strict instructions not to reveal it was taking place. selected committee members on the campus were told to keep this information to themselves. the invasion of privacy and the lack of transparency in these network monitoring programs has caused great controversy. such wide and indiscriminate monitoring programs must have a very good justification and offer clear answers to vital questions such as what exactly will be collected, who will have access to the collected information, when and how the information will be used, what controls will be put in place to prevent the information from being used for unrelated purposes, and how the information will be disposed of. we have recently seen another case in which security concerns conflicted with people’s right to privacy. in february , the fbi requested apple to create a backdoor application that will bypass the current security measure in place in its ios. this was because the fbi wanted to unlock an iphone c recovered from one of the shooters in san bernadino shooting incident. apple ios secures users’ devices by permanently erasing all data when a wrong password is entered more than ten times if people choose to activate this option in the ios setting. the fbi’s request was met with strong opposition from apple and others. such a backdoor application can easily be exploited for illegal purposes by black hat hackers, for unjustified privacy infringement by other capable parties, and even for dictatorship by governments. apple refused to comply with the request, and the court hearing was to take place in march . the fbi, however, withdrew the request saying that it found a way to hack into the phone in question without apple’s help. now, apple has to figure out what the vulnerability in their ios if it wants its encryption mechanism to be foolproof. in the meanwhile, ios users know that their data is no longer as secure as they once thought. around the same time, the senate’s draft bill titled as “compliance with court orders act of ,” proposed that people should be required to comply with any authorized court order for data and that if that data is “unintelligible” – meaning encrypted – then it must be decrypted for the court. this bill is problematic because it practically nullifies the efficacy of any end-to-end encryption, which we use everyday from our iphones to messaging services like whatsapp and signal. because security is essential to privacy, it is ironic that certain cybersecurity measures are used to greatly invade privacy rather than protect it. because we do not always fully understand how the technology actually works or how it can be exploited for both good and bad purposes, we need to be careful about giving blank permission to any party to access, collect, and use our private data without clear understanding, oversight, and consent. as we share more and more information online, cyberattacks will only increase, and organizations and the government will struggle even more to balance privacy concerns with security issues. why libraries should advocate for online privacy? the fact that people may no longer have privacy on the web should concern libraries. historically, libraries have been strong advocates of intellectual freedom striving to keep patron’s data safe and protected from the unwanted eyes of the authorities. as librarians, we believe in people’s right to read, think, and speak freely and privately as long as such an act itself does not pose harm to others. the library freedom project is an example that reflects this belief held strongly within the library community. it educates librarians and their local communities about surveillance threats, privacy rights and law, and privacy-protecting technology tools to help safeguard digital freedom, and helped the kilton public library in lebanon, new hampshire, to become the first library to operate a tor exit relay, to provide anonymity for patrons while they browse the internet at the library. new technologies brought us the unprecedented convenience of collecting, storing, and sharing massive amount of sensitive data online. but the fact that such sensitive data can be easily exploited by falling into the wrong hands created also the unparalleled level of potential invasion of privacy. while the majority of librarians take a very strong stance in favor of intellectual freedom and against censorship, it is often hard to discern a correct stance on online privacy particularly when it is pitted against cybersecurity. some even argue that those who have nothing to hide do not need their privacy at all. however, privacy is not equivalent to hiding a wrongdoing. nor do people keep certain things secrets because those things are necessarily illegal or unethical. being watched / will drive any person crazy whether s/he is guilty of any wrongdoing or not. privacy allows us safe space to form our thoughts and consider our actions on our own without being subject to others’ eyes and judgments. even in the absence of actual massive surveillance, just the belief that one can be placed under surveillance at any moment is sufficient to trigger self-censorship and negatively affects one’s thoughts, ideas, creativity, imagination, choices, and actions, making people more conformist and compliant. this is further corroborated by the recent study from oxford university, which provides empirical evidence that the mere existence of a surveillance state breeds fear and conformity and stifles free expression. privacy is an essential part of being human, not some trivial condition that we can do without in the face of a greater concern. that’s why many people under political dictatorship continue to choose death over life under mass surveillance and censorship in their fight for freedom and privacy. the electronic frontier foundation states that privacy means respect for individuals’ autonomy, anonymous speech, and the right to free association. we want to live as autonomous human beings free to speak our minds and think on our own. if part of a library’s mission is to contribute to helping people to become such autonomous human beings through learning and sharing knowledge with one another without having to worry about being observed and/or censored, libraries should advocate for people’s privacy both online and offline as well as in all forms of communication technologies and devices. posted in: library, technology, usability, user experience, web. tagged: data security · digital freedom · encryption · internet · password · soc · tor three recent talks of mine on ux, data visualization, and it management apr th, by bohyun (library hat). comments are off for this post i have been swamped at work and pretty quiet here in my blog. but i gave a few talks recently. so i wanted to share those at least. i presented about how to turn the traditional library it department and its operation that is usually behind the scene into a more patron-facing unit at the recent american library association midwinter meeting back in january. this program was organized by the lita heads of it interest group. in march, i gave a short lightning talk at the code lib conference about the data visualization project of library data at my library. i was also invited to speak at the usmai (university system of maryland and affiliated institutions) ux unconference and gave a talk about user experience, personas, and the idea of applying library personas to library strategic planning. here are those three presentation slides for those interested! strategically ux oriented with personas from bohyun kim visualizing library data from bohyun kim turning the it dept. outward from bohyun kim posted in: ala, library, presentation, technology, usability, user experience. tagged: code lib · data visualization · it · management · ux near us and libraries, robots have arrived oct th, by bohyun (library hat). comments are off for this post ** this post was originally published in acrl techconnect on oct.  , .*** the movie, robot and frank, describes the future in which the elderly have a robot as their companion and also as a helper. the robot monitors various activities that relate to both mental and physical health and helps frank with various house chores. but frank also enjoys the robot’s company and goes on to enlist the robot into his adventure of breaking into a local library to steal a book and a greater heist later on. people’s lives in the movie are not particularly futuristic other than a robot in them. and even a robot may not be so futuristic to us much longer either. as a matter of fact, as of june , there is now a commercially available humanoid robot that is close to performing some of the functions that the robot in the movie ‘frank and robot’ does. pepper robot, image from aldebaran, https://www.aldebaran.com/en/a-robots/who-is-pepper a japanese company, softbank robotics corp. released a humanoid robot named ‘pepper’ to the market back in june. the pepper robot is feet tall, pounds, speaks languages and is equipped with an array of cameras, touch sensors, accelerometer, and other sensors in his “endocrine-type multi-layer neural network,” according to the cnn report.  the pepper robot was priced at ¥ , ($ , ). the pepper owners are also responsible for an additional ¥ , ($ ) monthly data and insurance fee. while the pepper robot is not exactly cheap, it is surprisingly affordable for a robot. this means that the robot industry has now matured to the point where it can introduce a robot that the mass can afford. robots come in varying capabilities and forms. some robots are as simple as a programmable cube block that can be combined with one another to be built into a working unit. for example, cubelets from modular robotics are modular robots that are used for educational purposes. each cube performs one specific function, such as flash, battery, temperature, brightness, rotation, etc. and one can combine these blocks together to build a robot that performs a certain function. for example, you can build a lighthouse robot by combining a battery block, a light-sensor block, a rotator block, and a flash block.   a variety of cubelets available from the modular robotics website.   by contrast, there are advanced robots such as those in the form of an animal developed by a robotics company, boston dynamics. some robots look like a human although much smaller than the pepper robot. nao is a -cm tall humanoid robot that moves, recognizes, hears and talks to people that was launched in . nao robots are an interactive educational toy that helps students to learn programming in a fun and practical way. noticing their relevance to stem education, some libraries are making robots available to library patrons. westport public library provides robot training classes for its two nao robots. chicago public library lends a number of finch robots that patrons can program to see how they work. in celebration of the national robotics week back in april, san diego public library hosted their first robot day educating the public about how robots have impacted the society. san diego public library also started a weekly robotics club inviting anyone to join in to help build or learn how to build a robot for the library. haslet public library offers the robotics camp program for th to th graders who want to learn how to build with lego mindstorms ev kits. school librarians are also starting robotics clubs. the robotics club at new rochelle high school in new york is run by the school’s librarian, ryan paulsen. paulsen’s robotics club started with faculty, parent, and other schools’ help along with a grant from nasa and participated in a first robotics competition. organizations such as the robotics academy at carnegie mellon university provides educational outreach and resources. image from aldebaran website at https://www.aldebaran.com/en/humanoid-robot/nao-robot there are also libraries that offer coding workshops often with arduino or raspberry pi, which are inexpensive computer hardware. ames free library offers raspberry pi workshops. san diego public library runs a monthly arduino enthusiast meetup.  arduinos and raspberry pis can be used to build digital devices and objects that can sense and interact the physical world, which are close to a simple robot. we may see  more robotics programs at those libraries in the near future. robots can fulfill many other functions than being educational interactive toys, however. for example, robots can be very useful in healthcare. a robot can be a patient’s emotional companion just like the pepper. or it can provide an easy way to communicate for a patient and her/his caregiver with physicians and others. a robot can be used at a hospital to move and deliver medication and other items and function as a telemedicine assistant. it can also provide physical assistance for a patient or a nurse and even be use for children’s therapy. humanoid robots like pepper may also serve at a reception desk at companies. and it is not difficult to imagine them as sales clerks at stores. robots can be useful at schools and other educational settings as well. at a workplace, teleworkers can use robots to achieve more active presence. for example, universities and colleges can offer a similar telepresence robot to online students who want to virtually experience and utilize the campus facilities or to faculty who wish to offer the office hours or collaborate with colleagues while they are away from the office. as a matter of fact, the university of texas, arlington, libraries recently acquired several telepresence robots to lend to their faculty and students. not all robots do or will have the humanoid form as the pepper robot does. but as robots become more and more capable, we will surely get to see more robots in our daily lives. references alpeyev, pavel, and takashi amano. “robots at work: softbank aims to bring pepper to stores.” bloomberg business, june , . http://www.bloomberg.com/news/articles/ - - /robots-at-work-softbank-aims-to-bring-pepper-to-stores. “boston dynamics.” accessed september , . http://www.bostondynamics.com/. boyer, katie. “robotics clubs at the library.” public libraries online, june , . http://publiclibrariesonline.org/ / /robotics-clubs-at-the-library/. “finch robots land at cpl altgeld.” chicago public library, may , . https://www.chipublib.org/news/finch-robots-land-at-cpl/. mcnickle, michelle. “ medical robots that could change healthcare – informationweek.” informationweek, december , . http://www.informationweek.com/mobile/ -medical-robots-that-could-change-healthcare/d/d-id/ . singh, angad. “‘pepper’ the emotional robot, sells out within a minute.” cnn.com, june , . http://www.cnn.com/ / / /tech/pepper-robot-sold-out/. tran, uyen. “sdpl labs: arduino aplenty.” the library incubator project, april , . http://www.libraryasincubatorproject.org/?p= . “ut arlington library to begin offering programming robots for checkout.” university of texas arlington, march , . https://www.uta.edu/news/releases/ / /library-robots- .php. waldman, loretta. “coming soon to the library: humanoid robots.” wall street journal, september , , sec. new york. http://www.wsj.com/articles/coming-soon-to-the-library-humanoid-robots- . posted in: library, technology. tagged: education · libraries · robotics · robots · stem ← earlier posts subscribe to our feed via rss search about libraryhat is a blog written by bohyun kim, cto & associate professor at the university of rhode island libraries (bohyun.kim.ois [at] gmail [dot] com; @bohyunkim). most popular - libraries meet the second machine age - future? libraries? what now? – after the ala summit on the future of libraries - query a google spreadsheet like a database with google visualization api query language - enabling the research ‘flow’ and serendipity in today’s digital library environment - research librarianship in crisis: mediate when, where, and how? - why not grow coders from the inside of libraries? - do you feel inadequate? for hard-working overachievers - redesigning the item record summary view in a library catalog and a discovery interface - fear no longer regular expressions - using git with bitbucket: basic commands – pull, add, commit, push - aaron swartz and too-comfortable research libraries - common misconceptions about library job search: what i have learned from the other side of the table - applying game dynamics to library services - how to make your writing less terrible - netflix and libraries: you are what “your users” think you are, not what you think you are archives july  ( ) december  ( ) october  ( ) may  ( ) november  ( ) may  ( ) april  ( ) october  ( ) september  ( ) july  ( ) march  ( ) february  ( ) september  ( ) june  ( ) may  ( ) march  ( ) december  ( ) november  ( ) october  ( ) september  ( ) july  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) march  ( ) february  ( ) january  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) april  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) tags acrl ala api change codeyear coding communication conference continuing education design election emerging technologies equity inclusion interview with brand-new librarians it javascript job job search jquery kindle libcodeyear librarian libraries library library day in the life lis lita makerspace management mls mobile new librarians post-mls presentation programming publication technology tips tweet-up twitter usability ux web © library hat | powered by wordpress a wordpress theme by ravi varma islandora islandora what's new what's new manez tue, / / - : body our website has been overhauled in a big way. we have moved to drupal , changed our look, and shifted content around to make it easier to find the islandora information and resources that you need. can't find something you expect from the old site? let us know and we'll get it fixed.     islandora open meeting: april , islandora open meeting: april , agriffith tue, / / - : body we are happy to announce the date of our next open meeting! join us on april ,  any time between : - : pm edt. the open meetings are drop-in style sessions where users of all levels and abilities gather to ask questions, share use cases and get updates on islandora. there will be experienced islandora users on hand to answer questions or give demos. we would love for your to join us any time during the -hour window, so feel free to pop by any time! more details about the open meeting, and the zoom link to join, are in this google doc.  registration is not required. if you would like a calendar invite as a reminder, please let us know at community@islandora.ca. upcoming dig sprint upcoming dig sprint agriffith thu, / / - : body the islandora documentation interest group is holding a sprint! to support the upcoming release of islandora, the dig has planned a -week documentation, writing-and-updating sprint to occur as part of the release process. to prepare for that effort, we’re going to spend april – th on an auditing sprint, where volunteers will review existing documentation and complete this spreadsheet, providing a solid overview of the current status of our docs so we know where to best deploy our efforts during the release. this sprint will run alongside the upcoming pre-release code sprint, so if you’re not up for coding, auditing docs is a great way to contribute during sprint season! we are looking for volunteers to sign up to take on two sprint roles: auditor: review a page of documentation and fill out a row in the spreadsheet indicating things like the current status (‘good enough’ or ‘needs work’) , the goal for that particular page (e.g., “explain how to create an object,” or “compare islandora concepts to islandora concepts”), and the intended audience (beginners, developers, etc.). reviewer: read through a page that has been audited and indicate if you agree with the auditor’s assessment, add additional notes or suggestions as needed; basically, give a second set of eyes on each page.  you can sign up for the sprint here, and sign up for individual pages here.   community announcement community announcement agriffith wed, / / - : body as you know, the islandora foundation has recently updated its governance structure to remain compliant with canadian non-profit regulations. islandora foundation members approved these changes at the annual general meeting in early march. a summary of these changes is provided here, as well as our emerging roadmap for moving forward. a newly formed “leadership group”, composed of representatives from our partner-level member organizations, replaces the pre-existing board of directors, and a smaller board of directors remains responsible for islandora’s administrative and fiscal responsibilities. this leadership group met for the first time on friday, march th to begin to discuss their goals going forward, and the ways the leadership group will interact with the other governance structures of the islandora community. the leadership group immediately affirmed their commitment to transparent communication and collaboration with the vibrant, robust islandora community and will be creating a terms of reference over the next month. the terms of reference will be written with agility and transformation in mind, as we work together to secure a strong future for both the community and codebase. in the meantime, please let us know if you have any questions regarding the formation of the leadership group, and stay tuned to hear more about the initial goals of this group. islandorans unite! it's release time islandorans unite! it's release time dlamb mon, / / - : body it's that time again everyone!  our amazing community contributors have made all sorts of improvements and upgrades to islandora.  some have been merged, but some are still hanging out, waiting for the love they need to make it into the code base.  we're calling on you - yes you! - to help us get things merged, tested, documented, and released to the world. i would like to kick off this release cycle with a sprint to mop up some the amazing improvements that have unmerged pull requests.  did you know that we have pull requests for an advanced search module and a basic batch ingest form just lounging around?  and that's not all.  there are all kinds of great improvements that just need some time and attention. a little code review and some basic testing by others are all that is needed before we freeze the code and start turning the crank on the release process. here's a rough timetable for the release: april - th: code sprint may rd: code freeze may rd - th: testing, bug fixing, responding to feedback may th - th: documentation sprint may st - june th: more testing, bug fixing, and responding to feedback june st - july nd: testing sprint release! this is, of course, an optimistic plan.  if major issues are discovered we will take the time to address them which can affect the timeline.  i also plan on liaising with the documentation interest group and folks from the users' call / open meetings for the documentation and testing sprints, and their availabilities may nudge things a week in either direction. an open and transparent release process is one of the hallmarks of our amazing community. if you or your organization have any interest in helping out, please feel free to reach out or sign up for any of the upcoming sprints.  there are plenty of opportunities to contribute regardless of your skill set or level of experience with islandora.  there's something for everyone! we'll make further announcements for the other sprints, but you can sign up for the code sprint now using our sign up sheet.  hope to see you there!   islandora open meeting: march , islandora open meeting: march , agriffith wed, / / - : body we will be holding our next open meeting on tuesday, march from : am to : pm eastern. full details, and the zoom link to join, are in this google doc. the meeting is drop-in and will be free form, with experienced islandora users on hand to answer questions or give demos on request. we would love for your to join us any time during the -hour window, so feel free to pop by any time. registration is not required. if you would like a calendar invite as a reminder, please let us know at community@islandora.ca. isle: now with islandora isle: now with islandora dlamb tue, / / - : body the islandora foundation is pleased to announce that isle for islandora has gone alpha and is now available! what is isle? isle (short for islandora enterprise), is "dockerized" islandora, and seeks to create community managed infrastructure, streamlining the installation and maintenance of an islandora repository.  with isle, the bulk of your repository's infrastructure is managed for you, and updates are as easy as pulling in new docker images.  system administrators are only responsible for maintaining and updating their drupal site, and can rely on isle to handle fedora, solr, the triplestore, and all the other services we use to run a digital repository. the project began as a mellon grant funded initiative by the islandora collaboration group back in for islandora . then in january , the icg, born digital, lyrasis, cwrc, and the islandora foundation got together and started working on a version for islandora .  this version would be a full community project, worked on in the open and residing in the islandora-devops github organization. what are the benefits of using isle? on top of being easier to install, run, and update, there are many awesome reasons to use isle for running islandora.  first and foremost: speed. simply put, isle is fast! installation time is simply the amount of time it takes to download the images from dockerhub.  for those who are building the images themselves, isle takes advantage of docker's buildkit feature for blazing fast builds.  a complete rebuild of the entire stack consistently takes less than ten minutes on my laptop.  and for small tweaks to the environment, builds often take seconds to make a change. compared to our ansible playbook, which usually takes around minutes for me, this is a significant boost to productivity when testing/deploying changes! because it's so quick, it lends itself well to automation using ci/cd tools like github actions and gitlab. the islandora foundation is "dogfooding" with isle, putting it at the center of its deployment strategy for future.islandora.ca and release testing. isle is also cross-platform. it is the first and only community supported way to run islandora on a windows machine. any windows computer with wsl can build and run isle.  isle also supports arm builds, and can be run on cheaper cloud resources, newer macs with m chips, and even (theoretically) raspberry pis. how can i get isle? docker images for islandora are automatically pushed to dockerhub and are available here. if you want to run them using docker-compose, you can use isle-dc to build yourself a sandbox or a local development environment.  upcoming sprint: metadata upcoming sprint: metadata dlamb wed, / / - : body our very own metadata interest group is running a sprint from march th to the th, and everyone's invited to participate.  we'll be auditing the default metadata fields that we ship with and comparing them to the excellent metadata profile the mig has worked so hard to create for us. the goal of the sprint is just to find out where the gaps are so we know the full scope of work needed to implement their recommendations.  if you can navigate the drupal fields ui (or just want to learn!), contributing is easy and would be super helpful to us. no programming required. and if you don't have an islandora instance to work on (or are having a hard time installing one), we're making a fresh sandbox just for the sprint. also, islandora foundation staff (a.k.a. me) and representatives from the mig will be on hand to help out and answer any questions you may have. you can sign up for the sprint here, and choose a metadata field to audit in this spreadsheet.  as always, commit to as much or as little as you like.  it only takes a couple minutes to check out a field and its settings to see if they line up with the recommendations. if we get enough folks to sign up, then many hands will make light work of this task! this is yet another sign of the strength of our awesome community.  an interest group is taking it upon themselves to run a sprint to help achieve their goals, and the islandora foundation couldn't be happier to help. if you're a member of an interest group and want help engaging the community to make your goals happen, please feel free to reach out on slack or email me (dlamb@islandora.ca). islandora open meeting: february , islandora open meeting: february , manez wed, / / - : body we will be holding another open drop-in session on tuesday, february from : am to : pm eastern. full details, and the zoom link to join, are in this google doc. the meeting is free form, with experienced islandora users on hand to answer questions or give demos on request. please drop in at any time during the four-hour window. registration is not required. if you would like a calendar invite as a reminder, please let us know at community@islandora.ca. islandora open meeting: january , islandora open meeting: january , manez thu, / / - : body we will be holding another open drop-in session on january th from : am to : pm eastern. full details, and the zoom link to join, are in this google doc. the meeting is free form, with experienced islandora users on hand to answer questions or give demos on request. please drop in at any time during the four-hour window. registration is not required. if you would like a calendar invite as a reminder, please let us know at community@islandora.ca. nick ruest search nick ruest home c.v. posts presentations publications projects visualizations music contact nick ruest associate librarian york university biography nick ruest is an associate librarian in the digital scholarship infrastructure department at york university, co-principal investigator of the andrew w. mellon foundation funded the archives unleashed project, co-principal investigator of the sshrc grant “a longitudinal analysis of the canadian world wide web as a historical resource, - ”, and co-principal investigator of the compute canada research platforms and portals web archives for longitudinal knowledge. at york university, he oversees the libraries’ preservation initiatives, along with creating and implementing systems that support the capture, description, delivery, and preservation of digital objects having significant content of enduring value. he was previously active in the islandora and fedora communities, serving as project director for the islandora claw project, member of the islandora foundation’s roadmap committee and board of directors, and contributed code to the project. he has also served as the release manager for islandora and fedora, the moderator for the ocul digital curation community, the president of the ontario library and technology association, and president of mcmaster university academic librarians’ association. interests web archives data analytics distributed systems information retrieval digital preservation education mlis, wayne state university bachelor of arts political science, minor in history, university of michigan-dearborn recent publications more publications fostering community engagement through datathon events: the archives unleashed experience samantha fritz, ian milligan, nick ruest, jimmy lin pdf from archive to analysis: accessing web archives at scale through a cloud-based interface nick ruest, samantha fritz, ryan deschamps, jimmy lin, ian milligan pdf building community at distance: a datathon during covid- samantha fritz, ian milligan, nick ruest, jimmy lin pdf project content-based exploration of archival images using neural networks tobi adewoye, xiao han, nick ruest, ian milligan, samantha fritz, jimmy lin pdf project video the archives unleashed project: technology, process, and community to improve scholarly access to web archives nick ruest, jimmy lin, ian milligan, samantha fritz pdf project video we could, but should we? ethical considerations for providing access to geocities and other historical digital collections jimmy lin, ian milligan, douglas w. oard, nick ruest, katie shilton pdf the archives unleashed project: technology, process, and community to improve scholarly access to web archives nick ruest, jimmy lin, ian milligan, samantha fritz pdf solr integration in the anserini information retrieval toolkit ryan clancy, toke eskildsen, nick ruest, jimmy lin pdf dataset project building community and tools for analyzing web archives through datathons ian milligan, nathalie casemajor, samantha fritz, jimmy lin, nick ruest, matthew s. weber, nicholas worby pdf project slides scalable content-based analysis of images in web archives with tensorflow and the archives unleashed toolkit hsiu-wei yang, linqing liu, ian milligan, nick ruest, jimmy lin pdf dataset project poster recent & upcoming talks more talks lowering the barrier to access: the archives unleashed cloud project jun , the web that was: archives, traces, reflections resaw slides project sustainability and research platforms: the archives unleashed cloud project jun , international internet preservation consortium web archiving conference slides see a little warclight: building an open-source web archive portal with project blacklight jun , international internet preservation consortium web archiving conference slides web archives analysis at scale with the archives unleashed cloud (with ian milligan) apr , cni spring membership meeting slides oh, i get by with a little help from my friends: interdisciplinary web archive collaboration. feb , workshop on quantitative analysis and the digital turn in historical studies slides make it walk! may , archives association of ontario slides hot tips to boost your interdisciplinary web archive collaboration! apr , lewis & ruth sherman centre for digital scholarship speak series slides the world is a beautiful and terrible place mar , national forum on ethics and archiving the web slides video boosting your interdisciplinary web archive collaboration feb , bc research libraries group lecture series slides twitter and web archive analysis at scale feb , data love-in : a day of data management planning and conversations slides recent posts more posts four fucking years of donald trump nearly four years ago i decided to start collecting tweets to donald trump out of morbid curiosity. if i was a real archivist, i would … jan , min read enhancing archives unleashed toolkit usability with spark-submit originally posted here. over the last month, we have put out several toolkit releases. the primary focus of the releases has been … may , min read cloud-hosted web archive data: the winding path to web archive collections as data originally posted here. web archives are hard to use, and while the past activities of archives unleashed has helped to lower these … feb , min read twut. wait, wut? twut? originally posted here. introduction a few of the archives unleashed team members have a pretty in-depth background of working with … dec , min read exploring #elxn twitter data introduction a few years ago library archives canada, ian milligan and i collected tweets from the nd canadian federal election. ian … nov , min read projects archives unleashed project archives unleashed aims to make petabytes of historical internet content accessible to scholars and others interested in researching the recent past. supported by a grant from the andrew w. mellon foundation, we will be developing web archive search and data analysis tools to enable scholars and librarians to access, share, and investigate recent history since the early days of the world wide web. web archives for historical research our research focuses on both web histories - writing about the recent past as reflected in web archives - as well as methodological approaches to understanding these repositories. islandora claw islandora claw is the next generation of islandora. fedora repository fedora is the flexible, modular, open source repository platform with native linked data support. visualizations , #elxn images dear donald; may - january . happy new year to everyone, including the haters and the fake news media! totally clears the president. thank you! , , audio cover images from the internet archive , , #womensmarch images a month of tweets at @realdonaldtrump islandora claw development , , #panamapapers images , #ymmfire images , #thehip, #hipinkingston images , , #elxn images , #makedonalddrumpfagain images #elxn wordclouds by day anon development visualization islandora .x- . development music unfavourable offerings sloppy a-sides, last of the worst strange delights the humans soundtrackpro unlimited the achievements the potions - regular release ep sloppy b-sides, first of the worst surnom de gorille the potions @ the lifton matterwave foci . audio wardrobe's jacuzzi contact ruestn@yorku.ca cc-by · powered by the academic theme for hugo. cite × copy download tutela – learning network vai al contenuto tutela learning network menu home network what we do contact   a space for critical thinking and horizontal learning  ci hanno accusato di voler dividere le famiglie, ma noi volevamo tutt’altro. abbiamo cercato di far capire che l’associazione si proponeva come un appoggio forte alle famiglie. anche per la mia famiglia è stato difficile far comprendere perché volevo questo tipo di organizzazione. ho dovuto tranquillizzarle/i che la mia intenzione non era dar vita ad una ribellione all’interno della comunità, ma aprire una strada diversa per appoggiare le donne rom. (anna várnai, ungheria) la sociedad tiene que educar a sus chicas y mujeres a pensar de manera independiente. en lugar de enfatizar tanto la virtud del sacrificio, tendría que animarlas para que se den prioridad. tendríamos que enseñarles que reclamar sus derechos es justo y normal. igualmente, la sociedad tendría que entender que es normal que las mujeres que viven en relaciones abusivas se sientan vulnerables y débiles. las chicas jóvenes y las mujeres deben saber que solo cuando cuidamos de nosotras mismas y nos valoramos, logramos encontrar nuestro verdadero ser y nuestra fuerza interior, para así aceptar quienes somos. (swati kamble) voices asociación la colectiva articoli recenti resonancias: primer encuentro marzo, common place: talking about co-housing and communities of sharing marzo, rassegna ‘this is not an altas’ febbraio, home network what we do contact blog su wordpress.com. none none inkdroid inkdroid paper or plastic coincidence? twarc this post was originally published on medium but i spent time writing it so i wanted to have it here too. tl;dr twarc has been redesigned from the ground up to work with the new twitter v api and their academic research track. many thanks for the code and design contributions of betsy alpert, igor brigadir, sam hames, jeff sauer, and daniel verdeer that have made twarc possible, as well as early feedback from dan kerchner, shane lin, miles mccain, 李荣蓬, david thiel, melanie walsh and laura wrubel. extra special thanks to the institute for future environments at queensland university of technology for supporting betsy and sam in their work, and for the continued support of the mellon foundation. back in august of last year twitter announced early access to their new v api, and their plans to sunset the v . api that has been active for almost the last years. over the lifetime of their v . api twitter has become deeply embedded in the media landscape. as magazines, newspapers and television have moved onto the web they have increasingly adopted tweets as a mechanism for citing politicians, celebrities and organizations, while also using them to document current events, generate leads and gather feedback for evolving stories. as a result twitter has also become a popular object of study for humanities and social science researchers looking to understand the world as reflected, refracted and distorted by/in social media. on the surface the v api update seems pretty insignificant since the shape of a tweet, its parts, properties and affordances, aren’t changing at all. tweets with characters of text, images and video will continue to be posted, retweeted and quoted. however behind the scenes the representation of a tweet as data, and the quotas that control the rates at which this data can flow between apps and other third party services will be greatly transformed. needless to say, v represents a big change for the documenting the now project. along with community members we’ve developed and maintained open source tools like twarc that talk directly to the twitter api to help users to search for and collect live tweets that match criteria like hashtags, names and geographic locations. today we’re excited to announce the release of twarc v which has been designed from the ground up to work with the v api and twitter’s new academic research track. clearly it’s extremely problematic having a multi-national corporation act as a gatekeeper for who counts as an academic researcher, and what constitutes academic research. we need look no further than the recent experiences of timnit gebru and margaret mitchell at google for an example of what happens when research questions run up against the business objectives of capital. we only know their stories because gebru and mitchell’s bravely took a principled approach, where many researchers would have knowingly or unknowingly shaped their research to better fit the needs of the company. so it is important for us that twarc still be usable by people with and without access to the academic research track. but we have heard from many users that the academic research track presents new opportunities for twitter data collection that are essential for researchers interested in the observability of social media platforms. twitter is making a good faith effort to work with the academic research community, and we thought twarc should support it, even if big challenges lie ahead. so why are people interested in the academic research track? once your application has been approved you are able to collect data from the full history of tweets, at no cost. this is a massive improvement over the v . access which was limited to a one week window and researchers had to pay for access. access to the full archive means it’s now possible to study events that have happened in the past back to the beginning of twitter in . if you do create any historical datasets we’d love for you to share the tweet identifier datasets in the catalog. however this opening up of access on the one hand comes with a simultaneous contraction in terms of how much data can be collected at one time. the remainder of this post describes some of the details and the design decisions we have made with twarc to address them. if you would prefer to watch a quick introduction to using twarc v please check out this short video: installation if you are familiar with installing twarc nothing is changed. you still install (or upgrade) with pip as you did before: $ pip install --upgrade twarc in fact you will still have full access to the v . api just as you did before. so the old commands will continue to work as they did $ twarc search blacklivesmatter > tweets.jsonl twarc was designed to let you to continue to use twitter’s v . api undisturbed until it is finally turned off by twitter, at which point the functionality will be removed from twarc. all the support for the v api is mediated by a new command line utility twarc . for example to search for blacklivesmatter tweets and write them to a file tweets.jsonl: $ twarc search blacklivesmatter > tweets.jsonl all the usual twarc functionality such as searching for tweets, collecting live tweets from the streaming api endpoint, requesting user timelines and user metadata are all still there, twarc --help gives you the details. but while the interface looks the same there’s quite a bit different going on behind the scenes. representation truth be told, there is no shortage of open source libraries and tools for interacting with the twitter api. in the past twarc has made a bit of a name for itself by catering to a niche group of users who want a reliable, programmable way to collect the canonical json representation of a tweet. javascript object notation (json) is the language of web apis, and twitter has kept its json representation of a tweet relatively stable over the years. rather than making lots of decisions about the many ways you might want to collect, model and analyze tweets twarc has tried to do one thing and do it well (data collection) and get out of the way so that you can use (or create) the tools for putting this data to use. but the json representation of a tweet in the twitter v api is completely burst apart. the v base representation of a tweet is extremely lean and minimal, and just includes the text of the tweet its identifier and a handful of other things. all the details about the user who created the tweet, embedded media, and more are not included. fortunately this information is still available, but the user needs to craft their api request to request tweets using a set of expansions that tell the twitter api what additional entities to include. in addition for each expansion there are a set of field options to include that control what of these expansions is returned. so rather than there being a single json representation of a tweet api users now have the ability to shape the data based on what they need, much like how graphql apis work. this kind of makes you wonder why twitter didn’t make their graphql api available. for specific use cases this customizability is very useful, but the mutability of the representation of a tweet presents challenges when collecting data for future use. if you didn’t request the right expansions or fields when collecting the data then you won’t be able to analyze that data later when doing your research. to solve for this twarc has been designed to collect the richest possible representation for a tweet, by requesting all possible expansions and field combinations for tweets. see the expansions module for the details if you are interested. this takes a significant burden off of users to digest the api documentation, and craft the correct api requests themselves. in addition the twarc community will be monitoring the twitter api documentation going forward to incorporate new expansions and fields as they will inevitably be added in the future. flattening this is diving into the weeds a little bit, but it’s worth noting here that twitter’s introduction of expansions allows data that was once duplicated across multiple tweets (such as user information, media, retweets, etc) to be included once per response from the api. this means that instead of seeing information about the user who created a tweet in the context of their tweet the user will be referenced using an identifier, and this identifier will map to user metadata in the outer envelope of the response. it makes sense why twitter have introduced expansions since it means in a set of tweets from a given user the user information will just be included once rather than repeated times, which means less data, less network traffic and less money. it’s even more significant when consider the large number of possible expansions. however this pass by-reference rather than by-value presents some challenges for stream based processing which expects each tweet to be self-contained. for this reason we’ve introduce the idea of flattening the response data when persisting the json to disk. this means that tools and data pipelines that expect to operate on a stream of tweets can continue to do so. since the representation of a tweet is so dependent on how data is requested we’ve taken the opportunity to introduce a small stanza of twarc specific metadata using the __twarc prefix. this metadata records what api endpoint the data was requested from, and when. this information is critically important when interpreting the data, because some information about a tweet like its retweet and quote counts are constantly changing. data flows as mentioned above you can still collect tweets from the search and streaming api endpoints in a way that seems quite similar to the v api. the big changes however are the quotas associated with these endpoints which govern how much can be collected. these quotas control how many requests can be sent to twitter in minute intervals. in fact these quotas are not much changed, but what’s new are app wide quotas that constrain how many tweets a given application (app) can collect every month. an app in this context is a piece of software (e.g. your twarc software) identified by unique api keys set up in the twitter developer portal. the standard api access sets a , tweet per month limit. this is a huge change considering there were no monthly app limits before. if you get approved for the academic research track your app quota is increased to million per month. this is markedly better but the achievable data volume is still nothing like the v . api, as these graphs attempt to illustrate: twarc will still observe the same rate limits, but once you’ve collected your portion for the month there’s not much that can be done, for that app at least. apart from the quotas twitter’s streaming endpoint in v is substantially changed which impacts how users interact with twarc. previously twarc users would be able to create up to to two connections to the filter stream api. this could be done by simply: twarc filter obama > obama.jsonl however in the twitter v api only apps can connect to the filter stream, and they can only connect once. at first this seems like a major limitation but rather than creating a connection per query the v api allows you to build a set of rules for tweets to match, which in turns controls what tweets are included in the stream. this means you can collect for multiple types of queries at the same time, and the tweets will come back with a piece of metadata indicating what rule caused its inclusion. this translates into a markedly different set of interactions at the command line for collecting from the stream where you first need to set your stream rules and then open a connection to fetch it. twarc stream-rules add blacklivesmatter twarc stream > tweets.jsonl one useful side effect of this is that you can update the stream (add and remove rules) while the stream is in motion: twarc stream-rules add blm while you are limited by the api quota in terms of how many tweets you can collect, tweets are not “dropped on the floor” when the volume gets too high. once upon a time the v . filter stream was rumored to be rate limited when your stream exceeds % of the total volume of new tweets. plugins in addition to twarc helping you collect tweets the github repository has also been a place to collect a set of utilities for working with the data. for example there are scripts for extracting and unshortening urls, identifying suspended/deleted content, extracting videos, buiding wordclouds, putting tweets on maps, displaying network graph visualizations, counting hashtags, and more. these utilities all work like unix filters where the input is a stream of tweets and the output varies depending on what the utility is doing, e.g. a gephi file for a network visualization, or a folder of mp files for video extraction. while this has worked well in general the kitchen sink approach has been difficult to manage from a configuration management perspective. users have to download these scripts manually from github or by cloning the repository. for some users this is fine, but it’s a bit of a barrier to entry for users who have just installed twarc with pip. furthermore these plugins often have their own dependencies which twarc itself does not. this lets twarc can stay pretty lean, and things like youtube_dl, networkx or pandas can be installed by people that want to use utilities that need them. but since there is no way to install the utilities there isn’t a way to ensure that the dependencies are installed, which can lead to users needing to diagnose missing libraries themselves. finally the plugins have typically lacked their own tests. twarc’s test suite has really helped us track changes to the twitter api and to make sure that it continues to operate properly as new functionality has been added. but nothing like this has existed for the utilities. we’ve noticed that over time some of them need updating. also their command line arguments have drifted over time which can lead to some inconsistencies in how they are used. so with twarc we’ve introduced the idea of plugins which extend the functionality of the twarc command, are distributed on pypi separately from twarc, and exist in their own github repositories where they can be developed and tested independently of twarc itself. this is all achieved through twarc ’s use of the click library and specifically click-plugins. so now if you would like to convert your collected tweets to csv you can install the twarc-csv: $ pip install twarc-csv $ twarc search covid > covid .jsonl $ twarc csv covid .jsonl > covid .csv or if you want to extract embedded and referenced videos from tweets you can install twarc-videos which will write all the videos to a directory: $ pip install twarc-videos $ twarc videos covid .jsonl --download-dir covid -videos you can write these plugins yourself and release them as needed. check out the plugin reference implementation tweet-ids for a simple example to adapt. we’re still in the process of porting some of the most useful utilities over and would love to see ideas for new plugins. check out the current list of twarc plugins and use the twarc issue tracker on github to join the discussion. you may notice from the list of plugins that twarc now (finally) has documentation on readthedocs external from the documentation that was previously only available on github. we got by with github’s rendering of markdown documents for a while, but github’s boilerplate designed for developers can prove to be quite confusing for users who aren’t used to selectively ignoring it. readthedocs allows us to manage the command line and api documentation for twarc, and to showcase the work that has gone into the spanish, japanese, portuguese, swedish, swahili and chinese translations. feedback thanks for reading this far! we hope you will give twarc a try. let us know what you think either in comments here, in the docnow slack or over on github. ✨ ✨ happy twarcing! ✨ ✨ ✨ windows users will want to indicate the output file using a second argument rather than redirecting output with >. see this page for details.↩ $ j you may have noticed that i try to use this static website as a journal. but, you know, not everything i want to write down is really ready (or appropriate) to put here. some of these things end up in actual physical notebooks–there’s no beating the tactile experience of writing on paper for some kind of thinking. but i also spend a lot of time on my laptop, and at the command line in some form or another. so i have a directory of time stamped markdown files stored on dropbox, for example: ... /home/ed/dropbox/journal/ - - .md /home/ed/dropbox/journal/ - - .md /home/ed/dropbox/journal/ - - .md /home/ed/dropbox/journal/ - - .md /home/ed/dropbox/journal/ - - .md ... sometimes these notes migrate into a blog post or some other writing i’m doing. i used this technique quite a bit when writing my dissertation when i wanted to jot down things on my phone when an idea arrived. i’ve tried a few different apps for editing markdown on my phone, but mostly settled on ia writer which mostly just gets out of the way. but when editing on my laptop i tend to use my favorite text editor vim with the vim-pencil plugin for making markdown fun and easy. if vim isn’t your thing and you use another text editor keep reading since this will work for you too. the only trick to this method of journaling is that i just need to open the right file. with command completion on the command line this isn’t so much of a chore. but it does take a moment to remember the date, and craft the right path. today while reflecting on how nice it is to still be using unix, it occurred to me that i could create a little shell script to open my journal for that day (or a previous day). so i put this little file j in my path: #!/bin/zsh journal_dir="/home/ed/dropbox/journal" if [ "$ " ]; then date=$ else date=`date +%y-%m-%d` fi vim "$journal_dir/$date.md" so now when i’m in the middle of something else and want to jot a note in my journal i just type j. unix, still crazy after all these years. strengths and weaknesses quoting macey ( ), quoting foucault, quoting nietzsche: one thing is needful. – to ‘give style’ to one’s character – a great and rare art! it is practised by those who survey all the strengths and weaknesses that their nature has to offer and then fit them into an artistic plan until each appears as art and reason and even weaknesses delight the eye. nietzsche, williams, nauckhoff, & del caro ( ), p.  this is a generous and lively image of what art does when it is working. art is not perfection. macey, d. ( ). the lives of michel foucault: a biography. verso. nietzsche, f. w., williams, b., nauckhoff, j., & del caro, a. ( ). the gay science: with a prelude in german rhymes and an appendix of songs. cambridge, u.k. ; new york: cambridge university press. data speculation i’ve taken the ill-advised approach of using the coronavirus as a topic to frame the exercises in my computer programming class this semester. i say “ill-advised” because given the impact that covid has been having on students i’ve been thinking they probably need a way to escape news of the virus by way of writing code, rather than diving into it more. it’s late in the semester to modulate things but i think we will shift gears to look at programming through another lens after spring break. that being said, one of the interesting things we’ve been doing is looking at vaccination data that is being released by the maryland department of health through their esri arcgis hub. note: this dataset has since been removed from the web because it has been superseded by a new dataset that includes single dose vaccinations. i guess it’s good that students get a feel for how ephemeral data on the web is, even when it is published by the government. we noticed that this dataset recorded a small number of vaccinations as happening as early as the s up until december , when vaccines were approved for use. i asked students to apply what we have been learning about python (files, strings, loops, and sets) to identify the maryland counties that were responsible for generating this anomalous data. i thought this exercise provided a good demonstration using real, live data that critical thinking about the provenance of data is always important because there is no such thing as raw data (gitelman, ). while we were working with the data to count the number of anomalous vaccinations per county one of my sharp eyed students noticed that the results we were seeing with my version of the dataset (downloaded on february ) were different from what we saw with his (downloaded on march ). we expected to see new rows in the later one because new vaccination data seem to be reported daily–which is cool in itself. but we were surprised to find new vaccination records for dates earlier than december , . why would new vaccinations for these erroneous older dates still be entering the system? for example the second dataset downloaded march acquired new rows: object id vaccination date county daily first dose cumulative first dose daily second dose cumulative second dose / / allegany / / baltimore / / baltimore / / baltimore city / / baltimore / / prince george’s and these rows present in the february version were deleted in the march version: object id vaccination date county daily first dose cumulative first dose daily second dose cumulative second dose / / frederick / / talbot / / baltimore / / caroline / / prince george’s / / anne arundel / / frederick / / wicomico / / frederick i found these additions perplexing at first, because i assumed these outliers were part of an initial load. but it appears that the anomalies are still being generated? the deletions suggest that perhaps the anomalous data is being identified and scrubbed in a live system that is then dumping out the data? or maybe the code that is being used to update the dataset in arcgis hub itself is malfunctioning in some way? if you are interested in toying around with the code and data it is up on github. i was interested to learn about pandas.dataframe.merge which is useful for diffing tables when you use indicator=true. at any rate, having students notice, measure and document anomalies like this seems pretty useful. i also asked them to speculate about what kinds of activities could generate these errors. i meant speculate in the speculative fiction sense of imagining a specific scenario that caused it. i think this made some students scratch their head a bit, because i wasn’t asking them for the cause, but to invent a possible cause. based on the results so far i’d like to incorporate more of these speculative exercises concerned with the functioning of code and data representations into my teaching. i want to encourage students to think creatively about data processing as they learn about the nuts and bolts of how code operates. for example the treatments in how to run a city like amazon, and other fables which use sci-fi to test ideas about how information technologies are deployed in society. another model is the speculative ethics book club which also uses sci-fi to explore the ethical and social consequences of technology. i feel like i need to read up on specualtive research more generally before doing this though (michael & wilkie, ). i’d also like to focus the speculation down at the level of the code or data processing, rather than at the macro super-system level. but that has its place too. another difference is that i was asking students to engage in speculation about the past rather than the future. how did the data end up this way? perhaps this is more of a genealogical approach, of winding things backwards, and tracing what is known. maybe it’s more mystery than sci-fi. the speculative element is important because (in this case) operations at the md dept of health, and their arcgis hub setup are mostly opaque to us. but even when access isn’t a problem these systems they can feel opaque, because rather than there being a dearth of information you are drowning in it. speculation is a useful abductive approach to hypothesis generation and, hopefully, understanding. update - - : over in the fediverse david benque recommended i take a look at matthew stanley’s chapter in (gitelman, ) “where is that moon, anyway? the problem of interpreting historical solar eclipse observations” for the connection to mystery. for the connection to peirce and abduction he also pointed to luciana parisi’s chapter “speculation: a method for the unattainable” in lury & wakeford ( ). definitely things to follow up on! references gitelman, l. (ed.). ( ). “raw data” is an oxymoron. mit press. lury, c., & wakeford, n. ( ). inventive methods: the happening of the social. routledge. michael, m., & wilkie, a. ( ). speculative research. in the palgrave encyclopedia of the possible (pp. – ). cham: springer international publishing. retrieved from https://doi.org/ . / - - - - _ - recovering foucault i’ve been enjoying reading david macey’s biography of michel foucault, that was republished in by verso. macey himself is an interesting figure, both a scholar and an activist who took leave from academia to do translation work and to write this biography and others of lacan and fanon. one thing that struck me as i’m nearing the end of macey’s book is the relationship between foucault and archives. i think foucault has become emblematic of a certain brand of literary analysis of “the archive” that is far removed from the research literature of archival studies, while using “the archive” as a metaphor (caswell, ). i’ve spent much of my life working in libraries and digital preservation, and now studying and teaching about them from the perspective of practice, so i am very sympathetic to this critique. it is perhaps ironic that the disconnect between these two bodies of research is a difference in discourse which foucault himself brought attention to. at any rate, the thing that has struck me while reading this biography is how much time foucault himself spent working in libraries and archives. here’s foucault in his own words talking about his thesis: in histoire de la folie à l’âge classique i wished to determine what could be known about mental illness in a given epoch … an object took shape for me: the knowledge invested in complex systems of institutions. and a method became imperative: rather than perusing … only the library of scientific books, it was necessary to consult a body of archives comprising decrees, rules hospital and prison registers, and acts of jurisprudence. it was in the arsenal or the archives nationales that i undertook the analysis of a knowledge whose visible body is neither scientific nor theoretical discourse, nor literature, but a daily and regulated practice. (macey, , p. ) foucault didn’t simply use archives for his research: understanding the processes and practices of archives were integral to his method. even though the theory and practice of libraries and archives are quite different given their different functions and materials, they are often lumped together as a convenience in the same buildings. macey blurs them a little bit, in sections like this where he talks about how important libraries were to foucault’s work: foucault required access to paris for a variety of reasons, not least because he was also teaching part-time at ens. the putative thesis he had begun at the fondation thiers – and which he now described to polin as being on the philosophy of psychology – meant that he had to work at the bibliothèque nationale and he had already become one of its habitues. for the next thirty years, henri labrouste’s great building in the rue de richelieu, with its elegant pillars and arches of cast iron, would be his primary place of work. his favourite seat was in the hemicycle, the small, raised section directly opposite the entrance, sheltered from the main reading room, where a central aisle separates rows of long tables subdivided into individual reading desks. the hemicycle affords slighty more quiet and privacy. for thirty years, foucault pursued his research here almost daily, with occasional forays to the manuscript department and to other libraries, and contended with the byzantine cataloguing system: two incomplete and dated printed catalogues supplemented by cabinets containing countless index cards, many of them inscribed with copperplate handwriting. libraries were to become foucault’s natural habitat: ‘those greenish institutions where books accumulate and where there grows the dense vegetation of their knowledge’ there’s a metaphor for you: libraries as vegetation :) it kind of reminds me of some recent work looking at decentralized web technologies in terms of mushrooms. but i digress. i really just wanted to note here that the erasure of archival studies from humanities research about “the archive” shouldn’t really be attributed to foucault, whose own practice centered the work of libraries and archives. foucault wasn’t just writing about an abstract archive, he was practically living out of them. as someone who has worked in libraries and archives i can appreciate how power users (pun intended) often knew aspects of the holdings and intricacies of their their management better than i did. archives, when they are working, are always collaborative endeavours, and the important thing is to recognize and attribute the various sides of that collaboration. ps. writing this blog post led me to dig up a few things i want to read (eliassen, ; radford, radford, & lingel, ). references caswell, m. ( ). the archive is not an archives: on acknowledging the intellectual contributions of archival studies. reconstruction, ( ). retrieved from http://reconstruction.eserver.org/issues/ /caswell.shtml eliassen, k. ( ). archives of michel foucualt. in e. røssaak (ed.), the archive in motion, new conceptions of the archive in contemporary thought and new media practices. novus press. macey, d. ( ). the lives of michel foucault: a biography. verso. radford, g. p., radford, m. l., & lingel, j. ( ). the library as heterotopia: michel foucault and the experience of library space. journal of documentation, ( ), – . teaching oop in the time of covid i’ve been teaching a section of the introduction to object oriented programming at the umd college for information studies this semester. it’s difficult for me, and for the students, because we are remote due to the coronavirus pandemic. the class is largely asynchronous, but every week i’ve been holding two synchronous live coding sessions in zoom to discuss the material and the exercises. these have been fun because the students are sharp, and haven’t been shy about sharing their screen and their vscode session to work on the details. but students need quite a bit of self-discipline to move through the material, and probably only about / of the students take advantage of these live sessions. i’m quite lucky because i’m working with a set of lectures, slides and exercises that have been developed over the past couple of years by other instructors: josh westgard, aric bills and gabriel cruz. you can see some of the public facing materials here. having this backdrop of content combined with severance’s excellent (and free) python for everybody has allowed me to focus more on my live sessions, on responsive grading, and to also spend some time crafting additional exercises that are geared to this particular moment. this class is in the college for information studies and not in the computer science department, so it’s important for the students to not only learn how to use a programming language, but to understand programming as a social activity, with real political and material effects in the world. being able to read, understand, critique and talk about code and its documentation is just as important as being able to write it. in practice, out in the “real world” of open source software i think these aspects are arguably more important. one way i’ve been trying to do this in the first few weeks of class is to craft a sequence of exercises that form a narrative around coronavirus testing and data collection to help remind the students of the basics of programming: variables, expressions, conditionals, loops, functions, files. in the first exercise we imagined a very simple data entry program that needed to record results of real-time polymerase chain reaction tests (rt-pcr). i gave them the program and described how it was supposed to work, and asked them describe (in english) any problems that they noticed and to submit a version of the program with problems fixed. i also asked them to reflect on a request from their boss about adding the collection of race, gender and income information. the goal here was to test their ability to read the program and write english about it while also demonstrating a facility for modifying the program. most importantly i wanted them to think about how inputs such as race or gender have questions about categories and standards behind them, and weren’t simply a matter of syntax. the second exercise builds on the first by asking them to adjust the revised program to be able to save the data in a very particular format. yes, in the first exercise the data is stored in memory and printed to the screen in aggregate at the end. the scenario here is that the department of health and human services has assumed the responsibility for covid test data collection from the centers for disease control. of course this really happened, but the data format i chose was completely made up (maybe we will be working with some real data at the end of the semester if i continue with this theme). the goal in this exercise was to demonstrate their ability to read another program and fit a function into it. the students were given a working program that had a save_results() function stubbed out. in addition to submitting their revised code i asked them to reflect on some limitations of the data format chosen, and the data processing pipeline that it was a part of. and in the third exercise i asked them to imagine that this lab they were working in had a scientist who discovered a problem with some of the thresholds for acceptable testing, which required an update to the program from exercise , and also a test suite to make sure the program was behaving properly. in addition to writing the tests i asked them to reflect on what functionality was not being tested that probably should be. this alternation between writing code and writing prose is something i started doing as part of a digital curation class. i don’t know if this dialogical or perhaps dialectical, approach is something others have tried. i should probably do some research to see. in my last class i alternated week by week: one week reading and writing code, the next week reading and writing prose. but this semester i’ve stayed focused on code, but required the reading and writing of code as well as prose about code in the same week. i hope to write more about how this goes, and these exercises as i go. i’m not sure if i will continue with the coronavirus data examples. one thing i’m sensitive to is that my students themselves are experiencing the effects of the coronavirus, and may want to escape it just for a bit in their school work. just writing in the open about it here, in addition to the weekly meetings i’ve had with aric, josh and gabriel has been very useful. speaking of those meetings. i learned today from aric that tomorrow (february th, ) is the th anniversary of python’s first public release! you can see this reflected in this timeline. this v . . release was the first release guido van rossum made outside of cwi and was made on the usenet newsgroup alt.sources where it is split out into chunks that need to be reassembled. back in andrew dalke located a and repackaged these sources in google groups which acquired alt.sources as part of dejanews in . but if you look at the time stamp on the first part of the release you can see that it was made february , (not february ). so i’m not sure if the birthday is actually today. i sent this little note out to my students with this wonderful two part oral history that the computer history museum did with guido van rossum a couple years ago. i turns out both of his parents were atheists and pacifists. his dad went to jail because he refused to be conscripted into the military. that and many more details of his background and thoughts about the evolution of python can be found in these delightful interviews: happy birthday python! gpt- jam one of the joys of pandemic academic life has been a true feast of online events to attend, on a wide variety of topics, some of which are delightfully narrow and esoteric. case in point was today’s reflecting on power and ai: the case of gpt- which lived up to its title. i’ll try to keep an eye out for when the video posts, and update here. the workshop was largely organized around an exploration of whether gpt- , the largest known machine learning language model, changes anything for media studies theory, or if it amounts to just more of the same. so the discussion wasn’t focused so much on what games could be played with gpt- , but rather if gpt- changes the rules of the game for media theory, at all. i’m not sure there was a conclusive answer at the end, but it sounded like the consensus was that current theorization around media is adequate for understanding gpt- , but it matters greatly what theory or theories are deployed. the online discussion after the presentations indicated that attendees didn’t see this as merely a theoretical issue, but one that has direct social and political impacts on our lives. james steinhoff looked at gpt- using a marxist media theory perspective where he told the story of gpt- ’s as a project of openai and as a project of capital. openai started with much fanfare in as a non-profit initiative where the technology, algorithms and models developed would would be kept openly licensed and freely available so that the world could understand the benefits and risks of ai technology. steinhoff described how in the project’s needs for capital (compute power and staff) transitioned it from a non-profit into a capped-profit company, which is now owned, or at least controlled, by microsoft. the code for generating the model as well as the model itself are gated behind a token driven web api run my microsoft. you can get on a waiting list to use it, but apparently a lot of people have been waiting a while, so … being a microsoft employee probably helps. i grabbed a screenshot of the pricing page that steinhoff shared during his presentation: i’d be interested to hear more about how these tokens operate. are they per-request, or are they measured according something else? i googled around a bit during the presentation to try to find some documentation for the web api, and came up empty handed. i did find shreya shankar’s gpt -sandbox project for interacting with the api in your browser (mostly for iteratively crafting text input in order to generate desired output). it depends on the openai python package created by openai themselves. the docs for openai then point at a page on the openai.com website which is behind a login. you can create an account, but you need to be pre-approved (made it through the waitlist) to be able to see the docs. there’s probably some sense that can be made from examining the python client though. all of the presentations in some form or another touched on the billion parameters that were used to generate the model. but the api to the model doesn’t have that many parameters. it allows you to enter text and get text back. but the api surface that the gpt- service provides could be interesting to examine a bit more closely, especially to track how it changes over time. in terms of how this model mediates knowledge and understanding it’ll be important watch. steinhoff’s message seemed to be that, despite the best of intentions, gpt- functions in the service of very large corporations with very particular interests. one dimension that he didn’t explore perhaps because of time, is how the gpt- model itself is fed massive amounts of content from the web, or the commons. indeed % of the data came from the commoncrawl project. gpt- is an example of an extraction project that has been underway at large internet companies for some time. i think the critique of these corporations has often been confined to seeing them in terms of surveillance capitalism rather than in terms of raw resource extraction, or the primitive accumulation of capital. the behavioral indicators of who clicked on what are certainly valuable, but gpt- and sister projects like commoncrawl shows just the accumulation of data with modest amounts of metadata can be extremely valuable. this discussion really hit home for me since i’ve been working with jess ogden and shawn walker using commoncrawl as a dataset for talking about the use of web archives, while also reflecting on the use of web archives as data. commoncrawl provides a unique glimpse into some of the data operations that are at work in the accumulation of web archives. i worry that the window is closing and the commoncrawl itself will be absorbed into microsoft. following steinhoff olya kudina and bas de boer jointly presented some compelling thoughts about how its important to understand gpt- in terms of sociotechnical theory, using ideas drawn from foucault and arendt. i actually want to watch their presentation again because it followed a very specific path that i can’t do justice to here. but their main argument seemed to be that gpt- is an expression of power and that where there is power there is always resistance to power. gpt- can and will be subverted and used to achieve particular political ends of our own choosing. because of my own dissertation research i’m partial to foucault’s idea of governmentality, especially as it relates to ideas of legibility (scott, )–the who, what and why of legibility projects, aka archives. gpt- presents some interesting challenges in terms of legibility because the model is so complex, the results it generates defy deductive logic and auditing. in some ways gpt- obscures more than it makes a population legible, as foucault moved from disciplinary analysis of the subject, to the ways in which populations are described and governed through the practices of pastoral power, of open datasets. again the significance of commoncrawl as an archival project, as a web legibility project, jumps to the fore. i’m not as up on arendt as i should be, so one outcome of their presentation is that i’m going to read her the human condition which they had in a slide. i’m long overdue. references scott, j. c. ( ). seeing like a state: how certain schemes to improve the human condition have failed. yale university press. mimetypes today i learned that python has a mimetypes module, and has ever since guido von rossum added it in . honestly i’m just a bit sheepish to admit this discovery, as someone who has been using python for digital preservation work for about years. but maybe there’s a good reason for that. since the entire version history for python is available on github (which is a beautiful thing in itself) you can see that the mimetypes module started as a guess_type() function built around a pretty simple hard coded mapping of file extensions to mimetypes. the module also includes a little bit of code to look for, and parse, mimetype registries that might be available on the host operating system. the initial mimetype registries used included one from the venerable apache httpd web server, and the netscape web browser, which was about three years old at the time. it makes sense why this function to look up a mimetype for a filename would be useful at that time, since python was being used to serve up files on the nascent web and for sending email, and whatnot. today the module looks much the same, but has a few new functions and about twice as many mimetypes in its internal list. some of the new mimetypes include text/csv, audio.mpeg, application/vnd.ms-powerpoint, application/x-shockwave-flash, application/xml, and application/json. comparing the first commit to the most latest provides a thumbnail sketch of years of web format evolution. i’ll admit, this is is a bit of an esoteric thing to be writing a blog post about. so i should explain. at work i’ve been helping out on a community archiving project which has accumulated a significant amount of photographs, scans, documents of various kinds, audio files and videos. some of these files are embedded in web applications like omeka, some are in cloud storage like google drive, or on the office networked attached storage, and others are on scattered storage devices in people’s desk drawers and closets. we’ve also created new files during community digitization events, and oral history interviews. as part of this work we’ve wanted to start building a place on the web where all these materials live. this has required not only describing the files, but also putting all the files in one place so that access can be provided. in principle this sounds simple. but it turns out that collecting the files from all these diverse locations poses significant challenges, because their context matters. the filenames, and the directories they are found in, are sometimes the only descriptive metadata that exists for this data. in short, the original order matters. but putting this content on the web means that the files need to be brought together and connected with their metadata programmatically. this is how i stumbled across the mimetypes module. i’ve been writing some throwaway code to collect the files together into the same directory structure while preserving their original filenames and locations in an airtable database. i’ve been using the magic module to identify the format of the file, which is used to copy the file into a dropbox storage location. the extension is important because we are expecting this to be a static site serving up the content and we want the files to also be browsable using the dropbox drive. it turns out the mimetypes.guess_extension is pretty useful for turning a mediatype into an file extension. i’m kind of surprised that it took me this long to discover mimetypes, but i’m glad i did. as an aside i think this highlights for me how important git can be as an archive and research method for software studies work. northwest branch cairn here is a short recording and a couple photos from my morning walk along the northwest branch trail with penny. i can’t go every day but at months old she has tons of energy, so it’s generally a good idea for all concerned to go at least every other morning. and it’s a good thing, because the walk is surprisingly peaceful, and it’s such a joy to see her run through the woods. after walking about minutes there is this little cairn that is a reminder for me to turn around. after seeing it grow in size i was sad to see it knocked down one day. but, ever so slowly, it is getting built back up again. none none simple mail transfer protocol - wikipedia simple mail transfer protocol from wikipedia, the free encyclopedia jump to navigation jump to search internet protocol used for relaying e-mails "smtp" redirects here. for the email delivery company, see smtp (company). for short message transfer protocol, see gsm . . internet protocol suite application layer bgp dhcp dns ftp http https imap ldap mgcp mqtt nntp ntp pop ptp onc/rpc rtp rtsp rip sip smtp snmp ssh telnet tls/ssl xmpp more... transport layer tcp udp dccp sctp rsvp more... internet layer ip ipv ipv icmp icmpv ecn igmp ipsec more... link layer arp ndp ospf tunnels l tp ppp mac ethernet wi-fi dsl isdn fddi more... v t e the simple mail transfer protocol (smtp) is an internet standard communication protocol for electronic mail transmission. mail servers and other message transfer agents use smtp to send and receive mail messages. user-level email clients typically use smtp only for sending messages to a mail server for relaying, and typically submit outgoing email to the mail server on port or per rfc  . for retrieving messages, imap and pop are standard, but proprietary servers also often implement proprietary protocols, e.g., exchange activesync. since smtp's introduction in , it was updated, modified and extended multiple times. the protocol version in common use today has extensible structure with various extensions for authentication, encryption, binary data transfer, internationalized email addresses. smtp servers commonly use the transmission control protocol on port number (for plaintext) and (for encrypted communications). contents history . predecessors to smtp . original smtp . modern smtp mail processing model protocol overview . smtp vs mail retrieval . remote message queue starting outgoing mail smtp server . outgoing mail server access restrictions . . restricting access by location . . client authentication . ports smtp transport example smtp extensions . extension discovery mechanism . binary data transfer . mail delivery mechanism extensions . on-demand mail relay . internationalization extension . extensions . . bitmime . . smtp-auth . . smtputf . security extensions . . starttls or "opportunistic tls" . . smtp mta strict transport security . . smtp tls reporting spoofing and spamming implementations related requests for comments see also notes references external links history[edit] predecessors to smtp[edit] various forms of one-to-one electronic messaging were used in the s. users communicated using systems developed for specific mainframe computers. as more computers were interconnected, especially in the u.s. government's arpanet, standards were developed to permit exchange of messages between different operating systems. smtp grew out of these standards developed during the s. smtp traces its roots to two implementations described in : the mail box protocol, whose implementation has been disputed,[ ] but is discussed in rfc  and other rfcs, and the sndmsg program, which, according to rfc  , ray tomlinson of bbn invented for tenex computers to send mail messages across the arpanet.[ ][ ][ ] fewer than hosts were connected to the arpanet at this time.[ ] further implementations include ftp mail[ ] and mail protocol, both from .[ ] development work continued throughout the s, until the arpanet transitioned into the modern internet around . original smtp[edit] in , jon postel published rfc  which proposed the mail transfer protocol as a replacement of the use of the file transfer protocol (ftp) for mail. rfc  of may removed all references to ftp and allocated port for tcp and udp.[citation needed], an allocation that has since been removed by iana). in november , postel published rfc  "simple mail transfer protocol". the smtp standard was developed around the same time as usenet, a one-to-many communication network with some similarities.[citation needed] smtp became widely used in the early s. at the time, it was a complement to the unix to unix copy program (uucp), which was better suited for handling email transfers between machines that were intermittently connected. smtp, on the other hand, works best when both the sending and receiving machines are connected to the network all the time. both used a store and forward mechanism and are examples of push technology. though usenet's newsgroups were still propagated with uucp between servers,[ ] uucp as a mail transport has virtually disappeared[ ] along with the "bang paths" it used as message routing headers.[ ] sendmail, released with . cbsd in , soon after rfc  was published in november , was one of the first mail transfer agents to implement smtp.[ ] over time, as bsd unix became the most popular operating system on the internet, sendmail became the most common mta (mail transfer agent).[ ] the original smtp protocol supported only unauthenticated unencrypted -bit ascii text communications, susceptible to trivial man-in-the-middle attack, spoofing, and spamming, and requiring any binary data to be encoded to readable text before transmission. due to absence of proper authentication mechanism, by design every smtp server was an open mail relay. the internet mail consortium (imc) reported that % of mail servers were open relays in ,[ ] but less than % in .[ ] because of spam concerns most email providers blocklist open relays,[ ] making original smtp essentially impractical for general use on the internet. modern smtp[edit] in november , rfc  defined extended simple mail transfer protocol (esmtp), which established a general structure for all existing and future extensions which aimed to add-in the features missing from the original smtp. esmtp defines consistent and manageable means by which esmtp clients and servers can be identified and servers can indicate supported extensions. message submission ( rfc  ) and smtp-auth ( rfc  ) were introduced in and , both describing new trends in email delivery. originally, smtp servers were typically internal to an organization, receiving mail for the organization from the outside, and relaying messages from the organization to the outside. but as time went on, smtp servers (mail transfer agents), in practice, were expanding their roles to become message submission agents for mail user agents, some of which were now relaying mail from the outside of an organization. (e.g. a company executive wishes to send email while on a trip using the corporate smtp server.) this issue, a consequence of the rapid expansion and popularity of the world wide web, meant that smtp had to include specific rules and methods for relaying mail and authenticating users to prevent abuses such as relaying of unsolicited email (spam). work on message submission ( rfc  ) was originally started because popular mail servers would often rewrite mail in an attempt to fix problems in it, for example, adding a domain name to an unqualified address. this behavior is helpful when the message being fixed is an initial submission, but dangerous and harmful when the message originated elsewhere and is being relayed. cleanly separating mail into submission and relay was seen as a way to permit and encourage rewriting submissions while prohibiting rewriting relay. as spam became more prevalent, it was also seen as a way to provide authorization for mail being sent out from an organization, as well as traceability. this separation of relay and submission quickly became a foundation for modern email security practices. as this protocol started out purely ascii text-based, it did not deal well with binary files, or characters in many non-english languages. standards such as multipurpose internet mail extensions (mime) were developed to encode binary files for transfer through smtp. mail transfer agents (mtas) developed after sendmail also tended to be implemented -bit-clean, so that the alternate "just send eight" strategy could be used to transmit arbitrary text data (in any -bit ascii-like character encoding) via smtp. mojibake was still a problem due to differing character set mappings between vendors, although the email addresses themselves still allowed only ascii. -bit-clean mtas today tend to support the bitmime extension, permitting some binary files to be transmitted almost as easily as plain text (limits on line length and permitted octet values still apply, so that mime encoding is needed for most non-text data and some text formats). in , the smtputf extension was created to support utf- text, allowing international content and addresses in non-latin scripts like cyrillic or chinese. many people contributed to the core smtp specifications, among them jon postel, eric allman, dave crocker, ned freed, randall gellens, john klensin, and keith moore. mail processing model[edit] blue arrows depict implementation of smtp variations email is submitted by a mail client (mail user agent, mua) to a mail server (mail submission agent, msa) using smtp on tcp port . most mailbox providers still allow submission on traditional port . the msa delivers the mail to its mail transfer agent (mail transfer agent, mta). often, these two agents are instances of the same software launched with different options on the same machine. local processing can be done either on a single machine, or split among multiple machines; mail agent processes on one machine can share files, but if processing is on multiple machines, they transfer messages between each other using smtp, where each machine is configured to use the next machine as a smart host. each process is an mta (an smtp server) in its own right. the boundary mta uses dns to look up the mx (mail exchanger) record for the recipient's domain (the part of the email address on the right of @). the mx record contains the name of the target mta. based on the target host and other factors, the sending mta selects a recipient server and connects to it to complete the mail exchange. message transfer can occur in a single connection between two mtas, or in a series of hops through intermediary systems. a receiving smtp server may be the ultimate destination, an intermediate "relay" (that is, it stores and forwards the message) or a "gateway" (that is, it may forward the message using some protocol other than smtp). per rfc  section . , each hop is a formal handoff of responsibility for the message, whereby the receiving server must either deliver the message or properly report the failure to do so. once the final hop accepts the incoming message, it hands it to a mail delivery agent (mda) for local delivery. an mda saves messages in the relevant mailbox format. as with sending, this reception can be done using one or multiple computers, but in the diagram above the mda is depicted as one box near the mail exchanger box. an mda may deliver messages directly to storage, or forward them over a network using smtp or other protocol such as local mail transfer protocol (lmtp), a derivative of smtp designed for this purpose. once delivered to the local mail server, the mail is stored for batch retrieval by authenticated mail clients (muas). mail is retrieved by end-user applications, called email clients, using internet message access protocol (imap), a protocol that both facilitates access to mail and manages stored mail, or the post office protocol (pop) which typically uses the traditional mbox mail file format or a proprietary system such as microsoft exchange/outlook or lotus notes/domino. webmail clients may use either method, but the retrieval protocol is often not a formal standard. smtp defines message transport, not the message content. thus, it defines the mail envelope and its parameters, such as the envelope sender, but not the header (except trace information) nor the body of the message itself. std and rfc  define smtp (the envelope), while std and rfc  define the message (header and body), formally referred to as the internet message format. protocol overview[edit] smtp is a connection-oriented, text-based protocol in which a mail sender communicates with a mail receiver by issuing command strings and supplying necessary data over a reliable ordered data stream channel, typically a transmission control protocol (tcp) connection. an smtp session consists of commands originated by an smtp client (the initiating agent, sender, or transmitter) and corresponding responses from the smtp server (the listening agent, or receiver) so that the session is opened, and session parameters are exchanged. a session may include zero or more smtp transactions. an smtp transaction consists of three command/reply sequences: mail command, to establish the return address, also called return-path,[ ] reverse-path,[ ] bounce address, mfrom, or envelope sender. rcpt command, to establish a recipient of the message. this command can be issued multiple times, one for each recipient. these addresses are also part of the envelope. data to signal the beginning of the message text; the content of the message, as opposed to its envelope. it consists of a message header and a message body separated by an empty line. data is actually a group of commands, and the server replies twice: once to the data command itself, to acknowledge that it is ready to receive the text, and the second time after the end-of-data sequence, to either accept or reject the entire message. besides the intermediate reply for data, each server's reply can be either positive ( xx reply codes) or negative. negative replies can be permanent ( xx codes) or transient ( xx codes). a reject is a permanent failure and the client should send a bounce message to the server it received it from. a drop is a positive response followed by message discard rather than delivery. the initiating host, the smtp client, can be either an end-user's email client, functionally identified as a mail user agent (mua), or a relay server's mail transfer agent (mta), that is an smtp server acting as an smtp client, in the relevant session, in order to relay mail. fully capable smtp servers maintain queues of messages for retrying message transmissions that resulted in transient failures. a mua knows the outgoing mail smtp server from its configuration. a relay server typically determines which server to connect to by looking up the mx (mail exchange) dns resource record for each recipient's domain name. if no mx record is found, a conformant relaying server (not all are) instead looks up the a record. relay servers can also be configured to use a smart host. a relay server initiates a tcp connection to the server on the "well-known port" for smtp: port , or for connecting to an msa, port . the main difference between an mta and an msa is that connecting to an msa requires smtp authentication. smtp vs mail retrieval[edit] smtp is a delivery protocol only. in normal use, mail is "pushed" to a destination mail server (or next-hop mail server) as it arrives. mail is routed based on the destination server, not the individual user(s) to which it is addressed. other protocols, such as the post office protocol (pop) and the internet message access protocol (imap) are specifically designed for use by individual users retrieving messages and managing mail boxes. to permit an intermittently-connected mail server to pull messages from a remote server on demand, smtp has a feature to initiate mail queue processing on a remote server (see remote message queue starting below). pop and imap are unsuitable protocols for relaying mail by intermittently-connected machines; they are designed to operate after final delivery, when information critical to the correct operation of mail relay (the "mail envelope") has been removed. remote message queue starting[edit] remote message queue starting enables a remote host to start processing of the mail queue on a server so it may receive messages destined to it by sending a corresponding command. the original turn command was deemed insecure and was extended in rfc  with the etrn command which operates more securely using an authentication method based on domain name system information.[ ] outgoing mail smtp server[edit] an email client needs to know the ip address of its initial smtp server and this has to be given as part of its configuration (usually given as a dns name). this server will deliver outgoing messages on behalf of the user. outgoing mail server access restrictions[edit] server administrators need to impose some control on which clients can use the server. this enables them to deal with abuse, for example spam. two solutions have been in common use: in the past, many systems imposed usage restrictions by the location of the client, only permitting usage by clients whose ip address is one that the server administrators control. usage from any other client ip address is disallowed. modern smtp servers typically offer an alternative system that requires authentication of clients by credentials before allowing access. restricting access by location[edit] under this system, an isp's smtp server will not allow access by users who are outside the isp's network. more precisely, the server may only allow access to users with an ip address provided by the isp, which is equivalent to requiring that they are connected to the internet using that same isp. a mobile user may often be on a network other than that of their normal isp, and will then find that sending email fails because the configured smtp server choice is no longer accessible. this system has several variations. for example, an organisation's smtp server may only provide service to users on the same network, enforcing this by firewalling to block access by users on the wider internet. or the server may perform range checks on the client's ip address. these methods were typically used by corporations and institutions such as universities which provided an smtp server for outbound mail only for use internally within the organisation. however, most of these bodies now use client authentication methods, as described below. where a user is mobile, and may use different isps to connect to the internet, this kind of usage restriction is onerous, and altering the configured outbound email smtp server address is impractical. it is highly desirable to be able to use email client configuration information that does not need to change. client authentication[edit] modern smtp servers typically require authentication of clients by credentials before allowing access, rather than restricting access by location as described earlier. this more flexible system is friendly to mobile users and allows them to have a fixed choice of configured outbound smtp server. smtp authentication, often abbreviated smtp auth, is an extension of the smtp in order to log in using an authentication mechanism. ports[edit] communication between mail servers generally uses the standard tcp port designated for smtp. mail clients however generally don't use this, instead using specific "submission" ports. mail services generally accept email submission from clients on one of: (submission), as formalized in rfc  (previously rfc  ) this port was deprecated after rfc  , until the issue of rfc  . port and others may be used by some individual providers, but have never been officially supported. many internet service providers now block all outgoing port traffic from their customers. mainly as an anti-spam measure,[ ] but also to cure for the higher cost they have when leaving it open, perhaps by charging more from the few customers that requires it open. smtp transport example[edit] a typical example of sending a message via smtp to two mailboxes (alice and theboss) located in the same mail domain (example.com or localhost.com) is reproduced in the following session exchange. (in this example, the conversation parts are prefixed with s: and c:, for server and client, respectively; these labels are not part of the exchange.) after the message sender (smtp client) establishes a reliable communications channel to the message receiver (smtp server), the session is opened with a greeting by the server, usually containing its fully qualified domain name (fqdn), in this case smtp.example.com. the client initiates its dialog by responding with a helo command identifying itself in the command's parameter with its fqdn (or an address literal if none is available).[ ] s: smtp.example.com esmtp postfix c: helo relay.example.com s: smtp.example.com, i am glad to meet you c: mail from: s: ok c: rcpt to: s: ok c: rcpt to: s: ok c: data s: end data with . c: from: "bob example" c: to: alice example c: cc: theboss@example.com c: date: tue, jan : : - c: subject: test message c: c: hello alice. c: this is a test message with header fields and lines in the message body. c: your friend, c: bob c: . s: ok: queued as c: quit s: bye {the server closes the connection} the client notifies the receiver of the originating email address of the message in a mail from command. this is also the return or bounce address in case the message cannot be delivered. in this example the email message is sent to two mailboxes on the same smtp server: one for each recipient listed in the to and cc header fields. the corresponding smtp command is rcpt to. each successful reception and execution of a command is acknowledged by the server with a result code and response message (e.g., ok). the transmission of the body of the mail message is initiated with a data command after which it is transmitted verbatim line by line and is terminated with an end-of-data sequence. this sequence consists of a new-line (), a single full stop (period), followed by another new-line. since a message body can contain a line with just a period as part of the text, the client sends two periods every time a line starts with a period; correspondingly, the server replaces every sequence of two periods at the beginning of a line with a single one. such escaping method is called dot-stuffing. the server's positive reply to the end-of-data, as exemplified, implies that the server has taken the responsibility of delivering the message. a message can be doubled if there is a communication failure at this time, e.g. due to a power shortage: until the sender has received that reply, it must assume the message was not delivered. on the other hand, after the receiver has decided to accept the message, it must assume the message has been delivered to it. thus, during this time span, both agents have active copies of the message that they will try to deliver.[ ] the probability that a communication failure occurs exactly at this step is directly proportional to the amount of filtering that the server performs on the message body, most often for anti-spam purposes. the limiting timeout is specified to be minutes.[ ] the quit command ends the session. if the email has other recipients located elsewhere, the client would quit and connect to an appropriate smtp server for subsequent recipients after the current destination(s) had been queued. the information that the client sends in the helo and mail from commands are added (not seen in example code) as additional header fields to the message by the receiving server. it adds a received and return-path header field, respectively. some clients are implemented to close the connection after the message is accepted ( ok: queued as ), so the last two lines may actually be omitted. this causes an error on the server when trying to send the reply. smtp extensions[edit] extension discovery mechanism[edit] clients learn a server's supported options by using the ehlo greeting, as exemplified below, instead of the original helo. clients fall back to helo only if the server does not support ehlo greeting.[ ] modern clients may use the esmtp extension keyword size to query the server for the maximum message size that will be accepted. older clients and servers may try to transfer excessively sized messages that will be rejected after consuming network resources, including connect time to network links that is paid by the minute.[ ] users can manually determine in advance the maximum size accepted by esmtp servers. the client replaces the helo command with the ehlo command. s: smtp .example.com esmtp postfix c: ehlo bob.example.com s: -smtp .example.com hello bob.example.org [ . . . ] s: -size s: -pipelining s: help thus smtp .example.com declares that it can accept a fixed maximum message size no larger than , , octets ( -bit bytes). in the simplest case, an esmtp server declares a maximum size immediately after receiving an ehlo. according to rfc  , however, the numeric parameter to the size extension in the ehlo response is optional. clients may instead, when issuing a mail from command, include a numeric estimate of the size of the message they are transferring, so that the server can refuse receipt of overly-large messages. binary data transfer[edit] original smtp supports only a single body of ascii text, therefore any binary data needs to be encoded as text into that body of the message before transfer, and then decoded by the recipient. binary-to-text encodings, such as uuencode and binhex were typically used. the bitmime command was developed to address this. it was standardized in as rfc  [ ] it facilitates the transparent exchange of e-mail messages containing octets outside the seven-bit ascii character set by encoding them as mime content parts, typically encoded with base . mail delivery mechanism extensions[edit] on-demand mail relay[edit] main article: on-demand mail relay on-demand mail relay (odmr) is an smtp extension standardized in rfc  that allows an intermittently-connected smtp server to receive email queued for it when it is connected. internationalization extension[edit] main article: international email original smtp supports email addresses composed of ascii characters only, which is inconvenient for users whose native script is not latin based, or who use diacritic not in the ascii character set. this limitation was alleviated via extensions enabling utf- in address names. rfc  introduced experimental[ ] utf smtp command and later was superseded by rfc  that introduced smtputf command. these extensions provide support for multi-byte and non-ascii characters in email addresses, such as those with diacritics and other language characters such as greek and chinese.[ ] current support is limited, but there is strong interest in broad adoption of rfc  and the related rfcs in countries like china that have a large user base where latin (ascii) is a foreign script. extensions[edit] like smtp, esmtp is a protocol used to transport internet mail. it is used as both an inter-server transport protocol and (with restricted behavior enforced) a mail submission protocol. the main identification feature for esmtp clients is to open a transmission with the command ehlo (extended hello), rather than helo (hello, the original rfc  standard). a server will respond with success (code ), failure (code ) or error (code , , , , or ), depending on its configuration. an esmtp server returns the code ok in a multi-line reply with its domain and a list of keywords to indicate supported extensions. a rfc compliant server returns error code , allowing esmtp clients to try either helo or quit. each service extension is defined in an approved format in subsequent rfcs and registered with the internet assigned numbers authority (iana). the first definitions were the rfc optional services: send, soml (send or mail), saml (send and mail), expn, help, and turn. the format of additional smtp verbs was set and for new parameters in mail and rcpt. some relatively common keywords (not all of them corresponding to commands) used today are: bitmime – bit data transmission, rfc  atrn – authenticated turn for on-demand mail relay, rfc  auth – authenticated smtp, rfc  chunking – chunking, rfc  dsn – delivery status notification, rfc  (see variable envelope return path) etrn – extended version of remote message queue starting command turn, rfc  help – supply helpful information, rfc  pipelining – command pipelining, rfc  size – message size declaration, rfc  starttls – transport layer security, rfc  ( ) smtputf  – allow utf- encoding in mailbox names and header fields, rfc  utf smtp – allow utf- encoding in mailbox names and header fields, rfc  (deprecated[ ]) the esmtp format was restated in rfc  (superseding rfc ) and updated to the latest definition in rfc  in . support for the ehlo command in servers became mandatory, and helo designated a required fallback. non-standard, unregistered, service extensions can be used by bilateral agreement, these services are indicated by an ehlo message keyword starting with "x", and with any additional parameters or verbs similarly marked. smtp commands are case-insensitive. they are presented here in capitalized form for emphasis only. an smtp server that requires a specific capitalization method is a violation of the standard.[citation needed] bitmime[edit] at least the following servers advertise the bitmime extension: apache james (since . . a )[ ] citadel (since . ) courier mail server gmail[ ] icewarp iis smtp service kerio connect lotus domino microsoft exchange server (as of exchange server ) novell groupwise opensmtpd oracle communications messaging server postfix sendmail (since . ) the following servers can be configured to advertise bitmime, but do not perform conversion of -bit data to -bit when connecting to non- bitmime relays: exim and qmail do not translate eight-bit messages to seven-bit when making an attempt to relay -bit data to non- bitmime peers, as is required by the rfc.[ ] this does not cause problems in practice, since virtually all modern mail relays are -bit clean.[ ] microsoft exchange server advertises bitmime by default, but relaying to a non- bitmime peer results in a bounce. this is allowed by rfc section . smtp-auth[edit] main article: smtp authentication the smtp-auth extension provides an access control mechanism. it consists of an authentication step through which the client effectively logs into the mail server during the process of sending mail. servers that support smtp-auth can usually be configured to require clients to use this extension, ensuring the true identity of the sender is known. the smtp-auth extension is defined in rfc  . smtp-auth can be used to allow legitimate users to relay mail while denying relay service to unauthorized users, such as spammers. it does not necessarily guarantee the authenticity of either the smtp envelope sender or the rfc  "from:" header. for example, spoofing, in which one sender masquerades as someone else, is still possible with smtp-auth unless the server is configured to limit message from-addresses to addresses this authed user is authorized for. the smtp-auth extension also allows one mail server to indicate to another that the sender has been authenticated when relaying mail. in general this requires the recipient server to trust the sending server, meaning that this aspect of smtp-auth is rarely used on the internet.[citation needed] smtputf [edit] supporting servers include: postfix (version . and later)[ ] momentum (versions . [ ] and . . , and later) sendmail (under development) exim (experimental as of the . release) communigate pro as of version . . [ ] courier-mta as of version . [ ] halon as of version . [ ] microsoft exchange server as of protocol revision . [ ] haraka and other servers.[ ] oracle communications messaging server as of release . . .[ ] security extensions[edit] mail delivery can occur both over plain text and encrypted connections, however the communicating parties might not know in advance of other party's ability to use secure channel. starttls or "opportunistic tls"[edit] main articles: opportunistic tls and email encryption the starttls extensions enables supporting smtp servers to notify connecting clients that it supports tls encrypted communication and offers the opportunity for clients to upgrade their connection by sending the starttls command. servers supporting the extension do not inherently gain any security benefits from its implementation on its own, as upgrading to a tls encrypted session is dependent on the connecting client deciding to exercise this option, hence the term opportunistic tls. starttls is effective only against passive observation attacks, since the starttls negotiation happens in plain text and an active attacker can trivially remove starttls commands. this type of man-in-the-middle attack is sometimes referred to as striptls, where the encryption negotiation information sent from one end never reaches the other. in this scenario both parties take the invalid or unexpected responses as indication that the other does not properly support starttls, defaulting to traditional plain-text mail transfer.[ ] note that starttls is also defined for imap and pop in other rfcs, but these protocols serve different purposes: smtp is used for communication between message transfer agents, while imap and pop are for end clients and message transfer agents. electronic frontier foundation maintains a "starttls everywhere" list that similarly to "https everywhere" list allows relying parties to discover others supporting secure communication without prior communication.[ ] rfc  officially declared plain text obsolete and recommend always using tls, adding ports with implicit tls. smtp mta strict transport security[edit] a newer rfc  called "smtp mta strict transport security (mta-sts)" aims to address the problem of active adversary by defining a protocol for mail servers to declare their ability to use secure channels in specific files on the server and specific dns txt records. the relying party would regularly check existence of such record, and cache it for the amount of time specified in the record and never communicate over insecure channels until record expires.[ ] note that mta-sts records apply only to smtp traffic between mail servers while communications between end client and the mail server are protected by https, http strict transport security. in april google mail announced support for mta-sts.[ ] smtp tls reporting[edit] a number of protocols allows secure delivery of messages, but they can fail due to misconfigurations or deliberate active interference, leading to undelivered messages or delivery over unencrypted or unauthenticated channels. rfc  "smtp tls reporting" describes a reporting mechanism and format for sharing statistics and specific information about potential failures with recipient domains. recipient domains can then use this information to both detect potential attacks and diagnose unintentional misconfigurations. in april google mail announced support for smtp tls reporting.[ ] spoofing and spamming[edit] main articles: anti-spam techniques and email authentication the original design of smtp had no facility to authenticate senders, or check that servers were authorized to send on their behalf, with the result that email spoofing is possible, and commonly used in email spam and phishing. occasional proposals are made to modify smtp extensively or replace it completely. one example of this is internet mail , but neither it, nor any other has made much headway in the face of the network effect of the huge installed base of classic smtp. instead, mail servers now use a range of techniques, such as stricter enforcement of standards such as rfc  ,[ ][ ] domainkeys identified mail, sender policy framework and dmarc, dnsbls and greylisting to reject or quarantine suspicious emails.[ ] implementations[edit] there is also smtp proxy implementation as for example nginx.[ ] main articles: list of mail server software and comparison of mail servers related requests for comments[edit] rfc  – requirements for internet hosts—application and support (std ) rfc  – smtp service extension for message size declaration (оbsoletes: rfc  ) rfc  – anti-spam recommendations for smtp mtas (bcp ) rfc  – simple mail transfer protocol rfc  – smtp service extension for command pipelining (std ) rfc  – smtp service extensions for transmission of large and binary mime messages rfc  – smtp service extension for secure smtp over transport layer security (obsoletes rfc  ) rfc  – smtp service extension for delivery status notifications (obsoletes rfc  ) rfc  – enhanced status codes for smtp (obsoletes rfc  , updated by rfc  ) rfc  – an extensible message format for delivery status notifications (obsoletes rfc  ) rfc  – message disposition notification (updates rfc  ) rfc  – recommendations for automatic responses to electronic mail rfc  – smtp operational experience in mixed ipv /v environments rfc  – overview and framework for internationalized email (updated by rfc  ) rfc  – smtp service extension for authentication (obsoletes rfc  , updates rfc  , updated by rfc  ) rfc  – email submission operations: access and accountability requirements (bcp ) rfc  – a registry for smtp enhanced mail system status codes (bcp ) (updates rfc  ) rfc  – the simple mail transfer protocol (obsoletes rfc  aka std , rfc  , rfc  , rfc  , updates rfc  ) rfc  – internet message format (obsoletes rfc  aka std , and rfc  ) rfc  – downgrading mechanism for email address internationalization rfc  – message submission for mail (std ) (obsoletes rfc  , rfc  ) rfc  – the multipart/report content type for the reporting of mail system administrative messages (obsoletes rfc  , and in turn rfc  ) rfc  – smtp extension for internationalized email addresses (updates rfc  , rfc  , rfc  , and rfc  ) rfc  – cleartext considered obsolete: use of transport layer security (tls) for email submission and access see also[edit] bounce address cram-md (a sasl mechanism for esmtpa) rfc  email email encryption dkim ident list of mail server software list of smtp server return codes pop before smtp / smtp after pop internet message access protocol binary content extension rfc  sender policy framework (spf) simple authentication and security layer (sasl) rfc  smtp authentication variable envelope return path comparison of email clients for information about smtp support notes[edit] ^ the history of electronic mail, tom van vleck: "it is not clear this protocol was ever implemented" ^ the first network email, ray tomlinson, bbn ^ picture of "the first email computer" by dan murphy, a pdp- ^ dan murphy's tenex and tops- papers archived november , , at the wayback machine ^ rfc  ^ rfc  – network mail meeting summary ^ rfc  – a proposed mail protocol ^ tldp.org ^ draft-barber-uucp-project-conclusion- – the conclusion of the uucp mapping project ^ the article about sender rewriting contains technical background info about the early smtp history and source routing before rfc  . ^ eric allman ( ), sendmail – an internetwork mail router (pdf), bsd unix documentation set, berkeley: university of california, retrieved june , ^ craig partridge ( ), the technical development of internet email (pdf), ieee annals of the history of computing, , ieee computer society, pp.  – , doi: . /mahc. . , s cid  , archived from the original (pdf) on may , ^ paul hoffman (february , ). "allowing relaying in smtp: a survey". internet mail consortium. retrieved may , . cs maint: discouraged parameter (link) ^ paul hoffman (august ). "allowing relaying in smtp: a series of surveys". internet mail consortium. archived from the original on january , . retrieved may , . cs maint: discouraged parameter (link) ^ "in unix, what is an open mail relay? - knowledge base". web.archive.org. june , . retrieved march , . ^ "the mail, rcpt, and data verbs", [d. j. bernstein] ^ rfc  section- . ^ systems, message. "message systems introduces latest version of momentum with new api-driven capabilities". www.prnewswire.com. retrieved july , . ^ cara garretson ( ). "isps pitch in to stop spam". pc world. retrieved january , . last month, the anti-spam technical alliance, formed last year by yahoo, america online, earthlink, and microsoft, issued a list of antispam recommendations that includes filtering port . ^ rfc  , simple mail transfer protocol, j. klensin, the internet society (october ) ^ rfc  ^ rfc #section- . . . . ^ john klensin; ned freed; marshall t. rose; einar a. stefferud; dave crocker (november ). smtp service extensions. ietf. doi: . /rfc . rfc . ^ "mail parameters". iana. retrieved april , . ^ which was obsoleted in by rfc  corresponding to the then new std ^ "mail parameters". november , . ^ jiankang yao (december , ). "chinese email address". eai (mailing list). ietf. retrieved may , . ^ "smtp service extension parameters". iana. retrieved november , . ^ james server - changelog. james.apache.org. retrieved on - - . ^ bitmime service advertised in response to ehlo on gmail-smtp-in.l.google.com port , checked november ^ qmail bugs and wishlist. home.pages.de. retrieved on - - . ^ the bitmime extension. cr.yp.to. retrieved on - - . ^ "postfix smtputf support is enabled by default", february , , postfix.org ^ "message systems introduces latest version of momentum with new api-driven capabilities" (press release). ^ "version . revision history". communigate.com. ^ sam varshavchik (september , ). "new releases of courier packages". courier-announce (mailing list). ^ changelog ^ "ms-oxsmtp: simple mail transfer protocol (smtp) extensions". july , . ^ "eai readiness in tlds" (pdf). february , . ^ "communications messaging server release notes". oracle.com. october . ^ a b "introducing mta strict transport security (mta-sts) | hardenize blog". www.hardenize.com. retrieved april , . ^ "starttls everywhere". eff. retrieved august , . ^ a b cimpanu, catalin. "gmail becomes first major email provider to support mta-sts and tls reporting". zdnet. retrieved april , . ^ message non compliant with rfc ^ message could not be delivered. please ensure the message is rfc compliant. ^ why are the emails sent to microsoft account rejected for policy reasons? ^ "nginx docs | configuring nginx as a mail proxy server". references[edit] hughes, l ( ). internet e-mail: protocols, standards and implementation. artech house publishers. isbn  - - - - . hunt, c ( ). sendmail cookbook. o'reilly media. isbn  - - - - . johnson, k ( ). internet email protocols: a developer's guide. addison-wesley professional. isbn  - - - - . loshin, p ( ). essential email standards: rfcs and protocols made practical. john wiley & sons. isbn  - - - - . rhoton, j ( ). programmer's guide to internet mail: smtp, pop, imap, and ldap. elsevier. isbn  - - - - . wood, d ( ). programming internet mail. o'reilly. isbn  - - - - . external links[edit] iana registry of mail parameters includes service extension keywords rfc  smtp service extensions rfc  simple mail transfer protocol rfc  smtp service extension for authentication (obsoletes rfc  ) rfc  smtp and lmtp transmission types registration (with esmtpa) rfc  message submission for mail (obsoletes rfc  , which obsoletes rfc  ) v t e email clients free software current alpine balsa citadel/ux claws mail cleancode email cone evolution fetchmail fdm geary getmail gnumail gnus gnuzilla imp kmail mahogany mailpile mailx mailx (heirloom project) modest mozilla thunderbird mulberry mutt nmh / mh offlineimap roundcube seamonkey squirrelmail sylpheed trojitá yam zimbra discontinued arachne beonex communicator blitzmail classilla columbia mm elm fossamail hula mailody mozilla mail & newsgroups nylas n spicebird proprietary freeware em client emailtray foxmail i.scribe mailbird opera mail spark spike touchmail retail hiri bloomba/wordperfect mail newton ibm notes inscribe apple mail mail (windows) microsoft outlook novell groupwise airmail postbox shareware becky! forté agent gyazmail the bat! donationware pegasus mail discontinued cc:mail claris emailer courier cyberdog cyberjack embrowser eudora (discontinued in , moved to open-source in ) mailbox microsoft entourage microsoft internet mail and news microsoft mail minuet netscape mail netscape messenger nextmail outlook express pine pocomail popmail sparrow turnpike webspyder windows live mail windows mail windows messaging related technologies smtp imap jmap lmtp pop push-imap smap smtp uucp related topics email unicode and email category comparison retrieved from "https://en.wikipedia.org/w/index.php?title=simple_mail_transfer_protocol&oldid= " categories: internet mail protocols hidden categories: webarchive template wayback links cs maint: discouraged parameter articles with short description short description matches wikidata use mdy dates from october all articles with unsourced statements articles with unsourced statements from march articles with unsourced statements from april articles with unsourced statements from october navigation menu personal tools not logged in talk contributions create account log in namespaces article talk variants views read edit view history more search navigation main page contents current events random article about wikipedia contact us donate contribute help learn to edit community portal recent changes upload file tools what links here related changes upload file special pages permanent link page information cite this page wikidata item print/export download as pdf printable version in other projects wikimedia commons languages العربية azərbaycanca भोजपुरी Български bosanski català Čeština dansk deutsch eesti Ελληνικά español esperanto euskara فارسی français galego 한국어 Հայերեն हिन्दी hrvatski bahasa indonesia Íslenska italiano עברית kurdî latviešu lëtzebuergesch lietuvių magyar Македонски മലയാളം bahasa melayu nederlands 日本語 norsk bokmål norsk nynorsk Олык марий polski português română Русский shqip simple english slovenčina slovenščina Српски / srpski srpskohrvatski / српскохрватски suomi svenska ไทย türkçe Українська tiếng việt 吴语 yorùbá 中文 edit links this page was last edited on april , at :  (utc). text is available under the creative commons attribution-sharealike license; additional terms may apply. by using this site, you agree to the terms of use and privacy policy. wikipedia® is a registered trademark of the wikimedia foundation, inc., a non-profit organization. privacy policy about wikipedia disclaimers contact wikipedia mobile view developers statistics cookie statement catmandu catmandu about download tutorial may , catmandu . on may th , nicolas steenlant (our main developer and guru of catmandu) released version . of our catmandu toolkit with some very interesting new features. the main addition is a brand new way how catmandu fix-es can be implemented using the new catmandu::path implementation. this coding by nicolas will make it much easier and straightforward to implement any kind of fixes in perl. in the previous versions of catmandu there were only two options to create new fixes: create a perl package in the catmandu::fix namespace which implements a fix method. this was very easy: update the $data hash you got as first argument, return the updated $data and you were done. then disadvantage was that accessing fields in a deeply nested record was tricky and slow to code. create a perl package in the catmandu::fix namespace which implemented emit functions. these were functions that generate perl code on the fly. using emit functions it was easier to get fast access to deeply nested data. but, to create fix packages was pretty complex. in catmandu . there is now support for a third and easy way to create new fixes using the catmandu::fix::builder and catmandu::fix::path class. let me give an simple example of a skeleton fix that does nothing: package catmandu::fix::rot ; use catmandu::sane; use moo; use catmandu::util::path qw(as_path); use catmandu::fix::has; with 'catmandu::fix::builder'; has path => (fix_arg => ); sub _build_fixer { my ($self) = @_; sub { my $data = $_[ ]; # ..do some magic here ... $data; } } ; in the code above we start implementing a rot (path) fix that should read a string on a json path and encrypt it using the rot  algorithm. this fix is only the skeleton which doesn’t do anything. what we have is: we import the as_path method be able to easily access data on json paths/ we import catmandu::fix::has to be able to use has path constructs to read in arguments for our fix. we import catmandu::fix::builder to use the new catmandu . builder class provides a _build_fixermethod. the builder is nothing more than a closure that reads the data, does some action on the data and return the data. we can use this skeleton builder to implement our rot algorithm. add these lines instead of the # do some magic part: # on the path update the string value... as_path($self->path)->updater( if_string => sub { my $value = shift; $value =~ tr{n-za-mn-za-m}{a-za-z}; $value; }, )->($data); the as_path method receives a json path string an creates an object which you can use to manipulate data on that path. one can update the values found with the updater method, or read data at that path with the getter method or create a new path with the creator method. in our example, we update the string found at the json path using if_string condition. the updaterhas many conditions: if_string needs a closure what should happen when a string is found on the json path. if_array_ref needs a closure what should happen when an array is found on the json path. if_hash_refneeds a closure what should happen when a hash is found on the json path. in our case we are only interested in transforming strings using our rot (path) fix. the rot algorithm is very easy and only switched the order of some characters. when we execute this fix on some sample data we get this result: $ catmandu -i lib convert null to yaml --fix 'add_field(demo,hello);rot v (demo)' --- demo: uryyb ... in this case the fix can be written much shorter when we know that every catmandu::path method return a closure (hint: look at the ->($data) in the code. the complete fix can look like: package catmandu::fix::rot ; use catmandu::sane; use moo; use catmandu::util::path qw(as_path); use catmandu::fix::has; with 'catmandu::fix::builder'; has path => (fix_arg => ); sub _build_fixer { my ($self) = @_; # on the path update the string value... as_path($self->path)->updater( if_string => sub { my $value = shift; $value =~ tr{n-za-mn-za-m}{a-za-z}; $value; }, ); } ; this is as easy as it can get to manipulate deeply nested data with your own perl tools. all the code is in perl, there is no limit on the number of external cpan packages one can include in these builder fixes. we can’t wait what catmandu extensions you will create. written by hochstenbach leave a comment posted in advanced, updates tagged with catmandu, fix language, perl april , lpw : “contrarian perl” – tom hukins at : , tom hukins shares his enthusiasm for catmandu! written by hochstenbach leave a comment posted in uncategorized june , introducing filestores catmandu is always our tool of choice when working with structured data. using the elasticsearch or mongodb catmandu::store-s it is quite trivial to store and retrieve metadata records. storing and retrieving a yaml, json (and by extension xml, marc, csv,…) files can be as easy as the commands below: $ catmandu import yaml to database < input.yml $ catmandu import json to database < input.json $ catmandu import marc to database < marc.data $ catmandu export database to yaml > output.yml a catmandu.yml  configuration file is required with the connection parameters to the database: $ cat catmandu.yml --- store: database: package: elasticsearch options: client: ' _ ::direct' index_name: catmandu ... given these tools to import and export and even transform structured data, can this be extended to unstructured data? in institutional repositories like librecat we would like to manage metadata records and binary content (for example pdf files related to the metadata).  catmandu . introduces the catmandu::filestore as an extension to the already existing catmandu::store to manage binary content. a catmandu::filestore is a catmandu::store where each catmandu::bag acts as a “container” or a “folder” that can contain zero or more records describing file content. the files records themselves contain pointers to a backend storage implementation capable of serialising and streaming binary files. out of the box, one catmandu::filestore implementation is available catmandu::store::file::simple, or short file::simple, which stores files in a directory. some examples. to add a file to a filestore, the stream command needs to be executed: $ catmandu stream /tmp/myfile.pdf to file::simple --root /data --bag --id myfile.pdf in the command above: /tmp/myfile.pdf is the file up be uploaded to the file::store. file::simple is the name of the file::store implementation which requires one mandatory parameter, --root /data which is the root directory where all files are stored.  the--bag  is the “container” or “folder” which contains the uploaded files (with a numeric identifier ). and the --id myfile.pdf is the identifier for the new created file record. to download the file from the file::store, the stream command needs to be executed in opposite order: $ catmandu stream file::simple --root /data --bag --id myfile.pdf to /tmp/file.pdf or $ catmandu stream file::simple --root /data --bag --id myfile.pdf > /tmp/file.pdf on the file system the files are stored in some deep nested structure to be able to spread out the file::store over many disks: /data `--/ `--/ `--/ `--/myfile.pdf a listing of all “containers” can be retreived by requesting an export of the default (index) bag of the file::store: $ catmandu export file::simple --root /data to yaml _id: ... a listing of all files in the container “ ” can be done by adding the bag name to the export command: $ catmandu export file::simple --root /data --bag to yaml _id: myfile.pdf _stream: !!perl/code '{ "dummy" }' content_type: application/pdf created: md : '' modified: size: ... each file::store implementation supports at least the fields presented above: _id: the name of the file _stream: a callback function to retrieve the content of the file (requires an io::handle as input) content_type: the mime-type of the file created: a timestamp when the file was created modified: a timestamp when the file was last modified size: the byte length of the file md : optional a md checksum we envision in catmandu that many implementations of filestores can be created to be able to store files in github, bagits, fedora commons and more backends. using the catmandu::plugin::sidecar  catmandu::filestore-s and catmandu::store-s can be combined as one endpoint. using catmandu::store::multi and catmandu::store::file::multi many different implementations of stores and filestores can be combined. this is a short introduction, but i hope you will experiment a bit with the new functionality and provide feedback to our project. written by hochstenbach leave a comment posted in uncategorized march , catmandu . catmandu . has been released to with some nice new features. there are some new fix routines that were asked by our community: error the “error” fix stops immediately the execution of the fix script and throws an error. use this to abort the processing of a data stream: $ cat myfix.fix unless exists(id)     error("no id found?!") end $ catmandu convert json --fix myfix.fix < data.json valid the “valid” fix condition can be used to validate a record (or part of a record) against a jsonschema. for instance we can select only the valid records from a stream: $ catmandu convert json --fix 'select valid('', jsonschema, schema:myschema.json)' < data.json or, create some logging: $ cat myfix.fix unless valid(author, jsonschema, schema:authors.json) log("errors in the author field") end $ catmandu convert json --fix myfix.fix < data.json rename the “rename” fix can be used to recursively change the names of fields in your documents. for example, when you have this json input: { "foo.bar": " ", "my.name": "patrick" } you can transform all periods (.) in the key names to underscores with this fix: rename('','\.','_') the first parameter is the fields “rename” should work on (in our case it is an empty string, meaning the complete record). the second and third parameters are the regex search and replace parameters. the result of this fix is: { "foo_bar": " ", "my_name": "patrick" } the “rename” fix will only work on the keys of json paths. for example, given the following path: my.deep.path.x.y.z the keys are: my deep path x y z the second and third argument search and replaces these seperate keys. when you want to change the paths as a whole take a look at the “collapse()” and “expand()” fixes in combination with the “rename” fix: collapse() rename('',"my\.deep","my.very.very.deep") expand() now the generated path will be: my.very.very.deep.path.x.y.z of course the example above could be written more simple as “move_field(my.deep,my.very.very.deep)”, but it serves as an example  that powerful renaming is possible. import_from_string this fix is a generalisation of the “from_json” fix. it can transform a serialised string field in your data into an array of data. for instance, take the following yaml record: --- foo: '{"name":"patrick"}' ... the field ‘foo’ contains a json fragment. you can transform this json into real data using the following fix: import_from_string(foo,json) which creates a ‘foo’ array containing the deserialised json: --- foo: - name: patrick the “import_from_string” look very much like the “from_json” string, but you can use any catmandu::importer. it always created an array of hashes. for instance, given the following yaml record: --- foo: "name;hobby\nnicolas;drawing\npatrick;music" you can transform the csv fragment in the ‘foo’ field into data by using this fix: import_from_string(foo,csv,sep_char:";") which gives as result: --- foo: - hobby: drawing name: nicolas - hobby: music name: patrick ... i the same way it can process marc, xml, rdf, yaml or any other format supported by catmandu. export_to_string the fix “export_to_string” is the opposite of “import_from_string” and is the generalisation of the “to_json” fix. given the yaml from the previous example: --- foo: - hobby: drawing name: nicolas - hobby: music name: patrick ... you can create a csv fragment in the ‘foo’ field with the following fix: export_to_string(foo,csv,sep_char:";") which gives as result: --- foo: "name;hobby\nnicolas;drawing\npatrick;music" search_in_store the fix “search_in_store” is a generalisation of the “lookup_in_store” fix. the latter is used to query the “_id” field in a catmandu::store and return the first hit. the former, “search_in_store” can query any field in a store and return all (or a subset) of the results. for instance, given the yaml record: --- foo: "(title:abc or author:dave) and not year: " ... then the following fix will replace the ‘foo’ field with the result of the query in a solr index: search_in_store('foo', store:solr, url: 'http://localhost: /solr/catalog') as a result, the document will be updated like: --- foo: start: , limit: , hits: [...], total: ... where start: the starting index of the search result limit: the number of result per page hits: an array containing the data from the result page total: the total number of search results every catmandu::solr can have another layout of the result page. look at the documentation of the catmandu::solr implementations for the specific details. thanks for all your support for catmandu and keep on data converting 🙂 written by hochstenbach leave a comment posted in uncategorized june , metadata analysis at the command-line i was last week at the elag  conference in copenhagen and attended the excellent workshop by christina harlow  of cornell university on migrating digital collections metadata to rdf and fedora . one of the important steps required to migrate and model data to rdf is understanding what your data is about. probably old systems need to be converted for which little or no documentation is available. instead of manually processing large xml or marc dumps, tools like metadata breakers can be used to find out which fields are available in the legacy system and how they are used. mark phillips of the university of north texas wrote recently in code lib a very inspiring article how this could be done in python. in this blog post i’ll demonstrate how this can be done using a new catmandu tool: catmandu::breaker. to follow the examples below, you need to have a system with catmandu installed. the catmandu::breaker tools can then be installed with the command: $ sudo cpan catmandu::breaker a breaker is a command that transforms data into a line format that can be easily processed with unix command line tools such as grep, sort, uniq, cut and many more. if you need an introduction into unix tools for data processing please follow the examples johan rolschewski of berlin state library and i presented as an elag bootcamp. as a simple example lets create a yaml file and demonstrate how this file can be analysed using catmandu::breaker: $ cat test.yaml --- name: john colors: - black - yellow - red institution: name: acme years: - - - - this example has a combination of simple name/value pairs a list of colors and a deeply nested field. to transform this data into the breaker format execute the command: $ catmandu convert yaml to breaker < test.yaml colors[] black colors[] yellow colors[] red institution.name acme institution.years[] institution.years[] institution.years[] institution.years[] name john the breaker format is a tab-delimited output with three columns: an record identifier: read from the _id field in the input data, or a counter when no such field is present. a field name. nested fields are seperated by dots (.) and list are indicated by the square brackets ([]) a field value when you have a very large json or yaml field and need to find all the values of a deeply nested field you could do something like: $ catmandu convert yaml to breaker < data.yaml | grep "institution.years" using catmandu you can do this analysis on input formats such as json, yaml, xml, csv, xls (excell). just replace the yaml by any of these formats and run the breaker command. catmandu can also connect to oai-pmh, z . or databases such as mongodb, elasticsearch, solr or even relational databases such as mysql, postgres and oracle. for instance to get a breaker format for an oai-pmh repository issue a command like: $ catmandu convert oai --url http://lib.ugent.be/oai to breaker if your data is in a database you could issue an sql query like: $ catmandu convert dbi --dsn 'dbi:oracle' --query 'select * from table where ...' --user 'user/password' to breaker some formats, such as marc, doesn’t provide a great breaker format. in catmandu, marc files are parsed into a list of list. running a breaker on a marc input you get this: $ catmandu convert marc to breaker < t/camel.usmarc | head fol record[][] ldr fol record[][] _ fol record[][] cam a fol record[][] fol record[][] _ fol record[][] fol fol record[][] fol record[][] fol record[][] fol record[][] a the marc fields are part of the data, not part of the field name. this can be fixed by adding a special ‘marc’ handler to the breaker command: $ catmandu convert marc to breaker --handler marc < t/camel.usmarc | head fol ldr cam a fol fol fol imchf fol . fol s nyua eng fol a fol a (paper/cd-rom : alk. paper) fol a dlc fol c dlc fol d dlc now all the marc subfields are visible in the output. you can use this format to find, for instance, all unique values in a marc file. lets try to find all unique values: $ catmandu convert marc to breaker --handler marc < camel.usmarc | grep "\t " | cut -f | sort -u s nyua eng s mau eng s njua eng s cau b eng s caua eng s mau eng s mau eng s mau eng s mau eng s cau eng nam a catmandu::breaker doesn’t only break input data in a easy format for command line processing, it can also do a statistical analysis on the breaker output. first process some data into the breaker format and save the result in a file: $ catmandu convert marc to breaker --handler marc < t/camel.usmarc > result.breaker now, use this file as input for the ‘catmandu breaker’ command: $ catmandu breaker result.breaker | name | count | zeros | zeros% | min | max | mean | median | mode | variance | stdev | uniq | entropy | |------|-------|-------|--------|-----|-----|------|--------|--------|----------|-------|------|---------| | | | | . | | | | | | | | | . / . | | | | | . | | | | | | | | | . / . | | | | | . | | | | | | | | | . / . | | | | | . | | | | | | | | | . / . | | a | | | . | | | | | | | | | . / . | | a | | | . | | | . | | | . | . | | . / . | | a | | | . | | | | | | | | | . / . | | c | | | . | | | | | | | | | . / . | | d | | | . | | | . | . | [ , ] | . | . | | . / . | | a | | | . | | | | | | | | | . / . | | a | | | . | | | | | | | | | . / . | | b | | | . | | | | | | | | | . / . | | | | | . | | | | | | | | | . / . | | a | | | . | | | | | | | | | . / . | | a | | | . | | | . | | | . | . | | . / . | | d | | | . | | | . | | | . | . | | . / . | | q | | | . | | | . | | | . | . | | . / . | | a | | | . | | | . | | | . | . | | . / . | | c | | | . | | | . | | | . | . | | . / . | | d | | | . | | | . | | | . | . | | . / . | | a | | | . | | | | | | | | | . / . | | b | | | . | | | . | | | . | . | | . / . | | c | | | . | | | . | | | . | . | | . / . | | a | | | . | | | . | | | . | . | | . / . | | a | | | . | | | | | | | | | . / . | | b | | | . | | | | | | | | | . / . | | c | | | . | | | | | | | | | . / . | | a | | | . | | | . | | | . | . | | . / . | | a | | | . | | | | | | | | | . / . | | b | | | . | | | . | | | . | . | | . / . | | c | | | . | | | . | | | . | . | | . / . | | e | | | . | | | . | | | . | . | | . / . | | a | | | . | | | . | | | . | . | | . / . | | a | | | . | | | . | | | . | . | | . / . | | a | | | . | | | . | | | . | . | | . / . | | a | | | . | | | . | | | . | . | | . / . | | v | | | . | | | . | | | . | . | | . / . | | a | | | . | | | . | | | . | . | | . / . | | ldr | | | . | | | | | | | | | . / . as a result you get a table listing the usage of subfields in all the input records. from this output we can learn: the ‘ ’ field is available in records (see: count) one record doesn’t contain a ‘ a’ subfield (see: zeros) the ‘ a’ is available in all records at least once at most times (see: min, max) only out of ‘ a’ subfields have unique values (see: uniq) the last column ‘entropy’ provides a number how interesting the field is for search engines. the higher the entropy, the more uniq content can be found. i hope this tools are of some use in your projects! written by hochstenbach comments posted in uncategorized may , catmandu . catmandu . has been released today. there has been some speed improvements processing fixes due to switching from the data::util to the ref::util package which has better a support on many perl platforms. for the command line there is now support for preprocessing  fix scripts. this means, one can read in variables from the command line into a fix script. for instance, when processing data you might want to keep some provenance data about your data sources in the output. this can be done with the following commands: $ catmandu convert marc --fix myfixes.fix --var source=publisher --var date= - < data.mrc with a myfixes.fix like: add_field(my_source,{{source}}) add_field(my_data,{{date}}) marc_field( ,title) marc_field( ,issn) . . . etc . . your json output will now contain the clean ‘title’ and ‘issn’ fields but also for each record a ‘my_source’ with value ‘publisher ’ and a ‘my_date’ with value ‘ - ’. by using the text::hogan compiler full support of the mustache language is available. in this new catmandu version there have been also some new fix functions you might want to try out, see our fixes cheat sheet for a full overview.   written by hochstenbach leave a comment posted in updates april , parallel processing with catmandu in this blog post i’ll show a technique to scale out your data processing with catmandu. all catmandu scripts use a single process, in a single thread. this means that if you need to process times as much data , you need times at much time. running a catmandu convert command with the -v option will show you the speed of a typical conversion: $ catmandu convert -v marc to json --fix heavy_load.fix < input.marc > output.json added ( /sec) added ( /sec) added ( /sec) added ( /sec) added ( /sec) added ( /sec) added ( /sec) added ( /sec) added ( /sec) added ( /sec) in the example above we process an ‘input.marc’ marc file into a ‘output.json’ json file with some difficult data cleaning in the ‘heave_load.fix’ fix script. using a single process we can reach about records per second. it would take . hours to process one million records and hours to process ten million records. can we make this any faster? when you buy a computer they are all equipped with multiple processors. using a single process, only one of these processors are used for calculations. one would get much ‘bang for the buck’  if all the processors could be used. one technique to do that is called ‘parallel processing’. to check the amount of processors available on your machine use the file ‘/proc/cpuinfo’: on your linux system: $ cat /proc/cpuinfo | grep processor processor : processor : the example above  shows two lines: i have two cores available to do processing on my laptop. in my library we have servers which contain   , , or more processors. this means that if we could do our calculations in a smart way then our processing could be , , or times as fast (in principle). to check if your computer  is using all that calculating power, use the ‘uptime’ command: $ uptime : : up days, : , users, load average: . , . , . in the example above i ran did ‘uptime’ on one of our servers with processors. it shows a load average of about . to . . this means that in the last minutes between and processors where being used and the other two did nothing. if the load average is less than the number of cores ( in our case) it means: the server is waiting for input. if the load average is equal to the number of cores  it means: the server  is using all the cpu power available. if the load is bigger than the number of cores, then there is more work available than can be executed by the machine, some processes need to wait. now you know some unix commands we can start using the processing power available on your machine. in my examples i’m going to use a unix tool called ‘gnu parallel’ to run catmandu  scripts on all the processors in my machine in the most efficient way possible. to do this you need to install gnu parallel: sudo yum install parallel the second ingredient we need is a way to cut our input data into many parts. for instance if we have a processor machine we would like to create equal chunks of data to process in parallel. there are very many ways to cut your data in to many parts. i’ll show you a trick we use in at ghent university library with help of a mongodb installation. first install, mongodb and the mongodb catmandu plugins (these examples are taken from our centos documentation): $ sudo cat > /etc/yum.repos.d/mongodb.repo < part $ catmandu export mongodb --database_name -q '{"part.rand ": }' > part we are going to use these catmandu commands in a bash script which makes use of gnu parallel run many conversions simultaneously. #!/bin/bash # file: parallel.sh cpu=$ if [ "${cpu}" == "" ]; then /usr/bin/parallel -u $ {} < result.${cpu}.json fi this example script above shows how a conversion process could run on a -processor machine. the lines with ‘/usr/bin/parallel’ show how gnu parallel is used to call this script with two arguments ‘ ’ and ‘ ’ (for the -processor example). in the lines with ‘catmandu export’ shows how chunks of data are read from the database and processed with the ‘heavy_load.fix’ fix script. if you have a -processor machine, you would need to provide parallel an input which contains the numbers , , to and change the query to ‘part.rand ’. gnu parallel is a very powerfull command. it gives the opportunity to run many processes in parallel and even to spread out the load over many machines if you have a cluster. when all these machines have access to your mongodb database then all can receive chunks of data to be processed. the only task left is to combine all results which can be as easy as a simple ‘cat’ command: $ cat result.*.json > final_result.json written by hochstenbach comments posted in advanced tagged with catmandu, json path, library, linux, marc, parallel procesing, perl february , catmandu . after years of programming, minor releases we are finally there: the release of catmandu . ! we have pushed the test coverage of the code to . % and added and cleaned a lot of our documentation. for the new features read our changes file. a few important changes should be noted.     by default catmandu will read and write valid json files. in previous versions the default input format was (new)line delimited json records as in: {"record":" "} {"record":" "} {"record":" "} instead of the valid json array format: [{"record":" "},{"record":" "},{"record":" "}] the old format can still be used as input but will be read much faster when using the –line_delimited  option on the command line. thus, write: # fast $ catmandu convert json --line_delimited < lines.json.txt instead of: # slow $ catmandu convert json < lines.json.txt by default catmandu will export in the valid json-array format. if you still need to use the old format, then provide the –line_delimited option on the command line: $ catmandu convert yaml to json --line_delimited < data.yaml we thank all contributors for these wonderful four years of open source coding and we wish you all four new hacking years. our thanks goes to: nicolas steenlant christian pietsch dave sherohman dries moreels friedrich summann jakob voss johann rolschewski jonas smedegaard jörgen eriksson magnus enger maria hedberg mathias lösch najko jahn nicolas franck patrick hochstenbach petra kohorst robin sheat snorri briem upasana shukla vitali peil deutsche forschungsgemeinschaft for providing us the travel funds lund university library , ghent university library and bielefeld university library to provide us a very welcome environment for open source collaboration. written by hochstenbach leave a comment posted in uncategorized june , catmandu chat on friday june : cest, we’ll  provide a one hour introduction/demo into processing data with catmandu. if you are interested, join us on the event page: https://plus.google.com/hangouts/_/event/c jcknos egjlthk m btha o more instructions on the exact google hangout coordinates for this chat will follow on this web page at friday june : . to enter the chat session, a working version of the catmandu virtualbox needs to be running on your system: https://librecatproject.wordpress.com/get-catmandu/ written by hochstenbach leave a comment posted in events june , matching authors against viaf identities at ghent university library we enrich catalog records with viaf identities to enhance the search experience in the catalog. when searching for all the books about ‘chekov’ we want to match all name variants of this author. consult viaf http://viaf.org/viaf/ /#chekhov,_anton_pavlovich,_ -  and you will see many of them. chekhov Čehov tsjechof txékhov etc any of the these names variants can be available in the catalog data if authority control is not in place (or not maintained). searching any of these names should result in results for all the variants. in the past it was a labor intensive, manual job for catalogers to maintain an authority file. using results from linked data fragments research by ruben verborgh (iminds) and the catmandu-rdf tools created by jakob voss (gbv) and rdf-ldf by patrick hochstenbach, ghent university started an experiment to automatically enrich authors with viaf identities. in this blog post we will report on the setup and results of this experiment which will also be reported at elag . context three ingredients are needed to create a web of data: a scalable way to produce data. the infrastructure to publish data. clients accessing the data and reusing them in new contexts. on the production site there doesn’t seem to be any problem creating huge datasets by libraries. any transformation of library data to linked data will quickly generate an enormous number of rdf triples. we see this in the size of public available datasets: ugent academic bibliography: . . triples libris catalog: . . triples gallica: . . triples dbpedia: . . triples viaf: . . triples europeana: . . triples the european library: . . . triples pubchem: . . . triples also for accessing data, from a consumers perspective the “easy” part seems to be covered. instead of thousands of apis available and many documents formats for any dataset, sparql and rdf provide the programmer a single protocol and document model. the claim of the linked data fragments researchers is that on the publication side, reliable queryable access to public linked data datasets largely remains problematic due to the low availability percentages of public sparql endpoints [ref]. this is confirmed by the study by researchers from pontificia universidad católica in chili and national university of ireland where more than half of the public sparql endpoints seem to be offline . days per month. this gives an availability rate of less than % [ref]. the source of this high rate of inavailability can be traced back to the service model of linked data where two extremes exists to publish data (see image below). from: http://www.slideshare.net/rubenverborgh/dbpedias-triple-pattern-fragments at one side, data dumps (or dereferencing of urls) can be made available which requires a simple http server and lots of processing power on the client side. at the other side, an open sparql endpoint can be provided which requires a lot of processing power (hence, hardware investment) on the serverside. with sparql endpoints, clients can demand the execution of arbitrarily complicated queries. furthermore, since each client requests unique, highly specific queries, regular caching mechanisms are ineffective, since they can only optimized for repeated identical requests. this situation can be compared with providing a database sql dump to endusers or open database connection on which any possible sql statement can be executed. to a lesser extent libraries are well aware of the different modes of operation between running oai-pmh services and z . /sru services. linked data fragment researchers provide a third way, triple pattern fragments, to publish data which tries to provide the best of both worlds: access to a full dump of datasets while providing a queryable and cachable interface. for more information on the scalability of this solution i refer to the report  presented at the th international usewod workshop. the experiment viaf doesn’t provide a public sparql endpoint, but a complete dump of the data is available at http://viaf.org/viaf/data/. in our experiments we used the viaf (virtual international authority file), which is made available under the odc attribution license.  from this dump we created a hdt database. hdt provides a very efficient format to compress rdf data while maintaining browser and search functionality. using command line tools rdf/xml, turtle and ntriples can be compressed into a hdt file with an index. this standalone file can be used to without the need of a database to query huge datasets. a viaf conversion to hdt results in a gb file and a gb index. using the linked data fragments server by ruben verborgh, available at https://github.com/linkeddatafragments/server.js, this hdt file can be published as a nodejs application. for a demonstration of this server visit the iminds experimental setup at: http://data.linkeddatafragments.org/viaf using triple pattern fragments a simple rest protocol is available to query this dataset. for instance it is possible to download the complete dataset using this query: $ curl -h "accept: text/turtle" http://data.linkeddatafragments.org/viaf if we only want the triples concerning chekhov (http://viaf.org/viaf/ ) we can provide a query parameter: $ curl -h "accept: text/turtle" http://data.linkeddatafragments.org/viaf?subject=http://viaf.org/viaf/ likewise, using the predicate and object query any combination of triples can be requested from the server. $ curl -h "accept: text/turtle" http://data.linkeddatafragments.org/viaf?object="chekhov" the memory requirements of this server are small enough to run a copy of the viaf database on a macbook air laptop with gb ram. using specialised triple pattern fragments clients, sparql queries can be executed against this server. for the catmandu project we created a perl client rdf::ldf which is integrated into catmandu-rdf. to request all triples from the endpoint use: $ catmandu convert rdf --url http://data.linkeddatafragments.org/viaf --sparql 'select * {?s ?p ?o}' or, only those triples that are about “chekhov”: $ catmandu convert rdf --url http://data.linkeddatafragments.org/viaf --sparql 'select * {?s ?p "chekhov"}' in the ghent university experiment a more direct approach was taken to match authors to viaf. first, as input a marc dump from the catalog is being streamed into a perl program using a catmandu iterator. then, we extract the and fields which contain $a (name) and $d (date) subfields. these two fields are combined in a search query, as if we would search: chekhov, anton pavlovich, - if there is exactly one hit in our local viaf copy, then the result is reported. a complete script to process marc files this way is available at a github gist. to run the program against a marc dump execute the import_viaf.pl command: $ ./import_viaf.pl --type usmarc file.mrc - l $$aedwards, everett eugene,$$d - http://viaf.org/viaf/ - l $$aclelland, marjorie bolton,$$d - http://viaf.org/viaf/ - l $$aschein, edgar h. - l $$akilbridge, maurice d.,$$d - http://viaf.org/viaf/ - l $$awiseman, frederick. - l $$amiller, wilhelm,$$d - http://viaf.org/viaf/ - l $$ahazlett, thomas c.,$$d - http://viaf.org/viaf/ [edit: - - an updated version of the code is available as a git project https://github.com/librecat/marc rdf ] all the authors in the marc dump will be exported. if there is exactly one single match against viaf it will be added to the author field. we ran this command for one night in a single thread against . authors containing a date and found . exact matches in viaf (= %). in a quite recent follow up of our experiments, we investigated how ldf clients can be used in a federated setup. when combining in the ldf algorithm the triples result from many ldf servers, one sparql query can be run over many machines. these results are demonstrated at the iminds demo site where a single sparql query can be executed over the combined viaf and dbpedia datasets. a perl implementation of this federated search is available in the latest version of rdf-ldf at github. we strongly believe in the success of this setup and the scalability of this solution as demonstrated by ruben verborgh at the usewod workshop. using linked data fragments a range of solutions are available to publish data on the web. from simple data dumps to a full sparql endpoint any service level can be provided given the resources available. for more than a half year dbpedia has been running an ldf server with . % availability on a cpu , gb ram amazon server with . million requests. scaling out, services such has the lod laundromat cleans . datasets and provides access to them using a single fat ldf server ( gb ram). for more information on the federated searches with  linked data fragments  visit the blog post of ruben verborgh at: http://ruben.verborgh.org/blog/ / / /federated-sparql-queries-in-your-browser/ written by hochstenbach leave a comment posted in advanced tagged with ldf, linked data, marc, perl, rdf, sparql, triple pattern fragments, viaf older posts recent posts catmandu . lpw : “contrarian perl” – tom hukins introducing filestores catmandu . metadata analysis at the command-line catmandu . parallel processing with catmandu catmandu . catmandu chat matching authors against viaf identities preprocessing catmandu fixes earthquake in kathmandu importing files from a hotfolder directory librecat/memento hackathon day : merry christmas! day : exporting rdf data with catmandu day : importing rdf data with catmandu day : marc to dublin core day : set up your own oai data service day : harvest data with oai-pmh day : index your data with elasticsearch day : store your data in mongodb day : working with csv and excel files day : processing marc with catmandu day : processing json data from webservices day : catmandu json paths day : introduction into catmandu day : editing text with nano day : grep, less and wc day : bash basics create a free website or blog at wordpress.com. catmandu create a free website or blog at wordpress.com. email (required) name (required) website   loading comments... comment × privacy & cookies: this site uses cookies. by continuing to use this website, you agree to their use. to find out more, including how to control cookies, see here: cookie policy javascript is not available. we’ve detected that javascript is disabled in this browser. please enable javascript or switch to a supported browser to continue using twitter.com. you can see a list of supported browsers in our help center. help center terms of service privacy policy cookie policy imprint ads info © twitter, inc. something went wrong, but don’t fret — let’s give it another shot. . . updated: / / * enhancement: marceditor: added a button to provide quick access to the available task list. * enhancement: marceditor: code is in place to begin allowing users to show/hide menu/toolbar buttons. this should be available in a near term update. . . updated: / / * bug fix: internet archive => hathitrust plugin updates to correct debug link generation. * update: file assoc. updates * update: installer - file extensions will now assign to . .x . . updated: / / * enhancement: z . -- users can add more than criteria. * update: plugin -- internet archive => hathitrust plugin updated to allow for multiple date type searches. * update: z . ui changes to make it easier to prevent data from being hidden on high zoom * update: in the preferences, the task location can now allow environment variables in the file path (example: %appdata%) * update: updated json/rdf components * bug fix: validate headings window was freezing when using some of the new linked data rule options. * enhancement: custom reports -- added a ui validation to ensure required data is provided (this wasn't previously the case). * enhancement: marcvalidator -- added some updated language in the error changing. * bug fix: marcvalidator -- make sure that all file handles are closed (there was a case where one of the handles was remaining opened and could, potentially, result in a locked process). . . updated: / / * enhancement: marceditor global edit functions -- a new preview option has been added (replace all, add field, delete field, copy field, edit indicators, edit field, edit subfield, swap field) * enhancement: ui enhancement to ensure that a status message is present so users know the process is running (replace all, add field, delete field, copy field, edit indicators, edit field, edit subfield, swap field) * enhancement: marcengine -- added json => xml translation * enhancement: xml/json profile wizard - added support for json-ld formatted data. * enhancement: xslt -- including xslt for the homosaurus vocabulary * enhancement: oclc api -- surfacing more debugging information to make it easier to see when an issue is occuring * bug fix: marcvalidator -- ensured all file handles are closing and released * behavior change: kbart marc plugin - tool will preference isbn if present (currently, it selects the last isbn if multiples of the same type are present) * bug fix: installer -- cleaned up some old files * behavior change: oclc has discontinued providing work id information in worldcat.org. i've shifted to using the classify api till a better option is found. * clean-up: ui clean up in the migration wizard * clean-up: ui clean up of the main window * bug fix/clean-up: corrected ui to add back missing icons (for example, in the extract selected records form) . . updated: / / * enhancement: updated plugin manager * enhancement: oclc connexion plugin added/converted * enhancement: internet archive => hathitrust packager added/converted * enhancement: marc => kbart converter added/converted * enhancement: make check digit added/converted * enhancement: microlif => mnemonic converted added/converted * ris => marc plugin added/converted * enhancement: installer evaluates for the -bit access database engine ( ) on bit systems * enhancement: installer evaluates for the c++ runtime required by the access database engine on bit systems * behavior change: restart as -bit program has been hidden * enhancement: marc sql explorer has been folded into the primary marcedit application [results in a reduction of dependencies] * bug fix: clustering tools -- beta build wasn't allowing the clustering tools to function correctly. * enhancement: oclc search -- batch searching has been allowed * enhancement: oclc integration -- new session diagnostics option added for debugging processes * bug fix: integration settings import -- if no settings have ever been set and the initial file hasn’t been created, import will say it’s completed, but it won’t. * bug fix: oclc integration -- if the expires_at element is null or fails to parse, it can throw an error. this is now trapped and will attempt to reauthorize. * bug fix: console: added process to consume event processing for validate and split tasks. . . updated: / / * bug fix: installer throws an error when attempting to install per user * bug fix: marceditor -- marcedit will be deprecating legacy page loading. this option is now ignored if set and will be removed entirely in future builds. . . updated: / / * change: allow os to manage supported supported security protocol types. * change: remove com.sun dependency related to dns and httpserver * change: changed appdata path * change: first install automatically imports settings from marcedit . - .x * change: field count - simplify ui (consolidate elements) * change: windows -- update help urls to oclc * change: generate fast headings -- update help urls * change: .net changes thread stats queuing. updating thread processing on forms: * generate fast headings * batch process records * build links * main window * rda helper * delete selected records * marc tools * check url tools * marcvalidator * marcengine * task manager * z . * ils integration processing * character conversions * format handing (delimited text, openrefine, etc.) * change: xml function list -- update process for opening urls * change: z . preferences window - update process for opening urls * change: about windows -- new information, updated how version information is calculated. * change: catalog calculator window -- update process for opening urls * change: generate call numbers -- update process for opening urls * change: generate material formats -- update process for opening urls * change: tab delimiter -- remove context windows * change: tab delimiter -- new options ui * change: tab delimiter -- normalization changes * change: remove old help html page * change: remove old hex editor page * change: updated hex editor to integrate into main program * change: main window -- remove custom scheduler dependency * change: ui update to allow more items * change: main window -- new icon * change: main window -- update process for opening urls * change: main window -- removed context menus * change: main window -- upgrade changes to new executable name * change: main window -- updated the following menu items: * edit linked data tools * removed old help menu item * added new application shortcut * change: oclc bulk downloader -- new ui elements to correspond to new oclc api * change: oclc search page -- new ui elements to correspond to new oclc api * change: preferences -- updates related to various preference changes: * hex editor * integrations * editor * other * change: rda helper -- update process for opening urls * change: rda helper -- opening files for editing * change: removed the script maker * change: templates for perl and vbscripts includes * change: removed find/search xml in the xml editor and consolidated in existing windows * change: delete selected records: exposed the form and controls to the marceditor * change: sparql browser -- update process for opening urls * change: sparql browser -- removed context menus * change: troubleshooting wizard -- added more error codes and kb information to the wizard * change: unimarc utility -- controls change, configurable transform selections * change: marc utilities -- removed the context menu * change: first run wizard -- new options, new agent images * change: xml editor -- delete block addition * change: xml editor -- xquery transform support * change: xml profile wizard -- option to process attributes * change: marceditor -- status bar control doesn't exist in net . . control has changed. * change: marceditor -- improved page loading * change: marceditor -- file tracking updated to handle times when the file opened is a temp record * change: marceditor -- removed ~ k of old code * change: marceditor -- added delete selected records option * change: removed helper code used by installer * change: removed office menu formatting code * change: consolidated extensions into new class (removed files) * change: removed calls marshalled to the windows api -- replaced with managed code * change: openrefine format handler updated to capture changes between openrefine versions * change: marcengine -- namespace update to * change: wizard -- missing unicode font options more obvious * change: wizard install puts font in program directory so that additional users can simply copy (not download) the font on use * change: checkurls: removed support for insecure crypto-types * change: checkurls: additional heuristics to respond dynamically to http status codes * change: all components -- .net . includes a new codepages library that allows for extended codepage support beyond the default framework. added across the project. * change: marcvalidator -- new rules process that attempts to determine if records are too long for processing when validating rules or structure. * change: command-line -- batch process switch has been added to the tasks processing function * change: options -- allow user path to be reset. * bug fix: main window -- corrects process for determining version for update * bug fix: main window -- updated image * bug fix: when doing first run, wizard not showing in some cases. * bug fix: main window -- last tool used sometimes shows duplicates * bug fix: rda helper -- $e processing * bug fix: rda helper -- punctuation in the $e * bug fix: xml profile wizard -- when the top element is selected, it's not viewed for processing (which means not seeing element data or attribute data) * bug fix: marceditor -- page processing correct to handle invalid formatted data better * bug fix: installation wizard -- if a unicode font was installed during the first run process, it wouldn't be recognized. * bug fix: marcvalidator fails when attempting to process a .mrk file from outside the marceditor * bug fix: linked data processing: when processing services with multiple redirects -- process may stop pre-maturely. (example: lc's id.loc.gov xx processing) * bug fix: edit field -- find fields with just spaces are trimmed, causing the field data to process improperly. * bug fix: rda helper will fail if ldr length is incorrect when attempting to determine character encoding literary machines literary machines digital libraries, books, archives archiviiify a short guide to download digitized books from internet archive and rehost on your own infrastructure using iiif with full-text search. pywb . - docker quickstart four years have passed since i first wrote of pywb: it was a young tool at the time, but already usable and extremely simple to deploy. since then a lot of works has been done by ilya kreymer (and others), resulting in all the new features available with the . release. also, some very big webarchiving initiatives have moved and used pywb in these years: webrecorder itself, rhizome, perma, arquivo pt in portugal, the italian national library in florence (italy), (others i’m missing). anonymous webarchiving webarchiving activities, as any other activity where an http client is involved, leave marks of their steps: the web server you are visiting or crawling will save your ip address in its logs (or even worse it can decide to ban your ip). this is usually not a problem, there are plenty of good reasons for a webserver to keep logs of its visitors. but sometimes you may need to protect your own identity when you are visiting or saving something from a website, and there a lot of sensitive careers that need this protection: activists, journalist, political dissidents. tor has been invented for this, and today offer a good protection to browse anonymously the web. can we also archive the web through tor? open bni il maggio viene annunciato il rilascio libero della bibliografia nazionale italiana (bni). viene apprezzata l’apertura di questo catalogo (anche se con i limiti dei soli pdf), e da profano di biblioteconomia faccio anche una domanda sull’effettivo caso d’uso della bni. il agosto viene annunciato il rilascio delle annate e anche in formato unimarc e marcxml. incuriosito dal catalogo inizio ad esplorarlo, per pensare a possibili trasformazioni (triple rdf) o arricchimenti con/verso altri dati (wikidata). epub linkrot linkrot also affects epub files (who would have thought! :)). how to check the health of external links in epub books (required tools: a shell, atool, pup, gnu parallel). skos nuovo soggettario, api e autocomplete come creare una api per un form con autocompletamento usando i termini del nuovo soggettario, con i sorted sets di redis e nginx+lua. serve deepzoom images from a zip archive with openseadragon vips is a fast image processing system. version higher than . can generate static tiles of big images in deepzoom format, saving them directly into a zip archive. a wayback machine (pywb) on a cheap, shared host for a long time the only free (i’m unaware of commercial ones) implementation of a web archival replay software has been the wayback machine (now openwayback). it’s a stable and mature software, with a strong community behind. to use it you need to be confident with the deploy of a java web application; not so difficult, and documentation is exaustive. but there is a new player in the game, pywb, developed by ilya kramer, a former internet archive developer. built in python, relatively simpler than wayback, and now used in a pro archiving project at rhizome. opendata dell’anagrafe biblioteche come usare gli opendata dell’anagrafe delle biblioteche italiane e disegnare su una mappa web gli indirizzi delle biblioteche. api json dell’opac sbn alcuni mesi fa è stata rilasciata da iccu una app mobile per consultare l’opac sbn. anche se graficamente poco accattivante l’app funziona bene, e trovo molto utili le funzioni di ricerca di un libro scansionando il codice a barre con la camera del telefonino, e la possibilità di bookmarkare dei preferiti. incuriosito dal funzionamento ho pensato di analizzarne il traffico http. the odi – open data institute search the odi submit search suggestion hello, this is a suggestion suggestion hello, this is a suggestion topic hello, this is a topic topic hello, this is a topic the week in data membership jobs knowledge & opinion explainers guides reports news blog topics case studies worknotes odi inside business series the week in data projects & services projects data as culture become an odi member startups & fostering innovation research & development tools & resources consultancy & advice courses and training events courses talks webinars members events past events book a speaker for your event our community odi partners odi nodes odi trainers our startups odi members about the odi our strategy tender opportunities odi team contact us terms of use, privacy and policies jobs brand annual reports and financial statements the data spectrum “we want a world where data works for everyone” jeni tennison, vice president and chief strategy advisor what we do > our services make better decisions using data ...and manage any harmful impacts. we work with companies and governments to build an open, trustworthy data ecosystem. our services what's new > explore all data on teachers’ lives during the pandemic our new report looks at how the pandemic has affected teachers and pupils across the country reflections on the commission for race and ethnic disparities report dr jeni tennison obe and milly zimeta look at the data used in the sewell report by the commission for race and ethnic disparities highlights from our innovate uk-funded r&d programme – take a look at how we’ve supported innovation, improved data infrastructure and encouraged ethical data sharing across the uk over the past four years explore all new report > explore all data about teachers' lives in the pandemic the impact of the pandemic on teachers’ and pupils’ lives, through the lens of new data made available to the odi explore all our current projects > explore all transforming agriculture in south asia and sub-saharan africa – how a new data toolkit promises to transform agriculture and secure food supplies for growing communities helping bridge the data divide – the odi and microsoft are working together to help address the looming ‘data divide’ data innovation for the uk – our r&d projects for innovate uk cut across themes of data sharing and trust, supporting innovation and upgrading data infrastructure explore all work with us whether you’re in the private, public or third sectors, we can help with your data strategy. share your ideas with us, and we’ll be in touch to find out more. get in touch latest blogposts > explore all evaluation of the odi's r&d programme, funded by innovate uk invitation to tender (itt) - evaluating the data assurance market the weird and the wonderful: reflections on the commission for race and ethnic disparities report objective data? reflections on the commission for race and ethnic disparities report explore all explainers > explore all what is a digital twin? what is an identifier? what is a computer model? spot the difference – explaining the covid- apps explore all data ethics canvas > view the canvas free tool to help identify and manage ethical issues the data ethics canvas is a free, downloadable tool for anyone who collects, shares or uses data. it helps identify and manage ethical issues – at the start of a project that uses data, and throughout. view the canvas free tools > explore all the data ethics canvas open standards for data data ecosystem mapping datopolis board game explore all upcoming talks > explore all odi fridays: artist everest pipkin on the making of shell song odi fridays: open data and china – a ten year review odi fridays: data for tackling non-communicable diseases odi fridays: making local deliveries safer, cleaner, and healthier explore all upcoming events > explore all open data in a day: online applying machine learning and ai techniques to data anonymisation is for everyone anonymisation is for everyone explore all the open data institute works with companies and governments to build an open, trustworthy data ecosystem, where people can make better decisions using data and manage any harmful impacts. find out more about what we do open data institute, th floor, kings place, york way, london n ag information wants to be free information wants to be free a librarian, writer and educator reflecting on the profession and the tools we use to serve our patrons drop the ball when i visited my parents in december of , they asked me to go through a box of old stuff they wanted to get rid of. my mother had kept basically all the art we did, the bajillion songs and poems i wrote, everything we did for school, etc. it was surprising how much she&# ;d ... in all the bad&# ; some good things wow, this has been a hard year. no one&# ;s life has been untouched by between the pandemic and unrelenting proof that the social safety net has been dismantled by late-stage capitalism, the state-sanctioned murders of black and brown people and ensuing protests, the horrendous wildfires that felt like horsemen of the coming climate apocalypse, and a stressful election. it&# ;s horrifying. ... making customizable interactive tutorials with google forms in september, i gave a talk at oregon state university&# ;s instruction librarian get-together about the interactive tutorials i built at pcc last year that have been integral to our remote instructional strategy. i thought i&# ;d share my slides and notes here in case others are inspired by what i did and to share the amazing ... the crushing expectations on working women and where&# ;s my fucking village? on friday and saturday, my twitter feed was full of anger and frustration over a blog post on the alsc (association for library services to children) blog. entitled &# ;how motherhood has influenced me as a children’s librarian,&# ; the post was problematic because it suggested (probably unintentionally) that childless children&# ;s librarians could not connect with patrons as much or have ... recognition doesn&# ;t have to be a zero sum game as usual, the week the library journal movers and shakers were announced, i saw plenty of complaints about the award and, in some cases, awardees. i’ve been reading this sort of hurtful negativity since when i was named a mover and shaker (and a friend of mine wrote a blog comment calling us “the ... thoughts on work, well-being, solidarity, and advocacy in our current&# ; situation i have been wanting to blog for weeks. i have several blog posts i started that i just couldn&# ;t get through. my attention span reminds me of my son&# ;s at age when his teacher delicately suggested we should have him assessed for adhd. it rapidly jumps between various tasks at hand, my family, my ... #lismentalhealth: that time my brain and job tried to kill me happy lis mental health week friends! i want to start this post by recognizing someone who has done a great deal to support library workers&# ; mental health in the face of toxic workplaces, kaetrena davis kendrick. kaetrena has done some incredibly valuable research on low morale and toxic workplaces in librarianship and has created an awesome ... my year in books (and podcasts) this was a pretty good year for me. nothing particularly amazing or wonderful or eventful happened to me, though my son has been such a source of pride and light for me that i sometimes can&# ;t believe i&# ;m his mom. i still live in the same messed up world we all do. my migraines have actually ... when libraries and librarians pretend to be neutral, they often cause harm two recent events made me think (again) about the toxic nature of &# ;library neutrality&# ; and the fact that, more often than not, neutrality is whiteness/patriarchy/cis-heteronormativity/ableism/etc. parading around as neutrality and causing harm to folks from historically marginalized groups. the insidious thing about whiteness and these other dominant paradigms is that they are largely invisible to ... thoughts at mid-career part : where to from here? this is the fifth in a series of essays. you can access the rest here, though it’s not necessary to read them all or in order. &# ;to me, the only habit worth ‘designing for’ is the habit of questioning one’s habitual ways of seeing” -jenny odell, how to do nothing &# ;we have to fight for this world, but we ... maisonbisson menu close home search subscribe ☰menu     maisonbisson a bunch of stuff i would have emailed you about scroll downpage of older posts → every journalist ryu spaeth on the dirty job of journalism: [e]very journalist […] at some point will have to face the morally indefensible way we go about our business: namely, using other people to tell a story about the world. not everyone dupes their subjects into trusting them, but absolutely everyone robs other people of their stories to tell their own. every journalist knows this flushed feeling, a mix of triumph and guilt, of securing the story that will redound glory unto them, not the subject. some subjects who have no outlet, who are voiceless, approve of this arrangement, since they have no other way of getting their story heard. but even they will not wholly recognize their own depiction in the newspaper, by virtue of the fact that it was told by someone else with their own agenda. this is what jonathan franzen has called the “inescapable shame of being a storyteller”—that it involves stealing from another person, much in the way some people believe a photograph steals a bit of the sitter’s soul. casey bisson on #journalism, #reporting, #storytelling, dec the three tribes of the internet authors primavera de filippi, juan ortiz freuler, and joshua tan outline three competing narratives that have shaped the internet: libertarian, corporate, and nationalist. “[these narratives] emerged from a community of shared interests; each calls for a set of institutional arrangements; each endures in today’s politics.” » about words casey bisson on #internet, #hyperspace, #law, #governance, #libertarian, #corporate, #nationalist, #berkman klein center, #harvard berkman center, nov happy d.b. cooper day d.b. cooper day is celebrated on this day, the saturday following thanksgiving, every year. casey bisson on #agent smith, #aircraft hijacking, #aviation accidents and incidents, #d.b. cooper, #fbi, #federal bureau of investigation, #festival, #hijackers, #hijacking, #mysteries, #skyjacking, nov vitaminwater's #nophoneforayear contest back in the before times, vitaminwater invited applicants to a contest to go a full year without a smartphone or tablet. it was partly in response to rising concerns over the effect of all those alerts on our brains. over , people clamored for the chance, but author elana a. mugdan’s entry stood out with an amusing video, and in february the company took away her iphone s and handed her a kyocera flip phone. » about words casey bisson on #vitaminwater, #nophoneforayear, #scrollfreeforayear, #smartphones, #ethical technology, #humane technology, nov membership-driven news media from the membership guide’s handbook/manifesto: journalism is facing both a trust crisis and a sustainability crisis. membership answers to both. it is a social contract between a news organization and its members in which members give their time, money, energy, expertise, and connections to support a cause that they believe in. in exchange, the news organization offers transparency and opportunities to meaningfully contribute to both the sustainability and impact of the organization. elsewhere it continues: membership is not subscription by another name, nor a brand campaign that can be toggled on and off. …and: memberful routines are workflows that connect audience members to journalism and the people producing it. routines are the basis for a strong membership strategy. notice that audience members are specified here, which is likely a wider group than your members. casey bisson on #membership, #journalism, #monetization, #publishers, #news organizations, #media, oct political bias in social media algorithms and media monetization models new reports reveal yet more structural political biases in consumption and monetization models. » about wordscasey bisson on #politics, #media, #algorithms, #monetization, #bias, #journalism, #social media, #news organizations, oct media monetization vs. internet advertising media face structural, regulatory, and technical hurdles to effectively monetizing with ads on the internet, but there are some solutions that are working. » about words casey bisson on #advertising, #ads, #media monetization, #monetization models, #media, #journalism, #news organizations, aug the argument against likes: aim for deeper, more genuine interactions sweet pea on the state of social media and dating apps: “we are not creating a healthy society when we’re telling millions of young people that the key to happy relationships is photo worthy of an impulsive right swipe.” » about words casey bisson on #likes, #social media, #dating apps, #social software, #signal, aug paid reactions: virtual awards and tipping reddit and twitch both allow members to pay for the privilege of reacting to other member's content with special awards or stickers. » about words casey bisson on #social media, #reactions, #paid reactions, #virtual awards, #tipping, #revenue, #reddit, #twitch, aug reactions facebook introduced reactions with an emphasis on both the nuance they enabled and the mobile convenience: “[i]f you are sharing something that is sad [...] it might not feel comfortable to like that post.” later: “commenting might afford nuanced responses, but composing those responses on a [mobile] keypad takes too much time.” » about words casey bisson on #reactions, #likes, #social media, #facebook, #instagram, aug “likes” vs. “faves” twitter switched from faves to likes in . “you might like a lot of things, but not everything can be your *favorite*,” they explained. weeks after the change, liking activity for existing users was up % and % for new users. » about words casey bisson on #likes, #faves, #social media, #twitter, #facebook, #microcopy, aug honey cocktails: eau de lavender liquor.com’s recipe for eau de lavender, from a larger collection of cocktails with honey. they all look and sound delightful, but i can vouch for the eau de lavender. ingredients / oz tequila / oz fresh lemon juice / oz honey syrup egg white dash scrappy’s lavender bitters garnish: lavender sprig steps add all ingredients into a shaker and dry-shake (without ice). add ice and shake again to emulsify thoroughly. strain into a chilled coupe glass. garnish with a lavender sprig. honey syrup: add / cup honey and / cup water to a small saucepan over medium heat. (you can experiment and decide how much of a honey flavor you want in your syrup. the more honey you use, the thicker the syrup and stronger in flavor it will be.) stir until blended. strain into a jar and seal tightly with a lid. will keep for month in the refrigerator. ↩︎ casey bisson on #cocktails, #mixology, #honey, may satellite tracking if you’re not reading skyriddles blog, then you’re not tracking the sky above. and you might have missed the re-discovery of a satellite launched in and lost for nearly years. as it turns out, there’s a lot of stuff that’s been forgotten up there, and quite a bit that some are trying to hide. the blog is an entertaining view into the world satellites, including communication, spy, weather, research, and the occasional probe going further afield. casey bisson on #satellite tracking, #space, apr i'm missing restaurants now @nakedlunchsf was notable for having both a strong contender for the best burger in the city, _and_... casey bisson on #photo, #photoblog, #stayhome, #supportlocalbusiness, mar when unzip fails on macos with utf unzip can fail on macos when utf- chars are in the archive. the solution is to use ditto. via a github issue: ditto -v -x -k --sequesterrsrc --rsrc filename.zip destinationdirectory casey bisson on #zip, #unzip, #macos, #utf , feb tiktok vs. instagram zuckerberg describes tiktok as “almost like the explore tab that we have on instagram,” but connie chan suggests he's missing the deeper value of ai, and techcrunch's josh constantine suggests zuck is missing the bigger difference in intent on tiktok. » about words casey bisson on #tiktok, #instagram, #social media, #social software, #social networks, #social signals, #artificial intelligence, #ai, jan swipegram template benjamin lee’s instructions and downloadable template to make panoramic carousel instagrams (aka #swipegram), as illustrated via his animation above. » about words casey bisson on #instagram, #template, #swipegram, dec “it is clear that the books owned the shop... “it is clear that the books owned the shop rather than the other way about. everywhere they... casey bisson on #photo, #photoblog, #lovemaine, #portlandmaine, #mustbevancouver, #penderstreet, #downtownvancouver, dec “life is like riding a bicycle... “life is like riding a bicycle. to keep your balance, you must keep moving.” —wisdom by albert... casey bisson on #photo, #photoblog, #forahappymoment, #voreskbh, #visitcopenhagen, #buyfilmnotmegapixels, #ig_denmark, #fujipro h, #ishootfilm, #travelog, #filmisnotdead, #visitdenmark, #mytinyatlas, #pro h, #fuji, #believeinfilm, #københavn, #analoguepeople, #instapassport, #staybrokeshootfilm, #hasselblad, #igerscopenhagen, #flashesofdelight, #exploringtheglobe, nov notes about spotify creator features spotify often gets bashed by top creators. the service pays just $ . per stream, but with million users listening to an average of hours per month, those streams can add up for creators who can get the listener’s attention. spotify verifies artists who then get additional benefits on the platform. some artists find success the traditional route, some optimize their work for the system, others work the system…and some really work it. relevance to other network/aggregation platforms: tiny payments add up, and given a platform, creators will find a way to get and maximize value from it. the critical component is customers. casey bisson on #spotify, #creators, #social networks, #revenue, #aggregation, nov exiftool examples i use for encoding analog camera details i’m a stickler for detail and love to add exif metadata for my film cameras to my scanned images. these are my notes to self about the data i use most often. i only wish exif had fields to record the film details too. » about wordscasey bisson on #exiftool, #photography, #exif, #metadata, nov random notes on instagram delete your old photos, rebrand your page, and delete it entirely are all common advice. plus some tools and traps to be aware of. » about words casey bisson on #instagram, #social media, #photography, oct every media has its tastemakers and influencers every media, network, or platform has would-be influencers or promoters who can help connect consumers with creators. don’t mistake the value of these tastemakers, and be sure to find a place for them to create new value for your platform. » about wordscasey bisson on #spotify, #instagram, #social media, #social networks, #influencers, #tastemakers, oct storehouse: the most wonderful story sharing flop ever storehouse shuttered in summer , just a couple years after they launched, but the app and website introduced or made beautiful a few features that remain interesting now. » about wordscasey bisson on #storehouse, #photo sharing, #story sharing, #microblogging, #blogging, #social media, #user-generated content, #ugc, oct page of older posts →maisonbisson javascript is not available. we’ve detected that javascript is disabled in this browser. please enable javascript or switch to a supported browser to continue using twitter.com. you can see a list of supported browsers in our help center. help center terms of service privacy policy cookie policy imprint ads info © twitter, inc. something went wrong, but don’t fret — let’s give it another shot. islandora open meeting: april , | islandora skip to main content toggle navigation main menu home about events blog contact newsletter support islandora search search you are here : home islandora open meeting: april , about menu islandora foundation get started community contribute help islandora open meeting: april , we are happy to announce the date of our next open meeting! join us on april ,  any time between : - : pm edt. the open meetings are drop-in style sessions where users of all levels and abilities gather to ask questions, share use cases and get updates on islandora. there will be experienced islandora users on hand to answer questions or give demos. we would love for your to join us any time during the -hour window, so feel free to pop by any time! more details about the open meeting, and the zoom link to join, are in this google doc.  registration is not required. if you would like a calendar invite as a reminder, please let us know at community@islandora.ca. submitted by agriffith on tue, / / - : log in to post comments notvisible home about events blog contact newsletter support islandora © copyright islandora foundation. header photo credits. privacy policy. javascript is not available. we’ve detected that javascript is disabled in this browser. please enable javascript or switch to a supported browser to continue using twitter.com. you can see a list of supported browsers in our help center. help center terms of service privacy policy cookie policy imprint ads info © twitter, inc. something went wrong, but don’t fret — let’s give it another shot. hectic pace hectic pace a view on libraries, the library business, and the business of libraries my pre-covid things authors note: these parodies are always about libraries and always based on christmas songs, stories, or poems. being what it is, this year is an exception to both&# ;that&# ;s right, i&# ;m siding with my family and admitting that my favorite things is not a christmas song. (sung to the tune of “my favorite things&# ;) [click the youtube link to listen while you sing along.] eating in restaurants and movies on big screenspeople who don&# ;t doubt the virtue of vaccines.inspiring leaders who don&# ;t act like kings.these were a few of my pre-covid things. live music venues and in-person classes.no masks or ... sitting in the reading room all day (sung to the tune of “walking in a winter wonderland”) [click the youtube link to listen while you sing along.] people shhhhhh, are you listening? in the stacks, laptops glistening the reading light&# ;s bright the library&# ;s right for sitting in the reading room all day. gone away are the book stacks here to stay, the only town&# ;s fax. we share all our books without judgy looks. sitting in the reading room all day. in the lobby we could build a book tree. readers guide is green and they stack well. i&# ;ll say &# ;do we have &# ;em?&# ; you&# ;ll say, &# ;yeah man.&# ; ... it’s the best library time of the year (sung to the tune of “it&# ;s the most wonderful time of the year&# ;)  press play to sing along with the instrumental track! it&# ;s the best library time of the year with no more children yelling and no one is telling you &# ;get it in gear!&# ; it&# ;s the best library time of the year it&# ;s the qui-quietest season at school only smile-filled greetings and no more dull meetings where bosses are cruel it&# ;s the qui-quietest season at school there&# ;ll be books for re-stocking vendor end-of-year-hawking and overdue fine cash for beer send the word out to pre-schools drag queen visit ... maybe it’s books we need [i figured this was a song in desperate need of some new lyrics. sung to the tune of baby it&# ;s cold outside. you&# ;re gonna want to grab a singing partner and use the instrumental track for this one!] (listen to the track while you sing!) i really must binge (but maybe it&# ;s books we need) you mustn&# ;t infringe (it&# ;s definitely books we need) this season has been (reading will make you grin) so fun to watch (i&# ;ll hold the remote, you hold my scotch) my netflix queue scrolls forever (mystery, poems, whichever) and stranger things won&# ;t just watch itself (grab ... being a better ally: first, believe warning: i might make you uncomfortable. i’m uncomfortable. but it comes from an earnest place. i was recently lucky enough to participate with my oclc membership &# ; research division colleagues in deetta jones &# ; associates’ cultural competency training. this day-long session has a firm spot in the top of my professional development experiences. (not coincidentally, one of the others in that top was deetta’s management training i took part in when she was with the association of research libraries). a week later, i&# ;m still processing this incredible experience. and i&# ;m very grateful to oclc for sponsoring the workshop! ... fake news forever! librarians were among the first to join the call to arms and combat the onslaught of fake news that has permeated our political discussions for the last several months. frankly, it seems hard for anyone to be on the other side of this issue. but is it? not long after the effort to stop fake news in its tracks, a group of librarians began to consider the long-term implications of eradicating an entire body of content from history. thus began a concerted effort to preserve all the fake news that a vigilant group of librarians could gather up. building on ... how will you be remembered? my grandfather had a sizable library when he passed away, and his son (my father) would wind up with roughly half of it. i remember shelves and shelves of books of quotations. he was a criminal lawyer with a love of quotes. i either inherited this love or caught it through the osmosis of being surrounded by these books throughout my childhood. most of the books were ruined over the years by mold and silverfish and a dose of neglect. but i managed to save a few handfuls of eclectic titles. their smell still transports me to the basement of ... seeking certainty “uncertain times” is a phrase you hear a lot these days. it was actually in the title of the ala town hall that took place in atlanta last month (ala town hall: library advocacy and core values in uncertain times). political turmoil, uncertainty, divisiveness, and vitriol have so many of us feeling a bit unhinged. when i feel rudderless, adrift, even completely lost at sea, i tend to seek a safer port. i’ve exercised this method personally, geographically, and professionally and it has always served me well. for example, the stability and solid foundation provided by my family gives me solace ... no not google search box, just you (to the tune of “all i want for christmas is you”) (if you need a karaoke track, try this one) i don’t need a lot for freedom, peace, or love, democracy, and i don’t care about the congress or their failed bureaucracy i just want a li-brar-y filled with places just for me a librarian or two no not google search box, just you i don’t want a lot of features search results are too grotesque i don’t care about the systems back behind your reference desk i don’t need to download e-books on the de-vice of my choice noisy ... we are ala i’ve been thinking a lot about governance lately. that said, i will avoid the topic of the recent u.s. election as much as possible, even though it is a factor in what makes me think about governance. instead, i will focus on library governance and what makes it work and not work. spoiler alert: active participation. i am an admitted governance junky, an unapologetic lover of robert’s rules of order, and someone who tries to finds beauty in bureaucratic process. i blame my heritage. i come from a long line of federal government employees, all of us born in the ... planet code lib http://planet.code lib.org planet code lib - http://planet.code lib.org ed summers: https://inkdroid.org/ / / /coincidence/

    coincidence?


    - - t : : + : digital library federation: the #dlfteach toolkit: recommending epubs for accessibility https://www.diglib.org/the-dlfteach-toolkit-recommending-epubs-for-accessibility/

    dlf digital library pedagogy logothis post was written by hal hinderliter, as part of practitioner perspectives: developing, adapting, and contextualizing the #dlfteach toolkit, a blog series from dlf’s digital library pedagogy group highlighting the experiences of  digital librarians and archivists who utilize the #dlfteach toolkit and are new to teaching and/or digital tools.

    the digital library pedagogy working group, also known as #dlfteach, is a grassroots community of practice, empowering digital library practitioners to see themselves as teachers and equip teaching librarians to engage learners in how digital library technologies shape our knowledge infrastructure. the group is open to anyone interested in learning about or collaborating on digital library pedagogy. join our google group to get involved.

     


    for this blog post, i’ve opted to provide some background information on the topic of my #dlfteach toolkit entry: the epub (not an acronym) format, used for books and other documents. librarians, instructors, instructional designers and anyone else who needs to select file formats for content distribution should be aware of what epub has to offer!

    electronic books: the fight over formats

    the production and circulation of books, journals, and other long-form texts has been radically impacted by the growth of computer-mediated communication. electronic books (“e-books”) first emerged near a half-century ago as text-only ascii files, but are now widely available in a multitude of different file formats. most notably, three competing options have been competing for market dominance: pdf files, kf files (for amazon’s kindle devices), and the open-source epub format. the popularity of handheld kindle devices has created a devoted fan base for kf e-books, but in academia the ubiquitous pdf file remains the most common way to distribute self-contained digital documents. in contrast to these options, a growing movement is urging that libraries and schools eschew kindles and abandon their reliance on pdfs in favor of the epub electronic book format.

    the epub file format preserves documents as self-contained packages that manage navigation and presentation separately from the document’s reflowable content, allowing users to alter font sizes, typefaces, and color schemes to suit their individual preferences. e-books saved in the epub format are compatible with apple’s ipads and iphones as well as sony’s reader, barnes & nobles nook, and an expansive selection of software applications for desktop, laptop, and tablet computers. increasingly, that list includes screen reader software such as voice dream and vitalsource bookshelf, meaning that a single file format – epub – can be readily accessed by both sighted and visually impaired audiences.

    the lineage of epub can be traced back to the digital audio-based information system (daisy), developed in under the direction of the swedish library of talking books and braille. today, epub is an open-source standard that is managed by the international digital publishing forum, part of the w c. in contrast to the proprietary origins of both pdf and kf e-books, modifications to the open epub standard have always been subject to public input and debate.

    accessibility in academia: epub versus pdf

    proponents of universal design principles recommend the use of documents that are fully accessible to everyone, including users of assistive technologies, e.g., screen readers and refreshable braille displays. the dtbook format, a precursor to epub, was specifically referenced by rose et al. ( ) in their initial delineation of universal design for learning (udl) as part of udl’s requirement for multiple means of presentation. at the time, the assumption was that dtbooks would be distributed only to students who needed accessible texts, with either printed copies or pdf files for sighted learners. today, however, it is no longer necessary to provide multiple formats, since epub (the accessibility community’s preferred replacement for dtbooks) can be used with equal efficacy by all types of students.

    in contrast, pdf files can range from completely inaccessible to largely accessible, depending on the amount of effort the publisher expended during the remediation process. pdf files generated from word processing programs (e.g., microsoft word) are not accessible by default, but instead require additional tweaks that necessitate the use of adobe’s acrobat pro software (the version of acrobat that retails for $ per year). users of assistive technologies have no recourse but to attempt opening a pdf file before often finding that the document lacks structure (needed for navigation), alt tags, metadata, or other crucial features. even for sighted learners, pdfs downloaded from their university’s online repository will be difficult to view on smartphones, since pdf’s fixed page dimensions will require endless zooming and scrolling to display each column of text at an adequate font size.

    the superior accessibility of epub has inspired major publishers to establish academic repositories of articles in epub format, e.g., abc-clio, acls humanities, ebsco e-books, proquest’s ebrary, elsevier’s sciencedirect, taylor & francis. many digital-only journals offer their editions as epubs. for example, trude eikebrokk, editor of professions & professionalism, investigated the advantages of publishing in the epub format as described in this excerpt from the online journal code{ }lib:

    there are two important reasons why we wanted to replace pdf as our primary e-journal format. pdf is a print format. it will never be the best choice for reading on tablets (e.g. ipad) or smartphones, and it is challenging to read pdf files on e-book readers … we wanted to replace or supplement the pdf format with epub to better support digital reading. our second reason for replacing pdf with epub was to alleviate accessibility challenges. pdf is a format that can cause many barriers, especially for users of screen readers (synthetic speech or braille). for example, excel tables are converted into images, which makes it impossible for screen readers to access the table content. pdf documents might also lack search and navigation support, due to either security restrictions, a lack of coded structure in text formats, or the use of pdf image formats. this can make it difficult for any reader to use the document effectively and impossible for screen reader users. on the other hand, correct use of xhtml markup and css style sheets in an epub file will result in search and navigation functionalities, support for text-to-speech/braille and speech recognition technologies. accessibility is therefore an essential aspect of publishing e-journals: we must consider diverse user perspectives and make universal design a part of the publishing process.

    the future of epub

    a robust community of accessibility activists, publishers, and e-book developers continues to advance the epub specification. the update to epub added synchronized audio narration, embedded video, mathml equations, html animations, and javascript-based interactivity to the format’s existing support for metadata, hyperlinks, embedded fonts, text (saved as xhtml files) and illustrations in both scalable vector graphic (svg) and pixel-based formats. next up: the recently announced upgrade to epub . , which embraces documents created under the . standard while improving support for accessible rich internet applications (aria) and other forms of rich media. if you’re ready to join this revolution, have a run through the #dlfteach toolkit’s epub makerspace lesson plan!

    the post the #dlfteach toolkit: recommending epubs for accessibility appeared first on dlf.

    - - t : : + : gayle hangingtogether: nederlandse ronde tafel sessie over next generation metadata: denk groter dan naco en worldcat http://feedproxy.google.com/~r/hangingtogetherorg/~ /n-abc qabia/

    met dank aan ellen hartman, oclc, voor het vertalen van de oorspronkelijke engelstalige blogpost.

    op maart werd een nederlandse ronde tafel discussie georganiseerd als onderdeel van de oclc research discussieserie over next generation metadata

    oclc metadata discussion series

    bibliothecarissen, met achtergronden in metadata, bibliotheeksystemen, de nationale bibliografie en back-office processen, namen deel aan deze sessie. hierbij werd een mooie variatie aan academische en erfgoed instellingen in nederland en belgië vertegenwoordigd. de deelnemers waren geëngageerd, eerlijk en leverden met hun kennis en inzicht constructieve bijdragen aan een prettige uitwisseling van kennis. 

    in kaart brengen van initiatieven 
    kaart van next-gen metadata initiatieven (nederlandse sessie)

    net als in de andere ronde tafel sessies werden de deelnemers gevraagd om in kaart te helpen brengen wat voor next generation metadata initiatieven er in nederland en belgië worden ontplooid. de kaart die daarmee werd gevuld laat zien dat in deze regio een sterke vertegenwoordiging is van bibliografische en erfgoed projecten (zie de linker helft van de matrix). verschillende next-generation metadata projecten van de koninklijke bibliotheek nederland werden omschreven, zoals:

    • automatische metadata creatie, waarbij tools voor het taggen en catalogiseren van naam authority records worden geïdentificeerd en getest. 
    • de entity finder, een tool die wordt ontwikkeld om rda entities (personen, werken en expressies) te helpen ontlenen vanuit authorities en bibliografische records. 

    de digitale erfgoed referentie architectuur (dera) is ontwikkeld als onderdeel van een nationale strategie voor digitaal erfgoed in nederland. het is een framework voor het beheren en publiceren van erfgoed informatie als linked open data (lod), op basis van overeengekomen conventies en afspraken. het van gogh worldwide platform is een voorbeeld van de applicatie van dera, waar metadata gerelateerd aan de kunstwerken van van gogh, die in bezit zijn van nederlandse erfgoed instellingen en in privé bezit worden geaggregeerd.   

    een noemenswaardig in kaart gebracht initiatief op het gebied van research informatie management (rim) en scholarly communications was de nederlandse open knowledge base. een in het afgelopen jaar opgestart initiatief binnen de context van de deal tussen elsevier en vsnu, nfu en nwo om gezamenlijk open science services te ontwikkelen op basis van rim systemen, elsevier databases, analytics oplossingen en de databases van de nederlandse onderzoeksinstellingen. de open knowledge base zal nieuwe applicaties kunnen voeden met informatie, zoals een dashboard voor het monitoren van de sustainable development goals van de universiteiten. het uitgangspunt van de knowledge base is het significant kunnen verbeteren van de analyse van de impact van research. 

    wat houdt ons tegen? 

    ondanks dat er tijdens de sessie innovatieve projecten in kaart werden gebracht, werd er net als in sommige andere sessies, onduidelijkheid gevoeld over hoe we nu verder door kunnen ontwikkelen. ook was er sprake van enig ongeduld met de snelheid van de transitie naar next generation metadata. sommige bibliotheken waren gefrustreerd over het gebrek aan tools binnen de huidige generatie systemen om deze transitie te versnellen. zoals de integratie van persistant identifiers (pid), lokale authorities of links met externe bronnen. meerdere tools moeten gebruiken voor een workflow voelt als een stap terug in plaats van vooruit.  

    buiten praktische belemmeringen werd de discussie vooral gedomineerd door de vraag wat ons tegenhoudt in deze ontwikkeling. met zoveel bibliografische data die al als lod gepubliceerd wordt, wat is er dan verder nodig om deze data te linken? zouden we niet op zoek moeten naar partners om samen een kennis-ecosysteem te ontwikkelen? 

    vertrouwen op externe data 

    een deelnemer gaf aan dat bibliotheken voorzichtig of terughoudend zijn met de databronnen waarmee ze willen linken. authority files zijn betrouwbare bronnen, waarvoor er nog geen gelijkwaardige alternatieven bestaan in het zich nog ontwikkelende linked data ecosysteem. het gebrek aan conventies voor de betrouwbaarheid is misschien een reden waarom bibliotheken misschien wat terughoudend zijn in het aangaan van linked data partnerschappen of terug deinzen voor het vertrouwen op externe data, zelfs van gevestigde bronnen als wikidata. want, het linken naar een databron is een indicatie van vertrouwen en een erkenning van de datakwaliteit. 

    het gesprek ging vervolgens verder over linked datamodellen. welke data creëer je zelf? hoe geef je je data vorm en link je met andere data? sommige deelnemers gaven aan dat er nog steeds een gebrek aan afspraken en duidelijkheid is over concepten zoals een “werk”. anderen gaven aan dat het vormgeven van concepten precies is waar linked data om draait en dat meerdere onthologieën naast elkaar kunnen bestaan. in andere woorden, het is misschien niet nodig om de naamgeving in harde standaarden te vatten.

    “er is geen uniek semantisch model. wanneer je verwijst naar gegevens die al door anderen zijn gedefinieerd, geef je de controle over dat stukje informatie op, en dat kan een mentale barrière zijn tegen het op de juiste manier werken met linked data. het is veel veiliger om alle data in je eigen silo op te slaan en te beheren. maar op het moment dat je dat los kunt laten, kan de wereld natuurlijk veel rijker worden dan je in je eentje ooit kunt bereiken.” 

    oefenen met denken in linked data 

    het gesprek ging verder met een discussie over wat we kunnen doen om bibliotheekmedewerkers die catalogiseren te trainen. een van de deelnemers vond dat het handig zou zijn om te beginnen met ze te leren te denken in linked dataconcepten en om te oefenen met het opbouwen van een knowledge graph en het experimenteren met het bouwen van verschillende structuren. net als dat een kind dat doet door met lego te spelen. de deelnemers waren het erover eens dat we op dit moment nog te weinig kennis hebben van de mogelijkheden en de consequenties van het gebruik van linked data.

    “we moeten leren onszelf te zien als uitgevers van metadata, zodat anderen het kunnen vinden – maar we hebben geen idee wie de anderen zijn, we moeten zelfs groter denken dan de naco van de library of congress of worldcat. we hebben het niet langer over de records die we maken, maar over stukjes records die uniek zijn, want veel komt al van elders. we moeten ons dit realiseren en onszelf afvragen: wat is onze rol in het grotere geheel? dit is erg moeilijk om te doen!” 

    de deelnemers gaven aan dat het erg belangrijk was om deze discussie binnen hun bibliotheek op gang te brengen. maar hoe doe je dat precies? het is een groot onderwerp en het zou mooi zijn als daar vanuit het management ook aandacht voor is. 

    niet relevant voor mijn bibliotheek 

    een leidinggevende binnen de deelnemersgroep reageerde hierop en gaf aan:

    “het valt me op dat de hoeveelheid bibliotheken die hier nog echt mee te maken hebben kleiner wordt. (…) [in mijn bibliotheek] produceren we nauwelijks zelf nog metadata. (…) als we kijken naar wat we zelf nog produceren is dat bijvoorbeeld nog het beschrijven van foto’s van een studentenvereniging, eigenlijk niets dus. metadata is eigenlijk alleen nog een onderwerp voor een kleine groep specialisten.” 

    hoe provocerend deze observatie ook was, dit weerspiegelt wel een realiteit die we moeten erkennen en tegelijkertijd in perspectief moeten plaatsen. daar was helaas geen tijd voor, want de sessie liep ten einde. het was zeker een gesprek waar we nog een tijd hadden kunnen doorpraten! 

    over de oclc research discussie serie over next generation metadata 

    in maart hield oclc research een discussiereeks gericht op twee rapporten: 

    1. transitioning to the next generation of metadata”   
    1. transforming metadata into linked data to improve digital collection discoverability: a contentdm pilot project”.   

    de rondetafelgesprekken werden gehouden in verschillende europese talen en de deelnemers konden hun eigen ervaringen delen, een beter begrip krijgen van het onderwerp en kregen handvatten om vol vertrouwen plannen te maken voor de toekomst. . 

    de plenaire openingssessie opende de vloer voor discussie en verkenning en introduceerde het thema en de bijbehorende onderwerpen. samenvattingen van alle rondetafelgesprekken worden gepubliceerd op de oclc research-blog hanging together.

    op de afsluitende plenaire vergadering op april werden de verschillende rondetafelgesprekken samengevat.  

    the post nederlandse ronde tafel sessie over next generation metadata: denk groter dan naco en worldcat appeared first on hanging together.

    - - t : : + : titia van der werf open knowledge foundation: open data day – it’s a wrap https://blog.okfn.org/ / / /open-data-day- -its-a-wrap/

    open data day event flyers

    on saturday th march , the eleventh open data day took place with people around the world organising over events to celebrate, promote and spread the use of open data.

    thanks to the generous support of this year’s mini-grant funders –microsoft, uk foreign, commonwealth and development office, mapbox, global facility for disaster reduction and recovery, latin american open data initiative, open contracting partnership and datopian – the open knowledge foundation offered more than mini-grants to help organisations run online or in-person events for open data day.

    we captured some of the great conversations across asia/the pacific, europe/middle east/africa and the americas using twitter moments.

    below you can discover all the organisations supported by this year’s scheme as well as seeing photos/videos and reading their reports to help you find out how the events went, what lessons they learned and why they love open data day:

    environmental data
    • code for pakistan
      • a hack day to open and publish the block coordinates of the plantation conducted during the billion tree tsunami in pakistan
      • read event report
    • drm africa (democratic republic of the congo)
      • preventing vulnerable communities from river floods through risk data collection, analysis and communication
      • read event report
    • escuela de fiscales (argentina)
      • our goal is to show the community and other civil society organizations the importance of open data in preserving and caring for the environment, and the urgency of taking action against climate change and pollution, and how open data can improve public politics with the participation of citizens
      • read event report
    • government degree college bemina,j and k higher education (india)
      • make the community aware about the availability and benefits of environmental data for addressing environmental concerns in kashmir valley
      • read event report
    • future lab (mexico)
      • engage with the local community and enable citizen participation through the use of open data for the proposal of cleaner and more sustainable public policies
      • read event report
    • mijas multimedia (democratic republic of the congo)
      • strengthen the community resilience to the rapid rise of lake tanganyika through the use of open data
      • read event report
    • niger delta snapshots (nigeria)
      • use open data to uncover hidden threats damaging nigerian mangrove and demonstrate the necessity for urgent action to save nigerian mangrove
      • read event report
    • open knowledge nepal
      • organise a datathon that will bring open data enthusiasts to work on the real-time air quality data and twitter bot enhancement, so that people can use the service and get informed with the recent situations of air quality in their surroundings
      • read event report
    • permapeople (germany)
      • present and discuss the importance and challenges of collecting and sharing open source data on plants and growing to assist in the growth of the regenerative movement
      • read event report
    • zanzibar volunteers for environmental conservation (tanzania)
      • the main goal is to contribute to open data initiatives by helping the students understand more about open data and environmental issues
      • read event report
    tracking public money flows open mapping
    • dih slovenia
      • disseminating existing open mapping solutions, sharing best practices and discussion of possibilities for improving life in communities through open mapping
      • read event report
    • federal university of bahia (brazil)
      • strengthen a global network of community data collectors from communities, organisations, as well as academic institutions by ) focusing on sharing experiences from specific cases where particular mapping tools were used as part of strategies of community empowerment and ) using the insights to subsequently co-design a platform to empower data collectors globally
      • read event report
    • geoladies ph (philippines)
      • since march is international women’s month and st march is international transgender day of visibility, we would like to hold an event that empowers and engages women (cisgender and transgender) to map out features and amenities (women support desks, breastfeeding stations, gender-neutral comfort rooms, and lgbt safe spaces) and feature lightning talks to highlight women in mapping
      • read event report
    • geosm (cameroon)
      • host a “geo-evangelisation”, workshop in the use of josm (java openstreetmap ) and geosm (the first % african open source geolocation platform)
      • read event report
    • ilabs@mak project (uganda)
      • to understand and value the need of farmers’ live geo map across food value chain in africa to better food traceability and security
      • read event report
    • labiks – latin american bike knowledge sharing
      • to promote and stimulate the sharing of open data about the bike-sharing systems in latin america and to promote and discuss our online open map, aiming to improve it
      • read event report
    • monitor de femicidios de utopix (venezuela)
    • periféria policy and research center
      • learn about the relevance of open data in collective/critical mapping of gentrification in hungary
      • read event report
    • polimappers (italy)
      • host an introductory mapping event on openstreetmap so that students and people interested in collaborating gain the basic skills needed to tackle more advanced tools later in the year
      • read event report
    • smartct (philippines)
      • launch the mapatanda initiative (a portmanteau of mapa — which means a map — and tanda — which can mean an older adult but can also mean remember); which is an initiative that seeks to improve the number and quality of data in openstreetmap that are important and relevant to older adults (senior citizens) and the ageing population ( + years old) in the philippines
      • read event report
    • suza youthmappers
      • create awareness on open data data use, and how the students can use the data in developing innovative web and mobile applications to solve existing challenges in the society
      • read event report
    • tutela learning network in collaboration with local activists and researchers
      • start a debate on alternative, community-managed forms of housing in the city of lisbon based on the model of grant of use and raising awareness on the importance of accessible data on available real estate resources owned by the city
      • read event report
    • unificar ações e informações geoespaciais – uaigeo – universidade federal de são joão del-rei (ufsj) 
      • disseminate the use and importance of open data to support the solution of territorial tension points, the use of water and the preservation of cultural heritage, as well as providing participants with contacts with collaborative mapping applications
      • read event report
    data for equal development
    • youth policy cafe (kenya)
      • undertake a webinar via the zoom platform themed “leveraging open data as an asset for inclusive & sustainable development in kenya”
      • read event report
    • accesa (costa rica)
      • explore, map, visualize and disseminate key data about the projects being implemented by the territorial councils of rural development, the main participatory bodies for fostering rural development in costa rica, and assess their progress, the money being spent on them, the results obtained, and their impact in narrowing the many social gaps that currently affect the different rural regions of the country
      • read event report
    • afroimpacto
      • discuss the importance to the black community of the open data discussion
      • read event report
    • cost honduras
      • present how we can promote sustainable infrastructure by using data disclosed under the open contracting for infrastructure data standard and engage citizens and civil society organisations to demand government accountability by using a tool called infras
      • read event report
    • dados abertos de feira (brazil)
      • promote and discuss the open data knowledge to our local community (city of feira de santana, countryside of brazil), bringing together the academy, government agents and the society itself
      • read event report
    • datafest tbilisi (georgia)
      • highlight and promote the use of data and data-driven products as an effective way to tackle pressing social issues and inequality
      • read event report
    • demokrasya (democratic republic of the congo)
      • raise awareness of the congolese community especially the women’s rights community on the use of open data in defending the women’s accessibility to employment
      • read event report
    • fundación eduna (colombia)
      • develop activities to address the issue of strengthening the capacity for creative thinking of children and young people in the central region of colombia making use and taking advantage of open data
      • read event report
    • gênero e número (brazil)
      • explore open data to get a comprehensive landscape on the labour market for women in brazil during the pandemic
      • read event report
    • girls’ tech-changer community (cameroon)
      • show the benefits of open data (such as an increase in efficiency, transparency, innovation, and economic growth) and to encourage the adoption of open data policies in various government bodies, businesses, and civil societies
      • read event report
    • hawa feminist coalition (somalia)
      • advance the production, dissemination and openness of sex-disaggregated data in somalia in support of evidence-based planning and policy-making as well as tracking of progress by the government and other stakeholders to achieve the sustainable development goals (sdgs)
      • read event report
    • hope for girls and women tanzania
      • teaching community about the benefit of using data for development
      • read event report
    • international youth alliance for family planning- togo (iyafp-togo)
      • develop an open map of contraceptive methods and service availability in agbalepedo area
      • read event report
    • ipandetec (panama)
      • train panamanian women on their current position, role and future in the world of open data
      • read event report
    • iwatch africa
      • demonstrate how equal development within the digital ecosystem in africa can be improved by leveraging data on online abuse and harassment of female journalists
      • read event report
    • kiyita foundation
      • encourage local women to get access to data about economic development
      • read event report
    • madagascar initiatives for digital innovation
    • nepal open source klub
      • we will create a glossary of technical terms and words that are commonly used on websites/in software and translate those into nepali
      • read event report
    • nukta africa (tanzania)
      • maximizing the use of open data to increase accountability through data journalism
      • read event report
    • programming historian (chile)
      • walk participants through the process of visualising qualitative and quantitative development open data for equal development in latin america, using open access tools
      • read event report
    • punch up (thailand)
      • emphasise what would be lost if we don’t have open data in our country
      • read event report
    • rausing zimbabwe
      • create a platform and outlet for information distribution, updates and discussion with communities on the issues surrounding peace and security in the age of the pandemic
      • read event report
    • vilnius legal hackers (lithuania)

    thanks to everyone who organised or took part in these celebrations and see you next year for open data day !

    need more information?

    if you have any questions, you can reach out to the open knowledge foundation’s open data day team by emailing opendataday@okfn.org or on twitter via @okfn.

    - - t : : + : stephen abbott pugh digital library federation: the #dlfteach toolkit: participatory mapping in a pandemic https://www.diglib.org/the-dlfteach-toolkit-participatory-mapping-in-a-pandemic/

    dlf digital library pedagogy logothis post was written by jeanine finn (claremont colleges library), as part of practitioner perspectives: developing, adapting, and contextualizing the #dlfteach toolkit, a blog series from dlf’s digital library pedagogy group highlighting the experiences of  digital librarians and archivists who utilize the #dlfteach toolkit and are new to teaching and/or digital tools.

    the digital library pedagogy working group, also known as #dlfteach, is a grassroots community of practice, empowering digital library practitioners to see themselves as teachers and equip teaching librarians to engage learners in how digital library technologies shape our knowledge infrastructure. the group is open to anyone interested in learning about or collaborating on digital library pedagogy. join our google group to get involved.


    see the original lesson plan in the #dlfteach toolkit.

    our original activity was designed around using a live googlesheet in coordination with arcgis online to collaboratively map historic locations for an in-class lesson to introduce students to geospatial analysis concepts. in our example, a history instructor had identified a list of cholera outbreaks with place names from th-century colonial reports.

    in the original activity, students were co-located in a library classroom, reviewing the historic cholera data in groups. a google sheet was created and shared with everyone in the class for students to enter “tidied” data from the historic texts collaboratively. the students then worked with a live link from google sheets, allowing the outbreak locations to be served directly to the arcgis online map. it was successful and a useful tool for encouraging engagement and for getting familiar with gis.

    then covid- in arrived. instead of a centuries-distant disease outbreak, students learning digital mapping this past year were thrust into socially-distant instructional settings driven by a contemporary pandemic that radically altered their modes of learning. the collaborative affordances of tools like arcgis online were pressed into service to help students collaborate effectively and meaningfully in real-time while learning from home.

    as an example, one geology professor at pomona college encouraged her students to explore the geology of their local environment. building on shared readings and lectures on geologic history and rock formations, students were encouraged to research the history of the land around them, and include photographs, observations, and other details to enrich the arcgis storymap. the final map included photographs and geology facts from students’ home locations around the world.

    geology of places we live: group projects for module "geology of the solid earth" in geol e. , pomona college, september , header for geology class group storymap at pomona college, fall

     

    a key feature of the arcgis storymap platform that appealed to the instructor was the ability for the students to work collaboratively on the platform itself — not across shared files on folders on box, gsuite, the lms, etc. while this functioned reasonably well, there were several roadblocks to effective collaboration that we encountered along the way. most of the challenges related to permissions settings related to arcgis online administration, as the “shared update” features are not set as default permissions. other challenges included file size limitations for images the students wished to upload, the inability of more than one user to edit the same file simultaneously, and potential security issues (including firewalls) in nations with more restrictive internet laws.

    reflecting on these uses of storymaps over this past semester, we encourage instructors and library staff interested in to:

    1. review user license permissions and best practices for arcgis storymap collaboration from esri (some links below).
    2. plan ahead to help students with collecting appropriate images, including discussions of file size and copyright.
    3. encourage the instructor to coordinate student groups with defined roles and responsibilities to lessen the likelihood of multiple editors working on the same storymap at once (which can cause corruption of the files.
    4. get clarity from it and other support staff as needed to determine if students are working remotely from countries that may have restrictions on internet use.

     

    resources:

    participatory mapping with google forms, google sheets, and arcgis online (esri community education blog): https://community.esri.com/t /education-blog/participatory-mapping-with-google-forms-google-sheets-and-arcgis/ba-p/

    optimize group settings to share stories like never before (esri arcgis blog): https://www.esri.com/arcgis-blog/products/story-maps/constituent-engagement/optimize-group-settings-to-share-stories-like-never-before/

    teach with story maps: announcing the story maps curriculum portal (university of minnesota, u-spatial: https://research.umn.edu/units/uspatial/news/teach-story-maps-announcing-story-maps-curriculum-portal

    getting started with arcgis storymaps (esri): https://storymaps.arcgis.com/stories/cea a a d cccb d c b bc

    vi conclusion recommendations

    gather materials ahead of time. photographs from digital archives, maps
    there may be data cleaning issues.

    the post the #dlfteach toolkit: participatory mapping in a pandemic appeared first on dlf.

    - - t : : + : gayle david rosenthal: dogecoin disrupts bitcoin! https://blog.dshr.org/ / /dogecoin-disrupts-bitcoin.html two topics i've posted about recently, elon musk's cult and the illusory "prices" of cryptocurrencies, just intersected in spectacular fashion. on april the bitcoin "price" peaked at $ . k. early on april , the musk cult saw this tweet from their prophet. immediately, the dogecoin "price" took off like a falcon .

    a day later, jemima kelley reported that if you believe, they put a dogecoin on the moon. that was to say that:
    dogecoin — the crypto token that was started as a joke and that is the favourite of elon musk — is having a bit of a moment. and when we say a bit of a moment, we mean that it is on a lunar trajectory (in crypto talk: it is going to da moon).

    at the time of writing this, it is up over per cent in the past hours — more than tripling in value (for those of you who need help on percentages, it is friday afternoon after all). over the past week it’s up more than per cent (almost seven times higher!).
    the headlines tell the story — timothy b. lee's dogecoin has risen percent in the last week because why not and joanna ossinger's dogecoin rips in meme-fueled frenzy on pot-smoking holiday.

    the dogecoin "price" graph kelly posted was almost vertical. the same day, peter schiff, the notorious gold-bug, tweeted:
    so far in #bitcoin has lost % of its value verses #dogecoin. the market has spoken. dogecoin is eating bitcoin. all the bitcoin pumpers who claim bitcoin is better than gold because its price has risen more than gold's must now concede that dogecoin is better than bitcoin.
    below the fold i look back at this revolution in crypto-land.

    i'm writing on april , and the bitcoin "price" is around $ k, about % of its peak on april . in the same period dogecoin's "price" peaked at $ . , and is now around $ . , or % of its $ . "price" on april . there are some reasons for bitcoin's slump apart from people rotating out of btc into doge in response to musk's tweet. nivesh rustgi reports:
    bitcoin’s hashrate dropped % from all-time highs after an accident in the xinjiang region’s mining industry caused flooding and a gas explosion, leading to deaths with workers trapped since.
    ...
    the leading bitcoin mining data centers in the region have closed operations to comply with the fire and safety inspections.

    the chinese central authority is conducting site inspections “on individual mining operations and related local government agencies,” tweeted dovey wan, partner at primitive crypto.
    ...
    the accident has reignited the centralization problems arising from china’s dominance of the bitcoin mining sector, despite global expansion efforts.
    the drop in the hash rate had the obvious effects. david gerard reports:
    the bitcoin hash rate dropped from exahashes per second to eh/s. the rate of new blocks slowed. the bitcoin mempool — the backlog of transactions waiting to be processed — has filled. transaction fees peaked at just over $ average on april.
    the average btc transaction fee is now just short of $ , with a median fee over $ ! the btc blockchain did around k transactions on april , but on april it could only manage k.

    it is also true that doge had upward momentum before musk's tweet. after being nearly flat for almost a month, it had already doubled since april .

    kelly quotes david kimberley at freetrade:
    dogecoin’s rise is a classic example of greater fool theory at play, dogecoin investors are basically betting they’ll be able to cash out by selling to the next person wanting to invest. people are buying the cryptocurrency, not because they think it has any meaningful value, but because they hope others will pile in, push the price up and then they can sell off and make a quick buck.

    but when everyone is doing this, the bubble eventually has to burst and you’re going to be left short-changed if you don’t get out in time. and it’s almost impossible to say when that’s going to happen.
    kelly also quotes khadim shubber explaining that this is all just entertainment:
    bitcoin, and cryptocurrencies in general, are not directly analogous to the fairly mundane practice of buying a lottery ticket, but this part of its appeal is often ignored in favour of more intellectual or high-brow explanations.

    it has all the hallmarks of a fun game, played out across the planet with few barriers to entry and all the joy and pain that usually accompanies gambling.

    there’s a single, addictive reward system: the price. the volatility of cryptocurrencies is often highlighted as a failing, but in fact it’s a key part of its appeal. where’s the fun in an asset whose price snoozes along a predictable path?

    the rollercoaster rise and fall and rise again of the crypto world means that it’s never boring. if it’s down one day (and boy was it down yesterday) well, maybe the next day it’ll be up again.
    note the importance of volatility. in a must-read interview that new york magazine entitled bidenbucks is beeple is bitcoin prof. george galloway also stressed the importance of volatility:
    young people want volatility. if you have assets and you’re already rich, you want to take volatility down. you want things to stay the way they are. but young people are willing to take risks because they can afford to lose everything. for the opportunity to double their money, they will risk losing everything. imagine a person who has the least to lose: he’s in solitary confinement in a supermax-security prison. that person wants maximum volatility. he prays for such volatility, that there’s a revolution and they open the prison.

    people under the age of are fed up. they have less than half of the economic security, as measured by the ratio of wealth to income, that their parents did at their age. their share of overall wealth has crashed. a lot of them are bored. a lot of them have some stimulus money in their pocket. and in the case of gamestop, they did what’s kind of a mob short squeeze.
    ...
    i see crypto as a mini-revolution, just like gamestop. the central banks and governments are all conspiring to create more money to keep the shareholder class wealthy. young people think, that’s not good for me, so i’m going to exit the ecosystem and i’m going to create my own currency.
    this all reinforces my skepticism about the "price" and "market cap" of cryptocurrencies. - - t : : + : david. (noreply@blogger.com) david rosenthal: what is the point? https://blog.dshr.org/ / /what-is-point.html during a discussion of nfts, larry masinter pointed me to his proposal the 'tdb' and 'duri' uri schemes, based on dated uris. the proposal's abstract reads:
    this document defines two uri schemes. the first, 'duri' (standing
    for "dated uri"), identifies a resource as of a particular time.
    this allows explicit reference to the "time of retrieval", similar to
    the way in which bibliographic references containing uris are often
    written.

    the second scheme, 'tdb' ( standing for "thing described by"),
    provides a way of minting uris for anything that can be described, by
    the means of identifying a description as of a particular time.
    these schemes were posited as "thought experiments", and therefore
    this document is designated as experimental.
    as far as i can tell, this proposal went nowhere, but it raises a question that is also raised by nfts. what is the point of a link that is unlikely to continue to resolve to the expected content? below the fold i explore this question.

    i think there are two main reasons why duri: went nowhere:
    • the duri: concept implies that web content in general is not static, but it is actually much more dynamic than that. even the duri: specification admits this:
      there are many uris which are, unfortunately, not particularly
      "uniform", in the sense that two clients can observe completely
      different content for the same resource, at exactly the same time.
      personalization, advertisements, geolocation, watermarks, all make it very unlikely that either several clients accessing the same uri at the same time, or a single client accessing the same uri at different times, would see the same content.
    • when this proposal was put forward in , it was competing with a less elegant but much more useful competitor that had been in use for years. the duri: specificartion admits that:
      there are no direct resolution servers or processes for 'duri' or
      'tdb' uris. however, a 'duri' uri might be "resolvable" in the sense
      that a resource that was accessed at a point in time might have the
      result of that access cached or archived in an internet archive
      service. see, for example, the "internet archive" project
      but the duri: uri doesn't provide the information needed to resolve to the "cached or archived" content. the internet archive's wayback machine uses uris which, instead of the prefix duri:[datetime]: have the prefix https://web.archive.org/web/[datetime]/. this is more useful, both because browsers will actually resolve these uris, and because they resolve to a service devoted to delivering the content of the uri at the specified time.
    the competition for duri: was not merely long established, but also actually did what users presumably wanted, which was to resolve to the content of the specified url at the specified time.

    it is true that a user creating a wayback machine url, perhaps using the "save page now" button, would preserve the content accessed by the wayback machine's crawler. which might be different from that accessed by the user themselves. but the user could compare the two versions at the time of creation, and avoid using the created wayback machine url if the differences were significant. publishing a wayback machine url carries an implicit warranty that the creator regarded any differences as insignificant.

    the history of duri: suggests that there isn't a lot of point in "durable" uris lacking an expectation that they will continue to resolve to the original content. nfts have the expectation, but lack the mechanism necessary to satisfy the expectation.

    - - t : : + : david. (noreply@blogger.com) hangingtogether: recognizing bias in research data – and research data management http://feedproxy.google.com/~r/hangingtogetherorg/~ / moyeyges/

    as the covid pandemic grinds on, vaccinations are top of mind. a recent article published in jama network open examined whether vaccination clinical trials over the last decade adequately represented various demographic groups in their studies. according to the authors, the results suggested they did not: “among us-based vaccine clinical trials, members of racial/ethnic minority groups and older adults were underrepresented, whereas female adults were overrepresented.” the authors concluded that “diversity enrollment targets should be included for all vaccine trials targeting epidemiologically important infections.”

    dr. tiffany grant

    my colleague rebecca bryant and i recently enjoyed an interesting and thought-provoking conversation with dr. tiffany grant, assistant director for research and informatics with the university of cincinnati libraries (an oclc research library partnership member) on the topic of bias in research data. dr. grant neatly summed up the issue by observing that data collected should be inclusive of all the groups who are impacted by outcomes. as the jama article illustrates, that is clearly not always the case – and the consequences can be significant for decision- and policy-making in critical areas like health care.

    the issue of bias in research data has been acknowledged for some time; for example, the launch of the human genome project in the late s/early s helped raise awareness of the problem, as did observed differences in health care outcomes across demographic groups. and efforts are underway to help remedy some of the gaps. one initiative, the us national institutes of health’s all of us research program, aims to build a database of health data collected from a diverse cohort of at least one million participants. the rationale for the project is clearly laid out: “to develop individualized plans for disease prevention and treatment, researchers need more data about the differences that make each of us unique. having a diverse group of participants can lead to important breakthroughs. these discoveries may help make health care better for everyone.”

    extrapolation of findings observed in one group to all other groups often leads to poor inferences, and researchers should take this into account when designing data collection strategies. the peer review process should act as a filter for identifying research studies that overlook this point in their design – but how well is it working? as in many other aspects of our work and social lives, unconscious bias may play a role here: lack of awareness of the problem on the part of reviewers means that studies with flawed research designs may slip through.

    and that leads us to what dr. grant believes is the principal remedy for the problem of bias in research data: education. researchers need training that helps them recognize potential sources of bias in data collection, as well as understand the implications of bias for interpretation and generalization of their findings. the first step in solving a problem is to recognize that there is a problem. some disciplines are further along than others in addressing bias in research data, but in dr. grant’s view, there is still ample scope for raising awareness across campus about this topic.

    academic libraries can help with this, by providing workshops and training programs, and gathering relevant information resources. at the university of cincinnati, librarians are often embedded in research teams, providing an excellent opportunity to share their expertise on this issue. raising awareness about bias in research data is also an opportunity to partner with other campus units, such as the office of research, colleges/schools, and research institutes (for more information on how to develop and sustain cross-campus partnerships around research support services see our recent oclc research report on social interoperability).

    many institutions are currently implementing equality, diversity, and inclusion (edi) training, and modules addressing bias in research data might be introduced as part of edi curricula for researchers. this could also be an area of focus for professional development programs supporting doctoral, postdoctoral, and other early-career researchers. it seems that many edi initiatives focus on issues related to personal interactions or recruiting more members of underrepresented groups into the field. for researchers, it may be useful to supplement this training with additional programs that focus on edi issues as they specifically relate to the responsible conduct of research. in other words, how do edi-related issues manifest in the research process, and how can researchers effectively address them? a great example is the training offered by we all count, a project aimed at increasing equity in data science.

    funders can also contribute toward mitigating bias in research data, by issuing research design guidelines on inclusion of underrepresented groups, and by establishing criteria for scoring grant proposals on the basis of how well these guidelines are addressed. the big “carrots and sticks” wielded by funders are a powerful tool for both raising awareness and shifting behaviors.

    bias in research data extends to bias in research data management (rdm). situations where access to and ability to use archived data sets is not equitable is another form of bias. while it is good to mandate that data sets be archived under “open” conditions, as many funders already do, the spirit of the mandate is compromised if the data sets are put into systems that are not accessible and usable to everyone. it is important to recognize that the risk of introducing bias into research data exists throughout the research lifecycle, including curation activities such as data storage, description, and preservation.

    our conversation focused on bias in research data in stem fields – particularly medicine – but the issue also deserves attention in the context of the social sciences, as well as the arts and humanities. our summary here highlights just a sample of the topics worthy of discussion in this area, with much to unpack in each one. we are grateful to dr. grant for starting a conversation with us on this important issue and look forward to continuing it in the future as part of our ongoing work on rdm and other forms of research support services.

    like so many other organizations, oclc is reflecting on equity, diversity, and inclusion, as well as taking action. check out an overview of that work, and explore efforts being undertaken in oclc’s membership and research division. thanks to tiffany grant, rebecca bryant, and merrilee proffitt for providing helpful suggestions that improved this post!

    the post recognizing bias in research data – and research data management appeared first on hanging together.

    - - t : : + : brian lavoie lucidworks: enhance product discovery with ai-powered recommenders https://lucidworks.com/post/ai-powered-recommenders-for-product-discovery/

    learn how ai-powered recommenders put the right products and content in front of your customers, with just the right amount of human touch.

    the post enhance product discovery with ai-powered recommenders appeared first on lucidworks.

    - - t : : + : andy wibbels tara robertson: distributing dei work across the organization https://tararobertson.ca/ /distributing-dei-work-across-the-organization/

    i enjoyed being a guest on seed&spark‘s first monthly office hours session where stefanie monge, lara mcleod and i talked about distributing diversity, equity and inclusion work across organizations.

    here’s some of the work that i mentioned:

    the post distributing dei work across the organization appeared first on tara robertson consulting.

    - - t : : + : tara robertson terry reese: thoughts on nacos proposed process on updating cjk records https://blog.reeset.net/archives/

    i would like to take a few minutes and share my thoughts about an updated best practice recently posted by the pcc and naco related to an update on cjk records. the update is found here: https://www.loc.gov/aba/pcc/naco/cjk/cjk-best-practice-ncr.docx. i’m not certain if this is active or a simply a proposal, but i’ve been having a number of private discussions with members at the library of congress and the pcc as i’ve been trying to understand the genesis for this policy change. i personally believe that formally adopting a policy like this would be exceptionally problematic, and i wanted to flesh out my thoughts on why and some potential better options that could fix the issue that this problem is attempting to solve.

    but first, i owe some folks an apology. in chatting with some folks at lc (because, let’s be clear, this proposal was created specifically because there are local, limiting practices at lc that artificially are complicating this work) – it came to my attention that the individuals that spent a good deal of time considering and creating this proposal have received some unfair criticism – and i think i bare a lot of responsibility for that. i have done work creating best practices and standards and its thankless, difficult work. because of that, in cases where i disagree with a particular best practice, my preference has been to address those privately and attempt to understand and share my issues with a set of practices. this is what i have been doing related to this work. however, on the marcedit list (a private list), when a request was made related to a feature request in marcedit to support this work – i was less thoughtful in my response as the proposed change could fundamentally undo almost a decade of work as i have dealt with thousands of libraries stymied by these kinds of best practices that have significant unintended consequences. my regret is that i’ve been told that my thoughts shared on the marcedit list, have been used by others in more public spaces to take this committee’s work to task. this is unfortunate and disappointing, and something i should have been more thoughtful of in my responses on the marcedit list. especially, given that every member of that committee is doing this work as a service to the community. i know i forget that sometimes. so, to the folks that did this work – i’ve not followed (or seen) any feedback you may have received, but in as much that i’m sure i played a part in any push back you may have received, i’m sorry.

    what does this problem seek to solve?

    if you look at the proposal, i think that the writers do a good job identifying the issue. essentially, this issue is unique to authority records. at present, naco still requires that records created within the program only utilize utf characters that fall within the marc- repertoire. oclc, the pipeline for creating these records, enforces this rule by invalidating records with utf characters outside the marc range. the proposal seeks to address this by encouraging the use of nrc (numeric character reference) data in utf records, to work around these normalization issues.

    so, in a nutshell, that is the problem, and that is the proposed solution. but before we move on, let’s talk a little bit about how we got here. this problem currently exists because of, what i believe to be, an extremely narrow and unproductive read of what marc repertoire actually means. for those not in libraries, marc is essentially a made-up character encoding, used only in libraries, that has so outlived its usefulness. modern systems have largely stopped supporting it outside of legacy ingest workflows. the issue is that for every academic library or national library that has transitioned to utf , hundreds of small libraries or organizations around the world have not. marc continues to exist because the infrastructure that supports these smaller libraries is built around it.

    but again, i think it is worth thinking about today, what actually is the marc repertoire. previously, this had been a hard set of defined values. but really, that changed in ish when lc updated guidance and introduced the concept of nrcs to preserve lossless data transfer between systems that were fully utf compliant and older marc systems. nrcs in marc were workable, because it left local systems the ability to handle (or not handle) the data as it seen fit and finally provided an avenue for the library community as a whole to move on from the limitations marc was imposing on systems. it allowed for the facilitation of data into non-marc formats that were utf compliant and provided a pathway to allow data from other metadata formats, the ability to reuse that data in marc records. i would argue that today, the marc repertoire includes nrc notation – and to assume or pretend otherwise, is shortsighted and revisionist.

    but why is all of this important. well, it is at the heart of the problem that we find ourselves in. for authority data, the library of congress appears to have adopted this very narrow view of what marc means (against their own stated recommendations) and as a result, naco and oclc place artificial limits on the pipeline. there are lots of reasons why lc does this, i recognize they are moving slowly because any changes that they make are often met with some level of resistance from members of our community – but in this case, this paralysis is causing more harm to the community than good.

    why this proposal is problematic?

    so, this is the environment that we are working in and the issue this proposal sought to solve. the issue, however, is that the proposal attempts to solve this problem by adopting a marc solution and applying it within utf data – essentially making the case that nrc values can be embedded in utf records to ensure lossless data entry. and while i can see why someone might think that – that assumption is fundamentally incorrect. when lc developed its guidance on nrc notation, this was guidance that was specifically directed in the lossless translation of data to marc . utf data has no need for nrc notation. this does not mean that it does not sometimes show up – and as a practical purpose, i’ve spent thousands of hours working with libraries dealing with the issues this creates in local systems. aside from the issues this creates in marc systems around indexing and discovery, it makes data almost impossible to be used outside of that system and in times of migration. in thinking about the implications of this change in the context of marcedit, i had the following, specific concerns:

    1. nrc data in utf records would break existing workflows for users with current generation systems that would have no reason to expect this data as being present in utf marc records
    2. it would make normalization functionally virtually impossible and potentially re-introduce a problem i spent months solving for organizations related to how utf data is normalized and introduced into local systems.
    3. it would break many of the transformation options.  marcedit allows for the flow of data to many different metadata formats – all are built on the concept that the first thing marcedit does is clean up character encodings to ensure the output data is in utf .
    4. marcedit is used by ~ k active users and ~ k annual users.  over / of those users do not use marc and do not use marc- .  allowing the mixing of nrcs and utf data potentially breaks functionality for broad groups of international users.

    while i very much appreciate the issue that this is attempting to solve, i’ve spent years working with libraries where this kind of practice would introduce a long-term data issue that is very difficult to identify and fix and often shows up unexpectedly when it comes time to migration or share this information with other services, communities, or organizations.

    so what is the solution?

     

    i think that we can address this issue on two fronts. first, i would advise naco and oclc to essentially stop limiting data entry to this very limited notion of marc repertoire. in all other contexts, oclc provides the ability to enter any valid utf data. this current limit within the authority process is artificial and unnecessary. oclc could easily remove it, and naco could amend their process to allow record entry to utilize any valid utf character. this would address the problem that this group was attempting to solve for catalogers creating these records.

    the second step could take two forms. if lc continues to ignore their own guidance and cleave to an outdated concept of the marc repertoire – oclc could provide to lc via their pipeline a version of the records where data includes nrc notation for use in lcs own systems. it would mean that i would not recommend using lc as a trusted system for downloading authorities if this was the practice unless i had an internal local process to remove any nrc data found in valid utf records. essentially, we essentially treat lc’s requirements as a disease and quarantine them and their influence in this process. of course, what would be more ideal, is lc making the decision to accept utf data without restrictions and rely on applicable guidance and marc best practice by supporting utf data fully, and for those still needing marc data – providing that data using the lossless process of nrcs (per their own recommendations).

    conclusion

    ultimately, this proposal is a recognition that the current naco rules and process is broken and broken in a way that it is actively undermining other work in the pcc around linked data development. and while i very much appreciate the thoughtful work that went into the consideration of a different approach, i think the unintended side affects would cause more long-term damage that any short-term gains. ultimately, what we need is for the principles to rethink why these limitations are in place, and, honestly, really consider ways that we start to deemphasize the role lc plays as a standard holder if in that role, lc’s presence continues to be an impediment for moving libraries forward.

    - - t : : + : reeset lucidworks: how to deliver impactful digital commerce experiences https://lucidworks.com/post/deliver-relevant-digital-commerce-experiences/

    acquia and lucidworks share tips for how to deliver meaningful and relevant digital commerce experiences that create customer connections.

    the post how to deliver impactful digital commerce experiences appeared first on lucidworks.

    - - t : : + : jenny gomez hangingtogether: accomplishments and priorities for the oclc research library partnership http://feedproxy.google.com/~r/hangingtogetherorg/~ /sv osw ybai/

    with well underway, the oclc research library partnership is as active as ever. we are heartened by the positive feedback and engagement our partners have provided in response to our programming and research directions. thank you to those who have shared your stories of success and challenge; listening to your voices is what guides us and drives us forward. we warmly welcome the university of notre dame, university of waterloo, and ocad university into the partnership and are pleased to see how they have jumped right into engagement with shares and other activities.

    the shares resource sharing community
    photo by caleb chen on unsplash

    the shares community has been a source of support and encouragement as resource sharing professionals around the world strive to meet their communities’ information needs during covid- . during the last year, dennis massie has convened more than shares town halls to date to learn how shares members are changing practice to adapt to quickly evolving circumstances. dennis has documented how resource sharing practices have changed.  

    inspired by the shares community, we are also excited to have launched the oclc interlibrary loan cost calculator. for library administrators and funders to evaluate collection sharing services properly, they need access to current cost information, as well as benchmarks against which to measure their own library’s data. the cost calculator is a free online tool that has the potential to act as a virtual real-time ill cost study. designed in collaboration with resource sharing experts and built by oclc research staff, the calculator has been in the hands of beta testers and early adopters since october . a recorded webinar gives a guided tour of what the tool does (and does not do), what information users need to gather, how developers addressed privacy issues, and how individual institutions and the library community can benefit.

    total cost of stewardship: responsible collection building in archives and special collections

    a big thanks to our partners who contributed to the total cost of stewardship: responsible collection building in archives and special collections. this publication addresses the ongoing challenge of descriptive backlogs in archives and special collections by connecting collection development decisions with stewardship responsibilities. the report proposes a total cost of stewardship framework for bringing together these important, interconnected functions. developed by the rlp’s collection building and operational impacts working group, the total cost of stewardship framework is a model that considers the value of a potential acquisition and its alignment with institutional mission and goals alongside the cost to acquire, care for, and manage it, the labor and specialized skills required to do that work, and institutional capacity to care for and store collections.

    this publication includes a suite of communication and cost estimation tools to help decision makers assess available resources, budgets, and timelines to plan with confidence and set realistic expectations to meet important goals. the report and accompanying resources provide special collections and archives with tools to support their efforts to meet the challenges of contemporary collecting and to ensure they are equitably serving and broadly documenting their communities.

    transitioning to the next generation of metadata

    in december, we had a bittersweet moment celebrating senior program officer karen smith-yoshimura’s retirement. as mercy procaccini and others take over the role of coordinating the stalwart metadata managers focus group, we are taking time to refine how this dynamic group works and plans future discussions together to better support their efforts. a synthesis of this group’s discussions from the past six years traces how metadata services are transitioning to the “next generation of metadata.”

    transforming metadata into linked data

    the rlp’s commitment to advancing learning and operational support for linked data continues with the january publication of transforming metadata into linked data to improve digital collection discoverability: a contentdm pilot project. the report details a pilot project that investigated methods for—and the feasibility of—transforming metadata into linked data to improve the discoverability and management of digitized cultural materials and their descriptions. five institutions partnered with oclc to collaborate on this linked data project, representing a diverse cross-section of different types of institutions: the cleveland public library the huntington library, art museum, and botanical gardens the minnesota digital library temple university libraries university of miami libraries.

    oclc has invested in pathbreaking linked data work for over a decade, and it is wonderful to add the publication to this knowledge base.

    social interoperability in research support  

    in the area of research support, rebecca bryant developed a robust series of webinars as a follow-on to the – oclc research project, social interoperability in research support. the resulting report, social interoperability in research support: cross-campus partnerships and the university research enterprise, synthesizes information about the highly decentralized, complex research support ecosystem at us research institutions. the report additionally offers a conceptual model of campus research support stakeholders and provides recommendations for establishing and stewarding successful cross-campus relationships. the social interoperability webinar series complements this work by offering in-depth case studies and “stakeholder spotlights” from rlp institutions, demonstrating how other campus  are eager to collaborate with the library. this is a great example of the type of programming you can find in our works in progress webinar series

    equity, diversity, and inclusion

    our team has been digging into issues of equity, diversity, and inclusion: we’ve developed a “practice group” to help our team be better situated to engaging in difficult conversations around race, and we also have been learning and engaging in conversations about the difficulty of cataloging topics relating to indigenous peoples in respectful ways. 

    this work has helped to prepare the way for important new work that i’m pleased to share with you today. oclc will be working in consultation with shift collective on the andrew w. mellon-funded convening, reimagine descriptive workflows. the project will bring together a wide range of community stakeholders to interrogate the existing descriptive workflow infrastructure to imagine new workflows that are inclusive, equitable, scalable, and sustainable. we are following an approach developed in other work we have carried out, such as the research and learning agenda for archives, special, and distinctive collections in research libraries, and more recently, in responsible operations: data science, machine learning, and ai in libraries. in that vein, we will host a virtual convening later this year to inform a community agenda publication. 

    reimagine descriptive workflows is the next stage of a journey that we’ve been on for some time, informed by numerous webinars, surveys, and individual conversations. i am very grateful to team members and the rlp community for their contributions and guidance. we are truly “learning together.”

    looking forward

    if you are at an oclc rlp affiliated institution and would like to learn more about how to get the most out of your rlp affiliation, please contact your staff liaison (or anyone on our energetic team) and we be happy to set up a virtual orientation or refresher on our programs and opportunities for active learning.

    it is with deep gratitude that i offer my thanks to to our partners for their investment in the research library partnership. we are committed to offering our very best to serve your research and learning needs.

    the post accomplishments and priorities for the oclc research library partnership appeared first on hanging together.

    - - t : : + : rachel frick open knowledge foundation: watch the net zero challenge pitch contest https://blog.okfn.org/ / / /watch-the-net-zero-challenge-pitch-contest/

    this week, five shortlisted teams took part in the final stage of the net zero challenge – a global competition to identify, promote and support innovative, practical and scalable uses of open data that advance climate action.

    the five teams presented their three-minute project pitches to the net zero challenge panel of experts, and a live audience. each pitch was followed by a live q&a.

    the winner of the pitch contest will be announced in the next few days.

    if you didn’t have the chance to attend the event in person, watch the event here ( . .min) or see below for links to individual pitches.

    a full unedited video of the event is at the bottom of this page.

    introduction – by james hamilton, director of the net zero challenge

    watch video here ( . min) // introduction slide deck 

    pitch – by matt sullivan from snapshot climate tool which provides greenhouse gas emission profiles for every local government region (municipality) in australia.

    watch pitch video here ( . min) // snapshot slide deck

    pitch – by saif shabou from carbongeoscales which is a framework for standardising open data for green house gas emissions at multiple geographical scales (built by a team from france).

    watch pitch video here ( . min) // carbongeoscales slide deck

    pitch – by jeremy dickens. he presents citizen science avian index for sustainable forests a new bio monitoring tool that uses open data on bird observations to provide crucial information on forest ecological conditions (from south africa).

    watch pitch video here ( . min)  // avian index – slide deck

    pitch – by cristian gregorini from project yarquen which is a new api tool and website to organise climate relevant open data for use by civil society organisations, environmental activists, data journalists and people interested in environmental issues (built by a team from argentina).

    watch pitch video here ( . min)

    pitch – by beatriz pagy from clima de eleição which analyses recognition of climate change issues by prospective election candidates in brazil, enabling voters to make informed decisions about who to vote in to office.

    watch pitch video here ( . min) // clima de eleição – slide deck

    concluding remarks – by james hamilton, director of the net zero challenge

    watch video here ( . min)


    a full unedited video of the net zero challenge is here ( . min)


    there are many people who collaborated to make this event possible.

    we wish to thank both microsoft and the uk foreign, commonwealth & development office for their support for the net zero challenge. thanks also to open data charter and the open data & innovation team at transport for new south wales for their strategic advice during the development of this project. the event would not have been possible without the enthusiastic hard work of the panel of experts who will judge the winning entry, and the audience who asked such great questions. finally – to all the pitch teams. your projects inspire us and we hope your participation in the net zero challenge has been – and will continue to be – supportive for your work as you use open data to advance climate action.

    - - t : : + : james hamilton hugh rundle: a barbaric yawp https://www.hughrundle.net/a-barbaric-yawp/

    over the easter break i made a little rust tool for sending toots and/or tweets from a command line. of course there are dozens of existing tools that enable either of these, but i had a specific use in mind, and also wanted a reasonably small and achievable project to keep learning rust.

    for various reasons i've recently been thinking about the power of "the unix philosophy", generally summarised as:

    • write programs that do one thing and do it well.
    • write programs to work together.
    • write programs to handle text streams, because that is a universal interface.

    my little program takes a text string as input, and sends the same string to the output, the intention being not so much that it would normally be used manually on its own (though it can be) but more that it can "work together" with other programs or scripts. the "one thing" it does (i will leave the question of "well" to other people to judge) is post a tweet and/or toot to social media. it's very much a unidirectional, broadcast tool, not one for having a conversation. in that sense, it's like whitman's "barbaric yawp", subject of my favourite scene in dead poets society and a pretty nice description of what social media has become in a decade or so. calling the program yawp therefore seemed fitting.

    yawp takes text from standard input (stdin), publishes that text as a tweet and/or a toot, and then prints it to standard output (stdout). like i said, it's not particularly complex, and not even all that useful for your daily social media posting needs, but the point is for it to be part of a tool chain. for this reason yawp takes the configuration it needs to interact with the mastodon and twitter apis from environment (env) variables, because these are quite easy to set programatically and a fairly "universal interface" for setting and getting values to be used in programs.

    here's a simple example of sending a tweet:

    yawp 'hello, world!' -t

    we could also send a toot by piping from the echo program (the - tells yawp to use stdin instead of looking for an argument like it uses above):

    echo 'hello again, world!' | yawp - -m

    in bash, you can send the contents of a file to stdin, so we could do this too:

    yawp - -mt <message.txt

    but really the point is to use yawp to do something like this:

    app_that_creates_message | yawp - -mt | do_something_else.sh >> yawping.log

    anyway, enjoy firing your barbaric yawps into the cacophony.


    - - t : : + : hugh rundle andromeda yelton: i haven’t failed, i’ve just tried a lot of ml approaches that don’t work https://andromedayelton.com/ / / /i-havent-failed-ive-just-tried-a-lot-of-ml-approaches-that-dont-work/

    “let’s blog every friday,” i thought. “it’ll be great. people can see what i’m doing with ml, and it will be a useful practice for me!” and then i went through weeks on end of feeling like i had nothing to report because i was trying approach after approach to this one problem that simply didn’t work, hence not blogging. and finally realized: oh, the process is the thing to talk about…

    hi. i’m andromeda! i am trying to make a neural net better at recognizing people in archival photos. after running a series of experiments — enough for me to have written , words of notes — i now have a neural net that is ten times worse at its task. 🎉

    and now i have , words of notes to turn into a blog post (a situation which gets harder every week). so let me catch you up on the outline of the problem:

    1. download a whole bunch of archival photos and their metadata (thanks, dpla!)
    2. use a face detection ml library to locate faces, crop them out, and save them in a standardized way
    3. benchmark an off-the-shelf face recognition system to see how good it is at identifying these faces
    4. retrain it
    5. benchmark my new system

    step : profit, right? well. let me also catch you up on some problems along the way:

    alas, metadata

    archival photos are great because they have metadata, and metadata is like labels, and labels mean you can do supervised learning, right?

    well….

    is he “du bois, w. e. b. (william edward burghardt), - ” or “du bois, w. e. b. (william edward burghardt) - ” or “du bois, w. e. b. (william edward burghardt)” or “w.e.b. du bois”? i mean, these are all options. people have used a lot of different metadata practices at different institutions and in different times. but i’m going to confuse the poor computer if i imply to it that all these photos of the same person are photos of different people. (i have gone through several attempts to resolve this computationally without needing to do everything by hand, with only modest success.)

    what about “photographs”? that appears in the list of subject labels for lots of things in my data set. “photographs” is a person, right? i ended up pulling in an entire other ml component here — spacy, to do some natural language processing to at least guess which lines are probably names, so i can clear the rest of them out of my way. but spacy only has ~ % accuracy on personal names anyway and, guess what, because everything is terrible, in predictable ways, it has no idea “kweisi mfume” is a person.

    is a person who appears in the photo guaranteed to be a person who appears in the photo? nope.

    is a person who appears in the metadata guaranteed to be a person who appears in the photo? also nope! often they’re a photographer or other creator. sometimes they are the subject of the depicted event, but not themselves in the photo. (spacy will happily tell you that there’s personal name content in something like “martin luther king day”, but mlk is unlikely to appear in a photo of an mlk day event.)

    oh dear, linear algebra

    ok but let’s imagine for the sake of argument that we live in a perfect world where the metadata is exactly what we need — no more, no less — and its formatting is perfectly consistent. 🦄

    here you are, in this perfect world, confronted with a photo that contains two people and has two names. how do you like them apples?

    i spent more time than i care to admit trying to figure this out. can i bootstrap from photos that have one person and one name — identify those, subtract them out of photos of two people, go from there? (not reliably — there’s a lot of data i never reach that way — and it’s horribly inefficient.)

    can i do something extremely clever with matrix multiplication? like…once i generate vector space embeddings of all the photos, can i do some sort of like dot-product thing across all of my photos, or big batches of them, and correlate the closest-match photos with overlaps in metadata? not only is this a process which begs the question — i’d have to do that with the ml system i have not yet optimized for archival photo recognition, thus possibly just baking bad data in — but have i mentioned i have taken exactly one linear algebra class, which i didn’t really grasp, in ?

    what if i train yet another ml system to do some kind of k-means clustering on the embeddings? this is both a promising approach and some really first-rate yak-shaving, combining all the question-begging concerns of the previous paragraph with all the crystalline clarity of black box ml.

    possibly at this point it would have been faster to tag them all by hand, but that would be admitting defeat. also i don’t have a research assistant, which, let’s be honest, is the person who would usually be doing this actual work. i do have a -year-old and i am strongly considering paying her to do it for me, but to facilitate that i’d have to actually build a web interface and probably learn more about aws, and the prospect of reading aws documentation has a bracing way of reminding me of all of the more delightful and engaging elements of my todo list, like calling some people on the actual telephone to sort out however they’ve screwed up some health insurance billing.

    nowhere to go but up

    despite all of that, i did actually get all the way through the steps above. i have a truly, spectacularly terrible neural net. go me! but at a thousand-plus words, perhaps i should leave that story for next week….

    - - t : : + : andromeda lucidworks: tips for mixed reality in retail https://lucidworks.com/post/tips-for-mixed-reality-in-retail/

    how retailers are turning to virtual reality, augmented reality, and mixed reality applications to recreate the in-store experience from anywhere.

    the post tips for mixed reality in retail appeared first on lucidworks.

    - - t : : + : andy wibbels erin white: talk: using light from the dumpster fire to illuminate a more just digital world https://erinrwhite.com/talk-using-light-from-the-dumpster-fire-to-illuminate-a-more-just-digital-world/

    this february i gave a lightning talk for the richmond design group. my question: what if we use the light from the dumpster fire of to see an equitable, just digital world? how can we change our thinking to build the future web we need?

    presentation is embedded here; text of talk is below.

    hi everybody, i’m erin. before i get started i want to say thank you to the rva design group organizers. this is hard work and some folks have been doing it for years. thank you to the organizers of this group for doing this work and for inviting me to speak.

    this talk isn’t about . this talk is about the future. but to understand the future, we gotta look back.

    the web in

    travel with me to . twenty-five years ago!

    i want to transport us back to the mindset of the early web. the fundamental idea of hyperlinks, which we now take for granted, really twisted everyone’s noodles. so much of the promise of the early web was that with broad access to publish in hypertext, the opportunities were limitless. technologists saw the web as an equalizing space where systems of oppression that exist in the real world wouldn’t matter, and that we’d all be equal and free from prejudice. nice idea, right?

    you don’t need to’ve been around since to know that’s just not the way things have gone down.

    pictured before you are some of the early web pioneers. notice a pattern here?

    these early visions of the web, including barlow’s declaration of independence of cyberspace, while inspiring and exciting, were crafted by the same types of folks who wrote the actual declaration of independence: the landed gentry, white men with privilege. their vision for the web echoed the declaration of independence’s authors’ attempts to describe the world they envisioned. and what followed was the inevitable conflict with reality.

    we all now hold these truths to be self-evident:

    • the systems humans build reflect humans’ biases and prejudices.
    • we continue to struggle to diversify the technology industry.
    • knowledge is interest-driven.
    • inequality exists, online and off.
    • celebrating, rather than diminishing, folks’ intersecting identities is vital to human flourishing.
    the web we have known

    profit first: monetization, ads, the funnel, dark patterns
    can we?: innovation for innovation’s sake
    solutionism: code will save us
    visual design: aesthetics over usability
    lone genius: “hard” skills and rock star coders
    short term thinking: move fast, break stuff
    shipping: new features, forsaking infrastructure

    let’s move forward quickly through the past years or so of the web, of digital design.

    all of the web we know today has been shaped in some way by intersecting matrices of domination: colonialism, capitalism, white supremacy, patriarchy. (thank you, bell hooks.)

    the digital worlds where we spend our time – and that we build!! – exist in this way.

    this is not an indictment of anyone’s individual work, so please don’t take it personally. what i’m talking about here is the digital milieu where we live our lives.

    the funnel drives everything. folks who work in nonprofits and public entities often tie ourselves in knots to retrofit our use cases in order to use common web tools (google analytics, anyone?)

    in chasing innovation™ we often overlook important infrastructure work, and devalue work — like web accessibility, truly user-centered design, care work, documentation, customer support and even care for ourselves and our teams — that doesn’t drive the bottom line. we frequently write checks for our future selves to cash, knowing damn well that we’ll keep burying ourselves in technical debt. that’s some tough stuff for us to carry with us every day.

    the “move fast” mentality has resulted in explosive growth, but at what cost? and in creating urgency where it doesn’t need to exist, focusing on new things rather than repair, the end result is that we’re building a house of cards. and we’re exhausted.

    to zoom way out, this is another manifestation of late capitalism. emphasis on late. because… happened.

    what taught us

    hard times amplify existing inequalities
    cutting corners mortgages our future
    infrastructure is essential
    “colorblind”/color-evasive policy doesn’t cut it
    inclusive design is vital
    we have a duty to each other
    technology is only one piece
    together, we rise

    the past year has been awful for pretty much everybody.

    but what the light from this dumpster fire has illuminated is that things have actually been awful for a lot of people, for a long time. this year has shown us how perilous it is to avoid important infrastructure work and to pursue innovation over access. it’s also shown us that what is sometimes referred to as colorblindness — i use the term color-evasiveness because it is not ableist and it is more accurate — a color-evasive approach that assumes everyone’s needs are the same in fact leaves people out, especially folks who need the most support.

    we’ve learned that technology is a crucial tool and that it’s just one thing that keeps us connected to each other as humans.

    finally, we’ve learned that if we work together we can actually make shit happen, despite a world that tells us individual action is meaningless. like biscuits in a pan, when we connect, we rise together.

    marginalized folks have been saying this shit for years.
    more of us than ever see these things now.
    and now we can’t, and shouldn’t, unsee it.

    the web we can build together

    current state:
    – profit first
    – can we?
    – solutionism
    – aesthetics
    – “hard” skills
    – rockstar coders
    – short term thinking
    – shipping

    future state:
    – people first: security, privacy, inclusion
    – should we?
    – holistic design
    – accessibility
    – soft skills
    – teams
    – long term thinking
    – sustaining

    so let’s talk about the future. i told you this would be a talk about the future.

    like many of y’all i have had a very hard time this year thinking about the future at all. it’s hard to make plans. it’s hard to know what the next few weeks, months, years will look like. and who will be there to see it with us.

    but sometimes, when i can think clearly about something besides just making it through every day, i wonder.

    what does a people-first digital world look like? who’s been missing this whole time?

    just because we can do something, does it mean we should?

    will technology actually solve this problem? are we even defining the problem correctly?

    what does it mean to design knowing that even “able-bodied” folks are only temporarily so? and that our products need to be used, by humans, in various contexts and emotional states?

    (there are also false binaries here: aesthetics vs. accessibility; abled and disabled; binaries are dangerous!)

    how can we nourish our collaborations with each other, with our teams, with our users? and focus on the wisdom of the folks in the room rather than assigning individuals as heroes?

    how can we build for maintenance and repair? how do we stop writing checks our future selves to cash – with interest?

    some of this here, i am speaking of as a web user and a web creator. i’ve only ever worked in the public sector. when i talk with folks working in the private sector i always do some amount of translating. at the end of the day, we’re solving many of the same problems.

    but what can private-sector workers learn from folks who come from a public-sector organization?

    and, as we think about what we build online, how can we also apply that thinking to our real-life communities? what is our role in shaping the public conversation around the use of technologies? i offer a few ideas here, but don’t want them to limit your thinking.

    consider the public sector

    i don’t have a ton of time left today. i wanted to talk about public service like the very excellent dana chisnell here.

    like i said, i’ve worked in the public sector, in higher ed, for a long time. it’s my bread and butter. it’s weird, it’s hard, it’s great.

    there’s a lot of work to be done, and it ain’t happening at civic hackathons or from external contractors. the call needs to come from inside the house.

    working in the public sector


    i want you to consider for a minute how many folks are working in the public sector right now, and how technical expertise — especially in-house expertise — is something that is desperately needed.

    pictured here are the old website and new website for the city of richmond. i have a whole ‘nother talk about that new richmond website. i foia’d the contracts for this website. there are accessibility errors on the homepage alone. it’s been in development for years and still isn’t in full production.

    bottom line, good government work matters, and it’s hard to find. important work is put out for the lowest bidder and often external agencies don’t get it right. what would it look like to have that expertise in-house?

    influencing technology policy

    we also desperately need lawmakers and citizens who understand technology and ask important questions about ethics and human impact of systems decisions.

    pictured here are some headlines as well as a contract from the city of richmond. y’all know we spent $ . million on a predictive policing system that will disproportionately harm citizens of color? and that earlier this month, city council voted to allow richmond and vcu pd’s to start sharing their data in that system?

    the surveillance state abides. technology facilitates.

    i dare say these technologies are designed to bank on the fact that lawmakers don’t know what they’re looking at.

    my theory is, in addition to holding deep prejudices, lawmakers are also deeply baffled by technology. the hard questions aren’t being asked, or they’re coming too late, and they’re coming from citizens who have to put themselves in harm’s way to do so.

    technophobia is another harmful element that’s emerged in the past decades. what would a world look like where technology is not a thing to shrug off as un-understandable, but is instead deftly co-designed to meet our needs, rather than licensed to our city for . million dollars? what if everyone knew that technology is not neutral?

    closing

    this is some of the future i can see. i hope that it’s sparked new thoughts for you.

    let’s envision a future together. what has the light illuminated for you?

    thank you!

    - - t : : + : erinrwhite david rosenthal: nfts and web archiving https://blog.dshr.org/ / /nfts-and-web-archiving.html one of the earliest observations of the behavior of the web at scale was "link rot". there were a lot of s, broken links. research showed that the half-life of web pages was alarmingly short. even in this problem was obvious enough for brewster kahle to found the internet archive to address it. from the wikipedia entry for link rot:
    a study found that on the web, about one link out of every broke each week,[ ] suggesting a half-life of weeks. this rate was largely confirmed by a – study of links in yahoo! directory (which had stopped updating in after years of development) that found the half-life of the directory's links to be two years.[ ]
    one might have thought that academic journals were a relatively stable part of the web, but research showed that their references decayed too, just somewhat less rapidly. a study found a half-life of . years. see my post the evanescent web.

    i expect you have noticed the latest outbreak of blockchain-enabled insanity, non-fungible tokens (nfts). someone "paying $ m for a jpeg" or $ k for a new york times column attracted a lot of attention. follow me below the fold for the connection between nfts, "link rot" and web archiving.

    kahle's idea for addressing "link rot", which became the wayback machine, was to make a copy of the content at some url, say:
    http://www.example.com/page.html
    keep the copy for posterity, and re-publish it at a url like:
    https://web.archive.org/web/ /http://www.example.com/page.html
    what is the difference between the two urls? the original is controlled by example.com, inc.; they can change or delete it on a whim. the copy is controlled by the internet archive, whose mission is to preserve it unchanged "for ever". the original is subject to "link rot", the second is, one hopes, not subject to "link rot". the wayback machine's urls have three components:
    • https://web.archive.org/web/ locates the archival copy at the internet archive.
    • indicates that the copy was made on th june, at : : .
    • http://www.example.com/page.html is the url from which the copy was made.
    the fact that the archival copy is at a different url from the original causes a set of problems that have bedevilled web archiving. one is that, if the original goes away, all the links that pointed to it break, even though there may be an archival copy to which they could point to fulfill the intent of the link creator. another is that, if the content at the original url changes, the link will continue to resolve but the content it returns may no longer reflect the intent of the link creator, although there may be an archival copy that does. even in the early days of the web it was evident that web pages changed and vanished at an alarming rate.

    the point is that the meaning of a generic web url is "whatever content, or lack of content, you find at this location". that is why url stands for universal resource locator. note the difference with uri, which stands for universal resource identifier. anyone can create a url or uri linking to whatever content they choose, but doing so provides no rights in or control over the linked-to content.

    in people's expensive nfts keep vanishing. this is why, ben munster reports that:
    over the past few months, numerous individuals have complained about their nfts going “missing,” “disappearing,” or becoming otherwise unavailable on social media. this despite the oft-repeated nft sales pitch: that nft artworks are logged immutably, and irreversibly, onto the ethereum blockchain.
    so ntfs have the same problem that web pages do. isn't the blockchain supposed to make things immortal and immutable?

    kyle orland's ars technica’s non-fungible guide to nfts provides an over-simplified explanation:
    when nft’s are used to represent digital files (like gifs or videos), however, those files usually aren’t stored directly “on-chain” in the token itself. doing so for any decently sized file could get prohibitively expensive, given the cost of replicating those files across every user on the chain. instead, most nfts store the actual content as a simple uri string in their metadata, pointing to an internet address where the digital thing actually resides.
    nfts are just links to the content they represent, not the content itself. the bitcoin blockchain actually does contain some images, such as this ascii portrait of len sassaman and some pornographic images. but the blocks of the bitcoin blockchain were originally limited to mb and are now effectively limited to around mb, enough space for small image files. what’s the maximum ethereum block size? explains:
    instead of a fixed limit, ethereum block size is bound by how many units of gas can be spent per block. this limit is known as the block gas limit ... at the time of writing this, miners are currently accepting blocks with an average block gas limit of around , , gas. currently, the average ethereum block size is anywhere between to kb in size.
    that's a little out-of-date. currently the block gas limit is around . m gas per block and the average block is about kb. nowhere near enough space for a $ m jpeg. the nft for an artwork can only be a link. most nfts are erc- tokens, providing the optional metadata extension:
    /// @title erc- non-fungible token standard, optional metadata extension
    /// @dev see https://eips.ethereum.org/eips/eip-
    /// note: the erc- identifier for this interface is x b e f.
    interface erc metadata /* is erc */ {
    /// @notice a descriptive name for a collection of nfts in this contract
    function name() external view returns (string _name);

    /// @notice an abbreviated name for nfts in this contract
    function symbol() external view returns (string _symbol);

    /// @notice a distinct uniform resource identifier (uri) for a given asset.
    /// @dev throws if `_tokenid` is not a valid nft. uris are defined in rfc
    /// . the uri may point to a json file that conforms to the "erc
    /// metadata json schema".
    function tokenuri(uint _tokenid) external view returns (string);
    }
    the metadata json schema specifies an object with three string properties:
    • name: "identifies the asset to which this nft represents"
    • description: "describes the asset to which this nft represents"
    • image: "a uri pointing to a resource with mime type image/* representing the asset to which this nft represents. consider making any images at a width between and pixels and aspect ratio between . : and : inclusive."
    note that the json metadata is not in the ethereum blockchain, it is only pointed to by the token on the chain. if the art-work is the "image", it is two links away from the blockchain. so, given the evanescent nature of web links, the standard provides no guarantee that the metadata exists, or is unchanged from when the token was created. even if it is, the standard provides no guarantee that the art-work exists or is unchanged from when the token is created.

    caveat emptor — absent unspecified actions, the purchaser of an nft is buying a supposedly immutable, non-fungible object that points to a uri pointing to another uri. in practice both are typically urls. the token provides no assurance that either of these links resolves to content, or that the content they resolve to at any later time is what the purchaser believed at the time of purchase. there is no guarantee that the creator of the nft had any copyright in, or other rights to, the content to which either of the links resolves at any particular time.

    there are thus two issues to be resolved about the content of each of the nft's links:
    • does it exist? i.e. does it resolve to any content?
    • is it valid? i.e. is the content to which it resolves unchanged from the time of purchase?
    these are the same questions posed by the holy grail of web archiving, persistent urls.

    assuming existence for now, how can validity be assured? there have been a number of systems that address this problem by switching from naming files by their location, as urls do, to naming files by their content by using the hash of the content as its name. the idea was the basis for bram cohen's highly successful bittorrent — it doesn't matter where the data comes from provided its integrity is assured because the hash in the name matches the hash of the content.

    the content-addressable file system most used for nfts is the interplanetary file system (ipfs). from its wikipedia page:
    as opposed to a centrally located server, ipfs is built around a decentralized system[ ] of user-operators who hold a portion of the overall data, creating a resilient system of file storage and sharing. any user in the network can serve a file by its content address, and other peers in the network can find and request that content from any node who has it using a distributed hash table (dht). in contrast to bittorrent, ipfs aims to create a single global network. this means that if alice and bob publish a block of data with the same hash, the peers downloading the content from alice will exchange data with the ones downloading it from bob.[ ] ipfs aims to replace protocols used for static webpage delivery by using gateways which are accessible with http.[ ] users may choose not to install an ipfs client on their device and instead use a public gateway.
    if the purchaser gets both the nft's metadata and the content to which it refers via ipfs uris, they can be assured that the data is valid. what do these ipfs uris look like? the (excellent) ipfs documentation explains:
    https://ipfs.io/ipfs/<cid>
    # e.g
    https://ipfs.io/ipfs/qme ss arvgxv rxqvpiikmj u nlgmgszg pyrdkeoiu
    browsers that support ipfs can redirect these requests to your local ipfs node, while those that don't can fetch the resource from the ipfs.io gateway.

    you can swap out ipfs.io for your own http-to-ipfs gateway, but you are then obliged to keep that gateway running forever. if your gateway goes down, users with ipfs aware tools will still be able to fetch the content from the ipfs network as long as any node still hosts it, but for those without, the link will be broken. don't do that.
    note the assumption here that the ipfs.io gateway will be running forever. note also that only some browsers are capable of accessing ipfs content without using a gateway. thus the ipfs.io gateway is a single point of failure, although the failure is not complete. in practice nfts using ipfs uris are dependent upon the continued existence of protocol labs, the organization behind ipfs. the ipfs.io uris in the nft metadata are actually urls; they don't point to ipfs, but to a web server that accesses ipfs.

    pointing to the nft's metadata and content using ipfs uris assures their validity but does it assure their existence? the ipfs documentation's section persistence, permanence, and pinning explains:
    nodes on the ipfs network can automatically cache resources they download, and keep those resources available for other nodes. this system depends on nodes being willing and able to cache and share resources with the network. storage is finite, so nodes need to clear out some of their previously cached resources to make room for new resources. this process is called garbage collection.

    to ensure that data persists on ipfs, and is not deleted during garbage collection, data can be pinned to one or more ipfs nodes. pinning gives you control over disk space and data retention. as such, you should use that control to pin any content you wish to keep on ipfs indefinitely.
    to assure the existence of the nft's metadata and content they must both be not just written to ipfs but also pinned to at least one ipfs node.
    to ensure that your important data is retained, you may want to use a pinning service. these services run lots of ipfs nodes and allow users to pin data on those nodes for a fee. some services offer free storage-allowance for new users. pinning services are handy when:
    • you don't have a lot of disk space, but you want to ensure your data sticks around.
    • your computer is a laptop, phone, or tablet that will have intermittent connectivity to the network. still, you want to be able to access your data on ipfs from anywhere at any time, even when the device you added it from is offline.
    • you want a backup that ensures your data is always available from another computer on the network if you accidentally delete or garbage-collect your data on your own computer.
    thus to assure the existence of the nft's metadata and content pinning must be rented from a pinning service, another single point of failure.

    in summary, it is possible to take enough precautions and pay enough ongoing fees to be reasonably assured that your $ m nft and its metadata and the jpeg it refers to will remain accessible. whether in practice these precautions are taken is definitely not always the case. david gerard reports:
    but functionally, ipfs works the same way as bittorrent with magnet links — if nobody bothers seeding your file, there’s no file there. nifty gateway turn out not to bother to seed literally the files they sold, a few weeks later. [twitter; twitter]
    anil dash claims to have invented, with kevin mccoy, the concept of nfts referencing web urls in . he writes in his must-read nfts weren’t supposed to end like this:
    seven years later, all of today’s popular nft platforms still use the same shortcut. this means that when someone buys an nft, they’re not buying the actual digital artwork; they’re buying a link to it. and worse, they’re buying a link that, in many cases, lives on the website of a new start-up that’s likely to fail within a few years. decades from now, how will anyone verify whether the linked artwork is the original?

    all common nft platforms today share some of these weaknesses. they still depend on one company staying in business to verify your art. they still depend on the old-fashioned pre-blockchain internet, where an artwork would suddenly vanish if someone forgot to renew a domain name. “right now nfts are built on an absolute house of cards constructed by the people selling them,” the software engineer jonty wareing recently wrote on twitter.
    my only disagreement with dash is that, as someone who worked on archiving the "old-fashioned pre-blockchain internet" for two decades, i don't believe that there is a new-fangled post-blockchain internet that makes the problems go away. and neither does david gerard:
    the pictures for nfts are often stored on the interplanetary file system, or ipfs. blockchain promoters talk like ipfs is some sort of bulletproof cloud storage that works by magic and unicorns.
    - - t : : + : david. (noreply@blogger.com) journal of web librarianship: the impact of the covid- pandemic on digital library usage: a public library case study https://www.tandfonline.com/doi/full/ . / . . ?ai= dl&mi=co bk&af=r .
    - - t : : + : jelena Ćirić evergreen ils: evergreen . . released https://evergreen-ils.org/evergreen- - - -released/

    the evergreen community is pleased to announce the release of evergreen . . . evergreen is highly-scalable software for libraries that helps library patrons find library materials and helps libraries manage, catalog, and circulate those materials, no matter how large or complex the libraries.

    evergreen . . is a major release that includes the following new features of note:

    • support for saml-based single sign on
    • hold groups, a feature that allows staff to add multiple users to a named hold group bucket and place title-level holds for a record for that entire set of users
    • the bootstrap public catalog skin is now the default
    • “did you mean?” functionality for catalog search focused on making suggestions for single search terms
    • holdings on the public catalog record details page can now be sorted by geographic proximity
    • library groups, a feature that allows defining groups of organizational units outside of the hierarchy that can be used to limit catalog search results
    • expired staff accounts can now be blocked from logging in
    • publisher data in the public catalog display is now drawn from both the and field
    • the staff catalog can now save all search results (up to , ) to a bucket in a single operation
    • new opt-in settings for overdue and predue email notifications
    • a new setting to allow expired patrons to renew loans
    • porting of additional interfaces to angular, including scan item as missing pieces and shelving location groups

    evergreen admins installing or upgrading to . . should be aware of the following:

    • the minimum version of postgresql required to run evergreen . is postgresql . .
    • the minimum version of opensrf is . .
    • this release adds anew opensrf service, open-ils.geo.
    • the release also adds several new perl module dependencies, geo::coder::google, geo::coder::osm, string::keyboarddistance, and text::levenshtein::damerau::xs.
    • the database update procedure has more steps than usual; please consult the upgrade section of the release notes.

    the release is available on the evergreen downloads page. additional information, including a full list of new features, can be found in the release notes.

    - - t : : + : galen charlton lucidworks: build semantic search at speed https://lucidworks.com/post/how-to-build-fast-semantic-search/

    learn more about using semantic machine learning methodologies to power more relevant search results across your organization.

    the post build semantic search at speed appeared first on lucidworks.

    - - t : : + : elizabeth edmiston open knowledge foundation: unveiling the new frictionless data documentation portal https://blog.okfn.org/ / / /unveiling-the-new-frictionless-data-documentation-portal/

    have you used frictionless data documentation in the past and been confused or wanted more examples? are you a brand new frictionless data user looking to get started learning? 

    we invite you all to visit our new and improved documentation portal.

    thanks to a fund that the open knowledge foundation was awarded from the open data institute, we have completely reworked the guides of our frictionless data framework website according to the suggestions from a cohort of users gathered during several feedback sessions throughout the months of february and march. 

    we cannot stress enough how precious those feedback sessions have been to us. they were an excellent opportunity to connect with our users and reflect together with them on how to make all our guides more useful for current and future users. the enthusiasm and engagement that the community showed for the process was great to see and reminded us that the link with the community should be at the core of open source projects.

    we were amazed by the amount of extremely useful inputs that we got. while we are still digesting some of the suggestions and working out how to best implement them, we have made many changes to make the documentation a smoother, frictionless experience.

    so what’s new?

    a common theme from the feedback sessions was that it was sometimes difficult for novice users to understand the whole potential of the frictionless specifications. to help make this clearer, we added a more detailed explanation, user examples and user stories to our introduction. we also added some extra installation tips and a troubleshooting section to our quick start guide.

    the users also suggested several code changes, like more realistic code examples, better explanations of functions, and the ability to run code examples in both the command line and python. this last suggestion was prompted because most of the guides use a mix of command line and python syntax, which was confusing to our users. we have clarified that by adding a switch in the code snippets that allows user to work with a pure python syntax or pure command line (when possible), as you can see here. we also put together an faq section based on questions that were often asked on our discord chat. if you have suggestions for other common questions to add, let us know!

    the documentation revamping process also included the publication of new tutorials. we worked on two new frictionless tutorials, which are published under the notebooks link in the navigation menu. while working on those, we got inspired by the feedback sessions and realised that it made sense to give our community the possibility to contribute to the project with some real life examples of frictionless data use. the user selection process has started and we hope to get the new tutorials online by the end of the month, so stay tuned!

    what’s next?

    our commitment to continually improving our documentation is not over with this project coming to an end! do you have suggestions for changes you would like to see in our documentation? please reach out to us or open a pull request to contribute. everyone is welcome to contribute! learn how to do it here.

    thanks, thanks, thanks!

    once again, we are very grateful to the open data institute for giving us the chance to focus on this documentation in order to improve it. we cannot thank enough all our users who took part in the feedback sessions. your contributions were precious.

    more about frictionless data

    frictionless data is a set of specifications for data and metadata interoperability, accompanied by a collection of software libraries that implement these specifications, and a range of best practices for data management. the project is funded by the sloan foundation.

    - - t : : + : sara petti david rosenthal: cryptocurrency's carbon footprint https://blog.dshr.org/ / /cryptocurrencys-carbon-footprint.html china’s bitcoin mines could derail carbon neutrality goals, study says and bitcoin mining emissions in china will hit million tonnes by , the headlines say it all. excusing this climate-destroying externality of proof-of-work blockchains requires a continuous flow of new misleading arguments. below the fold i discuss one of the more recent novelties.

    in bitcoin and ethereum carbon footprints – part , moritz seibert claims the reason for mining is to get the mining reward:
    bitcoin transactions themselves don’t cause a lot of power usage. getting the network to accept a transaction consumes almost no power, but having asic miners grind through the mathematical ether to solve valid blocks does. miners are incentivized to do this because they are compensated for it. presently, that compensation includes a block reward which is paid in bitcoin ( . btc per block) as well as a miner fee (transaction fee). transaction fees are denominated in fractional bitcoins and paid by the initiator of the transaction. today, about % of total miners’ rewards are transactions fees, and about % are block rewards.
    so, he argues, bitcoin's current catastrophic carbon footprint doesn't matter because, as the reward decreases, so will the carbon footprint:
    this also means that the power usage of the bitcoin network won’t scale linearly with the number of transactions as the network becomes predominantly fee-based and less rewards-based (which causes a lot of power to the thrown at it in light of increasing btc prices), and especially if those transactions take place on secondary layers. in other words, taking the ratio of “bitcoin’s total power usage” to “number of transactions” to calculate the “power cost per transaction” falsely implies that all transactions hit the final settlement layer (they don’t) and disregards the fact that the final state of the bitcoin base layer is a fee-based state which requires a very small fraction of bitcoin’s overall power usage today (no more block rewards).
    seibert has some vague idea that there are implications of this not just for the carbon footprint but also for the security of the bitcoin blockchain:
    going forward however, miners’ primary revenue source will change from block rewards to the fees paid for the processing of transactions, which don’t per se cause high carbon emissions. bitcoin is set to become be a purely fee-based system (which may pose a risk to the security of the system itself if the overall hash rate declines, but that’s a topic for another article because a blockchain that is fully reliant on fees requires that btcs are transacted with rather than held in michael saylor-style as hodling leads to low btc velocity, which does not contribute to security in a setup where fees are the only rewards for miners.)
    lets leave aside the stunning irresponsibility of arguing that it is acceptable to dump huge amounts of long-lasting greenhouse gas into the atmosphere now because you believe that in the future you will dump less. how realistic is the idea that decreasing the mining reward will decrease the carbon footprint?


    the graph shows the history of the hash rate, which is a proxy for the carbon footprint. you can see the effect of the "halvening", when on may th the mining reward halved. there was a temporary drop, but the hash rate resumed its inexorable rise. this experiment shows that reducing the mining reward doesn't reduce the carbon footprint. so why does seibert think that eliminating it will reduce the carbon footprint?

    the answer appears to be that seibert thinks the purpose of mining is to create new bitcoins, that the reason for the vast expenditure of energy is to make the process of creating new coins secure, and that it has nothing to do with the security of transactions. this completely misunderstands the technology.

    in the economic limits of bitcoin and the blockchain, eric budish examines the return on investment in two kinds of attacks on a blockchain like bitcoin's. the simpler one is a % attack, in which an attacker controls the majority of the mining power. budish explains what this allows the attacker to do:
    an attacker could (i) spend bitcoins, i.e., engage in a transaction in which he sends his bitcoins to some merchant in exchange for goods or assets; then (ii) allow that transaction to be added to the public blockchain (i.e., the longest chain); and then subsequently (iii) remove that transaction from the public blockchain, by building an alternative longest chain, which he can do with certainty given his majority of computing power. the merchant, upon seeing the transaction added to the public blockchain in (ii), gives the attacker goods or assets in exchange for the bitcoins, perhaps after an escrow period. but, when the attacker removes the transaction from the public blockchain in (iii), the merchant effectively loses his bitcoins, allowing the attacker to “double spend” the coins elsewhere.
    such attacks are endemic among the smaller alt-coins; for example there were three successful attacks on ethereum classic in a single month last year. clearly, seibert's future "transaction only" bitcoin must defend against them.

    there are two ways to mount a % attack, from the outside or from the inside. an outside attack requires more mining power than the insiders are using, whereas an insider attack only needs a majority of the mining power to conspire. bitcoin miners collaborate in "mining pools" to reduce volatility of their income, and for many years it would have taken only three or so pools to conspire for a successful attack. but assuming insiders are honest, outsiders must acquire more mining power than the insiders are using. clearly, bitcoin insiders are using so much mining power that this isn't feasible.

    the point of mining isn't to create new bitcoins. mining is needed to make the process of adding a block to the chain, and thus adding a set of transactions to the chain, so expensive that it isn't worth it for an attacker to subvert the process. the cost, and thus in the case of proof of work the carbon footprint, is the whole point. as budish wrote:
    from a computer security perspective, the key thing to note ... is that the security of the blockchain is linear in the amount of expenditure on mining power, ... in contrast, in many other contexts investments in computer security yield convex returns (e.g., traditional uses of cryptography) — analogously to how a lock on a door increases the security of a house by more than the cost of the lock.
    lets consider the possible futures of a fee-based bitcoin blockchain. it turns out that currently fee revenue is a smaller proportion of total miner revenue than seibert claims. here is the chart of total revenue (~$ m/day):

    and here is the chart of fee revenue (~$ m/day):

    thus the split is about % fee, % reward:
    • if security stays the same, blocksize stays the same, fees must increase to keep the cost of a % attack high enough.

      the chart shows the average fee hovering around $ , so the average cost of a single transaction would be over $ . this might be a problem for seibert's requirement that "btcs are transacted with rather than held".
    • if blocksize stays the same, fees stay the same, security must decrease because the fees cannot cover the cost of enough hash power to deter a % attack. similarly, in this case it would be times cheaper to mount a % attack, which would greatly increase the risk of delivering anything in return for bitcoin. it is already the case that users are advised to wait blocks (about an hour) before treating a transaction as final. waiting nearly half a day before finality would probably be a disincentive.
    • if fees stay the same, security stays the same, blocksize must increase to allow for enough transactions so that their fees cover the cost of enough hash power to deter a % attack. since bitcoin blocks have been effectively limited to around mb, and the blockchain is now over one-third of a terabyte growing at over %/yr. increasing the size limit to say mb would solve the long-term problem of a fee-based system at the cost of reducing miners income in the short term by reducing the scarcity value of a slot in a block. doubling the effective size of the block caused a huge controversy in the bitcoin community for precisely this short vs. long conflict, so a much larger increase would be even more controversial. not to mention that the size of the blockchain a year from now would be times bigger imposing additional storage costs on miners.

      that is just the supply side. on the demand side it is an open question as to whether there would be times the current demand for transactions costing $ and taking an hour which, at least in the us, must each be reported to the tax authorities.
    short vs. long
    none of these alternatives look attractive. but there's also a second type of attack in budish's analysis, which he calls "sabotage". he quotes rosenfeld:
    in this section we will assume q < p [i.e., that the attacker does not have a majority]. otherwise, all bets are off with the current bitcoin protocol ... the honest miners, who no longer receive any rewards, would quit due to lack of incentive; this will make it even easier for the attacker to maintain his dominance. this will cause either the collapse of bitcoin or a move to a modified protocol. as such, this attack is best seen as an attempt to destroy bitcoin, motivated not by the desire to obtain bitcoin value, but rather wishing to maintain entrenched economical systems or obtain speculative profits from holding a short position.
    short interest in bitcoin is currently small relative to the total stock, but much larger relative to the circulating supply. budish analyzes various sabotage attack cases, with a parameter attack representing the proportion of the bitcoin value destroyed by the attack:
    for example, if attack = , i.e., if the attack causes a total collapse of the value of bitcoin, the attacker loses exactly as much in bitcoin value as he gains from double spending; in effect, there is no chance to “double” spend after all. ... however, attack is something of a “pick your poison” parameter. if attack is small, then the system is vulnerable to the double-spending attack ... and the implicit transactions tax on economic activity using the blockchain has to be high. if attack is large, then a short time period of access to a large amount of computing power can sabotage the blockchain.
    the current cryptocurrency bubble ensures that everyone is making enough paper profits from the golden eggs to deter them from killing the goose that lays them. but it is easy to create scenarios in which a rush for the exits might make killing the goose seem like the best way out.

    seibert's misunderstanding illustrates the fundamental problem with permissionless blockchains. as i wrote in a note on blockchains:
    if joining the replica set of a permissionless blockchain is free, it will be vulnerable to sybil attacks, in which an attacker creates many apparently independent replicas which are actually under his sole control. if creating and maintaining a replica is free, anyone can authorize any change they choose simply by creating enough sybil replicas.

    defending against sybil attacks requires that membership in a replica set be expensive.
    there are many attempts to provide less environmentally damaging ways to make adding a block to a blockchain expensive, but attempts to make adding a block cheaper are self-defeating because they make the blockchain less secure.

    there are two reasons why the primary use of a permissionless blockchain cannot be transactions as opposed to hodl-ing:
    • the lack of synchronization between the peers means that transactions must necessarily be slow.
    • the need to defend against sybil attacks means either that transactions must necessarily be expensive, or that blocks must be impractically large.
    - - t : : + : david. (noreply@blogger.com) islandora: islandora open meeting: april , https://islandora.ca/content/islandora-open-meeting-april- - islandora open meeting: april , agriffith tue, / / - :
    body

    we are happy to announce the date of our next open meeting! join us on april ,  any time between : - : pm edt. the open meetings are drop-in style sessions where users of all levels and abilities gather to ask questions, share use cases and get updates on islandora. there will be experienced islandora users on hand to answer questions or give demos. we would love for your to join us any time during the -hour window, so feel free to pop by any time!

    more details about the open meeting, and the zoom link to join, are in this google doc

    registration is not required. if you would like a calendar invite as a reminder, please let us know at community@islandora.ca.

    - - t : : + : agriffith digital library federation: call for proposals open for ndsa digital preservation ! https://www.diglib.org/call-for-proposals-open-for-ndsa-digital-preservation- /

    ndsa digital preservation banner

    the ndsa is very pleased to announce the call for proposals is open for digital preservation : embracing digitality (#digipres ) to be held online this year on november th, during world digital preservation day.

    submissions from members and nonmembers alike are welcome, and you can learn more about session format options through the cfp. the deadline to submit proposals is monday, may , at : pm eastern time.

    digital preservation (#digipres ) is held in partnership with our host organization, the council on library and information resources’ (clir) digital library federation. separate calls are being issued for clir+dlf’s events, the dlf forum (november - ) and associated workshop series learn@dlf (november - ). ndsa strives to create a safe, accessible, welcoming, and inclusive event, and adheres to dlf’s code of conduct.

    we look forward to seeing you online on november th,

    ~ digipres planning committee

    the post call for proposals open for ndsa digital preservation ! appeared first on dlf.

    - - t : : + : kussmann hangingtogether: dutch round table on next generation metadata: think bigger than naco and worldcat http://feedproxy.google.com/~r/hangingtogetherorg/~ /jk gsfc ez /
    oclc metadata discussion series

    as part of the oclc research discussion series on next generation metadata, this blog post reports back from the dutch language round table discussion held on march , . (a dutch translation is available here).

    librarians – with backgrounds in metadata, library systems, reference work, national bibliography, and back-office processes – joined the session, representing a nice mix of academic and heritage institutions from the netherlands and belgium. the participants were engaged, candid, and thoughtful and this stimulated constructive knowledge exchange in a pleasant atmosphere.  

    mapping exercise
    map of next-gen metadata projects (dutch session)

    as in all the other round table discussions, participants started with taking stock of next generation metadata projects in their region or initiatives they were aware of elsewhere. the resulting map shows a strong representation of bibliographic and cultural heritage data-projects (see upper- and lower-left quadrants of the matrix). several next-generation metadata research projects of the national library of the netherlands were listed and described, such as:

    • automatic metadata generation, which identifies and tests tools to support subject tagging and cataloging of name authority records;
    • the entity finder, a tool being developed to help extract rda entities (persons, works, expressions) from both authority and bibliographic records.

    the digital heritage reference architecture (dera) was developed as part of the national strategy for digital heritage in the netherlands. it is a framework for managing and publishing heritage information as linked open data (lod), according to agreed practices and conventions. the van gogh worldwide platform is an exemplar of the application of dera – where metadata, relating to the painter’s art works residing at different dutch heritage institutions and private collectors, have been pulled from source systems by api.

    a noteworthy initiative listed in the rim/scholarly communications quadrant of the matrix is the nl-open knowledge base, an initiative in the context of last year’s deal between elsevier and the dutch research institutions, to jointly develop open science services based on their rim systems, elsevier’s databases and analytics solutions and the dutch funding organizations’ databases. the envisaged open knowledge base could potentially feed new applications – for example, a dashboard to monitor the achievement of the universities’ sustainable development goals – and allow to significantly improve the analysis of research impact.

    what is keeping us from moving forward?

    notwithstanding the state-of-the-art projects mentioned during the mapping exercise, the participants were impatient about the pace of the transition to the next generation of metadata. one participant experienced frustration with having to use multiple tools for a workflow that supports the transition, namely: integration of pids, local authorities, or links to and from external sources. another participant noted that there is still a lot of efficiency to be gained in the value chain:

     “when we look at the supply chain, it is absurd to start from scratch because there is already so much data. when a book comes out on the market, it must already have been described. there should not be a need to start from scratch in the library.”

    the group also wondered – with so many bibliographic datasets already published as linked open data – what else needs to be done to interconnect them in meaningful ways?

    the question of what is keeping us from moving forward dominated the discussion.

    trusting external data

    one participant suggested that libraries are cautious about the data sources they link up with. authority files are persistent and reliable data sources, which have yet to find their counterparts in the newly emerging linked data ecosystem. the lack of conventions around reliability and persistence might be a reason why libraries are hesitant entering into linked data partnerships or holding back from relying on external data – even from established sources, such as wikidata. after all, linking to a data source is an indication of trust and recognition of data quality.

    the conversation moved to data models: which linked data do you create yourself? how will you design it and link it up to other data? some participants found there was still a lack of agreement and clarity about the meaning of key concepts such as a “work”. others pointed out that defining the meaning of concepts used is exactly what linked data is about and this feature allows the co-existence of multiple ontologies – in other words, there is no need any longer to fix semantics in hard standards.

    there is no unique semantic model. when you refer to data that has already been defined by others, you relinquish control over that piece of information, and that can be a mental barrier against doing linked data the proper way. it is much safer to store and manage all the data in your own silo. but the moment you can let go of that, the world can become much richer than you can ever achieve on your own.”

    thinking in terms of linked data

    the conversation turned to the need to train cataloging staff. one participant thought it would be helpful to get started by learning to think in terms of linked data, to mentally practice building linked data graphs and play with different possible structures, as one does with lego bricks. the group agreed there is still too little understanding of the possibilities and of the consequences of practicing linked data.

    we have to learn to see ourselves as publishers of metadata, so that others can find it – but we have no idea who the others are, we have to think even bigger than the library of congress’s naco or worldcat. we are no longer talking about the records we create, but about pieces of records that are unique, because a lot already comes from elsewhere. we have to wrap our minds around this and ask ourselves: what is our role in the bigger picture? this is very hard to do!

    the group thought it was very important to start having that discussion within the library. but how exactly do you do that? it’s a big topic and it must be initiated by the library’s leadership team.

    not relevant for my library

    one university library leader in the group reacted to this and said:

    what strikes me is that the number of libraries faced with this challenge is shrinking. (…) [in my library] we hardly produce any metadata anymore. (…) if we look at what we still produce ourselves, it is about describing photos of student fraternities (…). it’s almost nothing anymore. metadata has really become a topic for a small group of specialists.”

    the group objected that this observation was overlooking the importance of the discovery needs of the communities libraries serve. however provocative this observation was, it reflects a reality that we need to acknowledge and at the same time put in perspective. alas, there was no time for that, as the session was wrapping up. it had certainly been a conversation to be continued!

    about the oclc research discussion series on next generation metadata

    in march , oclc research conducted a discussion series focused on two reports: 

    1. transitioning to the next generation of metadata” 
    2. transforming metadata into linked data to improve digital collection discoverability: a contentdm pilot project”. 

    the round table discussions were held in different european languages and participants were able share their own experiences, get a better understanding of the topic area, and gain confidence in planning ahead. 

    the opening plenary session opened the forum for discussion and exploration and introduced the theme and its topics. summaries of all eight round table discussions are published on the oclc research blog, hanging together. this is the last post and it is preceded by the posts reporting on the first english session, the italian session, the second english session, the french session, the german session, the spanish session and the third english session.

    the closing plenary session on april  will synthesize the different round table discussions. registration is still open for this webinar: please join us

    the post dutch round table on next generation metadata: think bigger than naco and worldcat appeared first on hanging together.

    - - t : : + : titia van der werf digital library federation: amia cross-pollinator: justine thomas https://www.diglib.org/ -amia-cross-pollinator-justine-thomas/

    justine thomasthe association of moving image archivists (amia) and dlf will be sending justine thomas to attend the virtual dlf/amia hack day and amia spring conference! as this year’s “cross-pollinator,” justine will enrich both the hack day event and the amia conference, sharing a vision of the library world from her perspective.

    about the awardee

    justine thomas (@justinethomasm) is currently a digital programs contractor at the national museum of american history (nmah) focusing on digital asset management and collections information support. prior to graduating in with a master’s in museum studies from the george washington university, justine worked at nmah as a collections processing intern in the archives center and as a public programs facilitator encouraging visitors to discuss american democracy and social justice issues.

     

    about hack day and the award

     

     

     

     

     

    the seventh amia+dlf hack day (online april - ) will be a unique opportunity for practitioners and managers of digital audiovisual collections to join with developers and engineers to remotely collaborate to develop solutions for digital audiovisual preservation and access.

    the goal of the amia + dlf award is to bring “cross-pollinators”–developers and software engineers who can provide unique perspectives to moving image and sound archivists’ work with digital materials, share a vision of the library world from their perspective, and enrich the hack day event–to the conference.

    find out more about this year’s hack day activities here.

    the post amia cross-pollinator: justine thomas appeared first on dlf.

    - - t : : + : gayle evergreen ils: evergreen . -rc available https://evergreen-ils.org/evergreen- - -rc-available/

    the evergreen community is pleased to announce the availability of the release candidate for evergreen . . this release follows up on the recent beta release. the general release of . . is planned for wednesday, april . between now and then, please download the release candidate and try it out.

    additional information, including a full list of new features, can be found in the release notes.

    - - t : : + : galen charlton jez cope: intro to the fediverse https://erambler.co.uk/blog/intro-to-the-fediverse/

    wow, it turns out to be years since i wrote this beginners guide to twitter. things have moved on a loooooong way since then.

    far from being the interesting, disruptive technology it was back then, twitter has become part of the mainstream, the establishment. almost everyone and everything is on twitter now, which has both pros and cons.

    so what’s the problem?

    it’s now possible to follow all sorts of useful information feeds, from live updates on transport delays to your favourite sports team’s play-by-play performance to an almost infinite number of cat pictures. in my professional life it’s almost guaranteed that anyone i meet will be on twitter, meaning that i can contact them to follow up at a later date without having to exchange contact details (and they have options to block me if they don’t like that).

    on the other hand, a medium where everyone’s opinion is equally valid regardless of knowledge or life experience has turned some parts of the internet into a toxic swamp of hatred and vitriol. it’s easier than ever to forget that we have more common ground with any random stranger than we have similarities, and that’s led to some truly awful acts and a poisonous political arena.

    part of the problem here is that each of the social media platforms is controlled by a single entity with almost no accountability to anyone other than shareholders. technological change has been so rapid that the regulatory regime has no idea how to handle them, leaving them largely free to operate how they want. this has led to a whole heap of nasty consequences that many other people have done a much better job of documenting than i could (shoshana zuboff’s book the age of surveillance capitalism is a good example). what i’m going to focus on instead are some possible alternatives.

    if you accept the above argument, one obvious solution is to break up the effective monopoly enjoyed by facebook, twitter et al. we need to be able to retain the wonderful affordances of social media but democratise control of it, so that it can never be dominated by a small number of overly powerful players.

    what’s the solution?

    there’s actually a thing that already exists, that almost everyone is familiar with and that already works like this.

    it’s email.

    there are a hundred thousand email servers, but my email can always find your inbox if i know your address because that address identifies both you and the email service you use, and they communicate using the same protocol, simple mail transfer protocol (smtp) . i can’t send a message to your twitter from my facebook though, because they’re completely incompatible, like oil and water. facebook has no idea how to talk to twitter and vice versa (and the companies that control them have zero interest in such interoperability anyway).

    just like email, a federated social media service like mastodon allows you to use any compatible server, or even run your own, and follow accounts on your home server or anywhere else, even servers running different software as long as they use the same activitypub protocol.

    there’s no lock-in because you can move to another server any time you like, and interact with all the same people from your new home, just like changing your email address. smaller servers mean that no one server ends up with enough power to take over and control everything, as the social media giants do with their own platforms. but at the same time, a small server with a small moderator team can enforce local policy much more easily and block accounts or whole servers that host trolls, nazis or other poisonous people.

    how do i try it?

    i have no problem with anyone for choosing to continue to use what we’re already calling “traditional” social media; frankly, facebook and twitter are still useful for me to keep in touch with a lot of my friends. however, i do think it’s useful to know some of the alternatives if only to make a more informed decision to stick with your current choices. most of these services only ask for an email address when you sign up and use of your real name vs a pseudonym is entirely optional so there’s not really any risk in signing up and giving one a try. that said, make sure you take sensible precautions like not reusing a password from another account.

    instead of… try…
    twitter, facebook mastodon, pleroma, misskey
    slack, discord, irc matrix
    whatsapp, fb messenger, telegram also matrix
    instagram, flickr pixelfed
    youtube peertube
    the web interplanetary file system (ipfs)

    1. which, if you can believe it, was formalised nearly years ago in and has only had fairly minor changes since then! ↩︎

    - - t : : + : hangingtogether: third english round table on next generation metadata: investing in the utility of authorities and identifiers http://feedproxy.google.com/~r/hangingtogetherorg/~ /angp bt hu/

    thanks to george bingham, uk account manager at oclc, for contributing this post as part of the metadata series blog posts. 

    oclc metadata discussion series

    as part of the oclc research discussion series on next generation metadata, this blog post reports back from the third english language round table discussion held on march , .  the session was scheduled to facilitate a uk-centric discussion with a panel of library representatives from the uk with backgrounds in bibliographic control, special collections, collections management, metadata standards and computer science – a diverse and engaged discussion group.

    mapping exercise
    map of next-gen metadata projects (third english session)

    as with other round table sessions, the group started with mapping next generation metadata projects that participants were aware of, on a × matrix characterizing the application area: bibliographic data, cultural heritage data, research information management (rim) data, and for anything else, the category, “other”. the resulting map gave a nice overview of some of the building blocks of the emerging next generation metadata infrastructure, focussing in this session on the various national and international identifier initiatives – isni, viaf, fast, lc/naco authority file and lc/saco subject lists, and orcid – and metadata and linked data infrastructure projects such as plan-m (an initiative, facilitated by jisc, to rethink the way that metadata for academic and specialist libraries is created, sold, licensed, shared, and re-used in the uk), bibframe and oclc’s shared entity management infrastructure.

    the map also raises interesting questions about some of the potential or actual obstacles to the spread of next generation metadata:

    what to do about missing identifiers? how to incorporate extant regional databases and union catalogs into the national and international landscape? how “open” are institutions’ local archive management systems? who is willing to pay for linked data?   

    contributing to library of congress authorities

    the discussion panel agreed that there is a pressing need for metadata to be less hierarchical, which linked data delivers, and that a collaborative approach is the best way forward. one example is the development of the uk funnel for naco and saco, which has reinforced the need for a more national approach in the uk. the funnel allows the uk higher education institutions to contribute to the lc name and subject authorities using a single channel – rather than each library setting up its own channel. because they work together as a group to make their contributions to the authority files, the quality and the “authority” of their contributions is significantly increased.

    registering and seeding isnis

    one panelist reported on a one-year trial with isni for the institution’s legal deposit library, as a first step into working with linked data. it is hoped that it will prove to be a sustainable way forward. there is considerable enthusiasm and interest for this project amongst the institution’s practitioners, a vital ingredient for a successful next generation metadata initiative.

    another panelist expanded on several ongoing projects with the aim of embedding isni identifiers within the value chain and getting them out to where cataloguers can pick them up. for example, publishers are starting to use them in their onix feeds to enable them to create clusters of records. also, cataloging agencies in the uk are being supplied with isni identifiers so that they can embed them in the metadata at source, in the cataloging-in-publication (cip) metadata, that they supply to libraries in the uk.

    efforts are also under way to systematically match isni entries against viaf entries, and to provide a reconciliation file to enable oclc to update the viaf with the most recent isni. these could then be fed through to the library of congress, who can then use these to update naco files.

    with million files to update, this is a perfect example of a leading edge dynamic next generation metadata initiative that will have to overcome the considerable challenge of scalability for it to succeed at a global level.

    challenges faced by identifiers

    the discussion moved on to the other challenges faced by identifier schemes. it was noted that encouraging a more widespread collaborative approach would rely on honesty amongst the contributors. there would need to be built in assurances that the tags/data come from a trusted source. would the more collaborative approach introduce too much scope for duplicate identifiers being created, and too many variations on preferred names? cultural expectations would have to be clearly defined and adhered to. and last but by no means least is the challenge of providing the resources needed to upscale to a national and international scope.

    obstacles in moving towards next generation metadata 

    participants raised concerns that library management systems are not keeping pace with current discussions on next generation metadata or with real world implementations, to the extent that they may be the biggest obstacle in the move towards next generation metadata. it was recognized that moving to linked data involves a big conceptual and technical leap from the current string-based metadata creation, sharing and management practices, tools and methodologies.

    progress can only be made in small steps, and there is still much work to be done to demonstrate the benefits of next generation metadata, a prerequisite if we are to complete the essential step of gaining the support of senior management and buy-in from system suppliers.  

    if we don’t lead, will someone else take over?

    towards the end of the session, a brief discussion arose around the possibility (and danger) of organizations outside the library sector “taking over” if we can’t manage the transition ourselves. amazon was cited as already becoming regarded as a good model to follow for metadata standards, despite what we know to be its shortcomings: it does not promote high quality data, and there are numerous problems concealed within the data, that are not evident to non-professionals. these quality issues would become very problematic if they are allowed to become pervasive in the global metadata landscape.

    our insistence on ‘perfect data’ is a good thing, but are people just giving up on it because it’s too difficult to attain?”   

    about the oclc research discussion series on next generation metadata

    in march , oclc research conducted a discussion series focused on two reports: 

    1. transitioning to the next generation of metadata” 
    2. transforming metadata into linked data to improve digital collection discoverability: a contentdm pilot project”. 

    the round table discussions were held in different european languages and participants were able share their own experiences, get a better understanding of the topic area, and gain confidence in planning ahead. 

    the opening plenary session opened the forum for discussion and exploration and introduced the theme and its topics. summaries of all eight round table discussions are published on the oclc research blog, hanging together. this post is preceded by the posts reporting on the first english session, the italian session, the second english session, the french session, the german session, and the spanish session.

    the closing plenary session on april  will synthesize the different round table discussions. registration is still open for this webinar: please join us

    the post third english round table on next generation metadata: investing in the utility of authorities and identifiers appeared first on hanging together.

    - - t : : + : titia van der werf peter murray: more thoughts on pre-recording conference talks https://dltj.org/article/pre-recording-conference-talks-redux/

    over the weekend, i posted an article here about pre-recording conference talks and sent a tweet about the idea on monday. i hoped to generate discussion about recording talks to fill in gaps—positive and negative—about the concept, and i was not disappointed. i’m particularly thankful to lisa janicke hinchliffe and andromeda yelton along with jason griffey, junior tidal, and edward lim junhao for generously sharing their thoughts. daniel s and kate deibel also commented on the code lib slack team. i added to the previous article’s bullet points and am expanding on some of the issues here. i’m inviting everyone mentioned to let me know if i’m mischaracterizing their thoughts, and i will correct this post if i hear from them. (i haven’t found a good comments system to hook into this static site blog.)

    pre-recorded talks limit presentation format

    lisa janicke hinchliffe made this point early in the feedback:

    jason described the “flipped classroom” model that he had in mind as the nisoplus program was being developed. the flipped classroom model is one where students do the work of reading material and watching lectures, then come to the interactive time with the instructors ready with questions and comments about the material. rather than the instructor lecturing during class time, the class time becomes a discussion about the material. for nisoplus, “the recording is the material the speaker and attendees are discussing” during the live zoom meetings.

    in the previous post, i described how the speaker could respond in text chat while the recording replay is beneficial. lisa went on to say:

    she described an example: the ssp preconference she ran at chs. i’m paraphrasing her tweets in this paragraph. the preconference had a short keynote and an “oprah-style” panel discussion (not pre-prepared talks). this was done live; nothing was recorded. after the panel, people worked in small groups using zoom and a set of google slides to guide the group work. the small groups reported their discussions back to all participants.

    andromeda points out (paraphrasing twitter-speak): “presenters will need much more— and more specialized—skills to pull it off, and it takes a lot more work.” and lisa adds: “just so there is no confusion … i don’t think being online makes it harder to do interactive. it’s the pre-recording. interactive means participants co-create the session. a pause to chat isn’t going to shape what comes next on the recording.”

    increased technical burden on speakers and organizers

    andromeda also agreed with this: “i will say one of the things i appreciated about niso is that @griffey did all the video editing, so i was not forced to learn how that works.” she continued, “everyone has different requirements for prerecording, and in [code lib’s] case they were extensive and kept changing.” and later added: “part of the challenge is that every conference has its own tech stack/requirements. if as a presenter i have to learn that for every conference, it’s not reducing my workload.”

    it is hard not to agree with this; a high-quality (stylistically and technically) recording is not easy to do with today’s tools. this is also a technical burden for meeting organizers. the presenters will put a lot of work into talks—including making sure the recordings look good; whatever playback mechanism is used has to honor the fidelity of that recording. for instance, presenters who have gone through the effort to ensure the accessibility of the presentation color scheme want the conference platform to display the talk “as i created it.”

    the previous post noted that recorded talks also allow for the creation of better, non-real-time transcriptions. lisa points out that presenters will want to review that transcription for accuracy, which jason noted adds to the length of time needed before the start of a conference to complete the preparations.

    increased logistical burden on presenters

    this is a consideration i hadn’t thought through—that presenters have to devote more clock time to the presentation because first they have to record it and then they have to watch it. (or, as andromeda added, “significantly more than twice the time for some people, if they are recording a bunch in order to get it right and/or doing editing.”)

    no. audience. reaction.

    wow, yes. i imagine it would take a bit of imagination to get in the right mindset to give a talk to a small camera instead of an audience. i wonder how stand-up comedians are dealing with this as they try to put on virtual shows. andromeda summed this up:

    also in this heading could be “no speaker reaction”—or the inability for subsequent speakers at a conference to build on something that someone said earlier. in the code lib slack team, daniel s noted: “one thing comes to mind on the pre-recording [is] the issue that prerecorded talks lose the ‘conversation’ aspect where some later talks at a conference will address or comment on earlier talks.” kate deibel added: “exactly. talks don’t get to spontaneously build off of each other or from other conversations that happen at the conference.”

    currency of information

    lisa points out that pre-recording talks before en event means there is a delay between the recording and the playback. in the example she pointed out, there was a talk at rluk that pre-recorded would have been about the university of california working on an open access deal with elsevier; live, it was able to be “the deal we announced earlier this week”.

    conclusions?

    near the end of the discussion, lisa added:

    …and andromeda added: “strong agree here. i understand that this year everyone was making it up as they went along, but going forward it’d be great to know that in advance.”

    that means conferences will need to take these needs into account well before the call for proposals (cfp) is published. a conference that is thinking now about pre-recording their talks must work through these issues and set expectations with presenters early.

    as i hoped, the twiter replies tempered my eagerness for the all-recorded style with some real-world experience. there could be possibilities here, but adapting face-to-face meetings to a world with less travel won’t be simple and will take significant thought beyond the issues of technology platforms.

    edward lim junhao summarized this nicely: “i favor unpacking what makes up our prof conferences. i’m interested in recreating that shared experience, the networking, & the serendipity of learning sth you didn’t know. i feel in-person conferences now have to offer more in order to justify people traveling to attend them.”

    related, andromeda said: “also, for a conf that ultimately puts its talks online, it’s critical that it have something beyond content delivery during the actual conference to make it worth registering rather than just waiting for youtube. realtime interaction with the speaker is a pretty solid option.”

    if you have something to add, reach out to me on twitter. given enough responses, i’ll create another summary. let’s keep talking about what that looks like and sharing discoveries with each other.

    the tree of tweets

    it was a great discussion, and i think i pulled in the major ideas in the summary above. with some guidance from ed summers, i’m going to embed the twitter threads below using treeverse by paul butler. we might be stretching the boundaries of what is possible, so no guarantees that this will be viewable for the long term.

    - - t : : + : peter murray (jester@dltj.org) peter murray: should all conference talks be pre-recorded? https://dltj.org/article/pre-recording-conference-talks/

    the code lib conference was last week. that meeting used all pre-recorded talks, and we saw the benefits of pre-recording for attendees, presenters, and conference organizers. should all talks be pre-recorded, even when we are back face-to-face?

    note! after i posted a link to this article on twitter, there was a great response of thoughtful comments. i've included new bullet points below and summarized the responses in another blog post.

    as an entirely virtual conference, i think we can call code lib a success. success ≠ perfect, of course, and last week the conference coordinating team got together on a zoom call for a debriefing session. we had a lengthy discussion about what we learned and what we wanted to take forward to the conference, which we’re anticipating will be something with a face-to-face component.

    that last sentence was tough to compose: “…will be face-to-face”? “…will be both face-to-face and virtual”? (or another fully virtual event?) truth be told, i don’t think we know yet. i think we know with some certainty that the covid pandemic will become much more manageable by this time next year—at least in north america and europe. (code lib draws from primarily north american library technologists with a few guests from other parts of the world.) i’m hearing from higher education institutions, though, that travel is going to be severely curtailed…if not for health risk reasons, then because budgets have been slashed. so one has to wonder what a conference will look like next year.

    i’ve been to two online conferences this year: nisoplus and code lib. both meetings recorded talks in advance and started playback of the recordings at a fixed point in time. this was beneficial for a couple of reasons. for organizers and presenters, pre-recording allowed technical glitches to be worked through without the pressure of a live event happening. technology is not nearly perfect enough or ubiquitously spread to count on it working in real-time. nisoplus also used the recordings to get transcribed text for the videos. (code lib used live transcriptions on the synchronous playback.) attendees and presenters benefited from pre-recording because the presenters could be in the text chat channel to answer questions and provide insights. having the presenter free during the playback offers new possibilities for making talks more engaging: responding in real-time to polls, getting forehand knowledge of topics for subsequent real-time question/answer sessions, and so forth. the synchronous playback time meant that there was a point when (almost) everyone was together watching the same talk—just as in face-to-face sessions.

    during the code lib conference coordinating debrief call, i asked the question: “if we saw so many benefits to pre-recording talks, do we want to pre-record them all next year?” in addition to the reasons above, pre-recorded talks benefit those who are not comfortable speaking english or are first-time presenters. (they have a chance to re-do their talk as many times as they need in a much less stressful environment.) “live” demos are much smoother because a recording can be restarted if something goes wrong. each year, at least one presenter needs to use their own machine (custom software, local development environment, etc.), and swapping out presenter computers in real-time is risky. and it is undoubtedly easier to impose time requirements with recorded sessions. so why not pre-record all of the talks?

    i get it—it would be different to sit in a ballroom watching a recording play on big screens at the front of the room while the podium is empty. but is it so different as to dramatically change the experience of watching a speaker at a podium? in many respects, we had a dry-run of this during code lib . it was at the early stages of the coming lockdowns when institutions started barring employee travel, and we had to bring in many presenters remotely. i wrote a blog post describing the setup we used for remote presenters, and at the end, i said:

    i had a few people comment that they were taken aback when they realized that there was no one standing at the podium during the presentation.

    some attendees, at least, quickly adjusted to this format.

    for those with the means and privilege of traveling, there can still be face-to-face discussions in the hall, over meals, and social activities. for those that can’t travel (due to risks of traveling, family/personal responsibilities, or budget cuts), the attendee experience is a little more level—everyone is watching the same playback and in the same text backchannels during the talk. i can imagine a conference tool capable of segmenting chat sessions during the talk playback to “tables” where you and close colleagues can exchange ideas and then promote the best ones to a conference-wide chat room. something like that would be beneficial as attendance grows for events with an online component, and it would be a new form of engagement that isn’t practical now.

    there are undoubtedly reasons not to pre-record all session talks (beyond the feels-weird-to-stare-at-an-unoccupied-ballroom-podium reasons). during the debriefing session, one person brought up that having all pre-recorded talks erodes the justification for in-person attendance. i can see a manager saying, “all of the talks are online…just watch it from your desk. even your own presentation is pre-recorded, so there is no need for you to fly to the meeting.” that’s legitimate.

    so if you like bullet points, here’s how it lays out. pre-recording all talks is better for:

    • accessibility: better transcriptions for recorded audio versus real-time transcription (and probably at a lower cost, too)
    • engagement: the speaker can be in the text chat during playback, and there could be new options for backchannel discussions
    • better quality: speakers can re-record their talk as many times as needed
    • closer equality: in-person attendees are having much the same experience during the talk as remote attendees

    downsides for pre-recording all talks:

    • feels weird: yeah, it would be different
    • erodes justification: indeed a problem, especially for those for whom giving a speech is the only path to getting the networking benefits of face-to-face interaction
    • limits presentation format: it forces every session into being a lecture. for two decades cfps have emphasized how will this season be engaging/not just a talking head? (lisa janicke hinchliffe)
    • increased technical burden on speaker and organizers: conference organizers asking presenters to do their own pre-recording is a barrier (junior tidal), and organizers have added new requirements for themselves
    • no audience feedback: pre-recording forces the presenter into an unnatural state relative to the audience (andromeda yelton)
    • currency of information: pre-recording talks before en event naturally introduces a delay between the recording and the playback. (lisa janicke hinchliffe)

    i’m curious to hear of other reasons, for and against. reach out to me on twitter if you have some. the covid- pandemic has changed our society and will undoubtedly transform it in ways that we can’t even anticipate. is the way that we hold professional conferences one of them?

    1. can we just pause for a moment and consider the decades of work and layers of technology that make a modern teleconference call happen? for you younger folks, there was a time when one couldn’t assume the network to be there. as in: the operating system on your computer couldn’t be counted on to have a network stack built into it. in the earliest years of my career, we were tickled pink to have macintoshes at the forefront of connectivity through gatorboxes. go read the first paragraph of that wikipedia article on gatorboxes…tcp/ip was tunneled through localtalk running over phonenet on unshielded twisted pairs no faster than about kbit/second. (and we loved it!) now the network is expected; needing to know about tcp/ip is pushed so far down the stack as to be forgotten…assumed. sure, the software on top now is buggy and bloated—is my zoom client working? has zoom’s service gone down?—but the network…we take that for granted. 

    - - t : : + : peter murray (jester@dltj.org) islandora: upcoming dig sprint https://islandora.ca/content/upcoming-dig-sprint upcoming dig sprint agriffith thu, / / - :
    body

    the islandora documentation interest group is holding a sprint!

    to support the upcoming release of islandora, the dig has planned a -week documentation, writing-and-updating sprint to occur as part of the release process. to prepare for that effort, we’re going to spend april – th on an auditing sprint, where volunteers will review existing documentation and complete this spreadsheet, providing a solid overview of the current status of our docs so we know where to best deploy our efforts during the release. this sprint will run alongside the upcoming pre-release code sprint, so if you’re not up for coding, auditing docs is a great way to contribute during sprint season!

    we are looking for volunteers to sign up to take on two sprint roles:

    auditor: review a page of documentation and fill out a row in the spreadsheet indicating things like the current status (‘good enough’ or ‘needs work’) , the goal for that particular page (e.g., “explain how to create an object,” or “compare islandora concepts to islandora concepts”), and the intended audience (beginners, developers, etc.).

    reviewer: read through a page that has been audited and indicate if you agree with the auditor’s assessment, add additional notes or suggestions as needed; basically, give a second set of eyes on each page.

     you can sign up for the sprint here, and sign up for individual pages here.


     

    - - t : : + : agriffith samvera: registration now open for samvera virtual connect, april – https://samvera.org/ / / /registration-now-open-for-samvera-virtual-connect/

    registration is now open for samvera virtual connect ! samvera virtual connect will take place april th - st from am – pm edt. registration is free and open to anyone with an interest in samvera.

    this year’s program is packed with presentations and lightning talks of interest to developers, managers, librarians, and other current or potential samvera community participants and technology users.

    register and view the full program on the samvera wiki.

    the post registration now open for samvera virtual connect, april – appeared first on samvera.

    - - t : : + : heather greer klein lucidworks: chatbots for self-resolution and happier customers https://lucidworks.com/post/chatbots-self-resolution/

    how chatbots and conversational applications with deep learning are helping customers resolve issues faster than ever.

    the post chatbots for self-resolution and happier customers appeared first on lucidworks.

    - - t : : + : sommer antrim digital library federation: dlf forum, digipres, and learn@dlf calls for proposals https://www.diglib.org/ -dlf-forum-digipres-and-learndlf-calls-for-proposals/

    join us online

    we’re delighted to share that it’s cfp season for clir’s annual events.

    based on community feedback, we’ve made the decision to take our events online again in . we look forward to new and better ways to come together—as always, with community at the center.

    our events will take place on the following dates:

    for all events, we encourage proposals from members and non-members; regulars and newcomers; digital library practitioners and those in adjacent fields such as institutional research and educational technology; and students, early-career professionals and senior staff alike. proposals to more than one event are permitted, though please submit different proposals for each. 

    the dlf forum and learn@dlf cfp is here: https://forum .diglib.org/call-for-proposals/ 

    ndsa’s digital preservation : embracing digitality cfp is here: https://ndsa.org/conference/digital-preservation- /cfp/

    session options range from -minute lighting talks at the forum to half-day workshops at learn@dlf, with many options in between.

    the deadline for all opportunities is monday, may , at : pm eastern time.

    if you have any questions, please write to us at forum@diglib.org, and be sure to subscribe to our forum newsletter to stay up on all forum-related news. we’re looking forward to seeing you this fall.

    -team dlf

    the post dlf forum, digipres, and learn@dlf calls for proposals appeared first on dlf.

    - - t : : + : gayle peter sefton: what did you do in the lockdowns pt? part - music videos http://ptsefton.com/ / / /lockdowns /index.html

    post looks too long? don't want to read? here's the summary. last year gail mcglinn* and i did the lockdown home-recording thing. we put out at least one song video per week for a year (and counting - we're up to over weeks). searchable, sortable website here. we learned some things, got better at performing for the phone camera and our microphones and better at mixing and publishing the result.

    * disclosure gail's my wife. we got married; she proposed, i accepted.

    i may i might - is this the world's best marriage proposal acceptance song? (it did win a prize at a ukulele festival for best song)

    (this post is littered with links to our songs, sorry but there are of them and someone has to link to them.)

    in the second quarter of gail mcglinn and i went from playing and singing in community music events (jams, gigs, get togethers) at least once a week to being at home every evening, like everyone else. like lots of people we decided to put our efforts into home recording, not streaming cos that would be pointless for people with basically no audience, but we started making videos and releasing them under our band name team happy.

    by release i mean "put on facebook" and "sometimes remember to upload to youtube".

    this post is about that experience and what we learned.

    team happy is the name we use to perform as a duo at open mic events and the odd community or ukulele festival. we were originally called "the narrownecks" in honour of where we live, for one gig, but then we found out there's another group with that name. actually they're much better than us, just go watch them.

    coming in to we already had a youtube channel and it had a grand total of two videos on it with a handful of views - as in you could count them on your fingers. it's still a sad thing to behold, how many views we have - but it's not about views it's about getting discovered and having our songs performed by, oh i dunno, casey chambers? keith urban? (oh yeah, that would mean we'd need views. bugger.) either that or it's about our personal journey and growth as people. or continuing to contribute to our local music communities in lockdown (which is what gail says it's about.). seriously though, we think i called your name and dry pebbles would go well on someone else's album.

    dry pebbles, by gail mcglinn - a song written tramping through the bush.

    i called your name by peter sefton

    anyway, in late march we got out our recording gear and started. while phone cameras are fine for the quality of video we need, we wanted to do better than phone-camera sound. (here's an example of that sound from one of our first recordings on my song seventeen - it's pretty muddy, like the lighting.)

    seventeen by peter sefton

    initial attempts to get good audio involved feeding usb-audio from a sound mixer with a built in audio interface (a yamaha mx ) into the phone itself and recording an audio track with the video - but this is clunky and you only get two tracks even though the mixer has multiple inputs. we soon graduated to using a daw - a digital audio workstation with our mixer, still only two tracks but much less mucking around with the phone.

    so this is more or less what we ended up with for the first few weeks - we'd record or "track" everything on the computer and then use it again to mix.

    our first-generation recording rig with annoying recording via a laptop

    there's a thing you have to do to audio files called mastering which means getting them to a suitable volume level and dynamic range for distribution. without it loud stuff is too quiet and quiet stuff is too quiet, and the music has no punch. this was a complete mystery to me to start with so i paid for online services that use ai to master tracks - kind of but not really making everything louder. at some point i started doing it myself, beginning the long process of learning the mysteries of compression and limiting and saving money. haven't mastered it yet, though. mastering is an actual profession, by the way and i'm not going to reach those heights.

    in may, we got a new bit of gear, the tascam model an all in one mixer-recorder-interface that lets you track (that is record tracks) without a computer - much easier to deal with. a bit later we got a zoom h portable recorder with built in mics and a couple of extra tracks for instruments so we can do stuff away from home - this got used on our month-long holiday in march . well it was almost a month, but there was a rain event and we came home a bit early. these machines let you capture tracks, including adding new ones without touching the computer which is a big win as far as i am concerned.

    gail singing closer to fine on the strand in townsville, in north queensland, recorded on the h and (partly) mixed in the car on holidays.

    after a bit, and depending on the level of lockdown we'd have guests around to visit and when that was happening, we kept our distance at either end of our long lounge room and used a phone camera and microphone at each end.

    our second-generation recording rig with stand-alone laptop-free tracking

    this new setup made it much easier to do overdubs - capture more stuff into the model and make videos each time, like on this song of mine they say dancing where i overdubbed guitar and bass over a live track.

    they say dancing by peter sefton

    so what did we learn?

    1. perfect is the enemy of done. well, we knew that, but if you've decided to release a song every week, even if you're away on a holiday, or there are other things going on then there's no time to obsess over details - you have to get better at getting a useable take quickly or you won't be able to keep going for a year or more.

    2. practice may not make perfect, but it's a better investment than new gear, or doing endless takes with the cameras rolling. we got better at picking a song (or deciding to write one or finish one off), playing it for a week or two and then getting the take.

    3. simplify! we learned that to get a good performance sometimes it was better for only one of us to play or sing, that fancy parts increased the chance of major errors, meaning yet another take. if in doubt (like my harmony singing that's always in doubt) we're learning to leave it out.

    4. nobody likes us! actually we know that's not true, some of the songs get hundreds of plays on facebook but not many people actually click the like button, maybe twenty or so. but then you run into people in the supermarket; they say "love the songs keep it up"! and there are quite a few people who listen every week on fb we just can't tell they're enjoying it. there are complex reasons for this lack of engagement - some people don't like to like things so that (they think) the evil fb can't track them. i think the default auto-play for video might be a factor too - the video starts playing, and that might not be a good time, so people skip forward to something else.

      it's kind of demoralizing that it is much easier to get likes with pictures of the dog.

      puppies win every time

      our spoiled covid-hound, floki - about months old. much more likeable on the socials than our music.

    5. youtube definitely doesn't like us. i figured that some of the songs we sang would attract some kind of youtube audience - we often search to see what kinds of covers of songs are out there and thought others might find us the same way, but we get almost no views on that platform. i also thought that adding some text about the gear we used might bring in some views. for example we were pretty early adopters of the tascam model . i had tried to find out what one sounded like in real life before i bought, with no success - and i thought people might drop by to hear us, but i don't think google/youtube is giving us any search-juice at all.

    our personal favourites

    our favourite cover we did (and we actually agreee on this - team happy is not an ironic name) was colour my world. we'd just got the tascam and gail was able to double track herself - no mucking around with computers. we had fun that night.

    colour my world - one of our fave covers to perform

    and my favourite original? well i'm very proud of all l'amour for you with lots of words and a bi-lingual pun - i wanted to do that on the local community radio just last weekend when we were asked in, but the host richard 'duck' keegan kind of mentioned the aforementioned i called your name so we did that instead along with dry pebbles and seventeen.

    all l'amour for you the last word on love and metaphors for love? by peter sefton.

    gail's fave original? i may i might, the song that snagged her the best husband in south katoomba over . m tall. and she likes the tear jerker goodbye mongrel dog i wrote, on which she pays some pumpin' banjo.

    goodbye mongrel dog - a song that says goodbye to a (deceased) mongrel dog who went by the name of spensa.

    music-tech stuff and mixing tips

    for those of you who care, here's a roundup of the main bits of kit that work well. we've reached the point where there's actually nothing on the shopping list - we can do everything for the foreseeable future with what we have.

    i have mentioned that we track using the tascam model and the zoom h - these are both great. the only drawback of the zoom is that you can't see the screen (and thus the levels) from performance position. it also needed a better wind shield - i bought a dead-cat, shaggy thing to go over the mics that works if the wind is moderate.

    when i bought the tascam i thought it was going to be all analogue through the mixer stage like their model and model , but no, it's all digital. i don't think this is an issue having used it but it was not something they made all that explicit at launch. there's a digital zoom equivalent (the l ) which is a bit smaller, and has more headphone outputs but at the expense of having to do mode-switching to to access all the functions. i think the tascam will be easier to use for live shows when those start happening again.

    for video we just use our phones - for a while we had matching pixel xls then a pixel which drowned in a tropical stream. yes they're waterproof, those models, but not when they have tiny cracks in the screen. no more $ phones for me.

    reaper is bloody marvelous software. it's cheap for non-commercial use, incredibly powerful and extensible. i have not used any other digital audio workstation other than garage band, that comes for free on the apple platform but as far as i can see there's no reason for non-technophobic home producers to pay any more than the reaper fee for something else.

    our mainstay mics are a slightly battered pair of audio technica at s - we had these for performing live with gail's band u ria - everyone gathered around a condenser mic, bluegrass style. for recording we either put one at either end of the room or mount them vertically in an x/y configuration - ° to get stereo. they're fairly airy and have come to be a big part of our sound. we tried some other cheap things that didn't work very well, and i got a pair of australian rode m pencil condenser mics, not expensive, that i hoped might be easier to mount x/y but we didn't like them for vocals at all, though they're great on stringed instruments. we do have an sm and sm -- gotta love a microphone with a wikipedia page -- which see occasional use as vocal mics if we want a more rock 'n roll sound, or the guest singer is more used to a close-mic. and the sm for guitar amps sometimes.

    we tend to play our favourite acoustic instruments but when we have bass we use the trace elliot elf amp which has a great compressor and a di output (it can send a signal to the mixer/interface without going via the speaker). sometimes we run the speaker and try not to let it bleed too much into the at s, very occasionally we wear headphones for the first track and go direct so there's no bass bleed. i have done a bit of electric guitar with the boss katana - to me it sounds good in the room that amp, but has not recorded well either via the headphone out or via an sm . i get better results thru the bass amp. i don't have any kind of actual electric guitar tone sorted though i have seen lot of videos about how to achieve the elusive tone. maybe one day.

    one thing that i wasn't expecting to happen - i dropped the top e of my little made in mexico martin ooo jr guitar to d (you know, like keef) some time early in and it ended up staying there. gives some nice new chord voicings ( ths mostly) and it's the same top strings as a string banjo with some very easy-to-grab chords. have started doing it to ukuleles too, putting them in open c.

    a note on the bass: playing bass is fun (we knew that before we started) but mixing it so it can be heard on a phone speaker is a real challenge. one approach that helps is using an acoustic bass which out of a lot more high frequency than a solid body electric this also helps because you don't have to have an amp on while you're tracking it live, but you can take a direct input from a pickup (or two) and mic the bass giving you lots of signals with different eq to play with. i gaffa-taped a guitar humbucker into my artist guitars string acoustic and it sounds huge.

    the basic (ha!) trick i try to use for getting more high frequency for tiny speakers is to create a second track, saturate the signal with distortion and/or saturation effects to boost the upper harmonic content and then cut all the low frequency out and mix that so it can just be heard and imply the fundamental bass frequency in addition to the real bassy bass. helps if you have some bridge pickup or under-saddle pickup in the signal if those are available and if you remember.

    i also like to add some phaser effect that gives some motion in the upper frequencies - for example my perfect country pop song - too much phaser? probably, but i can hear the bass on my phone and it bounces :). phaser is team happy's favourite effect, nothing says perfect country pop (which is what we are, right?) like a phaser.

    perfect country pop song - is it perfect or merely sublime? (this one has a cute puppy in it).

    everything i know about music production is from youtube. everything i know about song writing is from deep in my soul. thank you for reading all the way to the bottom. normal service will resume next week.

    - - t : : + : ptsefton lucidworks: let fusion handle search to get the most out of sharepoint https://lucidworks.com/post/lucidworks-fusion-augments-sharepoint-capabilities-for-best-knowledge-management-experience/

    augment sharepoint with a flexible search platform to deliver the best knowledge management experience in the market.

    the post let fusion handle search to get the most out of sharepoint appeared first on lucidworks.

    - - t : : + : jenny gomez jez cope: collaborations workshop : collaborative ideas & hackday https://erambler.co.uk/blog/collabw -part- /

    my last post covered the more “traditional” lectures-and-panel-sessions approach of the first half of the ssi collaborations workshop. the rest of the workshop was much more interactive, consisting of a discussion session, a collaborative ideas session, and a whole-day hackathon!

    the discussion session on day one had us choose a topic (from a list of topics proposed leading up to the workshop) and join a breakout room for that topic with the aim of producing a “speed blog” by then end of minutes. those speed blogs will be published on the ssi blog over the coming weeks, so i won’t go into that in more detail.

    the collaborative ideas session is a way of generating hackday ideas, by putting people together at random into small groups to each raise a topic of interest to them before discussing and coming up with a combined idea for a hackday project. because of the serendipitous nature of the groupings, it’s a really good way of generating new ideas from unexpected combinations of individual interests.

    after that, all the ideas from the session, along with a few others proposed by various participants, were pitched as ideas for the hackday and people started to form teams. not every idea pitched gets worked on during the hackday, but in the end teams of roughly equal size formed to spend the third day working together.

    my team’s project: “aha! an arts & humanities adventure”

    there’s a lot of fomo around choosing which team to join for an event like this: there were so many good ideas and i wanted to work on several of them! in the end i settled on a team developing an escape room concept to help arts & humanities scholars understand the benefits of working with research software engineers for their research.

    five of us rapidly mapped out an example storyline for an escape room, got a website set up with github and populated it with the first few stages of the game. we decided to focus on a story that would help the reader get to grips with what an api is and i’m amazed how much we managed to get done in less than a day’s work!

    you can try playing through the escape room (so far) yourself on the web, or take a look at the github repository, which contains the source of the website along with a list of outstanding tasks to work on if you’re interested in contributing.

    i’m not sure yet whether this project has enough momentum to keep going, but it was a really valuable way both of getting to know and building trust with some new people and demonstrating the concept is worth more work.

    other projects

    here’s a brief rundown of the other projects worked on by teams on the day.

    coding confessions
    everyone starts somewhere and everyone cuts corners from time to time. real developers copy and paste! fight imposter syndrome by looking through some of these confessions or contributing your own. https://coding-confessions.github.io/
    carpenpi
    a template to set up a raspberry pi with everything you need to run a carpentries (https://carpentries.org/) data science/software engineering workshop in a remote location without internet access. https://github.com/carpenpi/docs/wiki
    research dugnads
    a guide to running an event that is a coming together of a research group or team to share knowledge, pass on skills, tidy and review code, among other software and working best practices (based on the norwegian concept of a dugnad, a form of “voluntary work done together with other people”) https://research-dugnads.github.io/dugnads-hq/
    collaborations workshop ideas
    a meta-project to collect together pitches and ideas from previous collaborations workshop conferences and hackdays, to analyse patterns and revisit ideas whose time might now have come. https://github.com/robintw/cw-ideas
    howdescribedis
    integrate existing tools to improve the machine-readable metadata attached to open research projects by integrating projects like somef, codemeta.json and howfairis (https://howfairis.readthedocs.io/en/latest/index.html). complete with ci and badges! https://github.com/knowledgecaptureanddiscovery/somef-github-action
    software end-of-project plans
    develop a template to plan and communicate what will happen when the fixed-term project funding for your research software ends. will maintenance continue? when will the project sunset? who owns the ip? https://github.com/elichad/software-twilight
    habeas corpus
    a corpus of machine readable data about software used in covid- related research, based on the cord dataset. https://github.com/softwaresaved/habeas-corpus
    credit-all
    extend the all-contributors github bot (https://allcontributors.org/) to include rich information about research project contributions such as the casrai contributor roles taxonomy (https://casrai.org/credit/) https://github.com/dokempf/credit-all

    i’m excited to see so many metadata-related projects! i plan to take a closer look at what the habeas corpus, credit-all and howdescribedis teams did when i get time. i also really want to try running a dugnad with my team or for the glam data science network.

    - - t : : + : journal of web librarianship: meeting a higher standard: a case study of accessibility compliance in libguides upon the adoption of wcag . guidelines https://www.tandfonline.com/doi/full/ . / . . ?ai= dl&mi=co bk&af=r .
    - - t : : + : michael chee ed summers: twarc https://inkdroid.org/ / / /twarc /

    this post was originally published on medium but i spent time writing it so i wanted to have it here too.

    tl;dr twarc has been redesigned from the ground up to work with the new twitter v api and their academic research track. many thanks for the code and design contributions of betsy alpert, igor brigadir, sam hames, jeff sauer, and daniel verdeer that have made twarc possible, as well as early feedback from dan kerchner, shane lin, miles mccain, 李荣蓬, david thiel, melanie walsh and laura wrubel. extra special thanks to the institute for future environments at queensland university of technology for supporting betsy and sam in their work, and for the continued support of the mellon foundation.


    back in august of last year twitter announced early access to their new v api, and their plans to sunset the v . api that has been active for almost the last years. over the lifetime of their v . api twitter has become deeply embedded in the media landscape. as magazines, newspapers and television have moved onto the web they have increasingly adopted tweets as a mechanism for citing politicians, celebrities and organizations, while also using them to document current events, generate leads and gather feedback for evolving stories. as a result twitter has also become a popular object of study for humanities and social science researchers looking to understand the world as reflected, refracted and distorted by/in social media.

    on the surface the v api update seems pretty insignificant since the shape of a tweet, its parts, properties and affordances, aren’t changing at all. tweets with characters of text, images and video will continue to be posted, retweeted and quoted. however behind the scenes the representation of a tweet as data, and the quotas that control the rates at which this data can flow between apps and other third party services will be greatly transformed.

    needless to say, v represents a big change for the documenting the now project. along with community members we’ve developed and maintained open source tools like twarc that talk directly to the twitter api to help users to search for and collect live tweets that match criteria like hashtags, names and geographic locations. today we’re excited to announce the release of twarc v which has been designed from the ground up to work with the v api and twitter’s new academic research track.

    clearly it’s extremely problematic having a multi-national corporation act as a gatekeeper for who counts as an academic researcher, and what constitutes academic research. we need look no further than the recent experiences of timnit gebru and margaret mitchell at google for an example of what happens when research questions run up against the business objectives of capital. we only know their stories because gebru and mitchell’s bravely took a principled approach, where many researchers would have knowingly or unknowingly shaped their research to better fit the needs of the company.

    so it is important for us that twarc still be usable by people with and without access to the academic research track. but we have heard from many users that the academic research track presents new opportunities for twitter data collection that are essential for researchers interested in the observability of social media platforms. twitter is making a good faith effort to work with the academic research community, and we thought twarc should support it, even if big challenges lie ahead.

    so why are people interested in the academic research track? once your application has been approved you are able to collect data from the full history of tweets, at no cost. this is a massive improvement over the v . access which was limited to a one week window and researchers had to pay for access. access to the full archive means it’s now possible to study events that have happened in the past back to the beginning of twitter in . if you do create any historical datasets we’d love for you to share the tweet identifier datasets in the catalog.

    however this opening up of access on the one hand comes with a simultaneous contraction in terms of how much data can be collected at one time. the remainder of this post describes some of the details and the design decisions we have made with twarc to address them. if you would prefer to watch a quick introduction to using twarc v please check out this short video:

    installation

    if you are familiar with installing twarc nothing is changed. you still install (or upgrade) with pip as you did before:

    $ pip install --upgrade twarc

    in fact you will still have full access to the v . api just as you did before. so the old commands will continue to work as they did

    $ twarc search blacklivesmatter > tweets.jsonl

    twarc was designed to let you to continue to use twitter’s v . api undisturbed until it is finally turned off by twitter, at which point the functionality will be removed from twarc. all the support for the v api is mediated by a new command line utility twarc . for example to search for blacklivesmatter tweets and write them to a file tweets.jsonl:

    $ twarc search blacklivesmatter > tweets.jsonl

    all the usual twarc functionality such as searching for tweets, collecting live tweets from the streaming api endpoint, requesting user timelines and user metadata are all still there, twarc --help gives you the details. but while the interface looks the same there’s quite a bit different going on behind the scenes.

    representation

    truth be told, there is no shortage of open source libraries and tools for interacting with the twitter api. in the past twarc has made a bit of a name for itself by catering to a niche group of users who want a reliable, programmable way to collect the canonical json representation of a tweet. javascript object notation (json) is the language of web apis, and twitter has kept its json representation of a tweet relatively stable over the years. rather than making lots of decisions about the many ways you might want to collect, model and analyze tweets twarc has tried to do one thing and do it well (data collection) and get out of the way so that you can use (or create) the tools for putting this data to use.

    but the json representation of a tweet in the twitter v api is completely burst apart. the v base representation of a tweet is extremely lean and minimal, and just includes the text of the tweet its identifier and a handful of other things. all the details about the user who created the tweet, embedded media, and more are not included. fortunately this information is still available, but the user needs to craft their api request to request tweets using a set of expansions that tell the twitter api what additional entities to include. in addition for each expansion there are a set of field options to include that control what of these expansions is returned.

    so rather than there being a single json representation of a tweet api users now have the ability to shape the data based on what they need, much like how graphql apis work. this kind of makes you wonder why twitter didn’t make their graphql api available. for specific use cases this customizability is very useful, but the mutability of the representation of a tweet presents challenges when collecting data for future use. if you didn’t request the right expansions or fields when collecting the data then you won’t be able to analyze that data later when doing your research.

    to solve for this twarc has been designed to collect the richest possible representation for a tweet, by requesting all possible expansions and field combinations for tweets. see the expansions module for the details if you are interested. this takes a significant burden off of users to digest the api documentation, and craft the correct api requests themselves. in addition the twarc community will be monitoring the twitter api documentation going forward to incorporate new expansions and fields as they will inevitably be added in the future.

    flattening

    this is diving into the weeds a little bit, but it’s worth noting here that twitter’s introduction of expansions allows data that was once duplicated across multiple tweets (such as user information, media, retweets, etc) to be included once per response from the api. this means that instead of seeing information about the user who created a tweet in the context of their tweet the user will be referenced using an identifier, and this identifier will map to user metadata in the outer envelope of the response.

    it makes sense why twitter have introduced expansions since it means in a set of tweets from a given user the user information will just be included once rather than repeated times, which means less data, less network traffic and less money. it’s even more significant when consider the large number of possible expansions. however this pass by-reference rather than by-value presents some challenges for stream based processing which expects each tweet to be self-contained.

    for this reason we’ve introduce the idea of flattening the response data when persisting the json to disk. this means that tools and data pipelines that expect to operate on a stream of tweets can continue to do so. since the representation of a tweet is so dependent on how data is requested we’ve taken the opportunity to introduce a small stanza of twarc specific metadata using the __twarc prefix.

    this metadata records what api endpoint the data was requested from, and when. this information is critically important when interpreting the data, because some information about a tweet like its retweet and quote counts are constantly changing.

    data flows

    as mentioned above you can still collect tweets from the search and streaming api endpoints in a way that seems quite similar to the v api. the big changes however are the quotas associated with these endpoints which govern how much can be collected. these quotas control how many requests can be sent to twitter in minute intervals.

    in fact these quotas are not much changed, but what’s new are app wide quotas that constrain how many tweets a given application (app) can collect every month. an app in this context is a piece of software (e.g. your twarc software) identified by unique api keys set up in the twitter developer portal. the standard api access sets a , tweet per month limit. this is a huge change considering there were no monthly app limits before. if you get approved for the academic research track your app quota is increased to million per month. this is markedly better but the achievable data volume is still nothing like the v . api, as these graphs attempt to illustrate:

    twarc will still observe the same rate limits, but once you’ve collected your portion for the month there’s not much that can be done, for that app at least.

    apart from the quotas twitter’s streaming endpoint in v is substantially changed which impacts how users interact with twarc. previously twarc users would be able to create up to to two connections to the filter stream api. this could be done by simply:

    twarc filter obama > obama.jsonl

    however in the twitter v api only apps can connect to the filter stream, and they can only connect once. at first this seems like a major limitation but rather than creating a connection per query the v api allows you to build a set of rules for tweets to match, which in turns controls what tweets are included in the stream. this means you can collect for multiple types of queries at the same time, and the tweets will come back with a piece of metadata indicating what rule caused its inclusion.

    this translates into a markedly different set of interactions at the command line for collecting from the stream where you first need to set your stream rules and then open a connection to fetch it.

    twarc stream-rules add blacklivesmatter twarc stream > tweets.jsonl

    one useful side effect of this is that you can update the stream (add and remove rules) while the stream is in motion:

    twarc stream-rules add blm

    while you are limited by the api quota in terms of how many tweets you can collect, tweets are not “dropped on the floor” when the volume gets too high. once upon a time the v . filter stream was rumored to be rate limited when your stream exceeds % of the total volume of new tweets.

    plugins

    in addition to twarc helping you collect tweets the github repository has also been a place to collect a set of utilities for working with the data. for example there are scripts for extracting and unshortening urls, identifying suspended/deleted content, extracting videos, buiding wordclouds, putting tweets on maps, displaying network graph visualizations, counting hashtags, and more. these utilities all work like unix filters where the input is a stream of tweets and the output varies depending on what the utility is doing, e.g. a gephi file for a network visualization, or a folder of mp files for video extraction.

    while this has worked well in general the kitchen sink approach has been difficult to manage from a configuration management perspective. users have to download these scripts manually from github or by cloning the repository. for some users this is fine, but it’s a bit of a barrier to entry for users who have just installed twarc with pip.

    furthermore these plugins often have their own dependencies which twarc itself does not. this lets twarc can stay pretty lean, and things like youtube_dl, networkx or pandas can be installed by people that want to use utilities that need them. but since there is no way to install the utilities there isn’t a way to ensure that the dependencies are installed, which can lead to users needing to diagnose missing libraries themselves.

    finally the plugins have typically lacked their own tests. twarc’s test suite has really helped us track changes to the twitter api and to make sure that it continues to operate properly as new functionality has been added. but nothing like this has existed for the utilities. we’ve noticed that over time some of them need updating. also their command line arguments have drifted over time which can lead to some inconsistencies in how they are used.

    so with twarc we’ve introduced the idea of plugins which extend the functionality of the twarc command, are distributed on pypi separately from twarc, and exist in their own github repositories where they can be developed and tested independently of twarc itself. this is all achieved through twarc ’s use of the click library and specifically click-plugins. so now if you would like to convert your collected tweets to csv you can install the twarc-csv:

    $ pip install twarc-csv $ twarc search covid > covid .jsonl $ twarc csv covid .jsonl > covid .csv

    or if you want to extract embedded and referenced videos from tweets you can install twarc-videos which will write all the videos to a directory:

    $ pip install twarc-videos $ twarc videos covid .jsonl --download-dir covid -videos

    you can write these plugins yourself and release them as needed. check out the plugin reference implementation tweet-ids for a simple example to adapt. we’re still in the process of porting some of the most useful utilities over and would love to see ideas for new plugins. check out the current list of twarc plugins and use the twarc issue tracker on github to join the discussion.

    you may notice from the list of plugins that twarc now (finally) has documentation on readthedocs external from the documentation that was previously only available on github. we got by with github’s rendering of markdown documents for a while, but github’s boilerplate designed for developers can prove to be quite confusing for users who aren’t used to selectively ignoring it. readthedocs allows us to manage the command line and api documentation for twarc, and to showcase the work that has gone into the spanish, japanese, portuguese, swedish, swahili and chinese translations.

    feedback

    thanks for reading this far! we hope you will give twarc a try. let us know what you think either in comments here, in the docnow slack or over on github.

    ✨ ✨ happy twarcing! ✨ ✨ ✨


    1. windows users will want to indicate the output file using a second argument rather than redirecting output with >. see this page for details.

    - - t : : + : peter sefton: fair data management; it's a lifestyle not a lifecycle http://ptsefton.com/ / / /rdmpic/index.html

    i have been working with my colleague marco la rosa on summary diagrams that capture some important aspects of research data management, and include the fair data principles; that data should be findable, accessible, interoperable and reusable.

    but first, here's a rant about some modeling and diagramming styles and trends that i do not like.

    i took part in a fun twitter thread recently kicked off by fiona tweedie.

    fiona tweedie @fctweedie so my current bugbear is university processes that seem to forget that the actual work of higher ed is doing research and/ or teaching. this "research lifecycle" diagram from @uw is a stunning example:

    the uw myresearch lifecycle with the four stages: plan/propose, setup, manage, and closeout

    in this tweet dr tweedie has called out yet another research lifecycle diagram that leaves out the process of you know, actually doing research. this process-elision happened more than once when i was working as an eresearch manager - management would get in the consultants to look at research systems, talk to the research office and graduate school and come up with a "journey map" of administrative processes that either didn't mention the actual doing research or represented it as a tiny segment, never mind that it's, you know, the main thing researchers do when they're being researchers rather than teachers or administrators.

    at least the consultants would usually produce a 'journey map' that got you from point a to point b using chevrons to >> indicate progress and didn't insist that everything was a 'lifecycle'.

    something like:

    plan / propose >> setup >> manage / do research >> closeout 

    but all too commonly processes are represented using the tired old metaphor of a lifecycle.

    reminder: a lifecycle is a biological process; how organisms come into existence, reproduce and die via various means including producing seeds, splitting themselves in two, um, making love, laying eggs and so on.

    it's really stretching the metaphor to talk about research in this way - maybe the research outputs in the uw "closeout" phase are eggs that hatch into new bouncing baby proposals?

    regrettably, arranging things in circles and using the "lifecycle" metaphor is very common - see this google image search for "research lifecycle":

    i wonder if the diagramming tools that are available to people are part of the issue - microsoft word, for example can build cycles and other diagrams out of a bullet list.

    (i thought it would be amusing to draw the uw diagram from above as a set cogs but this happened - you can only have cogs in a word diagram.)

    attempt to use microsoft word to make a diagram cogs for plan/propose, setup, manage, and closeout but it will only draw three of them research data management as a cycle

    now that i've got that off my chest let's look at research data management. here's a diagram which is in fairly wide use, from the university of california.

    (this image has a cc-by logo which means i can use it if i attribute it - but i'm not % clear on the original source of the diagram - it seems to be from uc somewhere.)

    marco used this one in some presentations we gave. i thought we could do better.

    the good part of this diagram is that it shows research data management as a cyclical, recurring activity - which for fair data it needs to be.

    what i don't like:

    1. i think it is trying to show a project (ie grant) level view of research with data management happening in one spot on the journey. typically researchers do research all the time (or in between teaching or when they can get time on equipment) not at a particular point in some administrative "journey map". we often hear feedback that their research is a lifetime activity and does not happen the way administrators and it think it does.

    2. "archive" is shown as a single-step pre-publication. this is a terrible message; if we are to start really doing fair data then data need to be described and made findable and accessible asap.

    3. the big so-called lifecycle is (to me) very contrived and looks like a librarian view of the world with data searching as a stand-alone process before research data management planning. not clear whether publication means articles or data.

    4. "data search / reuse" is a type of "collection", and why is it happening before data management planning? "re-collection" is also a kind of collection, so we can probably collapse all those together (the findable and accessible in fair).

    5. it’s not clear whether publication means articles or data or both.

    6. most research uses some kind of data storage but very often not directly; people might be interacting with a lab notebook system or a data repository - at uts we arrived at the concept of "workspaces" to capture this.

    the "minimum viable fair diagram"

    marco and i have a sketch of a new diagram that attempts to address these issues and addresses what needs to be in place for broad-scale fair data practice.

    two of the fair principles suggest services that need to be in place; ways to find and access data. the i and r in fair are not something that can be encapsulated in a service, as such, rather they imply that data are well described for re-use and interoperation of systems and in reusable formats.

    as it happens, there is a common infrastructure component which encapsulates finding data and accessing; the repository. repositories are services which hold data and make it discoverable and accessible, with governance that ensures that data does not change without notice and is available for access over agreed time frames - sometimes with detailed access control. repositories may be general purpose or specialized around a particular type of data: gene sequences, maps, code, microscope images etc. they may also be ad-hoc - at a lab level they could be a well laid out, well managed file system.

    some well-funded disciplines have established global or national repositories and workflows for some or all of their data, notably physics and astronomy, bioinformatics, geophysical sciences, climate and marine science. some of these may not be thought of by their community as repositories - but according to our functional definition they are repositories, even if they are "just" vast shared file systems or databases where everyone knows what's what and data managers keep stuff organized. also, some institutions have institutional data repositories but it is by no means common practice across the whole of the research sector that data find their way into any of these repositories.

    remember: data storage is not all files-on-disks. researchers use a very wide range of tools which may make data inaccessible outside of the tool. examples include: cloud-based research (lab) notebook systems in which data is deposited alongside narrative activity logs; large shared virtual laboratories where data are uploaded; secure eresearch platforms (serps) which allow access only via virtualized desktops with severely constrained data ingress and egress; survey tools; content management systems; digital asset management systems; email (yes, it's true some folks use email as project archives!); to custom-made code for a single experiment.

    our general term for all of the infrastructures that researchers use for rdm day to day including general purpose storage is “workspaces”.

    many, if not most workspaces do not have high levels of governance, and data may be technically or legally inaccessible over the long term. they should not be considered as suitable archives or repositories - hence our emphasis on making sure that data can be described and deposited into general purpose, standards-driven repository services.

    the following is a snapshot of the core parts of an idealised fair data service. it shows the activities that researchers undertake, acquiring data from observations, instruments and by reuse, conducting analysis and data description in a working environment, and depositing results into one or more repositories.

    we wanted it to show:

    • that infrastructure services are required for research data management - researchers don't just "archive" their data without support - they and those who will reuse data need repository services in some form.

    • that research is conducted using workspace environments - more infrastructure.

    a work-in-progress sketch of fair research data management.

    we (by which i mean marco) will make this prettier soon.

    and yes, there is a legitimate cycle in this diagram it's the find -> access -> reuse -> describe -> deposit cycle that's inherent in the fair lifestyle.

    things that might still be missing:

    • some kind of rubbish bin - to show that workspaces are ephemeral and working data that doesn't make the cut may be culled, and that some data is held only for a time.

    • what do you think's missing?

    thoughts anyone? comments below or take it up on twitter with @ptsefton.

    (i have reworked parts of a document that marco and i have been working on with guido aben for this document, and thanks to recent graduate florence sefton for picking up typos and sense-checking).

    - - t : : + : ptsefton david rosenthal: elon musk: threat or menace? https://blog.dshr.org/ / /elon-musk-threat-or-menace.html although both tesla and spacex are major engineering achievements, elon musk seems completely unable to understand the concept of externalities, unaccounted-for costs that society bears as a result of these achievements.

    first, in tesla: carbon offsetting, but in reverse, jaime powell reacted to tesla taking $ . b in carbon offsets which provided the only profit tesla ever made and putting them into bitcoin:
    looked at differently, a single bitcoin purchase at a price of ~$ , has a carbon footprint of tons, the equivalent of ice cars.

    tesla’s average selling price in the fourth quarter of ? $ , .

    we’re not sure about you, but ft alphaville is struggling to square the circle of “buy a tesla with a bitcoin and create the carbon output of internal combustion engine cars” with its legendary environmental ambitions.

    unless, of course, that was never the point in the first place.
    below the fold, more externalities musk is ignoring.

    second, there is musk's obsession with establishing a colony on mars. even assuming spacex can stop their starship second stage exploding on landing, and do the same with the much bigger first stage, the mars colony scheme would have massive environmental impacts. musk envisages a huge fleet of starships ferrying people and supplies to mars for between and years. the climate effects of dumping this much rocket exhaust into the upper atmosphere over such a long period would be significant. the idea that a world suffering the catastrophic effects of climate change could sustain such an expensive program over many decades simply for the benfit of a miniscule fraction of the population is laughable.

    these externalities are in the future. but there are a more immediate set of externalities.

    back in i expressed my skepticism about "level " self-driving cars in techno-hype part , stressing that the problem was that to get to level , or as musk calls it "full self-driving", you need to pass through the levels where the software has to hand-off to the human. and the closer you get to level , the harder this problem becomes:
    suppose, for the sake of argument, that self-driving cars three times as good as waymo's are in wide use by normal people. a normal person would encounter a hand-off once in , miles of driving, or less than once a year. driving would be something they'd be asked to do maybe times in their life.

    even if, when the hand-off happened, the human was not "climbing into the back seat, climbing out of an open car window, and even smooching" and had full "situational awareness", they would be faced with a situation too complex for the car's software. how likely is it that they would have the skills needed to cope, when the last time they did any driving was over a year ago, and on average they've only driven times in their life? current testing of self-driving cars hands-off to drivers with more than a decade of driving experience, well over , miles of it. it bears no relationship to the hand-off problem with a mass deployment of self-driving technology.
    mack hogan's tesla's "full self driving" beta is just laughably bad and potentially dangerous starts:
    a beta version of tesla's "full self driving" autopilot update has begun rolling out to certain users. and man, if you thought "full self driving" was even close to a reality, this video of the system in action will certainly relieve you of that notion. it is perhaps the best comprehensive video at illustrating just how morally dubious, technologically limited, and potentially dangerous autopilot's "full self driving" beta program is.
    hogan sums up the lesson of the video:
    tesla's software clearly does a decent job of identifying cars, stop signs, pedestrians, bikes, traffic lights, and other basic obstacles. yet to think this constitutes anything close to "full self-driving" is ludicrous. there's nothing wrong with having limited capabilities, but tesla stands alone in its inability to acknowledge its own shortcomings.
    hogan goes on to point out the externalities:
    when technology is immature, the natural reaction is to continue working on it until it's ironed out. tesla has opted against that strategy here, instead choosing to sell software it knows is incomplete, charging a substantial premium, and hoping that those who buy it have the nuanced, advanced understanding of its limitations—and the ability and responsibility to jump in and save it when it inevitably gets baffled. in short, every tesla owner who purchases "full self-driving" is serving as an unpaid safety supervisor, conducting research on tesla's behalf. perhaps more damning, the company takes no responsibility for its actions and leaves it up to driver discretion to decide when and where to test it out.

    that leads to videos like this, where early adopters carry out uncontrolled tests on city streets, with pedestrians, cyclists, and other drivers unaware that they're part of the experiment. if even one of those tesla drivers slips up, the consequences can be deadly.
    of course, the drivers are only human so they do slip up:
    the tesla arrives at an intersection where it has a stop sign and cross traffic doesn't. it proceeds with two cars incoming, the first car narrowly passing the car's front bumper and the trailing car braking to avoid t-boning the model . it is absolutely unbelievable and indefensible that the driver, who is supposed to be monitoring the car to ensure safe operation, did not intervene there.
    an example of the kinds of problems that can be caused by autonomous vehicles behaving in ways that humans don't expect is reported by timothy b. lee in fender bender in arizona illustrates waymo’s commercialization challenge:
    a white waymo minivan was traveling westbound in the middle of three westbound lanes on chandler boulevard, in autonomous mode, when it unexpectedly braked for no reason. a waymo backup driver behind the wheel at the time told chandler police that "all of a sudden the vehicle began to stop and gave a code to the effect of 'stop recommended' and came to a sudden stop without warning."

    a red chevrolet silverado pickup behind the vehicle swerved to the right but clipped its back panel, causing minor damage. nobody was hurt.
    the tesla in the video made a similar unexpected stop. lee stresses that, unlike tesla's, waymo's responsible test program has resulted in a generally safe product, but not one that is safe enough:
    waymo has racked up more than million testing miles in arizona, california, and other states. this is far more than any human being will drive in a lifetime. waymo's vehicles have been involved in a relatively small number of crashes. these crashes have been overwhelmingly minor with no fatalities and few if any serious injuries. waymo says that a large majority of those crashes have been the fault of the other driver. so it's very possible that waymo's self-driving software is significantly safer than a human driver.
    ...
    the more serious problem for waymo is that the company can't be sure that the idiosyncrasies of its self-driving software won't contribute to a more serious crash in the future. human drivers cause a fatality about once every million miles of driving—far more miles than waymo has tested so far. if waymo scaled up rapidly, it would be taking a risk that an unnoticed flaw in waymo's programming could lead to someone getting killed.
    i'm a pedestrian, cyclist and driver in an area infested with teslas owned, but potentially not actually being driven, by fanatical early adopters and members of the cult of musk. i'm personally at risk from these people believing that what they paid good money for was "full self driving". when spacex tests starship at their boca chica site they take precautions, including road closures, to ensure innocent bystanders aren't at risk from the rain of debris when things go wrong. tesla, not so much.

    of course, tesla doesn't tell the regulators that what the cult members paid for was "full self driving"; that might cause legal problems. as timothy b. lee reports, tesla: “full self-driving beta” isn’t designed for full self-driving:
    "despite the "full self-driving" name, tesla admitted it doesn't consider the current beta software suitable for fully driverless operation. the company said it wouldn't start testing "true autonomous features" until some unspecified point in the future.
    ...
    tesla added that "we do not expect significant enhancements" that would "shift the responsibility for the entire dynamic driving task to the system." the system "will continue to be an sae level , advanced driver-assistance feature."

    sae level is industry jargon for a driver-assistance systems that perform functions like lane-keeping and adaptive cruise control. by definition, level systems require continual human oversight. fully driverless systems—like the taxi service waymo is operating in the phoenix area—are considered level systems."
    there is an urgent need for regulators to step up and stop this dangerous madness:
    • the nhtsa should force tesla to disable "full self driving" in all its vehicles until the technology has passed an approved test program
    • any vehicles taking part in such a test program on public roads should be clearly distinguishable from teslas being driven by actual humans, for example with orange flashing lights. self-driving test vehicles from less irresponsible companies such as waymo are distinguishable in this way, teslas in which some cult member has turned on "full self driving beta" are not.
    • the ftc should force tesla to refund, with interest, every dollar paid by their customers under the false pretense that they were paying for "full self driving".
    - - t : : + : david. (noreply@blogger.com) jez cope: collaborations workshop : talks & panel session https://erambler.co.uk/blog/collabw -part- /

    i’ve just finished attending (online) the three days of this year’s ssi collaborations workshop (cw for short), and once again it’s been a brilliant experience, as well as mentally exhausting, so i thought i’d better get a summary down while it’s still fresh it my mind.

    collaborations workshop is, as the name suggests, much more focused on facilitating collaborations than a typical conference, and has settled into a structure that starts off with with longer keynotes and lectures, and progressively gets more interactive culminating with a hack day on the third day.

    that’s a lot to write about, so for this post i’ll focus on the talks and panel session, and follow up with another post about the collaborative bits. i’ll also probably need to come back and add in more links to bits and pieces once slides and the “official” summary of the event become available.

    updates

    - - added links to recordings of keynotes and panel sessions
    provocations

    the first day began with two keynotes on this year’s main themes: fair research software and diversity & inclusion, and day had a great panel session focused on disability. all three were streamed live and the recordings remain available on youtube:

    fair research software

    dr michelle barker, director of the research software alliance, spoke on the challenges to recognition of software as part of the scholarly record: software is not often cited. the fair rs working group has been set up to investigate and create guidance on how the fair principles for data can be adapted to research software as well; as they stand, the principles are not ideally suited to software. this work will only be the beginning though, as we will also need metrics, training, career paths and much more. resa itself has focus areas: people, policy and infrastructure. if you’re interested in getting more involved in this, you can join the resa email list.

    equality, diversity & inclusion: how to go about it

    dr chonnettia jones, vice president of research, michael smith foundation for health research spoke extensively and persuasively on the need for equality, diversity & inclusion (edi) initiatives within research, as there is abundant robust evidence that all research outcomes are improved.

    she highlighted the difficulties current approaches to edi have effecting structural change, and changing not just individual behaviours but the cultures & practices that perpetuate iniquity. what initiatives are often constructed around making up for individual deficits, a bitter framing is to start from an understanding of individuals having equal stature but having different tired experiences. commenting on the current focus on “research excellent” she pointed out that the hyper-competition this promotes is deeply unhealthy. suggesting instead that true excellence requires diversity, and we should focus on an inclusive excellence driven by inclusive leadership.

    equality, diversity & inclusion: disability issues

    day ’s edi panel session brought together five disabled academics to discuss the problems of disability in research.

    • dr becca wilson, ukri innovation fellow, institute of population health science, university of liverpool (chair)
    • phoenix c s andrews (phd student, information studies, university of sheffield and freelance writer)
    • dr ella gale (research associate and machine learning subject specialist, school of chemistry, university of bristol)
    • prof robert stevens (professor and head of department of computer science, university of manchester)
    • dr robin wilson (freelance data scientist and ssi fellow)

    nb. the discussion flowed quite freely so the following summary, so the following summary mixes up input from all the panel members.

    researchers are often assumed to be single-minded in following their research calling, and aptness for jobs is often partly judged on “time send”, which disadvantages any disabled person who has been forced to take a career break. on top of this disabled people are often time-poor because of the extra time needed to manage their condition, leaving them with less “output” to show for their time served on many common metrics. this can partially affect early-career researchers, since resources for these are often restricted on a “years-since-phd” criterion. time poverty also makes funding with short deadlines that much harder to apply for. employers add more demands right from the start: new starters are typically expected to complete a health and safety form, generally a brief affair that will suddenly become an -page bureaucratic nightmare if you tick the box declaring a disability.

    many employers claim to be inclusive yet utterly fail to understand the needs of their disabled staff. wheelchairs are liberating for those who use them (despite the awful but common phrase “wheelchair-bound”) and yet employers will refuse to insure a wheelchair while travelling for work, classifying it as a “high value personal item” that the owner would take the same responsibility for as an expensive camera. computers open up the world for blind people in a way that was never possible without them, but it’s not unusual for mandatory training to be inaccessible to screen readers. some of these barriers can be overcome, but doing so takes yet more time that could and should be spent on more important work.

    what can we do about it? academia works on patronage whether we like it or not, so be the person who supports people who are different to you rather than focusing on the one you “recognise yourself in” to mentor. as a manager, it’s important to ask each individual what they need and believe them: they are the expert in their own condition and their lived experience of it. don’t assume that because someone else in your organisation with the same disability needs one set of accommodations, it’s invalid for your staff member to require something totally different. and remember: disability is unusual as a protected characteristic in that anyone can acquire it at any time without warning!

    lightning talks

    lightning talk sessions are always tricky to summarise, and while this doesn’t do them justice, here are a few highlights from my notes.

    data & metadata learning & teaching/community wrapping up

    that’s not everything! but this post is getting pretty long so i’ll wrap up for now. i’ll try to follow up soon with a summary of the “collaborative” part of collaborations workshop: the idea-generating sessions and hackday!

    - - t : : + : journal of web librarianship: examination of academic library websites regarding covid- responsiveness https://www.tandfonline.com/doi/full/ . / . . ?ai= dl&mi=co bk&af=r .
    - - t : : + : kristine condic terry reese: marcedit . update https://blog.reeset.net/archives/

    changelog: https://marcedit.reeset.net/software/update .txt

    highlights preview changes

    one of the most requested features over the years has been the ability to preview changes prior to running them.  as of . . – a new preview option has been added to many of the global editing tools in the marceditor.  currently, you will find the preview option attached to the following functions:

    1. replace all
    2. add new field
    3. delete field
    4. edit subfield
    5. edit field
    6. edit indicator
    7. copy field
    8. swap field

    functions that include a preview option will be denoted with the following button:

    add/delete field option -- showing the preview button -- a button with a black down arrow

    when this button is pressed, the following option is made available

    add/delete field -- black button with an arrow -- shows preview menu

    when preview results is selected, the program will execute the defined action, and display the potential results in a display screen.  for example:

    preview results page -- grid results

    to protect performance, only results at a time will be loaded into the preview grid, though users can keep adding results to the grid and continue to review items.  additionally, users have the ability to search for items within the grid as well as jump to a specific record number (not row number). 

    these new options will show up first in the windows version of marcedit, but will be added to the marcedit mac . .x branch in the coming weeks. 

    new json => xml translation

    to better support the translation of data from json to marc, i’ve included a json => marc algorithm in the marcengine.  this will allow json data to serialized into xml.  the benefit of including this option, is that i’ve been able to update the xml functions options to allow json to be a starting format.  this will specifically useful for users that want to make use of linked data vocabularies to generate marc authority records.  users can direct marcedit to facilitate the translation from json to xml, and then create xslt translations that can then be used to complete the process to marcxml and marc.  i’ve demonstrated how this process works using a vocabulary of interest to the #critcat community, the homosaurus vocabulary (how do i generate marc authority records from the homosaurus vocabulary? – terry’s worklog (reeset.net)).

    oclc api interactions

    working with the oclc api is sometimes tricky.   marcedit utilizes a specific authentication process that requires oclc keys be setup and configured to work a certain way.  when issues come up, it is sometimes very difficult to debug them.  i’ve updated the process and error handling to surface more information – so when problems occur and xml debugging information isn’t available, the actual exception and inner exception data will be surfaced instead.  this often can provide information to help understand why the process isn’t able to complete.

    wrap up

    as noted, there have been a number of updates.  while many fall under the category of house-keeping (updating icons, ux improvements, actions, default values, etc.) – this update does include a number of often asked for, significant updates, that i hope will improve user workflows.

    –tr

    - - t : : + : reeset terry reese: how do i generate marc authority records from the homosaurus vocabulary? https://blog.reeset.net/archives/

    step by step instructions here: https://youtu.be/fjsdqi pzpq

    ok, so last week, i got an interesting question on the listserv where a user asked specifically about generating marc records for use in one’s ils system from a jsonld vocabulary.  in this case, the vocabulary in question as homosaurus (homosaurus vocabulary site) – and the questioner was specifically looking for a way to pull individual terms for generation into marc authority records to add to one’s ils to improve search and discovery.

    when the question was first asked, my immediate thought was that this could likely be accommodated using the xml/json profiling wizard in marcedit.  this tool can review a sample xml or json file and allow a user to create a portable processing file based on the content in the file.  however, there were two issues with this approach:

    1. the profile wizard assumes that data format is static – i.e., the sample file is representative of other files.  unfortunately, for this vocabulary, that isn’t the case. 
    2. the profile wizard was designed to work with json – json ld is actually a different animal due to the inclusion of the @ symbol. 

    while i updated the profiler to recognize and work better with json-ld – the first challenge is one that doesn’t make this a good fit to create a generic process.  so, i looked at how this could be built into the normal processing options.

    to do this, i added a new default serialization, json=>xml == which marcedit now supports.  this allows the tool to take a json file, and deserialize the data so that is output reliably as xml.  so, for example, here is a sample json-ld file (homosaurus.org/v /adoptiveparents.jsonld):

    { "@context": { "dc": "http://purl.org/dc/terms/", "skos": "http://www.w .org/ / /skos/core#", "xsd": "http://www.w .org/ /xmlschema#" }, "@id": "http://homosaurus.org/v /adoptiveparents", "@type": "skos:concept", "dc:identifier": "adoptiveparents", "dc:issued": { "@value": " - - ", "@type": "xsd:date" }, "dc:modified": { "@value": " - - ", "@type": "xsd:date" }, "skos:broader": { "@id": "http://homosaurus.org/v /parentslgbtq" }, "skos:hastopconcept": [ { "@id": "http://homosaurus.org/v /familymembers" }, { "@id": "http://homosaurus.org/v /familieslgbtq" } ], "skos:inscheme": { "@id": "http://homosaurus.org/terms" }, "skos:preflabel": "adoptive parents", "skos:related": [ { "@id": "http://homosaurus.org/v /socialparenthood" }, { "@id": "http://homosaurus.org/v /lgbtqadoption" }, { "@id": "http://homosaurus.org/v /lgbtqadoptiveparents" }, { "@id": "http://homosaurus.org/v /birthparents" } ] } 

    in marcedit, the new json=>xml process can take this file and output it in xml like this:

    <?xml version=" . "?> <records> <record> <context> <dc>http://purl.org/dc/terms/</dc> <skos>http://www.w .org/ / /skos/core#</skos> <xsd>http://www.w .org/ /xmlschema#</xsd> </context> <id>http://homosaurus.org/v /adoptiveparents</id> <type>skos:concept</type> <identifier>adoptiveparents</identifier> <issued> <value> - - </value> <type>xsd:date</type> </issued> <modified> <value> - - </value> <type>xsd:date</type> </modified> <broader> <id>http://homosaurus.org/v /parentslgbtq</id> </broader> <hastopconcept> <id>http://homosaurus.org/v /familymembers</id> </hastopconcept> <hastopconcept> <id>http://homosaurus.org/v /familieslgbtq</id> </hastopconcept> <inscheme> <id>http://homosaurus.org/terms</id> </inscheme> <preflabel>adoptive parents</preflabel> <related> <id>http://homosaurus.org/v /socialparenthood</id> </related> <related> <id>http://homosaurus.org/v /lgbtqadoption</id> </related> <related> <id>http://homosaurus.org/v /lgbtqadoptiveparents</id> </related> <related> <id>http://homosaurus.org/v /birthparents</id> </related> </record> </records> 

    the ability to reliably convert json/jsonld to xml means that i can now allow users to utilize the same xslt/xquery process marcedit utilizes for other library metadata format transformation.  all that was left to make this happen was to add a new origin data format to the xml function template – and we are off and running.

    the end result is users could utilize this process with any json-ld vocabulary (assuming they created the xslt) to facilitate the automation of marc authority data.  in this case of this vocabulary, i’ve created an xslt and added it to my github space: https://github.com/reeset/marcedit_xslt_files/blob/master/homosaurus_xml.xsl

    but have included the xslt in the marcedit xslt directory in current downloads.

    in order to use this xslt and allow your version of marcedit to generate marc authority records from this vocabulary – you would use the following steps:

    1. be using marcedit . . + or marcedit mac . . + (mac version will be available around / ).  i have not decided if i will backport to . -
    2. open the xml functions editor in marcedit
    3. add a new transformation – using json as the original format, and marc as the final.  make sure the xslt path is pointed to the location where you saved the downloaded xslt file.
    4. save

    that should be pretty much it.  i’ve recorded the steps and placed them here: https://youtu.be/fjsdqi pzpq, including some information on values you may wish to edit should you want to localize the xslt. 

    - - t : : + : reeset peter murray: publishers going-it-alone (for now?) with getftr https://dltj.org/article/publishers-alone-with-getftr/

    in early december , a group of publishers announced get-full-text-research, or getftr for short. i read about this first in roger schonfeld’s “publishers announce a major new service to plug leakage” piece in the scholarly kitchen via jeff pooley’s twitter thread and blog post. details about how this works are thin, so i’m leaning heavily on roger’s description. i’m not as negative about this as jeff, and i’m probably a little more opinionated than roger. this is an interesting move by publishers, and—as the title of this post suggests—i am critical of the publisher’s “go-it-alone” approach.

    first, some disclosure might be in order. my background has me thinking of this in the context of how it impacts libraries and library consortia. for the past four years, i’ve been co-chair of the niso information discovery and interchange topic committee (and its predecessor, the “discovery to delivery” topic committee), so this is squarely in what i’ve been thinking about in the broader library-publisher professional space. i also traced the early development of ra and more recently am volunteering on the seamlessaccess entity category and attribute bundles working group; that’ll become more important a little further down this post.

    i was nodding along with roger’s narrative until i stopped short here:

    the five major publishing houses that are the driving forces behind getftr are not pursuing this initiative through one of the major industry collaborative bodies. all five are leading members of the stm association, niso, orcid, crossref, and chorus, to name several major industry groups. but rather than working through one of these existing groups, the houses plan instead to launch a new legal entity. 

    while [vice president of product strategy & partnerships for wiley todd] toler and [senior director, technology strategy & partnerships for the american chemical society ralph] youngen were too politic to go deeply into the details of why this might be, it is clear that the leadership of the large houses have felt a major sense of mismatch between their business priorities on the one hand and the capabilities of these existing industry bodies. at recent industry events, publishing house ceos have voiced extensive concerns about the lack of cooperation-driven innovation in the sector. for example, judy verses from wiley spoke to this issue in spring , and several executives did so at frankfurt this fall. in both cases, long standing members of the scholarly publishing sector questioned if these executives perhaps did not realize the extensive collaborations driven through crossref and orcid, among others. it is now clear to me that the issue is not a lack of knowledge but rather a concern at the executive level about the perceived inability of existing collaborative vehicles to enable the new strategic directions that publishers feel they must pursue. 

    this is the publishers going-it-alone. to see roger describe it, they are going to create this web service that allows publishers to determine the appropriate copy for a patron and do it without input from the libraries. librarians will just be expected to put this web service widget into their discovery services to get “colored buttons indicating that the link will take [patrons] to the version of record, an alternative pathway, or (presumably in rare cases) no access at all.” (let’s set aside for the moment the privacy implications of having a fourth-party web service recording all of the individual articles that come up in a patron’s search results.) librarians will not get to decide the “alternative pathway” that is appropriate for the patron: “some publishers might choose to provide access to a preprint or a read-only version, perhaps in some cases on some kind of metered basis.” (roger goes on to say that he “expect[s] publishers will typically enable some alternative version for their content, in which case the vast majority of scholarly content will be freely available through publishers even if it is not open access in terms of licensing.” i’m not so confident.)

    no, thank you. if publishers want to engage in technical work to enable libraries and others to build web services that determine the direct link to an article based on a doi, then great. libraries can build a tool that consumes that information as well as takes into account information about preprint services, open access versions, interlibrary loan and other methods of access. but to ask libraries to accept this publisher-controlled access button in their discovery layers, their learning management systems, their scholarly profile services, and their other tools? that sounds destined for disappointment.

    i am only somewhat encouraged by the fact that ra started out as a small, isolated collaboration of publishers before they brought in niso and invited libraries to join the discussion. did it mean that it slowed down deployment of ra ? undoubtedly yes. did persnickety librarians demand transparent discussions and decisions about privacy-related concerns like what attributes the publisher would get about the patron in the shibboleth-powered backchannel? yes, but because the patrons weren’t there to advocate for themselves. will it likely mean wider adoption? i’d like to think so.

    have publishers learned that forcing these kinds of technologies onto users without consultation is a bad idea? at the moment it would appear not. some of what publishers are seeking with getftr can be implemented with straight-up openurl or—at the very least—limited-scope additions to openurl (the z . open standard!). so that they didn’t start with openurl, a robust existing standard, is both concerning and annoying. i’ll be watching and listening for points of engagement, so i remain hopeful.

    a few words about jeff pooley’s five-step “laughably creaky and friction-filled effort” that is seamlessaccess. many of the steps jeff describes are invisible and well-established technical protocols. what jeff fails to take into account is the very visible and friction-filled effect of patrons accessing content beyond the boundaries of campus-recognized internet network addresses. those patrons get stopped at step two with a “pay $ please” message. i’m all for removing that barrier entirely by making all published content “open access”. it is folly to think, though, that researchers and readers can enforce an open access business model on all publishers, so solutions like seamlessaccess will have a place. (which is to say nothing of the benefit of inter-institutional resource collaboration opened up by a more widely deployed shibboleth infrastructure powered by seamlessaccess.)

    - - t : : + : peter murray (jester@dltj.org) peter murray: what is known about getftr at the end of https://dltj.org/article/getftr-update/

    in early december , a group of publishers announced get-full-text-research, or getftr for short. there was a heck of a response on social media, and the response was—on the whole—not positive from my librarian-dominated corner of twitter. for my early take on getftr, see my december rd blog post “publishers going-it-alone (for now?) with getftr.” as that post title suggests, i took the five founding getftr publishers to task on their take-it-or-leave-it approach. i think that is still a problem. to get you caught up, here is a list of other commentary.

    if you are looking for a short list of what to look at, i recommend these posts.

    getftr’s community update

    on december —after the two posts i list below—an “updating the community” web page was posted to the getftr website. from a public relations perspective, it was…interesting.

    we are committed to being open and transparent

    this section goes on to say, “if the community feels we need to add librarians to our advisory group we will certainly do so and we will explore ways to ensure we engage with as many of our librarian stakeholders as possible.” if the getftr leadership didn’t get the indication between december and december that librarians feel strongly about being at the table, then i don’t know what will. and it isn’t about being on the advisory group; it is about being seen and appreciated as important stakeholders in the research discovery process. i’m not sure who the “community” is in this section, but it is clear that librarians are—at best—an afterthought. that is not the kind of “open and transparent” that is welcoming.

    later on in the questions about library link resolvers section is this sentence:

    we have, or are planning to, consult with existing library advisory boards that participating publishers have, as this enables us to gather views from a significant number of librarians from all over the globe, at a range of different institutions.

    as i said in my previous post, i don’t know why getftr is not engaging in existing cross-community (publisher/technology-supplier/library) organizations to have this discussion. it feels intentional, which colors the perception of what the publishers are trying to accomplish. to be honest, i don’t think the publishers are using getftr to drive a wedge between library technology service providers (who are needed to make getftr a reality for libraries) and libraries themselves. but i can see how that interpretation could be made.

    understandably, we have been asked about privacy.

    i punted on privacy in my previous post, so let’s talk about it here. it remains to be seen what is included in the getftr api request between the browser and the publisher site. sure, it needs to include the doi and a token that identifies the patron’s institution. we can inspect that api request to ensure nothing else is included. but the fact that the design of getftr has the browser making the call to the publisher site means that the publisher site knows the ip address of the patron’s browser, and the ip address can be considered personally identifiable information. this issue could be fixed by having the link resolver or the discovery layer software make the api request, and according to the questions about library link resolvers section of the community update, this may be under consideration.

    so, yes, an auditable privacy policy and implementation is key for for getftr.

    getftr is fully committed to supporting third-party aggregators

    this is good to hear. i would love to see more information published about this, including how discipline-specific repositories and institutional repositories can have their holdings represented in getftr responses.

    my take-a-ways

    in the second to last paragraph: “researchers should have easy, seamless pathways to research, on whatever platform they are using, wherever they are.” that is a statement that i think every library could sign onto. this updating the community is a good start, but the project has dug a deep hole of trust and it hasn’t reached level ground yet.

    lisa janicke hinchliffe’s “why are librarians concerned about getftr?”

    posted on december th in the scholarly kitchen, lisa outlines a series of concerns from a librarian perspective. i agree with some of these; others are not an issue in my opinion.

    librarian concern: the connection to seamless access

    many librarians have expressed a concern about how patron information can leak to the publisher through ill-considered settings at an institution’s identity provider. seamless access can ease access control because it leverages a campus’ single sign-on solution—something that a library patron is likely to be familiar with. if the institution’s identity provider is overly permissive in the attributes about a patron that get transmitted to the publisher, then there is a serious risk of tying a user’s research activity to their identity and the bad things that come from that (patrons self-censoring their research paths, commoditization of patron activity, etc.). i’m serving on a seamless access task force that is addressing this issue, and i think there are technical, policy, and education solutions to this concern. in particular, i think some sort of intermediate display of the attributes being transmitted to the publisher is most appropriate.

    librarian concern: the limited user base enabled

    as lisa points out, the population of institutions that can take advantage of seamless access, a prerequisite for getftr, is very small and weighted heavily towards well-resourced institutions. to the extent that projects like seamless access (spurred on by a desire to have getftr-like functionality) helps with the adoption of saml-based infrastructure like shibboleth, then the whole academic community benefits from a shared authentication/identity layer that can be assumed to exist.

    librarian concern: the insertion of new stumbling blocks

    of the issues lisa mentioned here, i’m not concerned about users being redirected to their campus single sign-on system in multiple browsers on multiple machines. this is something we should be training users about—there is a single website to put your username/password into for whatever you are accessing at the institution. that a user might already be logged into the institution single sign-on system in the course of doing other school work and never see a logon screen is an attractive benefit to this system.

    that said, it would be useful for an api call from a library’s discovery layer to a publisher’s getftr endpoint to be able to say, “this is my user. trust me when i say that they are from this institution.” if that were possible, then the seamless access where-are-you-from service could be bypassed for the getftr purpose of determining whether a user’s institution has access to an article on the publisher’s site. it would sure be nice if librarians were involved in the specification of the underlying protocols early on so these use cases could be offered.

    update

    lisa reached out on twitter to say (in part): “issue is getftr doesn’t redirect and sa doesnt when you are ipauthenticated. hence user ends up w mishmash of experience.” i went back to read her scholarly kitchen post and realized i did not fully understand her point. if getftr is relying on a seamless access token to know which institution a user is coming from, then that token must get into the user’s browser. the details we have seen about getftr don’t address how that seamless access institution token is put in the user’s browser if the user has not been to the seamless access select-your-institution portal. one such case is when the user is coming from an ip-address-authenticated computer on a campus network. do the getftr indicators appear even when the seamless access institution token is not stored in the browser? if at the publisher site the getftr response also uses the institution ip address table to determine entitlements, what does a user see when they have neither the seamless access institution token nor the institution ip address? and, to lisa’s point, how does one explain this disparity to users? is the situation better if the getftr determination is made in the link resolver rather than in the user browser?

    librarian concern: exclusion from advisory committee

    see previous paragraph. that librarians are not at the table offering use cases and technical advice means that the developers are likely closing off options that meet library needs. addressing those needs would ease the acceptance of the getftr project as mutually beneficial. so an emphatic “agree!” with lisa on her points in this section. publishers—what were you thinking?

    librarian concern: getftr replacing the library link resolver

    libraries and library technology companies are making significant investments in tools that ease the path from discovery to delivery. would the library’s link resolver benefit from a real-time api call to a publisher’s service that determines the direct url to a specific doi? oh, yes—that would be mighty beneficial. the library could put that link right at the top of a series of options that include a link to a version of the article in a green open access repository, redirection to a content aggregator, one-click access to an interlibrary-loan form, or even an option where the library purchases a copy of the article on behalf of the patron. (more likely, the link resolver would take the patron right to the article url supplied by getftr, but the library link resolver needs to be in the loop to be able to offer the other options.)

    my take-a-ways

    the patron is affiliated with the institution, and the institution (through the library) is subscribing to services from the publisher. the institution’s library knows best what options are available to the patron (see above section). want to know why librarians are concerned? because they are inserting themselves as the arbiter of access to content, whether it is in the patron’s best interest or not. it is also useful to reinforce lisa’s closing paragraph:

    whether getftr will act to remediate these concerns remains to be seen. in some cases, i would expect that they will. in others, they may not. publishers’ interests are not always aligned with library interests and they may accept a fraying relationship with the library community as the price to pay to pursue their strategic goals.

    ian mulvany’s “thoughts on getftr”

    ian’s entire post from december th in scholcommsprod is worth reading. i think it is an insightful look at the technology and its implications. here are some specific comments:

    clarifying the relation between seamlessaccess and getftr

    there are a couple of things that i disagree with:

    ok, so what is the difference, for the user, between seamlessaccess and getftr? i think that the difference is the following - with seamless access you the user have to log in to the publisher site. with getftr if you are providing pages that contain dois (like on a discovery service) to your researchers, you can give them links they can click on that have been setup to get those users direct access to the content. that means as a researcher, so long as the discovery service has you as an authenticated user, you don’t need to even think about logins, or publisher access credentials.

    to the best of my understanding, this is incorrect. with seamlessaccess, the user is not “logging into the publisher site.” if the publisher site doesn’t know who a user is, the user is bounced back to their institution’s single sign-on service to authenticate. if the publisher site doesn’t know where a user is from, it invokes the seamlessaccess where-are-you-from service to learn which institution’s single sign-on service is appropriate for the user. if a user follows a getftr-supplied link to a publisher site but the user doesn’t have the necessary authentication token from the institution’s single sign-on service, then they will be bounced back for the username/password and redirected to the publisher’s site. getftr signaling that an institution is entitled to view an article does not mean the user can get it without proving that they are a member of the institution.

    what does this mean for green open access

    a key point that ian raises is this:

    one example of how this could suck, lets imagine that there is a very usable green oa version of an article, but the publisher wants to push me to using some “e-reader limited functionality version” that requires an account registration, or god forbid a browser exertion, or desktop app. if the publisher shows only this limited utility version, and not the green version, well that sucks.

    oh, yeah…that does suck, and it is because the library—not the publisher of record—is better positioned to know what is best for a particular user.

    will getftr be adopted?

    ian asks, “will google scholar implement this, will other discovery services do so?” i do wonder if getftr is big enough to attract the attention of google scholar and microsoft research. my gut tells me “no”: i don’t think google and microsoft are going to add getftr buttons to their search results screens unless they are paid a lot. as for google scholar, it is more likely that google would build something like getftr to get the analytics rather than rely on a publisher’s version.

    i’m even more doubtful that the companies pushing getftr can convince discovery layers makers to embed getftr into their software. since the two widely adopted discovery layers (in north america, at least) are also aggregators of journal content, i don’t see the discovery-layer/aggregator companies devaluing their product by actively pushing users off their site.

    my take-a-ways

    it is also useful to reinforce ian’s closing paragraph:

    i have two other recommendations for the getftr team. both relate to building trust. first up, don’t list orgs as being on an advisory board, when they are not. secondly it would be great to learn about the team behind the creation of the service. at the moment its all very anonymous.

    where do we stand?

    wow, i didn’t set out to write , words on this topic. at the start i was just taking some time to review everything that happened since this was announced at the start of december and see what sense i could make of it. it turned into a literature review of sort.

    while getftr has some powerful backers, it also has some pretty big blockers:

    • can getftr help spur adoption of seamless access enough to convince big and small institutions to invest in identity provider infrastructure and single sign-on systems?
    • will getftr grab the interest of google, google scholar, and microsoft research (where admittedly a lot of article discovery is already happening)?
    • will developers of discovery layers and link resolvers prioritize getftr implementation in their services?
    • will libraries find enough value in getftr to enable it in their discovery layers and link resolvers?
    • would libraries argue against getftr in learning management systems, faculty profile systems, and other campus systems if its own services cannot be included in getftr displays?

    i don’t know, but i think it is up to the principles behind getftr to make more inclusive decisions. the next steps is theirs.

    - - t : : + : peter murray (jester@dltj.org) pleroma — a lightweight fediverse server documentation api blog news documentation api blog news pleroma free and open communication for everyone. pleroma is social networking software compatible with other fediverse software such as mastodon, misskey, pixelfed and many others. for a friendly introduction to pleroma and the fediverse, check the big pleroma and fediverse faq and read what is pleroma? getting started start using pleroma by joining an existing pleroma instance or check the installation guide to setting up your own server. join an instance installation guide about pleroma our latest release is v . . . pleroma is free software, all development and issue tracking happens over at the project's gitlab instance. there are multiple frontends to use with pleroma to suit all kinds user preferences: pleroma fe, our 'official' highly customizable frontend. soapbox, a simple easy to learn and use alternative. masto fe, a pleroma focused fork of mastodon's multi column frontend. featured instances want to try pleroma out but don't know which one of the many instances to join? here's a short list of public community ran instances with open registration. outerheaven.club stereophonic.space cawfee.club shitposter.club blob.cat fedi.absturztau.be cdrom.tokyo udongein.xyz other helpful resources statistics and configuration of pleroma instances only statistics of pleroma instances #pleroma and #pleroma-dev irc channels on freenode contact you can contact us via email at contact@pleroma.social. software freedom day | nosk sfd , nosk speakers schedule makers venue sponsors register at ncit balkumari, lalitpur september september · at ncit · balkumari, lalitpur let's celebrate software freedom day (sfd). sfd is a public education effort with the aim of increasing awareness of free software and its virtues, and encouraging its use. see the schedule -> register while it lasts hurry! book seat for workshops and tech talks register but wait. what is sfd? celebration of free and open source software software freedom day (sfd) is an annual worldwide celebration of free software. sfd is a public education effort with the aim of increasing awareness of free software and its virtues, and encouraging its use. speakers learn directly from the leaders that have powered one of the most transformational periods in information technology here in nepal. tech talk speakers er. dipesh das manager, gdg birgunj er. kumar pudasaini network engineer sushil kumar sah kantipur media group opening speakers mohan khadka er. nipesh shrestha mentors ashish tiwari independent developer ashmina kattel mobile app developer, makura creations nischal lal shrestha independent standard-based developer ramesh giri mobile app developer, makura creations sagar devkota game developer, time and update saroj maharjan nepal television suman gautam mobile app developer, chaitanya designs umesh basnet mobile app developer, young innovations experience attend talks and workshops on various foss, play games, code, eat and celebrate at the software freedom day. take a look at this small taste of the edition: allowfullscreen venue where is it? ncit balkumari, lalitpur experience the future at one of the best it colleges in nepal. ncit, a pioneer private institution providing engineering education in nepal, is renowned for excellence in teaching & research, while maintaining close and mutually beneficial links with various sectors get directions for ncit · balkumari, lalitpur -> sponsors your generous contribution provides an unique opportunity for over a thousand young men and woman to learn about the benefits of using free and open source software plus celebrate the worldwide event. event organizers supported by bronze sponsor other sponsor register while we welcome every one of you to our event, we are only able to accomodate a few of you to our tech talks and workcamps. so, hurry up now, and register for the activities you're interested in. register at ncit balkumari, lalitpur september september · at ncit · balkumari, lalitpur let's celebrate software freedom day (sfd). sfd is a public education effort with the aim of increasing awareness of free software and its virtues, and encouraging its use. see the schedule -> register while it's still available register speakers venue sponsors schedule register makers of sfd code of conduct facebook github teach with story maps: announcing the story maps curriculum portal | office of the vice president for research skip to content university of minnesota go to the u of m home page one stop myu search search submit search query office of the vice president for research u-spatial news events the spatial university contact us covid- guidance for the research community about us overview staff list contact us training u-spatial training geospatial skills badge - storytelling help desk software resources spatial data teach with story maps gis courses at umn esri innovation program (eip) esri conference session videos services hazard mitigation planning acknowledging u-spatial mapping prize overview best maps best maps best maps best maps best maps best maps best maps menu close about us overview staff list contact us training u-spatial training geospatial skills badge - storytelling help desk software resources spatial data teach with story maps gis courses at umn esri innovation program (eip) esri conference session videos services hazard mitigation planning acknowledging u-spatial mapping prize overview best maps best maps best maps best maps best maps best maps best maps news events the spatial university contact us one stop myu you are here u-spatial home » news » teach with story maps: announcing the story maps curriculum portal teach with story maps: announcing the story maps curriculum portal feb , u-spatial is excited to announce the recent launch of the story maps curriculum portal, a site that provides pedagogical materials for university classes working with esri story maps. this portal is designed to provide tools for both instructors and students who want to work with story maps, but who do not have an extensive background in gis or digital projects more generally. its resources range from assignment templates, to short how to’s, to exemplary student work. story_maps_image.jpg over the last few years, there has been an increased interest in story maps from instructors and students who would normally never encounter gis in their disciplines. since the platform offers a simple and compelling way to engage with spatial thinking, story maps has been particularly popular among those seeking to engage in the digital humanities. yet, many instructors and students alike have remained intimidated by gis, which has prompted the need for accessible resources to assist with the implementation of story maps in the classroom. this need was addressed by the efforts of a team of researchers and educators from across the university of minnesota, whose work has culminated in this site. with the assistance of an academic innovation grant from the college of liberal arts, this team worked with a variety of instructors to develop resources to enable them to teach with story maps. this work has already paid off, with at least courses across cla running story map assignments this spring semester. if you or your colleagues are interested in using story maps in the classroom, check out http://storymaps.umn.edu/ or contact u-spatial to get connected with the story maps team. the umn story maps curriculum team sarah chambers, phd - cla innovation grant pi, department of history faculty chris saladin - history phd student, graduate research assistant shana crosson - academic technologist, liberal arts technologies and innovation services (latis) kate carlson - spatial technology consultant and training coordinator, u-spatial melinda kernik - spatial data analyst and curator, umn libraries len kne - associate director, u-spatial ben wiggins - program director, digital arts, sciences, & humanities (dash) subscribe to ovpr's inquiry newsletter email address * leave this field blank u-spatial blegen hall th ave. s minneapolis, mn email:  uspatial@umn.edu phone:  ( ) - office of the vice president for research johnston hall pleasant st. se minneapolis, mn email:  research@umn.edu phone:  ( ) - ovpr home ovpr department directory website feedback/questions maps & directions parking & transportation last modified: february , - : am. back to top © regents of the university of minnesota. all rights reserved. the university of minnesota is an equal opportunity educator and employer. privacy statement report accessibility concerns archival connections archival connections project site platform monopolies and archives i am at the interpares trust north american team meeting in vancouver, and the issue of platform monopolies has risen to the top of my mind. here is a quick list of readings i&# ;ve thrown together while listening to and engaging in the discussion: for now, i don&# ;t have much to say, other than this: as a &# ; continue reading platform monopolies and archives sia workshop links just sharing a few links for use during the sia workshop i&# ;ll be teaching later today: google form for exercises sia workshop slides scaling machine-assisted description of historical records one of the questions i&# ;ve been grappling with as part of the archival connections research project is simple: is there a future for the finding aid?  i&# ;m inclined to think not, at least not in the form we are used to. looking to the future, i recently had the chance to propose something slightly different, and &# ; continue reading scaling machine-assisted description of historical records social feed manager takeaways later this week, i&# ;ll be introducing the archival connections project at the society of indiana archivists meeting.  during the first year of this project, one focus of my work was evaluating and developing some recommendations for using social feed manager, a tool developed by george washington university libraries. my full report is here, for those interested:  https://gwu-libraries.github.io/sfm-ui/resources/sfmreportprom .pdf. without &# ; continue reading social feed manager takeaways arrangement and description in the cloud: a preliminary analysis i&# ;m posting a preprint of some early work related to the archival connections project.  this work will be published as a book chapter/proceedings by the archiveschule in marburg.  in the meantime, here is the preprint: archival arrangement and description in the cloud a preliminary analysis installing social feed manager locally the easiest way to get started with social feed manager is to install docker on a local machine, such as a laptop or (preferably) desktop computer with a persistent internet connection. running sfm locally for anything other than testing purposes is not recommended. it will not be sufficient for a long-term documentation project and would &# ; continue reading installing social feed manager locally preserving email report summary earlier today, i provided a summary of preserving email, a technology watch report i wrote back in . i'll leave it to others to judge how well that report holds up, but i had the following takeaways when re-reading it: introducing archival connections welcome! this shares information from a five-year research project that i am coordinating at the university of illinois at urbana-champaign.  the project aims to make it easier for people to find and use the materials managed by archival repositories like the university of illinois archives, where i work.  you can read more about the project on the &# ; continue reading introducing archival connections the founding fathers of the web we're using cookies to improve your experience. find out more. hidden main menu item mashable video entertainment movies gaming television culture web culture sex & relationships celebrities memes parenting social media tech business apps gadgets reviews mobile smart home how to mashable choice science climate space social good lgbtq feminism gender equality activism non-profits amplify shop tech vpn headphones speakers laptops web hosting antivirus lifestyle black friday home kitchen gift guides gaming culture dating pets subscription boxes carry on best of tech best vpn best cheap vpn best streaming services best cheap laptops best running headphones best bluetooth speakers best of culture best dating sites best free dating sites best dating sites for introverts best dna tests best dog dna tests best subscription boxes best of lifestyle best airfryer best cordless vacuum best instant pot best gifts under $ best robot vacuums best vacuum for pet hair black friday search more channels video entertainment culture tech science social good amplify company masthead licensing & reprints archive mashable careers contact contact us submit news mashable shop advertise advertise adchoices legal privacy policy terms of use cookie policy accessibility statement do not sell my personal information resources travel security how to mashable deals gift guides sites job board social good summit international mashable australia mashable benelux mashable india mashable italia mashable me mashable pakistan mashable se asia mashable uk entertainment like follow the founding fathers of the web by christina warren - - : : utc while the phrase "founding fathers" is often used in conjunction with men like benjamin franklin, thomas jefferson and george washington, we wanted the think about the phrase on the global level. and what is more global than the world wide web? thus, this holiday, we're taking a look at individuals who have been instrumental in helping to shape the world wide web and the culture of the internet as we know it today. check out our round up below to learn about some of the most influential people in the creation and development of the ideas and technologies that have led to today's web experience. let us know in the comments if you think we've missed anyone! . tim berners-lee why he matters: tim berners-lee is credited as the inventor of the world wide web. a physicist, berners-lee and his team built the world's very first web browser, worldwideweb, the first web server and the hypertext-based markup language html. berners-lee founded and is the current director of the world wide web consortium (w c), a standards body that oversees the development of the web as a whole. while the internet itself dates back , it was berners-lee who was able to bring together the concept of the internet and hypertext, which set the foundation for the internet as we know it today. because cern (the european organization for nuclear research) didn't make the world wide web proprietary and never charged for dues, its protocols were widely adopted. . marc andreessen why he matters: marc andreessen co-authored mosaic, the first widely-used web browser and he founded netscape communications. while mosaic wasn't the first graphical web browser, it was the first to garner significant attention. it was also the first browser to display images inline with text. after designing and programing mosaic, andreessen went on to co-found netscape communications. netscape's flagship product, netscape navigator, had an enormous impact, by helping to bring the web to mainstream users. in , netscape released the code base for netscape communicator under an open source license. that project, known as mozilla, became the basis of what we now know as firefox. . brian behlendorf why he matters: brian behlendorf was the primary developer of the apache web server and one of the founding members of the apache group. while working as the webmaster for wired magazines's hotwired web site, behlendorf found himself making changes and patches to the http server first developed at ncsa at the university of illinois at urbana-champaign. after realizing that others were also adding their own patches, he put together an electronic mailing list to help coordinate the work. by february , the project had been given a name - apache - and the entire codebase from the original ncsa server was rewritten and re-optimized. the real genius with apache, other than its free and open source nature, was that it was built to be extensible. that meant that isps could easily add their own extensions or plugins to better optimize the server, allowing hundreds of sites to be hosted from just one computer server. apache remains the most popular web server on the internet. , , . rasmus lerdorf, andi gutmans and zeev suraski why they matter: lerdorf, gutmans and suraski are all responsible for what we know as php, the scripting language that remains one of the most used web languages for creating dynamic web pages. rasmus lerdorf first created php in and he was the main developer of the project for its first two versions. in , gutmans and suraski decided to extend php, rewriting the parser and creating what became known as php . the two then went on to rewrite the core of php, naming it the zend engine, and using that to power php . gutmans and suraski further went on to found zend technologies, which continues to do much of the development of php. while larry wall's perl was one of the first general-purpose scripting languages to really take off on the web, the ease of use and embedability of php is what has made it take over as the defacto "p" in the lamp stack (lamp being a default set of components on which many web applications are based). . brad fitzpatrick why he matters: creator of livejournal, in many ways the proto-social network, the original author of memcached and the original authentication protocol for openid. fitzpatrick created livejournal in college, as a way for he and his friends to keep one another up to date with what they were doing. it evolved into a larger blogging community and implemented many features, like friends lists, the ability to create user polls, support for blog clients, the ability to send text messages to users, the ability to post by phone, post by e-mail, create group blogs and more that have become a standard part of communities like facebook, tumblr, myspace, wordpress.com and posterous today. as livejournal grew and started to use more and more resources, fitzpatrick started the memcached project as a way to speed up dynamic web applications and alleviate database load. it does this by pooling together the free memory from across your web servers and then allocate it out as needed. this makes it easy for large projects to scale. memcached is in use by wikipedia, flickr, facebook, wordpress, twitter, craigslist and more. . brendan eich why he matters: he created javascript and now serves as the cto of the mozilla corporation. eich created javascript while at netscape, first under the name mocha, then under the name livescript, and finally as javascript. javascript made its official debut in december of . javascript quickly became one of the most popular web programming languages, even if its use cases in the early days were often visual abominations. however, as time has progressed, the advent of javascript libraries and frameworks, coupled with the power of ajax has made javascript an integral part of the standards-based web. . john resig why he matters: john resig is the creator and lead developer of jquery, the most popular javascript library on the web. while other javascript libraries, such as sam stephenson's protoype, preceded jquery, jquery's goal of being compatible across web browsers is what really sets it apart. in the last two years especially, the momentum around jquery has exploded and it is now reportedly in use by % of the top , most visited websites. it's extensibility and the jquery ui toolkit has also made it a popular adoption target in enterprise application development. any javascript library that can make the leap from web developers to enterprise app builders is the real deal. javascript continues to be one of the big forces within the standards-based web and jquery is helping to lead the charge. . jonathan gay why he matters: he co-founded futurewave software and for more than a decade was the main programmer and visionary behind flash. while not everyone is a fan of adobe flash, it's important to remember how influential and instrumental the technology has been over the course of the last years. gay wrote a vector drawing program called smartsketch back in for the penpoint operating system, and after penpoint was discontinued, the technology in smartsketch was repurposed as a tool that could create animation that could be played back on web pages. this product, futuresplash animator, was acquired by macromedia in and renamed flash. after the acquisition, gay became vice president of engineering at macromedia and he led the flash engineering team. over the years, his team implemented new elements to flash, like actionscript. however, perhaps gay's pinnacle achievement with flash was in the team he spearheaded to create what was then known as the flash communication server (it's now the flash media server) which let flash player use the rtmp protocol to stream audio and video over the web. in essence, this technology is what allowed youtube to be, well, youtube. more development and design resources from mashable: - top resources for design inspiration - how to: get up-to-date on wordpress . - hackathons around the world and the web - web design bloggers you should follow - top beautiful minimalist icon sets [img credits: european parliament, marc andreessen, ilya schurov, chrys/sebastian bergmann, crucially, jsconf, badubadu] topics: brendan eich, dev & design, founding fathers, john resig, marc andreessen, rasmus lerdorf, social media, web development, world wide web masthead jobs advertise mashable shop contact privacy terms facebook mashable twitter mashable feeds mashable pinterest mashable youtube mashable stumbleupon mashable linkedin mashable better business bureau accredited business is a global, multi-platform media and entertainment company. powered by its own proprietary technology, mashable is the go-to source for tech, digital culture and entertainment content for its dedicated and influential audience around the globe. © mashable, inc. all rights reserved. mashable, mashbash and mashable house are among the federally registered trademarks of ziff davis, llc and may not be used by third parties without explicit permission. twarc toggle navigation inkdroid about bookmarks photos music software social talks twarc april , python twitter this post was originally published on medium but i spent time writing it so i wanted to have it here too. tl;dr twarc has been redesigned from the ground up to work with the new twitter v api and their academic research track. many thanks for the code and design contributions of betsy alpert, igor brigadir, sam hames, jeff sauer, and daniel verdeer that have made twarc possible, as well as early feedback from dan kerchner, shane lin, miles mccain, 李荣蓬, david thiel, melanie walsh and laura wrubel. extra special thanks to the institute for future environments at queensland university of technology for supporting betsy and sam in their work, and for the continued support of the mellon foundation. back in august of last year twitter announced early access to their new v api, and their plans to sunset the v . api that has been active for almost the last years. over the lifetime of their v . api twitter has become deeply embedded in the media landscape. as magazines, newspapers and television have moved onto the web they have increasingly adopted tweets as a mechanism for citing politicians, celebrities and organizations, while also using them to document current events, generate leads and gather feedback for evolving stories. as a result twitter has also become a popular object of study for humanities and social science researchers looking to understand the world as reflected, refracted and distorted by/in social media. on the surface the v api update seems pretty insignificant since the shape of a tweet, its parts, properties and affordances, aren’t changing at all. tweets with characters of text, images and video will continue to be posted, retweeted and quoted. however behind the scenes the representation of a tweet as data, and the quotas that control the rates at which this data can flow between apps and other third party services will be greatly transformed. needless to say, v represents a big change for the documenting the now project. along with community members we’ve developed and maintained open source tools like twarc that talk directly to the twitter api to help users to search for and collect live tweets that match criteria like hashtags, names and geographic locations. today we’re excited to announce the release of twarc v which has been designed from the ground up to work with the v api and twitter’s new academic research track. clearly it’s extremely problematic having a multi-national corporation act as a gatekeeper for who counts as an academic researcher, and what constitutes academic research. we need look no further than the recent experiences of timnit gebru and margaret mitchell at google for an example of what happens when research questions run up against the business objectives of capital. we only know their stories because gebru and mitchell’s bravely took a principled approach, where many researchers would have knowingly or unknowingly shaped their research to better fit the needs of the company. so it is important for us that twarc still be usable by people with and without access to the academic research track. but we have heard from many users that the academic research track presents new opportunities for twitter data collection that are essential for researchers interested in the observability of social media platforms. twitter is making a good faith effort to work with the academic research community, and we thought twarc should support it, even if big challenges lie ahead. so why are people interested in the academic research track? once your application has been approved you are able to collect data from the full history of tweets, at no cost. this is a massive improvement over the v . access which was limited to a one week window and researchers had to pay for access. access to the full archive means it’s now possible to study events that have happened in the past back to the beginning of twitter in . if you do create any historical datasets we’d love for you to share the tweet identifier datasets in the catalog. however this opening up of access on the one hand comes with a simultaneous contraction in terms of how much data can be collected at one time. the remainder of this post describes some of the details and the design decisions we have made with twarc to address them. if you would prefer to watch a quick introduction to using twarc v please check out this short video: installation if you are familiar with installing twarc nothing is changed. you still install (or upgrade) with pip as you did before: $ pip install --upgrade twarc in fact you will still have full access to the v . api just as you did before. so the old commands will continue to work as they did $ twarc search blacklivesmatter > tweets.jsonl twarc was designed to let you to continue to use twitter’s v . api undisturbed until it is finally turned off by twitter, at which point the functionality will be removed from twarc. all the support for the v api is mediated by a new command line utility twarc . for example to search for blacklivesmatter tweets and write them to a file tweets.jsonl: $ twarc search blacklivesmatter > tweets.jsonl all the usual twarc functionality such as searching for tweets, collecting live tweets from the streaming api endpoint, requesting user timelines and user metadata are all still there, twarc --help gives you the details. but while the interface looks the same there’s quite a bit different going on behind the scenes. representation truth be told, there is no shortage of open source libraries and tools for interacting with the twitter api. in the past twarc has made a bit of a name for itself by catering to a niche group of users who want a reliable, programmable way to collect the canonical json representation of a tweet. javascript object notation (json) is the language of web apis, and twitter has kept its json representation of a tweet relatively stable over the years. rather than making lots of decisions about the many ways you might want to collect, model and analyze tweets twarc has tried to do one thing and do it well (data collection) and get out of the way so that you can use (or create) the tools for putting this data to use. but the json representation of a tweet in the twitter v api is completely burst apart. the v base representation of a tweet is extremely lean and minimal, and just includes the text of the tweet its identifier and a handful of other things. all the details about the user who created the tweet, embedded media, and more are not included. fortunately this information is still available, but the user needs to craft their api request to request tweets using a set of expansions that tell the twitter api what additional entities to include. in addition for each expansion there are a set of field options to include that control what of these expansions is returned. so rather than there being a single json representation of a tweet api users now have the ability to shape the data based on what they need, much like how graphql apis work. this kind of makes you wonder why twitter didn’t make their graphql api available. for specific use cases this customizability is very useful, but the mutability of the representation of a tweet presents challenges when collecting data for future use. if you didn’t request the right expansions or fields when collecting the data then you won’t be able to analyze that data later when doing your research. to solve for this twarc has been designed to collect the richest possible representation for a tweet, by requesting all possible expansions and field combinations for tweets. see the expansions module for the details if you are interested. this takes a significant burden off of users to digest the api documentation, and craft the correct api requests themselves. in addition the twarc community will be monitoring the twitter api documentation going forward to incorporate new expansions and fields as they will inevitably be added in the future. flattening this is diving into the weeds a little bit, but it’s worth noting here that twitter’s introduction of expansions allows data that was once duplicated across multiple tweets (such as user information, media, retweets, etc) to be included once per response from the api. this means that instead of seeing information about the user who created a tweet in the context of their tweet the user will be referenced using an identifier, and this identifier will map to user metadata in the outer envelope of the response. it makes sense why twitter have introduced expansions since it means in a set of tweets from a given user the user information will just be included once rather than repeated times, which means less data, less network traffic and less money. it’s even more significant when consider the large number of possible expansions. however this pass by-reference rather than by-value presents some challenges for stream based processing which expects each tweet to be self-contained. for this reason we’ve introduce the idea of flattening the response data when persisting the json to disk. this means that tools and data pipelines that expect to operate on a stream of tweets can continue to do so. since the representation of a tweet is so dependent on how data is requested we’ve taken the opportunity to introduce a small stanza of twarc specific metadata using the __twarc prefix. this metadata records what api endpoint the data was requested from, and when. this information is critically important when interpreting the data, because some information about a tweet like its retweet and quote counts are constantly changing. data flows as mentioned above you can still collect tweets from the search and streaming api endpoints in a way that seems quite similar to the v api. the big changes however are the quotas associated with these endpoints which govern how much can be collected. these quotas control how many requests can be sent to twitter in minute intervals. in fact these quotas are not much changed, but what’s new are app wide quotas that constrain how many tweets a given application (app) can collect every month. an app in this context is a piece of software (e.g. your twarc software) identified by unique api keys set up in the twitter developer portal. the standard api access sets a , tweet per month limit. this is a huge change considering there were no monthly app limits before. if you get approved for the academic research track your app quota is increased to million per month. this is markedly better but the achievable data volume is still nothing like the v . api, as these graphs attempt to illustrate: twarc will still observe the same rate limits, but once you’ve collected your portion for the month there’s not much that can be done, for that app at least. apart from the quotas twitter’s streaming endpoint in v is substantially changed which impacts how users interact with twarc. previously twarc users would be able to create up to to two connections to the filter stream api. this could be done by simply: twarc filter obama > obama.jsonl however in the twitter v api only apps can connect to the filter stream, and they can only connect once. at first this seems like a major limitation but rather than creating a connection per query the v api allows you to build a set of rules for tweets to match, which in turns controls what tweets are included in the stream. this means you can collect for multiple types of queries at the same time, and the tweets will come back with a piece of metadata indicating what rule caused its inclusion. this translates into a markedly different set of interactions at the command line for collecting from the stream where you first need to set your stream rules and then open a connection to fetch it. twarc stream-rules add blacklivesmatter twarc stream > tweets.jsonl one useful side effect of this is that you can update the stream (add and remove rules) while the stream is in motion: twarc stream-rules add blm while you are limited by the api quota in terms of how many tweets you can collect, tweets are not “dropped on the floor” when the volume gets too high. once upon a time the v . filter stream was rumored to be rate limited when your stream exceeds % of the total volume of new tweets. plugins in addition to twarc helping you collect tweets the github repository has also been a place to collect a set of utilities for working with the data. for example there are scripts for extracting and unshortening urls, identifying suspended/deleted content, extracting videos, buiding wordclouds, putting tweets on maps, displaying network graph visualizations, counting hashtags, and more. these utilities all work like unix filters where the input is a stream of tweets and the output varies depending on what the utility is doing, e.g. a gephi file for a network visualization, or a folder of mp files for video extraction. while this has worked well in general the kitchen sink approach has been difficult to manage from a configuration management perspective. users have to download these scripts manually from github or by cloning the repository. for some users this is fine, but it’s a bit of a barrier to entry for users who have just installed twarc with pip. furthermore these plugins often have their own dependencies which twarc itself does not. this lets twarc can stay pretty lean, and things like youtube_dl, networkx or pandas can be installed by people that want to use utilities that need them. but since there is no way to install the utilities there isn’t a way to ensure that the dependencies are installed, which can lead to users needing to diagnose missing libraries themselves. finally the plugins have typically lacked their own tests. twarc’s test suite has really helped us track changes to the twitter api and to make sure that it continues to operate properly as new functionality has been added. but nothing like this has existed for the utilities. we’ve noticed that over time some of them need updating. also their command line arguments have drifted over time which can lead to some inconsistencies in how they are used. so with twarc we’ve introduced the idea of plugins which extend the functionality of the twarc command, are distributed on pypi separately from twarc, and exist in their own github repositories where they can be developed and tested independently of twarc itself. this is all achieved through twarc ’s use of the click library and specifically click-plugins. so now if you would like to convert your collected tweets to csv you can install the twarc-csv: $ pip install twarc-csv $ twarc search covid > covid .jsonl $ twarc csv covid .jsonl > covid .csv or if you want to extract embedded and referenced videos from tweets you can install twarc-videos which will write all the videos to a directory: $ pip install twarc-videos $ twarc videos covid .jsonl --download-dir covid -videos you can write these plugins yourself and release them as needed. check out the plugin reference implementation tweet-ids for a simple example to adapt. we’re still in the process of porting some of the most useful utilities over and would love to see ideas for new plugins. check out the current list of twarc plugins and use the twarc issue tracker on github to join the discussion. you may notice from the list of plugins that twarc now (finally) has documentation on readthedocs external from the documentation that was previously only available on github. we got by with github’s rendering of markdown documents for a while, but github’s boilerplate designed for developers can prove to be quite confusing for users who aren’t used to selectively ignoring it. readthedocs allows us to manage the command line and api documentation for twarc, and to showcase the work that has gone into the spanish, japanese, portuguese, swedish, swahili and chinese translations. feedback thanks for reading this far! we hope you will give twarc a try. let us know what you think either in comments here, in the docnow slack or over on github. ✨ ✨ happy twarcing! ✨ ✨ ✨ windows users will want to indicate the output file using a second argument rather than redirecting output with >. see this page for details.↩ unless otherwise noted all the content here is licensed cc-by posts on mark a. matienzo posts on mark a. matienzo recent content in posts on mark a. matienzo iah forecast - disquiet junto project an experiment with recording a new single using vcv rack and reaper based on a compositional prompt. i ended up recording two tracks. perfecting a favorite: oatmeal chocolate chip cookies i have a horrible sweet tooth, and i absolutely love oatmeal chocolate chip cookies. i tend to bake as a means to cope with stress, and of course, more often then that means making these cookies. after making many iterations, i’ve settled upon this recipe as the ultimate version to which all compare. in memoriam and appreciation of rob casson ( - ) the world lost one of its brightest and most charming lights earlier this week, rob casson. many of us knew rob through the code lib community and conferences and his work at miami university libraries. we miss his generosity, patience, sense of humor, and genuine kindness. those of us who got the chance to socialize with him also remember his passion for music, and some of us were even lucky to see live shows in the evenings between conference sessions and other social activities. on sunday, october at : pm pacific/ : pm eastern, those of us who knew him through code lib and the world of libraries are encouraged to gather to share our memories of him and to appreciate his life and work. please join me and my co-organizers, mike giarlo and declan fleming on zoom (registration required). robert casson (robcasson), jan - sep . photo: declan fleming. first sota activation about a month ago, i got my ham radio license, and soon after i got pretty curious about summits on the air (sota), an award scheme focused on safe and low impact portable operation from mountaintops. while i like to hike, i’m arguably a pretty casual hiker, and living in california provides a surprising number of options within minutes driving time for sota newbies. optimizing friction over and in response to the last few months, i’ve been reflecting about intentionality, and how i spend my time creating things. i have tried to improve the indiewebbiness of my site, and understanding what it means to “scratch my own itch”. this resonates particularly lately because it’s leading me to mull over which parts should be hard and easy. unsurprisingly, much of that is personal preference, and figuring out how i want to optimize from the perspective of user experience. friction in ux can be a powerful tool, part of what i’m trying to find is where i want to retain friction as it helps me remain intentional. a hugo shortcode for embedding mirador i spent a little time over the last day or so trying to bodge together a shortcode for hugo to embed an instance of mirador. while it’s not quite as simple (or full-featured) as i’d like, it’s nonetheless a starting point. the shortcode generates a snippet of html that gets loaded into hugo pages, but (unfortunately) most of the heavy lifting is done by a separate static page that gets included as an <iframe/> within the page. that page parses url parameters to pass some of the parameters when mirador gets instantiated. getting a consistent way to load multiple iiif manifests, either into comparison view or for populating a resource list also needs some work, which also led me to grapple with thinking through the iiif content state api spec, which will require some more attention, too. besieged i have spent the last four and a half months feeling like everything is slipping from my grasp – personally, professionally, and in between. the torpor of life under a pandemic and a world wracked with pain has led me to feel like i am stuck in slowly-drying glue. planning too far ahead seems nearly pointless. and yet, every day, we are asked to undertake haruspicy, to speculate about how our organizations and ourselves should respond to the remaining uncertainty, ideally with precision. the world keeps turning and we are asked to keep up, while taking care of family members, grieving our losses, or dealing with other challenges amplified by the present circumstances. at the same time, i feel myself slowing down, or at least to continue trying to slow down. i have not read anything more substantial than an article since february, despite getting a stack of books out of the library in preparation for more time at home. the cognitive load of mailing packages can sometimes be too much. comments on revisions to saa statement on diversity and inclusion the saa council has issued a call for comments on the saa statement on diversity and inclusion. as noted in the announcement, the revision includes changes to expand the statement to cover equity as well. comments are open on the revisions until march , , and what follows are the comments that i’ve submitted. books read, january-february i’m trying to do a better job tracking what i’ve been reading. here’s a start. solidarity, logistics, and infrastructure on prime day july and th are “prime day,” amazon’s attempt to drive up sales and artificial demand around things we don’t need at prices they’ve convinced us that we can afford. thanks to mar hicks, many of us heard that workers at a shakopee, minnesota fulfillment center are holding a six-hour work stoppage on one of the busiest days of the year. alongside, many have called for a boycott on amazon and its subsidiaries (whole foods, goodreads, twitch, etc.), and others have called for a general strike to protest amazon’s collaboration with palantir in aiding ice. with all of this in mind, i’ve been reflecting on what larger scale industrial actions could look like when we look at amazon’s simultaneous leveraging of centralization and unreliability of single resources to provide critical infrastructure for the it sector and its own operations. : a year in gratitude this year was largely complicated and often felt like a massive garbage fire to myself and my crew. i didn’t accomplish a number of my goals and was inconsistent about others, so recapping awesome things i did doesn’t feel appropriate and also happens to be a soft reminder of either failure or things not going as planned. i also tend to hate “best of the year” lists but i find them helpful to remember about where i found joy or the ability to connect to something outside of myself. i suppose this is an attempt to reconcile those things, or perhaps more in line with the end of year spirit, a way to articulate gratitude to the people and things around me that impacted me. when basil has gone to seed: contemplative pesto we are growing three kinds of basil in our garden: “regular” basil, purple basil, and magic mountain basil. the regular basil and magic mountain basil have been thriving quite a bit; the purple basil, less so, as it is growing at the base of the regular basil plant. but the other two, my goodness. the regular old basil was going to seed, though, much to the chagrin of my partner. i’d promised for weeks on end to do something with all that basil, as the stems grew woodier, and as the flowers turned from brilliant white to the brown of kraft paper. meanwhile, the magic mountain basil also grew tall and bushy, went to flower, but only because that’s what it’s supposed to do. evidence of them: digitization, preservation, and labor this is a lightly edited version of the presentation i gave as part of as a part of session : digitization is/not preservation at the society of american archivists annual meeting. the session was overall pure fire, with thoughtful, funny, provocative, and challenging presentations by julia kim, frances harrell, tre berney, andrew robb, snowden becker, fletcher durant, siobhan hagan, and sarah werner. my heart goes out to all of them. all of the images used in the presentation were adapted from the art of google books. what one says and does not say: vulnerability, leadership, and professional trajectories an extended reflection on professional trajectories, leadership, vulnerability, community, and finding my voice, written as part of my participation in the it leadership program. beyond hearing (one another): radical empathy in archives-as-workplace i am writing this amidst being crammed into a seat flying back from new york city, after a few days of intensive meetings. between a number of good and less ideal things, my mind has felt really unsettled lately, and i’m working through some professional malaise, and feeling a bit rudderless. in an attempt to give myself something be myself optimistic about and to set some direction, i reread michelle caswell and marika cifor’s archivaria article “from human rights to feminist ethics: radical empathy in archives”. part of their analysis outlines four affective shifts in archival relationships based on radical empathy - those between ) archivist and records creator, ) archivist and records subject, ) archivist and user, and ) archivist and larger community. given a long list of topics on my mind (precarity, developing inclusive workplaces and cultures, my own uncertain pathway), it felt like there was plenty of space to identify other shifts. sending websub notifications from static sites using netlify functions as part of my iterative intentions for , i started a project to rebuild and simplify my website. i’ve used jekyll for quite some time (either by itself or with octopress), and as part of the latest iteration of the site, i’ve been working to align the site more with indieweb principles, and to smooth the deployment path for my site by hosting it on netlify. one challenge with jekyll and other static site generators is that “dynamic-ish” functionality, including sending notifications through protocols like websub. the trouble is knowing where these actions fit into the build process for your site: you don’t want to send the notifications before your site gets built, or pushed to the cdn hosting your site. recently, netlify announced a private beta for its new netlify functions service, which provides lambda-style functions deployed as part of your site deployment. one of the neat features that exists as of the beta is the ability to trigger the functions via netlify events, like when your site successfully deploys. notes on itlp workshop readings i completed my reading and viewing assignments for my cohort’s it leadership program workshop (january -january at uc berkeley.) this is a brief set of notes for my own use about how all of them tie together. iterative intentions for while i enjoy seeing what my friends are setting their intentions towards in the new year, i don’t really believe in new year’s resolutions for myself. they tend to wear on me heavily whenever i’ve proclaimed a long list of things i’m hoping to get better at. instead, this year, i’m starting with a very short list. my hope is that i can commit to a small number of good habits at a time, which i can then build on iteratively. i want to have the windows of reinforcement stay small at first (maybe a week or two), and once i feel satisfied about whichever habits i’ve committed to, i can add more. i’m starting with three items: rebuilding this website: simplified tooling; new layout/style; using and publishing more structured data, and a partial implementation of a stack following indieweb and solid principles. the last part is intentionally slippery, but i mostly really care about sending and receiving notifications at this point. a push-to-talk conference call foot pedal my current position at dpla, especially since we are remote-first organization, requires me to be on lots of conference calls, both video and audio. while i’ve learned the value of staying muted while i’m not talking, there are a couple of things that make this challenging. first, i usually need the window for the call to have focus to unmute myself by the platform’s designated keystroke. forget that working well if you need to bring something up in another window, or switch to another application. secondly, while we have our own preferred platform internally (google hangouts), i have to use countless others, too; each of those platforms has its own separate keystroke to mute. this all leads to a less than ideal situation, and naturally, i figured there must be a better way. how we work: the dpla technology team core values one of the most important aspects of the work of the dpla technology team is ensuring that we maintain a common frame of reference for all of our efforts. this is situated in multiple aspects - in terms of our shared technical knowledge, the overall dpla strategic plan, and more. overall, however, the guiding principles for our work are best understood through the core values that inform how we work together within our team, as well as with our colleagues at dpla and across the network of our stakeholders and collaborators. these values are not only designed to be aspirational; instead, they also inform practical aspects of our day to day work, allowing us to work together effectively through their articulation of cultural norms and expectations. in addition, our values encourage us to be intentional about our work, even when faced with challenges from deadlines, staff capacity, and other external pressures. open, free, and secure to all: dpla launches full support for https dpla is pleased to announce that the entirety of our website, including our portal, exhibitions, primary source sets, and our api, are now accessible using https by default. dpla takes user privacy seriously, and the infrastructural changes that we have made to support https allows us to extend this dedication further and become signatories of the library digital privacy pledge of - , developed by our colleagues at the library freedom project. dpla and the international image interoperability framework dpla, along with representatives of a number of institutions including stanford university, the yale center for british art, the bibliothèque nationale de france, and more, is presenting at access to the world’s images, a series of events related to the international image interoperability framework (iiif) in new york city, hosted by the museum of modern art and the new york academy of medicine. the events will showcase how institutions are leveraging iiif to reduce total cost and time to deploy image delivery solutions, while simultaneously improving end user experience with a new host of rich and dynamic features, and promote collaboration within the iiif community through facilitated conversations and working group meetings. ever to excel: towards an apologetics of the spreadsheet this is the written version of my presentation from code lib in philadelphia, on march , . my presentation was part of a panel with my friends christina harlow, ted lawless, and matt zumwalt, after which we had some discussion moderated by matt miller. my slides are available, as are the video of all talks from the panel. my jekyll todo list a running list of things i want to do or have done. a lot of this relates to adopting the indieweb ethos indiewebcamp nyc i’m at indiewebcamp nyc and i just added some microformats data to my site. hurrah! edit: and i’ve successfully sent a webmention by hand from the command line. time to add that to the jekyll build process… developing and implementing a technical framework for interoperable rights statements within the technical working group of the interoperability-working-on-rights/">international rights statements working group, we have been focusing our efforts on identifying a set of requirements and a technically sound and sustainable plan to implement the rights statements under development. now that two of the working group’s white papers have been released, we realized it was a good time to build on the introductory blog post by our co-chairs, emily gore and paul keller. accordingly, we hope this post provides a good introduction to our technical white paper, recommendations for the technical infrastructure for standardized international rights statements, and more generally, how our thinking has changed throughout the activities of the working group. dplafest attendees: support lgbtq youth in indiana! this is a joint blog post by dplafest attendees benjamin armintor and christina harlow, and dpla staff members mark matienzo and tom johnson. after the passage of sea (the indiana religious freedom restoration act), many scheduled attendees of dplafest were conflicted about its location in indianapolis. emily gore, dpla director for content, captured both this conflict and the opportunity the location provides when she wrote: we should want to support our hosts and the businesses in indianapolis who are standing up against this law… at dplafest, we will also have visible ways to show that we are against this kind of discrimination, including enshrining our values in our code of conduct. we encourage you to use this as an opportunity to let your voice and your dollars speak. as dplafest attendees, patronizing businesses identifying themselves with open for service is an important start, but some of us wanted to do more. during our visit to indianapolis, we are donating money to local charities supporting the communities and values that sea threatens. profit & pleasure in goat keeping two weeks ago, we officially announced the initial release of krikri, our new metadata aggregation, mapping, and enrichment toolkit. in light of its importance, we would like to take a moment for a more informal introduction to the newest members of dpla’s herd. krikri and heiðrún (a.k.a. heidrun; pronounced like hey-droon) are key to many of dpla’s plans and serve as a critical piece of infrastructure for dpla. they are also names for, or types, of goats. what dpla and dlf can learn from code lib this post has been crossposted to the digital library federation blog. code lib was held last week from february - , in portland, oregon. the code lib conferences have grown in the last ten years, both in terms of size and scope of topics. this growth is particularly impressive when you consider that much of the work of organizing the conference falls upon a circulating group of volunteers, with additional organizational support from organizations like the digital library federation. it has become clear to me that the code lib community is interested in ensuring that it can develop and support compelling and useful conferences for everyone who chooses to participate. a helping hand: free software and the dpla as you probably know, dpla is committed to making cultural heritage materials held in america's libraries, archives, and museums freely available to all, and we provide maximally open data to encourage transformative uses of those materials by developers. in addition, dpla is also proud to distribute the software we produce to support our mission to the wider community. the greatest adventure with apologies to rankin/bass and glenn yarbrough, the greatest adventure is what lies ahead. after almost four great years working for manuscripts and archives at the yale university library and two and a half rewarding years as the technical architect on archivesspace, i am excited to announce that i&# ;ve accepted a position as the director of technology for the digital public library of america, a small but well-supported non-profit dedicated to free and open access to cultural heritage materials. more information about my new position can be found in the press release. while i am sad to be leaving a great institution and a great project, both with fantastic colleagues, i look forward to contributing my time, energy and expertise to the addressing the huge challenges and encouraging the exciting possibilities of dpla. if you&# ;d like to join me in this adventure, i&# ;m also happy to announce that dpla will be hiring two technology specialists very soon, so if you&# ;re interested or have any questions, please don&# ;t hesitate to contact me! computer anonymous new york in my previous post, i wrote about wanting to address issues of privilege in the space between archives and technology. as a first step, i mentioned organizing a new york group of computer anonymous. i’m pleased to announce that we’ve scheduled our first meeting: tuesday, october , , : pm - ?, at pacific standard, fourth avenue, brooklyn, ny we have about seven people who have indicated that they’re planning on attending. if you’re interested, please comment here, contact me via twitter or email, or leave a comment on this github issue. i believe that a computer anonymous group in new york is a great chance to start having both tough and positive conversations. i realize that it won’t solve everything, and that our initial location may not be ideal, but i’m certainly amenable to other ideas and doing better outreach. i want to see both the technology and archives professions become more diverse, more equitable, and healther communities that in which i can encourage others to join. cha(lle)nging the dynamics of privilege in archives and technology like others, i found the presidential address of jackie dooley last august’s society of american archivists annual meeting to be problematic. at the time, i had little more to add than what was articulated by others, such as sam winn’s post on professional privilege. as the dust settles, though i’ve gotten a lot more clarity. the society of american archivists is not really an easy place to examine our privilege or our struggle. there are many ways in which we desperately need to examine privilege within the context of our profession as well as the overall organization, but for now, i’m going to limit this post to addressing an issue that has been racing through my head since the saa annual meeting, which concern privilege and the intersection of archives and technology, the area in which i work. i am nothing if not enthusiastic about open culture and open source software and their transformative potential. i release my own work (meaning software, presentations, writing, etc. collaboration before preservation: recovering born digital records in the stephen gendin papers for some, the phrase “born digital resources” may be unfamiliar, but ricky erway, senior program officer at oclc research wrote a brief essay entitled defining “born digital”, which provides a handy, working definition: “items created and managed in digital form.” manuscripts and archives, the beinecke rare book and manuscript library, and yale university library overall have had a notable history of working with born digital resources over the past ten years. emotion, archives, interactive fiction, and linked data [edit (feb , ): thanks to the fantastic work of tara robertson, the video of my lightning talk is now available!] i gave a lightning talk entitled [“wielding the whip: affect, archives, and ontological fusion”]({{ root_url }}/storage/ / feb-code lib-lightning-talk) at the code lib conference in chicago, illinois. this lightning talk was one of the most difficult presentations i’ve ever given for a number of reasons, including the emotional aspect of the content itself, as well as the fact that several of the ideas i was trying to articulate weren’t fully baked. i’ve been thinking about this for the four to six months in various capacities and with different focuses, especially as i read more interactive fiction and learn more about it (as well as about hypertext in general). this post serves as an expansion of some of the ideas in my lightning talk and as a way to further the discussion around the following question: can we write interactive fiction and (semi-/para-)fictional hypertext that leverages linked data to create an emotional connection to the “real world”? hours: the day of digital archives thursday, october was the day of digital archives, organized by friend and colleague gretchen gueguen at the university of virginia. i missed the post deadline yesterday, but it's been a busy week, so i might as well walk through some of the highlights of my work related to digital archives that occurred during that hours from am thursday to am friday. am: it's late, but i'm finishing the last bit of work of writing up lecture notes. this fall, i am teaching a class on digital preservation as an adjunct in the ischool at drexel university. the ischool is on the quarter system, so we have only ten weeks to cover a wide variety of material. last week the students got an introduction to the reference model for an open archival information system, and this week's topics (on which i am writing the lecture notes) are selection and appraisal, assessment, provenance, and authenticity. some of the sources of the week's material include a forthcoming case study from the city of vancouver archives, the dcc curation manual's chapter on appraisal and selection, sections of the clir publication authenticity in a digital environment, and the final report of the w c provenance incubator group. how to hack saa inspired by my friend declan fleming's "how to hack code lib," i have been motivated to put together a guide to surviving and enjoying the annual meeting. it can be a seemingly scary (and potentially lonely) experience if it's your first conference, and we archivists are not always known for our extrovertedness. so, without further ado, here is my brief list of suggestions - again, some of which have been shamelessly stolen adapted from declan's guide. tweeting up at saa thanks to the great work of lance (@newmsi), rachel donahue (@sheepeeh), and angelique richardson (@randomarchivist) last year, the first saa tweetup was pulled off successfully in washington, dc. given that this year's saa annual meeting is just a few weeks away, hillel arnold (@helrond) and i have elected to organize one in chicago, as well. we're holding this year's tweetup on thursday, august , starting at pm, at the clark street ale house, which is about a mile from the conference hotel and easily walkable and accessible by public transportation. feel free to join us after the alumni mixers - and please join us even if you don't use twitter. please rsvp at http://twtvite.com/saa tweetup; while rsvps are not required, they will help us and the bar plan ahead. supporting hyatt workers and unite here local at the annual meeting of saa some of us archivists have growing concerns regarding the long-standing labor dispute between unite here local and the management of the hyatt regency chicago, the location of the annual meeting of the society of american archivists. most recently, this labor dispute has led to a one-day strike of housekeepers, dishwashers, bellmen and other hotel workers on june , . saa has not given its membership any guidance to its membership about how to support unite here local and the hyatt's hotel workers. accordingly, my colleague hillel arnold and i have put together an website for archivists to find and share ideas. this website, support hyatt workers at saa : an unofficial resource, is now live, and provides ideas for actions that anyone can perform, plus lists of those specifically for individuals who have either chosen not to attend and for those that are attending. this site allows anyone to contribute and comment either generally on a given page or in response to particular ideas. sumer is icumen in i have spent the last several months in a fog. emotions tend to get the better of me whenever faced with a barrier in my work life. it's gotten increasingly difficult for me to see the forest for the trees, no matter how much i tell myself that my work is for the greater good of my unit, my institution, and archivy. self-doubt creeps in, as does stress, frustration, depression. positivity begins to wane, with optimism replaced by apathy and sarcasm. you stop seeing the good in things and other people, and you stop being inspired. you desperately want to get away, pull the plug, clean the slate, or otherwise just put everything to a grinding halt. you stop asking "why can't i do that?" and start asking "why should i care?" instead. i don't think this is the first time i've faced burnout, and while it certainly won't be the last, the extent to which it's affected me this time around is astounding. in memoriam: robert frost, - i am sad to announce the passing of robert l. "bob" frost ( - ). bob was an associate professor at the university of michigan school of information, my alma mater, where he had taught since . bob had been battling cancer for over two years. ed vielmetti has written an obituary of bob on his blog, including the announcement from si dean jeffrey mackie-mason. bob was an inspiration to many of us si alums, and his magnetic personality, sharp wit, and joie de vivre ensured he had a bevy of his students and colleagues buzzing around him at any given time. i had the opportunity to take his class material culture and the interpretation of objects in the spring of , my final semester at si. the class was intense in a way that few of my other classes at michigan were, and it provoked my continuing curiosity in identifying theoretical frameworks to analyze the everyday world. bob reinforced my fascination with wilhelm reich and the fugs by introducing me to dušan makavejev's w. wikileaks & the archives & records profession: a panel discussion update: the text of my remarks can be now found online at https://matienzo.org/presentations/ /wikileaks/. i am honored to be one of the speakers at "wikileaks & the archives & records profession," a panel discussion organized by the archivists roundtable of metropolitan new york and the metropolitan new york city chapter of arma international. the panel will be on january , at the center for jewish history. from the announcement: do wikileaks and its complex, attendant issues shift our conceptualization of our roles as information professionals? how might wikileaks change the public's views on usage of and access to archives and records? to what extent is the most recent release of diplomatic cables a product of information mismanagement? addressing these and many more questions, our confirmed speakers include trudy peterson, former acting archivist of the united states ( - ) and current representative for the society of american archivists on the department of state's historical advisory committee; fred pulzello, solutions architect in the information governance practice at microlink llc; jim fortmuller, manager of systems security at kelley drye & warren llp in washington, dc; mark matienzo, digital archivist in manuscripts and archives at yale university library; and derek bambauer, associate professor of law at brooklyn law school. what's your delicious story? update: i've added a question on quora about this too - feel free to contribute your story there. in my last post, i talked a bit about the notion of delicious being a platform with a myriad of uses, and i've been actively wondering about this since then. upon further reflection, i've realized that the best way to figure this out is actually to engage and ask people directly. accordingly, i'm asking for your help. of course it's upsetting that delicious is being sunsetted, but other than individual users and archive team, people seem to be doing very little about it. delicious is clearly more than the bookmarks. i want to gather information about how people like you and me actually used it beyond it's obvious functionality. did you use it to manage resources for your dissertation? did you use it to communicate with family about a serious event or illness? how did you go beyond the boundaries of it being just " delicious and the preservation of "platforms" just as plenty of others have, i recoiled in horror when i heard that delicious (née del.icio.us) was being "sunsetted". regardless of the red flags that have been raised about its potentially imminent demise, i've still been using it on a daily basis. i've been an active user for over . years, which is longer than i can say for just about any other web platform or service. i deleted my friendster and myspace accounts quite a while ago; i've been on flickr almost as long as delicious, but the bookmarking wins out by a good four months or so. i started using delicious in my final semester of library school, and it shows. i used it for procrastinating as well as a way to organize research materials before i had zotero. the bulk of the bookmarks from that first day of use (february , ) were likely imports from my browser, but i quickly showed a facility for adding stuff that i saw as interesting, useful, etc. update: aus-archivists not dead? earlier today i'd posted about the australian society of archivists' announcement about the aus-archivists listserv being "lost." tim sherratt, an australian colleague and friend of this blog, announced this post on archiveslive, the ning group created by the asa seemingly to replace the listserv. pat jackson, asa president, has already responded with an update: the asa national office has not lost the aus-archivists list-serv. we have moved from an outsourced service provider to managing our new server at the national office. the aus-archivists list-serv was a bit too ancient for our spanking new server to manage. in terms of the posterity of the contents of the list-serv, the wonderful discussions and debate it fostered and engendered, they are not lost. it is our intention to post them to the asa website where they can be perused. further to that, it is my understanding that the aus-archivists list-serv is also deemed to be permanent under the asa retention schedule. the asa will be investigating other methods of storing the list-serv for permanent retention. goodbye, aus-archivists: listservs and the commitment to digital preservation [update: aus-archivists might not be gone for good, as asa intends to share the entire run of postings on its website. see this post for details.] despite my relative distaste for the a&a list, i have previously found it useful and argued for its retention when it was threatened in . i still agree with most of what i wrote . years ago, although i might have toned things down in retrospect. in an effort to find other e-mail discussion lists on archives that engaged my interest, i joined arcan-l (the canadian archivists' listserv) and aus-archivists (the australian archivists' listserv, maintained by the australian society of archivists). surprisingly, aus-archivists had been idle since around the end of october. i noticed this tweet from the australian society of archivists only in passing at the beginning of november: the asa office would just like everyone to know that our list serv is still currently unavailable, we apologize for any inconvenience... i didn't hear anything else between then and earlier today. i should note that i'm not a member of asa, and so i can't speak to any communication they had with their membership. however, today a message was sent out by pat jackson, the asa president, to all aus-archivists subscribers, announcing that the listserv was lost entirely. disco-powered pymarc i'd been long interested in starting to develop code using some sort of mapreduce implementation for distributed computing. i have never been able to get my head around hadoop, so i gave up with that pretty quickly. i recently discovered disco, a mapreduce framework with an erlang-based core. disco also allows you to to write your worker code in python, which was a huge plus to me. after stumbling through the tutorial, i took the word count demo and put together some basic code using pymarc that gathered tag count statistics for a bunch of marc files. the code's still in a very early form, and arguably should carve up large files into smaller chunks to pass off to the worker processes; i've gotten around this for the time being by splitting up the files using yaz-marcdump. once i split the files, i pushed them into a tag of ddfs, the disco distributed file system. this was a useful way for me to write some demo code both for using pymarc and disco. the future of archivesblogs every project has it's day. i've administered archivesblogs for four years now. originally, i created it to fill a void when blogging was new to the archival profession, and archivists were having to make the case for dedicating staff time to shepherding early social media projects. four years later, things are much different; i'm less interested in web . (professionally speaking), more archivists are blogging, and more repositories are maintaining their own blogs. despite the changes in the archival blogosphere and repository administration, archivists still contact me occasionally and remind me of the value of archivesblogs. it's also lead to some interesting debates in the past. i still think it has its place, but i don't want to be the only person shaping its future. i've also been thinking for a while that i want to get out of the aggregation business, and i believe time to put together a succession plan. the reality is that i don't have the time to rethink what archivesblogs could be, or even give it the care and feeding it needs to keep running. why i have given up on the archives and archivists list i am certainly not the first person to chime in on this topic, and i certainly hope not to be the last. inspired by two fantastic posts by ben bromley and maureen callahan, i have chosen to discuss the reasons why i have given up on the archives and archivists list. unlike ben and maureen, who discuss why they choose not to post to the list, i'm also including reasons why i choose not to read or subscribe to the list anymore. for what it's worth, until yesterday, i had been on the a&a list for almost nine long years. i don't think the majority of the traffic is terribly useful. this can be incredibly frustrating, especially there's a question on topic you happen to know something about. telling someone how to perform a google search is not an adequate response.given the signal-to-noise ratio of the list, useful or timely messages can be easily buried. off-topic messages seem to be the rule rather than the exception. with little fanfare, dlist goes down i've been meaning to blog about this for a while. dlist, the digital library of information science and technology, maintained by the university of arizona school of information resources and library science, has been down for at least three months. any url formerly part of dlist gets automatically redirected to an announcement page that reads as follows: aging hardware and conversion issues following a system crash have taken their toll on dlist, the university of arizona's digitial library of information science and technology. we are currently exploring choices and alternatives both to short term recovery and long term sustainability. the resources and metadata are fully recovered, and we hope to put them back online in a new repository soon. if you or your institution would like to assist with the dlist project, please contact us at sirls@email.arizona.edu. thanks for your support! while i feel for the difficulties they've had in maintaining it, i have to admit that it's a bit frustrating for me from the standpoint of someone who submitted material to dlist. code lib : southern hospitality i recently returned from a trip to asheville, north carolina for this year's code lib conference. despite the unavoidable hiccups that some attendees experienced as they tried to head home from the conference, i believe that this year's conference was the most successful one that i happened to attend. if i'm right, i think this year had a record number of attendees, a record number of new attendees, and much tighter organization to make the new folks feel welcome. the social activities were certainly more planned and organized than last year, which was a welcome change. while i certainly didn't mind hollering out to the crowd that i would be going to see some bands or to a particular restaurant like i had in previous years, it was nice to see other folks take the lead. the newcomer dinners seemed to go pretty well; the brews cruise and barbecue excursions went smoothly; and even the game(s) of werewolf seemed to take a life of their own. description peddlers and data.gov: two peas in a pod as you may have heard, the national archives issued a press release today announcing the release of three data sets on data.gov: the first milestone of the open government directive was met on january with the release of new datasets on data.gov. each major government agency has uploaded at least three datasets in this initial action. the national archives released the — code of federal regulations and two datasets from its archival research catalog. this is the first time this material is available as raw data in xml format. the archival research catalog, or arc, is nara's primary access system for archival description, representing % of nara's entire holdings. this breaks down to the following: , , cubic feet record groups , collections , series , , file units , items in addition, there are , , , logical data records and , artifacts described in arc. nara's decision to share this data is a breakthrough for archives and people who love data. onward and upward... it's fitting that this the hundredth (gosh, only the hundredth?) post, because i have rather important news. first, my fellow developers/producers/ux designers at the new york public library and i have been dealing with every minute detail on the upcoming, drupal-based replacement to the nypl website. you can see a live preview at http://new.nypl.org/. i can proudly say that this project has helped both me personally and nypl overall play nice in the open source world - we've been actively contributing code, reporting bugs, and sending patches to the drupal project. also, our site search is based on solr, which always bears mention. in addition, after a working tirelessly as a developer at nypl for the last year and a half, i have decided to move onward and upward. i am leaving the cozy environs of the still-recently renovated office space i share with my spectacular coworkers. it was not an easy decision by far, but it feels like the best one overall. clifford lynch clarifies position on open source ilses clifford lynch, executive director of the coalition for networked information, has responded to the leaked sirsidynix report that spreads horrific untruths about open source. marshall breeding posted lynch's response on guideposts. in particular, lynch notes the following: i don't think that i ever wrote those words down in an article; i suppose i may have said something to that effect in an interview or q&a in some conference program like ala top tech, though perhaps no quite as strongly as it's expressed here. i have without question spoken out about my concerns regarding investment in open source ils development in the last few years. if i did say this, it feels like it's used a little out of context -- or maybe the better characterization is over-simplistically -- in the report. ... i think there are still major problems -- many of which we really don't know how to solve effectively, and which call for sustained and extensive research and development -- in various areas where ils get involved in information discovery and the support of research and teaching. sirsidynix report leaked, spreading fear, uncertainty and doubt about open source thanks to twitter, i discovered that wikileaks has posted a report written by sirsidynix vice president for innovation stephenabram which spreads a fantastic amount of fear, uncertainty and doubt about both open source software in general and, more specifically, the suitability of open source integrated library systems. as the summary provided by wikileaks states, this document was released only to a select number of existing customers of the company sirsidynix, a proprietary library automation software vendor. it has not been released more broadly specifically because of the misinformation about open source software and possible libel per se against certain competitors contained therein ... the source states that the document should be leaked so that everyone can see to what extent sirsidynix will attempt to spread falsehoods and smear open source and the proponents of open source. in addition, as you may have heard, the queens library is suing sirsidynix for breach of contract; for what it's worth, the initial conference is scheduled for next monday, november , . pybhl: accessing the biodiversity heritage library's data using openurl and python via twitter, i heard about the biodiversity heritage library's relatively new openurl resolver, announced in their blog about a month ago. more specifically, i head about matt yoder's new ruby library, rubybhl, which exploits the bhl openurl resolver to provide metadata about items in their holdings and does some additional screenscraping to return things like links to the ocred version of the text. in typical fashion, i've ported matt's library to python, and have released my code. pybhl is available from my site, pypi, and github. use should be fairly straightforward, as seen below: import pybhl import pprint b = pybhl.bhlopenurlrequest(genre='book', aulast='smith', aufirst='john', date=' ', spage=' ', volume=' ') r = b.get_response() len(r.data['citations']) pprint.pprint(r.data['citations'][ ]) {u'atitle': u'', u'authors': [u'smith, john donnell,'], u'date': u' ', u'epage': u'', u'edition': u'', u'genre': u'journal', u'isbn': u'', u'issn': u'', u'itemurl': u'http://www.biodiversitylibrary.org/item/ ', u'language': u'latin', u'lccn': u'', u'oclc': u' ', u'pages': u'', u'publicationfrequency': u'', u'publishername': u'h.n. patterson,', u'publisherplace': u'oquawkae [ill.] :', u'spage': u'page ', u'stitle': u'', u'subjects': [u'central america', u'guatemala', u'plants', u''], u'title': u'enumeratio plantarum guatemalensium imprimis a h. access and description reconsidered what exactly is archival access, and how does archival description make it possible? i feel like that in some form or another i've been struggling with this question throughout my career. recently, this blog post from the top shelf, the blog of the university of texas at san antonio archives and special collections department, came across my radar, wherein they write (emphasis in original): utsa archives and special collections is among the growing number of archives to create an online presence for every one of its collections. ... we were able to utilize inventories generated by former and current collection assistants to create guides to the collection with folder-level and box-level descriptions. the project resulted in access to more than collections and linear feet of materials. what defines that accessibility? i certainly don't intend to be a negative nancy about this - adding finding aids and other descriptive metadata about collections is obviously useful. but how has it necessarily increased access to the materials themselves? aip receives nhprc funding to digitize samuel goudsmit papers i'm happy to pass on the news that my former employer, the niels bohr library & archives of the american institute of physics, has received funding from the national historical publications and records commission to digitize the entirety of the samuel goudsmit papers. from the announcement on the center for history of physics/niels bohr library & archives facebook page: goudsmit ( — ) was a dutch-educated physicist who spent his career in the us and was involved at the cutting edge of physics for over years. he was an important player in the development of quantum mechanics in the s and s; he then served as scientific head of the alsos mission during world war ii, which assessed the progress of the german atomic bomb project. goudsmit became a senior scientist at brookhaven national laboratory and editor-in-chief of the american physical society. the papers consist of an estimated , documents, which include correspondence, research notebooks, lectures, reports, and captured german war documents; the collection is the most used in the library. a gentle reminder on the eve of teaching my first class of my course (lis - , or, building digital libraries: infrastructural and social aspects) at liu's palmer school of information and library science, i'd like to remind you of the following. the syllabus is available on online, if you're curious. privacy, censorship, and good records management: brooklyn public library in the crosshairs over at librarian.net, jessamyn west has a brief write up about a post on the new york times' city room blog about placing access restrictions on offensive material (in this case, one of hergé's early tintin books at the brooklyn public library). more interestingly, she notes, is that the times was given access and accordingly republished challenges from bpl patrons and other community members. quite astutely, jessamyn recognizes that the patrons' addresses are removed but their names and city/state information are published. if your name is, for example, [name redacted], redacting your address doesn't really protect your anonymity. i'm curious what the balance is between patron privacy and making municipal records available. it's a good question that doesn't have an incredibly straightforward answer. my first concern was about whether bpl had kept the challenge correspondence beyond the mandated dates in the new york state records schedules. after doing some digging, on the new york state archives' website, i came across schedule mi- (" everything is bigger in texas, including my talks on the semantic web i'll be at the society of american archivists annual meeting next week in austin, texas. it looks to be a jam-packed week for me, with a full-day standards committee/tsds meeting on tuesday, followed by thatcamp austin in the evening, an (expanded version of my) presentation on linked data and archival description during the ead roundtable on wednesday, and thursday's session (number ): "building, managing, and participating in online communities: avoiding culture shock online" (with jeanne kramer-smyth, deborah wythe, and camille cloutier). and to think i haven't even considered which other sessions i'm going to! anyhow, i hope to see you there, and please make either or both of my presentations if you can. must contextual description be bound to records description? i've been struggling with the fact that (american) archival practice seems to bind contextual description (i.e., description of records creators) to records description. much of these thoughts have been stirring in my head as a result of my class at rare book school. if we take a relatively hardline approach, e.g. the kind suggested by chris hurley ("contextual data should be developed independently of the perceived uses to which it will be put", , see also ), it makes total sense to separate them entirely. in fact, it starts making me mad that the <bioghist> tag exists at all in ead. contextual description requires that it be written from a standpoint relative to that of the creator it describes. i guess what i keep getting hung up on is if there could be a relevant case that really merits this direct intellectual binding. i therefore appeal to you, humble readers, to provide me with your counsel. do you think there are any such cases, and if so, why? seeking nominations for co-chair, rlg programs roundtable apologies for any duplication - we're just trying to get the word out! as co-chairs of the rlg programs roundtable of the society of american archivists, we're seeking nominees to co-chair of the roundtable for - . if you'd like to nominate yourself or someone else, please email mark matienzo, co-chair, at mark at matienzo.org. please submit all nominations no later than pm eastern time on friday, august . serving in a leadership position for a section or roundtable is a great way to learn about saa and its governance, contribute to new directions for the society, and work with other archivists on interesting projects. it is also a great way to serve the society! your rlg roundtable co-chairs, thomas g. knoles marcus a. mccorison librarian american antiquarian society mark matienzo applications developer, digital experience group the new york public library the archival, the irreconcilable, and the unwebbable: three horsemen and/or stooges this week in charlottesville has been a whirlwind exploration of standards and implementation strategies thus far during my class, designing archival description systems, at rare book school. my classmates and i have been under the esteemed tutelage of daniel pitti, who has served as the technical architect for both ead and eac. interestingly, there's been a whole lot of talk about linking data, linked data, and linked data, date normalization, and print versus online presentation, among other things. in addition, a few things have floated past on my radar screen this week that have seemed particularly pertinent to the class. the first of these was a post by stefano mazzocchi of metaweb, "on data reconciliation strategies and their impact on the web of data". in stefano's post, he wrote about the problem of a priori data reconciliation vs. a posteriori; in other words, whether you iron out the kinks, apply properties like owl:sameas, etc., on the way in or on the way out. "summer camp for archivists" sounds so much better crossposted to nypl labs. i'm staying with colleagues and good friends during my week-long stint in charlottesville, virginia for rare book school. if you're here - particularly if you're in my class (daniel pitti's designing archival description systems) - let me know. i'm looking forward to a heady week dealing with descriptive standards, knowledge representation, and as always, doing my best to sell the archives world on linked data. notes and thoughts will follow, as always, on here. "using the oclc worldcat apis" now available in python magazine as of last thursday, i have been inducted into the pantheon of published python programmers (aye, abuse of alliteration is always acceptable). my article, "using the oclc worldcat apis," appears in the latest issue (june ) of python magazine. i'd like to thank my editor, brandon craig rhodes, for helping me along in the process, not the least of which includes catching bugs that i'd overlooked. the article includes a brief history lesson about oclc, worldcat, and the worldcat affiliate apis, a detailed introduction to worldcat, my python module to interact with oclc's apis, and a brief introduction to simile exhibit, which helps generate the holdings mashup referenced earlier on my blog. subscribers to python magazine have access to a copy of the code containing a functional oclc web services key ("wskey") to explore the application. nyart presentation: archives & the semantic web this last tuesday, i spoke at the annual meeting of the archivists' roundtable of metropolitan new york, where i gave a talk on archives and the semantic web. the presentation went over very well, and colleagues from both the archives field and the semantic technology field were in attendance. i did my best to keep the presentation not overtly technical and cover just enough to get archivists to think about how things could be in the future. i also have to give a big hat tip to dan chudnov, whose recent keynote at the texas conference on digital libraries helped me organize my thoughts. enjoy the slides, and as always, i relish any feedback from the rest of you. drupal for archivists: documenting the asian/pacific american community with drupal over the course of the last academic year, i have been part of a team working on survey project aimed at identifying and describing archival collections relating to the asian and pacific american community in the new york city metropolitan area. the results of the fifty-plus collections we surveyed have been posted on our drupal-powered website, which has been an excellent fit for the needs of this project and has also enabled us to engage many of the challenges the project has presented. by way of introduction, this survey project seeks to address the underrepresentation of east coast asian/pacific americans in historical scholarship and archival repositories by working with community-based organizations and individuals to survey their records and raise awareness within the community about the importance of documenting and preserving their histories. funded by a documentary heritage project grant from metro: metropolitan new york library council, the project is a collaborative effort between the asian/pacific/american institute and the tamiment library/robert f. worldcat in the wild at oclc's worldcat mashathon in amsterdam it's good to see other people using your code. thanks to the oclc devnet blog, i found out that etienne posthumus used worldcat for a demo application he built during the worldcat mashathon in amsterdam last week. even more interesting is that etienne's application was deployed on google app engine. courtesy of oclc's alice sneary, there is a brief video of etienne presenting his application to the other mashathon attendees: batch reindexing for drupal + solr crossposted to nypl labs. sorry for any duplication! hey, do you use drupal on a site with several thousand nodes? do you also use the apache solr integration module? if you're like me, you've probably needed to reindex your site but couldn't be bothered to wait for those pesky cron runs to finish — in fact, that's what led me to file a feature request on the module to begin with. well, fret no more, because thanks to me and greg kallenberg, my illustrious fellow applications developer at nypl dgtl, you can finally use drupal's batch api to reindex your site. the module is available as an attachment from that same issue node on drupal.org. nota bene: this is a really rough module, with code swiped pretty shamelessly from the example use of the batch api page on drupal.org. it works, though, and it works well enough as we tear stuff down and build it back up over and over again. digitalnz and brooklyn museum api modules for python i've been busy the last few weeks, so i didn't even really announce this to begin with! i've been playing around with some of the cultural heritage apis that are available, some of which i learned about while i was at museums and the web . while i was away i released code for a python module for interacting with the brooklyn museum collections api. after chatting with virginia gow from digitalnz, i also got motivated to write a python module to interact with the digitalnz api. the code for both is fairly unpolished, but i'm always ready for feedback! both modules are available as mercurial repositories linked from my bitbucket account. there's also a small cluster of us working on a museum api wiki to begin sorting out some of these issues. comparably speaking, the library and archives world has it somewhat easy... the medium is not the message "electronic records" is a particularly awful phrase and does not even actually capture anything about the underlying records at all. as far as the term goes, it's not too far off from "machine readable records." as a profession, can we start actually thinking critically about the underlying technical issues and push for using terms that more accurately describe what it is we're dealing with? i understand it's a convenient catch-all term, but there is a large range of issues that differ with the kinds of data and systems. drupal for archivists: a drupal-built archives reference blog when mark asked me to write about our use of drupal at the dickinson college archives and special collections, the first thing i thought about was when our archives reference blog was initially launched in april . i couldn't believe that it has been two years already. i am pleased to report that my colleagues at dickinson and i are enormously happy with the results of those two years. i hope others may find this brief explanation of how and why we are using drupal as a reference management tool to be helpful and instructive. the concept for our implementation of drupal was a simple one. i was thinking about the fact that we help researchers everyday to locate information that they want, but that what they discover among our collections or learn from them seldom gets shared, except by those who write for publication. so, what if we shared via the web, through a simple blog format, the basic questions posed by our researchers along with a simple summary of the results? why you should support linked data if you don't, i'll make your data linkable. coming soon: drupal for archivists i've been fairly quiet lately as i've been busy with this and that, but i thought i'd let everyone know that i've been beginning to put together a series of posts entitled "drupal for archivists." drupal, as you may or may not know, is a flexible and extensible open source content management system. there will be a general overview of some of the important concepts, but it'll focus less on the basics of getting people up and running — there are plenty of resources out there, such as the wonderful tutorials and articles available from lullabot. instead, i've drafted a handful of guest bloggers to discuss how and why they're using drupal. keep your eyes peeled! brooklyn museum releases api the always groundbreaking brooklyn museum has now released an api to allow the public to interact with their collections data. i can't even tell you how happy i am about this in terms of an open data perspective. also, this is the direction that makes the whole "detailed curation by passionate amateurs" thing possible. there are only three simple methods for accessing the data. ideally, it would be nice to see them put their collections metadata up as linked data, but now i'm daring to dream a little. hey, wait a minute! i think that's the perfect way to start playing around with the api. doing some digging through the documentation, i'm seeing that all the objects and creators seem to have uris. take a crack at it - the registration form is ready for you. moving worldcat to mercurial and bitbucket it's official - i've moved the codebase for worldcat, my python module for working with the oclc worldcat apis, to be hosted on bitbucket, which uses the mercurial distributed version control system. you can find the new codebase at http://bitbucket.org/anarchivist/worldcat/. make me a structured vocabulary or i'll make one for you the society of american archivists released the thesaurus for use in college and university archives as an electronic publication this week. specifically, it was issued as a series of pdf files. is this data stored in some sort of structured format somewhere? if so, it's not available directly from the saa site. there's no good reason why tucua shouldn't be converted to structured, linkable data, expressed using skos, the simple knowledge organization system. it's not like i need another project, but i'm sure i could write some scraper to harvest the terms out of the pdf, and while i'm at it, i could write one to also harvest the glossary of archival terminology. someone, please stop me. i really don't need another project. go foaf yourself i'm really looking forward to next week's code lib conference in providence, despite my utter failure to complete or implement the project on which i am presenting. in particular, i'm really looking forward to the linked data preconference. like some of my other fellow attendees, i've hammered out a foaf file for the preconference already so that ed summers' combo foaf crawler and attendee info web app. this is what the sample output looks using my foaf data. it's good to see we're well on our way to have an easily creatable sample type of rdf data for people to play with. at a bare minimum, you can create your foaf data using foaf-a-matic and then edit it to add the assertions you need to get it to play nice with ed's application. see you in providence, but go foaf yourself first. developing metrics for experimental forms of outreach archivesnext recently inquired about how archivists measure success of . initiatives. it's hard to determine some . -ish initiatives will really impact statistics when you don't really define what the results you're trying to see. i'd like to open the question further — how do we begin developing metrics for things that sit on the cusp between forms of outreach? furthermore, i'm curious to see where this information is captured — do archivists wait until the end to gather survey data, or if they working towards something like we at nypl labs are doing with infomaki, our new usability tool developed by michael lascarides, our user analyst. dead reckoning # : mixing/matching with namespaces and application profiles so, it's time for another rant about my issues with ead. this one is a pretty straightforward and short one, and comes down to the issue that i should essentially be able to mix and match metadata schemas. this is not a new idea, and i'm tired of the archives community treating it like it is one. application profiles, as they are called, allow us to define a structured way to combine elements from different schemas, prevent addition of new and arbitrary elements, and tighten existing standards for particular use cases. however, to a certain extent, the ead community has accepted the concept of combining xml namespaces but on a very limited level. the creation of the ead schema allows ead data to be embedded into other xml documents, such as mets. however, i can't do it the other way around; for example, i can't work a mods or marcxml record into a finding aid. why not? you're all sheep made by twittersheep, a new project made (in part) by my acquaintance ted roden, a creative technologist for new york times research & development. a bird's eye view of archival collections mitchell whitelaw is a senior lecturer in the faculty of design and creative practice at the university of canberra and the winner of the national archives of australia's ian maclean award. according to the naa's site, the ian maclean award commemorates archivist ian maclean, and is awarded to individuals interested in conducting research that will benefit the archival and historical profession in australia and promote the important contribution that archives make to society. dr. whitelaw has been keeping the world up to date on his work using his blog, the visible archive. his work fits well with my colleague jeanne kramer-smyth's archival data visualization project, archivesz, as well as the multidimensional visualization projects underway at the humanities advanced technology & information institute at the university of glasgow. however, his project fascinates me for a few specific reasons. first of all, the scale of the datasets he's working with are astronomically larger than those that any other archival visualization project has tried to tackle so far. api fun: visualizing holdings locations in my previous post, i included a screenshot of a prototype, but glossed over what it actually does. given an oclc record number and a zip code, it plots the locations of the nearest holdings of that item on a google map. pulled off in python (as all good mashups should be), along with simile exhibit, it uses the following modules: geopy simplejson web.py and, of course, worldcat. if you want to try it out, head on over here. the curent of the code will soon be able as part of the examples directory in the distribution for worldcat, which can be found in my subversion repository. this is all i'm going to say on this here blogsite concerning the brouhaha about the policy for use and transfer of worldcat records because i have other, more interesting and more complex problems to solve (and so do you) the moderated discussion hosted and sponsored by nylink went pretty well. also, i don't need the records to have fun with the data "” i just need robust apis. (in fact, as i said today, i'd prefer not to have to deal with the marc records directly.) robust apis would help making prototypes like this one i hacked together in a few hours into a real, usable service. lightening the load: drupal and python man, if this isn't a "you got your peanut butter in my chocolate thing" or what! as i wrote over on the nypl labs blog, we've been up to our necks in drupal at mpow, and i've found that one of the great advantages of using it is rapid prototyping without having to write a whole lot of code. again, that's how i feel about python, too, but you knew that already. once you've got a prototype built, how do you start piping stuff into it? in drupal , a lot of the contrib modules to do this need work - most notably, i'm thinking about node_import, which as of yet still has no (official) cck support for drupal and cck . in addition, you could be stuck with having to write php code for the heavy lifting, but where's the joy in that? well, it so happens that the glue becomes the solvent in this slow, slow dance. dead reckoning # : a fatheaded failure for faceted terms and headings in ead a while back, i wrote a bad marc rant, and i considered titling this a bad metadata rant. however, as the kids say, i got mad beef with a little metadata standard called encoded archival description. accordingly, i figured i should begin a new series of posts discussing some of these issues that i have with something that is, for better or for worse, a technological fixture of our profession. this is in part prompted by thoughts that i've had as a result of participating in ead@ and attending the something new for something old conference sponsored by the pacscl consortial survey initiative. anyhow, onto my first bone to pick with ead. i'm incredibly unsatisfied with the controlled access heading tag <controlaccess/>. first of all, it can occur within itself, and because of this, i fear that there will be some sort of weird instance where i have to end up parsing a series of these tags levels deep. also, it can contain a <chronlist/>, which also seems pretty strange given that i've never seen any example of events being used as controlled access terms in this way. going off the rails: really rapid prototyping with drupal previously posted on http://labs.nypl.org/. the other labs denizens and i are going off the rails on a crazy train deeper down the rabbit hole of reimplementing the nypl site in drupal. as i pile my work on the fire, i've found that building things in drupal is easier than i'd ever thought it to be. it's a scary thought, in part because i'm no fan of php (the language of drupal's codebase). really, though, doing some things can be dead simple. it's a bit of a truism in the drupal world at this point that you can build a heck of a lot just by using the cck and views modules. the important part is that you can build a heck of a lot without really having to know a whole lot of code. this is what threw me off for so long - i didn't realize that i was putting too much thought into building a model like i normally would with another application framework. does saa need to support who i am? there's been a whole lot of discussion in the archivoblogosphere about the perceived need for quasi-informal interest groups that are fundamentally driven by identity. while i agree with this in theory, i must register my opposition to having saa promote, support, or provide any sort of infrastructure for such groups. fundamentally, i am against this because i believe it poses a strong threat to the privacy of archivists. deliciouscopy: a dumb solution for a dumb problem you'd think there was some sort of tried and true script for delicious users to repost bookmarks from their inboxes into their accounts, especially given that there are often shared accounts where multiple people will tag things as "for:foo" to have them show up on foo's delicious account. well, there wasn't, until now (at least as far as i could tell). enter deliciouscopy. it uses pydelicious, as well as the universal feed parser and simplejson. it reads a user's inbox, checks to see if poster of the for:whomever tag was added to your network, and reposts accordingly, adding a via: tag for attribution. it even does some dead simple logging if you need that sort of thing. the code's all there, and gpl license blah blah blah. i hacked this together in about an hour for something at mpow - namely to repost things to our shared account. it's based on michael noll's deliciousmonitor.py but diverges from it fairly quickly. enjoy, and give any feedback if you must. idle hands are the devil's plaything i've had my hands full lately. two weeks ago i was at the mcn conference (wherein, among other things, i have continued my dominion as archduke of archival description by taking over the mcn standards sig chair position from the bancroft library's mary elings), and next week i'm off to philadelphia for the pacscl something new for something old conference. i hammered out the coherent, written version of my paper i gave at ead@ . i prepared a proposal for next february's code lib conference in providence (ahem, vote for mine, if you're so inclined): building on galen charlton's investigations into distributed version control systems for metadata management, i offer a prototype system for managing archival finding aids in ead (encoded archival description). my prototype relies on distributed version control to help archivists maintain transparency in their work and uses post-commit hooks to initiate indexing and publishing processes. in addition, this prototype can be generalized for any xml-based metadata schema. on top of that, i'm working with a fine group of folks on the rlg programs project to analyze ead editing and creation tools, doing hardcore schema mapping at work, and somehow finding enough time to play a little doukutsu monogatari to unwind. developing automated repository deposit modules for archivists' toolkit? i'd like to gauge interest for people to help add code to archivists' toolkit to automate the deposit of digital objects into digital repositories. at first glance, the biggest issue is having to deal with differing deposit apis for each repository, but using something like sword would make sense to bridge this gap. any and all feedback is welcome! python worldcat module v . . now available in preparation for the upcoming worldcat hackathon starting this friday, i've made a few changes to worldcat, my python module for interacting with oclc's apis. most notably, i've added iterators for sru and opensearch requests, which (like the rest of the module) painfully need documentation. it's available either via download from my site or via pypi; please submit bug reports to the issue tracker as they arise. edit: i've bumped up the version number another micro number to . . as i've just added the improvements mentioned by xiaoming liu on the worldcat devnet blog (lccn query support, support for tab-delimited and csv responses for xissnrequests, and support for php object responses for all xidrequests). edit: thanks to thomas dukleth, i was told that code for the hackathon was to be licensed under the bsd license. accordingly, i've now dual licensed the module under both gpl and bsd. v -powered libraries and the happiness engines that run them previously posted on http://labs.nypl.org/. a week ago today, a few of my deg colleagues and i went to see liz lawley from rit's lab for social computing give a talk entitled "libraries as happiness engines." it was a modified version of a talk she gave at this year's cil conference. the gist of the talk was that gaming in libraries means not just using established games to draw the public into the library, but also to begin implementing game mechanics into libraries that allow them to flourish as social spaces. in particular, these game mechanics include things like collecting, points, feedback, exchanges, and customization. i've been ruminating on this for the last week or so in a couple different ways. first of all, i've been trying to figure out how we could implement game mechanics within nypl. an open letter to saa council and the program committee i apologize for using my blog to soapbox, but i felt like this was a significant concern that i should share with my readers. if you wish to support my position, please consider sending an e-mail to saa council and the program committee chairs. dear program committee members and saa council members, i understand that we are nearing the deadlines for submission of proposals for sessions at the annual meeting of the society of american archivists. i also understand the reasons behind having an earlier deadline than past years. however, i am deeply concerned with the decision to have the deadline set to be october , , which is yom kippur and the day which the jewish high holidays end. as is often the case, conference proposals often coalesce at the last minute, and this is further complicated by the fact that the beginning of rosh hashana fell on september , . i recognize that the deadline is most likely immutable at this point, but i am asking that saa council and future program committees pay attention to when the high holidays fall in future years. the apex of hipster xml geekdom: tei-encoded dylan via language log: the electronic textual cultures lab (etcl) at the university of victoria has, in an effort to draw more attention to tei, chosen to prepare an encoded version of the lyrics to bob dylan's "subterranean homesick blues" and overlaid the resulting xml over the song's video. the resulting video is available, naturally, on youtube. etcl's ray siemens writes about the reasoning behind this on the tei video widgets blog: at the last gathering of the text encoding initiative consortium, in maryland, a few of us were discussing the ways in which tei has eluded some specific types of social-cultural representation that are especially current today . . . things like an avatar, or something that could manifest itself as a youtube posting. a quick search of youtube did reveal a significant and strong presence of sorts, but it was that of tei the korean pop singer (pronounced, we're told, "˜tay'); so, our quest began there, setting out modestly to create a video widget that would balance t-e-i and tei in the youtube world. introducing djabberdjaw djabberdjaw is an alpha-quality jabber bot written in python that uses django as an administrative interface to manage bot and user profiles. i've included a couple of plugins out of the box that will allow you to perform queries against z . targets and oclc's xisbn api (assuming you have the requisite modules). djabberdjaw requires django . or later, jabberbot, and xmpppy. it's available either from pypi (including using easy_install) or via subversion. you can browse the subversion repository, too. archivesblogs . thanks to jeanne from spellbound blog, i was made aware of the fact that archivesblogs hadn't really been doing its job. so, i ripped out its guts and put it back together. it's running the latest, shiniest versions of wordpress, feedwordpress, and auto delete posts, and now it has added feedburner and wp stats goodness. let me know if you discover any peculiarities in the updated set up. slaying the scary monsters previously posted on http://labs.nypl.org/. getting up to speed is hard anywhere, and it's especially difficult in a large, complex institution like nypl. other than just understanding the projects that you're given, you also are thrown headfirst into making sense of the culture, the organization, and all the unspoken and occasionally unseen things that allow you to do your job. there's no clear place to start this, so a good portion of the time you have to keep on top of that while you start thrashing away at your work. the question remains, though, how do you organize this stuff? how do you enable sensemaking in yourself and your peers? everything old is new again goodbye, wordpress - i've been drinking more of the koolaid. i rebuilt my personal/professional site (not this blog) in drupal. migrating the content was pretty easy (about static pages, no posts). the functionality is astounding - i only started working on redoing it yesterday and i've already got a great infrastructure. expect a detailed post before too long, or at least a link to a colophon on said site. matienzo, the san francisco treat i'm packing up and heading out to sfo this evening for saa . right now i'm frantically backing up my zotero repository, making sure i have a bunch of sources to peruse on the plane as i hack away on my slides for ead@ . you might be surprised that my idea of me jumping out of a cake in the shape of an <archdesc> tag wearing a bathing suit was not even considered, so it looks like i'll actually have to put some coherent thoughts together. i've got to make a grand entrance somehow. i'll be chairing the description section meeting as well, so behave yourselves, kids. bad marc rant # : leader positions and i understand why the marc leader position is a good idea in theory. in fact, marbi proposal - suggests: a change in definition to leader/ code "a" for clarification; making code "t" (manuscript language materials) obsolete in leader/ and using code "a" instead; redefinitions of codes "a" and "p" in leader/ ; renaming the for books to "textual (nonserial); and deleting field for mixed material. i can safely say that some pretty funky stuff gets cataloged with the leader position set as "a," and much of it is incorrect, at $mpow and otherwise. what is leader/ actually supposed to be used for? marbi proposal - again states: code a indicates that the material is described according to archival descriptive rules, which focus on the contextual relationships between items and on their provenance rather than on bibliographic detail. the specific set of rules for description may be found in $e. all forms of material can be controlled archivally. python worldcat api module now available i'd like to humbly announce that i've written a pre-pre-alpha python module for working with the worldcat search api and the xid apis. the code needs a fair amount of work, namely unit tests and documentation. i've released the code under the gpl. the module, called "worldcat", is available from the python package index. you can also checkout a copy of the code from my subversion repository. seriously, follow our lead oclc's lorcan dempsey makes a great point as usual in his post "making tracks": in recent presentations, i have been suggesting that libraries will need to adopt more archival skills as they manage digital collections and think about provenance, evidential integrity, and context, and that they will also need to adopt more museum perspectives as they think about how their digital collections work as educational resources, and consider exhibitions and interpretive environments. i doubt that any archivist would disagree with this. even better, i think this offers a great opportunity to reach out and have those in allied fields really understand how and why we've done things slightly different for so long. i'm glad to see that my new employer has picked up on this holistic approach with platforms like the nypl blogs. now, it can be told after a little over two years processing, referencing, and cataloging, and hacking at aip, i'm skipping up to the city that never sleeps to join jay datema, josh greenberg, and company in the nypl labs. i'd be lying if i said i wasn't thrilled about this opportunity, and i'm ready to see where my new job will take me. the next major hurdle will be finding a place to live, so if you're privy to anything in brooklyn, please let me know. ica releases international standard for describing functions the ica's committee of best practices and standards released the first edition of the international standard for describing functions (isdf). like much of ica's other work in descriptive standards for archives, isdf is designed to be used in conjunction with established standards such as isad(g) and isaar(cpf), as well as standards in preparation such as isiah. isdf will assist both archivists and users to understand the contextual aspects of the creation of records of corporate bodies. through isdf and related standards, archivists will be able to develop improved descriptive systems that can be potentially implemented using a linked data model. google message discovery amidst this week of notorious hoaxes, google has launched google message discovery as an enterprise-focused add on for its google apps platform. google message discovery goes well beyond a simple and reliable e-mail backup system and provides three key features of interest to records managers: content-addressable storage for electronic mail stored immediately upon sending or retrieval creating explicit retention policies based upon time compliance with relevant laws and best practices straightforward discovery for any use, regardless if internal or concerning litigation google message discovery, as well as other related offerings such as e-mail security, clearly has its origins in google's acquisition of postini last year. postini isn't some startup with dubious or perpetually beta offerings (e.g. dodgeball or grandcentral); some of their better known clients include basf and merrill lynch. at $ per user per year, the service seems to be an incredible steal. easy peasy: using the flickr api in python since i'm often required to hit the ground running at $mpow on projects, i was a little concerned when i roped myself into assisting our photo archives with a flickr project. the first goal was to get a subset of the photos uploaded, and quickly. googling and poking around the cheeseshop led me to beej's flickrapi for python. little did i know that it would be dead simple to get this project going. to authenticate: def create_session(api_key, api_secret): """creates as session using flickrapi.""" session = flickrapi.flickrapi(api_key, api_secret) (token, frob) = session.get_token_part_one(perms='write') if not token: raw_input("hit return after authorizing this program with flickr") session.get_token_part_two((token, frob)) return session that was less painful than the ppd test for tuberculosis. oh, and uploading? flickr.upload(filename=fn, title=title, description=desc, tags=tags, callback=status) using this little code plus a few other tidbits, i created an uploader that parses csv files of image metadata exported from an access database. and when done, the results look a little something like this. movin' and shakin' in the archives world archivesnext recently discussed library journal's annual list of "movers and shakers," pondering what a comparable list in the archival profession would look like. for those who don't know, the list recognizes "library advocates, community builders, . gurus, innovators, marketers, mentors, and problem solvers transforming libraries." after some rumination, archivesnext is now calling for nominations to generate a similar list. do your civic duty and nominate either a project, an individual, or even a situation worthy of this recognition! behind the times: where i finally speak of code lib ok, ok. a post about code libcon is long overdue. the minor details: the weather was nice, food was decent, good beer was abundant, and live music was enjoyable. onto the real meat... this time around, i felt like i got a whole lot more out of attending; i'm not sure if this is due to the changing nature of my job, increased attention, or some other factor, like neckferrets and dongles. the great majority of the talks, be they keynotes, traditional presentations, or even just lightning talks, were excellent. furthermore, this time around i felt a whole lot more connected to the miasma - so much so, in fact, that i ended up giving two lightning talks (or three, depending on if you consider the one i gave with gabriel farrell on kobold_chiefain fac-back-opac). the most impressive thing overall, though, were lolcats that came out to play: thanks to the work of noel peden and dan scott, the videos should be up soon enough. dataportability.org and the dream of a web . backup system i just discovered dataportability.org through peter van garderen's blog post about it. i was entirely surprised that i'd heard nary a peep about it. some basic examination (running a whois query on the domain) shows that it's still a fairly new project. i have to say, though, that i'm entirely impressed. those involved have given a whole lot of thought to how they're going to be doing things, as evidenced by those who have signed up to be involved and the dataportability charter. to wit, the charter's principles tend to speak for themselves: we want sovereignty over the profiles, relationships, content and media we create and maintain. we want open formats, protocols and policies for identity discovery, data import, export and sync. we want to protect user rights and privacy. and, of course, the thing that made me squeal with delight like a pig in mud: . dataportability will not inventing any new standards. i mean, that's probably the best news that someone like me could get. announcing zgw.py, or, how i stopped worrying and learned to love z . after more than a few late nights and long weekends, i'm proud to announce that i've completed my latest pet programming project. zgw.py is a lightweight z . -web gateway, written, naturally, in python. none of this would be possible without the following python modules: aaron lav's pyz , the beast of burden; ed summers' pymarc, the smooth-talking translator; and web.py, quite possibly the best and most straightforward python web framework available. i initially undertook this project as an excuse to play with pyz and to teach myself the workings of web.py; i'd played with django, but it seemed entirely excessive for what i was working on. first, i should mention that zgw.py isn't designed to be a complete implementation of a z . gateway. there are many areas in which there is much to be desired, and it's probably not as elegant as some would like. however, that wasn't the point of the project. my ultimate goal was to create a simple client that could be used as a starting point from which to develop a complete web application. no excuses to the power of infinity i have no excuses for not updating this blog. i thought about forcing myself to comply some sort of resolution - you know, given the new year and all - but everyone knows how those turn out. regardless, i have a whole backlog of things to post about, most notably being the countless python programming projects i've been working on lately. expect more posts to arise over the next few days as a result of this. also, i have no excuses for botching up archivesblogs temporarily by mucking about and wiping out some of wordpress's databases that make feedwordpress, the plugin that grabs content for archivesblogs, do its thing. the recovery was simpler than i thought it would be, but this is probably the largest amount of unplanned downtime we've had. keep your eyes open, as a replacement for feedwordpress may itself becoming along sooner or later. web . , disaster, and archives many of web . 's detractors argue about it's real value, but given the wildfires in southern california, i was happy to see it really put to good use. kpbs, a san diego radio station, has been using flickr and, even more shocking (at least for some), twitter as ways to disseminate information and news quickly. the use of twitter is particularly interesting as it can send out sms messages. you might recall a few years ago when protesters in the philippines used sms to organize political rallies and warn of police retaliation. the california state library blog also has provided information from the california state archivist about archives affected by the fires. in addition, information about disaster recovery for libraries and archives is available both on a regional level by the san diego/imperial county libraries disaster response network and on the state level by the california preservation program. please hold those affected by the fires in your thoughts, and if you can, contact sildrn or the cpp to help. archivesblogs upgrades & related weirdness i've updated archivesblogs to the latest version of wordpress, as well as the latest versions of the plugins that do the heavy lifting (feedwordpress and auto delete posts). in so doing, i found that the database structure of wordpress . is radically different, causing some of my elegant work to break (namely, the use of the auto delete posts plugin, for which i wrote a patch). you may have seen duplicate posts, no new posts on specific feeds (language and blog type), and possibly other unpredicted outcomes. everything seems to be working properly now, so if you see anything strange or that doesn't work, let me know. dust in the wind(y city) saa came and went. everyone knows that i'm no good at liveblogging or semi-liveblogging, so don't expect an exhaustive report - potentially better sources include archivesnext and spellbound blog. here are my personal highlights, which is just about the best that this here boy archivist can pull off. the pre-conference saa research forum. while i only got to see the second half of the day, this is where the meat was according to those who were there for the whole thing. the description section steering committee meeting. this was probably the most instructive for me as i'm the incoming chair. hacking away on my remarks most of the week and successfully pulling off our session. jennifer schaffner from oclc/rlg programs substituted for merrilee proffitt and did a swell job. she's a great person to discuss all these crazy ideas with for two reasons - she's established in the profession and new to oclc! i eagerly await her posts at hangingtogether. hey chicago i'm in the windy city for saa . i'll be pretty busy the first few days in town, but remember, if you want to find me, just look for the glasses. also, make sure you come to the description section meeting and session on friday! happy birthday archivesblogs! it was one year ago today that i made archivesblogs available to the public. time sure seems to fly by fast! since then there have been a lot of changes - layout, platform, and hosting - but still, i remain involved for the long haul. thanks to all who provided suggestions, submitted blogs to be syndicated, and any other guidance along the way. archivesblogs now syndicates nearly blogs in languages! when life hands you marc, make pymarc it's a bad pun, but what can you expect from someone who neglects his blogs as much as i do? i've been busy, somewhat, and one of my latest forays has been getting a grip on python, an absolutely wonderful programming language. i actually enjoy writing code again, which is more than a bit scary. i was sick of the mangled scripts and workflows i came up with at mpow to handle converting marc data to html and other such nonsense. writing perl made me feel unclean. after playing around with ed summers' pymarc module, i began hacking about and putting my own hooks into the code here and there. i longed for marc to unicode conversion, which is a necessary evil. digging around, i came across aaron lav's pyz module, which had its own little marc code. after bugging ed via #code lib, and hassling aaron in the process, ed began incorporating the code and i started some testing. just a short while later, the conversion code worked. archives camp: talking about archives . archivesnext recently discussed the possibility of having some "archives . "-themed events this summer, and i think it's a great idea. now, we may not be able to throw something together in time for saa, but it seems like the idea of at least meeting up informally is percolating. there's a wealth of opportunities available for archives and archivists to improve access to their holdings through social software and the like. my vision, as i said in a comment on the post, would be to end up with an unconference along the lines of a library camp (or more generally, a barcamp), maybe with lightning talks if enough of us have something to show off or talk about. like library camp, i'd like to see a "bridging the gap" session where we learn and share ways about how to talk to it staff and other stakeholders essential to our ideas taking off. i facilitated a such a session at library camp east, and although trying at times, it was really instructive. nara frees their data, somewhat i'm a bit surprised that this hasn't come across anyone's radar, because it seems awfully damn significant to me. according to this post on the a&a listserv by michael ravnitzky, the national archives and records administration released an exhaustive database of box holdings of all the federal records centers. he doesn't really say how he obtained this database, but my guess is he just asked based upon his background and interest in public access to government information - i've come across his name on material relating to foia before. the file he received from nara is a mb microsoft access database, and soon after he posted about it to the listserv, jordan hayes and phil lapsley took the opportunity to host the database, converted it to mysql, and wrote a few simple query forms for the database in php. hayes also provided some basic documentation on how to use the forms since mysql query syntax is probably not familiar to most people on the a&a list. sticking my neck out it's been some time since i've had a substantive post, and i don't really intend to write one now. i figured i should mention, however, that i've been featured lately in print and in the blogosphere. jessamyn west of librarian.net interviewed me for an article ("saving digital history") in library journal netconnect. in addition, i was tapped by the wonderful folks at booktruck for the latest installment in their "ask a male librarian" series. i swear someday soon i'll write something much more interesting and less self-promotional. upgrading kubuntu to feisty beta breaks privoxy while i fully intend to go over my full experience upgrading to the latest development release of kubuntu, one of the things that i first noticed was that privoxy didn't seem to work or to be speaking with tor, preventing me from that lovely "anonymous" browsing experience. i noticed that in the upgrade the ever important "forward-socks a / localhost: ." line in /etc/privoxy/config wasn't in the upgraded version (actually, it shouldn't be). apparently during the upgrade, i told it to clobber my config file with the one distributed, saving my old version (luckily) to /etc/privoxy/config.dpkg-old. once that i added that line back, i'm now able to surf a bit more safely. protection from human pests a few months ago (while i was at naco training) i got a reader's card at the library of congress. for a while i pretty actively went and requested books on saturday afternoons. in particular, i was interested in archival manuals from outside the united states. one of the most interesting books i found was s. m. jaffar's problems of an archivist, a manual written in pakistan in . i was struck by the following passage ("protection from human pests"), taken from pp. - : "human pests" and "white huns" are the common epithets applied to human species acting as enemies of archives. history has recorded many such instances of vandalism as the wholesale destruction of priceless treasures of art and literature, the burning of big and beautiful libraries, the transport of camel-loads of books to distant countries and the sale of valuable manuscripts at ridiculously low prices. the transfer of artistic and literary treasures of subjugated countries by the conquerors to their homelands to adorn their own museums and libraries has depleted those countries of that wealth. five non-library blogs i read i won't bother waiting to be tagged to do this, because all the cool kids already are. i read too many blogs already, so here we go. mary eats is, as one would easily assume, a blog about food. mary started the blog while she and her husband were living in korea, and thus there's an overwhelming emphasis on korean food and restaurants. she moved to seattle relatively recently and began culinary school, too. my two favorite parts of this blog are when she makes videos and when she makes comics, like this one about konbu. language log is a blog written by linguistics faculty from around the world, wherein they tackle important and not-so-important issues like linguistic prescriptivism, scammers, the pirahà language, and cheese steak rolls served at chinese restaurants in philadelphia, all with a good sense of humor. information aesthetics covers all sorts of stuff related to information visualization. essentially, it's just one massive blog full of data porn, from treemaps to youtube videos using isotype symbols. two work-safe tidbits about archives and erotica first, via my associates at booktruck.org, i came across a review of the comic book demonslayer v. . , by a certain marat mychaels, et al. at comics should be good. while the fact that the reviewers pan the comic book seems only marginally of interest to those of us wading in archivy, i should draw your attention to a specific part of this issue. apparently one of the characters goes to visit the director of archives at the new york museum of natural history, who has chosen to decorate his office in the style of some seemingly life-sized works by (fellow peruvian) boris vallejo. secondly, everyone knows how much of a pain digital preservation is, particularly in terms of born-digital cultural materials. so, who should archivists and curators look to for guidance? kurt bollacker, digital research manager at the long now foundation (and formerly of the internet archive), holds up the pornography industry as a potential leader of the pack. possible archivesblogs downtime: software upgrade i finally noticed that feedwordpress, the plugin i use to maintain archivesblogs, has been updated within the last month to work with wordpress . and higher. i hope to get this working pretty soon, but i apologize in advance if it ends up going down for a few days. throwing out the baby, the bathwater, and the bathtub: the sad state of the archives and archivists listserv today, nancy beaumont, executive director of the society of american archivists, made an announcement on the archives & archivists listserv that saa would no longer retain the first thirteen years of posts from the listserv. during this time the listserv was hosted by miami university of ohio, and last september, the list was moved to an saa server. this stems from a decision made by saa council that they not retain the archives for three reasons: ) an appraisal decision informed by the saa's archives at the university of wisconsin - milwaukee, ) a consideration of administrative issues, and ) a consideration of cost. while the appraisal decision is well-informed by the claim that the list archives do not have evidential value as saa records, the belief that these records have little informational value does not sit well with me. the list archives document the development of archives becoming a stronger profession in the face of technology and the creation of a tight-knit social network. braindump i'm really behind on posting, and i apologize. there are a few action items that i should mention before i clear my brain to allow me to start posting things with actual content. archivesblogs moved, but mail to archivesblogs.com was not working for a while. a few people mentioned this to me, but i didn't get this resolved until just last week. after who knows how many attempts trying to get something posted on boing boing, i finally made it when i had more information about the hottest chili peppers in the world. i now have a food blog, so if you're interested, check it out. it's called feeding the hungry ghost. now that that stuff is out of the way, i can start posting about "important" things again, like my trip to georgia for code lib . tomato "foam"? i know, i know - you're probably thinking "foams are so over," regardless which side of the molecular gastronomy fence you sit on. if you're a fan of the strange powders and physical state changes of food, you might be saying "c'mon, everybody knows that espuma is the new foam!" yeah, right - and aire is the new espuma. they're all pretty much the same thing, and you've got to be bullshitting yourself if you think that adrià and his ilk don't know this already. if you're convinced that all this stuff is mumbo jumbo designed to take away from traditional technique, then fine. i don't particularly care either way. i made a foam that wasn't really a foam ... or was it? i was bored tonight when i was about to make supper for myself. yesterday i got a whole bunch of free samples from national starch, but i haven't really been able to do anything with them since i've left them sitting in my office. eatin' fresh and (mostly) raw i left work early yesterday for a doctor's appointment, which left little time for lunch. on the way there, i snacked on some almonds and raisins to tide me over. by the time i finally got done with the tests and consultation my stomach was making unholy groans that sounded like ghosts were plaguing my gi tract. since there were a few things i wanted to pick up anyhow, i headed to whole foods and stopped by the deli first to get a sandwich. for what it's worth, i got the "tuna niçoise" sandwich, which wasn't all that niçoise (it tasted alright, though). despite warnings of the possibility of olive pits listed on the wrapper, i couldn't find a single piece of olive anywhere close to it except in another area of the deli case. the sandwich was much larger than the amount of food i've become used to eating in one sitting, so i roamed the aisles stuffed to the gills with tuna, bread, green beans, and hardboiled eggs. adventures in fermentation: yogurt for beginners i decided somewhat spontaneously to make my own yogurt after casually reading about the process and realizing how incredibly simple it is. after consulting a wide variety of sources - both print and electronic, like any good information professional would - i set to the task at hand. mise en place a large stainless steel or aluminum saucepan a large stainless steel, aluminum, unglazed ceramic, or heat-resistant glass bowl a large wooden or stainless steel spoon a kitchen thermometer a heating pad towels a ladle containers for storing the finished yogurt ingredients quart of high-quality, organic milk pint of organic heavy cream (if so desired) / to / cup organic yogurt with live cultures (see below) some, but not all, of the directions that i read suggested that you sterilize all equipment before you begin making the yogurt by immersing it in boiling water. if you decide to do so, i would strongly suggest that you avoid using plastic containers to store the yogurt. archivesblogs on the move thanks to the wonderful people at ibiblio, archivesblogs will be changing hosts! if you're not familiar with ibiblio, it's one of the largest and oldest public digital library collections on the internet. in addition to the upcoming hosting of archivesblogs, ibiblio also hosts librarian.net and library web. pardon any interruptions in access given the impending move; everything should be settled within a few days. also, a few changes i've made to the backend should fix most of the continuing issues with certain feeds not aggregating. let me know if there are any problems that still occur. archivesblogs revamped after many late nights toiling away, i'm done with the latest version of archivesblogs. i've changed things quite a bit - most notably, i've switched platforms from plagger to wordpress using the feedwordpress plugin to do the heavy lifting of syndication. i've decided to do away with the old opml structure as well since the taxonomy wasn't as refined as i would have liked. instead, feedwordpress can categorize posts as they come in, which has allowed me to create a brand new taxonomy for archivesblogs based on language. each language can also have its own feed now. the one thing missing that i'm really itching to put back in place are the social bookmarking links; none of the plugins i've come across so far seem to like my theme, so i may just end up writing my own plugin. anyhow, please give me feedback - i'm itching to do more. is open data the point? i've been thinking about the biblioblogosphere's reaction to casey bisson's decision to use the $ , he was awarded by the mellon foundation for his work on wpopac to purchase lc bibliographic data and open it up to anyone who wanted to take a crack at it. yes, this is a "good thing," and valuable to the library community as a whole, but i feel like there are some things we're overlooking. dan chudnov and i seem to agree, but i'm not going to go so far to damn those who herald this as a "new era." it's a little premature to say where it will go, but i have to admit that i'm occasionally confused and often a little bit insulted by some of the talk surrounding this issue. i wonder how interesting all the bibliographic data of lc is to begin with. what's in the dump paid for by the mellon award money? i'd guess monographs and serials, and probably audiovisual materials. the state of open source archival management software it's been a while since i've written here, but other responsibilities at both at home and work have kept me busy. to get back into the swing of writing regularly, i thought i'd take a look at one of the biggest hot-button topics in archives this year: the development and release of open source archival management systems. between this year's and last year's saa conferences, there were three sessions that, at least in part, dealt with the development of open source software for archives. in turn, this reflected the three major projects that archivists have been developing: archivists' toolkit, archon, and ica-atom. archivists' toolkit is the oldest of the three projects; the first meeting and project proposal date from . it may very well be the best funded of the three projects, as it received a $ , grant from the mellon foundation. however, it also seems to be the least mature, in my opinion, as i've not seen a live demo that's publicly accessible. marac friday afternoon report the mid-atlantic archivists are in a brief recess between now and the final session of the day, and it's been thoroughly interesting to say the least. i missed the caucus meetings this morning, unfortunately, but the plenary session was well worth it because it's got the gears turning about archival access systems even though it wasn't directly about them. paul israel of the edison papers project spoke at length about edison's legacy and collaboration with others. the talk emphasized that thomas edison was much more than a great inventor and owed a great deal of his success to his entrepreneurial nature, which i didn't know much about. while we didn't get to see him give us an interactive presentation of the site, i noticed how exhaustive the digital edition was. while the architecture of the site is a little confusing for me, there's so much content i didn't know where to begin or even what to search for! the series notes are a great way to browse through the collection, though. morristown calling: marac fall meeting i'm at the westin governor morris in morristown, new jersey for the marac fall meeting. i just got back from visiting the morris museum with a few folks, and now i'm enjoying the (expensive) wireless connection here. this time around i don't know so many folks here, so shoot me an e-mail or comment if you're in attendance. expect a more detailed post soon; i'm exhausted from being up early to catch amtrak! library camp east post-mortem i know this post is well overdue, but the last few weeks have kept me extremely busy. library camp east was amazing; fun, thought-provoking, and inspiring. john blyberg and alan kirk gray (as well as the rest of the darien library staff) did a heck of a job preparing for all of us descending into the auditorium. they even gave me a cool mug that my co-workers envy. i also finally got to meet dan chudnov and casey bisson, whose blogs i've followed for a while now. jessamyn west and john posted nearly exhaustive lists of posts by lce attendees for reference. (for what it's worth, jessamyn also tips her hat to archivesblogs and apologizes for us not meeting at two conferences so far. i share the blame!) fortunately for my readers, i have precious little to add in terms of comments (although i tagged some library camp-related links on unalog). i actually was called into service to lead a session by accident (i happened to be scratching my nose), but i was happy enough to moderate the discussion on how techies and non-techies can learn to talk to each other. archivesblogs . after doing some frantic hacking this week i'm happy to announce that i've unveiled the second major revision to archivesblogs. other than a change in color, i have added the subscription list in the sidebar using a slightly modified version of dan mctough's optimal browser for opml.the opml file it renders is also the subscription list used by plagger. anyhow, let me know what you think. i'm sure there are some kinks that need to be ironed out. i'm off to library camp east early tomorrow (a : am train out of dc). i hope to write-up a post-mortem soon after. on what "archives blogs" are and what archivesblogs is not i had fully earmarked addressing thomas g. lannon's "archive blogs" post on documenting sources, his blog, for over a week now after discovering it in my requisite vanity search of technorati. other things (even reading) have kept me busy, though, hence the unintentional neglect. i've had plenty of time to reflect upon it at this point, so i might as well respond to some of his points. he first asks the following: what is an archive blog? this should be a crucial question as the growing field of "blogs about archives" offers up posts stretching from the recent saa conference to south carolina gamecocks. perhaps it would it be helpful to make a distinction between official blogs relating to news and services from archival repositories and personal blogs written by people who happen to work in archives? it is an important question indeed. when i came up with the idea for archivesblogs (and when i was still calling it " saa session proposal: the changing nature of description and opacs during the description section meeting at this year's saa conference, i made an informal proposal for a session concerning the changing nature of opacs, changes in the library cataloging world, and the impact of those on descriptive practice in archives and manuscript repositories. i'd like to invite any of you, if you're interested, to let me know if you'd be interested in assisting me with putting together a proposal on this topic. a small group of us met briefly after the description section meeting and discussed the possible formats and areas of discussion. we determined that a seminar-style discussion seemed most appropriate, with perhaps a brief presentation on a specific area presented by the panelists on a given aspect of these issues. possible areas for presentation and discussion include: the changing nature of the opac in the library world: open-source, problems with vendors, adding web . -like features (the "next generation of finding aids" session at this year's conference included good examples of this) the impact of changes at lc and the oclc/rlg merger: lc's decision to end creating series authority records, rumors of abandoning lcsh, decreased importance of cataloging in general to lc administrators, the future of nucmc and archivegrid the impact of meissner and greene's " coming soon: archivesblogs . ? after two weeks of use, plagger has proven itself to be pretty resilient. i've been asking myself how i can make archivesblogs even better, and i've finally got a few ideas. a site redesign. i'd like different colors. categorizing the feeds, e.g. separating blogs by individuals from repository blogs. this will probably end up with me creating a couple of plagger configurations and dumping them into different subdirectories on archivesblogs. better support for tags. it'd be nice to pull them out and have automagically linked technorati tags. scrubbing html from the feeds to create valid xhtml for the syndication page(s). plagger supports the perl module html::scrubber so it seems. this is a big deal to someone like me. adding a directory - most likely in opml - for as many blogs about archives and archivists as possible since it's just not possible to do that for some blogs using plagger. the most straightforward example are archives with blogs that are part of a library-wide blog and therefore don't have their own feeds. archivesblogs news: disappearing blogspot blogs archivesblogs has been going strong for over a week now. if you use blogspot and had a blog previously syndicated by archivesblogs, your content may be temporarily unsyndicated. the specific problem is http error, which seems to indicate a problem with a proxy server at blogspot. in any rate, they should return soon enough -- it would be nice to have the blogs back! archivesblogs update: service links i've upgraded plagger (the software behind archivesblogs) to the latest version and it's allowed me to add service links to del.icio.us, unalog, digg, reddit, and technorati. i suppose i could add more (ma.gnolia, furl, etc.), but i'll hold off doing that for the sake of cluttering the interface for the time being. if you have any service links you'd like to see, let me know and i might be able to hack something together. announcing archivesblogs since my last post about syndicating blogs about archives, i've played around with the idea and different software packages to do it, including planet and plagger. i'm happy to announce that after a few days work i was able to put something together. archivesblogs is an aggregator for blogs about archives. it runs plagger and updates hourly, outputting html, rss, atom, opml (for import into other aggregator), and a foafroll. the site design is simple, but i'm happy with it. i took whatever archives blogs i knew about and added them, so if you know of any others or you want yours removed, let me know. syndicating archives blogs i still haven't had enough time to process everything i took in or ideas i came up with as a result of the saa conference. many were more diligent than i and i'm sorry to say i didn't meet them, but some highlights follow: geof huth took notes on the saa awards ceremony, christie peterson pitted archon against archivist's toolkit, jessamyn west blogged about her session on blogs, peter van garderen discusses his experience at the conference including his session on archives and web . , and merrilee proffitt from rlg mentioned the blog session and rlg roundtable. i'm not even up to speed on the rest of the archival blogs out there. in a stroke of genius and madness i've got an idea that i may put into motion. i'm thinking about setting up an instance of planet, a python-powered web-based news aggregator. it's pretty common in the floss world, and has been picked up by the code lib folks; they're running theirs as planet code lib. report from saa: archival solidarity and international cooperation the archival solidarity session was really great and generated a lot of dialog. it was originally organized by nancy marrelli of concordia university (montréal), but she couldn't make it on account of a family emergency. trudy huskamp peterson led the discussion in her place and did a wonderful job. essentially, archival solidarity is a project involving the ica's section of professional associations that concerns "international archival development" through bilateral projects. there are several major issues at play. first, existing methods of international development are not working for archival projects, either because of bureaucracy in general or archives being of lower priority in comparison to needs such as sanitation, adequate health care, and the like. we identified that one of the most critical aspects is the lack of communication or methods to share information. there is no central "hub," formal or informal, that allows archivists to share information about assistance needed or offered. the international fund for archival development (fida), coordinated by the ica, was supposed to serve as such, but apparently operational issues prevent it from working effectively. report from saa: give me free wifi i'm at the hilton washington, the site of the saa conference. i've registered and picked up my free totebag. i, and others, have bemoaned the lack of connectivity in the conference area. wireless is only available in the lobby, so it seems, and it's rather pricy ($ . for hours or $ . for hours). i know archivists are often thought of as being technologically behind (whether we are is a pandora's box that i won't open in this post), but i feel that some sort of net access is necessary at every conference. i'm just barely able to get it through my cell phone, which is how i'm posting now. unfortunately, i get no reception on the conference floor so i needed to make my way up to the lobby anyhow. i missed the standards committee meeting since i was a little late and i didn't want to barge in since the doors were closed. it's nearly time for the archival solidarity session, which sounds interesting to me since i'd like to get involved in ica. conference time i'm one of several bloggers attending the saa conference the rest of this week. nothing against cosa or nagara, but i'm attending the conference for the organization to which i belong. my schedule is pretty packed, and if you're one of us be sure to attend the description section meeting since i'm running for vice-chair. socketscdr audio zine out soon! i'm going to be on the latest installment of the socketscdr audio zine, curated this time around by rebecca mills of the caution curves. sean, the socketscdr label honcho, just posted the cover artwork for it and it looks like a great line-up, including friends like the plums and stamen & pistils. this will be my first release in a while (other than the collab cd with myself, cotton museum, and actual birds on casanova temptations). more details will follow, naturally. upgrading kubuntu breezy to dapper upon hearing about yesterday's release of kubuntu . , i decided to upgrade from the previous release, kubuntu . . i'd like to say that it went off without a hitch, but it didn't. it did, however, go mostly well, and i realized that my problem was that i continued to use applications while adept installed the new packages. i couldn't install all the packages, and i ended up with a minorly disfunctional kernel that wouldn't allow ndiswrapper to load properly, preventing me from using my internal wireless card. once i rebooted (and used a spare pcmcia wireless card to gain connectivity), i was able to finish installing the rest of the packages that had not finished properly and rebooted again. everything pretty much worked, but i'm having to tweak some lost settings, most notably in kmail. other than that, it's been working out fine! rlg + oclc = clog roc? the technical services world has been in an uproar lately, between lc's decision to stop creating series authority records (particularly since they didn't consult pcc members beforehand) and the fallout after calhoun report. we might as well have another drink, because as librarian.net reports (along with several others), oclc and rlg are about to merge. it's mindblowing to think that rlg employees did not find out any sooner than the rest of us, and that either organization has yet to consult its members. however, rlg plans to do so, but it will be interesting to see how this pans out. in particular, some folks worried about the merging of data and the future of redlightgreen. i know it's not considerably better, but they seem to be overlooking open worldcat. change of platform nearly a year ago i switched from wordpress to drupal. i chose to switch back, partially because it was capable of doing way more than i needed it to! i thought i didn't want to be limited by blog software, but apparently that's not a terribly huge concern anymore. the old site had frightfully little content (three posts in dalliance, a few personal posts, and links to papers). i'm redoing my non-blog site with purls since i don't have access to an e-prints server to which i can upload my varied previous academic work. anyhow, the important stuff is soon to come, with dalliance possibly moving to another host (probably wordpress.com). anything linking to one of the papers or my code snippets will be edited as needed. an updated version of nick gerakines' mail rss.pl a little over a month ago, nick gerakines posted a perl script to be called from a procmail configuration file. it seemed to work pretty well, but the anal-retentive cataloger/standards geek in me decided to pass the results through a feed validator. it failed in a few key areas: missing version attribute in the rss tag, improper guid and link tags, and a pubdate with a non-rfc date. these all seemed pretty easy to fix, so i went ahead and made some changes. my fixes are a bit inelegant, but they create valid rss . . it was pretty trivial to add an rss version number and to fix the guid error; the latter just required adding the ispermalink="false" attribute to that tag. however, nick's original code required parsing the pubdate tags to determine when to kill data that was over hours old. i didn't want to be bothered parsing an rfc date with this, so i moved that information into a category tag. mid-november updates: dalliance off the ground! site changes galore! dc not bad! i've finally gotten around to doing some serious work on the site. i've completed the first post for my defunct blog, and it's about one of my favorite songwriters ever, dr. franklin bruno. i've also figured out some of the odd intricacies of drupal and am finally getting this site to have a look and feel of which i can be proud. i've settled in nicely to washington, dc, and i'm living in a decent area of town within a reasonable interest of a decent watering hole, groceries, and the metro. halloween has come and gone; i dressed up as everyone's favorite st. vitus dancer, ian curtis, complete with requisite noose. my friend corey took similar cues as far as the era and scope of his costume, and chose to dress up as henry rollins. the weather has stayed mostly warm, so i've been spoiled on that front too. more changes are coming soon, so stay alert. off on my way: in transition to washington, dc i'm pleased to announce that i will be joining the staff of the national anthropological archives and human studies film archives of the smithsonian institution's department of anthropology as a project archivist. i will have two initial primary responsibilities: cataloging plains indian ledger art for the non-profit artstor project, and original cataloging and bibliographic enhancement of audio, film and video collections in support of the naa's new endangered languages program. this program also collaborates with the university of utah's center for american indian languages and is also part of the documenting endangered languages project, supported by the national science foundation and the national endowment for the humanities. i will be starting work for the naa/hsfa on september , , and will be working on a month term contract. samvera wiki {"serverduration": , "requestcorrelationid": " ac cfd "} libraries | university of cincinnati skip to main content use the form to search uc's web site for pages, programs, directory profiles and more. libraries online library for faculty for graduate students for undergraduates for staff libraries archives and rare books about the archives and rare books library annual summary research policies staff faqs desiderata collections urban studies rare books university archives german americana local government records search arb collections records management disposal submission form online exhibits special projects services genealogy research image reproduction and use archives and rare books teaching support internship program ccm ccm catalog search ccm research about the ccm library ccm staff directory ccml faqs ccm services ccm special-collections ceas about ceas library history floor plan guide for new faculty course research guides research resources ask a librarian tutorial videos senior design reports special collections the armstrong collection the cooperative engineer the strauss collection contact us ask a librarian reserve a room cech about faculty & staff our collections borrowing guidelines find us services poster printing reserves instruction resources makerlab technology for checkout study spaces info commons chemistry-biology about staff oesper history of chemistry collection services getting around the library ask a librarian classics about the classics library classics library guide snapshot of the classics collections highlights of classics books classics collection development policy why a classics library? classics book of the month classics library's open access link of the month classics library book desiderata virtual tour of the classics library usage statistics staff directory recent book acquisitions classicizing cincinnati classics library policies classics library collections german classics dissertations modern greek journal collection classics map collection greek rare book collection latin rare book collection classics books with author signatures uc department of classics archive classics library services group study room in classics scanners, printers, copiers in classics tours and drop-ins classics library picture gallery daap collections architecture drawings related regional libraries exhibits instruction services study rooms contact us daap library covid- updates geology-mathematics-physics about the library history getting around the library help ask-a-librarian help for faculty help for students help for undergraduate students services new books special collections rare book collection willis g. meyer map collection guidebook collection health sciences services membership room reservations borrow hsl-it research help hsl history hsl directions hsl staff directory winkler center about cecil striker society & lecture resources services langsam law uc blue ash about the ucba library ucba library faculty & staff ucba library policies vision and core values annual reports student employment at ucba library covid- services faqs borrowing materials at ucba library borrowing & returning reserves equipment lending study spaces resources for ucba faculty and staff course reserve guidelines collections library liaison program space reservations teaching support ask the ucba library uc clermont library about uc clermont library student employment support the library collection development contact us - faqs borrow materials technology & equipment textbook reserves study spaces policies and guidelines teaching support information literacy course materials course reserves ask uc clermont winkler center other area libraries ask find, request, borrow search for materials call number locator (langsam library) borrow materials borrow equipment renew materials request materials reserves e-reserves faculty guidelines traditional course reserves reserves - contacts copyright resources textbook affordability help finding and using materials interlibrary loan special collections faq digital collections research & teaching support research data services lab spaces workshops and education meet the team uc data day data & computational science series data tools testimonials data visualization showcase digital scholarship center citing sources copyright repositories subject librarians uc press teaching support workshops & trainings ask a librarian online reference shelf library materials for online teaching spaces & tech room reservations adaptive technologies library media space student technology resources center borrow equipment about covid- click & collect health and safety protocols hours and locations contact us employment ohiolink-luminaries staff directory giving adopt-a-book funding donors strategic plan tenets pillars ten initiatives news and events policies acceptable use gift policy source library faculty resources for library faculty library faculty directory dean's welcome core beliefs login off campus access affiliate and guest access help and troubleshooting tools vpn interlibrary loan interlibrary lending policies my library record pay fines fine appeal form articles books journals databases search summon to find articles, books, and more advanced summon search | find by doi or pmid | more search options |help search the library catalog for books and more advanced catalog search | guest access |  more search options | help find e-journals or print journals e-journals | print journals | browzine | more search options | help search the a-z indexes databases list browse databases | top databases | academic search complete | more search options uc online library whether onsite or online, we continue to connect students, faculty, researchers and scholars to dynamic data, information and resources. uc online library service updates off campus access contact us interlibrary loan research guides browse all guides spring return to campus as we step into spring term , our motto “strength in unity” continues to take on added meaning. health and safety remain a top priority in an environment featuring virtual, hybrid, hyflex and in-person classes, testing as a critical component toward a safer community as well as remote work options. visit uc's public health site online library searching for a resource, have a question or simply browsing for fun? we've brought all online resources together in one place. online library digital technologies & innovation uc libraries creates and utilizes learning tools and research platforms that transform the user experience and the creation of new knowledge. special collections uc libraries preserves and provides access to special collections and the scholarly and historical record of the university, including archival as well as born-digital content and datasets. view   with . million volumes and access to thousands of electronic resources available / through our online library catalog, uc libraries' virtual and physical locations offer resources for everyone. uc libraries includes the walter c. langsam library, the archives and rare books library, the donald c. harrison health sciences library, and eight college and departmental libraries serving constituents in applied science, architecture, art, biology, chemistry, classics, design, education, engineering, geology, mathematics, music, physics and planning.   give to uc libraries library news "off the shelf and into the lab" webinar may april , event: may , : pm join the henry r. winkler center for the history of the health professions and the cecil striker society for the history of medicine at p.m., wednesday, may , for the third lecture in the cecil striker webinar series. faculty awards : arlene johnson april , through her many roles in her years at the university of cincinnati, arlene johnson has served students, faculty and staff in the pursuit of knowledge — fitting for the recipient of the faculty senate exemplary service to the university award. ‘can uc my mask’ canned food sculpture temporarily installed in... march , the masked bearcat is showing school pride while reminding everyone to stay safe by wearing a mask. debug query for this more news library blog news from the library blog ucba library needs you!  now hiring for summer semester  fri, apr ucba library needs you!  now hiring for summer semester  are you…  friendly and welcoming?   eager to help students, staff and faculty?   if so, consider joining the ucba library team!   apply:  https://libraries.uc.edu/libraries/ucba/about/employment.html    april service note: access to library resources is currently down tue, apr update: all access has been restored. ________________________________ all access to library resources through the proxy server is currently down. oclc is working on the issue and we expect a resolution shortly. we apologize for the inconvenience. if you know the resource url you are attempting to access, try this page: https://libapps.libraries.uc.edu/proxy/proxygoto.php. the url for the […] the preservation lab celebrates preservation week : preservation in action mon, apr join the preservation lab april - as they celebrate the american library association’s (ala) preservation week, “preservation in action.” more information, including a schedule of the week’s events, is available on the preservation’s blog. “off the shelf and into the lab” may th webinar to highlight medical history, preservation and the uc libraries’ adopt-a-book program wed, apr join the henry r. winkler center for the history of the health professions and the cecil striker society for the history of medicine, thursday, may at : p.m. for the rd lecture in the cecil striker webinar series. off the shelf and into the lab: medical history, preservation and the university of cincinnati libraries’ […] ending the hiv epidemic, a panel discussion april mon, apr join uc libraries online wednesday, april , : p.m. for “ending the hiv epidemic,” a panel discussion. learn from various cincinnati area hiv/aids service providers about how long-standing hiv prevention efforts combined with education on treatment, viral load suppression and concerted efforts by multiple agencies are being utilized to make hiv infection a thing of […] university of cincinnati libraries po box cincinnati, ohio - contact us | staff directory uc tools canopy & canvas one stop email catalyst shuttle tracker it help uc vpn bearcats landing about us maps & directions jobs news diversity governance & policies directory events calendar university of cincinnati | clifton ave. | cincinnati, oh | ph: - - alerts | clery and heoa notice | notice of non-discrimination | eaccessibility concern | privacy statement | copyright information © university of cincinnati university of cincinnati libraries po box cincinnati, ohio - contact us | staff directory © university of cincinnati chat loading... inkdroid toggle navigation inkdroid about bookmarks photos music software social talks - - ~ - - ~ twarc - - ~ $ j - - ~ strengths and weaknesses - - ~ data speculation - - ~ recovering foucault - - ~ teaching oop in the time of covid - - ~ gpt- jam - - ~ mimetypes - - ~ northwest branch cairn - - ~ blow back derelict wind - - ~ outgoing - - ~ trump's tweets - - ~ noarchive - - ~ what's the diff? - - ~ for - - ~ diss music - - ~ years of robots.txt - - ~ curation communities - - ~ mystery file! - - ~ kettle - - ~ static-dynamic - - ~ dark reading - - ~ seeing software - - ~ curating corpora - - ~ fuzzy - - ~ penny - - ~ fuzzy file formats - - ~ pandoc - - ~ fuzzy matching - - ~ less is (sometimes) more - - ~ teaching digital curation - - ~ rss - - ~ organizations on twitter - - ~ bibdesk, zotero and jabref - - ~ disinformation metadata - - ~ equipment - - ~ twitter - - ~ music for hard times - - ~ digital curation - - ~ dependency hell - - ~ keyboard - - ~ tech tree - - ~ appraisal talk in web archives - - ~ talk talk - - ~ original voice - - ~ write it down - - ~ sun and moon - - ~ first thought - - ~ studying the covid- web « prev next » unless otherwise noted all the content here is licensed cc-by brown university library digital technologies brown university library digital technologies bundler . . and homeless accounts this week we upgraded a couple of our applications to ruby . and bundler . . and one of the changes that we noticed was that bundler was complaining about not being able to write to the /opt/local directory. turns out this problem shows up because the account that we use to run our application is &# ; continue reading bundler . . and homeless accounts upgrading from solr to solr a few weeks ago we upgraded the version of solr that we use in our discovery layer, we went from solr . to solr . . although we have been using solr .x in other areas of the library this was a significant upgrade for us because searching is the raison d&# ;être of our discovery layer &# ; continue reading upgrading from solr to solr pypi packages recently, we published two python packages to pypi: bdrxml and bdrcmodels. no one else is using those packages, as far as i know, and it takes some effort to put them up there, but there are benefits from publishing them. putting a package on pypi makes it easier for other code we package up to &# ; continue reading pypi packages new riamco website a few days ago we released a new version of the rhode island archival and manuscript collections online (riamco) website. the new version is a brand new codebase. this post describes a few of the new features that we implemented as part of the rewrite and how we designed the system to support them. the &# ; continue reading new riamco website deploying with shiv i recently watched a talk called &# ;containerless django &# ; deploying without docker&# ;, by peter baumgartner. peter lists some benefits of docker: that it gives you a pipeline for getting code tested and deployed, the container adds some security to the app, state can be isolated in the container, and it lets you run the exact &# ; continue reading deploying with shiv checksums in the bdr, we calculate checksums automatically on ingest (fedora provides that functionality for us), so all new content binaries going into the bdr get a checksum, which we can go back and check later as needed. we can also pass checksums into the bdr api, and then we verify that fedora calculates the &# ; continue reading checksums exporting django data we recently had a couple cases where we wanted to dump the data out of a django database. in the first case (&# ;tracker&# ;), we were shutting down a legacy application, but needed to preserve the data in a different form for users. in the second case (&# ;deposits&# ;), we were backing up some obsolete data before &# ; continue reading exporting django data searching for hierarchical data in solr recently i had to index a dataset into solr in which the original items had a hierarchical relationship among them. in processing this data i took some time to look into the ancestor_path and descendent_path features that solr provides out of the box and see if and how they could help to issue searches based &# ; continue reading searching for hierarchical data in solr monitoring passenger’s requests in queue over time as i mentioned in a previous post we use phusion passenger as the application server to host our ruby applications. a while ago upon the recommendation of my coworker ben cail i created a cron job that calls passenger-status every minutes to log the status of passenger in our servers.  below is a sample &# ; continue reading monitoring passenger&# ;s requests in queue over time looking at the oxford common filesystem layout (ocfl) currently, the bdr contains about tb of content. the storage layer is fedora , and the data is stored internally by fedora (instead of being stored externally). however, fedora is end-of-life. this means that we either maintain it ourselves, or migrate to something else. however, we don&# ;t want to migrate tb, and then have &# ; continue reading looking at the oxford common filesystem layout (ocfl) none lita blog – empowering libraries through technology lita blog empowering libraries through technology toggle navigation about regular contributors get involved! join lita lita jobs jobs in information technology: august , august , august , | jenny levine new this week coordinator of digital scholarship and programs, marquette university libraries, milwaukee wi digital scholarship coordinator, unc charlotte, charlotte, nc visit the lita jobs site for additional job openings and information on submitting your own job posting. continue reading lita jobs jobs in information technology: august , august , august , | jenny levine new this week information systems manager (pdf), the community library association, ketchum, id children’s librarian, buhl public library, buhl, id technology integration librarian, drexel university libraries, philadelphia, pa visit the lita jobs site for additional job openings and information on submitting your own job posting. continue reading core update your core community update august , | chrishelle thomas much has been happening behind-the-scenes to prepare for core’s upcoming launch on september st, so we want to update you on the progress we’ve made. at the ala virtual conference council meetings, the ala council approved the creation of core, so we’re official! it’s been a difficult summer for everyone given the global situation, but this was a milestone we’re excited to reach. what we’ve been doing in may, the core transition committee (the division presidents plus senior staff) formed working groups of members from all divisions to make recommendations about how to proceed with our awards/scholarships, budget/finance, committees, communications, conference programming, continuing education, fundraising/sponsorships, interest groups, member engagement, nominations for president-elect, publications, and standards. these groups have done an amazing amount of work in a very short time period, and we’re grateful to these members for their commitment and effort. we’re happy to report… continue reading education free lita webinar ~ library tech response to covid- ~ august th july , | chrishelle thomas sign up for this free lita webinar: library tech response to covid- libraries are taking the necessary precautions to create a safe environment during the pandemic. social distancing isn’t the only solution, but providing access to loanable technologies, including handling and quarantine of equipment, cleaning, and other safety and health concerns are just some of the measures put in place. with the ongoing disruption to library services caused by covid- , what reopening planning policies should be considered for usage? in this free -minute presentation, our presenters will share tips that might be helpful to other librarians before they reopen. the presenters will also talk about the evolution of the phased plan from the establishment of a temporary computer lab in the library as covid- began to spread in march , to the current phased approach for gradual reopening. justin will also offer insight into managed access, technology and services, workflows, messaging,… continue reading lita jobs jobs in information technology: july , july , | jenny levine new this week library director, walpole town library, walpole, nh visit the lita jobs site for additional job openings and information on submitting your own job posting. continue reading program planning core call for ala annual program proposals july , | chrishelle thomas submit an ala annual conference program proposal for ala’s newest division, core: leadership, infrastructure, futures, which will begin on september , . proposals are due september , , and you don’t need to be a core member to submit a proposal. submit your idea using this proposal form. core welcomes topics of interest to a wide range of library professionals in many different areas, including… . access and equity advocacy in areas such as copyright, equity of access, open access, net neutrality, and privacy preservation week equity, diversity, and inclusion, both within the division and the profession, as related to core’s subject areas . assessment emphasizing the role of assessment in demonstrating the impacts of libraries or library services assessment tools, methods, guidelines, standards, and policies and procedures . leadership and management developing leaders at every level best practices for inclusion by using an equity lens to examine leadership… continue reading education core call for webinar proposals july , | chrishelle thomas submit a webinar proposal for ala’s newest division, core: leadership, infrastructure, futures, which will begin on september , . proposals are due september , , and you don’t need to be a core member to submit a proposal. early submissions are encouraged and will be considered for september and october presentations. submit your idea using this proposal form. core webinars reach a wide range of library professionals in many different areas, including… . access and equity advocacy in areas such as copyright, equity of access, open access, net neutrality, and privacy preservation week equity, diversity, and inclusion, both within the division and the profession, as related to core’s subject areas . assessment emphasizing the role of assessment in demonstrating the impacts of libraries or library services assessment tools, methods, guidelines, standards, and policies and procedures . leadership developing leaders at every level best practices for inclusion by using an equity lens to examine… continue reading core virtual forum core virtual forum is excited to announce our keynote speakers! july , july , | chrishelle thomas core virtual forum welcomes our keynote speakers, dr. meredith d. clark and sofia leung! both speakers embody our theme in leading through their ideas and are catalysts for change to empower our community and move the library profession forward. dr. clark is a journalist and assistant professor in media studies at the university of virginia. she is academic lead for documenting the now ii, funded by the andrew w. mellon foundation. dr. clark develops new scholarship on teaching students about digital archiving and community-based archives from a media studies perspective. she will be a - fellow with data & society. she is a faculty affiliate at the center on digital culture and society at the university of pennsylvania. and, she sits on the advisory boards for project information literacy, and for the center for critical race and digital studies at new york university. clark is an in-demand media consultant… continue reading ital catch up on the june issue of information technology and libraries july , | chrishelle thomas the june issue of information technology and libraries (ital) was published on june . editor ken varnum and lita president emily morton-owens reflect on the past three months in their letter from the editor, a blank page, and lita president’s message, a framework for member success, respectively. kevin ford is the author of this issue’s “editorial board thoughts” column, seeing through vocabularies. rounding out our editorial section, the june “public libraries leading the way” section offers two items. chuck mcandrew of the lebanon (new hampshire) public libraries describes his leadership in the imls-funded libraryvpn project. melody friedenthal, of the worcester (massachusetts) public library talks about how she approached and teaches an intro to coding using python course. peer-reviewed content virtual reality as a tool for student orientation in distance education programs: a study of new library and information science students dr. sandra valenti, brady lund, ting wang virtual reality… continue reading lita jobs jobs in information technology: july , july , july , | jenny levine new this week dean of libraries, san jose state university, san jose, ca deputy library director, city of carlsbad, carlsbad, ca visit the lita jobs site for additional job openings and information on submitting your own job posting. continue reading posts navigation older posts upcoming events bibliometrics for librarians presented by phillip doehle and clarke lakovakis on july , – july , virtual reality, augmented reality, mixed reality and the academic library presenters: dr. plamen miltenoff and mark gill offered: august , – august , core virtual forum visit our website for the latest updates on the core virtual forum in fall . recent posts jobs in information technology: august , jobs in information technology: august , your core community update free lita webinar ~ library tech response to covid- ~ august th jobs in information technology: july , archives archives select month august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january december november october september august july june may april march february january november october september august july june categories categoriesselect category a new division discussions ala annual conferences                                                                 ala midwinter meetings                                                     awards and scholarships begin transmission bigwig blogging help committees and interest groups core update education emerging technologies general information imagineering institutional repositories instruction and online learning legislation & regulation library experiences lita board of directors lita bylaws lita elections lita forums                                                        core virtual forum lita jobs lita officers news & noteworthy original content podcast president’s post program planning publications    ital roundup sf notables spotlight series standards watch sunday routines technical services top technology trends topic + reaction twitter chats uncategorized website management and user experience the blog of the library and information technology association privacy policy powered by wordpress | wordpress theme by tidyhive lita blog lita blog empowering libraries through technology jobs in information technology: august , new this week coordinator of digital scholarship and programs, marquette university libraries, milwaukee wi digital scholarship coordinator, unc charlotte, charlotte, nc visit the lita jobs site for additional job openings and information on submitting your own job posting. jobs in information technology: august , new this week information systems manager (pdf), the community library association, ketchum, id children&# ;s librarian, buhl public library, buhl, id technology integration librarian, drexel university libraries, philadelphia, pa visit the lita jobs site for additional job openings and information on submitting your own job posting. your core community update much has been happening behind-the-scenes to prepare for core’s upcoming launch on september st, so we want to update you on the progress we’ve made. at the ala virtual conference council meetings, the ala council approved the creation of core, so we’re official! it’s been a difficult summer for everyone given the global situation, but this was a milestone we’re excited to reach. what we’ve been doing in may, the core transition committee (the division presidents plus senior staff) formed working groups of members from all divisions to make recommendations about how to proceed with our awards/scholarships, budget/finance, committees, communications, conference programming, continuing education, fundraising/sponsorships, interest groups, member engagement, nominations for president-elect, publications, and standards. these groups have done an amazing amount of work in a very short time period, and we’re grateful to these members for their commitment and effort. we’re happy to report... free lita webinar ~ library tech response to covid- ~ august th sign up for this free lita webinar: library tech response to covid- libraries are taking the necessary precautions to create a safe environment during the pandemic. social distancing isn’t the only solution, but providing access to loanable technologies, including handling and quarantine of equipment, cleaning, and other safety and health concerns are just some of the measures put in place. with the ongoing disruption to library services caused by covid- , what reopening planning policies should be considered for usage? in this free -minute presentation, our presenters will share tips that might be helpful to other librarians before they reopen. the presenters will also talk about the&# ;evolution of the phased plan from the establishment of a temporary computer lab in the library as covid- began to spread in march , to the current phased approach for gradual reopening. justin will also offer insight into managed access, technology and services, workflows, messaging,... jobs in information technology: july , new this week library director, walpole town library, walpole, nh visit the lita jobs site for additional job openings and information on submitting your own job posting. core call for ala annual program proposals submit an ala annual conference program proposal for ala’s newest division, core: leadership, infrastructure, futures, which will begin on september , . proposals are due september , , and you don’t need to be a core member to submit a proposal. submit your idea using this proposal form. core welcomes topics of interest to a wide range of library professionals in many different areas, including… . access and equity advocacy in areas such as copyright, equity of access, open access, net neutrality, and privacy preservation week equity, diversity, and inclusion, both within the division and the profession, as related to core’s subject areas . assessment emphasizing the role of assessment in demonstrating the impacts of libraries or library services assessment tools, methods, guidelines, standards, and policies and procedures . leadership and management developing leaders at every level best practices for inclusion by using an equity lens to examine leadership... core call for webinar proposals submit a webinar proposal for ala’s newest division, core: leadership, infrastructure, futures, which will begin on september , . proposals are due september , , and you don’t need to be a core member to submit a proposal. early submissions are encouraged and will be considered for september and october presentations. submit your idea using this proposal form. core webinars reach a wide range of library professionals in many different areas, including… .&# ;access and equity advocacy in areas such as copyright, equity of access, open access, net neutrality, and privacy preservation week equity, diversity, and inclusion, both within the division and the profession, as related to core’s subject areas .&# ;assessment emphasizing the role of assessment in demonstrating the impacts of libraries or library services assessment tools, methods, guidelines, standards, and policies and procedures .&# ;leadership developing leaders at every level best practices for inclusion by using an equity lens to examine... core virtual forum is excited to announce our keynote speakers! core virtual forum welcomes our keynote speakers, dr. meredith d. clark and sofia leung! both speakers embody our theme in leading through their ideas and are catalysts for change to empower our community and move the library profession forward. dr. clark is a journalist and assistant professor in media studies at the university of virginia. she is academic lead for documenting the now ii, funded by the andrew w. mellon foundation. dr. clark develops new scholarship on teaching students about digital archiving and community-based archives from a media studies perspective. she will be a - fellow with data &# ; society. she is a faculty affiliate at the center on digital culture and society at the university of pennsylvania. and, she sits on the advisory boards for project information literacy, and for the center for critical race and digital studies at new york university. clark is an in-demand media consultant... catch up on the june issue of information technology and libraries the june issue of information technology and libraries (ital) was published on june . editor ken varnum and lita president emily morton-owens reflect on the past three months in their letter from the editor, a blank page, and lita president’s message, a framework for member success, respectively. kevin ford is the author of this issue’s “editorial board thoughts” column, seeing through vocabularies. rounding out our editorial section, the june “public libraries leading the way” section offers two items. chuck mcandrew of the lebanon (new hampshire) public libraries describes his leadership in the imls-funded libraryvpn project. melody friedenthal, of the worcester (massachusetts) public library talks about how she approached and teaches an intro to coding using python course. peer-reviewed content virtual reality as a tool for student orientation in distance education programs: a study of new library and information science students dr. sandra valenti, brady lund, ting wang virtual reality... jobs in information technology: july , new this week dean of libraries, san jose state university, san jose, ca deputy library director, city of carlsbad, carlsbad, ca visit the lita jobs site for additional job openings and information on submitting your own job posting. jobs in information technology: july , new this week web services librarian, chester fritz library, university of north dakota, grand forks, nd visit the lita jobs site for additional job openings and information on submitting your own job posting. jobs in information technology: june , new this week metadata librarian, librarian i or ii, university of northern british columbia, prince george, british columbia, canada visit the lita jobs site for additional job openings and information on submitting your own job posting. jobs in information technology: june , new this week information technology librarian,&# ;university of maryland, baltimore county, baltimore, md associate university librarian for research and learning,&# ;columbia university libraries, new york, ny library technology/programmer analyst iii,&# ;virginia beach public library,&# ;virginia beach, va visit the lita jobs site for additional job openings and information on submitting your own job posting. core virtual happy hour social ~ june our joint happy hour social at midwinter was such a success that next week we’re bringing happy hour to you online—and registration is free! we invite members of alcts, lita, and llama to join us on friday, june , : - : pm central time for virtual happy hour networking and/or play with your peers in a game of scattergories.&# ;wear your favorite pop culture t-shirt, bring your best zoom background, grab a beverage, and meet us online for a great time! attendees will automatically be entered to win free registration to attend the core virtual forum.&# ;winner must be present to redeem prize.&# ;registration is required. register now at: bit.ly/ nenprh michael carroll awarded lita/christian larew memorial scholarship michael carroll has been selected to receive the &# ;lita/christian larew memorial scholarship ($ , ) sponsored by the library and information technology association (lita) and baker &# ; taylor. this scholarship is for master’s level study, with an emphasis on library technology and/or automation, at a library school program accredited by the american library association. criteria for the scholarship includes previous academic excellence, evidence of leadership potential, and a commitment to a career in library automation and information technology. the larew scholarship committee was impressed by&# ;what michael has already accomplished and look forward to seeing what he will accomplish after graduation in .&# ;michael&# ;has already shown&# ;a strong interest in digitization projects.&# ;he currently manages&# ;a&# ;team of students working with digitization.&# ;previously, he has scanned and cataloged many collections.&# ;he has also assisted the presbyterian historical society&# ;in creating&# ;sustainable processes for digitization.&# ;michael has also shown his willingness and ability to work&# ;with a wide variety of&# ;projects and technologies that span&# ;both&# ;technical&# ;and non-technical&# ;including... we are back on twitter friday for #litachat the fourth in this series of #litachats will start on friday, june from - central standard time on twitter. we will be asking you to chat with us about self-care. what are you doing to take care of yourselves during this time? how do you unplug without feeling guilty?&# ; we hope you’ll join us for #litachat and chat about self-care techniques and figuring out how to better take care of ourselves during these tough times. we&# ;re looking forward to hearing from you! join lita on twitter catch up on the last #litachat join us for alcts/lita/llama e-forum! please join us for a joint alcts/lita/llama e-forum discussion. it’s free and open to everyone! registration information is at the end of the message, along with subscription management options for existing listserv members. continuing to manage the impact of covid- on libraries june - , moderated by alyse jordan, steven pryor, nicole lewis and rebecca uhl please join us for an e-forum discussion. it’s free and open to everyone! registration information is at the end of the message. each day, discussion begins and ends at: pacific: a.m. – p.m. mountain: a.m. – p.m. central: a.m. – p.m. eastern: a.m. – p.m. over the past several months, covid- has significantly impacted libraries and library technical service units and departments, including requiring staff to work remotely and determining what services they can provide. as states begin to reopen, libraries face challenges as they determine... together against racism ala and core are committed to dismantling racism and white supremacy. along with the ala executive board, we endorse the&# ;black caucus of the american library association (bcala)’s may statement&# ;condemning the brutal murder of george floyd at the hands of minneapolis police department officers. in their statement, bcala cites floyd’s death as “the latest in a long line of recent and historical violence against black people in the united states.” not only does core support the sentiments of bcala, we vow to align our values regarding equity, diversity, and inclusion with those of bcala and other organizations that represent marginalized communities within ala. we also stand strong with the asian/pacific american community, which has been the target of xenophobia and racism in the wake of the outbreak of covid- , and support the&# ;asian/pacific american librarians association (apala) and their statement&# ;that, “there is no excuse for discriminatory sentiments and actions towards asians... we are back on twitter tomorrow for #litachat are you ready for the next twitter #litachat? join the discussion on friday, may , from - pm central time. we will be asking you to tell us about challenges with working from home. are there things you can’t do and wish you could? are there issues with your home setup in general?&# ;anne pepitone will lead the discussion. we invite you to join us tomorrow to share your experiences and chat with your colleagues. follow lita on twitter catch up on the last #litachat we&# ;re looking forward to hearing from you! -the lita membership development committee lita job board analysis report – laura costello (chair, assessment & research) lita assessment & research and diversity & inclusion committees background &# ; data this report comes from a joint analysis conducted by lita&# ;s assessment &# ; research and diversity &# ; inclusion committees in fall . the analysis focused on the new and emerging trends in skills in library technology jobs and the types of positions that are currently in demand. it also touches on trends in diversity and inclusion in job postings and best practices for writing job ads that attract a diverse and talented candidate pool.&# ; the committees were provided with a list of job postings from the lita job board between - . data included the employer information, the position title, the location (city/state) the posting date. some postings also included a short description. the assessment &# ; research committee augmented the dataset with job description, responsibilities, qualifications, and salary information for a % sample of the postings from each year using archival job posting information. committee members also assigned... congratulations to dr. jian qin, winner of the lita/oclc kilgour research award dr. jian qin has been selected as the recipient of the &# ;frederick g. kilgour award for research in library and information technology, sponsored by oclc and the library and information technology association (lita). she&# ;is the professor and director at the ischool, syracuse university.&# ;&# ;the kilgour award honors research relevant to the development of information technologies, especially work which shows promise of having a positive and substantive impact on any aspect(s) of the publication, storage, retrieval and dissemination of information, or the processes by which information and data are manipulated and managed. it recognizes a body of work probably spanning years, if not the majority of a career. the winner receives $ , , and a citation. dr. qin’s recent research projects include metadata modeling for gravitational wave research data management and big metadata analytics using genbank metadata records for dna sequences, both with funding from nsf. she also collaborated with a colleague to develop a capability maturity model... lita/ala survey of library response to covid- the library and information technology association (lita) and its ala partners are seeking a new round of feedback about the work of libraries as they respond to the covid- crisis, releasing a survey and requesting feedback by : p.m. cdt, monday, may , . please complete the survey by clicking on the following link: https://www.surveymonkey.com/r/libraries-respond-to-covid- -may- .&# ; lita and its ala partners know that libraries across the united states are taking unprecedented steps to answer the needs of their communities, and this survey will help build a better understanding of those efforts. lita and its ala partners will use the results to advocate on behalf of libraries at the national level, communicate aggregated results with the public and media, create content and professional development opportunities to address library staff needs, and share some raw, anonymized data elements with state-level staff and library support organizations for their own advocacy needs.&# ; additional information about... #coreforum is now a virtual event! join your ala colleagues from across divisions for the forum, which is now a virtual event!&# ; where: in light of the covid- public health crisis, leadership within lita, alcts, and llama made the decision to move the conference online to create a safe, interactive environment accessible for all. what: call for proposals have been extended to friday june , .&# ; when: forum is scheduled november and , how: share your ideas and experiences with library projects by submitting a talk for the inaugural event for core:&# ; https://forum.lita.org/call-for-proposals for more information about the lita, alcts, llama (core) forum, please visit https://forum.lita.org&# ; jobs in information technology: may , new this week web services librarian, fairfield university, fairfield, ct visit the lita jobs site for additional job openings and information on submitting your own job posting. wfh? boost your skill set with lita ce! reserve your spot and learn new skills to enhance your career with lita online continuing education offerings. buying strategies for information technologywednesday, may&# ; , , : - : pm central timepresenter:&# ;michael rodriguez, collections strategist at the university of connecticut in this -minute webinar, you’ll learn&# ;best practices, terminology, and concepts for effectively negotiating contracts for the purchase of information technology (it) products and services. view details&# ;and&# ;register here. using images from the internet in a webpage: how to find and citewednesday, june&# ; , , : - : pm central timepresenter:&# ;lauren bryant, priority associate librarian of ray w. howard library in this -minute&# ;webinar, you’ll learn&# ;practical ways&# ;to quickly find and filter creative commons licensed images online, learn how to hyperlink a citation for a website, and&# ;how to use creative&# ;commons images for thumbnails in videos and&# ;how to cite the image in unconventional situations like this. view details&# ;and&# ;register here. troublesome technology trends: bridging the learning dividewednesday, june , , : - : pm... may / twitter #litachat last week, anne pepitone kicked off the discussion with zoom virtual backgrounds, shared her favorites, and provided tips on how to use them. the next twitter #litachat will be on friday, may , from - pm central time when we&# ;ll talk about apps that help you work from home. what do you use to help with project management, time management, deadlines, or to just stay focused? we invite you to join us tomorrow to share, learn, and chat about it with your colleagues. follow lita on twitter. we&# ;re looking forward to hearing from you! -the lita membership development committee jobs in information technology: april , new this week two associate dean positions, james madison university libraries, harrisonburg, va visit the lita jobs site for additional job openings and information on submitting your own job posting. data privacy while working from home today&# ;s guest post is brought to you by our recent presenter, becky yoose. special thanks to becky for being willing to answer the questions we didn&# ;t have time for during our webinar! hello everyone from your friendly neighborhood library data privacy consultant! we covered a lot of material earlier this month in &# ;a crash course in protecting library data while working from home,&# ; co-sponsored by lita and oif. we had a number of questions during the webinar, some of which were left unanswered at the end. below are three questions in particular that we didn’t get to in the webinar. enjoy! working from home without a web-based ils we don&# ;t have a web-based version of our ils and our county-based it department says they can&# ;t set up remote desktop (something to do with their firewall)… do you have any recommendations on how to advocate for remote desktop? if i have... strategies for surviving a staffing crisis library staff are no strangers to budget and staffing reductions. most of us have way too much experience doing more with less, covering unfilled positions, and rigging solutions out of the digital equivalent of chewing gum and bailing wire, because we can’t afford to buy all the tools we need. in the last two years, my department at northern arizona university’s cline library operated with roughly half the usual amount of staff. in this post, i’ll share a few strategies that helped us get through this challenging time. first, a quick introduction. my department, content, discovery &# ; delivery services, includes the digital services unit (formerly library technology services) as well as collection management (including electronic resources management), acquisitions, cataloging, physical processing, interlibrary loan and document delivery, and course reserves. we are a technology-intensive department, both as users and implementers/supporters of technology. here are some of the strategies we used to... april / twitter #litachat a lot has changed since we had our last twitter #litachat, core passed and then covid happened. we are all navigating new territory in our jobs and life overall. so we wanted to bring you a weekly set of litachats discussing our shared experiences during these strange times.&# ; the first in this series of litachats will start on friday, april from - pm central standard time. we will be asking you to show us your zoom virtual backgrounds! we know that zoom conferencing has been popular among many workplaces so we thought what would be better than showcasing some of the creative backgrounds everyone has been using. if you don’t have a background no worries, you can share about the best backgrounds you have seen from colleagues. don’t know how to turn on zoom virtual backgrounds? we will cover that too! we hope you’ll join us on twitter for... congratulations to samantha grabus, winner of the lita/ex libris student writing award samantha grabus has been selected as the winner of the  student writing award sponsored by ex libris group and the library and information technology association (lita) for her paper titled “evaluating the impact of the long s upon th-century encyclopedia britannica automatic subject metadata generation results.” grabus is a research assistant and phd student at drexel university metadata research center. &# ;this valuable work of original research helps to quantify the scope of a problem that is of interest not only in the field of library and information science, but that also, as grabus notes in her conclusion, could affect research in fields from the digital humanities to the sciences,&# ; said julia bauder, the chair of this year&# ;s selection committee. when notified she had won, grabus remarked, “i am thrilled and honored to receive the lita/ex libris student writing award. i would like to extend my gratitude to the award committee... jobs in information technology: april , new this week web and digital scholarship technologies librarian, marquette university libraries, milwaukee, wi ceo / library director, orange county library system, orlando, fl visit the lita jobs site for additional job openings and information on submitting your own job posting. ala lita emerging leaders: inventing a sustainable division in january , the latest cohort of emerging leaders met at ala midwinter to begin their projects. lita sponsored two emerging leaders this year: kelsey flynn, adult services specialist at white oak library, and paige walker, digital collections &# ; preservation librarian at boston college. kelsey and paige are part of emerging leaders group g, &# ;inventing a sustainable division,&# ; in which they’ve been charged with identifying measures that lita can take to improve its fiscal and environmental sustainability. as a first step in their assessment, the group distributed a survey to lita members that will quantify interest in sustainable measures such as virtual conferences and webinars. want to help? complete the survey to give feedback that may shape the direction of our chapter. group g is fortunate to have several other talented library workers on its team:&# ; kristen cooper, plant sciences librarian at university of minnesota tonya ferrell, oer coordinator at... latest in lita elearning so much has changed since covid- . online learning is in greater demand and we are working hard to provide you with resources and more professional development opportunities that strengthens the library community. we hope you are well and staying safe. there&# ;s a seat waiting for you. register today! digital inception: building a digital scholarship/humanities curriculum as a subject librarian wednesday, april , : &# ; : p.m. central time presenter: marcela isuster, education and humanities librarian, mcgill university this presentation will guide attendees in building a digital scholarship curriculum from a subject librarian position. it will explore how to identify opportunities, reach out to faculty, and advertise your services. it will also showcase activities, lesson plans, and free tools for digital publication, data mining, text analysis, mapping, a section on finding training opportunities and strategies to support colleagues and create capacity in your institutions. in this -minute webinar, you&# ;ll learn:... join us this fall for #coreforum – proposal deadline extended! call for proposals have now been extended to friday, may , . share your&# ;ideas and experiences about library technology, leadership, collections, preservation, assessment, and metadata at the inaugural meeting of core, a joining of lita/alcts/llama. we welcome your session proposal. for more information about the call for proposals and our theme of exploring ideas and making them reality, visit the forum website: https://forum.lita.org&# ; event details november - , baltimore, md renaissance baltimore harborplace hotel covid- planning the lita/alcts/llama forum planning committee is currently evaluating a contingency plan, should the covid- public health crisis impact forum in november. core is approved! we’re thrilled to announce that core: leadership, infrastructure, futures is moving forward, thanks to our members. the three existing divisions’ members all voted to approve the bylaws change that will unite alcts, lita, and llama to form core: alcts: % yes lita: % yes llama: % yes the presidents of the three divisions, jennifer bowen, alcts, emily morton-owens, lita, and anne cooper moore, llama, shared the following statement: “we first want to thank our members for supporting core. their belief in this vision, that we can accomplish more together than we can separately, has inspired us, and we look forward to working with all members to build this new and sustainable ala division. we also want to thank the core steering committee, and all the members who were part of project teams, town halls and focus groups. we would not have reached this moment without their incredible work.” ala executive... free lita webinar: protect library data while working from home a crash course in protecting library data while working from home presenter: becky yoose, founder / library data privacy consultant, ldh consulting services thursday, april , : &# ; : pm central time there’s a seat waiting for you…&# ;register for this free lita webinar today! libraries across the u.s. rapidly closed their doors to both public and staff in the last two weeks, leaving many staff to work from home. several library workers might be working from home for the first time in their current positions, while many others were not fully prepared to switch over to remote work in a matter of days, or even hours, before the library closed. in the rush to migrate library workers to remote work and to migrate physical library programs and services to online, data privacy and security sometimes gets lost in the mix. unfamiliar settings, new routines, and increased reliance on vendor... jobs in information technology: march , new this week head of library technology services, east carolina university, greenville, nc visit the lita jobs site for additional job openings and information on submitting your own job posting. march ital issue now available the march issue of information technology and libraries (ital) is available now. in this issue, ital editor ken varnum shares his support of lita, alcts, and llama merging to form a new ala division, core. our content includes a message from lita president, emily morton-owens. “a framework for member success,“ morton-owens discusses the current challenges of lita as a membership organization and reinvention being the key to survival. also in this edition, laurie willis discusses the pros and cons of handling major projects in-house versus hiring a vendor in &# ;tackling big projects.&# ; sheryl cormicle knox and trenton smiley discuss using digital tactics as a cost-effective way to increase marketing reach in &# ;google us!&# ; featured articles: “user experience methods and maturity in academic libraries,” scott w. h. young, zoe chao, and adam chandler this article presents a mixed-methods study of the methods and maturity of user experience (ux) practice in... learn how to build your own digital scholarship/humanities curriculum with this lita webinar are you a subject librarian interested in building digital scholarships? join us for the upcoming webinar &# ;digital inception: building a digital scholarship/humanities curriculum as a subject librarian,&# ; on wednesday, april , from : &# ; : pm cst.  digital scholarship is gaining momentum in academia. what started as a humanities movement is now present in most disciplines. introducing digital scholarship to students can benefit them in multiple ways: it helps them interact with new trends in scholarship, appeals to different kinds of learners, helps them develop new and emerging literacies, and gives them the opportunity to be creative. this -minute&# ;presentation will guide attendees in building a digital scholarship curriculum from a subject librarian position. it will explore how to identify opportunities, reach out to faculty, and advertise your services. it will also showcase activities, lesson plans, and free tools for digital publication, data mining, text analysis, mapping, etc. finally, the presentation will... jobs in information technology: march , new this week project manager for resource sharing initiatives,&# ;harvard university,&# ;cambridge, ma research data services librarian,&# ;university of kentucky libraries,&# ;lexington, ky digital archivist,&# ;rice university, fondren library,&# ;houston, tx associate director, technical services,&# ;yale university,&# ;new haven, ct visit the lita jobs site for additional job listings and information on submitting your own job posting. congratulations to alison macrina, winner of the lita/library hi tech award the lita/library hi tech awards committee is pleased to select alison macrina as the recipient of the lita/library hi-tech award. macrina led the tor relay initiative in new hampshire, is the founder and executive director of the library freedom project, and has written and taught extensively in the areas of digital privacy, surveillance, and user anonymity in the context of libraries and librarianship. in this role, macrina was instrumental in creating the library freedom institute, which trained its first cohort in and will train its third cohort in . macrina has also spoken on digital privacy and the work of the library freedom project across the united states and published&# ;anonymity, the first book in ala&# ;s library futures series, in . the committee was fortunate to receive several outstanding nominations for the award. macrina stood out in this strong pool of candidates for the broad reach and impact... nominate yourself or someone you know for the next lita top tech trends panel of speakers lita is looking for dynamic speakers with knowledge about the top trends in technology and how they intersect with information security and privacy. library technology is quickly evolving with trends such as vr, cloud computing and ai. as library technology continues to impact our profession and those that we serve, security and privacy are quickly becoming top concerns. we hope this panel will provide insight and information about these technology trends for you to discuss within your own organization. if you or someone you know would be a great fit for this exciting panel, please submit your nomination today.&# ;&# ; submit your nominations – the deadline is april , . the session is planned for sunday, june , , : – : pm, at the ala annual conference in chicago, il. a moderator and several panelists will each discuss trends impacting libraries, ideas for use cases, and practical approaches for... jobs in information technology: march , new this week wilson distinguished professorship, university of north carolina at chapel hill, chapel hill, nc coordinator of library technical services, berea college, berea, ky ui/ux designer, university of rochester libraries, rochester, ny technical support and hardware specialist &# ; openings, st. lawrence university, canton, ny ​​​​​​​software engineer, library systems, stanford health care, palo alto, ca visit the lita jobs site for additional job listings and information on submitting your own job posting. hebah emara is our - lita/oclc spectrum scholar lita and oclc are funding hebah emara&# ;s participation in the ala spectrum scholars program as part of their commitment to help diversify the library technology field. emara&# ;is a second year distance student at the university of missouri – columbia school of information science and learning technologies mlis program. she is interested in the ways libraries and technology intersect. her background in it and love of learning about technology, computers, and programming drew her to working in library technology. libraries’ ability to bridge the digital divide and their use of technology to provide opportunities to their communities and solve problems are also of particular interest to emara. her decision to apply to the spectrum scholarship was fueled by a desire to learn from a community of peers and mentors.&# ; emara&# ;is currently the co-chair of a tech unconference to be held in april and organized by mentornj in collaboration with the... share your ideas and library projects by submitting a session proposal for the forum! forum call for proposals submission deadline: march , november - , baltimore, maryland renaissance baltimore harborplace hotel do you have an idea or project that you would like to share? does your library have a creative or inventive solution to a common problem? submit a proposal for the lita/alcts/llama forum! submission deadline is march th. our library community is rich in ideas and shared experiences. the forum theme embodies our purpose to share knowledge and gain new insights by exploring ideas through an interactive, hands-on experience. we hope that this forum can be an inspiration to share, finish, and be a catalyst to implement ideas… together. we invite those who choose to lead through their ideas to submit proposals for&# ;sessions or preconference workshops, as well as&# ;nominate keynote speakers. this is an opportunity to share your ideas or unfinished work, inciting collaboration and advancing the library profession... early-bird registration for the exchange ends in three days! the march early-bird registration deadline for the exchange is approaching. register today and save! there&# ;s still time to register for the exchange at a discount, with early-bird registration rates at $ for alcts, lita, and llama members; $ for ala individual members; $ for non-members; $ for student/retired members; $ for groups; and $ for institutions. early-bird registration ends march . taking place may , , and , the exchange will engage a wide range of presenters and participants, facilitating enriching conversations and learning opportunities in a three-day, fully online, virtual forum. programming includes keynote presentations from emily drabinski and rebekkah smith aldrich, and sessions focusing on leadership and change management, continuity and sustainability, and collaborations and cooperative endeavors. in addition to these sessions, the exchange will offer lightning rounds and virtual poster sessions. for up-to-date details on sessions, be sure to check the exchange website as new information... jobs in information technology: february , new this week back end drupal web developer,&# ;multnomah county library, portland, or distance education &# ; outreach librarian,&# ;winona state university,&# ;winona, mn senior systems specialist,&# ;prairiecat, library consortium,&# ;coal valley, il training and outreach coordinator,&# ;prairiecat, library consortium,&# ;coal valley, il visit the lita jobs site for additional job listings and information on submitting your own job posting. deadline extended to march – submit a proposal to teach for lita the deadline to submit lita education proposals has been extended to march th. we&# ;re seeking instructors passionate about library technology topics to share their expertise and teach a webinar, webinar series, or online course for lita this year. instructors receive a $ honorarium for an online course or $ for a webinar, split among instructors. check out our list of current and past course offerings to see what topics have been covered recently. be part of another slate of compelling and useful online education programs this year! submit your lita education proposal today! for questions or comments related to teaching for lita, contact us at lita@ala.org or ( ) - . the census starts in two weeks — are your computers ready? post courtesy of gavin baker, ala office of public policy and advocacy, deputy director, public policy and government relations on march , millions of american households will begin receiving mailings inviting them to respond to the census. to get an accurate count, everyone has to respond – if they don’t, our libraries and communities will lose needed funding. as the mailings arrive, patrons may come to your library with questions – and, with a new option to respond online, to complete the questionnaire using the library’s computers or internet. to help you prepare, ala has a new, two-page tip sheet, &# ;libraries and the census: responding to the census,&# ; that provides key dates, options for responding, and advice for libraries preparing for the census. for instance, the tip sheet explains these important facts: ways to respond: households can respond to the census online, by phone, or by mail... news regarding the future of lita after the core vote dear lita members, we&# ;re writing about the implications of lita’s budget for the upcoming - fiscal year, which starts september , . we have reviewed the budget and affirmed that lita will need to disband if the core vote does not succeed. since the great recession, membership in professional organizations has been declining consistently. lita has followed the same pattern and as a result, has been running at a deficit for a number of years. each year, lita spends more on staff, events, equipment, software, and supplies than it takes in through memberships and event registrations. we were previously able to close our budgets through the use of our net asset balance which is, in effect, like a nest egg for the division. of course, that could not continue indefinitely. our path towards sustainability has culminated in the proposal to form core: leadership, infrastructure, futures. the new division would come with... boards of alcts, lita and llama put core on march ballot the boards of the association for library collections &# ; technical services (alcts), library information technology association (lita) and the library leadership &# ; management association (llama) have all voted unanimously to send to members their recommendation that the divisions form a new division, core: leadership, infrastructure, futures.&# ; alcts, lita and llama will vote on the recommendation during the upcoming american library association (ala) election. if approved by all three memberships, and the ala council, the three long-time divisions will end operations on august , , and merge into core on september . members of the three boards emphasized that core will continue to support the groups in which members currently find their professional homes while also creating new opportunities to work across traditional division lines. it is also envisioned that core would strengthen member engagement efforts and provide new career-support services. if one or more of the division memberships do not... jobs in information technology: february , new this week librarian (emphasis in user experience and technology), chabot college, hayward, ca librarian ii (ils admin &# ; tech services), duluth public library, duluth, mn distance education &# ; outreach librarian, winona state university, winona, mn head, digital initiatives &# ; tisch library, tufts university, medford, ma online learning and user experience librarian, ast or asc professor, siu edwardsville, edwardsville, il discovery and systems librarian, hamilton college, clinton, ny visit the lita jobs site for additional job listings and information on submitting your own job posting. early-bird registration ends march st for the exchange with stimulating programming, including discussion forums and virtual poster sessions, the exchange will engage a wide range of presenters and participants, facilitating enriching conversations and learning opportunities in a three-day, fully online, virtual forum. programming includes keynote presentations from emily drabinski and rebekkah smith aldrich, and sessions focusing on leadership and change management, continuity and sustainability, and collaborations and cooperative endeavors. the exchange will take place may , , and . in addition to these sessions, the exchange will offer lightning rounds and virtual poster sessions. for up-to-date details on sessions, be sure to check the exchange website as new information is being added regularly. early-bird registration rates are $ for alcts, lita, and llama members, $ for ala individual members, $ for non-members, $ for student members, $ for groups, and $ for institutions. early-bird registration ends march . want to register your group or institution? groups watching the... jobs in information technology: february , new this week upper school librarian (pdf), st. christopher&# ;s school, richmond, va diversity and engagement librarian, ast or asc professor, siu edwardsville, edwardsville, il repository services manager, washington university, saint louis, mo information technology librarian, albin o. kuhn library &# ; gallery (umbc), baltimore, md visit the lita jobs site for additional job listings and information on submitting your own job posting. lita blog call for contributors we&# ;re looking for new contributors for the lita blog! do you have just a single idea for a post or a series of posts? no problem! we&# ;re always looking for guest contributors with new ideas. do you have thoughts and ideas about technology in libraries that you&# ;d like to share with lita members? apply to be a regular contributor! if you&# ;re a member of lita, consider either becoming a regular contributor for the next year or submitting a post or two as a guest. apply today! learn the latest in library ux with this lita webinar there’s a seat waiting for you… register for this lita webinar today! how to talk about library ux &# ; redux presenter: michael schofield librarian / director of engineering, whereby.us wednesday, march , : – : pm central time the last time we did this webinar was in &# ; and a lot&# ;s changed. the goal then was to help establish some practical benchmarks for how to think about the user experience and ux design in libraries, which suffered from a lack of useful vocabulary and concepts: while we might be able to evangelize the importance of ux, libuxers struggled with translating their championship into the kinds of bureaucratic goals that unlocked real budget for our initiatives. it&# ;s one thing to say, &# ;the patron experience is critical!&# ; it&# ;s another thing to say, &# ;the experience is critical &# ; so pay for optimalworkshop, or hire a ux librarian, or give me a... joint working group on ebooks and digital content in libraries john klima, the lita representative to the working group on ebooks and digital content, recently agreed to an interview about the latest update from ala midwinter . watch the blog for more updates from john about the working group in the coming months! what is the mission and purpose of the working group on ebooks and digital content? quoting from the minutes of the ala executive board fall meeting in october of : [the purpose of this working group is] to address library concerns with publishers and content providers specifically to develop a variety of digital content license models that will allow libraries to provide content more effectively, allowing options to choose between one-at-a-time, metered, and other options to be made at point of sale; to make all content available in print and for which digital variants have been created to make the digital content equally available to libraries without... forum call for proposals lita, alcts and llama are now accepting proposals for the forum, november - at the renaissance baltimore harborplace hotel in baltimore, md. intention and serendipity: exploration of ideas through purposeful and chance connections submission deadline: march , our library community is rich in ideas and shared experiences. the forum theme embodies our purpose to share knowledge and gain new insights by exploring ideas through an interactive, hands-on experience. we hope that this forum can be an inspiration to share, finish, and be a catalyst to implement ideas…together. we invite those who choose to lead through their ideas to submit proposals for&# ;sessions or preconference workshops, as well as&# ;nominate keynote speakers. this is an opportunity to share your ideas or unfinished work, inciting collaboration and advancing the library profession forward through meaningful dialogue. we encourage diversity in presenters from a wide range of background, libraries, and experiences. we deliberately... lita announces the excellence in children’s and young adult science fiction notable lists the lita committee recognizing excellence in children’s and young adult science fiction presents the excellence in children’s and young adult science fiction notable lists. the lists are composed of notable children’s and young adult science fiction published between november and october and organized into three age-appropriate categories. the annotated lists will be posted on the website at&# ;www.sfnotables.org. the golden duck notable picture books list is selected from books intended for pre-school children and very early readers, up to years old. recognition is given to the author and the illustrator: field trip to the moon by john hare. margaret ferguson books hello by aiko ikegami. creston books how to be on the moon by viviane schwarz. candlewick press out there by tom sullivan. balzer + bray the babysitter from another planet by stephen savage. neal porter books the space walk by brian biggs. dial books for young... jobs in information technology: february , new this week (tenure-track) senior assistant librarian, sonoma state universityrohnert park, ca data services librarian for the sciences, harvard universitycambridge, ma visit the lita jobs site for additional job listings and information on submitting your own job posting. teach for lita: submit proposals by february reminder: the deadline to submit lita education proposals is february th. please share our cfp with your colleagues. we are seeking instructors passionate about library technology topics to share their expertise and teach a webinar, webinar series, or online course for lita this year. all topics related to the intersection of technology and libraries are welcomed, including: machine learning it project management data visualization javascript, including: jquery, json, d .js library-related apis change management in technology big data, high performance computing python, r, github, openrefine, and other programming/coding topics in a library context supporting digital scholarship/humanities virtual and augmented reality linked data implementation or participation in open source technologies or communities open educational resources, creating and providing access to open ebooks and other educational materials managing technology training diversity/inclusion and technology accessibility issues and library technology technology in special libraries ethics of library technology (e.g., privacy concerns, social justice implications) library/learning management... jobs in information technology: january , new this week stem, instruction, and assessment librarian,&# ;mcdaniel college, westminster, md data science/analysis research librarian,&# ;hamilton college, clinton, ny electronic resources librarian, brown university, providence, ri systems librarian, brown university, providence, ri head, technical services, brown university, providence, ri network and systems administrator,&# ;st. lawrence university, canton, ny visit the lita jobs site for additional job listings and information on submitting your own job posting. emily drabinski, rebekkah smith aldrich to deliver keynotes at the exchange virtual forum the association for library collections and technical services (alcts), the library information technology association (lita) and the library leadership and management association (llama) have announced that emily drabinski and rebekkah smith aldrich will deliver keynote addresses at the exchange virtual forum. the theme for the exchange is &# ;building the future together,&# ; and it will take place on the afternoons of may , and . each day has a different focus, with day exploring leadership and change management; day examining continuity and sustainability; and day focusing on collaborations and cooperative endeavors. drabinski&# ;s keynote will be on may , and smith aldrich&# ;s will be on may .  emily drabinski is the critical pedagogy librarian at mina rees library, graduate center, city university of new york (cuny). she is also the liaison to the school of labor and urban studies and other cuny masters and doctoral programs. drabinski&# ;s research includes... jobs in information technology: january , new this week information technology and web services (itws) department head, auraria library, denver, co visit the lita jobs site for additional job listings and information on submitting your own job posting. advice for the new systems librarian – building relationships . advice for the new systems librarian &# ; building relationships, part previous articles in this series: building relationships, helpful resources, a day in the life i am at the two-year mark of being in my role as systems librarian at jacksonville university, and i continue to love what i do. i am working on larger-scale projects and continuing to learn new things every week. there has not been a challenge or new skill to learn yet that i have been afraid of. my first post in this series highlighted groups and departments that may be helpful in learning your new role. now that i’m a little more seasoned, i have had the opportunity to work with even more departments and individuals at my institution on various projects. some of these departments may be unique to me, but i would imagine you would find counterparts where you work. the academic technology... jobs in information technology: january , new this week performing and visual arts librarian, butler university, indianapolis, in librarian, the college of lake county, grayslake, il user experience (ux) librarian, unc charlotte, j. murrey atkins library, charlotte, nc southeast asia digital librarian, cornell university, ithaca, ny head of digital infrastructure services at uconn library, university of connecticut, storrs, ct visit the lita jobs site for additional job listings and information on submitting your own job posting. lita education call for proposals for what library technology topics are you passionate about? have something you can help others learn? lita invites you to share your expertise with an international audience! our courses and webinars are based on topics of interest to library technology workers and technology managers at all levels in all types of libraries. taught by experts, they reach beyond physical conferences to bring high quality continuing education to the library world. we deliberately seek and strongly encourage submissions from underrepresented groups, such as women, people of color, the lgbtqa+ community, and people with disabilities. submit a proposal by february th to teach a webinar, webinar series, or online course for winter/spring/summer/fall . all topics related to the intersection of technology and libraries are welcomed, including: machine learning it project management data visualization javascript, including: jquery, json, d .js library-related apis change management in technology big data, high performance computing python, r, github, openrefine,... jobs in information technology: january , new this week web services &# ; discovery manager, american university library, washington, dcsenior research librarian, finnegan, washington, dc electronic resources and discovery librarian, auburn university, al ​​​​​​​discovery &# ; systems librarian, california state university, dominguez hills, carson, ca visit the lita jobs site for additional job listings and information on submitting your own job posting. ux “don’ts” we still need from erika hall the second edition of erika hall’s just enough research dropped october ; although this excellent volume was previously unknown to me i am taking the opportunity now to consume, embody, and evangelize hall’s approach to user research. or, as hall might put it, i’m a willing convert to the gospel of “enoughening”. hall is a seasoned design consultant and co-founder of mule design studio but her commercial approach is tempered by a no-nonsense attitude that makes her solutions and suggestions palatable to a small ux team such as my own at indiana university bloomington libraries. rather than conduct a formulaic book review of just enough research, i want to highlight some specific things hall tells the reader not to do in their ux research. this list of five “don’ts” summarize hall’s tone, style, and approach. it will also highlight the thesis of the second edition’s brand new chapter on surveys.... jobs in information technology: december , new this week vice provost and university librarian, university of oregon,&# ;eugene, or data migration specialist (telecommuting position), bywater solutions,&# ;remote position research librarian, oak ridge national laboratory, oak ridge, tn visit the lita jobs site for additional job listings and information on submitting your own job posting. announcing the new lita elearning coordinator we are proud to announce that kira litvin will be the new lita elearning coordinator. litvin has been the continuing education coordinator at the colorado school for public health for the past six months. she provides distance/online learning library services and instruction and works regularly with other librarians, instructional designers, faculty, and educators to collaborate on instructional delivery projects. &# ;i am passionate about being a librarian and working with people in an online environment! &# ;for the past nine years i have worked with libraries that are exclusively online. my roles include administering and managing electronic library systems, including springshare products, and providing virtual reference and instruction to students, faculty and staff. more recently i have transitioned to working as an elearning instructional designer which means i design and develop instructional content available for asynchronous learning and professional development. as online learning continues to grow, i believe that libraries need to... submit a nomination for awards and scholarships hugh c. atkinson memorial award the award honors the life and accomplishments of hugh c. atkinson by soliciting nominations and recognizing the outstanding accomplishments of an academic librarian who has worked in the areas of library automation or library management and has made contributions (including risk taking) toward the improvement of library services or to library development or research. nomination deadline: january , winner receives a cash award and a plaque. learn more about the requirements for the atkinson memorial award. ex libris student writing award the lita/ex libris student writing award is given for the best unpublished manuscript on a topic in the area of libraries and information technology written by a student or students enrolled in an ala-accredited library and information studies graduate program. application deadline: february , winner receives a $ , cash and a plaque. learn more about the requirements for the ex libris student... submit a nomination for the hugh c. atkinson memorial award lita, acrl, alcts, and llama invite nominations for the hugh c. atkinson memorial award. please submit your nominations by january , . the award honors the life and accomplishments of hugh c. atkinson by recognizing the outstanding accomplishments of an academic librarian who has worked in the areas of library automation or library management and has made contributions (including risk taking) toward the improvement of library services or to library development or research. winners receive a cash award and a plaque. this award is funded by an endowment created by divisional, individual, and vendor contributions given in memory of hugh c. atkinson. the nominee must be a librarian employed in one of the following during the year prior to application for this award: university, college, or community college library non-profit consortium, or a consortium comprised of non-profits that provides resources/services/support to&# ; academic libraries the nominee must have a minimum... core update – / / greetings again from the steering committee of core: leadership, infrastructure, futures, a proposed division of ala. coming up this friday, december is the last of four town halls we are holding this fall to share information and elicit your input. please join us! register for town hall today. alcts, lita, and llama division staff will lead this town hall with a focus on core’s mission, vision, and values; benefits organizationally; benefits to members; and opportunities in the future. our speakers will be jenny levine (lita executive director), julie reese (alcts deputy executive director), and kerry ward (llama executive director and interim alcts executive director). we’re excited to share an updated core proposal document for ala member feedback and review, strengthened by your input. we invite further comments on this updated proposal through sunday, december . meanwhile, division staff will incorporate your comments and finalize this proposal document for... jobs in information technology: december , new this week senior specialist &# ; makerspace,&# ;middle tennessee state university, walker library,&# ;murfreesboro, tn user experience librarian,&# ;auburn university,&# ;auburn university, al visit the lita jobs site for additional job listings and information on submitting your own job posting. announcing the new lita blog editor we are proud to announce that jessica gilbert redman will be the new editor of the&# ;lita&# ;blog.&# ; gilbert redman has been the web services librarian at the university of north dakota for the past three years. she coordinates and writes for the library blog and maintains the library website. she has completed a post-graduate certificate in user experience and always seeks to ensure that end users are able to easily find the information they need to complete their research. additionally, she realizes communication is the key component in any relationship, be it between libraries and their users or between colleagues, and she always strives to make communication easier for all involved. &# ;i am excited to become more involved in lita, and i think the position of lita blog editor is an excellent way to meet more people within lita and ala, and to maintain a finger on the pulse of new... jobs in information technology: december , new this week digital discovery librarian/assistant librarian, miami university, oxford, oh visit the lita jobs site for additional job listings and information on submitting your own job posting. jobs in information technology: november , new this week web and digital scholarship technologies librarian,&# ;marquette university libraries, milwaukee, wi digital access and metadata librarian,&# ;marquette university libraries, milwaukee, wi librarian (san ramon campus),&# ;contra costa community college district,&# ;san ramon, ca visit the lita jobs site for additional job listings and information on submitting your own job posting. support lita scholarships this #givingtuesday it’s almost #givingtuesday, so we’re highlighting the difference that lita scholarships can make, and inviting you to join us in increasing access to lita events by donating to our scholarship fund today. you can help us to provide more scholarships to events like avramcamp and lita forum, as well as sponsor emerging leaders, with your donation today! your donation of $ could open up untold opportunities for other library technology professionals. “the lita scholarship afforded me the opportunity to present at the avramcamp and ala conference. it was an incredible opportunity to network with dozens of information professionals, build connections with people in the field, ask them all of my questions and exchange our technical acumen and job experiences. as a result, i have been offered two interviewing opportunities that were an incredibly valuable experience for my career development. i am very grateful to lita for the opportunity to... jobs in information technology: november , new this week metadata specialist iii, metadata services, the new york public library, new york, ny eresources librarian,&# ;university of maryland, baltimore county, baltimore, md multiple librarian positions,&# ;george washington university, washington dc information technology analyst,&# ;san mateo county libraries, san mateo county, ca visit the lita jobs site for additional job listings and information on submitting your own job posting. call for blog coordinator for the exchange: an alcts/lita/llama collaboration the exchange: an alcts/lita/llama collaboration brings together experiences, ideas, expertise, and individuals from the three ala divisions. broadly organized around the theme of “building the future together,” the exchange will examine the topic in relation to collections, leadership, technology, innovation, sustainability, and collaborations. participants from diverse areas of librarianship will find the three days of presentations, panels, and lightning rounds both thought-provoking and highly relevant to their current and future career paths. the exchange will engage a wide range of presenters and participants, facilitating enriching conversations and learning opportunities. divisional members and non-members alike are encouraged to register and bring their questions, experiences, and perspectives to the events. as part of the conference experience, the exchange plans to host regular blog posts in advance of the conference. blog posts will serve multiple purposes: generate excitement and interest in content, encourage participation outside of simply watching presentations, and provide an avenue... the exchange call for proposals and informational webinar alcts, lita, and llama are now accepting proposals for the exchange: building the future together, a virtual forum scheduled for may , , and , . the twelve hour virtual event will take place over three afternoons, featuring the following themes and topics: day &# ; leadership and change management day &# ; continuity and sustainability day &# ; collaborations and cooperative endeavors session formats the exchange will feature the following session formats: full-session proposals presenters prepare content for a -minute session, with an additional -minute q&# ;a period for all presenters. full-session proposals may include multiple presentations with content that is topically related. lightning round each participant is given five minutes to give a presentation. at the end of the lightning round, there will be a - -minute q&# ;a period for all presenters in the session. topics for lightning rounds related to innovative projects or research are encouraged. proposals will be... registration is now open for the exchange in may , join alcts, lita, and llama for an exciting and engaging virtual forum. registration is now open! &# ; the exchange: an alcts/lita/llama collaboration brings together experiences, ideas, expertise, and individuals from the three ala divisions. broadly organized around the theme of “building the future together,” the exchange will examine the topic in relation to collections, leadership, technology, innovation, sustainability, and collaborations. participants from diverse areas of librarianship will find the three days of presentations, panels, and lightning rounds both thought-provoking and highly relevant to their current and future career paths. the exchange will engage a wide range of presenters and participants, facilitating enriching conversations and learning opportunities. divisional members and non-members alike are encouraged to register and bring their questions, experiences, and perspectives to the events. “building on the rich educational traditions of the three divisions, the exchange provides the opportunity to break down silos and explore synergies... core call for comment greetings again from the steering committee of&# ;core: leadership, infrastructure, futures, a proposed division of ala. the steering committee welcomes comments on the&# ;draft division proposal documentation&# ;through november th. please join the conversation! your perspectives and input are shaping the identity and priorities of the proposed division. we’re asking for you to respond to the documents with key questions in mind, including: does this make sense to someone new to alcts/ lita/ llama? does this piece of the plan reflect how members want the new division to function? are there any points that are cause for concern? if you’re interested in helping us in the review process or other work ahead, please&# ;consider volunteering&# ;for&# ;core.&# ;we’re eager to collaborate with you! we’re working hard to ensure everyone can participate in the&# ;core&# ;conversation, so please&# ;let us know&# ;what could make&# ;core&# ;a compelling and worthy division home for you.&# ;keep the feedback and input coming! full details for all our&# ;upcoming events&# ;are... lis students: apply for the larew scholarship for tuition help the library and information technology association (lita) and baker &# ; taylor are accepting applications for the lita/christian (chris) larew memorial scholarship for those who plan to follow a career in library and information technology, demonstrate potential leadership, and hold a strong commitment to library automation. the winner will receive a $ , check and a citation.&# ;the application form is open through march , . criteria for the scholarship includes previous academic excellence, evidence of leadership potential, and a commitment to a career in library automation and information technology. candidates should illustrate their qualifications for the scholarships with a statement indicating the nature of their library experience, letters of reference and a personal statement of the applicant’s view of what they can bring to the profession.&# ;winners must have been accepted to&# ;a master of library science (mls) program recognized by the american library association. references, transcripts, and other documents must be postmarked no... jobs in information technology: november , new this week full time faculty &# ; non tenure track,&# ;sjsu school of information, san jose, ca digital collections librarian, union college,&# ;schenectady, ny web services librarian,&# ;university of oregon libraries, eugene, or galileo programmer/analyst,&# ;university of georgia libraries, athens, ga visit the lita jobs site for additional job listings and information on submitting your own job posting. lita opens call for innovative lis student writing award for the library and information technology association (lita), a division of the american library association (ala), is pleased to offer an award for the best unpublished manuscript submitted by a student or students enrolled in&# ;an ala-accredited graduate program. sponsored by&# ;lita&# ;and&# ;ex&# ;libris, the award consists of $ , , publication in&# ;lita’s&# ;referred journal,&# ;information technology and libraries (ital), and a certificate. the deadline for submission of the manuscript is february , . the award recognizes superior student writing and is intended to enhance the professional development of students. the manuscript can be written on any aspect of libraries and information technology. examples include, but are not limited to, digital libraries, metadata, authorization and authentication, electronic journals and electronic publishing, open source software, distributed systems and networks, computer security, intellectual property rights, technical standards, desktop applications, online catalogs and bibliographic systems, universal access to technology, and library consortia. to be eligible, applicants must follow&# ;these&# ;guidelines&# ;and fill out&# ;the application form&# ;(pdf).... jobs in information technology: november , new this week open educational resources production manager, oregon state university &# ; ecampus, corvallis, or user experience librarian, northwestern university, evanston, il institute for clinical and translational research (ictr) librarian, university of maryland, baltimore, baltimore, md director of collections &# ; access, wheaton college, norton, ma visit the lita jobs site for additional job listings and information on submitting your own job posting. nominate a colleague doing cutting edge work in tech education for the lita library hi tech award nominations are open&# ;for the &# ;lita/library hi tech award, which is given each year to an individual or institution for outstanding achievement in educating the profession about cutting edge technology within the field of library and information technology. sponsored by the&# ;library and information technology association&# ;(lita) and library hi tech, the award includes a citation of merit and a $ , stipend provided by&# ;emerald publishing, publishers of library hi tech. the deadline for nominations is december , . the award, given to either a living individual or an institution, may recognize a single seminal work or a body of work created during or continuing into the five years immediately preceding the award year. the body of work need not be limited to published texts but can include course plans or actual courses and/or non-print publications such as visual media. awards are intended to recognize living persons rather than to honor the deceased; therefore,... propose a topic for the ital “public libraries leading the way” column information technology and libraries (ital), the quarterly open-access journal published by ala’s library information technology association, is looking for contributors for its regular “public libraries leading the way” column. this column highlights a technology-based innovation or approach to problem solving from a public library perspective. topics we are interested in include the following, but proposals on any other technology topic are welcome. -d printing and makerspaces civic technology drones diversity, equity, and inclusion and technology privacy and cyber-security virtual and augmented reality artificial intelligence big data internet of things robotics geographic information systems and mapping library analytics and data-driven services anything else related to public libraries and innovations in technology to propose a topic, use this brief form, which will ask you for three pieces of information: your name your email address a brief ( - word) summary of your proposed column that describes your library, the technology you wish to... alcts, lita and llama collaborate for virtual forum the association for library collections &# ; technical services (alcts), the library and information technology association (lita) and the library leadership &# ; management association (llama) have collaborated to create the exchange, an interactive, virtual forum designed to bring together experiences, ideas, expertise and individuals from these american library association (ala) divisions. modeled after the alcts exchange, the exchange will be held may , may and may in with the theme “building the future together.” as a fully online interactive forum, the exchange will give participants the opportunity to share the latest research, trends and developments in collections, leadership, technology, innovation, sustainability and collaborations. participants from diverse areas of librarianship will find the three days of presentations, panels and activities both thought-provoking and highly relevant to their current and future career paths. the exchange will engage an array of presenters and participants, facilitating enriching conversations and learning opportunities.... submit your annual meeting request by feb the lita meeting request form is now open for the ala annual conference in chicago, il. all lita committee and interest group chairs should use it to let us know if you plan to meet at annual. we&# ;re looking forward to seeing what you have planned. the deadline to submit your meeting request is friday, february , . we&# ;re going to change how we&# ;ve listed meetings in the past. if you do not submit this form, your group will not be included in the list of lita session on our website, the online scheduler, or the print program. while we&# ;ll still hold the joint chairs meeting on saturday from : - : am and use that same room for committee and ig meetings from : - : am, your group will only be listed if you submit this form. you should also use it if you want to request a meeting on a different day... submit a nomination for the prestigious kilgour technology research award lita and oclc invite nominations for the frederick g. kilgour award for research in library and information technology. submit your nomination no later than december , . the kilgour research award recognizes research relevant to the development of information technologies, in particular research showing promise of having a positive and substantive impact on any aspect of the publication, storage, retrieval, and dissemination of information or how information and data are manipulated and managed. the winner receives $ , cash, an award citation, and an expense-paid trip (airfare and two nights lodging) to the ala annual conference in chicago, il. nominations will be accepted from any member of the american library association. nominating letters must address how the research is relevant to libraries; is creative in its design or methodology; builds on existing research or enhances potential for future exploration; and/or solves an important current problem in the delivery of... core update – october , greetings again from the steering committee of core: leadership, infrastructure, futures, a proposed division of ala. thank you for all of your questions and feedback about the proposed new division!&# ;the steering committee has been revising core documents based on what we’ve heard from you so far in order to share draft bylaws and other information with you soon. we want you to know that we are continuing to listen and incorporate the feedback you’re providing via town halls, twitter chats, the core feedback form, and more.&# ; in our next steering committee meeting, we will be discussing how we can support the operational involvement of interested volunteers. if you have ideas on how members should be involved, please share them with us through&# ;the feedback form.&# ; we’re working hard to ensure everyone can participate in the core conversation, so please&# ;let us know&# ;what could make core a compelling and worthy division home for... jobs in information technology: october , new this week metadata &# ; research support specialist, open society research services, open society foundations, new york, ny head of public services in the daniel library, the citadel, the military college of south carolina, charleston, sc engineering and science liaison, mit, cambridge, ma head of technical services &# ; library, the citadel, the military college of south carolina, charleston, sc analyst programmer , oregon state university libraries and press, corvallis, or collection information specialist, isabella stewart gardner museum, boston, ma visit the lita jobs site for additional job listings and information on submitting your own job posting. jobs in information technology: october , new this week metadata librarian for distinctive collections, mit, cambridge, ma electronic access librarian, university of rochester, rochester, ny dean, university libraries, university of northern colorado, greeley, co administrative/metadata specialist, asr international corp., monterey, ca core systems librarian, university of oregon libraries, eugene, or visit the lita jobs site for additional job listings and information on submitting your own job posting. september ital issue now available the september issue of information technology and libraries (ital) is available now. in this issue, ital editor ken varnum announces six new members of the ital editorial board. our content includes a recap of emily morton-owens&# ; president&# ;s inaugural message, &# ;sustaining lita&# ;, discussing the many ways lita strives to provide a sustainable member organization. in this edition of our &# ;public libraries leading the way&# ; series, thomas lamanna discusses ways libraries can utilize their current resources and provide ideas on how to maximize effectiveness and roll new technologies into operations in &# ;on educating patrons on privacy and maximizing library resources.&# ; featured articles: &# ;library-authored web content and the need for content strategy,&# ; courtney mcdonald and heidi burkhardt increasingly sophisticated content management systems (cms) allow librarians to publish content via the web and within the private domain of institutional learning management systems. “libraries as publishers”may bring to mind roles in scholarly communication and... jobs in information technology: october , new this week information research specialist, harvard business school, boston, ma - library residency program (provost’s postdoctoral fellowship), new york university, division of libraries, new york, ny executive director, library connection, inc, windsor, ct associate university librarian, cornell university, ithaca, ny visit the lita jobs site for additional job listings and information on submitting your own job posting. new vacancy listings are posted on wednesday afternoons. latest lita learnings there&# ;s a seat waiting for you&# ; register today for a lita webinar! guiding students through digital citizenship presenter: casey davis instructional designer (it), arizona state university wednesday, october , : &# ; : pm central time as academic librarians, we help build our students into digital citizens.&# ;it&# ;s our duty to make sure students have the tools and resources to be savvy tech users, become information literate, and understand the permanence of their digital actions. in this -minute webinar,&# ;you&# ;ll learn research-based best practices you can implement using the framework of the hero&# ;s journey&# ;without creating an additional burden on faculty, staff, and students. learning objectives for this program include: • an expanded understanding of digital citizenship within the context of college/university life •&# ;examining areas where increased awareness and practice is needed within the college/university community • creating authentic training for increasing digital citizenship within the college/university community view details&# ;and&# ;register here. in-house vs.... hectic pace – a view on libraries, the library business, and the business of libraries skip to content hectic pace my pre-covid things posted on dec by andrew k. pace authors note: these parodies are always about libraries and always based on christmas songs, stories, or poems. being what it is, this year is an exception to both…that’s right, i’m siding with my family and admitting that my favorite things is not a christmas song. (sung to the tune of “my favorite things”) [click the youtube link to listen while you sing along.] eating in restaurants and movies on big screenspeople who don’t doubt the virtue of vaccines.inspiring leaders who don’t act like kings.these were a few of my pre-covid things. live music venues and in-person classes.no masks or … tagged with: / category: christmas parody / leave a comment sitting in the reading room all day posted on dec by andrew k. pace (sung to the tune of “walking in a winter wonderland”) [click the youtube link to listen while you sing along.] people shhhhhh, are you listening? in the stacks, laptops glistening the reading light’s bright the library’s right for sitting in the reading room all day. gone away are the book stacks here to stay, the only town’s fax. we share all our books without judgy looks. sitting in the reading room all day. in the lobby we could build a book tree. readers guide is green and they stack well. i’ll say ‘do we have ’em?’ you’ll say, ‘yeah man.’ … tagged with: / category: christmas parody / comment it’s the best library time of the year posted on dec by andrew k. pace (sung to the tune of “it’s the most wonderful time of the year”)  press play to sing along with the instrumental track! it’s the best library time of the year with no more children yelling and no one is telling you “get it in gear!” it’s the best library time of the year it’s the qui-quietest season at school only smile-filled greetings and no more dull meetings where bosses are cruel it’s the qui-quietest season at school there’ll be books for re-stocking vendor end-of-year-hawking and overdue fine cash for beer send the word out to pre-schools drag queen visit … tagged with: / category: christmas parody / leave a comment posts navigation … next about a blog and its author search the archive search for: archives archives select month december  ( ) december  ( ) december  ( ) december  ( ) july  ( ) april  ( ) march  ( ) february  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) may  ( ) december  ( ) october  ( ) september  ( ) july  ( ) april  ( ) march  ( ) january  ( ) december  ( ) june  ( ) april  ( ) december  ( ) october  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) january  ( ) december  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) may  ( ) april  ( ) march  ( ) february  ( ) january  ( ) december  ( ) november  ( ) october  ( ) september  ( ) august  ( ) july  ( ) june  ( ) categories categoriesselect category .   ( ) ala  ( ) april fool’s  ( ) catalogs  ( ) christmas parody  ( ) community development  ( ) e-books  ( ) ebsco  ( ) education  ( ) equity, diversity, & inclusion  ( ) general  ( ) google  ( ) innovation  ( ) lita  ( ) mergers & acquisitions  ( ) metasearch  ( ) niso  ( ) oclc  ( ) open source  ( ) openurl  ( ) product management  ( ) public libraries  ( ) publishers  ( ) sacred cows  ( ) search  ( ) standards  ( ) vendors  ( ) web-scale  ( ) wms  ( ) worldshare  ( ) oclc next we persevere through challenges when we rely on each other skip prichard why a “library on-demand” vision benefits from pandemic wisdom cathy king the oclc network: collaboration, innovation, and efficiency oclc oclc colleagues . : the dewey blog the digital shift (roy tennant) hanging together lorcan dempsey’s weblog oclc next webjunction library colleagues librarian.net screwy decimal the shifted librarian librarian in black free range librarian the travelin’ librarian david lee king jenny arch justin the librarian mr. library dude thoughts from carl grant search worldcat enter title, subject, person, or keyword hectic pace rss feeds entries rss comments rss © – . all rights reserved, hectic pace toggle navigation inkdroid about bookmarks photos music software social talks april , metadata coincidence? unless otherwise noted all the content here is licensed cc-by global chapters | legal hackers navigation our story blog global chapters press videos governance summit search our story blog global chapters press videos governance summit search global chapters global chapters want to be a part of the largest grassroots legal innovation movement in the world? join us! legal hackers is an open and collaborative community of individuals passionate about exploring and building creative solutions to some of the most pressing issues at the intersection of law and technology. since , we have used the hashtag #legalhack to share the activities of the global legal hackers community. legal hackers online communities twitter: @legalhackers facebook: www.facebook.com/groups/legalhackers slack: legalhackers.slack.com (invitation here) linkedin: https://www.linkedin.com/groups/ hashtag: #legalhack legal hackers local chapters legal hackers is the largest grassroots legal innovation community in the world, with chapters in many major cities. check out the list below to find your local legal hackers community. if you don’t see a community near you below, apply to start your own by clicking the appropriate link below: i want to start a traditional legal hackers chapter for my city or region i want to start a student-only legal hackers student group for my university questions? read more about the differences between chapters and student groups here, or email us at us at: info [at] legalhackers [dot] org. north americaeuropeafricaasiaaustralia & new zealandlatamstudent groups atlanta, georgia baltimore, maryland boston, massachusetts chicago, illinois cleveland, ohio dfw (dallas-fort worth), texas denver, colorado detroit, michigan houston, texas kansas city, missouri london, ontario miami, florida minneapolis-st. paul, minnesota montreal, québec nashville, tennessee new orleans, louisiana new york, new york north carolina orlando, florida ottawa, ontario philadelphia, pennsylvania portland, oregon puerto rico salt lake city, utah san diego, california san francisco, california seattle, washington toronto, ontario tulsa, oklahoma vancouver, british columbia washington, d.c. amsterdam, netherlands asturias, spain athens, greece barcelona, spain bari, italy belfast, northern ireland belgrade, serbia berlin, germany bern, switzerland bilbao, spain bologna, italy bristol, england brno, czech republic brussels, belgium bucharest, romania chișinău, moldova cologne/bonn, germany copenhagen, denmark dublin, ireland estonia firenze, italy frankfurt, germany geneva, switzerland genova, italy ghent, belgium the hague, netherlands hamburg, germany helsinki, finland istanbul, turkey kyiv, ukraine limassol, cyprus lisbon, portugal ljubljana, slovenia london, england luxembourg lviv, ukraine madrid, spain malaga, spain manchester, england mantova, italy milan, italy moscow, russia munich, germany napoli-campania, italy novi sad, serbia nürnberg, germany padova, italy paris, france perugia, italy pescara, italy pisa, italy porto, portugal preston, england roma, italy rijeka, croatia scotland sheffield, england skopje, macedonia sofia, bulgaria st. petersburg, russia stockholm, sweden timisoara, romania torino, italy toulouse, france trieste, italy valencia, spain venezia, italy verona, italy vienna, austria vilnius, lithuania warsaw, poland zagreb, croatia zurich, switzerland abuja, nigeria accra, ghana alexandria, egypt cape town, south africa casablanca, morocco douala, cameroon enugu, nigeria harare, zimbabwe imo, nigeria kampala, uganda lagos, nigeria luanda, angola nairobi, kenya almaty, kazakhstan ankara, turkey bhopal, india chandigarh, india delhi, india goa, india hong kong jakarta, indonesia jeddah, saudi arabia kuala lumpur, malaysia lahore, pakistan lucknow, india manila, philippines patna, india pune, india seoul, south korea singapore tokyo, japan melbourne, australia perth, australia sydney, australia wellington, new zealand aguascalientes, mexico arequipa, peru baja, mexico barranquilla, colombia belém, brazil belo horizonte, brazil bogota, colombia brasília, brazil buenos aires, argentina campinas, brazil cuiabá, brazil curitiba, brazil cusco, peru fortaleza, brazil goiânia, brazil guadalajara, mexico guatemala city, guatemala guayaquil, ecuador imperatriz. brazil jaraguá do sul, brazil lavras, brazil lima, peru manaus, brazil manizales, colombia maringá, brazil medellin, colombia mexico city, mexico mogi das cruzes, brazil monterrey, mexico montevideo, uruguay natal, brazil panama city, panama passo fundo, brazil pereira, colombia petrolina, brazil porto alegre, brazil porto velho, brazil puebla, mexico querétaro, mexico quito, ecuador recife, brazil rio de janiero, brazil salvador, brazil santa cruz, bolivia santo andré, brazil são paulo, brazil san salvador, el salvador sete lagoas, brazil tegucigalpa, hondouras tepic, mexico kansas, usa – kansas university new brunswick, canada – university of new brunswick new york, usa – brooklyn law school north carolina, usa – wake forest university school of law tennessee, usa – university of tennessee college of law toronto, canada – university of toronto coventry, england – university of warwick kyiv, ukraine – national university of kyiv-mohyla academy kyiv, ukraine – taras shevchenko national university of kyiv london, england – university college london sheffield, england – university of sheffield tarragona, spain – universitat rovira i virgili kharagpur, india – indian institute of technology quito, ecuador – pontificia universidad católica del ecuador (puce) tweets by legalhackers our story blog global chapters press videos governance summit type and press “enter” to search our story global chapters governance press none literary machines - digital libraries, books, archives literary machines digital libraries, books, archives. about me jul archiviiify a short guide to download digitized books from internet archive and rehost on your own infrastructure using iiif with full-text search. jan pywb . - docker quickstart four years have passed since i first wrote of pywb: it was a young tool at the time, but already usable and extremely simple to deploy. since then a lot of works has been done by ilya kreymer (and others), resulting in all the new features available with the . release. also, some very big webarchiving initiatives have moved and used pywb in these years: webrecorder itself, rhizome, perma, arquivo pt in portugal, the italian national library in florence (italy), (others i’m missing). oct anonymous webarchiving webarchiving activities, as any other activity where an http client is involved, leave marks of their steps: the web server you are visiting or crawling will save your ip address in its logs (or even worse it can decide to ban your ip). this is usually not a problem, there are plenty of good reasons for a webserver to keep logs of its visitors. but sometimes you may need to protect your own identity when you are visiting or saving something from a website, and there a lot of sensitive careers that need this protection: activists, journalist, political dissidents. tor has been invented for this, and today offer a good protection to browse anonymously the web. can we also archive the web through tor? sep open bni il maggio viene annunciato il rilascio libero della bibliografia nazionale italiana (bni). viene apprezzata l’apertura di questo catalogo (anche se con i limiti dei soli pdf), e da profano di biblioteconomia faccio anche una domanda sull’effettivo caso d’uso della bni. il agosto viene annunciato il rilascio delle annate e anche in formato unimarc e marcxml. incuriosito dal catalogo inizio ad esplorarlo, per pensare a possibili trasformazioni (triple rdf) o arricchimenti con/verso altri dati (wikidata). mar epub linkrot linkrot also affects epub files (who would have thought! :)). how to check the health of external links in epub books (required tools: a shell, atool, pup, gnu parallel). feb skos nuovo soggettario, api e autocomplete come creare una api per un form con autocompletamento usando i termini del nuovo soggettario, con i sorted sets di redis e nginx+lua. nov serve deepzoom images from a zip archive with openseadragon vips is a fast image processing system. version higher than . can generate static tiles of big images in deepzoom format, saving them directly into a zip archive. oct a wayback machine (pywb) on a cheap, shared host for a long time the only free (i’m unaware of commercial ones) implementation of a web archival replay software has been the wayback machine (now openwayback). it’s a stable and mature software, with a strong community behind. to use it you need to be confident with the deploy of a java web application; not so difficult, and documentation is exaustive. but there is a new player in the game, pywb, developed by ilya kramer, a former internet archive developer. built in python, relatively simpler than wayback, and now used in a pro archiving project at rhizome. sep opendata dell'anagrafe biblioteche come usare gli opendata dell’anagrafe delle biblioteche italiane e disegnare su una mappa web gli indirizzi delle biblioteche. sep api json dell'opac sbn alcuni mesi fa è stata rilasciata da iccu una app mobile per consultare l’opac sbn. anche se graficamente poco accattivante l’app funziona bene, e trovo molto utili le funzioni di ricerca di un libro scansionando il codice a barre con la camera del telefonino, e la possibilità di bookmarkare dei preferiti. incuriosito dal funzionamento ho pensato di analizzarne il traffico http. page of subscribe! all content is licensed under a creative commons attribution . international license made with jekyll + kasper theme posts | mark a. matienzo skip to content w c svg main navigation menu about now posts notes music projects publications presentations press posts iah forecast - disquiet junto project publish date: february , tags: music black tent by mark a. matienzo an experiment with recording a new single using vcv rack and reaper based on a compositional prompt. i ended up recording two tracks. perfecting a favorite: oatmeal chocolate chip cookies publish date: november , tags: recipes food by mark a. matienzo i have a horrible sweet tooth, and i absolutely love oatmeal chocolate chip cookies. i tend to bake as a means to cope with stress, and of course, more often then that means making these cookies. after making many iterations, i’ve settled upon this recipe as the ultimate version to which all compare. (read more …) in memoriam and appreciation of rob casson ( - ) publish date: october , tags: code lib personal by mark a. matienzo the world lost one of its brightest and most charming lights earlier this week, rob casson. many of us knew rob through the code lib community and conferences and his work at miami university libraries. we miss his generosity, patience, sense of humor, and genuine kindness. those of us who got the chance to socialize with him also remember his passion for music, and some of us were even lucky to see live shows in the evenings between conference sessions and other social activities. on sunday, october at : pm pacific/ : pm eastern, those of us who knew him through code lib and the world of libraries are encouraged to gather to share our memories of him and to appreciate his life and work. please join me and my co-organizers, mike giarlo and declan fleming on zoom (registration required). robert casson (robcasson), jan - sep . photo: declan fleming. (read more …) first sota activation publish date: september , tags: ham radio by mark a. matienzo about a month ago, i got my ham radio license, and soon after i got pretty curious about summits on the air (sota), an award scheme focused on safe and low impact portable operation from mountaintops. while i like to hike, i’m arguably a pretty casual hiker, and living in california provides a surprising number of options within minutes driving time for sota newbies. (read more …) optimizing friction publish date: august , tags: indieweb music plan food by mark a. matienzo over and in response to the last few months, i’ve been reflecting about intentionality, and how i spend my time creating things. i have tried to improve the indiewebbiness of my site, and understanding what it means to “scratch my own itch”. this resonates particularly lately because it’s leading me to mull over which parts should be hard and easy. unsurprisingly, much of that is personal preference, and figuring out how i want to optimize from the perspective of user experience. friction in ux can be a powerful tool, part of what i’m trying to find is where i want to retain friction as it helps me remain intentional. (read more …) a hugo shortcode for embedding mirador publish date: july , tags: iiif hugo by mark a. matienzo i spent a little time over the last day or so trying to bodge together a shortcode for hugo to embed an instance of mirador. while it’s not quite as simple (or full-featured) as i’d like, it’s nonetheless a starting point. the shortcode generates a snippet of html that gets loaded into hugo pages, but (unfortunately) most of the heavy lifting is done by a separate static page that gets included as an