News-Feeds

Foundation Board Update – Renewed Focus on Key Priorities

Javascript News - Do, 2015-07-30 18:57

In June, the jQuery Foundation Board of Directors held an in-person meeting, hosted by Famous in their San Francisco offices. During the meeting, the Board agreed to the following priorities to fulfill the Foundation’s Mission of improving the open web, making it accessible for everyone, through the development and support of open source software, and collaboration with the development community.

Our priorities are:
  1. Diversity: Open source depends on contributions. An organization’s vitality can be destroyed by having a closed group that excludes or even actively antagonizes newcomers. There is incredible value in having a diverse set of contributors with different cultures, backgrounds, perspectives, and skill sets. The jQuery Foundation is committed to improving diversity at all levels, from the development community in general to the projects we host and all the way to our own board, which we acknowledge isn’t very diverse today.
  2. Accessibility: As with diversity, this goal is again in the spirit of inclusiveness. Web technology has many features to make it friendly to users with sight, motor, or cognitive issues. Many web developers don’t know about them, or defeat them without realizing the implications. We want to change that. Last month’s jQuery SF conference had several excellent speakers who showed what the web can be like for some users: https://www.youtube.com/watch?v=HWzEF1P-bvI#t=7h34m30s
  3. Education: This goal crosses all of our priorities and encompasses many different subjects. By educating developers, both on the world of open source and also on the issues of diversity and accessibility, we can make the web an inclusive place.
We will achieve these goals by focusing our efforts on three key areas:
  1. Actively Recruiting New Projects: As you can tell, the jQuery Foundation’s mission goes far beyond the original jQuery projects. We are looking to host projects that we can help. The Foundation offers projects greater visibility, a voice in the standards process, help in managing their community, infrastructure such as a CDN, and other benefits. Projects remain autonomous, the Foundation doesn’t dictate the project’s goals or roadmap. We can, however, offer financial support for meeting mutually agreed upon project goals.
  2. Defining and Delivering Essential (basic through advanced) Web Developer Education: We want to help developers learn how to contribute to open source projects, how to run open source projects, and how to build web sites or applications that apply best practices and beyond that, we want to educate developers on the importance and implementation of diversity and accessibility in their projects. Finally, we want to get the word out about how the jQuery Foundation can help developers do their jobs better.
  3. Growing Our Impact through Outreach: The jQuery Foundation can only accomplish its goals with the support of companies and individuals who believe in the mission. If you or your company is interested in joining us to improve the web development community, please get in touch info@jquery.org. Like the open source projects we host, the jQuery Foundation itself is powered by memberships, volunteers and donations! Those of you who have already contributed, we thank you for supporting the mission.

jQuery Foundation Project Updates

Javascript News - Do, 2015-07-30 18:57

In order to make it easier for jQuery Foundation Members and Web developers to quickly stay abreast of all our projects, we will periodically publish consolidated project updates here.

jQuery Core

Powering 2/3 of sites, jQuery is a fast, small, and feature-rich JavaScript library

Since last December’s release, the team has been hard at work on a major 3.0 release. This release – the alpha of which came out on July 8 – comes with many updates (including Promises/A+ compliant Deferreds) and bug fixes, and it finally removes some previously deprecated and underused features.

Links: download, meeting notes, full list of 3.0 changes

A big thank you to the core team and everyone who contributed – and will contribute – to the upcoming release.
Questions?  Contact Timmy Willison

Globalize

JavaScript library for internationalization and localization that leverages the official Unicode CLDR JSON data.

Globalize version 1.0 was released in April and provides developers with localized number formatting and parsing, date and time formatting and parsing, relative time formatting, currency formatting, and message formatting (with pluralization and gender support) that runs in browsers and Node.js, consistently across all of them.

One exciting thing the community is focused on is the ability to compile Globalize for production. This will enable applications to generate custom runtime code that is extremely small and fast.

Links: git, mailing list,
Questions?  Contact Rafael Xavier de Souza

jQuery Mobile

Unified, HTML5-based user interface system for all popular mobile device platforms, built on the jQuery and jQuery UI foundation

The team has been heads down on version 1.5.0, which will bring numerous improvements including:

  • A new standalone enhancer module for customizable, fast declarative initialization of any javascript including jQuery widgets and plugins.
  • Improved and re-written shared with jQuery UI including button, checkboxradio, and controlgroup and the accordion widget which will replace the current collapsible and collapsible set widgets.
  • All of jQuery Mobile’s widget will now also feature the classes option for improved customizability and theming.
  • Re-written table and navbar widgets
  • Greatly improved modularity

Check out full release plans here

Links: download, meeting notes

Questions?  Contact Alexander Schmitz

Esprima

High performance, standard-compliant ECMAScript parser written in JavaScript

In March, we released Esprima 2.1.0, introducing support for several new pieces of ES6 syntax. In the mean time, a lot of work has been done to complete its ES6 support (check the roadmap). We’ve also improved the testing infrastructure and workflow to make the codebase more contributor-friendly.

Links: git, mailing list

A big thank you to all those who contributed patches to this release: Ariya Hidayat, Bei Zhang, Brandon Mills, Mike Rennie, Mike Sherov.

Questions?  Contact Ariya Hidayat

jQuery UI

Curated set of UI interactions, effects, widgets, and themes built on top of the jQuery Library.

The team released jQuery UI 1.11.4 in March, bringing bug fixes for Draggable, Resizable, Sortable, Accordion, Dialog, Slider, and Tooltip.

We are focused now on support for Pointer Events, and splitting up UI Core and old jQuery support to enable smaller builds

Links: git, meeting notes
Questions? Contact Scott González

Chassis

Creating open standards for CSS libraries, JavaScript UI libraries, and web developers in general.

The team is working on its Phase One release which will involve an initial CSS Framework – this is planned for later this summer.

Work is also underway for a themeroller.

Links: git, meeting notes

Thanks to Micheal Arestad, Alexander Schmitz and Rohit Mulange

Questions?  Contact Sarah Frisk

QUnit

Powerful, easy-to-use JavaScript unit testing framework

The latest release, 1.18.0, made a lot of improvements to the HTML reporter, making it more efficient to debug failures. For example, a new diff algorithm makes it easier to spot the difference in failed expected/actual assertions.

We’re currently working on the js-reporters project, which QUnit will implement, along with hopefully many other JavaScript testing frameworks and tools. The goal is to standardize an API with events and event data for test runners. A tool like Karma could then adopt a single interface instead of having to support each testing tool individually.

If you want to help moving QUnit along, check out these issues.

Links: git, meeting notes

Questions?  Contact Jörn Zaefferer

PEP

PointerEvents Polyfill: a unified event system for the web platform

PEP’s First release (0.3.0) came out in April and the the project is presently working to automate and improve the W3C test suite.

Links: git, meeting notes,

Questions?  Contact Scott González

Get Some Credit!

Javascript News - Do, 2015-07-30 17:57
Submit Your Project for the jQuery Foundation Web Excellence Program

How awesome is your project/site/integration/app? Probably really awesome, otherwise, you wouldn’t be doing it, right?!?

The jQuery Foundation wants to tell the world about all the incredible things developers are doing with jQuery Foundation projects. That’s why we are launching the jQuery Foundation Web Excellence program.

Here’s how it works:
  1. You pick the category or categories in which you want to submit (See category descriptions below)
  2. Tell us about you, your company/project, and how jQuery Foundation projects help you make it happen
  3. We’ll highlight projects on the jQuery Blog and promote them on social media

What are you waiting for? Get the the visibility you and your project deserve!  Go to the Web Excellence Submission Form and submit your project today!

Category Descriptions
  • All Around Rock Star: This category highlights the sites/apps that leverage any jQuery Foundation project to produce a stellar digital experience. Please highlight your approach to leveraging jQuery Foundation tools, libraries and resources, stand-alone or in combination with other Open Web components and frameworks to solve real problems and delight users.
  • Mobile Masterpiece: This category highlights the sites/apps that use any jQuery Foundation project to engage consistently with users across all devices, including mobile.
  • Enterprise: Highlights the organizations leveraging any jQuery Foundation project to help their enterprise organization (5,000 and up employees) achieve strategic IT and/or business objectives (e.g. system integration, uptime, compatibility/accessibility, revenue, cost reduction).
  • Top Speed: Highlights the organizations that use any jQuery Foundation project as part of a rapid project/product launch and/or to achieve fast site/app performance.  Do your users have a need for speed that jQuery Foundation projects help you deliver? Tell us about it!
  • Globetrotter: Showcases the sites, apps, systems or projects that best demonstrate the power of Globalize when implemented stand-alone or in combination with other jQuery Foundation projects.
  • Powered by jQuery: Showcases the SDKs and other toolsets that leverage any jQuery Foundation project as a dependency.
Rules & Terms:
  • There is no fee to enter
  • Only English language submissions will be accepted
  • Your entry must be submitted using the Submission Form
  • Please provide box/drive links to all graphics/visuals in your text answers, so the desired placement is clear
  • You may submit for multiple categories, but please make individual submissions for each desired category
  • The jQuery Foundation reserves the right to change or cancel a category at any time
  • A selection of submitted entries will be publicly displayed on the jQuery Foundation web site and promoted via our social media channels
  • Submitting an entry gives the jQuery Foundation the permission and approval to leverage submitted content for Marketing and Public Relations purposes

Frau Fenk mit Klaudia Gawlas und Torsten Kanzler (18.09.2015, 22:00 Uhr)

Casino Saal Amberg - Do, 2015-07-30 13:53
Datum: 18.09.2015 Beginn: 22:00

Alle Macht dem Party-Volke:

Torsten Kanzler und Klaudia Gawlas bei Frau Fenk

Euro-Krise, Freihandelsabkommen ... jetzt aber mal Schluss mit dem öden Zeug! 

Weiterlesen

Kategorien: Politik + Kultur

Amberg Tanzt (12.09.2015, 22:00 Uhr)

Casino Saal Amberg - Do, 2015-07-30 13:44
Datum: 12.09.2015 Beginn: 22:00

 1 MAL BEZAHLEN - 6 MAL FEIERN

Weiterlesen

Kategorien: Politik + Kultur

WE LOVE 90´s - Season Opening (11.09.2015, 22:00 Uhr)

Casino Saal Amberg - Do, 2015-07-30 13:40
Datum: 11.09.2015 Beginn: 22:00

...der Wahnsinn startet von Neuen!!!

We love 90s in deinem Casino Saal!

Kategorien: Politik + Kultur

Social Media Management App Showdown: Buffer vs Hootsuite

Javascript News - Do, 2015-07-30 11:06

Building a disruptive product leaves little time for anything else. Life suddenly becomes a repetitive routine of tests, fixes and upgrades. Above all, you are focused on providing an amazing experience for users. What many startup founders forget is that unless you share that story, consistently and in front of a relevant audience, all the […]

Continue reading %Social Media Management App Showdown: Buffer vs Hootsuite%

Boom! The Sound of a Perfect Idea Landing

Javascript News - Do, 2015-07-30 07:36

“The Medium IS the Message.“ This phrase was coined by Marshall McLuhan back in the mid-60’s. Marshall was an influential writer and thinker who also gave us the term ‘global village‘. He argued that the effects of a newly-invented media on society – i.e. books or television or movies – were much more important than […]

Continue reading %Boom! The Sound of a Perfect Idea Landing%

An Introduction to Open-source Licenses

Javascript News - Mi, 2015-07-29 22:00

The web community is renowned for its willingness to share. Not only do we share experiences, give advice and help each other with projects, but we also share an incredible amount of code—from small snippets to entire frameworks and applications.

Much of the software we use daily is open-source—from operating systems and servers to the apps we use to ply our trades.

Amid all of this sharing, there arises the issue of copyright and licensing. If you're using someone else's free software, or if you're sharing your own work, it's important to consider these issues.

Standard Copyright

When you create a piece of software, it's automatically protected by copyright. This means that you retain all rights to your source code and that nobody else may reproduce, distribute, or create derivative works from your work.

It may also lead to no one using your code—which obviously defeats the purpose of sharing it.

So if you really do want to share your work, but also want to protect it in some way, it's important to consider the options available for licensing your work.

Choosing a License

There are various, recognized licenses you can apply to your work to make it really clear what people can do with your code. But each license has a particular focus, so which should you choose?

In this article, I'll briefly introduce several of the most used licenses. Which one you choose will depend on what you want to achieve and how your code should be distributed.

Disclaimer: the overview that follows only provides a general sense of what each license encompasses. To understand each license fully, you'll need to do more reading.

Continue reading %An Introduction to Open-source Licenses%

How to Create a Node.js Cluster for Speeding Up Your Apps

Javascript News - Mi, 2015-07-29 20:30

Node.js is becoming more and more popular as a server-side run-time environment, especially for high traffic websites, as statistics show. Also, the availability of several frameworks make it a good environment for rapid prototyping. Node.js has an event-driven architecture, leveraging a non-blocking I/O API that allows requests being processed asynchronously.

One of the important and often less highlighted features of Node.js is its scalability. In fact, this is the main reason why some large companies with heavy traffic are integrating Node.js in their platform (e.g., Microsoft, Yahoo, Uber, and Walmart) or even completely moving their server-side operations to Node.js (e.g., PayPal, eBay, and Groupon).

Each Node.js process runs in a single thread and by default it has a memory limit of 512MB on 32-bit systems and 1GB on 64-bit systems. Although the memory limit can be bumped to ~1GB on 32-bit systems and ~1.7GB on 64-bit systems, both memory and processing power can still become bottlenecks for various processes.

The elegant solution Node.js provides for scaling up the applications is to split a single process into multiple processes or workers, in Node.js terminology. This can be achieved through a cluster module. The cluster module allows you to create child processes (workers), which share all the server ports with the main Node process (master).

In this article you'll see how to create a Node.js cluster for speeding up your applications.

Continue reading %How to Create a Node.js Cluster for Speeding Up Your Apps%

Video: Introducing One-Way Data Flow

Javascript News - Mi, 2015-07-29 20:00

In this video, we look at React's concept of one-way data flow. We'll observe a very common example of two-way binding, from frameworks like Angular and Ember, and mimic the functionality in React. This video utilizes everything that we have learned from the previous lessons. If something seems unfamiliar, check out the previous videos for clarification.

Loading the player...

Continue reading %Video: Introducing One-Way Data Flow%

Making Your WordPress Plugins Even More Developer Friendly

Javascript News - Mi, 2015-07-29 19:00

In the last article, we looked at how Actions and Filters can be added to your WordPress plugins to help make them developer friendly.

Today, we’ll look at how to provide developer documentation.

Documenting Your Actions and Filters

It’s useful to document your WordPress plugin’s Actions and Filters, so that developers can quickly find what they need, as well as understand what each Action and Filter does.

Code Commenting

As developers, we’re quite comfortable with reviewing other people’s code to understand how something works. Adding DocBlock comments to our actions and filters is a great way to explain what a particular call does:

Continue reading %Making Your WordPress Plugins Even More Developer Friendly%

Implementing “Show More/Less” Functionality with Pure CSS

Javascript News - Mi, 2015-07-29 18:00

Nowadays developers take advantage of different CSS techniques to create sliders, modals, tooltips, and many more Javascript-based components.

In this article, we’ll work with some of those techniques to implement what we might refer to as the “Show More/Less” functionality, and doing it without writing any JavaScript. We’ll also create a fully functional accordion-style show/hide demo that you can use as a starting point for your projects.

We have a lot to cover (techniques, pitfalls, and challenges), so let’s get started!

Note: This article will not discuss how to make this component accessible, but that could certainly be a valid improvement and maybe a topic for another post.

CSS Requirements

To better understand the process for creating this functionality, you have to be familiar with the following key CSS concepts:

To help out, I’ve created a demo, which you can see below, to give you the knowledge needed to follow along with this article.

See the Pen Lessons to prepare for the checkbox hack by SitePoint (@SitePoint) on CodePen.

Just click on one of the buttons to view a description and demo of the technique.

The Markup

The HTML structure for our demo is shown below:

[code language="css"]

[/code]

As you can see, we define an unordered list with five list items. The last item acts as the container for our checkbox and its corresponding label. In addition, we include a second unordered list within the wrapper element. This list holds the items that we want to show as soon as the checkbox becomes checked.

Defining Basic Styles

After structuring the demo, we define a few reset styles for our elements. Nothing fancy, just some simple CSS rules that will allow us to enhance the appearance of our component. Have a look at the two rule sets below:

[code language="css"]
ul {
width: 50%;
margin-left: auto;
margin-right: auto;
list-style-type: none;
background: white;
}

li {
height: 50px;
line-height: 50px;
border-top: 1px solid #e9ecef;
}
[/code]

Styling the Checkbox Container

In this part of the tutorial, we will set up the styles for the last list item.

First, we change the value of the aforementioned height property. Then, we set its position to relative. This property value is important because it will help us position the label element:

[code language="css"]
.container {
position: relative;
height: auto;
}
[/code]

Next, we hide the checkbox:

[code language="css"]
[type="checkbox"] {
position: absolute;
left: -9999px;
}
[/code]

…and style the relevant label:

[code language="css"]
label {
background: #e4e3df;
display: block;
width: 100%;
height: 50px;
cursor: pointer;
position: absolute;
top: 0;
}
[/code]

Notice that we position our label absolutely and give it a top offset of 0 pixels. So now you might be wondering if we really need those two properties. At first glance they seem unnecessary. But as we’ll see in a moment, these are required declarations.

If you look back at the HTML structure, you’ll see that the label is an empty element. We made that assumption because we want its content to change depending on the checkbox state. To achieve this, we take advantage of CSS’s pseudo-elements. When the checkbox isn’t checked (default behavior), the More keyword appears. Also, for styling we use a few characters taken from the lovely CopyPasteCharacter web app.

Continue reading %Implementing “Show More/Less” Functionality with Pure CSS%

Using Selenium with PHPUnit

Javascript News - Mi, 2015-07-29 16:00

Testing is a really wide subject, whether it be unit testing, functional testing, acceptance testing, etc. In this article, we’re going to see how you can do acceptance testing using Selenium. I will use a practical example to illustrate a real use case. I will assume that you already know how to do unit testing using PHPUnit, or that you at least have a grasp of what it’s all about. Let’s get started.

What Is Acceptance Testing?

Acceptance testing is the process of telling user stories through tests, and I love this quote to describe it:

A formal test conducted to determine whether or not a system satisfies its acceptance criteria and to enable the customer to determine whether or not to accept the system.

What Is Selenium?

Selenium is a tool to automate user interface testing. It helps with testing your application against the browser. The process could be described like so:

  • Go to the page http://myapp.dev/videos.
  • Assert the page contains a list of 20 videos.
  • Click number two on the pagination.
  • Assert the page contains a list of 20 videos.
  • Quit the browser.

You may be wondering: “How does it manipulate the web page using the described tests?”

The answer is “it depends”. If you’re using Selenium RC (previously named Selenium 1), it will inject auto generated JavaScript code to the page to perform the desired actions. Selenium RC is deprecated and is only supported in maintenance mode; you should be using Selenium WebDriver.

When using Selenium WebDriver (Selenium 2), the tests are translated into commands and passed to the Selenium server (more about that in a moment), then passed to the browser using the web browser native API.

Continue reading %Using Selenium with PHPUnit%

Deep Linking in Apps for Improved Discoverability

Javascript News - Mi, 2015-07-29 15:00

For independent app developers, discoverability is not an easy thing to achieve. In all app stores, particularly Google Play, it’s usually the case that a handful of larger, well-known developers dominate the charts. Research suggests that just 3% of the 250 top apps in the Play store were by new publishers and these accounted for just 1.2% of overall app revenue.

A study carried out by Tune found that 47% of users found apps through the Apple Store, whilst 53% of users found apps through Google Play.

Continue reading %Deep Linking in Apps for Improved Discoverability%

Open Source Presentation Tools: Are We There Yet?

Javascript News - Mi, 2015-07-29 14:00

In recent months I have been attempting to make as much of my work and creative output as open and collaborative as possible. With most of my output being code and markdown this has been simple.

I give a lot of presentations about open culture and it seemed hypocritical that I was delivering them through closed, non-collaborative software.

Whilst Powerpoint has gained competition from Keynote and Prezi they are all still closed and only semi-collaborative formats. Crucially, they are 'dead-end' formats, i.e. a powerpoint file, is just a powerpoint file, it can't be a part of anything else. What I mean by this will become clearer later.

I knew there were options available to create a more 'open' presentation, generally browser based format that leverage a JavaScript and CSS to recreate the look, feel and effects of traditional presentation software.

In addition to recreating my existing presentations (from PowerPoint and Keynote) in one of these frameworks I had some other requirements to make me satisfied.

What were my motivations? Write once, re-purpose multiple times

I want to be able to write the same content for a blog post, a presentation and some other purposes and be able to render them in my different use cases.

Shareability

Frequently when I present at a conference the organizers ask for a slide deck afterwards. For some a link may be enough, but for others they want a standalone file, such as a PDF. This allows presentations to be uploaded to services like Slideshare where I get a lot of exposure for my presentations.

Attractive

I like to create presentations with full screen images, clear, readable text and other tropes to make people notice. If all a framework supports is small images and text then I'm not interested.

My Framework of Choice

I actually found fewer frameworks than I was expecting and settled on Reveal.JS as it met my prerequisites, as well as offering some other features that I hadn't even considered, such as presenter view and notes.

It's worth noting at this point that most of these frameworks are aimed at those with technical knowledge. Some do offer commercial drag and drop services, but to leverage their true potential you will need a solid working knowledge of CSS, HTML and (maybe) JavaScript.

Creating a Presentation

At a basic level, this is a simple process, and we have a good introduction already on SitePoint.

In the default reveal HTML file you will find a <div class="slides"> which can contain multiple section tags, these are your slides. With reveal you can create 'nested' slides, or vertical slides that allow for the creation of logical sections in your presentation. These are created by nesting further section tags inside a section tag.

After that, slides are just HTML, with some custom tags and parameters unique to Reveal. If you can code HTML, you can create a presentation and if you can't, Reveal offers a commercial product just for you, the slides.com service.

So, for the rest of this article I'm going to assume that you can manage coding some basic slides and show you tips and tricks that I have learned in the process of migrating presentations to Reveal.

Full Screen images

Add the following class to your section / slide div:

[html]

[/html]

You can then layer other content over this image as normal. There are many options for how the image should display and bear in mind some of the loading options you might need to prevent a progressive image load when switching screens.

Left and Right panels

Often in Powerpoint and Keynote, templates have left and right panels with two different sets of content, an image and text for example. Whilst some would say that using this sort of layout goes against the more fluid design principles of reveal, I think there is still a need for it occasionally. It's easy to replicate with some basic CSS:

[css]
.left-align {
float:left;
width:50%;
}

.right-align {
float:right;
width:50%;
}

.panel {
text-align:left;
}

.panel img {
width:100%;
}
[/css]

We create a general panel class that aligns text left instead of reveal's typical centered alignment. We create two classes to set the float and width and make any images that are in a panel fill 100% width. All the above is to personal taste and suited my needs, but you get the idea.

Stretching Images

Whether filling the whole slide or one of the panels we created above, we sometimes want an image to fill the space it occupies proportionally. This is achieved by adding the stretch class to any media, images and media included.

Code

Code highlighting is one of reveal's standout features, but I still find it limited and have tweaked it. This is due to it's use of the pre tag which will render exactly as it sees, which means if you're a code layout obsessive like me, then your code may not render how you want in a presentation.

I've found I can get more control by using this CSS snippet:

[css]
.reveal code {
white-space: pre-line;
text-align: left;
}
[/css]

And then make use of the &emsp; tab HTML entity to control tab indents how I want them, i.e.:

[code]
docker run -d -p 4200:4200 -p 4300:4300
 --volume /data:/data
 --env CRATE_HEAP_SIZE=8g
 crate crate
  -Des.path.data="/data/data1,/data/data2"
  -Des.multicast.enabled=false
  -Des.network.publish_host=$PRIVATE_IP
  -Des.discovery.zen.ping.unicast.hosts=$HOSTS
[/code]

I would suggest that you set the code class for that extra fine grained control of how it will display, i.e. for the above I would use <code data-trim class="bash">.

Continue reading %Open Source Presentation Tools: Are We There Yet?%

How to Make Your Blog Post Go Viral

Javascript News - Mi, 2015-07-29 13:46

The other day in Maker Hunt’s Slack group, an entrepreneur asked the #content channel to read through his Medium post before he submitted it to TNW, FastCompany, Entrepreneur and other similar publications. This led to two questions from a cool Product Hunter Gabe Roeloffs. How do you submit content to to be published to popular […]

Continue reading %How to Make Your Blog Post Go Viral%

Video: Profiling JavaScript Performance in Chrome

Javascript News - Di, 2015-07-28 22:00

In this video, I'll dive into the Chrome Developer Tools Profiler and demonstrate how we can use it to analyze JavaScript running in the browser.

Loading the player...

Continue reading %Video: Profiling JavaScript Performance in Chrome%

WordPress Email Marketing Plugins vs All-in-one Options

Javascript News - Di, 2015-07-28 20:00

Signing up to an email marketing service provider is a big commitment in terms of cash; too big for many.

The beauty of running a WordPress blog is that there are free and low-cost plugins for everything. There are dozens of email marketing plugins that can instantly get your site ready to go.

Unlike a one-size-fits-all solution, plugins are used to fill specific needs wherever you find them. They give you the flexibility to customize your site to your near-exact specifications. While this can be extremely cost efficient, a bundle of plugins can sabotage your site’s load speed, which is a MAJOR marketing no-no.

Premium plug-ins can be better but you can still run into server and deliverability issues.

The Problem with DIY Email Marketing

This 'MacGyver' approach to marketing is typically referred to as 'Do it yourself' or 'DIY', and there are two massive problems with trying to run a DIY email marketing campaign from your website servers:

  • Server limitations
  • Deliverability
Server Limitations

Most website owners host using shared servers with limited resources. You will only be able to send out emails very slowly on these servers. You will find your web host may become unhappy about the server resources you are using and will probably ask you to upgrade to a VPS or dedicated server with more processing power.

Deliverability

On a shared server, you share an IP address with other sites hosted on that server. If one of the other websites has tried sending out emails before, the IP address may have already been flagged as a source of spam, so your important messages will go straight to spam folders and never be seen, let alone opened.

Continue reading %WordPress Email Marketing Plugins vs All-in-one Options%

A Look at Length Units in CSS

Javascript News - Di, 2015-07-28 18:00

Measuring things is as important an aspect of web design, as any other. The fact that we have at least 10 different measurement units in CSS speaks for itself.

Each unit serves its own specific purpose and makes web pages more flexible for a variety of devices. Once you become acquainted with all these units, you will be able to size your elements more precisely. In this tutorial, we will take a look at the different units that are available in CSS and I’ll discuss which units to use in which situations, and how to use them.

Absolute length units

Absolute units are a digital representation of actual measurements in the physical world. These units are not related to the size of the screen or its resolution. As a result, absolute length units are not as well suited for use on digital devices or when the resolution is not known. These units are more appropriate when you are designing for physical media such as print.

Absolute units include:

  • cm (centimeters)
  • mm (millimeters)
  • in (inches)
  • pc (picas)
  • pt (points)
  • px (pixels)

Note that the editor’s draft of the spec also includes the quarter-millimeter (q) unit, but this is new and doesn’t seem to have any browser support.

You might observe that while using absolute lengths there are differences between the same values of a particular unit on different screens. This is because of the difference in the DPI (dots per inch) for a screen. Higher resolution screens have a higher DPI compared to smaller resolution screens, thus making the image or text look smaller.

The most widely used of all absolute units is the pixel (px). A pixel is a single dot on the screen. It is the smallest unit of measurement and usually the unit used as a benchmark for the other units.

Other units like inch, millimeter, and centimeter represent the physical size of these units. The point (pt) unit represents 1/72 of an inch and the pica (pc) represents 1/6 of an inch. Here is some CSS that makes use of the six common absolute units:

[code language="css"]
p {
border-top: 0.5in solid blue;
border-bottom: 18mm solid green;
border-left: 1cm solid red;
border-right: 40px solid black;
letter-spacing: 0.4pc;
font-size: 20pt;
}
[/code]

This CodePen demo shows the above code in action:

See the Pen Demo using different absolute units in CSS by SitePoint (@SitePoint) on CodePen.

Relative length units

Relative units, as the name suggests, don’t have fixed values. Their values are relative to some other predefined value or feature. Relative units make it easy to properly size elements since we can relate their width, height, font-size, etc. to some other base parameter.

These units are usually recommended when you creating responsive layouts and are preferred for digital media. Their value can be relative to the fonts you are using, or to the height and the width of the view window of a screen.

Relative units include:

  • ex (x-height)
  • ch (character)
  • em (named after print ems, but not the same)
  • rem (root em)

Let’s take a look at each of these in more detail.

X-height (ex) and Character (ch) units

The ex unit is rarely used in development. 1ex is equal to the size of the lowercase ‘x’ in the font being used. In most cases, the value of 1ex is nearly equal to 0.5em. However this changes from one font to another. This unit can be considered the vertical equivalent of em.

[code language="css"]
p {
font-size: 2ex;
}
[/code]

The character (ch) unit is related to the ‘0’ character. 1ch is the advance measure of the character ‘0’ in a font.

[code language="css"]
p {
margin: 2ch;
}
[/code]

Em units

The em unit has a value equal to the font size of the base element or the parent element. For instance, if the font size of parent element is 20px then the value of 1em will compute to 20px for all immediate child elements. The font size of a child element can be increased or decreased easily based on knowledge of the base unit. The number need not be a whole number.

Using em makes it easy for us to keep font sizes of various elements in a fixed ratio. For example, if the value of font-size for a parent element is 50px, setting the font size of a child element to 2em will be the same as setting it to 100px. Similarly, setting it to 0.5em will make the font size of the child element 25px.

Continue reading %A Look at Length Units in CSS%