Tuesday, December 8, 2015

How to Respond to Profit Share Offers

You've heard it many, many times before. A client (or potential client) approaches you with an "amazing" idea but they have limited resources. They can't pay for your expertise but are happy to offer a profit share arrangement. You'll become a multi-millionaire! You'll praise the day they contacted you! When can you start?!

Person 1: I have a genius idea for a startup that will make millions. All I need is an investor, designer, developer and project manager. Person 2: And your role will be?Artwork by SitePoint / Natalia Balska

Just Say "No"

Clients should have no shortage of investment offers if their idea is truly outstanding. What they're really saying is:

We don't know whether this project is viable. It could be huge. Or it could make nothing. Are you willing to take on all the risk even though we're not?

The client is asking you to invest in their business. Unfortunately, you're unlikely to be an expert in their industry. The project could be ground-breaking or terrible but you have little way of knowing. If they were asking for money, you'd expect a comprehensive business plan with projections, marketing details, ongoing costs and potential profits. Those are rarely forthcoming.

Profit-sharing clients rarely equate your time with money which is inherently patronizing. The old adage that "time is money" is untrue; time is worth more than money. It's not always easy and may require some luck but you can always make more money. You can never make more time. The average working life is a mere 75,000 hours. It'll take you 10,000 hours to become a proficient developer and perhaps another 10,000 to keep on top-form. Even if you offset some of that with schooling, you're left with 60,000 hours to earn a living.

Gambling on a client's idea has other financial impacts:

  1. It's difficult to earn money while you're working for them.
  2. The client will be more demanding than others because they have no budgetary or time constraints.
  3. The majority of new businesses fail. Those without a plan fare worse.
  4. You almost certainly have better ideas in industries you know well. You will understand how to start small and evolve a minimum viable product in reaction to user demand -- why shouldn't you work on that instead?

Until you invest, the client has no business. However, your contribution has no perceivable value because the client won't pay for any of your work. You're effort is free.

Ignore the vast majority of approaches -- especially those made by people who don't know you yet are willing to share their business with a stranger. Don't waste any time responding to their unworkable idea to combine Facebook and eBay. If they keep hassling or they're an existing client with a dumb idea, state you can only consider an investment once you've received their five year business plan. It'll never arrive.

Continue reading %How to Respond to Profit Share Offers%


by Craig Buckler via SitePoint

hybicon.js – Hybrid Icons With Javascript

hybicon.js is a javaScript library for synergistic SVG icons. It works with HTML5 data attributes. There is a primary and a secondary icon and they can be animated with hover and click.


by via jQuery-Plugins.net RSS Feed

Debugging Your HTML5 in Microsoft Edge for Xbox One

This article is part of a web development series from Microsoft. Thank you for supporting the partners who make SitePoint possible.

On November 12, a new update was made available for Xbox One. I really love the new dashboard and the Xbox 360 backward compatibility as a gamer. But as a web developer, I’m more than happy to now have Microsoft Edge running on my console! This means that you can now run very modern content inside the Xbox One browser!

Testing Your HTML5 Content on Xbox One and Microsoft Edge

It supports for instance WebGL, Web Audio, Gamepad API as you can see in this video:

[embed src="https://www.youtube.com/watch?v=vz3OZzOP2J4" width="800" height="400"]

We’re using the Babylon.js Mansion demo on the Xbox One. It runs perfectly fine! I’m still amazed by the beauty of the web standards. If you’re following best practices, your code will run everywhere! Even better, I’m using the Xbox Windows Store app in this video to stream the video output of my Xbox One on my Windows 10 PC. This mean that I can test my web content on my Xbox One without leaving my chair ;)

Remotely test the MS Edge Xbox One browser from your Windows 10 PC

Thanks to the Xbox Windows Store app, you can remotely test the MS Edge Xbox One browser from your Windows 10 PC!

WebGL Babylon.js Flight Arcade demo on Xbox One

Play the WebGL Babylon.js Flight Arcade demo on Xbox One!

Remote Debugging Your HTML5 Content on Xbox One Thanks to Vorlon.js

Vorlon.js is an open-source cross-platforms remote debugging tool that has been made to easily remote debug any web page from any device. Let’s check that together in the following video:

[embed src="https://www.youtube.com/watch?v=zdiuEwMi8_8" width="800" height="400"]

By simply adding a single script reference at the beginning of your HTML page, you can remote debug your site from any browser using the Vorlon.js dashboard. In this video, I’m checking the support for the Gamepad API using the Modernizr plug-in, using the interactive console to check for potential errors and to execute JavaScript on the Xbox One and finally the DOM Explorer to update the HTML and some Flexbox properties. Again, using the Xbox Windows Store app is very useful to live debug the page. Simply snap it on the left and snap the Vorlon.js dashboard on the right. Even better, use multiple screens on your Windows 10 PC:

DOM explorer

I’m definitely more than convinced that Web Standards and WebGL offer great new possibilities for the gaming industry! I’ve talked about this in a previous article: The web: the next game frontier? It seems to really start to be true. ;-)

Continue reading %Debugging Your HTML5 in Microsoft Edge for Xbox One%


by David Rousset via SitePoint

How to Set Up a Blue-Green Deployment Methodology with AppFog

This article was sponsored by AppFog. Thank you for supporting the sponsors who make SitePoint possible.

There are several steps involved in building a large scale web application. One of the most notoriously difficult steps of that process is deployment. Your engineering team will often face situations where code needs to be shipped quickly, and your production environment needs to update as soon as possible. In such an environment, the deployment process must be smooth enough to avoid disrupting user experience, but rapid enough to avoid downtime and preserve business goals.

The team at AppFog understands how important it is to have a strong architecture to support maintaining and scaling out your application, which is why they've built a tool that allows you to focus on writing code, while they handle the infrastructure related details. With AppFog, things like run time environments, load balancing, and reporting are no longer issues that require so much of your time. AppFog can even help you deploy your application seamlessly, regardless of how many users you have, or how big your deployments usually are.

[author_more]

If you've ever found yourself struggling to provide your engineering team with an effortless deployment strategy, then a Blue-Green deployment methodology provided by AppFog may be right for you and your team.

What is the Blue-Green Deployment Methodology?

A known challenge involved in automated deployment is often referred to as "the cutover", which refers to taking software from the final stage of testing to live production. The cutover needs to happen quickly, so that downtime is prevented or at least minimized. A Blue-Green deployment strategy allows for safe deployments by ensuring that your application has two separate production environments, as close to identical as possible. At any time, one of these environments is live, while the other receives no user traffic. If your 'Blue' environment is live, then your pre-deployment testing will take place on your 'Green' environment. Once your tests pass on the Green environment, you reroute your traffic from the Blue environment to the Green environment which now has the updated code that has passed all QA and other testing.

The Blue-Green deployment strategy allows for immediate rollbacks in case an error is found in the live environment, since you can simply reroute your traffic to whichever of your two identical production environments is inactive. You can read more about the Blue-Green deployment methodology here.

Continue reading %How to Set Up a Blue-Green Deployment Methodology with AppFog%


by Tim Evko via SitePoint

Add User Chat to an iOS Application With Magnet

Intuitive Scrolling Interfaces with CSS Scroll Snap Points

Scroll Snap Points are a native CSS-only technique that you can use to create layouts where your content is easily scrolled or panned. With this new feature you can easily control how your content will scroll and how it will ‘snap’ to the correct locations (letting you create features such as pagination with ease).

Historically developers have used JavaScript (often jQuery) to create perfect smooth-scrolling, snapping interfaces. While these work just fine, having a native CSS approach that does essentially the same thing is always better.

The specification for Snap Points is still relatively new (and under development); however it’s supported by a few browsers and is stable enough for us to start playing around with.

Creating a cool scrolling region with just CSS snap points

[author_more]

An Overview of Snap Points

Snap point scrolling works by defining a Scroll Container element and then setting each of its inner elements to be Snap Points. Once these elements have been set, normal scrolling will be modified so that as users scroll/pan they will be snapped from one snap point to the next.

The main element that holds all of your other elements you wish to scroll between is called the Scroll Container. This is our main element and the majority of the snap-related properties will be set here. We can define:

  • How tall/wide the container will be
  • On which axis/axes the container will scroll (i.e. X, Y, or both)
  • The strength of the snap elements and how they will react to scrolling
  • The positions/offsets from the container to the snap elements as you scroll

The elements inside the scroll container will become our “Snap Points”. It’s this content that will be scrolled/panned to when we interact with the container. For an individual snap point you will define:

  • The offset of the current snap element against the scroll container.

Horizontal scrolling made easy, one image at a time

Vertical sliders are great for breaking up your content

The Scroll Snap Points Properties

Getting Snap Points to work in your projects involves only a few CSS properties. Let’s outline these below and then later when can look at a few examples that showcase how they work.

scroll-snap-destination

This property is set on the scroll container and it defines the X position and Y position values (relative to itself) that the elements inside will snap to. You use this property to tell the container exactly where its elements will be snapped to.

Here are the possible values:

  • unset - Used to declare that this container is not a scroll container (by default no containers are unless you set it)
  • position - You must set both the X and Y position or the browser will ignore your property
    • Value can be in pixels such as scroll-snap-destination: 50px 100px; which tells the browser that it will snap elements from 50px to the left and 100px from the top.
    • Value can be a set of percentages such as scroll-snap-destination: 0% 100%; which tells the browser that it will snap elements from 0% to the left and 100% from the top.
    • Value can also be other allowed units such as scroll-snap-destination: 0vw 50vw which tells the browser that it will snap elements from 0% of the current viewport height to the left and 50% of the current viewport height to the top.

Let’s look at a few visual aids so you can see how this property works (as it’s one of those properties you will need to adjust until you get the correct effect).

Continue reading %Intuitive Scrolling Interfaces with CSS Scroll Snap Points%


by Simon Codrington via SitePoint

iOS and Android Programming with Go

Whilst not a new language, Go has gained a lot of interest over the past two years and the number of bigger name projects utilizing the language is growing rapidly. I wrote an introductory article on the language for SitePoint and came across mentions of mobile support, so thought I’d take a look at the possibilities.

I was most excited to see what Go support on Android was like as they are both Google technologies and there have been rumblings of support from developers for a language to replace Java.

Continue reading %iOS and Android Programming with Go%


by Chris Ward via SitePoint