tag:blogger.com,1999:blog-84131521523228606132024-03-13T21:30:33.174-07:00smyles bloga place to postsmyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.comBlogger91125tag:blogger.com,1999:blog-8413152152322860613.post-5875709465363421622021-03-14T09:36:00.001-07:002021-03-14T09:36:54.887-07:00 Installing Java 8 on MacOS<p>If you, like me, need to install Java 8 on your MacOS, then this is the TL;DR:</p><p><span style="background-color: #282c34; color: #abb2bf; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 15.75px; white-space: pre;">brew install openjdk@8</span></p><p>You will find more complete instructions in mykong's excellent overview of <a href="https://mkyong.com/java/how-to-install-java-on-mac-osx/">How to Install Java on Mac OS X</a>. </p><p>I needed Java8 in order to play with <a href="https://www.xml-project.com/morganaxproc-iii/">MorganaXProc-III</a>, a Java <a href="https://spec.xproc.org/">XProc 3</a> implementation. At the time of writing, that software only supports Java 8, which set me hunting for how to install Java 8 on my Mac.</p><p>Hopefully, this short note will also help you (or future me).</p>smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com3tag:blogger.com,1999:blog-8413152152322860613.post-2628572912283519582020-12-09T13:49:00.000-08:002020-12-09T13:49:07.664-08:00If You're a Student or Recent Graduate, I Can Help you Get an Internship or Job at Amazon<p>Amazon has a lot of <a href="https://www.amazon.jobs/en/business_categories/student-programs" rev="en_rl_none" shape="rect" target="_blank">student opportunities</a>, including <a href="https://www.amazon.jobs/en/teams/internships-for-students" rev="en_rl_none" shape="rect" target="_blank">internships</a>. If you're a recent graduate, and so interested in a full time position, then checkout the <a href="https://www.amazon.jobs/en/teams/jobs-for-grads" rev="en_rl_none" shape="rect" target="_blank">https://www.amazon.jobs/en/teams/jobs-for-grads</a> link.</p><div>Amazon is pretty transparent about how it interviews people. These videos are a good overview for SDEs. They are made by actual Amazon employees (the third one is by my colleague, Samir):</div><div><br /></div><div><a href="https://www.youtube.com/watch?v=CpcxVE5JIX4" rev="en_rl_none" shape="rect" target="_blank">https://www.youtube.com/watch?v=CpcxVE5JIX4</a></div><div><a href="https://www.youtube.com/watch?v=mjZpZ_wcYFg" rev="en_rl_none" shape="rect" target="_blank">https://www.youtube.com/watch?v=mjZpZ_wcYFg</a></div><div><a href="https://www.youtube.com/watch?v=gNQ9-kgyHfo" rev="en_rl_none" shape="rect" target="_blank">https://www.youtube.com/watch?v=gNQ9-kgyHfo</a></div><div><br /></div><div>I didn't interview as an intern, but I did look up what Glassdoor had to say about the process and it was accurate about what I had to do. So these descriptions about process and questions are probably accurate <a href="https://www.glassdoor.com/Interview/Amazon-Intern-Interview-Questions-EI_IE6036.0,6_KO7,13.htm" rev="en_rl_none" shape="rect" target="_blank">https://www.glassdoor.com/Interview/Amazon-Intern-Interview-Questions-EI_IE6036.0,6_KO7,13.htm</a></div><div><br /></div><div>Right now, we are only interviewing and working remotely (until at least June 2021).</div><div><br /></div><div>Good luck!</div><div><br /></div>smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-76504803228421701862020-02-05T12:41:00.000-08:002020-02-05T12:41:15.172-08:00Working at Amazon<div dir="ltr" style="text-align: left;" trbidi="on">
Since August 2019, I've been <a href="https://twitter.com/smyles/status/1159092126237495298">working at Amazon Web Services</a>. Six months in, and it has been a really great experience!<br />
<br />
Can I help you get a job at Amazon? Yes, I can! I suggest looking at the roles available at <a href="https://amazon.jobs/">Amazon Jobs</a>. Pick out one or two and then contact me, before you apply. I can help you understand how those jobs fit within the organization. And maybe help you identify other roles which might also be a good (or a better) fit for you. I can refer you internally, if you like, which can help get you in front of the hiring manager. And I can give you tips on the interview process, including the importance of the <a href="https://www.amazon.jobs/en/principles">Amazon Leadership Principles</a>. If things progress well, I can even give you some advice on negotiating your compensation. (Amazon's compensation package is quite different from that at other companies).<br />
<br />
There is a ton of opportunity at Amazon. Some people love it, others hate it. I love it :)</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-67298256422412485672019-04-16T11:46:00.001-07:002019-04-16T11:46:46.140-07:00Standardized Rights Statements for News<div dir="ltr" style="text-align: left;" trbidi="on">
At the IPTC Spring Meeting in Lisbon <a data-cke-saved-href="https://iptc.org/events/spring-meeting-2019/" data-saferedirecturl="https://www.google.com/url?q=https://iptc.org/events/spring-meeting-2019/&source=gmail&ust=1555513593383000&usg=AFQjCNGXMQFMvw4Ivko_HTn75VB_VTa9hA" href="https://iptc.org/events/spring-meeting-2019/" target="_blank">https://iptc.org/events/<wbr></wbr>spring-meeting-2019/</a>, I proposed IPTC Rights Statements For News, an approach inspired by <a data-cke-saved-href="https://rightsstatements.org/" data-saferedirecturl="https://www.google.com/url?q=https://rightsstatements.org/&source=gmail&ust=1555513593383000&usg=AFQjCNEps15UK6BBLXzxkPg_ZHRSvQ1RDg" href="https://rightsstatements.org/" target="_blank">https://rightsstatements.<wbr></wbr>org/</a>.<br />
<br />
This approach would support both efficient filtering of content and sophisticated evaluation of restrictions. It is simple, flexible, accurate, descriptive and transparent.<br />
<br />
You can read the full proposal at <a data-cke-saved-href="https://www.slideshare.net/smyles/iptc-rights-statements-for-news" data-saferedirecturl="https://www.google.com/url?q=https://www.slideshare.net/smyles/iptc-rights-statements-for-news&source=gmail&ust=1555513593383000&usg=AFQjCNH4KQcDG4Jr0Px00KohuT1pnEbYlQ" href="https://www.slideshare.net/smyles/iptc-rights-statements-for-news" target="_blank">https://www.slideshare.net/<wbr></wbr>smyles/iptc-rights-statements-<wbr></wbr>for-news</a> but, in a nutshell, the idea is:<br />
1. Create a standard set of rights statements specific to news and media<br />
2. Express each rights statement as a URL, which can be embedded in content and therefore is suitable for filtering<br />
3. Enable each rights statement URL to be dereferencable, meaning it can be evaluated by machines or by people<br />
<br />
I think that this approach would work well for expressing rights and restrictions for news and media. Having other industry players work with rights in a compatible way would help with adoption. If customers are getting rights statements in the same way from several publishers, it is more likely that CMS and MAM vendors will implement the necessary support.<br />
<br />
If you're interested in finding out more about this or other IPTC initiatives, feel free to get in touch <a href="https://iptc.org/about-iptc/contact-us/">https://iptc.org/about-iptc/contact-us/</a></div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-73495298264864102372018-10-25T06:59:00.004-07:002018-10-25T06:59:55.194-07:00Rights, Classification and Search Relevance for News - A Short Wrap Up of the IPTC Toronto Meeting<div dir="ltr" style="text-align: left;" trbidi="on">
Last week, the <a href="https://iptc.org/">IPTC</a> held its <a href="https://www.slideshare.net/smyles/iptc-agm-2018-welcome">Autumn meeting</a>, a chance for people from around the world who have a common interest in news and media technology to discuss standards and learn from each other.<br />
<br />
We had an <a href="https://iptc.org/news/iptc-autumn-meeting-2018-day-2/">entire day</a> dedicated to news search, classification and descriptive metadata. AP's own Chad Schorr discussed our use of Elastic for robust indexing of content, Veronika Zielinska discussed AP's rules-based <a href="https://developer.ap.org/ap-metadata-services/">automated news classification system</a>, and I reviewed our new <a href="https://www.slideshare.net/smyles/image-tagging-at-the-associated-press">automated tagging for images</a>. We also heard from our peers at Bloomberg, New York Times, DPA and NTB on their systems. Finally, we had the opportunity to hear directly from <a href="https://www.elastic.co/">Elastic</a> on their suggestions for the best way to use their tools for news and media content.<br />
<br />
A fairly momentous event for IPTC this year was Google Image's agreement to display <a href="https://iptc.org/news/google-images-now-displays-image-credits-based-on-iptc-photo-metadata/">image credit metadata for photos</a>. This follows many years of discussions between IPTC, <a href="http://cepic.org/">CEPIC</a> and many others with the search giant. These talks came to a head during the <a href="http://cepic.org/category/cepic-congress/cepic-congress-2018">CEPIC Congress</a> / <a href="https://iptc.org/events/photo-metadata-conference-2018/">IPTC Photo Metadata Conference</a> in Berlin in May 2018 and I'm very glad to see that concrete changes to Google Images use of metadata followed swiftly after. During the discussion of <a href="https://www.slideshare.net/smyles/iptc-rights-working-group-toronto-october-2018">IPTC's Rights work</a> for the news and media industry, we discussed ways to build on this progress - centred on driving adoption of the <a href="https://iptc.org/standards/rightsml/">RightsML</a> standard for machine processable expressions of rights and restrictions. We also discussed ways that IPTC could cooperate with other organizations, such as <a href="https://www.europeana.eu/">Europeana</a>, to drive adoption of rights metadata.<br />
<br />
As with other IPTC face-to-face meetings, there were many other interesting presentations and discussions, including the latest developments in video metadata, sports data and hearing from Civil on their plans for blockchain-backed journalism. For a more complete overview, checkout IPTC's posts on <a href="https://iptc.org/news/iptc-autumn-meeting-day-1/">Day 1</a> and <a href="https://iptc.org/news/iptc-autumn-meeting-2018-day-2/">Day 2</a>. And consider joining IPTC's next face-to-face meetings in Lisbon and Paris.</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-45358125980903186832018-10-22T10:51:00.003-07:002018-10-22T10:51:51.417-07:00The View from Toronto - IPTC Chairman's Report 2018<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="-en-clipboard: true;">
<i style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;">I Chair the Board of Directors of <a href="https://iptc.org/" style="color: #888888; text-decoration-line: none;">IPTC</a>, a consortium of news agencies, publishers and system vendors, which develops and maintains technical standards for news, including NewsML-G2, rNews and News-in-JSON. I work with the Board to broaden adoption of IPTC standards, to maximize information sharing between members and to organize successful face-to-face meetings.</i><br style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;" /><i style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;"><br /></i><span style="background-color: white; color: #222222; font-family: arial, tahoma, helvetica, freesans, sans-serif; font-size: 13.2px;"></span><i style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;">We hold <a href="https://iptc.org/events/" style="color: #888888; text-decoration-line: none;">face-to-face meetings</a> in several locations throughout the year, although, most of the detailed work of the IPTC is now conducted via <a href="https://calendar.google.com/calendar/embed?src=3ijso33aqqfrv463gv21lp0glk@group.calendar.google.com&ctz=Etc/GMT" style="color: #888888; text-decoration-line: none;">teleconferences</a> and <a href="https://iptc.org/participate/" style="color: #888888; text-decoration-line: none;">email discussions</a>. Our <a href="https://iptc.org/events/autumn-meeting-2018/" style="color: #888888; text-decoration-line: none;">Annual General Meeting for 2018</a> was held in Toronto in October. As well as being the time for formal votes and elections, the AGM is a chance for the IPTC to look back over the last year and to look ahead about what is in store. What follows are a slightly edited version of my remarks at the Toronto Annual General Meeting.</i></div>
<div style="-en-clipboard: true;">
<br /></div>
<div style="-en-clipboard: true;">
IPTC has had a good year – the 53rd year for the organization!</div>
<div>
<br /></div>
<div>
We've updated key standards, including <a href="https://iptc.org/standards/newsml-g2/">NewsML-G2</a>, the <a href="https://iptc.org/standards/video-metadata-hub/">Video Metadata Hub</a> and the <a href="https://iptc.org/standards/media-topics/">Media Topics</a>, as well as launching <a href="https://iptc.org/standards/rightsml/">RightsML 2.0</a>, a significant upgrade in the way to express machine processable rights for news and media.</div>
<div>
<br /></div>
<div>
Of course, IPTC standards are a means, not an end. The value of the standards is the easier exchange, consumption and handling of news and media by organizations large and small around the world. So it is important that we continue to focus on making our standards straightforward to use and have them adopted as widely as possible. I think we are making progress on the usability front, such as moving away from zip'd PDFs towards actual HTML web pages for documentation of NewsML-G2. Over the last year, we've continued to work with other organizations - <a href="https://www.w3.org/">W3C</a>, <a href="https://www.europeana.eu/portal/en">Europeana</a> and <a href="http://www.minds-international.com/">MINDS</a> - to develop standards, increase adoption - and, perhaps most importantly, to open up IPTC to other perspectives. And we have had a huge win in the <a href="https://iptc.org/news/google-images-now-displays-image-credits-based-on-iptc-photo-metadata/">recognition of key photo metadata by Google Images</a>. But we clearly need to do more for both usability and adoption. During the course of this meeting, we've had some good discussion about what more we can do in both areas and I encourage all members to help spread the word about IPTC standards, and suggest ways we can accelerate adoption.</div>
<div>
<br /></div>
<div>
Of course, the nature of news and media continues to evolve. On the one hand, new forms of story telling are emerging, such as Augmented Reality and Virtual Reality. Equally, using data as the way to power stories continues to increase both data-driven stories and data-supported stories. By data-driven stories, I mean journalists reviewing large databases of information and creating stories based on the trends they find. By data-supported stories, I mean content creators using visually-interesting graphics to support their content. The automated production, curation and consumption of news and media is likely to increase for the foreseeable future, driven by both technological improvements and the seductive economics of replacing people with algorithms. And it is not only economics which are driving these changes and challenges, just as it is no longer fill-in-the-blank text stories being written by robot journalists. Synthetic media - such as "<a href="https://en.wikipedia.org/wiki/Deepfake">deep fakes</a>" - are able to produce increasingly convincing photo, video and audio stories that are indistinguishable from "real" media. Inevitably, the existence and debunking of these fakes will be used to deny legitimate reporting, with the implications of continued erosion of trust in media. All of these trends - AR, VR, data-powered journalism and dealing with trust, credibility and misinformation - are topics which IPTC has discussed over the last few years, but we have not developed any tracks of work to try to address them. In part, this is because these are, by definition, outside of the areas that our member organizations traditionally deal in and are so quite difficult to tackle in terms of establishing standards.</div>
<div>
<br /></div>
<div>
However, even within the context of standards, IPTC is opening up to new forms of experimentation. As we heard on Monday, the joint project between IPTC and MINDS, to allow for the identification of audience and interest metadata, has lead to the introduction of structures within NewsML-G2 to support rapid prototyping and experimentation. I see this as a positive move, with great potential to accelerate the work we do and to help keep it lightweight and relevant.</div>
<div>
<br /></div>
<div>
Of course, IPTC has had significant changes of its own over the last year. We bid <a href="https://iptc.org/news/saying-goodbye-to-iptc-managing-director-michael-steidl/">goodbye to Michael Steidl</a> as our Managing Director of 15 years, and welcomed <a href="https://iptc.org/news/getting-my-feet-under-the-table/">Brendan Quinn as our new Managing Director</a> this summer. We're grateful that we continue to benefit from Michael's skills and experience, as he has remained the Chairman of the Photo and Video Working Group. And I think that Brendan has made a great start in his new role in helping us keep the IPTC moving forward.</div>
<div>
<br /></div>
<div>
As part of the handover from Michael to Brendan, we decided to scan a lot of the old paper documents, including various types of <a href="https://iptc.org/moz/iptc-newsletter-archive/">IPTC newsletter</a>, dating back to 1967, two years after the organization was founded. I thought I would look back to <a href="https://app.box.com/embed/s/smfrs1qsedm093qj1dmrzias28615qcl/file/322741415115">what IPTC was up to in the year 2000</a>, the year I became a delegate to the IPTC, back when I worked for Dow Jones.</div>
<div>
<br /></div>
<div>
And there I am in the photo at the top of the page. Or, at least, the back of my head. Some things are quite reminiscent of this week's meeting - the birth of NewsML, a focus on improved communications, cooperation with other organizations e.g. MPEG-7.</div>
<div>
<br /></div>
<div>
Then I thought I would look back on <a href="https://app.box.com/embed/s/smfrs1qsedm093qj1dmrzias28615qcl/file/322744393389?showItemFeedActions=true&showParentPath=true">IPTC in 1968</a>, the year I was born. Some things were similar to today - such as a focus on fine technical details such as Alphabet Number 5 and a plan to go to Lisbon next year for a meeting. However, most of the focus in those days was mainly on lobbying against tariffs and satellite monopolies.</div>
<div>
<br /></div>
<div>
So I think it is fair to say that the IPTC has never been just a standards body. It is also, more broadly, a community of practice. We are a group of people from around the world who have a common interest in news and media technology. The process of sharing information and experiences with the group, through these face to face meetings and the online development of standards, means that the members of IPTC learn from each other, and so have an opportunity to develop professionally and personally. I hope you will agree that yesterday's discussion of news search and classification was an excellent example of exchange of experiences, both good and bad, which can help many of us avoid problems and seize opportunities, and so accelerate our work.</div>
<div>
<br /></div>
<div>
I think it is helpful for us to recognize that IPTC is a community which continues to evolve, as the interests, goals and membership of the organization change. I’m confident that – working together – we can continue to reshape the IPTC to better meet the needs of the membership and to move us further forward in support of solving the business and editorial needs of the news and media industry. I look forward to working with all of you on addressing the challenges in 2019 and beyond.</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-87171443189029872912018-05-09T07:56:00.000-07:002018-05-09T07:56:32.998-07:00News Credibility, Verification and the Madness of Crowds - A Junk News Roundup<div dir="ltr" style="text-align: left;" trbidi="on">
As the Associated Press states in our <a href="https://www.ap.org/about/news-values-and-principles/">News Values and Principles</a>:<br /><br />"We have a long-standing role setting the industry standard for ethics in journalism. It is our job — more than ever before — to report the news accurately and honestly."<br /><br />It is easy to see how AP is taking concrete steps in this area by, for example, our fact checking work (<a href="https://www.apnews.com/tag/APFactCheck">online</a>, on <a href="https://twitter.com/apfactcheck">twitter</a>). And the <a href="https://insights.ap.org/whats-new/producing-a-tool-that-will-automatically-verify-ugc">AP Verify</a> project is building a "newsroom tool that will combine artificial intelligence with our editorial expertise to automatically source and verify user-generated content."<br /><br /><div>
I thought it would be interesting to take a look at some efforts going on elsewhere in the areas of credibility, verification and identifying junk news.</div>
<div>
<h2 style="text-align: left;">
Standards Efforts</h2>
<div>
The IEEE is working on <a href="http://sites.ieee.org/sagroups-7011/">P7011</a> <b>"</b>Standard for the Process of Identifying and Rating the Trustworthiness of News Sources". The IEEE is a formal standards body, responsible for many of the technical standards which underpin the internet.</div>
<br />The <a href="https://credibilitycoalition.org/">Credibility Coalition</a> describes itself as "an interdisciplinary community committed to improving our information ecosystems and media literacy through transparent and collaborative exploration." It is not, in itself, a standards body. If you examine the <a href="https://credibilitycoalition.org/about/">CredCo "about" page</a>, you will spot my photo - I attended early meetings.<br /><br />The <a href="https://www.w3.org/community/credibility/">Credible Web W3C Community Group</a> describes its mission as "to help shift the Web toward more trustworthy content without increasing censorship or social division." There is a significant overlap between members of the Credibility Coalition and the Credible Web Community Group. Despite the W3C link, this is not a formal standards effort - Community Groups are open to anyone. There are weekly video conferences to define an informal standard.<br /><br />The <a href="https://thetrustproject.org/">Trust Project</a> describes itself as "a consortium of top news companies" and says it "is developing transparency standards that help you easily assess the quality and credibility of journalism." Again, the Trust Project is not a formal standards body (like IEEE, IPTC or W3C).</div>
<div>
<h2 style="text-align: left;">
Verification Projects</h2>
At the recent <a href="https://stuartmyles.blogspot.com/2018/04/iptc-names-brendan-quinn-as-new.html">IPTC meeting</a>, we saw presentations about two European projects aimed at helped to identify the spread of misinformation.<br /><br /><a href="http://www.truly.media/">Truly Media</a> is a joint project between <a href="http://ilab.atc.gr/">ATC</a> and <a href="http://blogs.dw.com/innovation/">Deutsche Welle</a>. It is a "a web-based collaboration platform developed to support primarily journalists and human rights workers in the verification of digital content," and was developed with funds from EU and the DNI.<br /><br /><a href="http://www.invid-project.eu/">InVid</a> aims to develop "a knowledge verification platform to detect emerging stories and assess the reliability of newsworthy video files and content spread via social media." It is an EU-funded project. Their demo was quite sophisticated. They also have a <a href="http://www.invid-project.eu/tools-and-services/invid-verification-plugin/">browser plugin</a> which lets you verify news video and images yourself.</div>
<div>
<h2>
Wisdom and Madness</h2>
Finally, via <a href="https://www.getrevue.co/profile/FairWarning/issues/fair-warning-one-hit-wonders-crowds-and-obesity-106168?utm_campaign=Issue&utm_content=view_in_browser&ut">Fair Warning</a>, I saw "<a href="http://ncase.me/crowds/">The Wisdom and Madness of Crowds</a>" - a fun explainer in the form of a game. It walks you through why some crowds turn to madness and some to wisdom, with a focus on the spread of misinformation but also good information. It helps give some insight into the different dynamics at play and even some suggestions for how to reduce the spread of junk news and amplify the spread of verified news.</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com3tag:blogger.com,1999:blog-8413152152322860613.post-13507885479378095262018-04-30T09:07:00.002-07:002018-04-30T09:07:57.084-07:00IPTC Names Brendan Quinn as New Managing Director, Celebrates the Service of Michael Steidl<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; margin-bottom: 10px;">
As well as being Director of Information Management at the AP, I'm also Chairman of the Board of the <a href="https://iptc.org/" style="color: #117da5; text-decoration-line: none;">IPTC</a>, the standards body for the international news and media industry. The IPTC sets technology standards used around the world, including <a href="https://iptc.org/standards/photo-metadata/" style="color: #117da5; text-decoration-line: none;">photo metadata</a>, <a href="https://iptc.org/standards/video-metadata-hub/" style="color: #117da5; text-decoration-line: none;">video metadata</a>and <a href="https://iptc.org/standards/rightsml/" style="color: #117da5; text-decoration-line: none;">machine readable rights</a>. We also develop technical approaches to the challenges facing the news media, such as identifying junk news, leveraging automation and coping with the impact of GDPR. Together with the other <a href="https://iptc.org/participate/membership/current-members/" style="color: #117da5; text-decoration-line: none;">members of the IPTC</a> - including <a href="https://www.reuters.com/" style="color: #117da5; text-decoration-line: none;">Reuters</a>, <a href="https://www.afp.com/en" style="color: #117da5; text-decoration-line: none;">AFP</a>, <a href="https://www.dpa.com/en/" style="color: #117da5; text-decoration-line: none;">DPA </a>and the <a href="https://www.nytimes.com/" style="color: #117da5; text-decoration-line: none;">New York Times</a> - I help organize <a href="https://iptc.org/events/" style="color: #117da5; text-decoration-line: none;">face-to-face meetings</a> and numerous <a href="https://calendar.google.com/calendar/embed?src=3ijso33aqqfrv463gv21lp0glk@group.calendar.google.com&ctz=Etc/GMT" style="color: #117da5; text-decoration-line: none;">teleconferences</a> so that we can work together and learn about interesting new projects from vendors and academics.</div>
<div style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; margin-bottom: 10px;">
The Managing Director is the sole employee of the IPTC, helping to organize the work, manage the finances and recruit new membership. For the last 15 years, Michael Steidl has held this role. When Michael announced his plan to <a href="https://iptc.org/news/michael-steidl-retiring-mid-2018/" style="color: #117da5; text-decoration-line: none;">retire in the summer of 2018</a>, I organized and ran the effort to find and <a href="https://iptc.org/news/job-opportunity-managing-director-iptc/" style="color: #117da5; text-decoration-line: none;">recruit a successor</a>. We talked to many candidates, several of whom were highly qualified. The Board did not take the decision lightly. In the end, we made an offer to <a href="https://www.linkedin.com/in/brendanquinn/" style="color: #117da5; text-decoration-line: none;">Brendan Quinn</a> - and we are thrilled he has accepted. Brendan brings with him a wealth of news technology experience, with organizations from around the world and of all sizes. He even worked at the Associated Press on <a href="https://apvideohub.ap.org/" style="color: #117da5; text-decoration-line: none;">AP's Video Hub</a>. He has a unique combination of strategic insight into the challenges faced by the news industry and the technical know-how to help guide our work in technical standards and beyond. I look forward to partnering with Brendan in charting the future of the organization and to grow the work and influence of the IPTC.</div>
<div style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; margin-bottom: 10px;">
At the IPTC's <a href="https://twitter.com/IPTC/status/988419637665849345" style="color: #117da5; text-decoration-line: none;">Spring Meeting 2018 in Athens</a>, we <a href="https://twitter.com/IPTC/status/989159666520379392" style="color: #117da5; text-decoration-line: none;">celebrated</a> <a href="https://stuartmyles.blogspot.com/2018/04/celebrating-michael-steidls-15-years-as.html" style="color: #117da5; text-decoration-line: none;">Michael's 15 years of service to the IPTC</a>, and <a href="https://twitter.com/IPTC/status/989169267022159877" style="color: #117da5; text-decoration-line: none;">welcomed</a> <a href="https://twitter.com/IPTC/status/988420721008398336" style="color: #117da5; text-decoration-line: none;">Brendan as the new Managing Director</a>, starting in June 2018.</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-54031515751781776942018-04-30T05:09:00.001-07:002018-04-30T05:09:45.492-07:00Celebrating Michael Steidl's 15 Years as IPTC Managing Director<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="-en-clipboard: true;">
<i>At the <a href="https://twitter.com/smyles/status/988319962585583616">IPTC's Spring 2018 Meeting in Athens</a>, we covered many interesting technical news topics - including video metadata, machine-readable rights, news credibility, and the challenges of localization and localisation. We also welcomed our incoming <a href="https://twitter.com/smyles/status/989030019916816384">Managing Director, Brendan Quinn</a>, and took some time to celebrate our retiring <a href="https://twitter.com/IPTC/status/989159666520379392">Managing Director, Michael Steidl</a>.</i></div>
<div style="-en-clipboard: true;">
<i><br /></i></div>
<div style="-en-clipboard: true;">
<i>As Chairman of the IPTC, I was honoured to give a speech, marking Michael's achievements over the last 15 years of service to the organization.</i></div>
<div>
<br /></div>
<div>
I would like to take a few minutes to celebrate Michael Steidl, our IPTC Managing Director for the past 15 years. Looking back over that time, many things stand out. I think we would all agree that Michael has a comprehensive understanding of all aspects of the IPTC - the standards, the history and - last but not least - the often obscure facets of the rules and regulations. Many times, an enthusiastic IPTC person has suggested some change or new idea, only to be gently reminded, "Well, I remember a discussion in 2008 where we voted on that topic and we decided..." I know that we will all miss Michael's kind but firm insistence that the rules and history of the IPTC be respected. And, in many ways, he acts as the representative of all the member organizations, whether or not they happen to be present in a particular discussion, to ensure that, for example, the large organizations don't dominate at the expense of the smaller organizations.
</div>
<div>
<br /></div>
<div>
To give some perspective on Michael's achievements, I thought it would be interesting to look back on what Michael himself said about his role and the work of the IPTC. In <a href="https://www.iptc.org/download/mirror/IPTCSpectrum018-print.pdf">December of 2003, the IPTC Spectrum</a> - the old newsletter we used to publish - included Michael's reflections on his first year as Managing Director. I recommend you read the whole thing yourself. But now I'd like to focus on three things he said.
</div>
<div>
<br /></div>
<div>
First, Michael described visiting the Van Gogh museum in Amsterdam and drew an analogy between the artist's evolving use of colour and his own intention in how he would work within the IPTC. He said "This might be a metaphor for the big task I jumped into: not to reinvent the wheel of running the IPTC office, well developed, maintained, and handed over by David Allen, but to add some extra shades of colour to IPTC’s image as a major player for standards in the news industry." Of course, looking back over the past 15 years of work, it is clear that on the one hand Michael did succeed in taking over the reins from his predecessor. But, on the other hand, he has done a lot more than simply adding some extra shades of colour. In fact, I would say that Michael's contributions to the IPTC is really more equivalent to an entirely new artistic movement - a sort of Renaissance for the organization - including managing the introduction of entirely new ways of operating the IPTC. When Michael started, there were no teleconferences or video conferences or even development of standards through email lists. There was no internet available during the meetings - which has perhaps been a mixed blessing, since people can keep up with the work back home, but we aren't always as focused.
</div>
<div>
<br /></div>
<div>
There were already some hints of these changes in Michael's remarks. The second of the three quotes I want to pick out from the 2003 Spectrum:
</div>
<div>
<br /></div>
<div>
We want to "discuss new ways of developing and maintaining our standards. These appear quite necessary to me: in the past decades IPTC usually developed and maintained one to two standards in parallel; IPTC 7901 was succeeded by IIM; and this was followed by NITF over a period of almost 15 years. But now three standards - NITF, NewsML, SportsML - have been developed and approved in a time span of about eight years. These three standards are all currently active and an additional three are under development ProgramGuideML, EventsML and an upcoming weather mark up. So soon we will have six active standards." So, three standards were developed in 15 years. Then three more in eight years. So, the IPTC work was already accelerating. But, just as a reminder, at this meeting in Athens, we discussed six different standards and will vote on three major updates. On top of that, we've discussed ten or more additional work areas - including the VideoDextra initiative, the EXTRA project and everyone's favourite topic of GDPR. Some people might think that standards take a long time to develop - and they do! - but we're no longer producing three standards in 15 years. or even only discussing technical standards anymore.
</div>
<div>
<br /></div>
<div>
Now, 15 years later, Michael knows every detail of a full range of standards and an impressive array of initiatives. As was mentioned earlier, Michael has developed an extensive records keeping scheme of - I believe it was - 5,000 file folders stuffed with IPTC information. Now, with Brendan Quinn coming on board as our new Managing Director this summer, it must seem like a daunting task to succeed such an accomplished Managing Director.</div>
<div>
<br /></div>
<div>
So, I want to come to the third Spectrum quote from Michael from back in 2003, to reassure Brendan that Michael was once in the same boat. Michael said: "Yes, I had to learn the ropes first. IPTC operations are complex and it’s like conquering an unknown island: region after region had to be explored and all details of operation had to be made transparent, for me and to others. Preparing and providing the required resources for a meeting, taking minutes that reproduce the key points of the discussions, handling the finances, and last but not least supporting and co-ordinating the technical work of IPTC was occasionally really breathtaking and I have to admit it was a steep learning curve." So, Brendan, don't worry it wasn't easy for Michael either, but it can be done!</div>
<div>
<br /></div>
<div>
Finally, I want to close with an entirely different aspect of Michael's time with the IPTC. I've talked a lot about Michael's work. And, of course, solving news technology problems is the main reason for IPTC's existence. However, Michael has always pointed out in his polite, gentle but firm way that there is more to it than that. The IPTC is also an organization made up of people. It is a unique mix of people who often come from rival organizations and quite different backgrounds, who are able to come together and learn from each other and co-operate to solve problems together. And, in that process, it is often the case that rivals can become colleagues and colleagues can become friends. Michael, many of the people here - and many others around the world - count you as a friend. And so, along with your many work achievements with the IPTC, you should be very proud of all the colleagues and friends you have made.
</div>
<div>
<br /></div>
<div>
And now, I'd like to ask all of your colleagues and friends here to join me in raising a glass, thanking you and wishing you a very happy retirement. THANK YOU MICHAEL!</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-77456855357655948672018-01-19T08:42:00.002-08:002018-01-19T08:42:52.249-08:00Developing the Digital Marketplace for Copyrighted Works Meeting in Washington DC on January 25th <div dir="ltr" style="text-align: left;" trbidi="on">
I'm looking forward to the "<a href="https://www.uspto.gov/learning-and-resources/ip-policy/copyright/developing-digital-marketplace-copyrighted-works-second">Developing the Digital Marketplace for Copyrighted Works</a>" meeting in Washington DC on January 25th. This is the latest in a series of meetings organized by the U.S. Department of Commerce's <a href="https://www.ntia.doc.gov/category/internet-policy-task-force">Internet Policy Task Force</a>. The stated goal is to "facilitate constructive, cross-industry dialogue among stakeholders about ways to promote a more robust and collaborative online marketplace for copyrighted works".<div>
<br /></div>
<div>
<img alt="Developing the digital marketplace for copyrighted works" src="https://www.uspto.gov/sites/default/files/styles/wysiwyg_large/public/DigMarketplace_Drupal.jpg?itok=hy7r4rKx" /><br /><br />
I will be speaking on the "<a href="https://www.uspto.gov/sites/default/files/documents/Agenda-2ndDigMarketplace2Meeting_01252018.pdf">identification</a>" panel ("Capturing Content, People, Permissions"). I attended the previous meeting (<a href="https://stuartmyles.blogspot.com/2017/01/developing-digital-marketplace-for.html">see my short summary and watch the videos</a>). If a day of rights discussions sounds like your idea of fun, then this is a free, open-to-the-public meeting (<a href="http://www.cvent.com/d/p5q52r">sign up</a>). You can also watch the <a href="https://uspto-events2.webex.com/uspto-events2/onstage/g.php?MTID=e0d2b765b7d3b9ed94615b9af0507c152">live stream</a>.</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-70225148770799621112017-11-20T10:12:00.000-08:002017-11-20T10:14:35.771-08:00The View from Barcelona - IPTC AGM 2017<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="-en-clipboard: true; margin-bottom: 1em; margin-top: 1em;">
<i style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;">I Chair the Board of Directors of <a href="https://iptc.org/" style="color: #888888; text-decoration-line: none;">IPTC</a>, a consortium of news agencies, publishers and system vendors, which develops and maintains technical standards for news, including NewsML-G2, rNews and News-in-JSON. I work with the Board to broaden adoption of IPTC standards, to maximize information sharing between members and to organize successful face-to-face meetings.</i><br />
<i style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;"><br /></i><span style="background-color: white; color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px;"></span><i style="background-color: white; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px;">We hold <a href="https://iptc.org/events/" style="color: #888888; text-decoration-line: none;">face-to-face meetings</a> in several locations throughout the year, although, most of the detailed work of the IPTC is now conducted via <a href="https://calendar.google.com/calendar/embed?src=3ijso33aqqfrv463gv21lp0glk@group.calendar.google.com&ctz=Etc/GMT" style="color: #888888; text-decoration-line: none;">teleconferences</a> and <a href="https://iptc.org/participate/" style="color: #888888; text-decoration-line: none;">email discussions</a>. Our <a href="https://iptc.org/events/autumn-meeting-2017/" style="color: #888888; text-decoration-line: none;">Annual General Meeting for 2017</a> was held in Barcelona in November. As well as being the time for formal votes and elections, the AGM is a chance for the IPTC to look back over the last year and to look ahead about what is in store. What follows are a slightly edited version of my remarks at the Barcelona AGM.</i></div>
<div style="-en-clipboard: true; margin-bottom: 1em; margin-top: 1em;">
IPTC has had a good year - the 52nd year for the organization!</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
We've updated our veteran standards, <a href="https://iptc.org/standards/photo-metadata/">Photo metadata</a> - our most widely-used standard - and <a href="https://iptc.org/standards/newsml-g2/">NewsML-G2</a> - our most comprehensive XML standard, marking its 10th year of development.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
We're continuing to work in partnership with other organizations, to maximize the reach and benefits of our work for the news and media industry. In coordination with <a href="http://cepic.org/">CEPIC</a> we organized the 10th annual <a href="https://iptc.org/events/photo-metadata-conference-2017/">Photo Metadata Conference</a>, looking to the future of auto tagging and search, examining advanced AI techniques - and considering both their benefits and their drawbacks for publishers. With the <a href="https://www.w3.org/">W3C</a> we have crafted the <a href="https://www.w3.org/2016/poe/wiki/Main_Page">ODRL</a> rights standard and are launching plans to create <a href="https://iptc.org/standards/rightsml/">RightsML</a> as the <a href="https://iptc.org/news/iptc-update-rightsml-align-w3cs-odrl/">official profile of the ODRL standard</a>, endorsed by both the IPTC and W3C.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
We've also tackled problems that matter to the media industry with technology solutions which are founded on standards, but go beyond them. The <a href="https://iptc.org/standards/video-metadata-hub/">Video Metadata Hub</a> is a comprehensive solution for video metadata management that allows exchange of metadata over multiple existing standards. The <a href="https://iptc.org/news/extra-demo-iptcs-innovative-software-for-classifying-news/">EXTRA</a> engine is a <a href="https://digitalnewsinitiative.com/">Google DNI</a> sponsored project to create an open source rules based classification engine for news.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
We've had some changes in the make-up of IPTC. Johan Lindgren of TT joined the <a href="https://iptc.org/about-iptc/">Board</a>. Bill Kasdorf has taken over as the <a href="https://iptc.org/about-iptc/work-structure/#prc">PR Chair</a>. And we were thrilled to add <a href="https://iptc.org/news/adobe-joins-iptc-member/">Adobe</a> as a voting member of IPTC, after many years of working together on photo metadata standards. Of course, with more mixed emotions, we have also learnt that Michael Steidl, the IPTC Managing Director, for 15 years will <a href="https://iptc.org/news/michael-steidl-retiring-mid-2018/">retire next Summer</a>. As has been clear throughout this meeting and, indeed, every day between the meetings on numerous emails and phone calls, Michael is the backbone of the work of the IPTC. Once again, I ask you to join me in acknowledging the amazing contributions and dedications that Michael displays towards the IPTC.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
Later today, we will discuss in detail our <a href="https://www.slideshare.net/smyles/the-search-for-iptcs-next-managing-director">plans to recruit</a> a successor for the crucial role of the <a href="https://iptc.org/news/job-opportunity-managing-director-iptc/">Managing Director</a>. And this is not the only challenge that the IPTC faces. We describe ourselves as "the global standards body of the news media" and that "we provide the technical foundation for the news ecosystem". As such, just as the wider news industry is facing a challenging business and technical environment, so is the IPTC.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
During this meeting, we've talked about some of the technical challenges - including the continuing evolution of file formats and supporting technologies, whilst many of us are still working to adopt the technologies from 5 or 10 year ago. We've also talked about the erosion of trust in media organizations and whether a combination of editorial and technical solutions can help.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
But I thought I would focus on a particular shift in the business and technical environment for news that may well have a bigger impact than all of those. That shift can be traced back to 2014 which, by coincidence, is when I became Chairman of the IPTC. Last week, Andre Staltz published an interesting and detailed article called "<a href="https://staltz.com/the-web-began-dying-in-2014-heres-how.html">The Web Began Dying in 2014, Here's How</a>". If you haven't read it, I recommend it. The article makes a number of interesting points and backs them up with numerous charts and statistics. I will not attempt to summarize the whole thing, but a few key points are worth highlighting.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
Staltz points out that, prior to 2014, Google and Facebook accounted for less than 50% of all of the traffic to news publisher websites. Now those two companies alone account for over 75% of referral traffic. Also, through various acquisitions, Google and Facebook properties now share the top ten websites with news publishers - in the USA 6 of the 10 most popular websites are media properties. In Brazil it is also 6 out of 10. In the UK it is 5 out of 10. The rest all belong to Facebook and Google.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
Both Facebook and Google reorganized themselves in 2014, to better focus on their core strengths. In 2014, Facebook bought Whastapp and terminated its search relationship with Bing, effectively relinquishing search to Google and doubling down on social. Also in 2014, Google bought DeepMind and shutdown Orkut, its most successful social product. This, along with the reorganization into Alphabet, meant that Google relinquished social to Facebook and allowing it to focus on search and - even more - artificial intelligence. Thus, each company seems happy to dominate their own massive parts of the web.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
But ... does that matter to media companies? Well, Facebook said if you want optimal performance on our website, you must adopt Instant Articles. Meanwhile, Google requires publishers to use its Accelerated Mobile Pages or "AMP" format for better performance on mobile devices. And, worldwide, Internet traffic is shifting from the desktop to mobile devices.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
Then, if you add in Amazon, Apple and Microsoft, it is clear that another huge shift is going on. All of the <a href="https://www.nytimes.com/2017/05/10/technology/techs-frightful-five-theyve-got-us.html">Frightful Five</a> are turning away from the Web as a source of growth and instead turning to building brand loyalty via high end devices. Following the successful strategy of Apple, they are all becoming hardware manufacturers with walled gardens. Already we have Siri, Cortana, Alexa and Google Home. But also think about the investments going on by these companies in AR and VR as ways to dominate social interactions, e-commerce and machine learning over the Internet.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
So, just as news companies must confront these shifts in the global business and technology environment, so must the IPTC. During this meeting, we've talked about our initial efforts to grapple with metadata for AR, VR and 360 degree imagery. We've also discussed techniques which are relevant to news taxonomy and classification, including machine learning and artificial intelligence. At the same time, Facebook, Google and others are not totally in control, as they - along with Twitter - found themselves having to explain the spread of disinformation on their platforms and under increased government scrutiny, particular in the EU. So, all of us, whether we describe ourselves as news publishers or not, are dealing with a rapidly changing and turbulent information, technical and business environment.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
What does this mean for IPTC? IPTC is a news technology standards organization. But it is also unique in that we are composed of news companies from around the world. We know from the membership survey that both of these factors - influence over technical solutions and access to technology peers from competitors, partners, diverse organizations large and small - are very important to current members. In order to prosper as an organization, IPTC needs to preserve these unique benefits to members, but also scale them up. This means that we need to find ways to open up the organization in ways that preserve the value of the IPTC and fit with the mission, but also in ways that are more flexible. We need to continue to move beyond saying that the only thing we work on is standards and instead use standards as a component of the technical solutions we develop, as we are doing with EXTRA and the Video Metadata Hub. We need to work with diverse groups focused on solving specific business and journalistic problems - such as trust in the media - and in helping news companies learn the best ways to work with emerging technologies, whether it is voice assistants, artificial intelligence or virtual reality.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
I'm confident that - working together - we can continue to reshape the IPTC to better meet the needs of the membership and to move us further forward in support of solving the business and editorial needs of the news and media industry. I look forward to working with all of you on addressing the challenges in 2018 and beyond.</div>
<div style="margin-bottom: 1em; margin-top: 1em;">
Thank you.</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com1tag:blogger.com,1999:blog-8413152152322860613.post-44513365917462093012017-08-30T06:00:00.000-07:002017-08-30T06:00:13.346-07:00Serverless Tip: Use the "artifact" Directive to Deploy Your Pre-Built Lambda Zip File<div dir="ltr" style="text-align: left;" trbidi="on">
<b>tl;dr:</b> <i>you can deploy pre-built zip files (e.g. for your Python Lambda) using the "artifact" directive in the serverless framework.</i><br />
<div class="separator" style="clear: both; text-align: center;">
<i><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAS3NhON7NJ6_K7XBPQz0JprUfvR_Ra_AuZnPPTTzZJqJv1JCNsFbBHBk1fD63GY3dc49vmPMpeQFvmQ04RQP78hy-OWe6ppDlo7vhV0Tu3DmbUv_BQ5-ar2D0661dA5Z_sJkMzRmAn_KP/s1600/aws-lambda-banner.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="300" data-original-width="700" height="137" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAS3NhON7NJ6_K7XBPQz0JprUfvR_Ra_AuZnPPTTzZJqJv1JCNsFbBHBk1fD63GY3dc49vmPMpeQFvmQ04RQP78hy-OWe6ppDlo7vhV0Tu3DmbUv_BQ5-ar2D0661dA5Z_sJkMzRmAn_KP/s320/aws-lambda-banner.png" width="320" /></a></i></div>
<i>
</i><br />
<h2 style="text-align: left;">
<b>AWS Lambda is Great!</b></h2>
<div>
I've been doing a lot of work recently with <a href="https://aws.amazon.com/lambda/">AWS Lambda</a>. And I'm a fan. The combination of <a href="https://aws.amazon.com/api-gateway/">API Gateway</a> + Lambda + <a href="https://www.python.org/">Python</a>, together with other AWS services including <a href="https://aws.amazon.com/dynamodb/">DynamoDB</a> and <a href="https://aws.amazon.com/s3/">S3</a>, not to mention the awesome array of <a href="https://github.com/trending/python">Python open source libraries</a>, means I'm churning out all sorts of <a href="https://martinfowler.com/articles/microservices.html">microservices</a> with glee.</div>
<div>
<br /></div>
<div>
The serverless paradigm is quite different than the traditional (serverfull?) paradigm. As well as adjusting the architectural style to take advantage of what Lambda offers, deploying the code and all of its dependencies is quite different. After looking at some alternatives, we concluded that the <a href="https://serverless.com/">Serverless Framework</a> best fit our requirements.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVNJgT2InRRbFvuzPYYmqDenI7DN_rFt7lEylzt-RlzY9AvqPpB5xLZvitDkNXf0F20W-sJkXTTi9Ew7VUQHLUSdnjvLvOZ7n2tRK3EROu1EtTZcwiqdCmK_Mrgz8zUJQ5v3Jl-Ed1mWFS/s1600/serverless.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVNJgT2InRRbFvuzPYYmqDenI7DN_rFt7lEylzt-RlzY9AvqPpB5xLZvitDkNXf0F20W-sJkXTTi9Ew7VUQHLUSdnjvLvOZ7n2tRK3EROu1EtTZcwiqdCmK_Mrgz8zUJQ5v3Jl-Ed1mWFS/s400/serverless.png" /></a></div>
<h2 style="text-align: left;">
</h2>
<h2 style="text-align: left;">
The Serverless Framework is Great!</h2>
<div>
Rather than crafting complex <a href="https://aws.amazon.com/cloudformation/">CloudFormation</a> configurations to manage my microservices in AWS, I use the Serverless Framework. (The framework also works with <a href="https://serverless.com/framework/docs/providers/openwhisk/">Apache OpenWhisk</a>, <a href="https://serverless.com/framework/docs/providers/azure/">Microsoft Azure</a> and <a href="https://serverless.com/framework/docs/providers/google/">Google Cloud</a>). Essentially Serverless is a simpler CloudFormation, specific to Lambda-centric deployments. (To be clear, it doesn't just help with deployments of AWS Lambda - Serverless covers a wide and growing range of <a href="https://serverless.com/framework/docs/providers/aws/">AWS services)</a>.<br />
<br />
Mainly by studying (*cough* copy-n-pasting *cough*) the extensive range of <a href="https://serverless.com/framework/docs/providers/aws/examples/">examples</a>, and sometimes resorting to actually <a href="https://serverless.com/framework/docs/providers/aws/guide/">reading the manual</a>, I've been able to get even quite complex setups to work, with fairly simple <a href="http://www.yaml.org/">YAML</a> configuration files. So, I recommend Serverless. (Although AWS themselves are developing an eerily similar alternative, in <a href="https://github.com/awslabs/serverless-application-model">SAM</a>, which you may also want to check out).<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgluN2ArFzgs7IoyOqhQ9upJFUqRbqJeih68ev4lcL4p4UgTGFpaLczEL7iIg4jJhTk2zpPbpcC5qbshUf-Y1r6-rPlJhHjcCRg5St0NBLTJqfR8GgXJBJxx4sYOJC7K73Vm9j4KELZNKrH/s1600/sam.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgluN2ArFzgs7IoyOqhQ9upJFUqRbqJeih68ev4lcL4p4UgTGFpaLczEL7iIg4jJhTk2zpPbpcC5qbshUf-Y1r6-rPlJhHjcCRg5St0NBLTJqfR8GgXJBJxx4sYOJC7K73Vm9j4KELZNKrH/s320/sam.png" width="231" /></a></div>
<h2 style="text-align: left;">
AWS Lambda has Limits</h2>
Sometimes you need to do stuff outside the Serverless Framework, but you still want to use all the other cool stuff it does for you.<br />
<br />
For example, AWS Lambda has certain <a href="https://docs.aws.amazon.com/lambda/latest/dg/limits.html">limits</a>. This includes a 50Mbyte deployment limit per Lambda. Now, Serverless does let you control what goes into the Lambda package via the "include" and "exclude" directives, within the "package" directive. But, sometimes, you're sailing very close to the 50Mb limit and the only way to stay underneath is to directly create your zip package yourself. Or, in my case, you have a zip file which has precisely what you need, but you also need to manipulate it to add in a pickled bit of code. (Which you do via the Python <a href="https://docs.python.org/2/library/zipfile.html">zipfile</a> library).<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAWghQ36G2NlHG_yECDSqXf3HDniB-KRd1B7H4Vvqs6YwFw8qEkFV0fH_dKIHDF1oXdusjN__LG7wwdI8kZ-NQFhHfUe6ZECgOd82hEeJ4yRnIfzpVo2aJLBflCECfvibVRoWZQr65dRRW/s1600/papier-zip-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAWghQ36G2NlHG_yECDSqXf3HDniB-KRd1B7H4Vvqs6YwFw8qEkFV0fH_dKIHDF1oXdusjN__LG7wwdI8kZ-NQFhHfUe6ZECgOd82hEeJ4yRnIfzpVo2aJLBflCECfvibVRoWZQr65dRRW/s320/papier-zip-1.jpg" width="320" /></a></div>
<br />
<br />
It took me a while to figure out, but you can use the "<a href="https://serverless.com/framework/docs/providers/aws/guide/packaging/">artifact</a>" directive as the way to deploy a zip you've packaged already.<br />
<br />
So, there you have it: Lambda is great, but you should use Serverless (or something like it) to simplify your deployments. And you can deploy pre-built zip files using the "artifact" directive.</div>
<div>
<br /></div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com5tag:blogger.com,1999:blog-8413152152322860613.post-44571382384487987132017-08-29T05:00:00.000-07:002017-08-29T05:00:09.110-07:00Emoji, Fake News and 99% Invisible<div dir="ltr" style="text-align: left;" trbidi="on">
<section class="blogcontent container-section" style="background-color: white; border-radius: 5px 5px 0px; border: 1px solid rgb(233, 233, 233); font-family: Arial, sans-serif; font-size: 13px; margin: 0px; padding: 5px 10px; position: relative;"><section class="posts" style="padding: 10px 10px 5px;"><div cols="450" id="post_129">
<div style="margin-bottom: 10px;">
This morning, I was listening to <a href="http://99percentinvisible.org/" style="color: #117da5; text-decoration-line: none;">99% Invisible</a>, the podcast all about architecture and design.</div>
<div style="margin-bottom: 10px;">
<img alt="thinking face" src="https://emojipedia-us.s3.amazonaws.com/thumbs/120/apple/96/thinking-face_1f914.png" style="border: 0px; height: 120px; max-width: 100%; vertical-align: middle; width: 120px;" /></div>
<div style="margin-bottom: 10px;">
This episode "<a href="http://99percentinvisible.org/episode/person-lotus-position/" style="color: #117da5; text-decoration-line: none;">Person in Lotus Position</a>" was about the process of adding a new <a href="https://emojipedia.org/" style="color: #117da5; text-decoration-line: none;">emoji</a> to the official set. At one point, they spoke to <a href="https://en.wikipedia.org/wiki/Jennifer_8._Lee" style="color: #117da5; text-decoration-line: none;">Jennifer 8. Lee</a> who is on the <a href="http://unicode.org/emoji/" style="color: #117da5; text-decoration-line: none;">Unicode Emoji Subcommittee</a>. I know Jenny through <a href="https://misinfocon.com/" style="color: #117da5; text-decoration-line: none;">Misinfocon</a>. This is a new effort to fight the spread of disinformation on the web via a Knight-funded <a href="https://misinfocon.com/knight-prototype-fund-supports-the-credibility-working-group-c3dcc6667569" style="color: #117da5; text-decoration-line: none;">Credibility Schema Working Group</a>. The goal is to create ways which signal whether a given piece of information on the web is credible.</div>
<div style="margin-bottom: 10px;">
<img alt="newspaper" src="https://emojipedia-us.s3.amazonaws.com/thumbs/120/google/110/newspaper_1f4f0.png" style="border: 0px; height: 120px; max-width: 100%; vertical-align: middle; width: 120px;" /></div>
<div style="margin-bottom: 10px;">
Most of the podcast episode describes the workings of the Unicode committee, which is official standards body for deciding which characters computers and phones will recognize and exchange. It gave a pretty good introduction to the importance and difficulty of this kind of standards work. (As well as being involved in the Credibility Schema Working Group, I'm also the Chairman of the <a href="http://iptc.org/" style="color: #117da5; text-decoration-line: none;">IPTC</a>, the news technology standards body. So, I like to think I have some insight into how these things work).</div>
<div style="margin-bottom: 10px;">
<img alt="technologist" src="https://emojipedia-us.s3.amazonaws.com/thumbs/120/apple/96/female-technologist_1f469-200d-1f4bb.png" style="border: 0px; height: 120px; max-width: 100%; vertical-align: middle; width: 120px;" /></div>
<div style="margin-bottom: 10px;">
If you, like me, are interested in emoji and/or the workings of technical standards groups, then I recommend the episode. (Also, if you're interested in stopping the spread of fake news or in promoting technical standards within the global news industry, feel free to get in touch).</div>
</div>
<div style="clear: both;">
</div>
</section></section><section data-blogpostid="129" id="body_repPosts_timeline_0" style="background-color: white; background-image: url("/Content/default/images/timeline.png"); background-position: 73px 0px; background-repeat: repeat-y; border-bottom: 1px solid rgb(222, 222, 222) !important; font-family: Arial, sans-serif; font-size: 13px; padding: 0px 0px 20px; position: relative; top: 0px;"><section class="in collapse" id="statusSubmit" style="border-right: medium none; height: auto; margin: 0px; overflow: visible !important; padding: 0px; position: relative; transition: height 0.35s ease; width: auto;"><div class="status-container" style="background-attachment: scroll; background-clip: initial; background-image: none; background-origin: initial; background-position: 0px 0px; background-repeat: repeat; background-size: initial; border-bottom: 1px dashed rgb(222, 222, 222); border-image: initial !important; border-left: none !important; border-right: medium none; border-top: none !important; margin: 0px; padding: 0px 0px 10px; width: auto;">
</div>
</section></section></div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com1tag:blogger.com,1999:blog-8413152152322860613.post-57477729665816113112017-05-01T14:30:00.000-07:002017-05-01T14:30:01.052-07:00Machine Learning LinkLog #2<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: inherit;">I knew that my linklog posts would be occasional. But I wasn't expecting to go quite so long between installments as this... But you know what they say: There is no "AI" in "FAILURE". <i>Oh, wait...</i><br /><br />Anyway, here is the third in an occasional series of <a href="https://en.wikipedia.org/wiki/Linklog">LinkLog</a> posts. I list links to interesting articles, video and audio items on <a href="https://en.wikipedia.org/wiki/Machine_learning">Machine Learning</a> and allied topics. Just like in my first <a href="https://stuartmyles.blogspot.com/2017/01/machine-learning-linklog-1.html">Machine Learning LinkLog</a>, and the one I did on <a href="https://stuartmyles.blogspot.com/2017/02/serverless-linklog-1.html">Serverless</a>, I group the items into three broad categories:</span><br />
<ul style="text-align: left;">
<li><span style="font-family: inherit;"><b>Introductory Non Technical</b> - Aimed at the general reader or, perhaps, technical manager who wants to learn about Machine Learning, but is not aiming to be a practitioner</span></li>
<li><span style="font-family: inherit;"><b>Introductory Technical</b> - Aimed at someone who is comfortable with programming and technology, but wishes to learn how to work with Machine Learning tools or techniques</span></li>
<li><span style="font-family: inherit;"><b>In Depth Technical</b> - Aimed at someone who is comfortable with the fundamentals of Machine Learning technology, but wants to learn more about a particular aspect or wants to master <a href="https://medium.com/built-to-adapt/day-two-problems-58a56e6023a3#.eofotqh9z">"day two" problems</a>.</span></li>
</ul>
<span style="font-family: inherit;">I also indicate whether the item is (mainly) a slidedeck, a video, a single article or a series of items.</span><br />
<div>
<span style="font-family: inherit;"><br /></span>
<h2 style="text-align: left;">
<b><span style="font-family: inherit;">Introductory Non Technical</span></b></h2>
<h3 style="text-align: left;">
<b><span style="font-family: inherit;">Mix and match analytics: data, metadata, and machine learning for the win</span></b></h3>
<div>
<span style="font-family: inherit;">From ZDNet, explores the use case of YouTube video recommendations to illustrate a practical application of machine learning. Along the way, this article touches on video fingerprinting (via hashes) and the importance of descriptive metadata (a topic dear to my own heart).</span></div>
<div>
<a href="http://www.zdnet.com/article/mix-and-match-analytics-data-metadata-and-machine-learning-for-the-win-2/"><span style="font-family: inherit;">http://www.zdnet.com/article/mix-and-match-analytics-data-metadata-and-machine-learning-for-the-win-2/</span></a></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<h3 style="text-align: left;">
<b><span style="font-family: inherit;">Gary Marcus on Advancements in Machine Learning</span></b></h3>
<div>
<span style="font-family: inherit;">Via MIT Technology Review, an accessible 18 minute video which gives an overview of the current state and challenges for "Deep Learning".</span></div>
<div>
<a href="https://www.youtube.com/attribution_link?a=fqnolY5ldKA&u=%2Fwatch%3Fv%3DSigfqe9Cwaw%26feature%3Dshare" shape="rect"><span style="font-family: inherit;">https://www.youtube.com/attribution_link?a=fqnolY5ldKA&u=%2Fwatch%3Fv%3DSigfqe9Cwaw%26feature%3Dshare</span></a></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<h3 style="text-align: left;">
<b><span style="font-family: inherit;">Machine-learning boffins 'summon demons' in AI to find exploitable bugs</span></b></h3>
<div>
<div>
<span style="font-family: inherit;">A Register news item about a team of researchers using a semi-automated technique called “steered fuzzing” to comb through machine learning programs for bugs. Failures such as mispredictions, or false outcomes, lead to detectable crashes in the program. These types of failures can potentially be exploited as security holes.</span></div>
<div>
<span style="font-family: inherit;"><a href="https://www.theregister.co.uk/2017/01/24/summoning_demons_to_find_bugs/">https://www.theregister.co.uk/2017/01/24/summoning_demons_to_find_bugs/</a></span><br />
<br />
<h3 style="text-align: left;">
<b>6 areas of AI and machine learning to watch closely</b></h3>
</div>
Quick overview article of interesting areas in AI/ML - Reinforcement learning (RL), Generative models, Networks with memory, Learning from less data and building smaller models, Hardware for training and inference and Simulation environments.</div>
<div>
<a href="https://medium.com/@NathanBenaich/6-areas-of-artificial-intelligence-to-watch-closely-673d590aa8aa">https://medium.com/@NathanBenaich/6-areas-of-artificial-intelligence-to-watch-closely-673d590aa8aa</a></div>
<div>
<br /></div>
<div>
<div>
<h2 style="text-align: left;">
<span style="font-family: inherit;"><b>Introductory Technical</b></span></h2>
</div>
<h3 style="text-align: left;">
<span style="font-family: inherit;"><b>rake-nltk</b></span></h3>
<div>
<span style="font-family: inherit;">Python implementation of the Rapid Automatic Keyword Extraction algorithm using NLTK. </span></div>
<div>
<span style="font-family: inherit;">RAKE (Rapid Automatic Keyword Extraction), is a domain independent keyword extraction algorithm which determines key phrases by analyzing the frequency of word appearance and its co-occurance with other words in the text.</span></div>
<div>
<ul style="text-align: left;">
<li>Python source <a href="https://github.com/csurfer/rake-nltk" style="font-family: inherit;">https://github.com/csurfer/rake-nltk</a></li>
<li><span style="font-family: inherit;">The original paper </span><a href="https://www.researchgate.net/publication/227988510_Automatic_Keyword_Extraction_from_Individual_Documents">https://www.researchgate.net/publication/227988510_Automatic_Keyword_Extraction_from_Individual_Documents</a></li>
</ul>
<div>
<br /></div>
<h3 style="text-align: left;">
<b>A Course in Machine Learning, by Hal Daumé III</b></h3>
</div>
An entire book covering machine learning. The online version is free, although you can donate if you like or buy a print copy. Source for the exercises are available via github (in Python).</div>
<div>
<div dir="ltr">
<a href="http://ciml.info/">http://ciml.info/</a></div>
<div dir="ltr">
<br /></div>
<h3 style="text-align: left;">
Deep Learning Papers Reading Roadmap</h3>
<div dir="ltr">
A nice, regularly-updated, set of Deep Learning papers, with a particular emphasis on speech and image recognition.</div>
<div dir="ltr">
<a href="https://github.com/songrotek/Deep-Learning-Papers-Reading-Roadmap">https://github.com/songrotek/Deep-Learning-Papers-Reading-Roadmap</a></div>
<div dir="ltr">
<br /></div>
<h2>
<b>In Depth Technical</b></h2>
<h3 style="text-align: left;">
Generating Politically-Relevant Event Data</h3>
<div>
Using convolutional nets (deep learning) for event classification, rather than traditional dictionary-based approaches. Shows good results for both English and Arabic and claims that the technique would work well for ontologies in other domains.</div>
<div>
<a href="https://arxiv.org/abs/1609.06239">https://arxiv.org/abs/1609.06239</a></div>
<div>
<br /></div>
<div>
<h3 style="text-align: left;">
Transparent predictions</h3>
</div>
<div>
Since algorithms are being used more-and-more to make predictions which guide areas such as public policy and policing, should the algorithms be "transparent"? Detailed discussion of what this might mean and why transparency is important. And under circumstances it might not be desirable.</div>
<div>
<a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2324240">https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2324240</a></div>
<div>
<br /></div>
<div>
See also <a href="https://whitecollar.thenewinquiry.com/">https://whitecollar.thenewinquiry.com/</a> which uses data from LinkedIn to predict white collar crime based on people's faces. (Which looks to me to be a parody, however there are quite a few efforts to use Machine Learning techniques to identify potential criminals based on their faces, posture, etc.)</div>
<div>
<br /></div>
<h3 style="text-align: left;">
What are Dimentionality Reduction Techniques?</h3>
<div>
Dimensionality reduction is the process of reducing the number of random variables in a machine learning data set. It can be divided into feature selection and feature extraction.In many problems, the measured data vectors are high-dimensional but we can try to convert into a smaller number of variables to deal with. Outlines several techniques which can be tried. (Links to source code in R).<br />
<br />
<a href="https://analyticsdataexploration.com/what-are-dimentionality-reduction-techniques/">https://analyticsdataexploration.com/what-are-dimentionality-reduction-techniques/</a><br />
<br /></div>
<h2 style="text-align: left;">
<span style="font-family: inherit;">Previous LinkLogs</span></h2>
<br />
<ul style="text-align: left;">
<li><a href="https://stuartmyles.blogspot.com/2017/01/machine-learning-linklog-1.html"><span style="font-family: inherit;">Machine Learning LinkLog #1</span></a></li>
<li><a href="https://stuartmyles.blogspot.com/2017/02/serverless-linklog-1.html"><span style="font-family: inherit;">Serverless LinkLog #1</span></a></li>
</ul>
<br />
<br /></div>
</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-49673922540678589952017-04-04T07:55:00.001-07:002017-04-04T07:55:39.401-07:00EXTRA Progress - Building an Open Source News Classification Engine<div dir="ltr" style="text-align: left;" trbidi="on">
Over the last year, I've been <a href="http://www.slideshare.net/smyles/update-on-iptcs-extra-open-source-classification-engine">leading a project within the IPTC</a> to build an open source rules-based classification engine for news. Dubbed "EXTRA" (shorthand for EXTraction Rules Apparatus), the software will be freely-available under an MIT license. The work is being funded by a grant of €50,000 from Google's <a href="https://www.digitalnewsinitiative.com/">Digital News Initiative Innovation Fund</a>.<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_tAKjVowsiICerkDAyvdnLussY-h4Pi1Y7ch4hGLknLgGpPfLzsdp_hDTEV15FTlC_7PWWIV0oUzNygmTfCy7XqW4A8eTTT0r1_EsjIPyleGThSCSiAeZ4tl-XjXFz5ddUhMRls4pXRB2/s1600/2079446635_d895557910_b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_tAKjVowsiICerkDAyvdnLussY-h4Pi1Y7ch4hGLknLgGpPfLzsdp_hDTEV15FTlC_7PWWIV0oUzNygmTfCy7XqW4A8eTTT0r1_EsjIPyleGThSCSiAeZ4tl-XjXFz5ddUhMRls4pXRB2/s320/2079446635_d895557910_b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="background: rgb(255, 255, 255); border: 1px solid rgb(238, 238, 238); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px 5px; color: #222222; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13.2px; margin-left: auto; margin-right: auto; padding: 5px; position: relative; text-align: center;"><tbody>
<tr><td class="tr-caption" style="font-size: 10.56px;">“Extra” by Jeremy Brooks <a href="https://flic.kr/p/4aKH3c" style="color: #888888; text-decoration: none;">https://flic.kr/p/4aKH3c</a></td></tr>
</tbody></table>
</td></tr>
</tbody></table>
<div>
We have drawn up the technical requirements, hired <a href="http://www.infalia.com/">Infalia PC</a> to partner with us on building the software and selected <a href="http://www.elastic.co/">Elasticsearch</a>'s percolator as the fundamental technology. We've licensed two news corpora - English from <a href="http://www.reuters.com/">Reuters</a> and German from the <a href="https://www.apa.at/">Austrian Press Agency</a>. Linguists are creating rules for classifying those corpora with <a href="https://iptc.org/standards/media-topics/">IPTC’s Media Topics</a> using the EXTRA engine.</div>
<div>
<br /></div>
<div>
I'm thrilled to say that the project is on track to deliver a working version of the engine, together with the sample rules, by the summer of 2017. Read more about the project at <a href="https://iptc.org/news/extra-iptc-infalia-elasticsearch-open-source-rules-based-classification-engine/">https://iptc.org/news/extra-iptc-infalia-elasticsearch-open-source-rules-based-classification-engine/</a> and feel free to contact me for more information.</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-76563448543071063382017-02-21T14:41:00.000-08:002017-09-08T11:46:07.354-07:00Serverless LinkLog #1<div dir="ltr" style="text-align: left;" trbidi="on">
This is the second in an occasional series of <a href="https://en.wikipedia.org/wiki/Linklog">LinkLog</a> posts. I list links to interesting articles, video and audio items on "<a href="https://en.wikipedia.org/wiki/Serverless_computing">serverless computing</a>" and allied topics. Just like in my <a href="https://stuartmyles.blogspot.com/2017/01/machine-learning-linklog-1.html">Machine Learning LinkLog #1</a> I group the items into three broad categories:<br />
<br />
<b>Introductory Non Technical</b> - Aimed at the general reader or, perhaps, technical manager who wants to learn about Serverless, but is not aiming to be a practitioner<br />
<b>Introductory Technical</b> - Aimed at someone who is comfortable with programming and technology, but wishes to learn how to work with serverless tools or techniques<br />
<b>In Depth Technical</b> - Aimed at someone who is comfortable with the fundamentals of serverless technology, but wants to learn more about a particular aspect or wants to master <a href="https://medium.com/built-to-adapt/day-two-problems-58a56e6023a3#.eofotqh9z">"day two" problems</a>.<br />
<div>
<br />
I also intend to indicate whether the item is (mainly) a slidedeck, a video, a single article or a series of items. A secondary goal is to avoid the trope of using pictures of clouds to illustrate serverless topics - however, I apologize in advance if I fail.</div>
<div>
<br />
<h3 style="text-align: left;">
<b>If You Only Read One Thing About Serverless</b></h3>
</div>
<div>
Having said all of that, if you only want to read one thing about serverless, then I recommend "<a href="https://www.martinfowler.com/articles/serverless.html">Serverless Archictectures</a>" by <a href="https://twitter.com/mikebroberts">Mike Roberts</a>. It will take you from 0 to 60 - not only understanding what are serverless architectures and how they relate to Backend-As-A-Service and Function-As-A-Service, but also their future potential and current shortcomings. This is for both technical and non technical people and will give you much greater insight than any of the introductory material listed below. However, it is quite long - I wound up reading it in chunks. So, you might read one or more of the "intro" items, before coming back to this one.</div>
<div>
<a href="https://www.martinfowler.com/articles/serverless.html">https://www.martinfowler.com/articles/serverless.html</a></div>
<div>
<br /></div>
<div>
<h3 style="text-align: left;">
<b>Introductory Non Technical</b></h3>
<b>How Can Enterprises Leverage Serverless Computing Platforms?</b></div>
<div>
Two page introduction from Forbes, talks a lot about AWS Lambda, but mentions competitors. Discusses how various large enterprises are blending serverless with their other compute strategies.</div>
<div>
<a href="http://www.forbes.com/sites/janakirammsv/2017/01/31/how-can-enterprises-leverage-serverless-computing-platforms/#7c9220705cc6">http://www.forbes.com/sites/janakirammsv/2017/01/31/how-can-enterprises-leverage-serverless-computing-platforms/#7c9220705cc6</a>
</div>
<div>
<br /></div>
<div>
<div>
<div style="font-size: 15px;">
<b>A Guide to Serverless Computing with AWS Lambda</b></div>
</div>
<div>
<div dir="ltr">
<div>
Decent introduction for technical managers - has some source code, but it really isn't aimed at help you write lambda code. Very AWS specific, of course, but has a nod to competitor offerings.</div>
</div>
<div>
<a href="http://www.cuelogic.com/blog/a-guide-to-serverless-computing-with-aws-lambda/">http://www.cuelogic.com/blog/a-guide-to-serverless-computing-with-aws-lambda/</a></div>
</div>
<div>
<br /></div>
</div>
<div>
<div>
<div style="font-size: 15px;">
<b>AWS Lambda is Everywhere</b></div>
</div>
<div>
<div>
Adrian Cockcroft gives an overview of AWS Lambda, with particular emphasis on the latest (November 2016) announcements from AWS re:Invent.</div>
<div>
<a href="https://read.acloud.guru/aws-lambda-everywhere-f28c855e44b9#.sohqd5jry">https://read.acloud.guru/aws-lambda-everywhere-f28c855e44b9#.sohqd5jry</a></div>
</div>
<b><br />Evolution of Business Logic from Monoliths through Microservices, to Functions</b><br />
<div>
<div>
Adrian Cockcroft again - portraying AWS Lambda as the logical next step in the business of computing.</div>
<div>
<a href="https://medium.com/@adrianco/evolution-of-business-logic-from-monoliths-through-microservices-to-functions-ff464b95a44d#.jfzqm6ar8">https://medium.com/@adrianco/evolution-of-business-logic-from-monoliths-through-microservices-to-functions-ff464b95a44d#.jfzqm6ar8</a></div>
</div>
<div>
<br /></div>
<b>WTF IS OPERATIONS? #SERVERLESS</b></div>
<b>OPERATIONAL BEST PRACTICES #SERVERLESS</b><br />
<div>
Two part article from <a href="https://twitter.com/mipsytipsy">Charity Majors</a>. Pours cold water on the notion that "serverless == noops" i.e. that just because you are not provisioning servers yourself that you therefore don't need to worry about operational problems anymore. In fact, she makes a compelling case that serverless requires all developers to think much more profoundly about operational, "day two" problems. She also points out how much more opaque serverless applications are, making them much harder to debug.<b><br /></b><br />
<div>
<div>
<a href="https://charity.wtf/2016/05/31/wtf-is-operations-serverless/">https://charity.wtf/2016/05/31/wtf-is-operations-serverless/</a></div>
<div>
<a href="https://charity.wtf/2016/05/31/operational-best-practices-serverless/">https://charity.wtf/2016/05/31/operational-best-practices-serverless/</a></div>
</div>
</div>
<div>
<br /></div>
<div>
<h3 style="text-align: left;">
<b>Introductory Technical</b></h3>
<div>
<b>Serverless</b></div>
</div>
This is a bit confusing but ... there is an open source framework <i>called</i> "<a href="https://serverless.com/">Serverless</a>" aimed at making it easier to work with various technologies - including AWS Lambda, Azure Functions and Google CloudFunctions. There are other frameworks (see Zappa and Apex below) but this one seems popular (maybe because it is likely to come up when you google for "serverlesss"? Or, more seriously, maybe because it supports a variety of technologies and deployment scenarios - including local for development)<br />
<a href="http://www.serverless.com/">http://www.serverless.com</a><br />
<div>
<br /></div>
<div>
<b>Zappa</b></div>
<div>
<div>
Open source framework for for turning Python WSGI applications into serverless apps using AWS Lambda and Gateway. Supports advnaced capabilities, including scheduling and keep_warm (for better performance).</div>
</div>
<div>
<a href="https://github.com/Miserlou/Zappa">https://github.com/Miserlou/Zappa</a></div>
<div>
<br /></div>
<div>
<b>Apex</b></div>
<div>
<div>
Open source framework aimed at making AWS Lambda easier to work with. Adds support for non Lambda-native languages (such as golang) via a node.js shim.</div>
</div>
<div>
<div>
<a href="https://github.com/apex/apex">https://github.com/apex/apex</a></div>
<div>
<br /></div>
<b>Writing a cron job microservice with Serverless and AWS Lambda</b><br />
<div>
A hands on article takes you through a practical example of how to write a cron-equivalent using Serverless (the framework) and AWS Lambda.</div>
<div>
<a href="https://blog.readme.io/writing-a-cron-job-microservice-with-serverless-and-aws-lambda/">https://blog.readme.io/writing-a-cron-job-microservice-with-serverless-and-aws-lambda/</a></div>
<div>
<div>
<div>
<br /></div>
<b>How to build powerful back-ends easily with Serverless</b><br />
<div>
An image processing server in node,js with the Serverless framework, using a bundle of AWS services - <a href="https://aws.amazon.com/lambda/">Lambda</a>, <a href="https://aws.amazon.com/rekognition/">Rekognition</a> and <a href="https://aws.amazon.com/s3/">S3</a>.</div>
<div>
<a href="https://hackernoon.com/how-to-build-powerful-back-ends-easily-with-serverless-17a833bc7ede#.amzh70vhx">https://hackernoon.com/how-to-build-powerful-back-ends-easily-with-serverless-17a833bc7ede#.amzh70vhx</a></div>
<div>
<br />
<b>Bring static to life using serverless</b></div>
<div>
<div>
Introduction to Microsoft's Azure functions.</div>
<a href="https://hackernoon.com/bring-static-to-life-using-serverless-e722be5eaf84">https://hackernoon.com/bring-static-to-life-using-serverless-e722be5eaf84</a></div>
<br />
<div>
<b>Serverless Video Playlist</b></div>
Nine video playlist of hands-on basic coding with AWS serverless with an emphasis on Lambda and node.js.</div>
<div>
<a href="https://www.youtube.com/playlist?list=PLGyRwGktEFqe6stkPEFj4pBsDu0JMENxO" shape="rect" target="_blank">https://www.youtube.com/playlist?list=PLGyRwGktEFqe6stkPEFj4pBsDu0JMENxO</a></div>
<div>
<br /></div>
<h3 style="text-align: left;">
In Depth Technical</h3>
<b>Serverless Workflows on AWS: My Journey From SWF to Step Functions</b></div>
<div>
<div>
In depth technical discussion of AWS Simple Workflow and Lambda, with an emphasis on AWS Step Functions - sort of like Finite State Machines.</div>
</div>
<div>
<a href="https://forrestbrazeal.com/2016/12/29/serverless-workflows-on-aws-my-journey-from-swf-to-step-functions" shape="rect">https://forrestbrazeal.com/2016/12/29/serverless-workflows-on-aws-my-journey-from-swf-to-step-functions</a>/</div>
<div>
<br /></div>
<b>Fission: Serverless Functions as a Service for Kubernetes</b><br />
<div>
Using <a href="http://kubernetes.io/">Kubernetes</a> to host Functions as a Service. Kubernetes is a way to host Linux containers within a cluster. So, this is a way to achieve a serverless architecture without using any of Lambda, Azure or CloudFunctions. In other words, this is a kind of "private serverless" (akin to "private cloud").<br />
<div>
<a href="http://blog.kubernetes.io/2017/01/fission-serverless-functions-as-service-for-kubernetes.html">http://blog.kubernetes.io/2017/01/fission-serverless-functions-as-service-for-kubernetes.html</a></div>
</div>
<div>
<br /></div>
</div>
<div>
<b>StreamAlert</b></div>
<div>
<div>
Airbnb's open source framework for analyzing massive log streams and alerting on them by defining rules in Python. Uses AWS Lambda and Kinesis, amongst other technologies.</div>
</div>
<div>
<a href="https://github.com/airbnb/streamalert">https://github.com/airbnb/streamalert</a></div>
<div>
<br /></div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com2tag:blogger.com,1999:blog-8413152152322860613.post-89283953704927185582017-01-25T06:00:00.000-08:002017-01-25T06:00:12.374-08:00Machine Learning LinkLog #1<div dir="ltr" style="text-align: left;" trbidi="on">
This is the first in an occasional series of <a href="https://en.wikipedia.org/wiki/Linklog">LinkLog</a> posts. I list links to interesting articles, video and audio items on <a href="https://en.wikipedia.org/wiki/Machine_learning">Machine Learning</a> and allied topics. I group them into three broad categories:<br />
<br />
<ul style="text-align: left;">
<li><b>Introductory Non Technical</b> - Aimed at the general reader or, perhaps, technical manager who wants to learn about Machine Learning, but is not aiming to be a practioner</li>
<li><b>Introductory Technical</b> - Aimed at someone who is comfortable with programming and technology, but wishes to learn how to work with Machine Learning tools or techniques</li>
<li><b>In Depth Technical</b> - Aimed at someone who is comfortable with the fundamentals of Machine Learning technology, but wants to learn more about a particular aspect or wants to master <a href="https://medium.com/built-to-adapt/day-two-problems-58a56e6023a3#.eofotqh9z">"day two" problems</a>.</li>
</ul>
<br />
I also intend to indicate whether the item is (mainly) a slidedeck, a video, a single article or a series of items. My goal is to avoid the trope of using pictures of robots to illustrate machine learning topics. However, I apologize in advance if I fail (and you'll certainly find plenty of robot pictures in the items I link to).<br />
<br />
<h2 style="text-align: left;">
Introductory Non Technical</h2>
<h4 style="text-align: left;">
What is Machine Learning?</h4>
Short, two-and-a-half minute explainer video from Oxford Sparks ("the amazing stories of science taking place at the University of Oxford"). Accurate and accessible though potentially misleading as it implies that people aren't needed at all. (Note that the doesn't say this directly but you have to listen carefully to pick up that nuance). Avoids the use of unnecessary jargon.<br />
<a href="https://www.youtube.com/watch?v=f_uwKZIAeM0">https://www.youtube.com/watch?v=f_uwKZIAeM0</a><br />
<br />
<h4 style="text-align: left;">
Hype vs. Reality: The AI Explainer </h4>
Twenty eight slide explainer deck from Luminary Labs. Covers the different aspects of AI that are currently en vogue. Attempts to predict what is likely to actually succeed and what it probably just hype or misunderstanding.<br />
<div>
<a href="http://www.slideshare.net/LuminaryLabs/hype-vs-reality-the-ai-explainer">http://www.slideshare.net/LuminaryLabs/hype-vs-reality-the-ai-explainer</a><br />
<br /></div>
<h4 style="text-align: left;">
Top 10 Hot Artificial Intelligence (AI) Technologies</h4>
<div>
An overview of the findings from a Forrester Research report about Artificial Intelligence in 2017.</div>
<div>
<a href="http://www.forbes.com/sites/gilpress/2017/01/23/top-10-hot-artificial-intelligence-ai-technologies/#2510ffab42de">http://www.forbes.com/sites/gilpress/2017/01/23/top-10-hot-artificial-intelligence-ai-technologies/#2510ffab42de</a><br />
<br /></div>
<h4 style="text-align: left;">
Kristen Stewart co-wrote a paper on machine learning</h4>
The actress and director co-authored a paper on 'style transfers'. This is a neural-network technique to blend the content of one photo with the style of another. (It is popular with apps such as Prisma). Stewart and her team used the technique in her directoral debut "Come Swim" to create dream-like sequences in the film. The paper describes tricks she used to better control the style transfer effects. This article links in depth technical topics (neural networks and visual processing) with consumer products (feature films).<br />
<a href="https://www.engadget.com/2017/01/20/kristen-stewart-paper-style-transfers-come-swim/">https://www.engadget.com/2017/01/20/kristen-stewart-paper-style-transfers-come-swim/</a><br />
<br />
<h2 style="text-align: left;">
Introductory Technical</h2>
<h4 style="text-align: left;">
<b>Machine Learning is Fun</b></h4>
A series of articles introducing various technical aspects of Machine Learning. Available in several languages.<a href="https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471#.nzyqhondf">https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471#.nzyqhondf</a><br />
<br />
<h4 style="text-align: left;">
A Flask API for serving scikit-learn models</h4>
Assumes a lot of scikit knowledge, but a good overview of how to create an API using Flask on the front end and scikit on the backend. The API is not truly <a href="https://en.wikipedia.org/wiki/Representational_state_transfer">RESTful</a> (the endpoints are verbs not nouns, for example). However, it is still a useful introduction and contains the full Python code.<br />
<a href="https://medium.com/@amirziai/a-flask-api-for-serving-scikit-learn-models-c8bcdaa41daa#.ti049hnb2">https://medium.com/@amirziai/a-flask-api-for-serving-scikit-learn-models-c8bcdaa41daa#.ti049hnb2</a><br />
<br />
<h4 style="text-align: left;">
Hitchhiker's Guide to Data Science, Machine Learning, R, Python</h4>
<div>
A "best of" collection of links, relating to Machine Learning and Data Science, with a particular emphasis on Python and R.</div>
<a href="http://www.datasciencecentral.com/profiles/blogs/hitchhiker-s-guide-to-data-science-machine-learning-r-python">http://www.datasciencecentral.com/profiles/blogs/hitchhiker-s-guide-to-data-science-machine-learning-r-python</a><br />
<br />
<h2 style="text-align: left;">
In Depth Technical</h2>
<div>
<b>Google's 43 Practical Rules of Machine Learning in Industry</b></div>
Martin Zinkevich compiled 43 rules "intended to help those with a basic knowledge of machine learning get the
benefit of best practices in machine learning from around Google." Here are three(!) different presentations of those rules.<br />
<br />
<ul style="text-align: left;">
<li>The original PDF <a href="http://martin.zinkevich.org/rules_of_ml/rules_of_ml.pdf">http://martin.zinkevich.org/rules_of_ml/rules_of_ml.pdf</a></li>
<li>A Github set of pages, for those who prefer linkable text <a href="https://github.com/thundergolfer/google-rules-of-machine-learning">https://github.com/thundergolfer/google-rules-of-machine-learning</a></li>
<li>A zine versions via <a href="http://jvns.ca/zines/">http://jvns.ca/zines/</a> for those who prefer comics <a href="http://jvns.ca/production-machine-learning.pdf">http://jvns.ca/production-machine-learning.pdf</a></li>
<li>The zine version in print-n-fold form <a href="http://jvns.ca/production-machine-learning-print.pdf">http://jvns.ca/production-machine-learning-print.pdf</a></li>
</ul>
<br />
<br />
<h4 style="text-align: left;">
Predicting with confidence: the best machine learning idea you never heard of</h4>
<h2 id="post-2252">
<div style="font-size: medium; font-weight: normal;">
An article advocating the use of "conformal prediction" a technique for calculating conformance intervals for your machine learning predictions, no matter what the forecast technique or dataset you're working with.</div>
<div style="font-size: medium; font-weight: normal;">
<a href="https://scottlocklin.wordpress.com/2016/12/05/predicting-with-confidence-the-best-machine-learning-idea-you-never-heard-of/">https://scottlocklin.wordpress.com/2016/12/05/predicting-with-confidence-the-best-machine-learning-idea-you-never-heard-of/</a></div>
</h2>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com1tag:blogger.com,1999:blog-8413152152322860613.post-24498580468703364952017-01-11T05:00:00.000-08:002017-01-11T06:24:01.900-08:00Developing the Digital Marketplace for Copyrighted Works<div dir="ltr" style="text-align: left;" trbidi="on">
I recently spoke at "<a href="https://www.uspto.gov/learning-and-resources/ip-policy/public-meeting-developing-digital-marketplace-copyrighted-works-dec">Developing the Digital Marketplace for Copyrighted Works</a>", organized by the <a href="https://www.ntia.doc.gov/category/internet-policy-task-force">Commerce Department’s Internet Policy Taskf</a><a href="https://www.ntia.doc.gov/category/internet-policy-task-force">orce</a>. The goal of the public meeting was to "facilitate constructive, cross-industry dialogue among stakeholders about ways to promote a more robust and collaborative digital marketplace for copyrighted works". My impression of the roughly 80 attendees was of a mix of publishers and lawyers - who tended to be pretty conservatively dressed - and music people - who tended to be in more sparkly outfits. Most of the discussion revolved around music, photo and video, but it turned out that a lot of the problems and potential solutions were quite similar across industries and media types. I've linked to the video of the event at the end of this post.<br />
<br />
I've been involved in rights work at the Associated Press, including adding <a href="http://www.slideshare.net/smyles/iptcap-rights-api201506stuartmyles">rights and pricing metadata to AP's Image API</a>. I lead the <a href="http://dev.iptc.org/RightsML">IPTC's Rights Working Group</a>. And I'm working within the <a href="https://www.w3.org/2016/poe/wiki/Main_Page">W3C's POE</a> group to turn <a href="https://www.w3.org/community/odrl/">ODRL</a> into an official standard.<br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="en">
Bright and early at the USPTO “developing the digital marketplace for copyrighted works” meeting <a href="https://t.co/QoXVGStshC">pic.twitter.com/QoXVGStshC</a></div>
— Stuart Myles (@smyles) <a href="https://twitter.com/smyles/status/807219435031449601">December 9, 2016</a></blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script>
<br />
<div>
<br />
I spoke on the first panel with the topic of "Unique Identifiers and Metadata". I was teased a bit about "fake news" (this was in Alexandria. VA on December 9th 2016, so close both in time and place to the U.S. Presidential Election). Amongst other things, I spoke about how apparently simple things - "let's agree on identifiers for photos" - turned out to be quite complicated - since a text item, a photo or a video is not really a single, simple atomic thing, but more like a molecule of information. (You can watch the entire panel - which turned out to be quite lively, despite the early hour - in the video linked below).<br />
<br />
I also moderated a round table, with the topic "What are the practical steps to adopting standards for identifying and controlling copyrighted works?". As everyone at my table introduced themselves, they mostly said "oh, I'm just here to learn, I don't have much to contribute" but, in fact, we had a very vigorous discussion, which covered *lots* of topics! I summarized them during the "Plenary" session (again, I've linked to the video below). We talked about three areas. First, was why we need standards - creators and rights holders should be compensated for their work, which could be financial compensation or it could be getting distribution and recognition. Second, we talked about the big barriers - technology, the culture of the Internet and human nature itself. Finally, we talked about concrete steps which the government and other organizations could take to get standards developed and adopted. (For the details, you'll need to watch the video. My segment runs from about 39:30 to about 45:55 but I recommend watching everyone's summary of their individual breakout sessions)<br />
<br />
If you're interested in rights, then you should consider coming to London for the week of May 15th. That's because the BBC is hosting a Rights Day on May 15th, the IPTC will be holding its <a href="https://iptc.org/events/">Spring Meeting</a> (including discussing RightsML) on May 16th and 17th and W3C will hold its face-to-face meeting on May 18th and 19th. If you're interested in any or all, contact <a href="https://twitter.com/smyles">me</a> and I will put you in touch with the right rights people.<br />
<br />
<b>Opening Remarks and Panel Session 1: Unique Identifiers and Metadata</b></div>
<div>
<div class="arve-wrapper" data-arve-mode="normal" data-arve-provider="livestream" id="video-4828334events6673528videos143885468" itemscope="" itemtype="http://schema.org/VideoObject">
<span class="arve-embed-container"><iframe allowfullscreen="" class="arve-iframe fitvidsignore" frameborder="0" height="270" scrolling="no" src="https://livestream.com/accounts/4828334/events/6673528/videos/143885468/player?utm_source=lsplayer&utm_medium=embed&height=720&width=1280&autoPlay=false" width="480"></iframe></span></div>
<h5>
Panel Session 2: Registries and Rights Expression Languages</h5>
<div class="arve-wrapper" data-arve-mode="normal" data-arve-provider="livestream" id="video-4828334events6673528videos143899667" itemscope="" itemtype="http://schema.org/VideoObject">
<span class="arve-embed-container"><iframe allowfullscreen="" class="arve-iframe fitvidsignore" frameborder="0" height="270" scrolling="no" src="https://livestream.com/accounts/4828334/events/6673528/videos/143899667/player?utm_source=lsplayer&utm_medium=embed&height=720&width=1280&autoPlay=false" width="480"></iframe></span></div>
<h3>
</h3>
<br />
<h5>
Panel Session 3: Digital Marketplaces</h5>
<div class="arve-wrapper" data-arve-mode="normal" data-arve-provider="livestream" id="video-4828334events6673528videos143906834" itemscope="" itemtype="http://schema.org/VideoObject">
<span class="arve-embed-container"><iframe allowfullscreen="" class="arve-iframe fitvidsignore" frameborder="0" height="270" scrolling="no" src="https://livestream.com/accounts/4828334/events/6673528/videos/143906834/player?utm_source=lsplayer&utm_medium=embed&height=720&width=1280&autoPlay=false" width="480"></iframe></span></div>
<br />
<h5>
Plenary Session</h5>
<div class="arve-wrapper" data-arve-mode="normal" data-arve-provider="livestream" id="video-4828334events6673528videos143924190" itemscope="" itemtype="http://schema.org/VideoObject">
<span class="arve-embed-container"><iframe allowfullscreen="" class="arve-iframe fitvidsignore" frameborder="0" height="270" scrolling="no" src="https://livestream.com/accounts/4828334/events/6673528/videos/143924190/player?utm_source=lsplayer&utm_medium=embed&height=720&width=1280&autoPlay=false" width="480"></iframe></span></div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com2tag:blogger.com,1999:blog-8413152152322860613.post-25492257240690493932016-11-22T07:46:00.000-08:002016-11-22T07:46:30.603-08:00The View From Berlin - IPTC AGM 2016<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<i>I Chair the Board of Directors of <a href="https://iptc.org/">IPTC</a>, a consortium of news agencies, publishers and system vendors, which develops and maintains technical standards for news, including NewsML-G2, rNews and News-in-JSON. I work with the Board to broaden adoption of IPTC standards, to maximize information sharing between members and to organize successful face-to-face meetings.</i><br />
<i><br /></i>
<i>We hold <a href="https://iptc.org/events/">face-to-face meetings</a> in several locations throughout the year, although, most of the detailed work of the IPTC is now conducted via <a href="https://calendar.google.com/calendar/embed?src=3ijso33aqqfrv463gv21lp0glk@group.calendar.google.com&ctz=Etc/GMT">teleconferences</a> and <a href="https://iptc.org/participate/">email discussions</a>. Our <a href="https://iptc.org/news/5-top-reasons-attend-iptcs-autumn-2016-meeting/">Annual General Meeting for 2016</a> was held in Berlin in October. As well as being the time for formal votes and elections, the AGM is a chance for the IPTC to look back over the last year and to look ahead about what is in store. What follows are my prepared remarks at the Berlin AGM.</i><br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="en">
Good morning from <a href="https://twitter.com/hashtag/IPTC?src=hash">#IPTC</a> Chairman <a href="https://twitter.com/smyles">@smyles</a>, at the <a href="https://twitter.com/hashtag/IPTC?src=hash">#IPTC</a> Autumn Meeting 2016, <a href="https://twitter.com/hashtag/dpa?src=hash">#dpa</a> in Berlin! <a href="https://t.co/8u1KvBrfEu">pic.twitter.com/8u1KvBrfEu</a></div>
— IPTC (@IPTC) <a href="https://twitter.com/IPTC/status/790458482550005760">October 24, 2016</a></blockquote>
<br />
<h2 style="text-align: left;">
The Only Constant</h2>
<h2 style="text-align: left;">
<div style="font-size: medium; font-weight: normal;">
It is clear that the news industry is experiencing a great degree of change. The business side of news continues to be under pressure. And, in no small part, this is because the technology involved in the creation and distribution of news continues to rapidly evolve.<br />
<br />
However, in many ways, this is a golden age of journalism. The demand for news and information has never been higher. The immediate and widespread distribution of news has never been easier.<br />
<br />
The IPTC has been around for 51 years. I've been a delegate to the IPTC since 2000 and Chairman of the Board since June 2014. I'd like to give my perspective on the changes going on within the news industry and how IPTC has and will respond.<br />
<br /></div>
We're On a Mission</h2>
<h2>
<div style="font-size: medium; font-weight: normal;">
IPTC is rooted in - and foundational to - the news industry. Our open source standards for news technology enable the operations of hundreds of news and media organizations, large and small. IPTC standards are instrumental in the software used to create, edit, archive and distribute news and information around the world.<br />
<br />
We are starting to evolve the scope of our work beyond standards - such as via the <a href="https://iptc.org/news/iptcs-extra-project-update/">EXTRA </a>project to build an open source rules-based classification engine. Much of what we do is relevant to not only news agencies and publishers, but also to photographers, videographers, academics and archivists. By bringing together these diverse groups, we can not only create powerful, efficient standards and technologies, but also learn from each other about what works and what does not.<br />
<br />
<h2 style="text-align: left;">
Ch-ch-changes</h2>
</div>
</h2>
<h2>
<div style="font-size: medium; font-weight: normal;">
We've introduced quite a bit of change within the IPTC since I've become Chairman and that has continued over the last year.<br />
<br /></div>
</h2>
<h3 style="text-align: left;">
What's Going On?</h3>
<h2>
<div style="font-size: medium; font-weight: normal;">
We're working to improve our existing family of standards by<br />
<ul style="text-align: left;">
<li>continuing to improve documentation - to make it easier to get going with a standard and simpler to grasp the nuances when you want to expand your implementation</li>
<li>making our standards more coherent and consistent - as many organizations need to use a combination</li>
</ul>
</div>
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="en">
Great discussion about <a href="https://twitter.com/hashtag/IPTC?src=hash">#IPTC</a> alliance, collaboration with International Image Interoperability Framework <a href="https://twitter.com/IIIFramework">@IIIFramework</a> re: <a href="https://twitter.com/hashtag/Photo?src=hash">#Photo</a> <a href="https://twitter.com/hashtag/Metadata?src=hash">#Metadata</a> <a href="https://t.co/EFWdOf7aC6">pic.twitter.com/EFWdOf7aC6</a></div>
— IPTC (@IPTC) <a href="https://twitter.com/IPTC/status/790578174908391425">October 24, 2016</a></blockquote>
<div style="font-size: medium; font-weight: normal;">
We're extending the reach of the IPTC, both by working with other organizations (including <a href="http://www.idealliance.org/specifications/prism-metadata-initiative">PRISM</a>, <a href="http://iiif.io/">IIIF</a>, <a href="http://www.wan-ifra.org/">WAN-IFRA</a> and <a href="https://www.w3.org/">W3C</a>). But also by engaging in new types of work such as <a href="https://iptc.github.io/extra/">EXTRA</a> and the <a href="https://iptc.org/news/iptc-releases-new-video-metadata-hub-recommendation/">Video Metadata Hub</a>, which are not traditional standards but are open source projects for the benefit of the community we serve.<br />
<br /></div>
<div style="font-size: medium; font-weight: normal;">
Since I've become Chair, we've renewed our efforts to communicate the great work that we do. You can see a big uptick in our engagement via <a href="https://twitter.com/iptc">Twitter</a> and <a href="https://www.linkedin.com/company/iptc">LinkedIn</a>, as well as by refreshing the design of our the <a href="https://iptc.org/">IPTC website</a>. Plus we're doing a lot more work "out in the open" on <a href="https://github.com/iptc">Github</a>.<br />
<br /></div>
<div style="font-size: medium; font-weight: normal;">
We're continuing to streamline the operations of the IPTC. We've simplified our processes to better reflect the ways we actually operate these days. For example we have dramatically reduced the number of formal votes we take. But we still have sufficient process in place to ensure that the interests of all members are protected. For 2017, we have decided to have two-plus-one face-to-face meetings, rather than our usual three-plus-one. We will hold two full face-to-face meetings (<a href="https://iptc.org/events/">one in London, the other in Barcelona</a>), plus our one day Photo Metadata conference in association with the CEPIC Conference in Berlin. This will allow us to intensify our work on the meetings, with more ambitious and compelling topics and speakers.<br />
<blockquote class="twitter-tweet" data-lang="en">
<div dir="ltr" lang="en">
PM session: standards makers PB Core, Media Institute; product vendors inVid, Extensis, Canto, Dextro, Mainstream Data on metadata workflows <a href="https://t.co/9EJJQmjDwp">pic.twitter.com/9EJJQmjDwp</a></div>
— IPTC (@IPTC) <a href="https://twitter.com/IPTC/status/790927739608006664">October 25, 2016</a></blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script>
</div>
</h2>
<h3 style="text-align: left;">
Do Better</h3>
<div style="font-size: medium; font-weight: normal;">
As I said, we've been changing our processes, particularly for the face-to-face meetings. But what else could we do to simplify our processes whilst at the same time ensuring that there is a balance between the interests of all members? Are there ways for the IPTC to deliver more value to the membership? How do we continue to balance our policy of consensus-driven decision-making with the need to be more flexible and nimble?
<br />
<br />
IPTC is a <a href="https://iptc.org/participate/membership/">membership-driven organization</a>. Membership fees represent the vast majority of the revenue for our organization. As the news industry as a whole continues to feel pressure - including downsizing, mergers and, unfortunately some members going out of business - the IPTC is experiencing downward pressure on its own revenue. So, we are working on ways to reach new members, whilst at the same time ensuring that existing members continue to derive value. We're also open to exploring new ways of generating revenue which fit with our mission - let us know your ideas!<br />
<br />
What new areas should the IPTC focus on? Many journalists are experimenting with an array of technologies - Augmented Reality, Virtual Reality, 360 degree photos, drones and bots, to name but a few. And let's not forget about the "Cambrian Explosion" of technologies related to news and metadata on the Web, including AMP, AppleNews, Instant Articles, rNews, Schema.org and OpenGraph. How can IPTC help - negotiating standards? Developing best practices? Navigating the ethics of these technologies?<br />
<br /></div>
<h2 style="text-align: left;">
Happy</h2>
</div>
<div style="font-size: medium; font-weight: normal;">
If you're happy with the IPTC, then please tell others.<br />
<br />
If you're not happy, then please <a href="mailto:chair@iptc.org">tell me</a>!<br />
<br /></div>
<h2 style="text-align: left;">
I Want to Thank You</h2>
<h2>
<div style="font-size: medium; font-weight: normal;">
Without you, the members of IPTC, literally none of this is possible. So, I'd like to take a moment to thank everyone involved in the organization, particularly everyone involved in <a href="https://iptc.org/about-iptc/work-structure/">all of the detailed work</a> of the IPTC. And I'd like to acknowledge and thank Andreas Gebhard, who is stepping down from the Board, and Johan Lindgren who has been voted on.<br />
<br />
Finally, I'd like to extend a special thanks to Michael Steidl, Managing Director of the IPTC, who is personally involved in almost every aspect of what we do.<br />
<br />
<h2 style="text-align: left;">
2017</h2>
</div>
</h2>
<h2>
<div style="font-size: medium; font-weight: normal;">
No doubt, next year will bring us many new and, often, unexpected challenges. I look forward to tackling with all of you, the IPTC.</div>
</h2>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com2tag:blogger.com,1999:blog-8413152152322860613.post-318534142367760602016-10-06T06:35:00.004-07:002016-10-07T09:25:19.175-07:00Developers Needed For IPTC's EXTRA Rules-based Classification Engine<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<span style="color: #010101;">Over the last several months, I've been working within the <a href="https://iptc.org/">IPTC</a> -
along with a number of other news organizations - on <o:p></o:p></span><span style="color: #010101;">"<a href="http://www.slideshare.net/smyles/iptc-extra-open-source-rules-classification">EXTRA</a>" (shorthand for EXTraction Rules Apparatus), an open-source source rules based classification engine for news content. I'm thrilled because this week we reached a significant milestone: we started the formal process of looking for developers to implement the EXTRA engine.</span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_tAKjVowsiICerkDAyvdnLussY-h4Pi1Y7ch4hGLknLgGpPfLzsdp_hDTEV15FTlC_7PWWIV0oUzNygmTfCy7XqW4A8eTTT0r1_EsjIPyleGThSCSiAeZ4tl-XjXFz5ddUhMRls4pXRB2/s1600/2079446635_d895557910_b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_tAKjVowsiICerkDAyvdnLussY-h4Pi1Y7ch4hGLknLgGpPfLzsdp_hDTEV15FTlC_7PWWIV0oUzNygmTfCy7XqW4A8eTTT0r1_EsjIPyleGThSCSiAeZ4tl-XjXFz5ddUhMRls4pXRB2/s320/2079446635_d895557910_b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">“Extra” by Jeremy Brooks <a href="https://flic.kr/p/4aKH3c">https://flic.kr/p/4aKH3c</a></td></tr>
</tbody></table>
<div class="MsoNormal">
<span style="color: #010101;">The IPTC was awarded a grant of </span>€<span style="color: #010101;">50,000 from Google's </span><a href="https://www.digitalnewsinitiative.com/">Digital News Initiative Innovation Fund</a><span style="color: #010101;"> to build and freely
distribute the initial version of EXTRA. As part of the IPTC, we are working with several news providers to supply sets of news documents, and with linguists to
write rules to classify the documents. We've been working on defining the
technical requirements and now we’re looking for software developers to design,
develop, document and test EXTRA.</span></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: #010101;">Below is the <a href="https://iptc.org/news/developers-needed-for-extra/">formal announcement</a>. If you know anyone who might be interested, let them know. And if you are interested, please let us know!</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Developers Needed For IPTC's EXTRA Rules-based
Classification Engine</b><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
IPTC <a href="https://iptc.org/">https://iptc.org/</a>
is looking for software developers to design, develop, document and test EXTRA <a href="https://iptc.github.io/extra/%20/t%20_blank">https://iptc.github.io/extra/</a>,
an open source rules-based classification engine for news. First preference
will be given to applications received by 21st October 2016, and review will
continue until the positions are filled. <a href="https://docs.google.com/forms/d/e/1FAIpQLSdROT-cefP57cmCRbW90cnvuYKNTJ4XKQ2cQgA8ZffLYoLwPQ/viewform">Applyhere.</a><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
"Classification" means assigning one or more
categories to the text of a news document. Rules based classifiers use a set of
Boolean rules, rather than machine-learning or statistical techniques, to
determine which categories to apply.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
EXTRA is the EXTraction Rules Apparatus, a multilingual
open-source platform for rules-based classification of news content. IPTC was
awarded a grant of €50,000 from the first round of Google’s Digital News
Initiative Innovation Fund <a href="https://www.digitalnewsinitiative.com/%20/t%20_blank">https://www.digitalnewsinitiative.com/</a>
to build and freely distribute the initial version of EXTRA. DNI granted IPTC
€50,000 for the entire project.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
We are working with news providers to supply sets of news
documents and with linguists to write rules to classify the documents. IPTC is
looking for qualified developers to create the rules engine to accurately and
efficiently categorize the documents using the rules. mandatory and preferred
requirements.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Please <a href="https://docs.google.com/forms/d/e/1FAIpQLSdROT-cefP57cmCRbW90cnvuYKNTJ4XKQ2cQgA8ZffLYoLwPQ/viewform">consult</a>
this page for more information and to let us know if you’re interested in being
considered.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
<br /></div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-52286547579730466712016-09-26T06:47:00.000-07:002016-09-27T04:50:36.438-07:00An ast "Hello World": Getting Started with Python's Abstract Syntax Trees<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div>
I've been working on <a href="https://github.com/iptc/rightsml-dev/tree/master/licensed">a Python library</a> which - for a number of reasons - needs to dynamically alter itself. Essentially, I want it to parse a document and to generate some code based on that parsed file.<br />
<h2>
ast</h2>
It turns out that <a href="https://docs.python.org/2/library/ast.html">Python's ast module</a> lets me do exactly what I need. I came across some quite useful <a href="https://greentreesnakes.readthedocs.org/en/latest/">supplementary documentation on ast</a>. But, to get started, I needed something simpler that those advanced examples. I therefore wrote a "Hello world!" program using ast. Here it is, in case you were looking for that, too.<br />
<h2 style="text-align: left;">
Hello world!</h2>
Since I've become <a href="http://c2.com/cgi/wiki?TestInfected">test infected</a>, I wanted to structure my "Hello world!" ast program using <a href="https://docs.python.org/2/library/unittest.html">unit tests</a>.<br />
<script src="https://gist.github.com/k0emt/1187769.js"></script>
<br />
So, to start, I tracked down a suitable <a href="https://gist.github.com/k0emt/1187769">"Hello world!" unit test in Python</a>.</div>
<div>
<h2>
Hello world! in ast</h2>
Then I rewrote the Greeter.py class to use ast. My version constructs an abstract syntax tree for an Assignment. Specifically, it assigns the string "Hello world!" to the variable "m". The code then fixes the locations, compiles the code and executes it dynamically.</div>
<script src="https://gist.github.com/stuartmyles/15c73a9b8e17ec5dff9c.js"></script>
<br />
<div>
Obviously, the above code is a lot more work than simply assigning the string value to the variable directly. But it meant I now had the world's simplest ast program.<br />
<br />
<div>
<h2>
Nothing</h2>
Armed with this most basic of unit tests, I was then in a position to work out how to support various other types of code in ast.<br />
<br />
For example, here's a snippet of ast code which uses ast to generate an abstract syntax tree to assign an empty type to a variable named "nothing". In other words, equivalent to <span style="font-family: "courier new" , "courier" , monospace;">nothing = ()</span><br />
<br />
<script src="https://gist.github.com/stuartmyles/9f1887f3f7f9c88e0c61.js"></script></div>
<h2>
Invoking Methods</h2>
One of the hardest things for me to figure out was how to invoke a method of a class.<br />
<br />
First, I worked out to call a function - one not attached to an instance of a class. But to call a method of a class, I needed to understand a bit more about how Python itself is implemented.<br />
<br />
<h2>
Calling Functions</h2>
Here's some Python ast code to call a function _foo() and assign the returned value to a variable called "result", i.e. equivalent to result = foo()
<script src="https://gist.github.com/stuartmyles/c7d1ae63af0ba52ac080.js"></script>
And here's a variant where you pass in a value, i.e. equivalent to result = bar("some value")<br />
<script src="https://gist.github.com/stuartmyles/c91202ec18792620a768.js"></script>
<br />
<h2>
In Python, Methods are Attributes of Classes</h2>
Having figured out how to call functions and pass parameters to them, I reckoned that calling a method on a class would be similar.<br />
And it sort of was - I still needed to use ast.Call to invoke the method. But it took me quite a while to figure out how to tell it which class method to call. For example, if I wanted to call<br />
<br />
result = self._baz(theResult)<br />
<br />
should I pass in a function name of "self._baz"? (I tried that - it didn't work). Eventually, I worked out that self._baz is an attribute of the instance object referred to as "self". In Python, <a href="https://docs.python.org/2/tutorial/classes.html#instance-objects">instance objects have two kinds of valid attribute names, data attributes and methods</a>. Which meant that the code to call one method of an instance from another method looks like this:<br />
<script src="https://gist.github.com/stuartmyles/dd5283ec2fafd80d8470.js"></script>
I had never thought that profoundly about how Python is really implemented behind the scenes. Although many of the <a href="https://docs.python.org/2/faq/design.html">Python design decisions</a> are actually quite well documented.</div>
<h2>
An ast Short Cut</h2>
In the process of working out how to invoke instance object methods, I came up with a general-purpose shortcut. It turns out that - since Python 2.6 - ast has a very handy <a href="https://docs.python.org/2/library/ast.html#ast-helpers">helper method</a> called "ast.parse()". This - in combination with ast.dump() - will let you very quickly figure out the correct ast pattern to use for a given bit of Python code. For example, here's how to figure out how to invoke an instance object method<br />
<script src="https://gist.github.com/stuartmyles/2d20566074709a5a80bc.js"></script>
<br />
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJoc4QZwmiwARgt4nEdlwo5MDeiSFjQ4axtpbNBe9PPGOnTb11qFm-zpzIaNm-6elujGzrD5QovJFXw043L7_csOJ_gTQWptBBcNffBjgoDfKfy63KAHBLbvh385_vUXozz4Xc5u8LwpkU/s1600/8467242946_be66e56aec_b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="219" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJoc4QZwmiwARgt4nEdlwo5MDeiSFjQ4axtpbNBe9PPGOnTb11qFm-zpzIaNm-6elujGzrD5QovJFXw043L7_csOJ_gTQWptBBcNffBjgoDfKfy63KAHBLbvh385_vUXozz4Xc5u8LwpkU/s320/8467242946_be66e56aec_b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">005-Syntax by vicdunk<br />
https://flic.kr/p/dUdQkm</td></tr>
</tbody></table>
Hopefully, that will be enough to get you going on your own Python ast adventures!</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com2tag:blogger.com,1999:blog-8413152152322860613.post-84353616938197714742016-09-19T05:50:00.000-07:002016-09-19T05:50:04.212-07:00Falcor and GraphQL: Querying JSON APIs (Part Five of Three)<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="background-color: white; color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; line-height: 18.48px;">What's the best way to query a REST API which returns JSON? I look at two popular libraries - Netflix's <a href="https://netflix.github.io/falcor/">Falcor</a> and Facebook's <a href="http://graphql.org/docs/getting-started/">GraphQL</a> - which aim to overcome problems with API performance and "chattiness".</span><br />
<h2 style="text-align: left;">
Querying JSON</h2>
XML (and related standards such as XSLT and XQuery) benefit from the power of <a href="https://www.w3.org/TR/xpath20/">XPath</a> for selecting and querying XML. However, JSON has no direct equivalent to XPath. (Although there are a lot of projects which have named them selves [jJ][Pp]ath!)<br />
<br />
I still like the approach taken by <a href="http://jsoniq.org/">JSONiq</a>- it is essentially <a href="https://www.w3.org/2011/10/integration-workshop/p/Documentation-0.1-JSONiq-Article-en-US.pdf">XQuery for JSON</a>. However, in this post, I want to talk about two libraries - Falcor and GraphQL - which address the problem in a somewhat different way: how to get just the JSON you want from an API?<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6UA_oL4DUoYQ_nsQvUCqFnX6JfSzBlj08Kj5FhPy4_5P8KN5MAhet8_wsxkuLgj2qViv9y08a-19LfcxZIH_gmUKG89Omp0-JKILikQIrz6AcG5-HZwkFep1fQyj97DL6yXmDyc7KHs3f/s1600/3428623978_06597faa05_o.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6UA_oL4DUoYQ_nsQvUCqFnX6JfSzBlj08Kj5FhPy4_5P8KN5MAhet8_wsxkuLgj2qViv9y08a-19LfcxZIH_gmUKG89Omp0-JKILikQIrz6AcG5-HZwkFep1fQyj97DL6yXmDyc7KHs3f/s320/3428623978_06597faa05_o.png" width="320" /></a></td></tr>
<tr><td class="tr-caption">2009APR101606 by <a href="https://www.flickr.com/photos/bootload/">Peter Renshaw</a><br />
<a href="https://flic.kr/p/6dYAsw">https://flic.kr/p/6dYAsw</a></td></tr>
</tbody></table>
<h3 style="text-align: left;">
Trade Offs: Speed and Complexity</h3>
When you write a client for a typical REST API, you have to confront two basic problems: performance and complexity. On the one hand, if a REST API contains more data than you need, then you're paying a penalty for every unnecessary byte (being transferred over the network and parsed by your code). On the other hand, if a given API response doesn't have everything you need, then you will need to make follow-up calls, which adds complexity and, of course, more latency as you choreograph the back-and-forth.<br />
<br />
The designer of the REST API should try to anticipate likely uses, so that they can provide just the right information, in the right ways. And, as I've previously recommended, it is a good idea to build in support for <a href="https://stuartmyles.blogspot.com/2014/08/json-design-principles-and-lessons.html#partialrepresentation">full or partial API responses</a>. However, part of what is exciting about APIs is that they unlock innovation. So, if your API is a success, you will - by definition - have hard-to-anticipate uses of your design.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiog7euoLJQqUQ6kyqQTwqqPPQOElbZdG0rKnryX-H3V3np_y31nD-ErgC8Ij8uVCj1vLNzjr0dzfyCdGrUDxABJiqfNjIb1cYb_Z8De9AWTRKRTfH3KJO1N19x9fvwHZdiNCZxhW6SK0NT/s1600/17054247318_22557b6991_k.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="145" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiog7euoLJQqUQ6kyqQTwqqPPQOElbZdG0rKnryX-H3V3np_y31nD-ErgC8Ij8uVCj1vLNzjr0dzfyCdGrUDxABJiqfNjIb1cYb_Z8De9AWTRKRTfH3KJO1N19x9fvwHZdiNCZxhW6SK0NT/s320/17054247318_22557b6991_k.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sit! by <a href="https://www.flickr.com/photos/16210667@N02/">Craig Sunter</a><br />
<a href="https://flic.kr/p/rZ2tyS">https://flic.kr/p/rZ2tyS</a></td></tr>
</tbody></table>
<h3 style="text-align: left;">
Sitting in the Middle</h3>
<div>
Rather than rely on the REST API perfectly fitting your needs (or supporting a powerful query language) why not have an adapter which sits in-between your client and the REST API? Both Netflix's Falcor and Facebook's GraphQL take this approach: they are each implemented as servers which you configure to turn the REST API you have to work with into one that you want to work with. They differ somewhat in their philosophy and power, however.<br />
<div style="text-align: center;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4PGCdKoW6Ef-mphDPE4Md_wjEwQNISQcaJuz0l89e7nGUnyth5uV6aXx_v-aDv1rqE_xf_b93C3kfV31EX-5aZsjGGvvJdfAoxIRZUvi3LtNduCbEqXXEHxm-TocmwHhMjwPhUhnBqkvV/s1600/falcor.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4PGCdKoW6Ef-mphDPE4Md_wjEwQNISQcaJuz0l89e7nGUnyth5uV6aXx_v-aDv1rqE_xf_b93C3kfV31EX-5aZsjGGvvJdfAoxIRZUvi3LtNduCbEqXXEHxm-TocmwHhMjwPhUhnBqkvV/s400/falcor.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Falcor</td></tr>
</tbody></table>
</div>
<h3 style="text-align: left;">
Falcor - All of the Data in One Giant Model</h3>
Netflix has open-sourced their <a href="https://github.com/Netflix/falcor">Falcor</a> library, which they use to power their UIs. At the time of writing, it is still in "Developer Preview", however, many people outside of Netflix are using Falcor. You can try out the <a href="https://github.com/Netflix/falcor">demo Falcor application</a> or read the <a href="https://netflix.github.io/falcor/">Falcor documentation</a> for more details.<br />
<br />
Falcor adds some capabilities to the <a href="https://tools.ietf.org/html/rfc7159">standard JSON model</a> - such as "virtual JSON models" and a "JSON Graph" - to make it easier to cache data on the client side. Using Falcor, you can<br />
<br />
<ul style="text-align: left;">
<li>eliminate the need for multiple HTTP requests to get all the data you need</li>
<li>cache the data locally for better performance</li>
<li>deal with data using graphs, which are more flexible than the standard tree-model used in JSON</li>
<li>adapt JSON or non-JSON APIs into a JSON model customized for your application</li>
</ul>
<br />
<div>
Falcor is a server-side Javascript library run within a <a href="https://nodejs.org/">nodejs</a> server. You construct a Falcor data model and define how each component maps to the actual APIs you need to use via "paths". Your application then interacts with the Falcor data model you've defined, while the Falcor server takes care of interacting with the APIs to get you the data you need, including handling caching for greater performance - particularly when you have multiple instances of your application querying a single data model.</div>
<div>
<br /></div>
<div>
A nice overview of working with Falcor is provided by <a href="https://auth0.com/blog/getting-started-with-falcor/">Auth0</a>. And you can find a lot more documentation on the <a href="https://netflix.github.io/falcor/">Falcor website</a>.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgus33b1LpgD5TL14SjVZIk1-h8Z0zcLZe8gLcQVpee7ViODBj_U6nnbsjV1NOpFzkVcL2NeGqc1IVQMtkfI3FK00GFdVD_sPOeutHtE_uHX-LtXGnE34Ri067VMOWvDa_b0fI7tsVP8I-y/s1600/12972006.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgus33b1LpgD5TL14SjVZIk1-h8Z0zcLZe8gLcQVpee7ViODBj_U6nnbsjV1NOpFzkVcL2NeGqc1IVQMtkfI3FK00GFdVD_sPOeutHtE_uHX-LtXGnE34Ri067VMOWvDa_b0fI7tsVP8I-y/s320/12972006.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">GraphQL</td></tr>
</tbody></table>
<h3 style="text-align: left;">
GraphQL - a Schema and Resolve Functions</h3>
<div>
Facebook has open-sourced their <a href="http://graphql.org/">GraphQL</a> library, which they developed to power their mobile and web apps. At the time of writing, Facebook has released a <a href="https://facebook.github.io/graphql/">working draft of the GraphQL spec</a> and a <a href="https://github.com/graphql/graphql-js/">reference implementation in Javascript</a>. They have also created an <a href="https://github.com/graphql/express-graphql">implementation you can actually download and use</a>. Various people have started to build <a href="https://www.npmjs.com/search?q=graphql">GraphQL tools and implementations</a>, including <a href="https://github.com/graphql-python">GraphQL support in Python</a> (one of my favourite languages). Check out the <a href="http://graphql.org/docs/getting-started/">GraphQL documentation</a> for more details.<br />
<br />
As a GraphQL client, you send the server a query, which defines what data you want back. For example<br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">{</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> user(id: "1") {</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> name</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">}</span><br />
<br />
Which says "give me back the name of the user who has an id=1".<br />
<br />
On the GraphQL server side, you need to configure the schema and the resolve functions. The <a href="http://graphql.org/docs/typesystem/">schema</a> defines the data model which may be fetched from the server. The resolve functions map the fields in the schema into the backend services. A GraphQL resolve function therefore contains whatever code is necessary to fetch and transform data from a backend service - such as a REST API, a MongoDB or a SQL RDBMS - into the form promised by the schema.<br />
<br />
There's a nice overview of working with GraphQL on <a href="https://blog.risingstack.com/graphql-overview-getting-started-with-graphql-and-nodejs/">RisingStack</a>. And you can find Facebook's <a href="http://graphql.org/docs/getting-started/">full documentation on GraphQL</a>.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWg2YHunjbGUd09DqCWMRk5jZNHbIw74z0qMXPRi8NIBijBYDixs8lgHKFkuXSgDvohlDp1SNNEqknuw3sdsp5hlGrtqO3rxVZTjNqU-TSKZHbYunCI788bNFzw2vrE_dg6qv9D1AeYxAI/s1600/14154854877_1f143cc18a_k.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWg2YHunjbGUd09DqCWMRk5jZNHbIw74z0qMXPRi8NIBijBYDixs8lgHKFkuXSgDvohlDp1SNNEqknuw3sdsp5hlGrtqO3rxVZTjNqU-TSKZHbYunCI788bNFzw2vrE_dg6qv9D1AeYxAI/s320/14154854877_1f143cc18a_k.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">"Choice" by <a href="https://www.flickr.com/photos/jeremybrooks/">Jeremy Brooks</a><br />
<a href="https://flic.kr/p/nyPkd2">https://flic.kr/p/nyPkd2</a></td></tr>
</tbody></table>
<h3 style="text-align: left;">
Which One Should You Choose?</h3>
Falcor is somewhat simpler to learn than GraphQL. In part, this is because GraphQL is more powerful - in particular it has a much a more sophisticated query capability. Both libraries have been implemented in Javascript, but only GraphQL is designed to be implemented in other languages, too.<br />
<br />
Finally, it is worth considering whether you want to adopt either one at all: the REST architecture (when implemented correctly) has tremendous support for caching and scalability. So, rather than abandon a REST API altogether, consider whether you have the option of instead tuning it to perform better (tip: look at the granularity of the resources you've defined).</div>
<h2 style="text-align: left;">
<span style="background-color: white; color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; line-height: 18.48px;">Designing JSON</span></h2>
<div>
<span style="background-color: white; color: #222222; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13.2px; line-height: 18.48px;">This is part of my occasional series on designing and working with JSON:</span></div>
<ul style="background-color: white; color: #222222; font-family: arial, tahoma, helvetica, freesans, sans-serif; font-size: 13.2px; line-height: 18.48px; margin: 0.5em 0px; padding: 0px 2.5em;">
<li style="margin: 0px 0px 0.25em; padding: 0px;">Part 1: <a href="http://stuartmyles.blogspot.com/2014/05/json-design-principles-and-lessons.html" style="color: #888888; text-decoration: none;">An approach to designing JSON schema</a></li>
<li style="margin: 0px 0px 0.25em; padding: 0px;">Part 2: <a href="http://stuartmyles.blogspot.com/2014/05/json-design-principles-and-lessons_9.html" style="color: #888888; text-decoration: none;">JSON tools and standards</a></li>
<li style="margin: 0px 0px 0.25em; padding: 0px;">Part 3: <a href="http://stuartmyles.blogspot.com/2014/08/json-design-principles-and-lessons.html" style="color: #888888; text-decoration: none;">Lessons learnt from the JSON schema I've worked on</a></li>
<li style="margin: 0px 0px 0.25em; padding: 0px;">Part 4: <a href="https://stuartmyles.blogspot.com/2015/02/json-design-principles-part-four-of.html">Heroku's HTTP API design guide</a></li>
</ul>
<br />
This post - the fifth in the trilogy - picks up on a topic I discussed in <a href="https://stuartmyles.blogspot.com/2014/05/json-design-principles-and-lessons_9.html">Part 3 - Lessons Learnt</a> - how to select and query the JSON you get back from an API.</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com2tag:blogger.com,1999:blog-8413152152322860613.post-21008152205122106832016-07-26T06:07:00.000-07:002016-07-26T06:07:00.960-07:00Making Progress on Rights - W3C Permissions Obligations and Expressions First Public Working Drafts<div dir="ltr" style="text-align: left;" trbidi="on">
<br />I've been working within W3C's Permissions & Obligations Expression (<a href="https://www.w3.org/2016/poe/">POE</a>) Working Group as an Invited Expert. We have just issued our First Public Working Drafts:<div>
<ul style="text-align: left;">
<li>The <a href="https://www.w3.org/TR/2016/WD-odrl-model-20160721/">ODRL Information Model</a></li>
<li>The <a href="https://www.w3.org/TR/2016/WD-vocab-odrl-20160721/">ODRL Vocabulary & Expression</a>.</li>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSnd47HzYpy0OmRr3EnPITAlOVi8bYWJvgwOztAaKVO8g1Iu2T0Ys6mqoTWgU0c3zaBD1MkoZwFt5eT5RAd1A6a7cQOhTKTrDLXEb1PnhX75SfSsj1v9HlRUQZWb3cDrBHUXOFT_93D7wf/s1600/2893549851_ef5121f78b_b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSnd47HzYpy0OmRr3EnPITAlOVi8bYWJvgwOztAaKVO8g1Iu2T0Ys6mqoTWgU0c3zaBD1MkoZwFt5eT5RAd1A6a7cQOhTKTrDLXEb1PnhX75SfSsj1v9HlRUQZWb3cDrBHUXOFT_93D7wf/s320/2893549851_ef5121f78b_b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">"one" by <a href="https://www.flickr.com/photos/andrec/">Andre Chinn</a><br /><a href="https://flic.kr/p/5pGcyx">https://flic.kr/p/5pGcyx</a></td></tr>
</tbody></table>
The W3C POE WG <a href="https://www.w3.org/2016/poe/charter">aims</a> to create recommendations for permissions, obligations and licensing statements for digital content. The WG is using the <a href="https://www.w3.org/community/odrl/">W3C ODRL Community Group specifications</a> as the starting point for its work. These are the same specifications which form the foundation of IPTC's <a href="https://iptc.org/standards/rightsml/">RightsML</a> work.<br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcfG4guYJZh2faxlQdwEL195sdKXs3mBqsKePbi2pC8DNYCDONDxCueS-Yyb3Z0KNth23gxNZhfrbSoNWnnl1ZRqQhsqeGD1S-LOcfCQysWiQPYUTI_Lpp8LI1BdFlWp6op8LbcW9EMIA3/s1600/174240421_ad07813b80_o.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcfG4guYJZh2faxlQdwEL195sdKXs3mBqsKePbi2pC8DNYCDONDxCueS-Yyb3Z0KNth23gxNZhfrbSoNWnnl1ZRqQhsqeGD1S-LOcfCQysWiQPYUTI_Lpp8LI1BdFlWp6op8LbcW9EMIA3/s400/174240421_ad07813b80_o.gif" /></a></td></tr>
<tr><td class="tr-caption">"poe" by <a href="https://www.flickr.com/photos/klaas/">为民 王</a><br /><a href="https://flic.kr/p/gp2Bc">https://flic.kr/p/gp2Bc</a></td></tr>
</tbody></table>
<div>
If you're interested in digital content, then I recommend looking at - and commenting on - the W3C POE drafts. The <a href="https://www.w3.org/TR/2016/WD-odrl-model-20160721/">ODRL Information Model</a> describes the foundational concepts, entities and relationships of ODRL. The <a href="https://www.w3.org/TR/2016/WD-vocab-odrl-20160721/">ODRL Vocabulary & Expression</a> describes how to encode the ODRL model in XML, JSON and RDF.</div>
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV34iGjrhzwA7K-6U_azKolZc23JwZ1siMn3i9aIKaiOe7YdV68jFBTWSne8eQNJ4uLdAytS-wZZQzbRtrSQHPg56ozlaXqFTHt6jmR2nI-iLEdW3ndVtxnI6Ko7zCgJ-oUAq8UhLxgFec/s1600/3143505551_d07f607b85_b.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV34iGjrhzwA7K-6U_azKolZc23JwZ1siMn3i9aIKaiOe7YdV68jFBTWSne8eQNJ4uLdAytS-wZZQzbRtrSQHPg56ozlaXqFTHt6jmR2nI-iLEdW3ndVtxnI6Ko7zCgJ-oUAq8UhLxgFec/s320/3143505551_d07f607b85_b.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">"Use in case of emergency" by <a href="https://www.flickr.com/photos/31155079@N06/">Katia Sosnowiez</a><br /><a href="https://flic.kr/p/5MMhFz">https://flic.kr/p/5MMhFz</a></td></tr>
</tbody></table>
<div>
The POE WG has also published the <a href="https://www.w3.org/TR/2016/NOTE-poe-ucr-20160721/">Use Case and Requirements Note</a>. I have contributed one of the Use Cases: <a href="https://www.w3.org/2016/poe/wiki/Use_Cases#POE.UC.07_News_Permissions_and_Restrictions">News Permissions and Restrictions</a>. Again, the Working Group is looking for feedback on - and contributions to - the Use Cases, so that it can derive a detailed set of requirements for the POE work.</div>
<div>
</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-30649330956907883302015-07-20T13:21:00.000-07:002015-07-20T13:21:41.225-07:00Do the Right Thing<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSnjtJSt6ZBCy6OZvcpmv3AA7z3xi2feJnaDYVdlabXVKDIEGi4Dx9IorxnDs-jEjWsPQFD9MPwjX_fqVqSe100epYudJPMf2j_AeYQQkg1s-qR5IXvvvaKCKCHGpzJl2FuI9soERApIf8/s1600/2551422679_6b0c1ba3d9_o.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSnjtJSt6ZBCy6OZvcpmv3AA7z3xi2feJnaDYVdlabXVKDIEGi4Dx9IorxnDs-jEjWsPQFD9MPwjX_fqVqSe100epYudJPMf2j_AeYQQkg1s-qR5IXvvvaKCKCHGpzJl2FuI9soERApIf8/s320/2551422679_6b0c1ba3d9_o.jpg" width="240" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">"Do the Right Thing" by <a href="https://www.flickr.com/photos/22634122@N05/">Laure Wayaffe</a><br /><a href="https://flic.kr/p/4TsH5c">https://flic.kr/p/4TsH5c</a></td></tr>
</tbody></table>
<div style="text-align: center;">
<a href="http://www.imdb.com/name/nm0001115/?ref_=tt_trv_qu">Da Mayor</a>: Doctor...</div>
<div style="text-align: center;">
<a href="http://www.imdb.com/name/nm0000490/?ref_=tt_trv_qu">Mookie</a>: C'mon, what. What?</div>
<div style="text-align: center;">
<a href="http://www.imdb.com/name/nm0001115/?ref_=tt_trv_qu">Da Mayor</a>: Always do the right thing.</div>
<div style="text-align: center;">
<a href="http://www.imdb.com/name/nm0000490/?ref_=tt_trv_qu">Mookie</a>: That's it?</div>
<div style="text-align: center;">
<a href="http://www.imdb.com/name/nm0001115/?ref_=tt_trv_qu">Da Mayor</a>: That's it.</div>
<div style="text-align: center;">
<a href="http://www.imdb.com/name/nm0000490/?ref_=tt_trv_qu">Mookie</a>: I got it, I'm gone.</div>
<br /><div style="text-align: center;">
<a href="http://www.imdb.com/title/tt0097216/quotes?item=qt0362962">Do The Right Thing</a></div>
<br /><a href="https://twitter.com/tonycrabbe">Tony Crabbe</a> asserts that <a href="http://qz.com/447193/time-management-is-only-making-our-busy-lives-worse/">time management is just making our busy lives worse</a> - that the emphasis on breaking down tasks into smaller and smaller slices does mean that you cram in more stuff into a given time period but that you're not getting to the big, important things that can't be timesliced.<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkWyYgynHRWCrG4ZSS2dQ2maX8W5Ital5goJQq8c43LthjCtfuSDeRsEnI5qnBYAZC4p78MewtgTcnFkWJx_2-6oZnxFgS3MnKJuQOhwFwqfGW72W3FdQFqvyjIJXLiZycOgZUtEXxYNnS/s1600/3814523970_bcdffc96fb_o.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkWyYgynHRWCrG4ZSS2dQ2maX8W5Ital5goJQq8c43LthjCtfuSDeRsEnI5qnBYAZC4p78MewtgTcnFkWJx_2-6oZnxFgS3MnKJuQOhwFwqfGW72W3FdQFqvyjIJXLiZycOgZUtEXxYNnS/s320/3814523970_bcdffc96fb_o.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: 12.8000001907349px;"> Tagged! by <a href="https://www.flickr.com/photos/jdhancock/">jdhancock</a><br /><a href="https://flic.kr/p/4TsH5c">https://flic.kr/p/4TsH5c</a></span></td></tr>
</tbody></table>
<div>
Maybe. Or maybe the techniques which used to work no longer do, since <a href="http://www.theguardian.com/lifeandstyle/2015/jul/03/why-cbt-is-falling-out-of-favour-oliver-burkeman">those techniques are actually changing us</a>?<br /></div>
<div>
By coincidence, I've been playing with some ways that are a little different than the make-a-list and tick things off style of time management. Though I'm treating all of them as supplements, to try and help me get to the important-but-not-urgent things.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0JVH6DK1crdzjncogJ0BNSszD_eMEYF4YcZQWg_EAFihLqzLZrQRQHW_sCtZ_bYJikEKt9M1jnDLrJhcMWz1zAglHkaRcZ2zBV7mr5TKNVjqvlPCBNTTyyeTVoytoidJk5Z1BdZwX9i4s/s1600/5571593357_3022daa6c1_o.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0JVH6DK1crdzjncogJ0BNSszD_eMEYF4YcZQWg_EAFihLqzLZrQRQHW_sCtZ_bYJikEKt9M1jnDLrJhcMWz1zAglHkaRcZ2zBV7mr5TKNVjqvlPCBNTTyyeTVoytoidJk5Z1BdZwX9i4s/s320/5571593357_3022daa6c1_o.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption">13/52 : Charte canadienne des droits et libertés by <a href="https://www.flickr.com/photos/ericconstantineau/">Eric Constantineau</a><br /><a href="https://flic.kr/p/9ukSAr">https://flic.kr/p/9ukSAr</a></td></tr>
</tbody></table>
<div>
<br /></div>
<div>
<b>Habitrpg</b> - "<a href="https://habitrpg.com/static/front">HabitRPG</a> is a free habit building and productivity app that treats your real life like a game. With in-game rewards and punishments to motivate you and a strong social network to inspire you, HabitRPG can help you achieve your goals to become healthy, hard-working, and happy."</div>
<div>
<br /></div>
<div>
So, in fact, this is pretty close to the traditional make-a-list time management technique, but with added gamification. However, what I use it for is things like chores or habits that I want to cultivate but don't want to clutter up my to-do list. I can pick which days of the week I want dailies to appear and I associate different levels of difficulty. It has nice feedback to tell me how often I'm getting to something (e.g. by changing colours), has a holiday feature (where you check into an Inn) so you don't get penalized for changes in your routine but also let's you declare task bankruptcy by killing your character off altogether and then getting a fresh, re-incarnated one. Fun.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisZUz5J2qDjNS-On44lTyKlzr9wE1jo_03saB6NgwMtOiz7q6jXlt7cTk8Ob4O5WDaH6pkF-ETIzwkAIg8qLvCCXGNIzV8vwPGN-iIpVZsZrDywedyVC8jeaeVqdWyLJxxvfMWWC2EDec3/s1600/89347342_bbd99f0475_o.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisZUz5J2qDjNS-On44lTyKlzr9wE1jo_03saB6NgwMtOiz7q6jXlt7cTk8Ob4O5WDaH6pkF-ETIzwkAIg8qLvCCXGNIzV8vwPGN-iIpVZsZrDywedyVC8jeaeVqdWyLJxxvfMWWC2EDec3/s320/89347342_bbd99f0475_o.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">harpseal by <a href="https://www.flickr.com/photos/yeimaya/">gale</a><br /><a href="https://flic.kr/p/8TVRq">https://flic.kr/p/8TVRq</a></td></tr>
</tbody></table>
<div>
<b>BJ Fogg's</b> "<a href="http://tinyhabits.com/">Tiny Habits</a> program can create new behaviors in your life." In some ways, this is the ultimate timeslice technique, in that you break down things into the tiniest possible steps - e.g. rather than "I want to floss my teeth twice a day" - you resolve "I will floss a single tooth". Then you tie that action to a trigger action - something you do routinely - e.g. "after I step out of the shower". The idea is to grow a set of positive new habits to habits you already have. Of course, if you're already flossing one tooth, you may as well floss a second. So, eventually, you find yourself flossing all of them. Although these are microtasks, they are not on your to-do list. Instead - the hope is - they just become automatic habits, that you don't need to think about.<br /></div>
<div>
I've been able to develop some good habits (e.g. tidying up my car) but - like everything else - sticking with it is the tricky thing. And not *every* desirable habit is easy to pair with a trigger action.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPUKjKplG6YWe42yAMTbM2EebOz38Wxwe8yBTGBSKM2TaGB58wjCp0VsEIZ_xDnzNjEajigOmiICRchIgpV9A-nyZs4T3vGDD4k9i5SaFRZ3YzFIx8wWDwiAs1LJWyRiFt20y9QedpHFZE/s1600/6406117579_99d4b5d182_o.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPUKjKplG6YWe42yAMTbM2EebOz38Wxwe8yBTGBSKM2TaGB58wjCp0VsEIZ_xDnzNjEajigOmiICRchIgpV9A-nyZs4T3vGDD4k9i5SaFRZ3YzFIx8wWDwiAs1LJWyRiFt20y9QedpHFZE/s320/6406117579_99d4b5d182_o.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Chili Pipeline by <a href="https://www.flickr.com/photos/light_seeker/">Viewminder</a><br /><a href="https://flic.kr/p/aL62z6">https://flic.kr/p/aL62z6</a></td></tr>
</tbody></table>
<b>Blog Course</b> - John Somnez (of <a href="http://simpleprogrammer.com/">SimpleProgrammer</a>) offers a "<a href="http://devcareerboost.com/blog-course/">FREE Email Course</a> "How To Build A Blog That Will Boost Your Career" Will Show You How To Do It The RIGHT WAY... FAST!". It is essentially a three week course that takes you step-by-step to setting up a blog, from setting up Wordpress through a marketing strategy. Posting to my blog is something I know I should do - and have been kinda doing for the last few years. Actually having someone email me about it every week, with concrete steps to follow and even personally replying to my emails, makes a big difference with really doing it, though. Basically, John's course isn't a time management technique, but more of a coach - helping me do what it is I know I *ought* to do, but haven't been able to do entirely on my own.<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwC5_VFTnJbP5VJxeJcaWo1qJ047Q1by-xWxIWhvlHEh2LOa9hrZxlx5yCykZ_fS9lqaJ8z1mzz9d3Snb9Xl-3FzupnOnjIH2tpvpxAeODflOhvD8Co-uq-p6QLnzxhsMbuOdesFm2VusU/s1600/3678731259_65935058d6_o.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwC5_VFTnJbP5VJxeJcaWo1qJ047Q1by-xWxIWhvlHEh2LOa9hrZxlx5yCykZ_fS9lqaJ8z1mzz9d3Snb9Xl-3FzupnOnjIH2tpvpxAeODflOhvD8Co-uq-p6QLnzxhsMbuOdesFm2VusU/s320/3678731259_65935058d6_o.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Vulture Peak by <a href="https://www.flickr.com/photos/wonderlane/">Wonderlane</a><br /><a href="https://flic.kr/p/6B5sD2">https://flic.kr/p/6B5sD2</a></td></tr>
</tbody></table>
<div>
<b>Lark</b> - A fitness / nutrition app, <a href="http://lark.com/">Lark</a> lets you "Chat 1-on-1 with your nutritionist in your pocket". On my iPhone 6, it makes use of Apple's iOS 8 HealthKit, to track my daily movements. It can also be configured to help me with nutrition, by letting me log what I eat. What's different about this one is that it simulates someone texting with you. It is like a relentlessly upbeat friend, who is obsessively monitoring how much you walk or run each day, plus always asking about what you've had for breakfast. That might sound annoying, but it is actually pretty encouraging. It has certainly got me eating more fruit and vegetables and nudged me into exercising a little more.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4b8UvbVG0nzszuhLeHp4OzikycY_sB12evDD_5lwvVWHULL9UPTMsEKsqpnfGxNUqk-4dTa7B-I3VeHdDcVIFN5fUJVgaD1Xc68qfBJIRP8huFUKJjF_WNtr-MECtOQ0IHrMrXW1gll50/s1600/6578010155_5ff1427552_o.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4b8UvbVG0nzszuhLeHp4OzikycY_sB12evDD_5lwvVWHULL9UPTMsEKsqpnfGxNUqk-4dTa7B-I3VeHdDcVIFN5fUJVgaD1Xc68qfBJIRP8huFUKJjF_WNtr-MECtOQ0IHrMrXW1gll50/s320/6578010155_5ff1427552_o.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">do the right thing by <a href="https://www.flickr.com/photos/paolobarzman/">paolobarzman</a><br /><a href="https://flic.kr/p/b2h2fc">https://flic.kr/p/b2h2fc</a></td></tr>
</tbody></table>
<div>
The last two I list above - John's Blog Course and the Lark chatbot - are an interesting development, beyond time management lists. They are essentially coaches who encourage you to do the things you know *should* be doing, but aren't: do the right thing. That's it.</div>
</div>
smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0tag:blogger.com,1999:blog-8413152152322860613.post-2126239441628001742015-04-22T08:26:00.000-07:002015-04-22T08:26:40.603-07:00Getting Topical at the IPTC Spring Meeting<div dir="ltr" style="text-align: left;" trbidi="on">
Last summer, I became Chairman of the <a href="http://www.iptc.org/">IPTC</a>. My goal as Chair is to make IPTC better by improving the face-to-face meetings and improving how we communicate. So, how are we doing?<br /><br />
The IPTC is the global standards body of the news media. We provide the technical foundation for the news ecosystem. We recently held our Spring face-to-face meeting in New York, NY. Feedback from attendees was that the meeting was a success.<br /><br />
One of the things we did differently in this meeting was to put less emphasis on formal reports from the different standards initiatives within IPTC and more focus on active discussions, even when not connected to a particular standard.We held five topical sessions:<br />
<ul>
<li>Taxonomies in news and the semantic exchange</li>
<li>Sports working session on Sports-in-JSON and new semantic tools in SportsML 3</li>
<li>HTML in NewsML-G2</li>
<li>Video metadata</li>
<li>APIs</li>
</ul>
<br />
Generally, the feedback on these was very positive. The main complaint was that sessions were held in parallel, whereas some people wanted to attend more than one topic session at the same time.<br /><br />
Also, taking advantage of our location in NYC, we were able to include a wider net of organizations and individuals in our meeting than might other wise attend - including Bloomberg, NPR, Business Wire, PR Newswire.<br />
Overall, the meeting was much less formal than in recent years - we only had one vote (for a NewsML-G2 update). Hopefully, the meeting was a little friendlier and less intimidating for new attendees.<br /><br />
We are planning on building on this experience for our next face-to-face meeting <a href="https://iptc.org/events/summer-meeting-2015/">1st-3rd June in Warsaw</a>. You can see some of the <a href="https://www.google.com/moderator/#16/e=217e5d">ideas that have been suggested</a> already and please <a href="https://iptc.org/about-iptc/contact-us/">get in touch</a> if you would like to suggest a topical session for either Warsaw or our <a href="https://iptc.org/events/">October AGM in London</a>.</div>smyleshttp://www.blogger.com/profile/18337620590297008155noreply@blogger.com0