Category: Mobile

  • Electronic Conference Badges

    Ever since attending Defcon 24 this past August, I’ve been enthralled with the idea of electronic event badges.

    I’m also pondering and trying to sort out what exactly would be needed to accomplish them on a budget that could be done for a WordCamp, and have it be both hackable after the event, but also usable during — and of course, look cool.

    From my experience running a WordCamp, I know that attendee gifts should normally be about or just under $10 per attendee, whereas speaker gifts should normally be about maybe $20 or so.  One handy bit is that speaker gifts are in addition to attendee gifts that they get anyways, so it’s possible to have the speaker gift be an addition to their attendee badge — like an LED display and better battery or sensors or the like.

    All this compiles to roughly the following requirements for attendees:

    • $10 per badge price limit.
    • Battery powered.
    • Blinky LEDs — either pretty or useful.
    • (optional) Reprogrammable after (or during) the event.

    The programmability and interactivity aspect of the badge is particularly tricky, but there’s a variety of cheap microcontroller units (MCU) like the ESP-8266 12-F that can be had for under $1 per in quantity.  Or, if you’d like something a bit easier for your attendees to reprogram, the Wemos D1 Mini which is based on the aforementioned ESP-8266 12-F can also be had for under a dollar in quantity — while it would make your badge a bit bulkier as it would need to connect to your badge via pins, rather than just soldering SMD directly to the badge — it also provides a Micro USB port to make it easier for users to connect to, without having to supply their own UART adapter.  The added bulk is likely worth it, in this case.

    As an aside, the Wemos D1 Mini is also programmable via the Arduino IDE, so that may simplify the process for your attendees to hack on their badges.

    The other tremendous advantage to using an ESP8266 based board as the brain of your badge is that the ESP8266 is actually a wifi chip!  That’s right, it can reach out and connect to wifi networks, or make an ad hoc network between multiple badges so they can communicate!

    This opens up a number of possibilities.  Would you like to let your attendees sign up for specific sessions throughout the day, and have their badge light up an LED indicating which room they need to go to?  Totally doable!  Would you like to have every attendee’s badge light up and start blinking at the same time?  Also doable!

    The one downside with being cost-constrained is that you may wind up putting in more time than expected assembling the boards.  It is possible to have your factory that manufactures the PCBs also pick and solder all the components, but that costs a bit more as well.  If you’re doing a short run of maybe 10-20 boards for just speakers or the like, it’ll probably be easier to just make them yourself.

    The other option that can be explored is to have the attendee gift be a cheap system-on-a-chip linux computer somewhat like to the $5 Raspberry Pi Zero — basically giving every attendee a computer that can operate as a WordPress Server — and then have the Speaker Gift be a badge with sensors and lights and batteries that can be powered by the attendee gift.

    In my exploring of this option, it seems that the simplest option may actually be the C.H.I.P. — while there are other options such as the aforementioned Raspberry Pi Zero and Orange Pi Zero, they both would necessitate also picking up MicroSD cards which can add to the price significantly — however, there are other development boards like the C.H.I.P. that include sufficient storage space on-board to simplify supply chain management.

    https://nextthing.co/pages/chip

    For $9, you get a 1GHz processor, 4GB of storage space, 512MB of RAM, and both Bluetooth 4.0 and WiFi b/g/n for connectivity.  While it doesn’t have the mini-HDMI out that the Raspberry Pi Zero has, it does have composite video out on the board’s headphone jack — and the manufacturer also sells expansion boards that can add on either HDMI or VGA displays.

    As an added bonus, when you need to flash your Chip, the maker also has a tremendously simple, browser-based flasher tool. For something you’re giving to attendees — many of whom may not be comfortable with flashing development boards — the visual flow can be tremendously useful as a jumping off point for many.

    Then you simply need to design a badge with  the pin headers for the C.H.I.P. to plug into, work up a firmware image with things such as the event’s wifi details preloaded, and a script running on a cronjob to operate the lights — and you’ve got yourself a badge for your speakers!

    Or at least that’s the plan.  At the moment, this is all theoretical, I’ve been puttering about and planning possibilities, but haven’t had occasion to actually put all of this into practice.  If any of it catches your fancy and you’d be interested in doing digital badges for your WordCamp, drop me a line on Twitter at @daljo628 and I’d be happy to help as I can.  🙂

     

     

     

     

  • P.S. Pressgram Violated Kickstarter’s Own Rules

    So, last night I was able to finally realize what it was about Pressgram that bothered me so much.

    Just to be clear, I have absolutely no objections to companies getting bought. It’s part of the natural business cycle. I’m a bit iffy on companies who are started for the sole purpose of being bought out for piles of money (and have been approached by several trying to hire me on and offer me a stake), but that’s tangential to the point.

    Normally, when someone starts a company, they get funding in exchange for a stake in the company, and then have to pay out to their stakeholders if they get purchased. Totally fair — the stakeholders make an investment, and get a payout.

    With Kickstarter, folks pay in, to typically get something out of it. A product, some stickers, a big thank you, whatever it happens to be. It front-loads a lot of the funding, and lets the creators build something awesome, which is then dispensed to the backers, and the creators can then go on to continue with it on their own, or build something else.  The expected pay out is known going in.

    My concern (that I really hope I’m wrong on) was that Pressgram was trying to juice the system on both ends. Get the capital influx from Kickstarter by portraying itself as a product that folks would be able to use when it launched so that they didn’t need to put their own skin in the game to get launched, force people to sign up and build a user base, and then get bought out for ‘piles of cash‘ as an exit strategy. Basically trying to reap where one had not sown and profit with zero risk?

    When I mentioned my concern that Pressgram had run its Kickstarter as though it were offering a standalone app (which, based on folks reactions to my posts, it certainly came across that way), John Saddington replied:

    Respectfully, you didn’t read far enough! The social network was a part of the original design, from Day #1 of the campaign!

    I couldn’t put my finger on just why that bothered me so much, or why he had made the references to a social network so vague and hard to catch.

    Then I realized it, about a half hour ago. From the Kickstarter Guidelines as to what may and what may not be Kickstarted:

    Kickstarter cannot be used to fund e-commerce, business, and social networking websites or apps.

    Of course the original Kickstarter campaign couldn’t explicitly say that it was funding the creation of a social network. Those are explicitly forbidden!

    So there’s two situations that remain: Either John Saddington kickstarted an app, or he kickstarted a social network. If it was an app, he should deliver on the Kickstarter and let the app work solo — without the requirement of being connected to the Pressgram social network (even if it results in a couple fewer users if he tries to get bought out). If it was a social network, then it was in direct violation to Kickstarter’s own rules.

    Or, y’know, just say that he decided not to deliver the product that he kickstarted, and built this other product (that happens to have the same name) instead — but that’s a really dangerous precedent, and would kinda kill any future trust.

    So, which is it?

  • Pressgram Terms of Service

    NOTE: This is the second of two posts looking at problems I see with Pressgram. The first, looking at security concerns, can be read here.

    First, a bit of history.  No, it is too long, let me sum up:

    Pressgram was first spawned as a Kickstarter as a reaction to the Instagram Licensing debacle where there was an addition to their Terms of Service which implied that Instagram had the right to resell your photographs without payment or notification.

    The Pressgram Kickstarter made some awesome claims:

    You see, I want to build an independent publishing platform that isn’t beholden to strange and changing Privacy Policies, Terms of Service, or Licensing agreements […]

    I suppose another way you could say it is… it’s your filtered photos published directly to your WordPress-powered blog, when you want, where you want, how you want.

    You see, you now get more creative control over your content than ever before. You won’t have to “license” your photos from the app or the company – they are yours forever and you’ll never see them anywhere else except your own profile and blog.

    This is a boon for the artist, the creative, the independent content creator who doesn’t need to worry about digital agreements or where they may end up seeing their own handiwork.

    It’s yours, for goodness sake. No worries here.

    You see, we believe that true creative control is not just about act and process of creating but also publication, especially in today’s digital economy.

    Gee, that’s pretty slick.  It’s all about letting me keep the rights to my own content!

    Well, no.

    If you read their Terms of Service, you’ll see this section, reproduced in full:

    User Content Submitted Or Made Available For Inclusion On The Service

    TL;DR: Your photos are YOURS, now and forever! We do not hold ANY rights or intellectual property related to your content except for those that allow us to provide the Pressgram app and service to you. Also, your photos will preserve whatever copyright they had before uploading to this site and we will seek to protect that copyright and will not sell your photos without your permission!

    By posting any User Content on the Service, you expressly grant, and you represent and warrant that you have all rights necessary to grant, to Pressgram a royalty-free, sublicensable, transferable, non-exclusive, worldwide license to use, reproduce, modify, publish, list information regarding, edit, translate, distribute, syndicate, publicly perform, publicly display, and make derivative works of all such User Content and your name, voice, and/or likeness as contained in your User Content, in whole or in part, and in any form, media or technology, whether now known or hereafter developed, for use in connection with the Service and Pressgram’s (and its successors’ and affiliates’) business, including without limitation for promoting and redistributing part or all of the Service (and derivative works thereof) in any media formats and through any media channels. You also hereby grant each User of the Service a non-exclusive license to access your User Content through the Service, and to use, reproduce, distribute, display and perform such User Content as permitted through the functionality of the Service and under this Agreement.

    Well, if you read it fully, the TL;DR: section at the top certainly seems to be misleading.  An easy summary that makes you want to gloss over the fine print that — remember — by the Kickstarter, Pressgram wasn’t meant to be “beholden to strange and changing Privacy Policies, Terms of Service, or Licensing agreements.”

    By the summary, Pressgram doesn’t hold any rights except those needed to provide the service and app.  Which would be awesome.  But it’s not what the terms actually say.

    You are granting Pressgram the royalty-free rights to do the following:

    • Reproduce your images
    • Publish your images
    • Modify your images
    • Edit your images
    • Syndicate your images (which means to publish or broadcast in newspapers or TV)
    • Publicly display your images
    • Make derivative works of your images
    • Use your name, voice, and likeness as well, in any of the aforementioned ways

    … and they can sublicense and sell/transfer those rights any way they like!

    Then, it goes on so that you’re giving every other user of the service a license to use, reproduce, distribute, display your images as well.

    Now, this is all very odd considering this is giving Pressgram the very same rights that it was created to protest Instagram trying to claim!

    In fact, let’s take a look at the Instagram Terms and Conditions as they were when the whole ruckus came about (not their current terms, the more objectionable ones that they eventually backed down from).  You can view them here.

    Instagram does NOT claim ANY ownership rights in the text, files, images, photos, video, sounds, musical works, works of authorship, applications, or any other materials (collectively, “Content”) that you post on or through the Instagram Services. By displaying or publishing (“posting”) any Content on or through the Instagram Services, you hereby grant to Instagram a non-exclusive, fully paid and royalty-free, worldwide, limited license to use, modify, delete from, add to, publicly perform, publicly display, reproduce and translate such Content, including without limitation distributing part or all of the Site in any media formats through any media channels, except Content not shared publicly (“private”) will not be distributed outside the Instagram Services.

    As a reminder, these are the original Instagram Terms of Service, the ones that got the internet in a huge fuss, and Pressgram rode the wave of frustration with to over $50,000 of funding.

    Now, that reads nearly identically to the Terms of Service that Pressgram has listed above!  You’re giving them a non-exclusive, perpetual, royalty-free license to do … well … pretty much anything they want with it.

    Pressgram had some pretty noble ideals.  However, by claiming transferable and sublicensable rights to publish and create derivative works of your images, it’s showing that all the attractive talk about how “you get to control any and all commercialization of your content and work, how it always should have been” really is just gilding the lily, as it’s utterly negated in the small print in the terms of service, which Pressgram started out by saying  that it was entirely opposed to.

    If Pressgram were built as just an app, instead of a Social Network (and we totally need another social network clogging up the internet), it wouldn’t have these Terms and Conditions, as you would be using it to modify your own images.  No service to store your images and share them on your behalf.  No server to distribute your images for you.  You’d send your own images directly to your own site, no messy, needless intermediate service to get in the way.  Which is much simpler.

    But instead, what was built as Pressgram is functionally indistinguishable from Instagram, except that it publishes to your WordPress blog, and stores your WordPress credentials on their server.  It still claims the same rights to your images that Instagram did when it was initially conceived, and far more rights than Instagram claims in their current Terms of Service.

    However, there is hope.  It sounds like John Saddington is taking these concerns to heart and looking into them over this weekend.  Here’s hoping the fine print clarifies itself to match Pressgram’s initial noble ideals, or the Pressgram app opens up and makes the service, and therefore its Terms of Service, opt-out.

    UPDATE: Pressgram has updated their Terms of Service, making clear that it’s taking fewer rights to your content, and that those rights are only to be used for displaying your content, and it is no longer claiming the rights to sublicense or transfer those rights.  Hurrah!  It’s now in line with Instagram’s current Terms of Service.

    Unfortunately, now it added this little blurb:

    You agree not to reproduce, duplicate, copy, sell, resell or exploit any portion of the Content, use of the Content, or access to the Content without the express written permission by Pressgram.

    I’m assuming that’s a typo, meant to read “without the express written permission of the original author and owner” — will update when that gets clarified.

  • Quick and Dirty Parallax


    window.onscroll = function() {
    // Mobile doesn't normally work well with Parallax, so let's bail out.
    if( navigator.userAgent.match(/mobile/i) != null ) return;
    els = d.querySelectorAll( '[data-parallax]' );
    for( i in els ) {
    el = els[i];
    if( typeof el.parentNode == 'undefined' ) continue;
    multiplier = el.getAttribute( 'data-parallax' );
    offset = ( el.parentNode.offsetTop – window.pageYOffset ) / multiplier;
    xOffset = 0 – Math.max( offset, 0 );
    if( el.hasAttribute( 'data-parallax-flip-horz' ) )
    xOffset = 0 – xOffset;
    yOffset = Math.min( offset, 0 );
    if( el.hasAttribute( 'data-parallax-flip-vert' ) )
    yOffset = 0 – yOffset;
    transform = 'translateY(' + yOffset + 'px) translateX(' + xOffset + 'px)';
    el.style.webkitTransform = transform;
    el.style.MozTransform = transform;
    el.style.msTransform = transform;
    el.style.OTransform = transform;
    el.style.transform = transform;
    }
    }
    /* Usage:
    <div style="padding-top:20em;">
    <h1 data-parallax="2">I enter from the left, then go up</h1>
    <h2 data-parallax="3" data-parallax-flip-horz="true">I enter from the right, then go up</h2>
    <h3 data-parallax="4" data-parallax-flip-vert="true" >I enter from the left, then &darr; I go!</h3>
    <img src="http://placekitten.com/300/300/&quot; alt="I enter from the right, then down I go!" data-parallax="2" data-parallax-flip-vert="true" data-parallax-flip-horz="true" />
    </div>
    /**/

    view raw

    parallax.js

    hosted with ❤ by GitHub

  • Multiple Meta-Viewports for iPad/iPhone

    It’s not ideal, as you’re manually targeting the iPad, but …

    Default Viewport Code (change as needed for default mobile devices)

    
    

    JavaScript code (play with as you like for your own purposes)

    if( navigator.userAgent.match(/iPad/i) != null ){
    	viewport = document.querySelector("meta[name=viewport]");
    	viewport.setAttribute('content', 'width=1000px, user-scalable=0');
    }
    

    I used this in my submission for the CSS-Off, to ensure that the viewport specified for mobile devices didn’t also restrict the iPad’s version of the site.