<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories applauded for by Anil Dash on Medium]]></title>
        <description><![CDATA[Latest stories applauded for by Anil Dash on Medium]]></description>
        <link>https://medium.com/@anildash?source=rss-a75df5e8a16c------3</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*yWQSXi7DUTz3mnjCCTVrCw.jpeg</url>
            <title>Stories applauded for by Anil Dash on Medium</title>
            <link>https://medium.com/@anildash?source=rss-a75df5e8a16c------3</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 25 Feb 2018 06:11:08 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/@anildash/has-recommended" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[February’s reminder you live in a news bubble]]></title>
            <link>https://medium.com/@NicholasGPlatt/februarys-reminder-you-live-in-a-news-bubble-1497bf315aba?source=rss-a75df5e8a16c------3</link>
            <guid isPermaLink="false">https://medium.com/p/1497bf315aba</guid>
            <category><![CDATA[politics]]></category>
            <category><![CDATA[news]]></category>
            <category><![CDATA[world]]></category>
            <dc:creator><![CDATA[Nicholas Graham Platt]]></dc:creator>
            <pubDate>Sat, 24 Feb 2018 22:00:36 GMT</pubDate>
            <atom:updated>2018-02-24T22:00:36.355Z</atom:updated>
            <content:encoded><![CDATA[<p>Going to try and do this more regularly. I asked my friends on Facebook around the world to tell me what the top news stories were in their countries. Here’s another reminder we’re all in a news bubble:</p><h4>Ethiopia:</h4><p>Prime Minister quit abruptly. A state of emergency 2.0 declared. Succession talks heating up.</p><h4>Kosovo:</h4><p>The ratification of a border demarcation deal with Montenegro. Kosovar’s are unable to move freely in the EU’s Schengen area</p><h4>Russia:</h4><p>Pavel Grudinin is the most popular presidential candidate right now. “Elections” begin next month.</p><h4>Pakistan:</h4><p>Cricket. PSL (Pakistan super league) has started so it’s a very talked about topic right now.</p><h4>Hong Kong:</h4><p>There was a deadly bus accident that killed 19 people. Bus driver was speeding because passengers were angry that he was late. It’s triggered a lot of discussions about people being overworked and underpaid.</p><h4>Brazil:</h4><p>Upcoming Presidential vote this year. Former president Lula is running for a third term. He’s being attacked by the partidos (right, central-right), but people feel he will probably win again.</p><h4>Colombia:</h4><p>The supreme court investigation against former president Alvaro Uribe. The charges are he and others were planning to plant witnesses to falsely testify against an opponent Senator.</p><h4>Malaysia:</h4><p>The Prime Minister is being mocked for eating pricey quinoa instead of rice.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1497bf315aba" width="1" height="1">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Hello World]]></title>
            <link>https://medium.com/range/hello-world-7d61f842c55d?source=rss-a75df5e8a16c------3</link>
            <guid isPermaLink="false">https://medium.com/p/7d61f842c55d</guid>
            <category><![CDATA[workplace-culture]]></category>
            <category><![CDATA[future-of-work]]></category>
            <category><![CDATA[org-design]]></category>
            <dc:creator><![CDATA[Dan Pupius]]></dc:creator>
            <pubDate>Thu, 22 Feb 2018 17:03:29 GMT</pubDate>
            <atom:updated>2018-02-22T17:03:29.376Z</atom:updated>
            <content:encoded><![CDATA[<h4>A range of possibility</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*kWu3guEvToSxfTg8." /><figcaption>Photo by <a href="https://unsplash.com/@danielleone?utm_source=medium&amp;utm_medium=referral">Daniel Leone</a> on <a href="https://unsplash.com?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>In 2012 I left Google to join The Obvious Corporation, a small company with the mission of <em>building systems that help people work together to make the world better</em>.</p><p>One of the things that attracted me to Obvious was how much <a href="https://medium.com/u/268314bb7e7e">Ev</a> and <a href="https://medium.com/u/b258af3c1e92">Biz</a> were thinking about the company they wanted to build, not just the product. They were asking why companies got worse as they got bigger: why do people become less engaged, teams become less productive, and bureaucracy ends off feeling like a force of nature? Shouldn’t work be better?</p><blockquote>“Why do network effects make internet products better but make internet companies worse?”</blockquote><p>As I took over leadership of the engineering team and helped grow the company’s operations, working on how we work became a personal mission of my own.</p><p>In every minute of free time, I explored the nature of work and researched how the most progressive companies operate — from Netflix to Bridgewater, Patagonia to Spotify, Disney to Amazon — I started to see patterns and opportunities. Many perennial problems had been solved, but often within the confines of a single organization. Everyone seemed to be reinventing the wheel, and when best-practices did emerge, they seemed overdue.</p><blockquote>To paraphrase <a href="https://en.wikiquote.org/wiki/William_Gibson">Gibson</a>, the future [of work] is here — it’s just not evenly distributed.</blockquote><p>I realized that instead of solving these organizational challenges for the one company where I worked, there was an opportunity to build software that helps people solve these organizational challenges everywhere.</p><p>So, last April I partnered with <a href="https://medium.com/u/34417539c757">Jennifer Dennard</a> and <a href="https://medium.com/u/ba3794d02029">Braden Kowitz</a> to start a company — Range Labs Inc. — with the goal of helping people build healthier companies. To <em>range</em> is to explore — to search the world for what’s next. The world is changing and organizations need to adapt and evolve.</p><p>Jen’s career choices show she has a passion for helping people enjoy their work — and their lives — more. She’s worked with companies big and small to improve their workplace culture during times of pivoting and intense scaling. We met at Medium, where we collaborated on new people programs, and company wide org design efforts as we changed operating structures. She’s an advocate for a new approach to human resources that focuses more on the person and their needs.</p><p>Braden was an early designer at Google and has built products used daily by millions. He co-led design on Gmail for several years, where we worked together on Gmail Chat, pushing against the capabilities of the early web. Then at Google Ventures he advised dozens of startups, teaching them how to listen to customers, scale design teams, and build processes that support innovation. He is the co-author of the New York Times Bestseller, <a href="https://www.thesprintbook.com/">Sprint</a>, and has spoken at design conferences around the world.</p><p>At <a href="https://www.range.co">Range</a>, we believe that healthy companies aren’t simply better places to work, but <em>do</em> better work and will ultimately be more successful. We know that software can’t solve all problems, but the fact that so much of our work-life is mediated through software means that there is a huge opportunity to rethink how our tools affect how we work with each other.</p><p>Over the last few months I’ve joked that we’re not very good at being a “stealth startup.” We’re too excited about this space to keep our mouths shut.</p><p>We nerd out about meetings (not in meetings… about meetings), team structures, and work cadences. We love talking to people about people-centric leadership, learning organizations, and helping friends diagnose organizational issues. We believe in networks, in transparency, in individual empowerment, and in the need to bring more humanity to our work.</p><p>And we believe in working in the open and sharing knowledge, so follow this publication as we each share what we’re working on, what we’re excited about, and what we’re learning from folks we’re talking to.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7d61f842c55d" width="1" height="1"><hr><p><a href="https://medium.com/range/hello-world-7d61f842c55d">Hello World</a> was originally published in <a href="https://medium.com/range">Range Labs</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Time Has Come to Push the Button]]></title>
            <link>https://medium.com/make-better-software/the-time-has-come-to-push-the-button-c38a548739a4?source=rss-a75df5e8a16c------3</link>
            <guid isPermaLink="false">https://medium.com/p/c38a548739a4</guid>
            <category><![CDATA[product-management]]></category>
            <category><![CDATA[startup]]></category>
            <category><![CDATA[time-management]]></category>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[project-management]]></category>
            <dc:creator><![CDATA[Gareth Wilson]]></dc:creator>
            <pubDate>Wed, 21 Feb 2018 16:15:58 GMT</pubDate>
            <atom:updated>2018-02-21T16:16:41.131Z</atom:updated>
            <content:encoded><![CDATA[<h4>Using the new ‘start work’ button for better time tracking in Manuscript</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/850/1*L-LznQRUAAILY9n4QBdl3g.png" /></figure><h4>Agile Resource Planning</h4><p>Time Tracking is an essential part of Agile software development. To make resource planning effective, you need to track the time you spend on tasks so that developers, technical management and product managers gain insight into project progress and how much work remains outstanding.</p><p>Time tracking is built right into <a href="https://www.manuscript.com">Manuscript</a>, and enables you to not only record time spent on each case, but from that logged time you can keep timesheets useful for keeping clients and customers informed, as well as generate reports and visualizations that show how individuals and teams spend their time. Like ‘Hours spent per person, per project’, or burndown charts, showing hours remaining to complete a project displayed over time.</p><p>It also provides the raw data, along with estimates, that powers our unique <a href="https://www.manuscript.com/features/smart-scheduling/">Smart Scheduling</a> feature, which uses AI to calculate ship date probabilities and predict software schedules.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*y63uw9SyrwCMdo5AJ-rcVg.png" /></figure><h4>Tracking Time</h4><p>We provide the facility to log time automatically. To make it easy to track your time, Manuscript uses your working schedule (which can be set at Time Tracking &gt; My Working Schedule) to stop the clock automatically whenever you go home and start it again automatically when you come back in the morning. It also stops the clock during lunch breaks and when you’re on vacation, etc. That way you only need to change the “working on” case when you switch from one case to another. You can specify a site-wide working schedule, along with individual team members’ working schedules when they differ.</p><p>And now any case that has an estimate will show a start/stop work button directly in the case itself. This makes it even easier to record what it is that you’re working on, and provide accurate time information. This benefits everything you use time tracking for, from better probabilities of project completion, to more accurate reports that keep management informed and eases project planning.</p><p>Learn more about managing projects with <a href="https://www.manuscript.com/">Manuscript</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c38a548739a4" width="1" height="1"><hr><p><a href="https://medium.com/make-better-software/the-time-has-come-to-push-the-button-c38a548739a4">The Time Has Come to Push the Button</a> was originally published in <a href="https://medium.com/make-better-software">Fog Creek Software</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Notes after writing a long, participatory thread on Twitter]]></title>
            <link>https://medium.com/@mwichary/notes-after-writing-a-long-participatory-thread-on-twitter-b6f1f302da8c?source=rss-a75df5e8a16c------3</link>
            <guid isPermaLink="false">https://medium.com/p/b6f1f302da8c</guid>
            <category><![CDATA[twitter]]></category>
            <category><![CDATA[threads]]></category>
            <dc:creator><![CDATA[Marcin Wichary]]></dc:creator>
            <pubDate>Tue, 20 Feb 2018 05:44:56 GMT</pubDate>
            <atom:updated>2018-02-20T17:11:31.750Z</atom:updated>
            <content:encoded><![CDATA[<h4>(This is meant for the Twitter design team, but feel free to read and comment if you want)</h4><p>I recently wrote a 427-tweet thread that a great many people contributed to, with many wonderful replies:</p><style>body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}</style><blockquote class="twitter-tweet" data-conversation="none" data-align="center" data-dnt="true"><p>Things that surprised/amazed me about Japan, an ongoing thread. (More likely UI than food, but you know this already.) It&#39;s my first time here. Please comment away and/or point out my cultural insensitivities!</p><p>&#x200a;&mdash;&#x200a;<a href="https://twitter.com/mwichary/status/958979895882760193">@mwichary</a></p></blockquote><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script><script>function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});</script><script>if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500  < maxWidth) {window.frameElement.setAttribute("width", "500");}}</script><p>It was a great deal of fun for me, and I am not sure this could’ve happened anywhere else but on Twitter. However, creating and maintaining the thread was painful, and — much more than ever before — reading and participating in it seemed also to be painful to <em>others.</em></p><p>This is a list of my observations and suggestions on how to make it better. I don’t know how common this use case is, and how exactly it relates to other Twitter/threading use cases; I wanted to share this in case there’s something useful in here.</p><p>I bolded my suggestions so it’s easier to scan this quickly.</p><p>Setup: I used my iPhone 6S to take photos, and posted most of the tweets using the official Twitter iOS app on the same phone.</p><h4>1. Threads are slow to load</h4><p>In the iOS app, opening any tweet in a thread shows it immediately, but the context of the thread (surrounding tweets) and the UI to append to the thread are slower and slower to load the longer the thread gets.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*z-HgclL9ALfGeFc4DXL3Jg.png" /><figcaption>One and a half minute is a really long time</figcaption></figure><p>This feels like an unintentional punishment for creating longer threads. It’s there for me as a writer, and — more importantly — it’s also there for readers. Currently, looking at the later tweets in the thread (<a href="https://twitter.com/mwichary/status/964761202902446080">example link to one</a>) on good wi-fi takes over 90 seconds to load the surrounding context and UI. (And looking at it on cellular made me worried about data charges, as it seems consistently slow and therefore probably not cached?)</p><p>It seems like this <strong>could be optimized to load in constant time</strong> (perhaps show the first few items in the thread and then a <em>Load more </em>item, in between, similarly to what’s done in notifications?). Or <strong>cached once loaded. </strong>It’d also be good — and it feels like good practice — to <strong>see the related UI (<em>Add another Tweet</em> button) appear immediately<em> </em>without having to wait for the content</strong>. Lastly, <strong>some sort of a loading indicator would be nice to add, </strong>although perhaps only if the thread is expected to be long.</p><p>(The desktop web experience doesn’t seem to have that problem.)</p><h4>2. There is a nasty scroll up bug</h4><p>In the iOS app, if you open any tweet further down the thread and scroll up or down even just a bit before the context/UI finish loading (or even <em>attempt</em> to scroll)… the moment they do, you get moved up all the way to the top of the thread, losing whatever orientation you had.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/299/1*vYdEbV-UyStLZUI4aRyPiw@2x.gif" /><figcaption>Scrolling also includes a natural (in this situation) pull-down-to-refresh gesture that also causes the scroll bug</figcaption></figure><p>It’s really confusing at worst, and infuriating at best, when you understand what’s going on but — after having waited 90 seconds and accidentally touched the screen and scrolled it— are still powerless to stop it.</p><p><strong>Please fix this bug.</strong> It’s been there for so long.</p><h4>3a. It seems easy to lose track of the thread</h4><p>As you read, the thread gets truncated at some point, with responses to the “selected” tweet (the tweet with big letters) taking over. There is a call to action to keep reading the thread, but it’s tiny and that makes it easy to miss it — and that assumes you know to look for it.</p><p>The call to action also says <em>X more replies, </em>not using the word “thread,” even though the UI to enter the thread calls it that <em>(Show this thread).</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Fy-RQubPY46SmaMWg7BKvQ.png" /><figcaption>Never-ending chase to get the rest of the thread (notice the scrollbars). The thing you will see most often is the first response to the first tweet (“if you run into…”).</figcaption></figure><p>Even when you find that call to action in the middle of scrolling and tap on it, you’ll have to fish for it next time, too, as the responses to the original tweet keep hanging in there at the bottom of the chute.</p><p>(There is also a <strong>bug</strong> you could see above, where for some reason the number never goes above 171? That might add to the confusion — you tap it once, scroll down, and the number remains the same.)</p><h4>3b. The conversation UI seems confusing, in general</h4><p>The above three problems — slowness, scrolling bugs, extending UI — contribute to the confusion, but I think even without them it’d still be hard to participate in a conversation where people respond to various tweets in the thread. Here’s a sample of the problem:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*f8vojRwVFF-9VwxoYWp3Bw.png" /><figcaption>The right four screens is just a subset of all the responses like these this tweet received</figcaption></figure><p>I don’t think people intended to respond with the same answer <em>despite </em>others having done so before them. I believe they responded because they never saw the other answers.</p><p>This was the first time I actually wrote a little explainer…</p><style>body[data-twttr-rendered="true"] {background-color: transparent;}.twitter-tweet {margin: auto !important;}</style><blockquote class="twitter-tweet" data-conversation="none" data-align="center" data-dnt="true"><p>Pro tip if you&#39;re following this thread: tap or click on tweets that interest you; many have feedback and thoughts from awesome people who understand things better than I do. (Also, thanks for following this thread!)</p><p>&#x200a;&mdash;&#x200a;<a href="https://twitter.com/mwichary/status/959286690991955969">@mwichary</a></p></blockquote><script src="//platform.twitter.com/widgets.js" charset="utf-8"></script><script>function notifyResize(height) {height = height ? height : document.documentElement.offsetHeight; var resized = false; if (window.donkey && donkey.resize) {donkey.resize(height); resized = true;}if (parent && parent._resizeIframe) {var obj = {iframe: window.frameElement, height: height}; parent._resizeIframe(obj); resized = true;}if (window.location && window.location.hash === "#amp=1" && window.parent && window.parent.postMessage) {window.parent.postMessage({sentinel: "amp", type: "embed-size", height: height}, "*");}if (window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.resize) {window.webkit.messageHandlers.resize.postMessage(height); resized = true;}return resized;}twttr.events.bind('rendered', function (event) {notifyResize();}); twttr.events.bind('resize', function (event) {notifyResize();});</script><script>if (parent && parent._resizeIframe) {var maxWidth = parseInt(window.frameElement.getAttribute("width")); if ( 500  < maxWidth) {window.frameElement.setAttribute("width", "500");}}</script><p>…and I had so many questions — on Twitter or otherwise — about <em>how </em>to read the replies to a tweet in the thread. It’s confusing (<a href="https://twitter.com/nishaspillai/status/959678739700318208">here</a> <a href="https://twitter.com/kevintwohy/status/959765625966092288">are</a> <a href="https://twitter.com/jimcalliu/status/960049170819067904">some</a> <a href="https://twitter.com/footnotesrising/status/960279633416638465">comments</a>), even if it’s explained to you: the replies to the “selected/current” tweet appear nowhere close to the tweet but far below, separated by 30 subsequent tweets in the thread.</p><p><strong>I have a few tactical suggestions:</strong></p><ul><li>Make the “tap here to extend the thread” UI more visible, and tie its label more to the notion of a thread (right now it reads as replies from others).</li><li>If you tap on the action to extend the thread, consider making the initially “selected” tweet not selected any more — or at least remove the replies to it from the bottom. This way, reaching the end of the visible part of the thread will also mean reaching the bottom of the scrollable chute, Fitts’s Law and all that.</li><li>When you start navigating within the thread (<em>e.g. </em>tapping on various tweets to make them “selected”), maybe reduce the distance between the currently “selected” tweet and the tweets replying to it from 30 to much lower? Since the intent of the reader is then to engage with the replies first, and the thread later.</li></ul><p>I do have a sense that a more profound redesign of this entire UI would be in order, however, to better accommodate threads with replies to them.</p><h4>4. It’s hard to stay on top of notifications</h4><p>The very moment your tweet/thread become nanoviral, your notifications get shot. It feels like the service punishing you for doing a good job. Two things in particular are frustrating:</p><ul><li>You can very quickly run out of notifications buffer — you scroll back and at some point the notifications just stop without any warning. If you don’t want to miss out on a reply to you, this forces you to be on top of your notifications, and that’s stressful. <a href="https://twitter.com/mwichary/status/899307294181146624">I talked about it a bit more before</a>. <strong>One idea would to be to extend the notifications buffer. The other, to perhaps allow you to paginate notifications, or allow to choose a specific date </strong>and be more intentional about reading notifications than just the rudimentary (and getting slower and slower) infinite scroll.</li><li><em>Notifications </em>pane has two modes: <em>All</em> and <em>Mentions. </em>I expect the second tab<em> </em>to also include quote tweets, but they’re not there. That forces me to use <em>All</em> not to miss anything — and wade through tons of likes and retweets that are not pertinent. Suggestion:<strong> Please add quote tweets to the <em>Mentions view.</em></strong></li></ul><h4>5. It’s easy to make a mistake and mess up the thread</h4><p>If you mess up and continue the thread not from its last tweet, the whole thing breaks — you can follow up to the beginning from a misplaced tweet, but you will no longer be able to read the entire thread when you start from the beginning.</p><p>This makes sense, but it feels too easy to arrive at this state. It happened to me twice in the above thread alone, where I later had to delete some tweets and republish them in the correct order. (<a href="https://twitter.com/ja2ke/status/959623320822890496">Leftover proof where someone else helped me figure it out</a>.)</p><p>I think a feature to reconnect/reshuffle tweets in a thread would be an overkill. <strong>Making the UI appear faster (as per above) would help.</strong> Perhaps there’s a chance to <strong>introduce some sort of a thread </strong><a href="https://en.wiktionary.org/wiki/end_mark"><strong>end mark</strong></a><strong>, maybe even visible just to the author? </strong>It could be a typographical glyph, or it could be just a change in the UI. Right now in my own stream the last tweet in a thread has the same text as any tweet before: <em>Show this thread. </em>Maybe there’s an opportunity to make the last one special?</p><h4>6. It’s hard to keep track of which photos were already included</h4><p>Managing photos is a small private hell: choosing photos to be portrayed, remembering to filter them, remembering which ones were already used. This is mostly on iOS, not on Twitter. As a matter of fact, Twitter has a pretty good photo selection UI.</p><p>However, one feature request that would make this so much easier:<strong> when I’m selecting photos to be attached to a tweet, please indicate (gray out?) photos I already attached to (other) tweets before.</strong></p><p><em>That’s it! </em><a href="http://twitter.com/mwichary"><em>My DMs are open</em></a><em> if anything here needs clarification. Screenshot frames thanks to </em><a href="https://mockuphone.com"><em>mockuphone.com</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b6f1f302da8c" width="1" height="1">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Make the Logo Bigger]]></title>
            <link>https://trackchanges.postlight.com/make-the-logo-bigger-d8d8571e17b0?source=rss-a75df5e8a16c------3</link>
            <guid isPermaLink="false">https://medium.com/p/d8d8571e17b0</guid>
            <category><![CDATA[strategy]]></category>
            <category><![CDATA[features]]></category>
            <category><![CDATA[logo]]></category>
            <category><![CDATA[branding]]></category>
            <category><![CDATA[postlight]]></category>
            <dc:creator><![CDATA[Paul Ford]]></dc:creator>
            <pubDate>Thu, 15 Feb 2018 18:55:17 GMT</pubDate>
            <atom:updated>2018-02-21T15:23:00.261Z</atom:updated>
            <content:encoded><![CDATA[<p><em>By </em><a href="https://medium.com/u/c8ff2b7726f2"><em>Will Denton</em></a><em> and </em><a href="https://medium.com/u/168dab556633"><em>Paul Ford</em></a></p><h4>We have a new brand! Friends, let us show it to you.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*tdW78HFy_jPrUotn.jpg" /><figcaption>The line over the P gives us a little something of our own. We call it the overline, although sometimes we call it the hat.</figcaption></figure><p>The measure of a good brand is what it can <em>do</em>. It’s a bit of cultural code that you can continually expand and execute in new context. Viral, but in a good way.</p><p>A long, long, long time ago (six months?) we decided it was time to rebrand Postlight. Our early identity had been made for a baby company unsure of its footing. At the same time we weren’t quite ready to have a three-day offsite with a large branding firm to talk about our core values. So we pulled <a href="https://medium.com/u/c8ff2b7726f2">Will Denton</a> into a meeting room. Will was then a new designer here, unsullied by our peccadilloes and preferences.</p><p><em>Will, </em>we said<em>, you’re a new designer here, unsullied by our peccadilloes and preferences. How would you like to take on the impossible task of rebranding the company where you work every day? Keep in mind that we’re a platform and product shop, not a branding shop, which means we have all the opinions of a branding shop but none of the respect for the process.</em></p><p>Will, to his inestimable credit, continued to meet our gaze. “I will,” he said. Or maybe he was simply asserting his personhood in the face of having to serve as a one-person creative agency inside a firm with very strong opinions about everything: “I, Will.”</p><p>Our brief:</p><ul><li>It needed to feel familiar, as if we’d been around for a while.</li><li>And extremely modern, because we’re a technology company.</li><li>And you know, finished. But also incredibly flexible.</li><li>Because we’re growing in every direction. But don’t want to identify those directions because we don’t want to limit ourselves.</li><li>It truly needs to work on <a href="https://postlight.com">our website</a>, across social. Maybe in Keynote decks. But also PDFs, statements of work, MSWord docs, Google Docs, spreadsheet headers, invoices, business cards, marketing brochures, posters, short books, motion graphics, videos. Oh, and in-house events. We might hold a mini-conference.</li><li>Plus holiday cards.</li><li>Since we’re going to be working with outside firms, it should be easy for a newcomer to apply the brand.</li><li>And lots of animations?</li><li>Don’t overthink it.</li></ul><p>And that’s…exactly what we got, with great credit to Will and the Postlight design team. We are grateful! And we promise never to make you do this again.</p><p><em>—Paul (take it away, Will…)</em></p><h3>Growing up</h3><p>We wanted to reflect the fact that Postlight has grown up. We’re a young company but many of our client relationships go back a decade or more. It was time to stop pretending that “ad hoc” was okay, and button up. And this is where we ended up—</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*L48lYf6kIpHNvUny.jpg" /></figure><h3>Brand ≠ Logo</h3><p>The way we got there was by thinking ground up about what the brand of this place <em>means</em>. A rebrand is of course much deeper than just a logo. We sought to align all aspects of our business to a <strong>singular, unchanging idea</strong>. This helpful diagram will explain that:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*01DhAklcAr-YfGdH.jpg" /><figcaption>There was a lot of thinking besides this.</figcaption></figure><h3>People’s Perception of Us Drives Meaning — and Action!</h3><p>The way we got there was by doing a <a href="http://www.gv.com/sprint/">Google Design Sprint</a>, which I strongly recommend if you need to get busy, opinionated executives to sit down and think through where their company is going. Ultimately the brand can only reflect the culture of our organization—the founder’s values, the culture of the different teams (engineering, design, and product management) and the larger network in which our company operates. The brand has to reflect that, so it’s good to take time to get it right, nail down those values, and think hard about where those values are going.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*__6FcJgp-ANiypHq.jpg" /></figure><h3>The Wordmark</h3><p>Our name is meant to stick in the minds of our peers, clients, and prospects. To hell with little icons. We don’t need to hide the name. We needed to look focused — but be flexible too. Thus we landed on the overline. Or the “dash,” or “eyebrow.” A diacritical mark so simple it can be reappropriated for future applications—see below:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*P0wDm4-XxcELHCEI9KIr1Q.png" /></figure><p><em>!Brand-splaining ahead! </em>It is an accent yes, but it serves as a beacon. A reminder to ourselves what is <em>post</em> light. What is just beyond the technological horizon and how we can harness it to serve our brand promise.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*85n8LQKUyynQK82b.jpg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*kvq1Es00f-He6F9v.jpg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*irVKYUCPPm4zDjx_.jpg" /></figure><h3>Are we there yet?</h3><p>We soft-launched our new site and look-and-feel before the holidays. So are we done? Of course not! It’s a perpetual process. We ship ideas, test assumptions and iterate on insights. It’s quite <em>on-brand </em>to ship our identity like we ship our products.</p><p>It’s a journey. We appreciate any feedback, and we invite you to come along with us as we mature and evolve!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d8d8571e17b0" width="1" height="1"><hr><p><a href="https://trackchanges.postlight.com/make-the-logo-bigger-d8d8571e17b0">Make the Logo Bigger</a> was originally published in <a href="https://trackchanges.postlight.com">Track Changes</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Each One, Teach One: Using Glitch for Learning]]></title>
            <link>https://medium.com/glitch/each-one-teach-one-using-glitch-for-learning-25ca478a7eee?source=rss-a75df5e8a16c------3</link>
            <guid isPermaLink="false">https://medium.com/p/25ca478a7eee</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[learning-to-code]]></category>
            <category><![CDATA[education]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[teaching]]></category>
            <dc:creator><![CDATA[Maurice Cherry]]></dc:creator>
            <pubDate>Thu, 15 Feb 2018 17:15:56 GMT</pubDate>
            <atom:updated>2018-02-15T17:15:56.286Z</atom:updated>
            <content:encoded><![CDATA[<h4>Education doesn’t just take place in the classroom. Here are some of the ways people are using Glitch to learn the latest technologies.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*h_oo35KRgm_qvJjS-cppYA.jpeg" /></figure><p>Whether you’ve been programming for decades or are just starting, everyone who codes is constantly in the process of learning new things. It can be frustrating to know just where to begin, but we’re here to help. Actually, the whole community is here to help you. We built Glitch to be a fun and friendly way to build the app of your dreams, and we are seeing a number of crafty developers and global tech companies use Glitch to teach you everything from building a simple website to creating an immersive VR experience.</p><p>Earlier this year, we rolled out our free <a href="https://glitch.com/react-starter-kit">React Starter Kit</a>, and this week, we launched our <a href="https://glitch.com/website-starter-kit">Website Starter Kit</a>. These are two great ways to learn coding using Glitch, so let’s take a look at how you can use Glitch to teach others!</p><h4>The A-B-Cs of WebVR 🌐</h4><p>WebVR is a JavaScript API that lets you bring virtual reality experiences to the Web. These WebVR experiences also work on VR headsets like Oculus Rift or Google Daydream! If you’re interested in learning more about it, take a look at <a href="https://aframe.io/aframe-school/#/">A-Frame School</a>. This interactive course is presented as an in-browser slideshow (that also works on mobile devices!), and guides you step-by-step through setting up Glitch as your development environment, introducing you to the basic elements and features, and provides you with several lessons and examples. Each of these lessons can be remixed on Glitch, so you can really get hands-on experience with the code.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CIEIkLl2eA8YyzzhvVdyFA.png" /><figcaption>The helpful slideshow guides you through setting up everything to begin learning WebVR! 👍🏽</figcaption></figure><h4>Animating Animals: Boarding the Choo Train 🚂</h4><p>Already have a little experience with HTML, CSS, and JavaScript? Take the next step and make your own interactive web app using <a href="https://choo.io">choo</a>! <a href="https://handbook.choo.io/your-first-choo-app/">This great onboarding example in the Choo Handbook</a> gives you great instructions and code examples on getting started using choo on Glitch by building a fun animals app. By the time you’re finished, you’ll learn the basics on creating templates, modularizing your code, and other helpful concepts which will help you build any app you can imagine.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fglitch.com%2Fedit%2F%23%21%2Fembed%2Fchoo-animals%3Furl%3Dhttps%253A%252F%252Fglitch.com%252Fedit%252F%2523%2521%252Fchoo-animals%26format%3Djson&amp;dntp=1&amp;url=https%3A%2F%2Fglitch.com%2Fedit%2F%23%21%2Fembed%2Fchoo-animals&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=glitch" width="600" height="600" frameborder="0" scrolling="no"><a href="https://medium.com/media/f1f5da6800642f82441881425d0464c4/href">https://medium.com/media/f1f5da6800642f82441881425d0464c4/href</a></iframe><h4>Learning to Search: Rating Tweets with Algolia 🔍</h4><p>When there’s already a ton of documentation around a particular language or framework, sometimes a simple blog entry is best. It’s also a great way to highlight new projects or features, which is what Algolia has done with their Glitch app <a href="https://we-rate-tweets.glitch.me/">We Rate Tweets</a>.</p><p>Instead of walking users through building the app themselves, <a href="https://blog.algolia.com/glitch-app-searching-twitter-timeline/">Algolia wrote a blog post</a> which shows off their new app, tells people how to use it, and gives you instructions to remix it to have your own copy to use. All you need is a Twitter account and an Algolia account to get started!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KnIO35nkY1TKvqfwhyOdKw.png" /><figcaption>Connect your Twitter account and search and rate your tweets! 🥇</figcaption></figure><h4>Developer Docs from Tech’s Titans 👩‍💻</h4><p>Glitch is super approachable for beginners, but it’s also powerful enough to be used by some of the biggest companies on the Web. We talked about how A-Frame uses Glitch for their interactive slideshow, and Mozilla <em>also</em> uses Glitch to teach developers as well! <a href="https://hacks.mozilla.org/2017/10/multi-user-experiences-with-a-frame/">Mozilla’s post on creating multi-user experiences with A-Frame</a> shows you how to create shared, persistent and interconnected 3D virtual spaces using WebRTC. If you want to make your own slash commands for Slack, <a href="https://blog.airtable.com/api-content-series-slack-slash-command-app/">Airtable provides you with detailed instructions on using Glitch and the Airtable API to make that happen</a>. <a href="https://medium.com/samsung-internet-dev/lessons-learned-making-our-app-with-web-components-bf55379cfcda">Samsung explores how to use web components to build visualizations and configure a midi controller </a>— perfect for anyone looking to become a VJ and show off some cool effects. Lastly, <a href="https://developers.google.com/web/tools/workbox/get-started/npm-script">Google will teach you how to get started using Workbox for NPM</a>, a way to improve load performance for your website and make it work offline.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2pmrH2kVWslsbYUqK6eavg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y9OaVh-KITYMCnwD2-8XHg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dnwskO_MCVZHg-sVj9xgnw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*6-GNqyusm8ccN6CtAGCLhA.png" /><figcaption>Airtable, Google, Mozilla, and Samsung all use Glitch too! ✨</figcaption></figure><h4>But what about the rest of us? 🤔</h4><p>We’ve shown you a lot of examples of what companies are doing with Glitch, but lots of developers out there are using Glitch in amazing ways. <a href="https://101dhhacks.net/2018/01/21/trove-bots-for-all/">The team at Trove has several starter kits to show you how to create your own Twitter bots.</a> Remix any of their bots, add your own personality, and give it a try! <a href="https://medium.com/@kellylougheed/dark-stormy-night-with-css-animations-823d2a5b576f">Live out your horror fantasies and make a dark and stormy night come alive using this fun tutorial from software developer and educator Kelly Lougheed.</a> It uses regular HTML and CSS animations for everything! And this article from Red Hat’s developer evangelist Nicolas Grenié really embodies the spirit of what we want to accomplish with Glitch — <a href="https://dev.to/picsoung/get-better-at-programming-by-helping-others-on-glitch-1b4">getting better at programming by helping others</a>. Teaching really does help you gain a better understanding!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*z4K-NmeQhDWNLpbmMqlB9Q.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*UkW-lOLKER2qci_w32yMJg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*C_dhhbH0xfyDWvk-nViV0w.png" /><figcaption>What will you create today? 😃</figcaption></figure><p>These are just a few examples of how Glitch is used to teach developers across the Internet. The sky’s the limit when it comes to what you can learn, and we’re here to help you succeed. Don’t worry, you’ve got this!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=25ca478a7eee" width="1" height="1"><hr><p><a href="https://medium.com/glitch/each-one-teach-one-using-glitch-for-learning-25ca478a7eee">Each One, Teach One: Using Glitch for Learning</a> was originally published in <a href="https://medium.com/glitch">Glitch</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Learn HTML / CSS / Javascript by creating About Me — Resume Website using Glitch with ease..]]></title>
            <link>https://medium.com/javascript-testing/here-a-secret-to-hack-and-launch-your-own-about-me-portfolio-site-4f5eff04f978?source=rss-a75df5e8a16c------3</link>
            <guid isPermaLink="false">https://medium.com/p/4f5eff04f978</guid>
            <category><![CDATA[website]]></category>
            <category><![CDATA[glitch]]></category>
            <category><![CDATA[html]]></category>
            <category><![CDATA[resume]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[ronchoqa]]></dc:creator>
            <pubDate>Sat, 03 Feb 2018 15:04:40 GMT</pubDate>
            <atom:updated>2018-02-16T13:59:11.491Z</atom:updated>
            <content:encoded><![CDATA[<blockquote>Learn How to make a personal website with your domain name with a hosting and free template to use</blockquote><p>Have you ever thought of making a website for yourself to showcase your portfolio or business — A Simple <a href="https://ronakchovatiya.glitch.me/"><strong>About Me </strong></a>Website that is easy to make to put on your resume or linkedin Profile that looks really nice and mobile friendly… Easy Right? 👇</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FnVvKZZc4OhBEA%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FnVvKZZc4OhBEA%2Fgiphy.gif&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FnVvKZZc4OhBEA%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="297" frameborder="0" scrolling="no"><a href="https://medium.com/media/869450b1de2c565fe9f42b439b0ec5d1/href">https://medium.com/media/869450b1de2c565fe9f42b439b0ec5d1/href</a></iframe><p>In reality, it never ends being a Simple.. Process.. 😞</p><p>Unless you are Developer.. you will have to pay 😦</p><p>You have to go to GoDaddy ..buy domain name and pay for hosting and so many other fees..</p><p>I just want a web presence.. This shouldn’t be too complicated..Right?</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2F3o752cxghDnsmzC6li%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F3o752cxghDnsmzC6li%2Fgiphy.gif&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2F3o752cxghDnsmzC6li%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="244" frameborder="0" scrolling="no"><a href="https://medium.com/media/8d5ba42a822e64a7fc9e845cc6acfaa0/href">https://medium.com/media/8d5ba42a822e64a7fc9e845cc6acfaa0/href</a></iframe><h3><strong>Let’s Get Started… 🚀</strong></h3><blockquote>Goal — Make a personal website to showcase skills, professional, hobbies. Get a Link to Share with Friends or Resume..</blockquote><h3>We will be using a website called — <a href="https://glitch.com/">Glitch</a>.com 💻</h3><p>Make an Account Using<strong> Facebook or Github</strong>. It’s Free! Yeh.. there’s no catch they believe in Open-Source, you should help each other out. <em>There is no credit card need just sign up for an account.</em></p><h3>Search for ‘Freelance-Theme’ in Right Search box 🔎</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/318/1*AwU7i6zI4PLau9MCjjQe9Q@2x.jpeg" /></figure><blockquote>Click on it and <strong>then</strong> hit ‘Remix your own’ ♻️</blockquote><blockquote>Glitch — each app can remixed to you account and then you can make changes. These ‘apps’ are boilerplate or template code and you can add on it instead of starting from scratch. This process helps us save time and quickly get started without needing to worry about installation and setup.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mYtNFivRTnWPiqt4WyX7Bw.png" /><figcaption>Take some time to play around with the site.</figcaption></figure><p>Now that we have our project and we can see it live on the browser, any changes we make to <strong>index.html</strong> will automatically show up on ‘show live’ tab.</p><p>Change the top left to your name and Let’s start making changes inside index.hml. All Web pages are broken down into three main sections — &lt;HEADER&gt; &lt;BODY&gt; &lt;FOOTER&gt;.</p><blockquote>Based on where each section is we will simply change the text in between the html tags.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*v1MTZvMPASbS4aGhWRIfMA.png" /><figcaption>Change the Title — Title of your website</figcaption></figure><p><strong>HEADER</strong> — Now change your Name and your skills.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fcYtHJ-Wb8hkYaAXpGvjLA.png" /><figcaption>Index.html</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bKAS2G8ZX2fJ6cNOBeRtMQ.png" /><figcaption>Show Live View.</figcaption></figure><p><strong>BODY —</strong> Let’s Change About me section.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Una8hTndFGdrsS0zbritZA.png" /><figcaption>Change text in between &lt;p&gt; tags.</figcaption></figure><p><strong>FOOTER — </strong>Same as above, lets add some links to facebook or linkedin.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1ZtqCSGadkIzo3Dy8ZLeSQ.png" /><figcaption>If you need to delete a social bubble — delete entire tag from &lt;li&gt; ….dribble&lt;/li&gt;</figcaption></figure><p>If you need to find where the html tags are — on google chrome ‘Right click’ &gt; click ‘Inspect’ — It open console to view html in browser</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2r1YrFtp7UXo9Kk0JWIujA.gif" /><figcaption>Use Chrome console to get a better understanding of html tags.</figcaption></figure><blockquote>That’s all Folks! ☮️</blockquote><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fgiphy.com%2Fembed%2FMp4hQy51LjY6A%2Ftwitter%2Fiframe&amp;url=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FMp4hQy51LjY6A%2Fgiphy.gif&amp;image=https%3A%2F%2Fmedia.giphy.com%2Fmedia%2FMp4hQy51LjY6A%2Fgiphy.gif&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=giphy" width="435" height="290" frameborder="0" scrolling="no"><a href="https://medium.com/media/ef9d3435ed3bc8df4158304f01dedcdb/href">https://medium.com/media/ef9d3435ed3bc8df4158304f01dedcdb/href</a></iframe><p>By using all the html tags and bootstrap theme — we can simply change texts in between and have professional looking site that is mobile friendly with nice clean design.</p><blockquote>Need more help.. Feel free to remix mine 👍 <a href="https://glitch.com/~ronakchovatiya">https://glitch.com/~ronakchovatiya</a></blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_U7L9YfYeRlpXDv-ThQ-xg.png" /><figcaption>Credit — <a href="https://unsplash.com/photos/MNd-Rka1o0Q">https://unsplash.com/photos/MNd-Rka1o0Q</a></figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4f5eff04f978" width="1" height="1"><hr><p><a href="https://medium.com/javascript-testing/here-a-secret-to-hack-and-launch-your-own-about-me-portfolio-site-4f5eff04f978">Learn HTML / CSS / Javascript by creating About Me — Resume Website using Glitch with ease..</a> was originally published in <a href="https://medium.com/javascript-testing">Javascript Testing</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Reality of Twitter Puffery. Or Why Does Everyone Now Hate Bots?]]></title>
            <link>https://shift.newco.co/the-reality-of-twitter-puffery-or-why-does-everyone-now-hates-bots-47958dcedd3c?source=rss-a75df5e8a16c------3</link>
            <guid isPermaLink="false">https://medium.com/p/47958dcedd3c</guid>
            <category><![CDATA[social-media]]></category>
            <category><![CDATA[twitter]]></category>
            <category><![CDATA[facebook]]></category>
            <category><![CDATA[politics]]></category>
            <category><![CDATA[culture]]></category>
            <dc:creator><![CDATA[danah boyd]]></dc:creator>
            <pubDate>Tue, 13 Feb 2018 01:37:34 GMT</pubDate>
            <atom:link rel="amphtml" href="https://shift.newco.co/amp/p/47958dcedd3c"/>
            <atom:updated>2018-02-13T16:41:03.958Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3uWygNB6SApdzqrkm-ZI9Q.jpeg" /><figcaption><a href="https://www.flickr.com/photos/nekros0306/8154870125"><em>Flickr: Rosa Mendoza</em></a></figcaption></figure><p>A friend of mine worked for an online dating company whose audience was predominantly hetero 30-somethings. At some point, they realized that a large number of the “female” accounts were actually bait for porn sites and 1–900 numbers. I don’t remember if users complained or if they found it themselves, but they concluded that they needed to get rid of these fake profiles. So they did.</p><p>And then their numbers started dropping. And dropping. And dropping.</p><p>Trying to understand why, researchers were sent in. What they learned was that hot men were attracted to the site because there were women that they felt were out of their league. Most of these hot men didn’t really aim for these ultra-hot women, because they felt like they would be inaccessible, but they were happy to talk with women who they saw as being one rung down (as in actual hot women). These hot women, meanwhile, were excited to have these hot men (who they saw as equals) on the site. These also felt that, since there were women hotter than them, that this was a site for them. When they removed the fakes, the hot men felt the site was no longer for them. They disappeared. And then so did the hot women. Etc. The weirdest part? They reintroduced decoy profiles (not as redirects to porn but as fake women who just didn’t respond) and slowly folks came back.</p><p>Why am I telling you this story? Fake accounts and bots on social media are not new. Yet, in the last couple of weeks, there’s been newfound hysteria around Twitter bots and fake accounts. I find it deeply problematic that folks are saying that having fake followers is inauthentic. This is like saying that makeup is inauthentic. What is really going on here?</p><h4>From Fakesters to Influencers</h4><p>From the earliest days of Friendster and MySpace, people liked to show how cool they were by how many friends they had. As <a href="http://www.amazon.com/exec/obidos/ASIN/0300176724/danah-20">Alice Marwick eloquently documented</a>, self-branding and performing status were the name of the game for many in the early days of social media. This hasn’t changed. People made entire careers out of appearing to be influential, not just actually being influential. Of course a market emerged around this so that people could buy and sell followers, friends, likes, comments, etc. Indeed, standard practice, especially in the wink-nudge world of Instagram, where monetized content is the game and so-called organic “macroinfluencers” can easily double their follower size through bots are more than happily followed by bots, paid or not<strong>.</strong></p><p>Some sites have tried to get rid of fake accounts. Indeed, Friendster played whack-a-mole with them, killing off <a href="http://www.danah.org/papers/NoneOfThisIsReal.pdf">“Fakesters”</a> and any account that didn’t follow their strict requirements; this prompted a mass exodus. Facebook’s real-name policy also signaled that such shenanigans would not be allowed on their site, although shhh…. lots of folks figured out how to have multiple accounts and otherwise circumvent the policy.</p><p>And let’s be honest — fake accounts are all over most online dating profiles. <a href="https://gizmodo.com/almost-none-of-the-women-in-the-ashley-madison-database-1725558944">Ashley Madison</a>, anyone?</p><h4>Bots, Bots, Bots</h4><p>Bots have been an intrinsic part of Twitter since the early days. Following the Pope’s daily text messaging services, the Vatican set up numerous bots offering Catholics regular reflections. Most major news organizations have bots so that you can keep up with the headlines of their publications. Twitter’s almost-anything-goes policy meant that people have built bots for all sorts of purposes. There are bots that do poetry, ones that argue with anti-vaxxers about their beliefs, and ones that call out sexist comments people post. I’m a big fan of the <a href="https://twitter.com/censusAmericans">@censusAmericans</a> bot created by FiveThirtyEight to regularly send out data from the Census about Americans.</p><p>Over the last year, sentiment towards Twitter’s bots has become decidedly negative. Perhaps most people didn’t even realize that there were bots on the site. They probably don’t think of <a href="https://twitter.com/NYTimes">@NYTimes</a> as a bot. When news coverage obsesses over bots, they primarily associate the phenomenon with nefarious activities meant to seed discord, create chaos, and do harm. It can all be boiled down to: Russian bots. As a result, Congress saw bots as inherently bad and journalists keep accusing Twitter of having a “bot problem” without accounting for how their stories appear on Twitter through bots.</p><p>Although we often hear about the millions and millions of bots on Twitter as though they’re all manipulative, the stark reality is that bots can be quite fun. I had my students build Twitter bots to teach them how these things worked — they had a field day, even if they didn’t get many followers.</p><p>Of course, there are definitely bots that you can buy to puff up your status. Some of them might even be Russian built. And here’s where we get to the crux of the current conversation.</p><h4>Buying Status</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/631/1*HhDWlKMuJpnIjIyEVQH4rA.jpeg" /><figcaption>Typical before/after image on Instagram.</figcaption></figure><p>People buy bots to increase their number of followers, retweets, and likes in order to appear cooler than they are. Think of this as mascara for your digital presence. While plenty of users are happy chatting away with their friends without their makeup on, there’s an entire class of professionals who feel the need to be dolled up and giving the best impression possible. It’s a competition for popularity and status, marked by numbers.</p><p>Number games are not new, especially not in the world of media. Take a well-established firm like Nielsen. Although journalists often uncritically quote Nielsen numbers as though they are “fact,” most people in the ad and media business know that they’re crap. But they’ve long been the best crap out there. And, more importantly, they’re uniform crap so businesses can make predictable decisions off of these numbers, fully aware that they might not be that accurate. The same has long been true of page views and clicks. No major news organization should take their page views literally. And yet, lots of news agencies rank their reporters based on this data.</p><p>What makes the purchasing of Twitter bots and status so nefarious? The <a href="https://www.nytimes.com/interactive/2018/01/27/technology/social-media-bots.html">NYTimes story</a> suggests that doing so is especially deceptive. Their coverage shamed Twitter into deleting a bunch of Twitter accounts, outing all of the public figures who had bought bots. It almost felt like a discussion of who had gotten Botox.</p><p>Much of this recent flurry of coverage suggests that the so-called bot problem is a new thing that is “finally” known. It boggles my mind to think that any regular Twitter user hadn’t seen automated accounts in the past. And heck, there have been services like <a href="https://www.twitteraudit.com/">Twitter Audit</a> to see how many fake followers you have since at least 2012. <a href="https://medium.com/i-data/fake-friends-with-real-benefits-eec8c4693bd3">Gilad Lotan even detailed the ecosystem of buying fake followers in 2014</a>. I think that what’s new is that the term “bot” is suddenly toxic. And it gives us an opportunity to engage in another round of social shaming targeted at insecure people’s vanity all under the false pretense of being about bad foreign actors.</p><p>I’ve never been one to feel the need to put on a lot of makeup in order to leave the house and I haven’t been someone who felt the need to buy bots to appear cool online. But I find it deeply hypocritical to listen to journalists and politicians wring their hands about fake followers and bots given that they’ve been playing at that game for a long time. Who among them is really innocent of trying to garner attention through any means possible?</p><p>At the end of the day, I don’t really blame Twitter for giving these deeply engaged users what they want and turning a blind eye towards their efforts to puff up their status online. After all, the cosmetic industry is $55 billion. Then again, even cosmetic companies sometimes <a href="https://www.nytimes.com/2014/01/18/business/johnson-johnson-takes-first-step-in-removal-of-questionable-chemicals-from-products.html">change their formulas</a> when their products receive bad press.</p><p><em>Note: I’m fully aware of hypotheses that bots have destroyed American democracy. That’s a different essay. But I think that the main impact that they have had, like spam, is to destabilize people’s trust in the media ecosystem. Still, we need to contend with the stark reality that they do serve a purpose and some people do want them.</em></p><figure><a href="https://forum.newco.co/?utm_source=Medium&amp;utm_medium=Banner%201"><img alt="" src="https://cdn-images-1.medium.com/max/700/1*mMWrsNQe6eWKwn0dAYfuKg@2x.jpeg" /></a></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=47958dcedd3c" width="1" height="1"><hr><p><a href="https://shift.newco.co/the-reality-of-twitter-puffery-or-why-does-everyone-now-hates-bots-47958dcedd3c">The Reality of Twitter Puffery. Or Why Does Everyone Now Hate Bots?</a> was originally published in <a href="https://shift.newco.co">NewCo Shift</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I built a game in a week]]></title>
            <link>https://medium.com/samsung-internet-dev/how-i-built-a-game-in-a-week-5810b1197686?source=rss-a75df5e8a16c------3</link>
            <guid isPermaLink="false">https://medium.com/p/5810b1197686</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[game-development]]></category>
            <category><![CDATA[seo]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Ada Rose Cannon]]></dc:creator>
            <pubDate>Mon, 12 Feb 2018 16:31:07 GMT</pubDate>
            <atom:updated>2018-02-12T17:12:14.558Z</atom:updated>
            <content:encoded><![CDATA[<p>I tried to make a game mostly using tools available on the web.</p><p>Being so short on time I built it out of off the shelf parts carefully picking my tools to build it rapidly. This blog post will introduce the tools I used and the difficulties with joining them together to make a game.</p><p>You can play it right now, in your browser with no download. It is very short, after all I only had a week to make it:</p><p><a href="https://ada-game-engine.glitch.me">I wake up with Anxiety</a></p><p>My goal for the game was to build a 3rd person rpg you explore either through interacting with the text or by exploring the 3D environment. Which works on phones and desktop computers.</p><p>Having only a week of weekends and evenings to put it together (about 20 hours in total) I had to pick my battles very carefully.</p><p>Firstly I picked the technologies I felt could help me build the scene fastest:</p><ul><li>A-Frame — A 3D engine controlled through HTML</li><li><a href="https://spaces.archilogic.com/explore">3Dio</a>—An amazing tool for designing and exporting 3D architecture in the browser.</li><li>Twinery — A really fun narrative game engine designed for producing text games it exports to HTML.</li><li>Glitch — A service for building and hosting web software. Provides a developer environment and the capabilities for running a node server.</li></ul><p>Of these tools Twinery is the most prescriptive as it outputs the whole HTML file, which is what I will be publishing to Glitch. Because it is the most prescriptive it is what I will have to work with to add in my 3D features.</p><p>Fortunately Twinery gives us good JavaScript injection abilities allowing me to pull in the other resources I need.</p><p>You can explore full source code by saving the webpage as a .html file and opening it here: <a href="http://twinery.org/2/">http://twinery.org/2/</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1007/1*FDsrqQfM0W_tTvAWHUb-Pg.png" /><figcaption>The full source doed through the Twinery Interface (<a href="http://twinery.org/">http://twinery.org/</a>)</figcaption></figure><p>Now we have our scene I wanted to add the 3D abilities. This meant adding A-Frame. The nice thing about A-Frame is that it is controlled through HTML so I can add my scene by using JQuery to add the A-Frame JavaScript library and injecting some HTML to the top of the page.</p><pre>$.getScript(&#39;<a href="https://aframe.io/releases/0.7.1/aframe.min.js&#39;">https://aframe.io/releases/0.7.1/aframe.min.js&#39;</a>)<br>.then(function() {<br> document.body.insertAdjacentHTML(&#39;afterbegin&#39;, `<br>    &lt;a-scene vr-mode-ui=&quot;enabled: false&quot;&gt;<br>      &lt;a-box position=&quot;-1 0.5 -3&quot; rotation=&quot;0 45 0&quot; color=&quot;#4CC3D9&quot; shadow&gt;&lt;/a-box&gt;<br>      &lt;a-sphere position=&quot;0 1.25 -5&quot; radius=&quot;1.25&quot; color=&quot;#EF2D5E&quot; shadow&gt;&lt;/a-sphere&gt;<br>      &lt;a-cylinder position=&quot;1 0.75 -3&quot; radius=&quot;0.5&quot; height=&quot;1.5&quot; color=&quot;#FFC65D&quot; shadow&gt;&lt;/a-cylinder&gt;<br>      &lt;a-plane position=&quot;0 0 -4&quot; rotation=&quot;-90 0 0&quot; width=&quot;4&quot; height=&quot;4&quot; color=&quot;#7BC8A4&quot; shadow&gt;&lt;/a-plane&gt;<br>      &lt;a-sky color=&quot;#ECECEC&quot;&gt;&lt;/a-sky&gt;<br>    &lt;/a-scene&gt;<br>`);<br>});</pre><p>A-Frame is designed to be used for virtual reality so it provides additional controls to use it with a VR headset. My game isn’t intended to be used with VR so I disable these controls by adding vr-mode-ui=&quot;enabled: false;&quot; to the &lt;a-scene&gt; element.</p><p>The A-Frame element I inject to the top of the page is by default hidden behind the Twinery story elements so I need to use some CSS to show the 3D scene. To do this I make the &lt;tw-story&gt; element transparent and ignore pointer-events. Also I move the &lt;tw-passage&gt; element to the bottom of the screen and let it scroll incase of long messages.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/798/1*4MRt-l5zZSDAOjrO3ZiKKQ.png" /></figure><p>Twinery has a place to enter CSS to do this I hide the tw-story I place the tw-passage at the bottom of the screen and make the a-scene fill the whole page.</p><pre>tw-story {<br> background: transparent; <br> pointer-events: none;<br> padding: 0;<br>}</pre><pre>tw-passage {<br>  background: black;<br>  border: 4px double white;<br>  font-size: 1.5em;<br>  line-height: 1em;<br>  pointer-events: auto;<br>  margin: auto 1em 1em 1em;<br>  padding: 1em;<br>  max-height: 40vh;<br>  overflow: auto;<br>}</pre><pre>a-scene {<br>  position: absolute;<br>  top: 0;<br>  left: 0;<br>  transition: opacity ease 2s;<br>}</pre><p>Now we have the funamentals set up I want to be able to control the scene from the Twinery passages.</p><p>The default scripting engine in Twinery is called Harlowe, it is designed to manage dynamic text and traversing between different passages. Here is the code in the first passage.</p><ul><li>It displays some text and then some text the user can click on. If they press ‘Go back to sleep’ it replaces it with a new line of text urging the user to continue.</li><li>The text ‘Check it out’ is a link to anoter passage called ‘wake’</li></ul><pre>//Boom Boom Boom Boom// The banging echoes through my head.</pre><pre>Is it the door? Am I dreaming?</pre><pre>[Go back to sleep]&lt;gosleep|<br>[[Check it out-&gt;wake]]<br>(click-replace: ?gosleep)[//Boom Boom Boom Boom//, the unceasing poundings, echoes in my ears. <br>  <br>I&#39;m probably imagining it but I should check it out.]</pre><p>If you put a script tag in here it gets executed as soon as it is written to the screen:</p><pre>[Make the box green]&lt;green|<br>(click-replace: ?gosleep)[The box is now green.<br>&lt;script&gt;<br>  document.querySelector(&#39;a-box&#39;).setAttribute(&#39;color&#39;, green&#39;);<br>&lt;/script&gt;]</pre><p>This can be used to control the 3D scene which is good enough for a one way binding in the scene where the 3D scene represents the game.</p><p>This wasn’t quite enough for me I want a two way binding where the clicking the text can update the scene OR clicking the scene can update the game state.</p><p>Normally the game engine doesn’t expose state or internal macros to the JavaScript but it is possible to hack access to these. This is not supported in the Harlowe game engine so I cannot garuntee it will always work:</p><pre>(print: (function () {<br>  window.harlowe = {<br>   state: State,<br>   macros: Macros<br>  }<br>  return JSON.stringify(State, null, &#39;  &#39;);<br> }()))</pre><p>This accesses the State and Macro variables and attaches them to the window making them available from all of my JavaScript code as harlowe.state and harlowe.macros.</p><p>I can use these objects to manipulate the internal state of the game engine.</p><h3>Building the Environment</h3><p>I have seen some amazing A-Frame demos made with the Architecture tools of the great Archilogic team so I knew their tools would work with my scene.</p><p>I spent a few hours building a scene. It was really fun, I felt like I was making it in the sims there was a wonderful selection of furniture.</p><p>The most amazing feature in my opinion is the lightmap baking. Once i had built my scene it could automatically generate a baked light map which looks amazing!! This is normally something which is very time consuming to set up well so having it built in as a one button feature is wonderful!</p><p>Look at the lights in the bathroom. The sunlight streaming through the shower curtain and being projected onto the wall!!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LIueed6w5yq_j6o0_AiyTw.png" /></figure><p>It took me a while to figure out but I was able to embed it into A-Frame scene with a few lines of JavaScript, first I add the 3dio library with $.getScript then I use it:</p><pre>// I can get the sceneId from the URL (not a real uuid)<br>const sceneId = &#39;aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa&#39;;</pre><pre>$.getScript(&#39;<a href="https://dist.3d.io/3dio-js/1.1.x/3dio.min.js&#39;">https://dist.3d.io/3dio-js/1.1.x/3dio.min.js&#39;</a>)<br>.then(function () {<br>  return io3d.scene.getAframeElements(sceneID);<br>})<br>.then(function (els) {<br>  const sceneEl = document.querySelector(&#39;a-scene&#39;);<br>  sceneEl.querySelector(&#39;#scene-target&#39;).appendChild(els[0]);<br>});</pre><p>In this case the position of the scene was displaced by 40 units in the x direction making it a little awkward to use until I moved the camera starting point to compensate.</p><h3>Adding interactivity</h3><p>I added a 3D head to be the character it is a model I got commisioned a few months ago to use as avatar for me in VR experiences.</p><p>I wanted to move it around the scene.</p><pre>&lt;a-entity obj-model=&quot;obj: #ada-obj; mtl: #ada-mtl&quot; <br>ada-model=&quot;eyes:3; mouth: 3;&quot; position=&quot;-43.615 0.6 -0.312&quot;<br>scale=&quot;0.08 0.08 0.08&quot; shadow=&quot;cast: true; receive: false;&quot;&gt;<br>&lt;/a-entity&gt;</pre><p>My first guess was to react to the use clicking on the floor and then moving the user there.</p><p>Unfortunately this often resulted in the user walking in straight lines through geometry to get places. Fortunately this can be solved with a Navmesh.</p><p>A Navmesh describes the areas of the scene a character can walk on. There are also tools to allow path finding around a Navmesh making it very useful for building explorable environments.</p><p><a href="https://medium.com/u/1274f3d443f3">Don McCurdy</a>’s amazing article on creating Navmeshes was invaluable here:</p><p><a href="https://medium.com/@donmccurdy/creating-a-nav-mesh-for-a-webvr-scene-b3fdb6bed918">Creating a nav mesh for a WebVR scene</a></p><p>To generate the Navmesh for this scene I first downloaded it as an OBJ model from the Archilogic website. Unfortunately it did not download any of the furniture models with it. But it would do.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kEVFZmDd-hp1gDS41_HLLA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/262/1*6SwfU1ECCJbCH-u8XsvmJw.png" /><figcaption>Close up of the settings I used.</figcaption></figure><p>I followed the tutorial and tweaked the settings to generate the Navmesh for the scene which I exported as Gltf.</p><p>I also added the scripts for the Navmesh A-Frame components to my scene so that I could make the character walk around.</p><p>As well I added a camera which would follow the user.</p><p>The final HTML I add to the page looks like this:</p><pre>&lt;a-scene<br> io3d-lighting vr-mode-ui=&quot;enabled: false&quot;&gt;</pre><pre>&lt;a-assets&gt;<br>  &lt;a-asset-item id=&quot;ada-obj&quot; <br>src=&quot;<a href="https://cdn.rawgit.com/AdaRoseEdwards/metaverse/master/static/models/ada/vr-ada.obj">https://cdn.rawgit.com/AdaRoseEdwards/metaverse/master/static/models/ada/vr-ada.obj</a>&quot;&gt;&lt;/a-asset-item&gt;</pre><pre>  &lt;a-asset-item id=&quot;ada-mtl&quot; <br>src=&quot;<a href="https://cdn.rawgit.com/AdaRoseEdwards/metaverse/master/static/models/ada/vr-ada.mtl">https://cdn.rawgit.com/AdaRoseEdwards/metaverse/master/static/models/ada/vr-ada.mtl</a>&quot;&gt;&lt;/a-asset-item&gt;</pre><pre>  &lt;a-asset-item id=&quot;navmesh&quot; <br>src=&quot;<a href="https://cdn.glitch.com/b4fd6fd6-484f-46a9-abd9-b602f64aa92a%2Fnavmesh.gltf">https://cdn.glitch.com/b4fd6fd6-484f-46a9-abd9-b602f64aa92a%2Fnavmesh.gltf</a>&quot;&gt;&lt;/a-asset-item&gt;<br>&lt;/a-assets&gt;</pre><pre>  &lt;!-- Black background --&gt;<br>  &lt;a-sky color=&quot;black&quot;&gt;&lt;/a-sky&gt;</pre><pre>  &lt;!-- character model has the id #target --&gt;<br>  &lt;a-entity obj-model=&quot;obj: #ada-obj; mtl: #ada-mtl&quot; <br>ada-model=&quot;eyes:3; mouth: 3;&quot; position=&quot;-43.615 0.6 -0.312&quot; id=&quot;target&quot; <br>scale=&quot;0.08 0.08 0.08&quot; shadow=&quot;cast: true; receive: false;&quot; <br>nav-controller=&quot;speed: 1.5&quot;&gt;&lt;/a-entity&gt;<br> <br>  &lt;!-- The Building Elements get injected here--&gt;<br>  &lt;a-entity id=&quot;scene-target&quot;&gt;<br>  &lt;/a-entity&gt;<br> <br>  &lt;!-- navigation mesh for the floor --&gt;<br>  &lt;a-entity gltf-model=&quot;#navmesh&quot; nav-mesh <br>visible=&quot;false&quot;&gt;&lt;/a-entity&gt;<br>  <br>  <br>  &lt;!-- orbit cam looks at #target --&gt;<br>  &lt;a-entity camera=&quot;fov: 50; zoom: 1;&quot; position=&quot;-44 3 5&quot; <br>orbit-controls=&quot;invertZoom: true; autoRotate: false; target: #target; <br>enableDamping: true; dampingFactor: 0.5; minDistance:4; maxDistance:20; <br>maxPolarAngle:1.0; minPolarAngle: 0.2; enableKeys: false; enablePan: <br>false;&quot;&gt;&lt;/a-entity&gt;</pre><pre>&lt;/a-scene&gt;</pre><p>We are now ready to add mouse interactions. To do this we will use a raycaster to work out where the user is clicking on the scene.</p><p>This functionality is added in a helper JavaScript file I wrote. <a href="https://glitch.com/edit/#!/ada-game-engine?path=static/interactions.js:2:0">Full source.</a></p><p>It is a little complex so I will break down how it works.</p><p>First I create a new rayCaster to use do the detection and I get a list of elements which I want to detect.</p><pre>const raycaster = new THREE.Raycaster();<br>const scene = document.querySelector(&#39;a-scene&#39;);<br>const furniture = Array.from(document.querySelectorAll(&#39;[nav-mesh],[io3d-furniture],[io3d-closet],[io3d-door]&#39;));</pre><p>Many of the objects in the Archilogic architecture are actually invisible and their geometry has been all joined into the scene. This breaks raycasting. Fortuantely the original objects are still present so first I have to make them all visible when I do a click. Once the raycasting is complete I hide them again so they don’t accidentially get rendered.</p><pre>const invis = furniture.filter(o =&gt; {<br>  if (!o.getAttribute(&#39;visible&#39;)) {<br>    o.setAttribute(&#39;visible&#39;, true);<br>    return true;<br>  } else {<br>    return false;<br>  }<br>});</pre><p>I then configure the raycaster based upon the mouse position and current view:</p><pre>const camera = scene.camera;<br>const mouse = {<br>  x: (e.offsetX / scene.offsetWidth) * 2 - 1,<br>  y: -(e.offsetY / scene.offsetHeight) * 2 + 1<br>};<br>raycaster.setFromCamera(mouse, camera);</pre><p>We can now do the raycasting.</p><pre>const intersects = raycaster.intersectObjects(furniture.map(o =&gt; o.object3D), true);</pre><p>We then interate over the intersections and filter out any objects we don’t care about.</p><p>If the user clicks on an object and that object’s name matches that of a passage we jump to that passage using the macros object we hacked access too earlier:</p><pre>window.harlowe.macros.get(&#39;go-to&#39;)([&#39;&#39;, passageName]).TwineScript_Print();</pre><p>If the user clicks on the floor we use the navmesh component to move the user to that location.</p><pre>const ctrlEl = scene.querySelector(&#39;[nav-controller]&#39;);<br>ctrlEl.setAttribute(&#39;nav-controller&#39;, {<br>  active: true,<br>  destination: intersection.point<br>});</pre><h4>Now we’re ready to write some story</h4><p>We’re now ready to start writing some story. There is some additional functionality I added to handle some story elements.</p><p>For example starting some passsages will trigger the character to move to walk to a new position.</p><p>There is also some functionality for limiting the interactable elements to those in the room the user currently is.</p><h4>Hosting and Publishing</h4><p>The server is on Glitch. Unfortunately a bug in Glitch prevented me from uploading the large HTML file. Instead I rename it and uploaded it to the assets folder as a plain text file.</p><p>To get around this I made a small custom server. When a request for the page is made it downloads the file from the CDN and injects metadata for SEO and social media before serving it to the user. It is not an optimal solution but it worked in the limited time I had.</p><p>Here is the link again if you want to play the game:</p><p><a href="https://ada-game-engine.glitch.me">I wake up with Anxiety</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1007/1*6Rhn4wF_iTnWo-bM-ftORA.png" /><figcaption>For Social Media Preview</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5810b1197686" width="1" height="1"><hr><p><a href="https://medium.com/samsung-internet-dev/how-i-built-a-game-in-a-week-5810b1197686">How I built a game in a week</a> was originally published in <a href="https://medium.com/samsung-internet-dev">Samsung Internet Developers</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Beyond Open Offices: The New Fog Creek Headquarters]]></title>
            <link>https://medium.com/make-better-software/beyond-open-offices-the-new-fog-creek-headquarters-bc2f70d7c7dc?source=rss-a75df5e8a16c------3</link>
            <guid isPermaLink="false">https://medium.com/p/bc2f70d7c7dc</guid>
            <category><![CDATA[tech]]></category>
            <category><![CDATA[business]]></category>
            <category><![CDATA[office-culture]]></category>
            <category><![CDATA[startup]]></category>
            <dc:creator><![CDATA[Maurice Cherry]]></dc:creator>
            <pubDate>Tue, 13 Feb 2018 22:16:56 GMT</pubDate>
            <atom:updated>2018-02-13T22:41:28.169Z</atom:updated>
            <content:encoded><![CDATA[<h4>Putting employees first is always at the heart of how we create great places to work.</h4><p>The new Fog Creek Software office is meant for our staff to do their best work and feel comfortable and creative while doing it. With high ceilings, an open floor plan, and a killer view of the Financial District and Bowling Green Park, the new space is not only inspiring and beautiful, but as a nod to our history, it’s also experimental. To understand this better, let’s take a trip down memory lane.</p><h4>In The Beginning, There Was Joel</h4><p>We moved into our first real office, dubbed the <a href="https://www.joelonsoftware.com/2003/09/24/bionic-office/">“Bionic Office”</a>, at 535 8th Avenue in New York City back in 2003. Our co-founder Joel Spolsky worked with architect <a href="http://leonedesignstudio.com">Roy Leone</a> to design a space where Fog Creek workers could thrive and work alongside their co-workers while still maintaining privacy.</p><blockquote>Office space seems to be the one thing that nobody can get right and nobody can do anything about. There’s a ten year lease, and whenever the company moves the <em>last</em> person anybody asks about how to design the space is the manager of the software team, who finds out what his new veal-fattening pens, uh, cubicle farm is going to be like for the first time on the Monday after the move-in.</blockquote><blockquote>Well, it’s my own damn company and I can do something about it, so I did.</blockquote><p>One of the primary features of this space was ensuring that our developers had private offices with closing doors. According to Joel, these offices were key to improving programmer productivity, were absolutely required, and not up for negotiation.</p><blockquote>Not only did we get spacious, windowed private offices, but even the common area workstations (for non-developers) are hidden in clever angular alcoves, so everyone gets their own private space without line of sight to anyone else.</blockquote><p>Having an office space that worked for employees was so important to Joel that he took a hands-on role in the office’s overall creation, having a say in office elements like power, wiring, and the common areas to create the ultimate software development environment.</p><p>Fog Creek continued growing over the years after that, eventually taking over the entire floor of the original office. But after five years, it was time to find a bigger space. After a grueling search, we found our next office home nearly all the way downtown at 55 Broadway. <a href="http://www.nytimes.com/2009/02/08/realestate/commercial/08sqft.html">The new space was such a hit that we were even covered in <em>The New York Times</em>.</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*a_QRQ2OYa0uJrrIGJJI9nw.jpeg" /><figcaption>Look at that couch. And that VIEW!😱</figcaption></figure><h4>New Office, Same Neighborhood</h4><p>A lot of changes happened during the years at 55 Broadway, but we also kept a few ideas from our original space. Joel still had a hands-on role in both layout and construction, we retained private offices for our developers, and we provided a space large enough for our <a href="https://blog.fogcreek.com/improve-your-culture-with-these-team-lunch-tips-from-20-startups/">daily team lunches</a>. To get the best sense of how much detail went into this space, watch the video below and see how it all came together.</p><iframe src="https://fast.wistia.net/embed/iframe/x8lho8s5u1" width="960" height="540" frameborder="0" scrolling="no"><a href="https://medium.com/media/424ed6e8393b7a2bce088499483a1764/href">https://medium.com/media/424ed6e8393b7a2bce088499483a1764/href</a></iframe><p>One of the biggest changes at Fog Creek was that the number of our remote workers increased to make up two-thirds of our workforce. Also, two of the most successful projects we’ve worked on — <a href="https://trello.com">Trello</a> and <a href="https://stackoverflow.com">Stack Overflow</a> — grew large enough to become independent companies.</p><p>“As they grew and we grew, it got a little cozy,” says Anil Dash, CEO of Fog Creek.</p><p>“It was just time for us to stand on our own again. As we refocused on our products, we really thought about what a great headquarters would look like now for a company that is so focused on being great for remote people too.”</p><p>We moved office spaces in 2017, but we didn’t go far — our new headquarters at 75 Broad Street is just a half mile away and has picturesque views of Bowling Green Park and The New York Stock Exchange from our lovely 19th floor private terrace.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mNH5PL-UKw-luyy5tuun4Q.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jmpVFnRTeOFKYRjvHp2lLw.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*CeFHCofpwILdT65PUhiISg.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-sID_eVeDAorO1_jeXD7GQ.jpeg" /><figcaption>Snapshots of the new Fog Creek Software headquarters.</figcaption></figure><p>So what’s different about this new space?</p><h4>Working on How We Work</h4><p>“The old space was built when the entire company was based in headquarters,” Anil mentions. “That was sort of a different era. And similarly, back then our founders would talk a lot about programmers and coders and what they needed, which is an office with a door that closes. That’s still part of our ethos, but half the company are not coders.”</p><p>With our developers, sales team, and C-level executives working from the same space, taking different work styles into consideration is important. Some of these tasks require intense concentration, while others are more conversational and collaborative with your co-workers. To that end, there are some ideas we kept from previous office spaces.</p><p>“I think there was a very strong expectation among the members of our technical staff that coders would have an office with a door that closes. That was always a very big part of our public face of what Fog Creek is to the world. And the research is pretty clear that it is a massive booster of productivity for people in those kinds of technical roles. So we didn’t want to compromise on that at all.”</p><p>But the new office also includes a variety of work spaces that accommodate different work modes. Anil mentioned personal offices for standalone work, but they also work well for collaborative work like pair programming. There are workstations for independent or individual co-working, and phone booths for external communication such as sales calls or podcast appearances. There’s also our conference room — known as the “quiet car” — which can be used across a number of different work modes. And true to the nature of our office being flexible and experimental, we are already re-configuring some of these spaces based on how we use them.</p><p>“I think we have made [the office] a much more malleable space. We have a lot more plans to sort of shift things around, even so far as being able to entertain here. We’d never really designed our old place to be able to have guests and have people hold events and all that sort of stuff. And all of that is on the road map for us now.”</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2fnQ9VWrzTuR3LEJvMonBw.png" /><figcaption>Our new office space allows seamless transition between work modes.</figcaption></figure><h4>The Future of Fog Creek</h4><p>“I think just at a high level, work space really matters. It’s a fundamental part of how you take care of your people, and we have always been leaders on that. When the bar is set that high, you really have to get it right. And so we have always taken this really, really seriously. And at the same time, we have a lot of fun with it.”</p><p>And speaking of fun, we can’t forget about our lovely terrace. Once it’s up and running later in the year, we expect it to be a wonderful place for collaborative work. It will also be the centerpiece of our office as we host events, visitors, and other guests.</p><p>“There are a lot of companies in New York that have a lot of great ideas, and we are hoping to be able to invite them over, get to know each other, and figure out what we can learn from each other …and also just be good neighbors,” says Anil.</p><p>As the company has grown and changed over the years, so has our office space. Joel’s grand visions for what a work environment should do for employees have been part of Fog Creek from the very beginning, and we have tried to honor that legacy. We also have plenty of plans for the future, and look forward to continuing our tradition of incubating new teams and ideas from within our company and beyond.</p><p>“I think the fact that there’s so much personality and history in everything we do is really motivating. It’s become a very great space.”</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bc2f70d7c7dc" width="1" height="1"><hr><p><a href="https://medium.com/make-better-software/beyond-open-offices-the-new-fog-creek-headquarters-bc2f70d7c7dc">Beyond Open Offices: The New Fog Creek Headquarters</a> was originally published in <a href="https://medium.com/make-better-software">Fog Creek Software</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>