Monday, August 31, 2015

How to Get Your First 500 Blog Comments - #infographic

How to Get Your First 500 Blog Comments - #infographic

I've known so many people who claim that blog comments are completely useless, so they turn them off. However, I think they're missing a tremendous opportunity to learn more about their audience.

By no means I'm saying they're wrong, I just think people can't get the most out of blogging without comments.

Why?

Think about it: Comments allow you to learn more about your readers – how they think, the words they use to describe their problems, and even the way they see the world. And remember, those ones who can understand the way their prospective customers view things are the ones who get the most profits.

Most importantly, blogging is all about readers.

Without readers, your blog is worthless. So the best thing you can do is to build a community where they can interact with you by expressing their thoughts and feelings.

by Guest Author via Digital Information World

How to Get Started on Blab: Group Video Broadcasting for Marketers

Are you a fan of live-streaming video for business? Have you tried Blab? Blab, the newest platform in streaming video, lets you build a personal and business presence while creating community. In this article I’ll explore Blab and share ways you can use it for business. About Blab Blab.im, which is currently available on desktop […]

This post How to Get Started on Blab: Group Video Broadcasting for Marketers first appeared on Social Media Examiner.
Social Media Examiner - Your Guide to the Social Media Jungle


by via Social Media Examiner

Twitter Quality Score for Ads: What Marketers Need to Know

Are you using Twitter ads? Do you want a better return on your investment? Twitter uses its ads quality score to determine how your ads are displayed, and how much you pay if people engage with them. In this article I’ll share how to create Twitter content that raises your Twitter ads quality to maximize […]

This post Twitter Quality Score for Ads: What Marketers Need to Know first appeared on Social Media Examiner.
Social Media Examiner - Your Guide to the Social Media Jungle


by via Social Media Examiner

Web Design Weekly #201

Headlines

Thinking Responsively — A Framework for Future Learning

A really great article by Paul Robert Lloyd that looks at why we need to consolidate our learning and consider how we build upon it. (alistapart.com)

Everyone is a Designer

Andy Jiang explores the approach designers take when solving problems and reinforces that we all have the skills and encourages us to be more aware and mindful of our problem solving processes. (blog.andyjiang.com)

Responsive Images — Image Breakpoints (blog.cloudfour.com)

Sponsor WDW and Reach Over 23,535 Developers

Articles

Why You Need to Refactor Your CSS

Nathan Rambeck reinforces that even though it maybe a bit scary modifying our CSS, to keep our projects maintainable over the long run, we need to face our fears and learn to become comfortable regularly refactoring our CSS. (seesparkbox.com)

Tight Fitting SVG Shapes, the Present and Future

Once again, Ana Tudor has the ability to blow your mind with a crazy amount of numbers and awesome demos. (css-tricks.com)

Pattern — Robust icons

The super smart Mike Riethmuller shares his design pattern that he has been using for icons. It’s a solid technique that works in almost any situation. Also, if you are not in a rush, be sure to check out some of his other articles. There are some hidden gems. (madebymike.com.au)

Preload Hints For Web Fonts

Web fonts are a pop­u­lar topic in the web per­for­mance com­mu­nity. How­ever, one fun­da­men­tal prob­lem is of­ten over­looked: web fonts are lazy loaded. This article by Bram looks at how pre­load hints can help. (bramstein.com)

iOS 9 content blocking will transform the mobile Web (thenextweb.com)

Tools / Resources

DevTools Tips For Sublime Text Users

Addy Osmani looks at taking advantage of your existing knowledge of features in Sublime Text and applying them to the Chrome DevTools. (medium.com)

Typography on the web

A starting point for web designers and developers to learn more about typography. (typographyontheweb.com)

React CSS Modules

React CSS Modules is a React specific implementation of the CSS Modules that enables seamless mapping of class names to CSS modules inside of React components. (github.com)

Writ — Opinionated, classless styles for semantic HTML (cmcenroe.me)

Simple Responsive Images with Jekyll (netlify.com)

Bulletproof contracts for Freelancers (hellobonsai.com)

The MailChimp Content Style Guide (mailchimp.com)

Inspiration

First Time User Experiences

A nice collection of user experiences, good and bad, from a variety of products by Krystal Higgins. (firsttimeux.tumblr.com)

How We Designed the New Salesforce At Scale (medium.com)

Recent Conference Talks Worth Watching (css-tricks.com)

Jobs

Senior Software Engineer – JavaScript

Would you like to create Javascript solutions that enable the Web’s most seamless video experience? Are you excited to see your work delight millions of customers across the world? Then we would like to talk to you about a great opportunity at Netflix. (netflix.com)

Senior Front-End Developer (remote)

We’re looking for a Senior Front-End engineer who has a deep understanding of HTML5/CSS3 and a passion for implementing pixel-perfect single-page web applications from design. (invision.com)

Need to find passionate developers? Why not advertise in the next newsletter

Last but not least…

Death to Bullshit

Brad Frost has produced an amazing site that aims to create awearness of the world of bullshit that we experience on a day-to-day basis on the web. Gold. (deathtobullshit.com)

HTTP Status Cats API (http.cat)

The post Web Design Weekly #201 appeared first on Web Design Weekly.


by Jake Bresnehan via Web Design Weekly

10 Essential SublimeText Plugins for JavaScript Developers

Sublime Text is a great application for just about any developer to have in their toolbox. It is a cross platform, highly customizable, advanced text editor and sits nicely between full featured IDEs (which are notoriously resource hungry) and command line editors such Vim or Emacs (which have steep learning curves).

One of the things that makes Sublime so great is its extensible plugin architecture. This makes it easy for developers to extend Sublime’s core functionality with new features such as code completion, or the embedding of remote API documentation. Sublime Text doesn’t come with plugins enabled out of the box — they are typically installed through a 3rd party package manager simply called Package Control. To install Package Control in Sublime Text, please follow the installation guide on their website.

In this article, I will outline ten must-have Sublime plugins for JavaScript developers, each of which can improve your workflow and make you more productive. So let’s get to it!

1. Babel

Of course the first one on my list is the Babel plugin. This plugin adds proper syntax highlighting to your ES6/2015 and React JSX code. After installing the plugin, the first thing you should do is set it as the default syntax for .es6, .jsx, and even .js files. However, you should be careful with the last one if you’re working with ES3/5 and not transpiling your code using Babel.

If you have not yet discovered the joy of Babel, I highly suggest it. It allows you to compile ES6/2015 and JSX code to ES5. It integrates well with all popular build tools and the CLI. Obviously, it doesn’t support legacy browsers, but you can follow the tips on their caveats page if you need to support IE10 and below.

Unfortunately, the Babel plugin doesn’t allow you to compile ES6 code on the fly from within Sublime. For those of you wanting to do that, I suggest you check out Compile Selected ES6.

Babel

2. JSHint

Next up is the JSHint plugin for Sublime. JSHint is a JavaScript Linter, which will look over your code and verify it has proper styling, proper syntax, and is free of common errors related to these. No matter if you’re a beginner or have been programming for most of your life, JSHint is a must have. Check out the JSHint about page for more information on what it can do for you.

For the JSHint SublimeText plugin to work, you need to have JSHint installed globally via npm:

npm install -g jshint

If you’re unsure how to do this, check out our tutorial on getting started with the Node Package manager.

Once the JSHint npm module and the JSHint SublimeText plugin are installed, you can simply invoke JSHint by opening your JavaScript file and pressing Ctrl + J (or Alt + J on Linux/Windows). Alternatively, you can access JSHint via the context menu.

If you've installed the plugin but would like a more explicit warning as to where the error occurred, check out JSHint Gutter. Or, if you’d like to try JSHint before installing the NPM package or the plugin, JSHint.com has a great online interactive tool into which you can paste your code for instant feedback.

Sublime Text JSHint Screenshot

3. JsFormat

JsFormat is based on JS Beautifier and can help you automatically format JavaScript and JSON. If you only use it for the JSON formatting alone, it’s worth having. But for me, the biggest advantage comes when I’m working with other developers’ code, or even on code I wrote a long time ago.

Such code can often be hard to read and following a common code formatting style really helps. While formatters may not be for everyone, they can really help the developer read code by introducing a common structure. Linters take care of some of this, but they don’t necessarily hit everything and do not automatically fix formatting. Code formatters save a lot of time and a lot of headaches.

Once installed, to use JSFormat, go to your JS file and hit Ctrl + Alt + f on Windows/Linux or Ctrl + ⌥ + f on Mac. Alternatively, use the context menu.

You may be thinking: “But I what if I don’t like the way they style JavaScript?”

Good news! JsFormat is highly configurable and based on the JS Beautifier settings. To adjust these for SublimeText 3, go to: Preferences -> Package Settings -> JsFormat -> Settings - Default

Then edit the JSON settings there to your liking.

JsFormat - Before and After

Continue reading %10 Essential SublimeText Plugins for JavaScript Developers%


by Matt Burnett via SitePoint

Automating LIFX Lights With The LightBlue Bean and IFTTT

The LightBlue Bean is a small low energy Bluetooth Arduino microcontroller with a built in 3-axis accelerometer and temperature sensor. It's quite an interesting way to add connectivity to objects via Bluetooth connectivity instead of Wi-Fi. It has digital and analog pins like a typical Arduino, so you can expand what it can do by adding new elements to the set up.

In order to add new elements, a bit of soldering is required. For this article, I wanted a solder-free demo that anyone with a LightBlue Bean can follow along with, so we'll be focusing on the built in accelerometer. A few months ago, I put together an IFTTT demo here on SitePoint which automatically turns off my LIFX light when I set my Jawbone UP24 to sleep mode. It is a nice touch but I still need to get my smartphone out to turn on my lights each night. I'd prefer something more automatic and decided to try out a few technology experiments to turn the lights on in convenient ways too. In this article, I'll cover the first of my prototypes - I'll be using a LightBlue Bean to detect my door movements and turn my lights on or off depending on if my door is opened or closed.

For those who are a fan of the LightBlue Bean, there is a newer version of the LightBlue Bean on Kickstarter right now called the LightBlue Bean+ which looks pretty neat! It has a rechargable battery, solderless connectors and plenty more useful features. There are only a few days left to put in your pledge!

How This Will Work

Our demo will work like so:

  1. Stick the LightBlue Bean on the door we want to track.
  2. Upload an Arduino sketch which watches for accelerometer changes (the door swinging one way or the other) and sends a message via the Bean Loader Virtual Serial.
  3. Set up a Node server watching for the serial messages coming through.
  4. Set the responses to those messages in the Node server to send a HTTP request to IFTTT's Maker channel to tell it to turn on the light.
  5. Set the LightBlue Bean to Virtual Serial mode.
  6. Run the Node server and close your door to see your light turn on!

Additional rules could be included in our Node server later on to ensure that the code only runs during certain times of day too (to avoid the light going on when it really doesn't need to be). Or even better - add on a photo resistor to detect automatically if the light is needed!

Setting Up Your LightBlue Bean

If you are completely new to using the LightBlue Bean, you'll need to have both the latest Arduino software and the Bean Loader software installed on your Windows 8.1 or Mac computer (apparently the Bean Loader software does not work on older Windows PCs). The guides to getting your LightBlue Bean connected up to your Mac or PC are pretty thorough on the LightBlue Bean website:

This demo has all been set up on Mac OSX but should theoretically work on Windows too.

The steps in this article will assume you are comfortable with the basics of putting a sketch onto your LightBlue Bean, if not, run through the "Getting Started" link for your OS above first.

Our Arduino Sketch Code

All the code is available on GitHub for you to use and adapt for any purpose you choose!

Our Arduino sketch contains most of the brains behind the door watching and looks like so:

[code language="c"]
int minXVal = 0;
int maxXVal = 0;
int minYVal = 0;
int maxYVal = 0;
int minZVal = 0;
int maxZVal = 0;
int movement = 15;
bool ready = false;

void setup() {
Serial.begin();
}

void loop() {
AccelerationReading acceleration = Bean.getAcceleration();

if (!ready) {
for (int i = 0; i < 100; i++) {
if (acceleration.xAxis > maxXVal) {
maxXVal = acceleration.xAxis;
} else if (acceleration.xAxis < minXVal) {
minXVal = acceleration.xAxis;
}

if (acceleration.yAxis > maxYVal) {
maxYVal = acceleration.yAxis;
} else if (acceleration.yAxis < minYVal) {
minYVal = acceleration.yAxis;
}

if (acceleration.zAxis > maxZVal) {
maxZVal = acceleration.zAxis;
} else if (acceleration.zAxis < minZVal) {
minZVal = acceleration.zAxis;
}

delay(10);
}

ready = true;
} else {
if (acceleration.zAxis < minZVal - movement) {
String stringToPrint = "CLOSED";
Serial.println(stringToPrint);
} else if (acceleration.zAxis > maxZVal + movement) {
String stringToPrint = "OPEN";
Serial.println(stringToPrint);
}
}

Bean.sleep(1000);
}
[/code]

Our Sketch Code Explained

To start with, you'll see a range of variables called minXVal, maxXVal, minYVal, maxYVal, minZVal and maxZVal. These track our LightBlue Bean's initial accelerometer readings. Within my demo code, we only really use the z values, however I've left the others in here as you may need to use their values for your own implementations (e.g. if you place the Bean in a different orientation on the door or have a different sort of door, like a sliding door). The accelerometer tracks the force of gravity on each side of the Bean. We only want to know about the changes in these forces, so we need to know the range of forces acting on the Bean originally when it is stationary on our open door. This is where we store those values:

[code language="c"]
int minXVal = 0;
int maxXVal = 0;
int minYVal = 0;
int maxYVal = 0;
int minZVal = 0;
int maxZVal = 0;
[/code]

Next we set a variable called movement which is the level of movement we'll accept before triggering the action. You'll need to adjust this to suit your own situation (your door may move a lot more subtly whilst open than mine). In the sample code, we're allowing for movement of about -15 to +15 from our min and max values before we trigger anything:

[code language="c"]
int movement = 15;
[/code]

We will need time to run the initial test of the min and max values, so we use the ready variable to tell our loop whether we are ready to start watching for door movements within our min and max ranges:

[code language="c"]
bool ready = false;
[/code]

In our setup() Arduino function, we set the serial connection to start running when the Arduino is ready:

[code language="c"]
void setup() {
Serial.begin();
}
[/code]

Within our loop, we perform all our watching of our accelerometer values from the Bean. This will all be readable via the acceleration variable we set up at the start of the loop() function:

[code language="c"]
void loop() {
AccelerationReading acceleration = Bean.getAcceleration();

// Our accelerometer tests
}
[/code]

Continue reading %Automating LIFX Lights With The LightBlue Bean and IFTTT%


by Patrick Catanzariti via SitePoint

An Introduction to GameplayKit: Part 2