Tuesday, January 19, 2016

What’s the Best Programming Language to Learn in 2016?

It's the start of a new year so it's natural to start thinking about your future life and career choices. I've been analyzing 'best language' statistics for several years and we've seen reporting systems rise and fall. GitHut -- one of my favorites -- has not been updated since 2014. There are still a few around so let's look at the most recent data.

TIOBE Index, January 2016

TIOBE's latest report assesses the popularity of programming languages using the number of skilled engineers and search engine rankings. The results:

  1. Java
  2. C
  3. C++
  4. C#
  5. Python
  6. PHP

Continue reading %What’s the Best Programming Language to Learn in 2016?%


by Craig Buckler via SitePoint

Using Babylon.js to Build 3D Games for the Web

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

Babylon.js is a WebGL-based 3D engine that focuses mainly on game development and ease of use. As a 3D engine, it has the tools to create, display, and texture meshes in space, and to add light sources and cameras. Because it’s game-focused, Babylon.js has some extra features that a regular 3D engine doesn’t require. It has native support for collision detection, scene gravity, game-¬oriented cameras (for example, a follow-camera that tracks a moving object), as well as native support for Oculus Rift and other virtual reality (VR) devices. It has a physics engine plug-in system, native audio support, a user input-based action manager and much more. I’ll explore all of these features in this tutorial.

Start by getting the code here

About the Tutorial

In this tutorial I’ll develop a simple bowling game. I’ll create a bowling lane, add 10 pins and a bowling ball, and provide the ability to throw the ball. My game will surely not be ready to be released, but it will show how you can develop a game using the tools Babylon.js provides. I’ll deliberately avoid using any external tools during development. The objects, cameras, textures and more will be created using JavaScript code only.

The Babylon.js version I’ll be using during this tutorial is the latest stable release—2.1. David Catuhe and the Babylon development team are trying to keep the framework as backward-compatible as possible, so I can only assume that this tutorial will work properly on future releases, at least until the next major release. And I’m using Visual Studio 2015 Community Edition, but you can use any IDE you’d like.

The tutorial will be divided into two parts. In this article, I’ll present an overview of the basic building blocks of Babylon.js. I’ll create the meshes, texture them, add cameras and light sources, and enable simple user interaction. In part two, I’ll show where Babylon.js really shines by adding collision and physics, audio, user actions, and special types of cameras.

Getting Started: A New Babylon.js Project

A simple Babylon.js project is a static Web site. Because I’m using Visual Studio, I’ll use the local IIS server embedded in Visual Studio to host those static files. Visual Studio doesn’t have a template for a static Web site, so a different approach is needed.

First, create a new blank solution. Open Visual Studio and go to File | New | Project. Select Other Project Types on the left pane and then Blank Solution, as shown in Figure 1. Give the solution a name (I used BabylonBowling) and click OK.

New blank solution in Visual Studio
Figure 1 Creating a New Blank Solution in Visual Studio

To create a new static Web site, first you need to create a new directory to host it. Right-click on the empty solution, then click on Open Folder in File Explorer, as shown in Figure 2.

Open solution's folder in file explorer
Figure 2 Opening the Solution’s Folder in File Explorer

Create a new directory for the project called BabylonBowling and close File Explorer.

Right-click on the solution and choose Add | Existing Website. Select the newly created folder (make sure you choose the folder you just created and not the solution’s folder) and click Open. You should now have a blank Web site as the only project of this solution.

After creating the project, you need to add the framework and the framework’s dependencies. There are a few ways to do that. The simplest way is to use the NuGet Package Manager.

Right-click on the project and choose Manage NuGet packages. Click in the search field (the keyboard shortcut is Ctrl+E) and type babylon. You’ll see a window similar to the one in Figure 3. Select BabylonJS. Make sure the Version selected is 2.1 (or the latest stable version) and click Install. Click OK in the Preview window that pops up (if one pops up) and Babylon.js will be installed into your empty project, including a demo scene.

NuGet package manager
Figure 3 Adding Babylon.js Using the NuGet Package Manager

For those using npm as a package manager, you can install Babylon.js using the command:

npm install babylonjs

After installing the package, you should have the following files in the scripts folder:

  • babylon.js, a minified version of Babylon.js
  • babylon.max.js, a debug version of Babylon.js
  • Oimo.js, the Oimo JS physics engine that will be used in part two of this tutorial
  • poly2tri.js, an optional triangulation library (http://ift.tt/1JWOgZk)
  • hand-minified.js, a pointer-events polyfill; this is missing when using npm, so install using the command:
npm install handjs

The NuGet installer also creates an index.html file and an index.js file.

An error in the NuGet package adds an unneeded line to web.config. Until it’s fixed, double-click on this file and remove the line highlighted in Figure 4 (in my solution, it’s line 9).

web.config
Figure 4 Delete the Highlighted Line from web.config

You can now test the project. Open the project in your default browser using Ctrl+Shift+W or by clicking the Run button on the top navbar. If you see the 3D spaceship shown in Figure 5, your project is all set.

Babylon default spaceship
Figure 5 The Babylon Default Spaceship

For those using different IDEs, just follow the “Creating Basic Scene” tutorial on the Babylon.js Documentation page to get to the current state. I still recommend using the npm to install the dependencies if not using NuGet. The tutorial can be found at bit.ly/1MXT6WP.

To start from scratch, delete the function createScene in index.js.

Continue reading %Using Babylon.js to Build 3D Games for the Web%


by Raanan Weber via SitePoint

How to Build a Startup Advisory Board

You know how they say startups take a village? Well, creating an advisory board can be an excellent way of forming your village—and improving the quality and quantity of the guidance you’re getting.

What an Advisory Board Is (And What It Isn’t)

Think of an advisory board as a formal collection of mentors. Advisors provide individual expertise, give you advice, introduce you to valuable contacts, and tell you when you’re potentially making a mistake.

Many people confuse an advisory board with a board of directors. However, they’re completely different—a board of directors consists of people who act as shareholder representatives and have certain legal and business powers (including firing the CEO). An advisory board doesn’t have any official authority.

In addition, any company can have an advisory board, but they’re not mandatory. Public companies, on the other hand, are required to have a board of directors.

And while advisors typically meet with the company leaders intermittently, the board of directors must meet at scheduled times.

Finding Advisors

You should look for people that can flesh out the areas of business with which you’re least familiar. Let’s say you’ve got a ton of experience in product development, but very little in brand communications and PR. You’d probably want to find an experienced communications and PR strategist to join your board.

By picking advisors who can “round out” your team’s knowledge and capabilities, you’ll ensure that your business can grow in every aspect—not just the ones you and your employees know. Plus, when it comes time to hire, say, a head of marketing, your advisor can give you his or her expert opinion on the candidates.

If possible, you also want your advisors to have experience, background knowledge, or an interest in your industry. Imagine you’re the founder of a startup making robotics for the restaurant industry. An advisor well-versed in robotics can tell you the liability and risk insurance policies of which you need to be aware. A different advisor who’s done a lot in food service can help you navigate the supply chain.

In addition, you also want to ask people who seem to genuinely love your product. Being an advisor is time-consuming—someone who’s passionate about what you’re doing will be more mentally and physically present.

That eliminates a ton of candidates. And there’s still one more important consideration: How well-known are your potential advisors?

Like when you get a prominent VC firm or angel investor to fund you, securing “big name” advisors will give you instant credibility within the entrepreneurial community.

After considering all these factors, make an advisor wishlist of 20-25 people. And we do mean “wishlist": Don’t worry if some of them seem out of reach!

Approaching Potential Advisors

Some of the people on your list may already be acting as advisors, just without the title. They’re the easiest to ask: Tell them how much you appreciate their advice, then say you’d be honored if they’d consider joining your advisory board.

Strangers are a little more difficult, for obvious reasons. Use LinkedIn to see if you have any mutual connections. If you do, ask that person to introduce you. If you don’t, try cold-emailing the potential advisor.

Check out this sample email:

Hi name,

My name is your name, and I’m the founder/CEO of startup, a company that 5-10 word explanation. I’m reaching out because I know you… have 20+ years of experience working with healthcare startups/successfully scaled your company from two employees to 2,000/are an expert in financial tech, etc.

I’d love to buy you coffee or lunch (at your convenience, of course) and get your feedback on startup name’s product/service/roadmap/growth strategy/other.

Thank you,

Your name

A couple of notes:

  • Meeting in-person is ideal, but if you don’t live nearby and you can’t afford to fly out to see them, suggest a video call instead.
  • Do not ask them to sign an NDA—you’ll come across as presumptuous and ignorant.
  • Don’t say you’re reaching out because you want them to be your advisor. A) You don’t know if you want them yet, and B) That’s like asking someone to be in a relationship with you before your first date.

Out of the 25 or so people that you email, expect to hear back from around 15.

Continue reading %How to Build a Startup Advisory Board%


by Aja Frost via SitePoint

eModal – Easy Modal for Bootstrap

eModal is a simple way to create modal dialogs using jQuery and Bootstrap.

You can use eModal to display a modal for alert, ajax, prompt, confirm or iframe.


by via jQuery-Plugins.net RSS Feed

The Benefits of Inheritance via @Extend in Sass

Organizing CSS stylesheets has become crucial to styling large scale websites effectively, but stylesheets in our projects have been getting larger, more complex and harder to maintain as they develop. This is where Sass comes in to make everything simpler. For those who have yet to explore Sass, it is an extension of CSS. It […]

Continue reading %The Benefits of Inheritance via @Extend in Sass%


by David Nguyen via SitePoint

Lonneke Leever

Lonneke Leever

Playful "paper cut out" themed One Pager for Dutch illustrator, Lonneke Leever. The Single Page website features quite a nice off-canvas navigation menu load transition with leaf animations. Also great to know it's built on WordPress.

by Rob Hope via One Page Love

Build an Android App with React Native

In this article I’ll be showing you how to create a Pokedex App with React Native in Android. The app wont be as full-featured as an app in the Google Play Store, with just a text field for entering the exact name of the Pokemon and then showing details on submission. We’re also going to add text-to-speech functionality which will read the details out loud.

Continue reading %Build an Android App with React Native%


by Wern Ancheta via SitePoint