Using Angular Augury to Debug Your Code

Original Source: https://www.sitepoint.com/angular-augury-debug-code/

Augury is an open-source tool allowing developers to profile and debug Angular 2 and 4 applications.

Modern web browsers provide developer consoles to inspect various elements on the page, which is really handy when trying to debug markup, styles, and scripts. However, this console isn’t enough to debug Angular applications that usually have lots of components, events, attributes, and a separate routing system.

Augury is a tool designed specifically for Angular apps. It’s an open-source debugging and profiling tool for Angular 2+ applications.

Augury is just a Chrome extension that’s quite simple to use, so you won’t need to spend hours and hours learning how to utilize this tool. We’re going to build a sample Angular app and then see Augury in action by exploring various parts of our project. So, let’s get started!

Hello, Augury!

Augury visualizes your app’s structure in a form of a tree, showing how components and their dependencies relate to each other. It also allows you to inspect properties of your objects and change them on the fly. On top of that, you can easily view the source code of a specific component, insert breakpoints as needed, work with events, and more. Lastly, you can browse the application’s routing system, as well as view the full list of all utilized modules.

Augury is only available as a Chrome extension (there’s no Firefox support yet, unfortunately) and installing it is as simple as going to this page and pressing the Install button. After that, you may open the developer tools by pressing Ctrl + Shift + I (Windows/Linux) or Cmd + Opt + I (macOS). You’ll note that a new tab called Augury has appeared. After switching to this tab, you’ll either see the application’s structure or the phrase “This application is not an Angular application”. I’ve noticed that sometimes it may be required to re-open the Developer Console in order for Augury to analyze the page properly, so watch out.

Now that we have Augury installed, let’s proceed to the next section and prepare the sample application that we’ll use as a playground!

Building a Sample App

In order to see Augury in action, we need something to debug, right? In this section, I’m going to quickly guide you through the process of creating a very simple application (loosely based on the sample app from the Angular’s official tutorial) listing some users and allowing you to edit them. Alternatively, you may grab the source code from my GitHub repo.

Before getting started, install Angular CLI on your machine if you don’t have it yet:

npm install -g @angular/cli

Next, create the skeleton of our new project:

ng new sitepoint-augury

Change the application’s title by tweaking the src/app/app.component.ts file:

// …

export class AppComponent {
title = ‘Augury Demo’;
}

Tweak the src/app/app.component.html by removing all the links to documentation added automatically by code generator and add an <app-users></app-users> line:

<div style=”text-align:center”>
<h1>
Welcome to {{ title }}!
</h1>
</div>

<app-users></app-users>

Of course, we need a User component, so generate it now by running:

ng generate component users

Change the src/app/users/user.component.ts file in the following way:

import { Component, OnInit } from ‘@angular/core’;
import { User } from ‘./user.model’; // <— 1
import { UserService } from ‘./user.service’; // <— 2

@Component({
selector: ‘app-users’,
templateUrl: ‘./users.component.html’,
styleUrls: [‘./users.component.css’]
})
export class UsersComponent implements OnInit {
users: User[];

selectedUser: User;

onSelect(user: User): void { // <— 3
this.selectedUser = user;
}

constructor(private userService: UserService) { } // <— 4

ngOnInit() {
this.getUsers(); // <— 5
}

getUsers(): void { // <— 6
this.users = this.userService.getUsers();
}

}

Main things to note here:

We are importing a User model that will be created in a moment.
We’re also importing a UserService. It will simply return a list of hardcoded users, but let’s pretend they’re being fetched from some remote location.
We’re allowing the users to be selected by clicking on them. The currently selected user is stored in a separate selectedUser attribute.
Hook up the userService using the dependency injection mechanism.
Load the list of users once the component is initialized.
In order to get users, we’re utilizing our userService.

That’s pretty much it for this component.

Next, let’s create a model in a src/app/users/user.model.ts file. Each user is going to have an ID, a first and a last name:

export class User {
id: number;
first: string;
last: string;
}

Nothing complex.

Now let’s proceed to the UserService that’s going to be defined in the app/src/users/user.service.ts file:

import { Injectable } from ‘@angular/core’;
import { User } from ‘./user.model’;

@Injectable()
export class UserService {

constructor() { }

getUsers(): User[] {
return [
{
id: 1,
first: ‘John’,
last: ‘Doe’
},
{
id: 2,
first: ‘Margaret’,
last: ‘Brown’
}
]
}
}

The getUsers method simply returns an array of users with hardcoded data.

Now let’s display our users with the help of ngFor. Also, we’re going to add a click event listener and fire onSelect whenever a user is clicked on. When this happens, a form to edit the chosen user should be displayed (which is going to be done with the help of ngIf). Modify the src/app/users/user.component.html file like this:

<div *ngFor=”let user of users” (click)=”onSelect(user)”
[class.selected]=”user === selectedUser”>
<p>{{user.last}}, {{user.first}} (ID: {{user.id}})</p>
</div>

<div *ngIf=”selectedUser”>
<h3>Edit</h3>
<label for=”first”>First</label>
<input [(ngModel)]=”selectedUser.first” placeholder=”First name” id=”first”>

<label for=”last”>Last</label>
<input [(ngModel)]=”selectedUser.last” placeholder=”Last name” id=”last”>
</div>

We’re assigning a .selected CSS class to the chosen user, so let’s add some simple styling for it inside the src/app/users/user.component.css file:

.selected {
font-weight: bold;
}

Lastly, we have to import FormsModule and UserService inside the src/app/app.module.ts file:

import { BrowserModule } from ‘@angular/platform-browser’;
import { NgModule } from ‘@angular/core’;
import { FormsModule } from ‘@angular/forms’; // <—
import { UserService } from ‘./users/user.service’; // <—

import { AppComponent } from ‘./app.component’;
import { UsersComponent } from ‘./users/users.component’;

FormsModule should be listed in the imports section in the app.module.ts, whereas UserService goes to the providers:

@NgModule({
declarations: [
AppComponent,
UsersComponent
],
imports: [
BrowserModule,
FormsModule // <—
],
providers: [
UserService // <—
],
bootstrap: [AppComponent]
})

That’s it! Our sample application is finished, and you can open it by running the following command:

ng serve –open

Continue reading %Using Angular Augury to Debug Your Code%

Lessons Learned While Developing WordPress Plugins

Original Source: https://www.smashingmagazine.com/2018/05/developing-wordpress-plugins/

Lessons Learned While Developing WordPress Plugins

Lessons Learned While Developing WordPress Plugins

Jakub Mikita

2018-05-24T13:30:28+02:00
2018-05-25T12:14:08+00:00

Every WordPress plugin developer struggles with tough problems and code that’s difficult to maintain. We spend late nights supporting our users and tear out our hair when an upgrade breaks our plugin. Let me show you how to make it easier.

In this article, I’ll share my five years of experience developing WordPress plugins. The first plugin I wrote was a simple marketing plugin. It displayed a call to action (CTA) button with Google’s search phrase. Since then, I’ve written another 11 free plugins, and I maintain almost all of them. I’ve written around 40 plugins for my clients, from really small ones to one that have been maintained for over a year now.

Measuring Performance With Heatmaps

Heatmaps can show you the exact spots that receive the most engagement on a given page. Find out why they’re so efficient for your marketing goals and how they can be integrated with your WordPress site. Read article →

Good development and support lead to more downloads. More downloads mean more money and a better reputation. This article will show you the lessons I’ve learned and the mistakes I’ve made, so that you can improve your plugin development.

Getting workflow just right ain’t an easy task. So are proper estimates. Or alignment among different departments. That’s why we’ve set up “this-is-how-I-work”-sessions — with smart cookies sharing what works well for them. A part of the Smashing Membership, of course.

Explore features →

Smashing TV, with live sessions for professional designers and developers.

1. Solve A Problem

If your plugin doesn’t solve a problem, it won’t get downloaded. It’s as simple as that.

Take the Advanced Cron Manager plugin (8,000+ active installations). It helps WordPress users who are having a hard time debugging their cron. The plugin was written out of a need — I needed something to help myself. I didn’t need to market this one, because people already needed it. It scratched their itch.

On the other hand, there’s the Bug — fly on the screen plugin (70+ active installations). It randomly simulates a fly on the screen. It doesn’t really solve a problem, so it’s not going to have a huge audience. It was a fun plugin to develop, though.

Focus on a problem. When people don’t see their SEO performing well, they install an SEO plugin. When people want to speed up their website, they install a caching plugin. When people can’t find a solution to their problem, then they find a developer who writes a solution for them.

As David Hehenberger attests in his article about writing a successful plugin, need is a key factor in the WordPress user’s decision of whether to install a particular plugin.

If you have an opportunity to solve someone’s problem, take a chance.

2. Support Your Product

“3 out of 5 Americans would try a new brand or company for a better service experience. 7 out of 10 said they were willing to spend more with companies they believe provide excellent service.”

— Nykki Yeager

Don’t neglect your support. Don’t treat it like a must, but more like an opportunity.

Good-quality support is critical in order for your plugin to grow. Even a plugin with the best code will get some support tickets. The more people who use your plugin, the more tickets you’ll get. A better user experience will get you fewer tickets, but you will never reach inbox 0.

Every time someone posts a message in a support forum, I get an email notification immediately, and I respond as soon as I can. It pays off. The vast majority of my good reviews were earned because of the support. This is a side effect: Good support often translates to 5-star reviews.

When you provide excellent support, people start to trust you and your product. And a plugin is a product, even if it’s completely free and open-source.

Good support is more complex than about writing a short answer once a day. When your plugin gains traction, you’ll get several tickets per day. It’s a lot easier to manage if you’re proactive and answer customers’ questions before they even ask.

Here’s a list of some actions you can take:

Create an FAQ section in your repository.

Pin the “Before you ask” thread at the top of your support forum, highlighting the troubleshooting tips and FAQ.

Make sure your plugin is simple to use and that users know what they should do after they install it. UX is important.

Analyze the support questions and fix the pain points. Set up a board where people can vote for the features they want.

Create a video showing how the plugin works, and add it to your plugin’s main page in the WordPress.org repository.

It doesn’t really matter what software you use to support your product. The WordPress.org’s official support forum works just as well as email or your own support system. I use WordPress.org’s forum for the free plugins and my own system for the premium plugins.

3. Don’t Use Composer

Composer is package-manager software. A repository of packages is hosted on packagist.org, and you can easily download them to your project. It’s like NPM or Bower for PHP. Managing your third-party packages the way Composer does is a good practice, but don’t use it in your WordPress project.

I know, I dropped a bomb. Let me explain.

Composer is great software. I use it myself, but not in public WordPress projects. The problem lies in conflicts. WordPress doesn’t have any global package manager, so each and every plugin has to load dependencies of their own. When two plugins load the same dependency, it causes a fatal error.

There isn’t really an ideal solution to this problem, but Composer makes it worse. You can bundle the dependency in your source manually and always check whether you are safe to load it.

Composer’s issue with WordPress plugins is still not solved, and there won’t be any viable solution to this problem in the near future. The problem was raised many years ago, and, as you can read in WP Tavern’s article, many developers are trying to solve it, without any luck.

The best you can do is to make sure that the conditions and environment are good to run your code.

4. Reasonably Support Old PHP Versions

Don’t support very old versions of PHP, like 5.2. The security issues and maintenance aren’t worth it, and you’re not going to earn more installations from those older versions.

The Notification plugin’s usage on PHP versions from May 2018. (Large preview)

Go with PHP 5.6 as a minimal requirement, even though official support will be dropped by the end of 2018. WordPress itself requires PHP 7.2.

There’s a movement that discourages support of legacy PHP versions. The Yoast team released the Whip library, which you can include in your plugin and which displays to your users important information about their PHP version and why they should upgrade.

Tell your users which versions you do support, and make sure their website doesn’t break after your plugin is installed on too low a version.

5. Focus On Quality Code

Writing good code is tough in the beginning. It takes time to learn the “SOLID” principles and design patterns and to change old coding habits.

It once took me three days to display a simple string in WordPress, when I decided to rewrite one of my plugins using better coding practices. It was frustrating knowing that it should have taken 30 minutes. Switching my mindset was painful but worth it.

Why was it so hard? Because you start writing code that seems at first to be overkill and not very intuitive. I kept asking myself, “Is this really needed?” For example, you have to separate the logic into different classes and make sure each is responsible for a single thing. You also have to separate classes for the translation, custom post type registration, assets management, form handlers, etc. Then, you compose the bigger structures out of the simple small objects. That’s called dependency injection. That’s very different from having “front end” and “admin” classes, where you cram all your code.

The other counterintuitive practice was to keep all actions and filters outside of the constructor method. This way, you’re not invoking any actions while creating the objects, which is very helpful for unit testing. You also have better control over which methods are executed and when. I wish I knew this before I wrote a project with an infinite loop caused by the actions in the constructor methods. Those kinds of bugs are hard to trace and hard to fix. The project had to be refactored.

The above are but a few examples, but you should get to know the SOLID principles. These are valid for any system and any coding language.

When you follow all of the best practices, you reach the point where every new feature just fits in. You don’t have to tweak anything or make any exceptions to the existing code. It’s amazing. Instead of getting more complex, your code just gets more advanced, without losing flexibility.

Also, format your code properly, and make sure every member of your team follows a standard. Standards will make your code predictable and easier to read and test. WordPress has its own standards, which you can implement in your projects.

6. Test Your Plugin Ahead Of Time

I learned this lesson the hard way. Lack of testing led me to release a new version of a plugin with a fatal error. Twice. Both times, I got a 1-star rating, which I couldn’t turn into a positive review.

You can test manually or automatically. Travis CI is a continuous testing product that integrates with GitHub. I’ve built a really simple test suite for my Notification plugin that just checks whether the plugin can boot properly on every PHP version. This way, I can be sure the plugin is error-free, and I don’t have to pay much attention to testing it in every environment.

Each automated test takes a fraction of a second. 100 automated tests will take about 10 minutes to complete, whereas manual testing needs about 2 minutes for each case.

The more time you invest in testing your plugin up front, the more it will save you in the long run.

To get started with automated testing, you can use the WP-CLI \`wp scaffold plugin-test\` command, which installs all of the configuration you need.

7. Document Your Work

It’s a cliche that developers don’t like to write documentation. It’s the most boring part of the development process, but a little goes a long way.

Write self-documenting code. Pay attention to variable, function and class names. Don’t make any complicated structures, like cascades that can’t be read easily.

Another way to document code is to use the “doc block”, which is a comment for every file, function and class. If you write how the function works and what it does, it will be so much easier to understand when you need to debug it six months from now. WordPress Coding Standards covers this part by forcing you to write the doc blocks.

Using both techniques will save you the time of writing the documentation, but the code documentation is not going to be read by everyone.

For the end user, you have to write high-quality, short and easy-to-read articles explaining how the system works and how to use it. Videos are even better; many people prefer to watch a short tutorial than read an article. They are not going to look at the code, so make their lives easier. Good documentation also reduces support tickets.

Conclusion

These seven rules have helped me develop good-quality products, which are starting to be a core business at BracketSpace. I hope they’ll help you in your journey with WordPress plugins as well.

Let me know in the comments what your golden development rule is or whether you’ve found any of the above particularly helpful.

Smashing Editorial
(il, ra, yk)

How to excel at everything

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/hesNXZlK2a8/how-to-excel-at-everything

Product design, packaging design, branding and book publishing are all well-established disciplines, filled with plenty of specialist, single-focus agencies. So for a relatively small studio to excel in all of them at once is rather impressive, but Here Design has managed it.

East London agency Here is also notable in the male-dominated realm of creative directors in that two of its three co-founders are women. Driven by a shared passion for creativity in all its forms, Caz Hildebrand, Kate Marlow and Mark Paton continue to fly the flag for multidisciplinary design. We asked Paton and Marlow to tell us more…

How was Here Design founded?

Mark Paton: We didn’t have a written ethos, or any precise definition of what to do. We just shared a broad interest in food and drink, and sharing knowledge. Caz wanted to do furniture design; Kate was interested in textiles; I was doing other things. Initially it was about sharing infrastructure. We had an accountant in common, and just wanted a nice, creative environment to work in. It was really unstructured.

Kate Marlow: It was 12 years ago now. We left our respective jobs: Mark and I were in branding; Caz in publishing, in book design. We wanted to work together in a small environment, designing for brands we believed in. 

As Mark says, there was no master plan, no big idea. We got on well, and had a shared ethos about what good ideas were, and how to articulate them.

How did the studio evolve?

MP: It’s been super-organic, and a huge learning curve: we’ve had to learn about all of decisions we should have made at the beginning. Early on, we pitched to rebrand an organic food shop, and surprisingly we won. That suddenly gave us a body of work that we were working on together, which crystallised the nature of the studio and how we could share our experience. 

KM: As it went on, we got more jobs in than we could cope with just three of us. So, we slowly employed people to help us and it grew very, very slowly. For a very long time, we did all our own project management, finance, everything. We were the receptionists too.We learnt what we could and couldn’t do very well. Thankfully we now have experts in areas like finance, and a head of studio. They do a much better job than we ever did.

Here has published several books including a playful book on punctuation entitled This is Me, Full Stop

How have you structured the agency?

MP: This year we’ve employed a new tier of designer in the studio: design associates. We have four now, each with a portfolio of clients.

We’ve struggled a bit to create a structure without being very hierarchical. We don’t buy into certain job titles. For us, it was important to create our own definition. T

he design associates will take more of a lead on certain projects, while the partners focus on developing the business, thinking about new sectors, and also some smaller projects. It may seem a bit counter-intuitive, but we still want to design, so are happy to pick up speculative work that’d be a burden for the studio to do.

Here’s rebrand of Barcardi taps into the brand’s rich heritage

Have you struggled to stay hands-on?

KM: No, in fact we’ve probably struggled to be hands off. We need to learn to do that more, so the other designers can work their way up. 

We’re passionate about all our projects, and as partners we lead teams and are really collaborative with the design associates and senior designers, right through to the juniors. 

How have you stayed multi-disciplinary?

MP: We have had conversations about whether we need to specialise, but I think part of what makes Here interesting is that we work on such different topics. We very pragmatically believe that if a designer works across a book, a pack, an identity and a digital application, they will become a better designer. 

Here translated the physical geography of the streets around adidas Originals stores into architectural models

How do you choose who works on a project?

KM: Sometimes, one of us is just a really good fit for a client. That might be based on personality, or previous experience – or it might be that one of us actually hasn’t got much experience in that field, and that’s what we find exciting. They could come up with things you wouldn’t necessarily think to do, because they don’t know that genre so well. 

Do you work with external collaborators?

MP: A lot is done in-house. At college you didn’t have the option to commission someone: you had to get your paints out and do it. We advocate the guys having a go, but there are instances where it’s beyond us, so we commission out. But the lion’s share of illustration, for instance, is done in-house.

It’s partly a cultural choice: it’s nice to have people making marks and creating images. It makes for a richer experience.

Here created a beautiful wooden display box for Balvenie whisky 

How do you attract and retain the right talent?

MP: From the moment we started in Caz’s kitchen, we recognised the importance of the moments that weren’t designed. Making lunch together was a bonding experience, which sounds a bit cheesy, but it was important. 

We came from quite ordered environments, and wanted it to feel more homely and casual. When we were lucky enough to design this space, a creative kitchen was the first thing we set up. On a Friday, everyone tries to have lunch together and different people cook. 

The strength of the studio is the people within it. It’s not really us as partners – we are not necessarily the embodiment of the company. We’re just kind of trying to create a way of working that everyone can benefit from. 

Recognising people and allowing them to flourish –almost autonomously – is another thing that happens here that maybe doesn’t elsewhere. A junior designer can come in, be given a live project and see it through. We review things democratically too, so there’s an opportunity for everyone to speak up. I think that openness, and the fact that the opportunities are quite apparent and quite quick, makes people stick around. A lot of people have been here for a long time – we’re very lucky.   

This article originally appeared in issue 277 of Computer Arts magazine, the world's best-selling design magazine. Buy issue 277 or subscribe to Computer Arts.

Related articles:

How to build a global reputation overnightWhen to use humour in brandingThe designer's guide to illustration

Turn Conventional Web Forms Into Conversations with This Script

Original Source: https://www.hongkiat.com/blog/turn-web-forms-into-conversations/

If you’ve ever wanted to humanize your web forms then you’ll adore the Conversational Form script created by SPACE10. This script automatically converts all your input fields into Q&A…

Visit hongkiat.com for full content.

Grid Layout with Motion Hover Effect and Content Preview

Original Source: http://feedproxy.google.com/~r/tympanus/~3/_7neVZ70Fl8/

Today we’d like to share a little grid layout with you. We use CSS Grid and a playful hover effect on the grid items which are composed of different wildly placed elements. When an item is clicked, we slide in a content preview overlay and animate the grid items out and the preview items in. For the animations we use TweenMax by Greensock.

GridLayoutMotion_featured

The demo is kindly sponsored by monday.com: Get your team on the same playbook!. If you would like to sponsor one of our demos, find out more here.

Attention: We’ve made this layout with modern browsers in mind.

Here’s how the grid looks like:

GridLayoutMotion_grid

The content preview overlay looks like this:

GridLayoutMotion_preview

We hope you enjoy this little layout and find it useful!

References and Credits

TweenMax by Greensock
Images from Unsplash.com
imagesLoaded by Dave DeSandro
Cross icon designed by Freepik

Grid Layout with Motion Hover Effect and Content Preview was written by Mary Lou and published on Codrops.

Join Glug's club for great creative deals

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/mTTNMaVbP7Y/join-glugs-club-for-great-creative-deals

Everyone likes a good deal, and if you're after some great deals that can help you in your design career then there's a new free platform that can sort you right out.

6 sure-fire ways to build your creative network

Glug Club is a brand new initiative from Glug, one of the most popular creative events around. It started out as a handful of friends talking shop and showing off their work in an East London pub in 2007, and since then has grown into an international movement with events all round the world and talks from some of the biggest names in the business.

With over 40,000 global members, Glug has found itself in the perfect position to negotiate a stack of killer deals with 45 industry-leading suppliers. Glug Club has been specially curated so that there's something for everyone from young creatives to industry veterans, and members can unlock exclusive offers and perks that they might not be able to access as individuals.

"We've curated the list of products and services based on the experience of a select group of Glug Ambassadors," explains Glug's Malin Persson. "They know what's worked and what hasn't, so we can pass these insights down to the next generation of agency owners and young creatives."

Membership of Glug Club is free, and since its announcement last week, it's already attracted another 3,000 members keen to take advantage of its benefits. And with a who's who of top companies involved, including Adobe, Getty Images, Pantone, Slack, Fontsmith and Microsoft, it's easy to see why.

Glug has been organising informal talks and ‘notworking’ events since 2007

"We've been working on Glug Club for some time, trying to negotiate a range of great deals for our community,"  says Glug founder and CEO Ian Hambleton. "With over 40,000 global members, we're now able to push brands to give our community better rates and services."

Hambleton expects that as Glug Club grows, the range of services and offers it's able to share with its members will grow with it. "Glug Club embodies everything we've tried to build with Glug," he continues. "To help young creatives on their career journey and provide them with useful tips and tools to get ahead. In this case, it's not a speaker talk at an event, but rather an amazing list of tools they should use to get ahead."

Want to get involved and give your career a free helping hand? Head over to the Glug Club sign-up page today.

Read more:

How to network successfully: 19 pro tipsThe essential guide to tools for designersThe best laptop deals for May 2018

The Top 10 Best Typography Logos

Original Source: http://feedproxy.google.com/~r/Designrfix/~3/ylbFrgFgus8/typography-logos

Of all the decisions you need to make when starting a business, designing your logo is the one you need to get right. Your logo is your first impression, and we all know the importance of those. Choosing the brightest or the busiest may seem like a good idea initially, but study after study has […]

The post The Top 10 Best Typography Logos appeared first on designrfix.com.

Not All Logo Dimensions Are Created Equal

Original Source: http://feedproxy.google.com/~r/Designrfix/~3/bYvLhRaIbME/logo-dimensions

The importance of logos to modern-day businesses cannot be emphasized enough. More and more content is being viewed on smartphones, and often the very first thing a customer knows about our business is what they understand from your logo. That’s why it’s so important to make sure that your logo dimensions are appropriate and visually attractive […]

The post Not All Logo Dimensions Are Created Equal appeared first on designrfix.com.

Developer Economics Survey: Your Chance to Win Prizes & Voice Opinions

Original Source: https://www.sitepoint.com/developer-economics-survey-your-chance-to-win-prizes-voice-opinions/

This article was created in partnership with SlashData. Thank you for supporting the partners who make SitePoint possible.

Is JavaScript giving you headaches? Do you wish other developers knew how important Swift and Rust will be in the coming years? It’s your chance to turn your opinions into a tool of change! The new Developer Economics survey is open starting from April 30, calling out all software developers to take part. Start right away.

Don’t miss a chance to join over 40,000 developers from 160+ countries who take part in the Developer Economics surveys every year to tell the world where software development is going next.

Who can take the survey?

Pretty much everyone writing code and getting their hands on software development in Mobile, Desktop, IoT, AR/VR, Machine Learning & Data Science, Web, Backend and Games. It doesn’t matter if you’re a hobbyist, a startupper or an enterprise dev – the survey is open for all real developers out there!

What sort of questions are they asking?

The survey is designed to dive into real-life developer issues, from coding skills and favorite tools to satisfaction with learning resources and communities.

Expect questions like:

Which are your favorite tools and platforms?
What’s going up and what’s going down in the software industry?
Are you working on the projects you would like to work on?
Where do you think development time should be invested?

There are also deep-dive questions based on your area of expertise, like Machine Learning, IoT, web development and more where you can really show you’re a pro and answer more complex questions about your favorite frameworks and vendors.

Read to take the survey?

Why should you take the survey?

It’s fun, for starters! The survey is designed to reveal your sci-fi profile, so the more you engage, the closer you get to finding out your place in the galaxy far far away.

Then there’s prizes. This time, devs who take part and complete the survey can win stuff like iPhone X, Samsung S9 Plus, HTC Vive Pro, GitHub Developer Plan, Amazon vouchers and other useful things to help you test your work or just play around.

You can also take part in the referral program, which allows you to win up to $700 in cash by referring other developer friends to take the survey.

Last but not least, everyone who takes the survey will get a insights with key findings from the survey as well as free report with the highlights and up-and-coming trends.

If you have a few minutes to spare and want to have a quality time, then this survey is for perfect for you! You can start right here. Extra tip: if you need to take a break, just click to save your responses and then you can come back and continue where you left off.

Good luck!

Take the survey now!

Continue reading %Developer Economics Survey: Your Chance to Win Prizes & Voice Opinions%

Collective #417

Original Source: http://feedproxy.google.com/~r/tympanus/~3/R_Z1paQaFhs/

C417_HelloSign

This content is sponsored via Syndicate Ads
HelloSign API: Everything IT requires and Developers love

With a robust SDK, amazing support, detailed documentation, and super clean dashboard, HelloSign API is sure to make your team happy.

Try it free today

C417_houdini

Houdini’s CSS Paint Polyfill

A polyfill for the CSS Paint API, with special browser optimizations.

Check it out

C417_dailycss

Daily CSS Design

Colorful daily code experiments by Bjørn Fjellstad.

Check it out

C417_signale

Signale

Signale is a configurable console logger with status reporting and handling of output rendering processes of other node modules and applications.

Check it out

C417_segmenttype

Segmented Type

A fantastic exploration of segmented typefaces. By Marcin Wichary.

Check it out

C417_alessi

The Five Seasons

A beautiful web experience to showcase the Alessi home fragrances.

Check it out

C417_play

Toybox

A collection of computational playthings made by Jean Lo. Check out the GitHub repo.

Check it out

C417_pointervents

Managing SVG Interaction With The Pointer Events Property

Tiffany B. Brown shares some interesting facts about the pointer-events property.

Read it

C417_nightowl

Night Owl

A dark VS Code theme with good contrast for nighttime coding. By Sarah Drasner.

Check it out

Screen Shot 2018-05-21 at 14.40.34

Never forget type=”button” on generated buttons!

Lea Verou shares how type-less buttons can become troublesome.

Read it

C417_checkboxes

Wobble Checkboxes

Some nice wobbly checkboxes made by Tamino Martinius.

Check it out

C417_vuido

Vuido

With Vuido you can create lightweight, native desktop applications using Vue.js.

Check it out

C417_errormess

How not to write an error message

John Moore Williams’ collection of error messages gone wrong.

Read it

C417_vr

Augmented And Virtual Reality Icon Set

A lovely AR and VR related icon set with beautifully colored illustrations made by Vexels for Smashing Magazine.

Get it

C417_jswins

What if JavaScript wins?

Anil Dash explores the possibility of JavaScript being the first-ever truly dominant programming language.

Read it

C417_font2

Free Font: Rallye

A racing game inspired typeface designed by Charlie Le Maignan.

Get it

C417_lordicons

Lordicon

A set of animated SVG icons and illustrations for web and mobile projects.

Check it out

C417_stream

Strimpack

A tool for live streamers to set up their own site, chat, subscription system and forum.

Check it out

C417_font1

Free Font: Dacha

A playful and delicate typeface designed by Denis Serikov.

Get it

C417_MeetHub

MeetHub

An open source MeetUp clone built with Python and Django. Made by Iyanu Ajao.

Check it out

Collective #417 was written by Pedro Botelho and published on Codrops.