FOSSA scores $2.2 M to help developers manage open source licenses

FOSSA wants to help developers manage the tricky terrain of open source license management, and today it announced a $2.2 million seed round. The company also announced that its license management product by the same name was available in open Beta.

Let’s start with the funding, which was led by Bain Capital Ventures along with an all-star list of participants including Salesforce Chairman and CEO Marc Benioff, former YouTube CTO/co-founder Steve Chen, former Skype CTO/co-founder Jaan Tallinn, former Cloudera CTO/co-founder Amr Awadallah and Tinder CMO/co-founder Justin Mateen.

It seems that these folks recognize that this company is attempting to solve a serious problem around open source license management. FOSSA’s 22-year old founder, Kevin Wang, says he today’s programs tend to be made up of a series of open source and third-party components, each with its own unique attribution requirements. Trying to keep up with this has been a daunting task for developers, and there has been a dearth of solutions. In fact, most people use a spreadsheet to track licensing requirements manually, Wang explained.

“It’s 2017 and we don’t know what we are shipping in production. Developers don’t have control of their code,” he said.

His product is supposed to solve that problem by analyzing the code in an entirely automated fashion, finding the license requirements, and offering fixes when a problem is found (integrating the recommendations into trackers like Jira or even communications tools like Slack). It includes proper legal language (written by open source lawyers, according to Wang) and it also automates all disclosures and attributions.

fossa

Photo: FOSSA

Salil Deshpande, who is managing director at lead investor Bain Capital Ventures says this was the only enterprise-grade solution of its kind he has seen. “Modern development trends are adding profound speed and risk to software development … automated license management is no longer just nice to have, it’s dangerous to not have it,” he said in a statement.

That’s because there are legal implications for failing to provide the proper attribution in the code. While, Wang wouldn’t say his solution was fool-proof, he said it gets development teams closer to full compliance than trying to do it manually, a nearly impossible task for a modern application with hundreds of plug-ins and libraries. “At the end of the day the responsibility lies with the customer, but we are offering a way to get as compliant as possible with the least effort,” Wang said.

The company launched in 2014, and has under 10 employees today. Wang  plans to use the seed money to expand engineering, sales and go-to market efforts.

Featured Image: Yuri_Arcurs/Getty Images

via TechCrunch
FOSSA scores $2.2 M to help developers manage open source licenses

Build Your Own One-Click WordPress Content Importer

In this tutorial, I’m going to walk you through how you can add a new menu in WordPress Admin Area, where your users will be able to import any demo content — including widgets, their positions and navigation as well — by a single click. The code follows the best WordPress practices, uses WP Filesystem for file management, includes escaping and all text strings are prepared for translation. It also passes the WordPress theme check plugin!


The script in action…

Important note: this script will remove existing posts, pages, comments and media library from the database! So it’s recommended to use the script on a new WordPress install or demo/testing site. The script is meant to give you a starting point to build your own content importer and customize it as desired. Here is what our script will accomplish in a nutshell:

  • Check webhosting settings, throw error message if something is not okay
  • Copy demo media files into the upload folder
  • Clear current posts, pages, comments and media library from the database
  • Import demo posts, pages, comments and media library into the database
  • Configure navigation, widgets and other settings

You can download the completed source files if you want follow along with the tutorial. I assume that non-beginner coders will read this article so I won’t explain every line. Let’s begin!

Preparing your demo content

So probably at this point your theme is finished already, filled with demo content and located on your local webserver, along with a new or test installation of WordPress. In this tutorial we’ll use the following path as reference to your finished theme folder: http://localhost/cooltheme/

Make sure that your uploaded media files are not stored in month- and year-based folders in the http://localhost/cooltheme/wp-content/uploads/ directory. This is important because we don’t want to mess with those folders when we copy the demo content. You can verify this setting in the WP Admin Area, under Settings ▸ Media ▸ Uploading files. Here is a screenshot of what that setting should look like:

WordPress Media Settings

In case you have some files that are organized in month and year folders, disable the “Uploading files” setting and save the changes. After that unfortunately you’ll have to go through the painful process of re-adding the files to the root of the /uploads/ directory. Basically for this tutorial, all media should be located in /uploads/ without using any year/month subdirectories.

Preparing the media files

Within your current theme’s directory, http://localhost/cooltheme/wp-content/themes/cooltheme/, create a folder named /importer/. Within that folder, create a folder named /media/. When finished, your theme should include the following directories:

/wp-content/themes/my-theme/                  <- theme directory
/wp-content/themes/my-theme/importer/         <- importer files
/wp-content/themes/my-theme/importer/media/   <- media files

Once that is set up, copy all files from your WP /wp-content/uploads/ directory, and paste them into the /media/ folder in your theme. Tip: if you are planning to distribute your theme publicly, make sure that all of the media files are properly licensed.

Exporting database content

Now let’s export all the posts, comments, and pages from the database. I’m going to use phpMyAdmin for this, since it’s the most popular MySQL management tool out there. Obviously you can also use your own preferred tool, e.g. SQLyog, etc. Log in to your theme’s database via phpMyAdmin and follow these steps:

  • Go to the Export tab
  • Select the Custom export method
  • Select these tables: wp_comments, wp_postmeta, wp_posts, wp_terms, wp_term_relationships, and wp_term_taxonomy
  • Save the output to a file with character set UTF-8, no compression
  • Set the format as: SQL
  • At format-specific options select data only (if there’s an option for this), we won’t need the structure
  • Function to use when dumping data: INSERT
  • Syntax to use when inserting data: insert multiple rows in every INSERT statement
  • Press the Go button and save this SQL dump file on your local machine

phpMyAdmin Export SQL Dump

Now open the exported database file in your favorite text editor (I prefer Notepad++). Also create a new file, set its encoding to UTF-8, and save it as data.imp in your theme’s new /importer/ directory. This file will contain SQL data for insert.

Now copy all INSERT statements from the SQL dump and paste them below each other in data.imp. Make sure you copy-paste only the statements, leave comments and everything else behind. Finally put a unique separator among all statements, for example: <cooltheme_sep>, and remove all line breaks between the statements. This will help us to properly process SQL data later. Here is an image how your data.imp content should look something like this:

Example of data.imp content

Add the Importer menu to the WP Admin Area

Now that the demo content is prepared, let’s code the Importer! Open your theme’s functions.php file and add the following code:

if (is_admin()) {
	include_once('importer/importer.inc.php');
}

Create a new file in your code editor, name it importer.inc.php, save it in the /importer/ directory. Then insert these code lines:

<?php

//add importer to WP admin
add_action('admin_menu', 'YOURPREFIX_add_demo_importer');
	
function YOURPREFIX_add_demo_importer() {
	add_theme_page(esc_html__('Demo Importer', 'cooltheme'), esc_html__('Demo Importer', 'cooltheme'), 'administrator', 'YOURPREFIX-demo-importer', 'YOURPREFIX_demo_importer_page');
}

//admin page
function YOURPREFIX_demo_importer_page() {
	global $YOURPREFIX_demo_importer_error;
	echo '<div class="wrap"><h1>'.esc_html__('Demo Content Importer', 'cooltheme').'</h1><div>';
	
}

With these lines we added a new demo importer menu under Appearance in WP Admin Area. It can be accessed only by an administrator or above. Important: You might want to switch YOURPREFIX strings to your unique prefix in all our code examples. Also change translation functions’ text domain (cooltheme) to your theme’s text domain.

Webhosting permission and capability check

Before we start importing we need to make sure that our script is allowed to read and copy files, create directories and read/write database. Different hosting systems have different limitations when it comes to file handling, so we’ll use the WP Filesystem API for file management. Insert the following code above the function YOURPREFIX_demo_importer_page() in importer.inc.php:

// webhosting permission and capability check
if (empty($_POST['YOURPREFIX_importing']) && $_GET['page'] == 'YOURPREFIX-demo-importer' && current_user_can('administrator')) {
	
	// is allow_url_fopen setting on in php.ini?
	if (ini_get('allow_url_fopen') != '1' && ini_get('allow_url_fopen') != 'On') {
		
		$YOURPREFIX_demo_importer_selfcheck[] = esc_html__('The allow_url_fopen setting is turned off in the PHP ini!', 'cooltheme');
		
	} else {		
					
		// can we read a file with wp filesystem?
		global $wp_filesystem;
		if (empty($wp_filesystem)) {
			require_once(ABSPATH . '/wp-admin/includes/file.php');
			WP_Filesystem();
		}		
		
		if (!$wp_filesystem->get_contents(get_template_directory_uri().'/importer/data.imp')) {
			
			$YOURPREFIX_demo_importer_selfcheck[] = esc_html__('The script couldn\'t read the data.imp file. Is it there? Does it have the permission to read?', 'cooltheme');
			
		}
		
	}
	
	// can we create directory?
	$uploads_dir = $wp_filesystem->abspath() . '/wp-content/uploads';
	if (!$wp_filesystem->is_dir($uploads_dir)) {
		if (!$wp_filesystem->mkdir($uploads_dir)) {
			
			$YOURPREFIX_demo_importer_selfcheck[] = esc_html__('The script couldn\'t create a directory!', 'cooltheme');
			
		}
	}
	
	// can we copy files?
	if (!$wp_filesystem->copy(get_template_directory().'/importer/media/book.jpg', $wp_filesystem->abspath() . '/wp-content/uploads/test.jpg')) {
		
		$YOURPREFIX_demo_importer_selfcheck[] = esc_html__('The script couldn\'t copy a file!', 'cooltheme');
		
	} else {
		
		$wp_filesystem->delete($wp_filesystem->abspath() . '/wp-content/uploads/test.jpg');
		
	}
	
	// can we read/write database?
	global $wpdb;
	if (!$wpdb->query('CREATE TABLE IF NOT EXISTS '.$wpdb->prefix.'testing (id mediumint(9) NOT NULL AUTO_INCREMENT, test varchar(255), UNIQUE KEY id (id))')) {
		
		$YOURPREFIX_demo_importer_selfcheck[] = esc_html__('The script is not allowed to write MySQL database!', 'cooltheme');
		
	} else {
		
		if (!$wpdb->query('TRUNCATE TABLE '.$wpdb->prefix.'testing')) {
			
			$YOURPREFIX_demo_importer_selfcheck[] = esc_html__('The script is not allowed to write MySQL database!', 'cooltheme');
			
		}
		
	}
	
}

In the example above, change book.jpg to a file that actually exists in the /uploads/ directory. As you can see the script collects error messages in an array. Let’s create a section in admin page where we can display these errors. We’ll also add the magic importer buttton and a notification to warn our users about database clearing. So find and extend YOURPREFIX_demo_importer_page() function the following way:

// admin page
function YOURPREFIX_demo_importer_page() {
	
	global $YOURPREFIX_demo_importer_selfcheck, $YOURPREFIX_demo_importer_success;
	
	echo '<div class="wrap"><h1>'.esc_html__('Demo Content Importer', 'cooltheme').'</h1>';
	
	if (empty($_POST['YOURPREFIX_importing'])) {
		
		// welcome message
		echo '<p>' . esc_html__('Here you can import sample content with a single click!', 'cooltheme') . '<br /><br />
			'. __('<b>WARNING! The importing process will remove your existing posts, pages and media library!<br />
			It\'s recommended to use a fresh, clean wordpress install!</b>', 'cooltheme') . '</p>';
		
		// show button if no error were found in selfcheck
		if (empty($YOURPREFIX_demo_importer_selfcheck)) {
			echo '<form method="post">
				<input type="hidden" name="YOURPREFIX_importing" value="1" />
				<input type="submit" name="submit" id="submit" class="button button-primary" value="' . esc_attr__('Import Now!', 'cooltheme') . '"  />
				</form>';
		}
		
	} else {			
		
		// user pressed the import button
		if (!empty($YOURPREFIX_demo_importer_success)) {				  
			
			//successful import
			echo '<p><b>' . __('Demo content has been successfully imported!', 'cooltheme') . '</p>';
			
		} else {
			
			//something went wrong
			echo '<p><b>' . __('ERROR! Something went wrong!', 'cooltheme') . '</p>';
			
		}
		
	}
	
	// error messages from webhosting check
	if (!empty($YOURPREFIX_demo_importer_selfcheck)) {
		
		echo '<h2 class="title">'.esc_html__('Whooops!', 'cooltheme').'</h2>					
			<p><b>'.esc_html__('One or more problems were found that needs to be fixed before the import!', 'cooltheme').'</b></p>					
			<ul>';
		
		foreach ($YOURPREFIX_demo_importer_selfcheck as $err) {
			echo '<li>&bull; '. $err .'</li>';
		}
		
		echo '</ul>';
		
	}
	
	echo '</div>';
	
}

You can visit your importer page now to find out if your actual local webserver has any problem with our script and to check for typos.

Copy media files and import MySQL data

If everything seems good at this point, we can copy our demo images/files, clear database tables, read and process data.imp file line by line and import the SQL data. Paste the following code above the YOURPREFIX_demo_importer_page() function:

// start importing
if (!empty($_POST['YOURPREFIX_importing']) && $_GET['page'] == 'YOURPREFIX-demo-importer' && current_user_can('administrator')) {
	
	// copy all media files
	global $wp_filesystem;
	if (empty($wp_filesystem)) {
		require_once(ABSPATH . '/wp-admin/includes/file.php');
		WP_Filesystem();
	}
	
	$files = glob(get_template_directory().'/importer/media/*.*');	
	foreach($files as $file) {
		if (!$wp_filesystem->copy($file, $wp_filesystem->abspath() . '/wp-content/uploads/' . basename($file))) {			
			$YOURPREFIX_demo_importer_error = '1';
		}
	}
	
	// clear tables
	global $wpdb;
	$wpdb->query('TRUNCATE TABLE '.$wpdb->prefix.'comments');
	$wpdb->query('TRUNCATE TABLE '.$wpdb->prefix.'postmeta');
	$wpdb->query('TRUNCATE TABLE '.$wpdb->prefix.'posts');
	$wpdb->query('TRUNCATE TABLE '.$wpdb->prefix.'term_relationships');
	$wpdb->query('TRUNCATE TABLE '.$wpdb->prefix.'term_taxonomy');
	$wpdb->query('TRUNCATE TABLE '.$wpdb->prefix.'terms');
	
	// read SQL dump and process each statement
	$data = $wp_filesystem->get_contents(get_template_directory_uri().'/importer/data.imp');
	$sql = explode('<cooltheme_sep>', $data);
	$current_url = get_site_url();
	
	foreach ($sql as $statement) {
		
		if (!empty($statement)) {
			
			// replace default wp prefix to user's choice if it's not the default one
			if (strstr($statement,'wp_comments') && $wpdb->prefix != 'wp_') {
				$statement = str_replace('wp_comments',$wpdb->prefix.'comments',$statement);
			}
			
			if (strstr($statement,'wp_postmeta')) {
				if ($wpdb->prefix != 'wp_') {
					$statement = str_replace('wp_postmeta',$wpdb->prefix.'postmeta',$statement);
				}											
				// also replace all our sample paths to the user's actual path
				$statement = str_replace('http://localhost/cooltheme',$current_url,$statement);
			}
			
			if (strstr($statement,'wp_posts')) {
				if ($wpdb->prefix != 'wp_') {
					$statement = str_replace('wp_posts',$wpdb->prefix.'posts',$statement);
				}
				// also replace all our sample paths to the user's actual path
				$statement = str_replace('http://localhost/cooltheme',$current_url,$statement);
			}
			
			if (strstr($statement,'wp_term_relationships') && $wpdb->prefix != 'wp_') {
				$statement = str_replace('wp_term_relationships',$wpdb->prefix.'term_relationships',$statement);
			}
			
			if (strstr($statement,'wp_term_taxonomy') && $wpdb->prefix != 'wp_') {
				$statement = str_replace('wp_term_taxonomy',$wpdb->prefix.'term_taxonomy',$statement);
			}
			
			if (strstr($statement,'wp_terms') && $wpdb->prefix != 'wp_') {
				$statement = str_replace('wp_terms',$wpdb->prefix.'terms',$statement);
			}						
			
			// run the query
			if (!$wpdb->query($statement)) {
				$YOURPREFIX_demo_importer_error = '1';
			}
			
		}
		
	}
	
	// navigation, widgets, other settings
	if (empty($YOURPREFIX_demo_importer_error)) {
		update_option('option_name','option_value');
		update_option('option_name',unserialize('serialized_option_value'));
	}
	
	// if everything went well
	if (empty($YOURPREFIX_demo_importer_error)) {
		$YOURPREFIX_demo_importer_success = '1';
	}
	
}

When a user presses the importer button, the $_POST['YOURPREFIX_importing'] variable receives a value and this is our sign to start importing. Note how we replace both instances of our demo path, http://localhost/cooltheme, with the user’s actual site path. Always check this path when you’re building a demo importer for a new theme.

Navigation, widget, and other settings

The last things we need to import are the settings from wp_options table. In your MySQL manager go to your theme’s database and list all contents of wp_options table sorted by option_name column. This table contains all your settings, like navigation, number of posts per page, active widgets, etc. You need to go through each of them to see which one is important for you and insert them with update_option() function, as you can see it in example code above. Some settings are stored in a serialized array. In those cases we need to put the value in an unserialize() function. Most of the option names are self-explanatory.

After testing you’ll see if you missed something anyway. Here are some important options: page_for_posts, page_on_front, show_on_front, sidebars_widgets, theme_mods_YOURTHEME. Widget informations are stored in the options named widget_*.

Testing and Debugging

We are ready to test our script! Create a fresh WordPress install on your local webserver for testing purposes. Copy your theme there, activate it, visit the demo importer page and hit the import button. If something went wrong, PHP error messages should tell you all the details (if they are turned on). You can also look for errors in your server’s log files. If everything went smoothly then your sample content should appear properly.

That’s it!

Besides a demo importer I also recommend you to provide a documentation for your theme which explains step-by-step how a user can set up things like your live preview. This is useful for customers, who don’t want to delete their existing content. At DivPusher WordPress theme club we use this method in our themes as well.

Download the source files

Here is a complete example of the code provided in this tutorial. The download file also includes a set of example media files and ready-to-go import file.


Demo: WordPress Content Importer – Version 1.0 (1 MB zip)

If you have any question, problem or fix, just drop a comment below!

via Perishable Press
Build Your Own One-Click WordPress Content Importer

.40 Cal LEGO Heads Shot Out Of Glock

With the discovery that LEGO minifig heads fit rather well in .40 S&W brass, as well as 10mm brass, the next logical step is to test if LEGO heads can be used as an actual projectile. If you missed it, here is the post about LEGO minifig heads fitting in .40 cal brass. I went […]

Read More …

The post .40 Cal LEGO Heads Shot Out Of Glock appeared first on The Firearm Blog.


via The Firearm Blog
.40 Cal LEGO Heads Shot Out Of Glock

Hydraulic Press vs. Adamantium

Hydraulic Press vs. Adamantium

Link

(PG-13: Language) The Hydraulic Press Channel claims to have gotten their claws on some actual Adamantium, and from the looks of their latest video, it seems plausible. Though it’s far more likely that they’re just doing a sponsored promo video for Logan.

via The Awesomer
Hydraulic Press vs. Adamantium

This Iron Fist Featurette Explains a Lot More About the Show Than the Trailers Did

In addition to including some new footage—not nearly enough of it being dedicated to Colleen Wing kicking butt, sadly—this new Iron Fist featurette lets Finn Jones set up the world of Netflix’s latest Marvel show. Unsurprisingly, the world of a Living Weapon involves quite a bit of punching.

Some of the footage is familiar, coming from the recent big trailer Netflix released for the series, but there’s still some new looks at the show, including Danny’s return to Rand Enterprises, and a few more snippets of his first encounters with Colleen and his time at K’un Lun.

More important details come from Finn Jones’ commentary over the footage, discussing how Danny taps into the “fire of the fist” for his powers—a “force that runs through the universe”—and that seemingly Danny has a mission upon his return to New York: not just to take his family’s business back, but confront a mysterious, shadowy force he’s been told about during his time training at K’un Lun that’s sunk its claws into Rand Enterprises. Honestly, it’s a much better look at the premise of the show than that recent trailer.

Iron Fist hits Netflix March 17.

via Gizmodo
This Iron Fist Featurette Explains a Lot More About the Show Than the Trailers Did

18 Free Ways to Download Any Video Off the Internet

Video is the future. Periscope has taken the world by storm, and YouTube has launched a subscription service. Even Spotify and Facebook are getting in on the act.

We’re not here to ask why you’d want to download any of that video content – the reasons are too numerous. We just want to show you how to do it.

So, without further ado, here are 18 free ways to download (almost) any video off the internet. Enjoy!

App-Specific Tools

Let’s begin with some service-specific web apps that specialize in a single website before moving onto generic video downloaders later in the article.

We’ll kick things off with YouTubeInMP4. Just paste in your link and click Download in MP4. On the next screen, you can choose whether to download in HD or standard resolution.

SaveFrom is another YouTube downloader, but one with a difference. If you are watching something online and you want save it, just enter “ss” before “YouTube” in the URL.

For example:

  • https://www.youtube.com/watch?v=aS01LwpC23g

Would become:

  • https://www.ssyoutube.com/watch?v=aS01LwpC23g

The final YouTube downloader


5 Free YouTube Downloaders & Converters Compared: Which One Is Right For You?




5 Free YouTube Downloaders & Converters Compared: Which One Is Right For You?

Two years ago, I told you about 5 easy ways to download and convert online videos. Recently, we also told you about ways to download YouTube videos to your Mac, and some ways you can…
Read More

on the list is arguably the simplest. FastestTube is a browser extension that’ll add a physical download button to the YouTube website. You can find it in the bottom right-hand corner of a video.

It works on Chrome, Firefox, Safari, Opera, and Internet Explorer.

Sticking with the premise of site-specific tools, DownloadTwitterVideo lets you pull any video off the world’s favorite transient social network.

Paste in the URL of the Tweet which contains the video you want, then select whether you want to save it as an MP3, MP4, or MP4 HD.

Yes, Vine is no longer accepting new entries. But the 39 million uploaded videos are still available to view


Vine Is Dead but You Can Still Watch Old Videos




Vine Is Dead but You Can Still Watch Old Videos

Even though Twitter announced the death of Vine, the best of Vine still lives on in the Vine Archive.
Read More

on the Vine website.

There are countless hours of amazing videos


25 of the Best Vine Videos of All Time




25 of the Best Vine Videos of All Time

Vine is dead. So, before all those awesome videos go the same way as VHS and MiniDisc, let’s take the opportunity to look back at 25 of the best Vine videos of all time.
Read More

, ranging from the thought-provoking to the hilarious. This web app lets you save it all onto your hard drive for posterity.

Instagram forged its reputation as a photo-sharing service, but with the introduction of Instagram Stories


How to Use Instagram Stories Effectively: Basics, Tips, and Tricks




How to Use Instagram Stories Effectively: Basics, Tips, and Tricks

Instagram Stories is the photo-sharing giant’s take on Snapchat. The purpose is to add a new layer of fun to your images and videos. Here’s everything you need to know.
Read More

, it’s quickly positioning itself as a Vine replacement.

FB Down is a tool for downloading video off Facebook. It also comes with a Chrome extension, meaning you don’t need to leave the social network’s homepage if you find something you want to save.

FB Down Private is a subsection of FB Down, but we feel it deserves its own mention. The app lets you grab videos from accounts that users have set to private, even if you can’t see the video on Facebook natively.

To download a private video, go to the video’s page on Facebook, press CTRL + U to view the source code, then paste the code into the downloader.

Generic Video Downloaders [Web Apps]

As you progress through this portion of the list, you’ll notice a commonly recurring theme: most of the video downloaders work with the same set of sites.

KeepVid supports 28 sites. It covers educational resources like Lynda, news outlets like ABC and NBC, and popular amusement sites such as Ebaumsworld and Break.

Once you’ve pasted your link, you can choose to save your downloaded file in more than 150 different formats.

A simple-to-use web app that supports the majority of the most popular video sites. Type the link and hit Go.

YooDownload is another competitor to the likes of KeepVid and VideoGrabby. It works with YouTube, Vimeo, Facebook, Twitter, Instagram, Vid.me, and SoundCloud.

ClipConverter works with almost any website you can think of (subscription streaming services notably excluded). It’ll even grab videos off the world’s most thriving social network, MySpace!

The developers offer a browser add-on for Chrome, Firefox, and Safari.

Because so many of these web apps are so similar, I’m only going to introduce you to one more.

OnlineVideoConverter works with YouTube, LiveLeak, TeacherTube, VK, College Humor, and more.

Generic Video Downloaders [Desktop Apps]

Sometimes it’s better to use a desktop app than a web app. They can offer features which web apps cannot replicate.

Clearly, VLC does a lot more than merely downloading videos. The beauty of using VLC is it’s a program a lot of users will already have installed on their machines, and it negates the need for third-party apps.

A step-by-step guide is beyond the scope of this article, but you can find more information in my piece about six amazing VLC features


6 Awesome VLC Features You May Not Know About




6 Awesome VLC Features You May Not Know About

There’s a reason VLC is called the Swiss Army Knife of media players. This article identifies six awesome VLC features and explains how to use them.
Read More

.

Video Grabber has three key features; downloading video, converting video, and recording your screen. Even though it initially looks like a web app, it is actually a desktop program.

The screen recording feature can be really useful in certain situations. More on that shortly.

FLTVO has a web app and desktop version. The desktop version lets you queue videos for download from multiple sources and automatically download new videos as they become available.

Screen Recorders

We’re closing out our list with a pair of screen recorders. These tools let you record whatever is playing on your computer, making them a good solution when you have exhausted all other possibilities.

OBS studio is unquestionably the best free screen recorder app on the web. It’s available on Windows, Mac, and Linux and includes a powerful editing tool.

CamStudio doesn’t look as slick as OBS and it doesn’t have as many features, but it’s simpler to use. Thus, it’s perfect for someone who just wants to click Record and forget about it.

We covered these two tools in much more detail when we discussed the best three screencasting tools for Windows


Show, Don’t Tell! 3 Best Free Screencasting Tools for Windows




Show, Don’t Tell! 3 Best Free Screencasting Tools for Windows

They say a picture is worth a thousand words, so a video must be priceless – and there are times when a video is more convenient and effective than simple words. A screencast, also known…
Read More

.

A Word of Warning

Remember, all the tools listed in this article are for creating recordings of free online videos for personal use. They should not be used to save and distribute copyrighted material; doing so could get you in serious trouble with the law. You have been warned!

Which sites and apps do you use when you want to save a video to your hard drive? Have you used any of the tools we’ve discussed here? Which would you recommend to your fellow MakeUseOf readers? Please leave your tips and suggestions in the comments below.

Image Credit: Den Rise via Shutterstock.com

Originally written by Aseem Kishore on October 2, 2007



via MakeUseOf.com
18 Free Ways to Download Any Video Off the Internet

The Perfect Server CentOS 7.3 with Apache, Postfix, Dovecot, Pure-FTPD, BIND and ISPConfig 3.1

This tutorial shows how to install ISPConfig 3.1 on a CentOS 7.3 (64Bit) server. ISPConfig 3 is a web hosting control panel that allows you to configure the following services through a web browser: Apache web server, Postfix mail server, MySQL, BIND nameserver, PureFTPd, SpamAssassin, ClamAV, Mailman, and many more.
via Planet MySQL
The Perfect Server CentOS 7.3 with Apache, Postfix, Dovecot, Pure-FTPD, BIND and ISPConfig 3.1

10 beginner tips to up your photo game and improve your work

No matter how experienced we may get as photographers, there are always ways to improve. Sometimes it’s learning something new. At other times it’s simply seeing something in a new way. Occasionally, it’s just getting reminders to help us lose bad habits that might make us screw up.

The folks at Mango Street have been putting out some quite cool videos recently, with some great advice to help with this. In their new video, they offer up 10 tips to take your photos “from BASIC to BOSS”. They pooled some of their professional photographer friends to see what tips they had to offer. I don’t quite agree with all of them, though.

They do preface the video by stating that these are just opinions, and that photography is a very subjective thing. Some of the tips make a lot of sense

  1. Mind your horizons
  2. Nail your focus
  3. Don’t cut off your subjects limbs at the joints
  4. Good composition
  5. Don’t under or over edit your photos
  6. Don’t shoot in tungsten lighting
  7. Use light correctly & learn artificial light
  8. Shoot with purpose – What are you trying to communicate?
  9. Keep your subjects natural
  10. Don’t try to recreate someone else’s work

For newer photographers, they’re mostly good tips.

Taking care that your horizons are level and aren’t intersecting peoples heads is a good place to start. As with most things in photography, it’s not a hard and fast rule. But, it’s a good guideline when you’re starting out because it’s one less thing to worry about. Wonky horizons while you’re still trying to learn the rest of photography usually don’t work out well.

Nailing your focus is always a good idea. That’s not to say you can’t intentionally put something out of focus. But, like a wonky horizon, it can often just look like an accident instead of having intent.

If you’re consistently missing focus, your camera & lens could be front or back focusing. So, it may be worth investing in something like a SpyderLENSCAL to ensure that your lenses are focusing where you expect them to.

Not cutting off limbs and good composition kind of go hand in hand. Sure, that’s not all there is to composition, but not cutting off limbs is a part of it if you’re photographing people. Cutting people off at knees and elbows often makes your subject appear as though the limb has been amputated.

I did laugh a little at the “don’t under or over edit your photos” bit. Because that’s basically another way of saying “edit your photos just right”. Goldilocks would be proud.

Of course, everybody wants to process their photos “just right”, but that’s a very subjective thing. What’s under or over edited to one person could be perfect to another, or to the creator. Sure, there’s definitely a lot of really bad obviously horrible stuff out there (I’m looking at you selective colour and bad HDR), but it is very much an individual thing.

“Don’t shoot in tungsten lighting” is one I disagree with. Anybody who’s learned #7 will soon be able to figure out if they can shoot in a given situation with no problem. A light source is a light source. Once you understand quality of light, it won’t matter what the light source is. You’ll immediately be able to tell if it’s good or bad for the result you’re trying to achieve.

The whole having purpose and making your subjects look natural is something I definitely agree with. As a location portrait photographer, I try to keep my subjects looking natural. I don’t like the forced fake poses, and I want them to appear comfortable in their surroundings. Otherwise, to me, the purpose of the image can come across as making the subject look as uncomfortable as possible.

Sure, I’ll often suggest a pose, and may even demonstrate it myself from time to time, but I don’t photograph it. I’ll ask them do it once, so they get the general idea. Then tell them to relax and do it again in a way that feels natural and comfortable to them. Then I’ll photograph it.

The last tip I strongly disagree with, especially for photographers that are learning. Well, they did say this was a video of opinions. So, here’s mine.

Absolutely try to recreate somebody else’s work. Don’t plaster it all over social media, do it for yourself, but definitely try to recreate it.

Recreating images you like or the work of photographers you admire is one of the quickest ways to learn. You’re almost never going to get it right on the first go, anyway. And you may never get it perfect. But those screw-ups give you the opportunity to figure out why it doesn’t, experiment, work and learn from it.

Perhaps it’s the lighting, maybe your subject doesn’t look as relaxed and comfortable, the composition’s wrong, the colours clash, or one of a million other reasons. Because you’re trying to recreate something that already exists, rather than a vision in your head, you have something with which you can make a direct comparison. You can see both of them right in front of you and play “spot the difference”.

It’s all very well to say “look at the work of others and just take inspiration”, but if one hasn’t learned how to apply it, then it doesn’t really help. If you learn how and why an image works by trying to replicate it, you’ll have a better understanding of how to take inspiration and apply principles in your own photographs.

via DIYPhotography.net – Photography and Studio Lighting – Do It Yourself
10 beginner tips to up your photo game and improve your work

Incubating innovation

City officials worldwide are bursting blood vessels trying to figure out how to create their own version of Silicon Valley. From the Silicon Hills in Austin, Texas to Silicon Alley in NYC, the Silicon Docks in Ireland’s capital city to Silicon “Wadi” in Israel, potential new global tech hubs are popping up everywhere.

Having the right ingredients for innovation to flourish on a scale similar to Silicon Valley will take more than stealing the moniker. The formal elements — an open economy, regulation that supports enterprise, a creative culture and easy access to capital — are the parts of the puzzle that could be implemented anywhere. However, the key ingredient underpinning Silicon Valley’s success, many believe, has been the steady flow of skilled engineers — with an entrepreneurial mindset — coming out of Stanford University.

“SV was largely driven by Stanford University — it has become a magnet for attracting the best talent in tech,” says Dr. Damien McLoughlin, professor of marketing and associate dean at University College Dublin (UCD) Michael Smurfit Graduate Business School in Ireland. “As an educator, it does make me wonder what universities elsewhere should be doing differently. Just a few decades ago, all the smartest people worked for universities. Today they’re all in startups.”

For tech hubs to thrive, a city or region needs a nearby university, with a strong research and engineering tradition, providing a constant supply of skilled graduates. However, that isn’t enough. “There must also be a culture of tech commercialization within any nearby university,” says Chuck Eesley, assistant professor at Stanford’s Department of Management Science & Engineering and affiliated faculty member at the Stanford Technology Ventures Program. “There’s no place for the Ivory Tower academic mindset, or the idea that commercialization somehow gets your hands dirty.”

University incubators are already responsible for the commercialization of academic research output. But, in most cases, their influence is minor and peripheral. “Perhaps the university of tomorrow should be more like one big incubator,” suggests McLoughlin.

Having the right ingredients for innovation to flourish on a scale similar to Silicon Valley will take more than stealing the moniker.

By fostering an environment where tech startups and tech entrepreneurs can engage with university academics and students openly, and ideas can be shared more fluidly by industry and academia, one can achieve greater levels of innovation.

Universities used to be where the smartest people in the world went to exchange ideas. Some spent their whole lives there as faculty and helped steer the brightest and best young students who passed through during their tenure. The role of the 21st century educational institution has changed. “In the past, the most important academic questions focused around the meaning of life and why we exist,” says McLoughlin. “Today the questions have changed, with one of the most important being: how do we engage with tech to make society better? If you ask me where the ideal place would be to try and answer fundamental questions like this in a truly independent way, the university is the obvious location.

Is Stanford an already existing example of one such great, big incubator? “There’s definitely a special set of ingredients that came together here for the kind of high-tech entrepreneurship to emerge in SV,” says Eesley.

“There are other institutions with great engineering programs, like Caltech and Carnegie Mellon University, but they haven’t been able to achieve the same level of commercialization. They have great breakthroughs, but something is missing.”

It’s also critical that university policy makes it simple for faculty members and/or students to commercialize research. If institution authorities are overly concerned with royalties and ensuring they negotiate the biggest piece of the IP pie for the alma mater, they’re unlikely to encourage entrepreneurship from within.

“I have experience in this area at both MIT and Stanford,” says Eesley. “MIT used to focus on negotiating as good a deal as possible for the university in every situation. Now their focus is on maximizing the number of deals getting done on campus. That is key to enabling true entrepreneurship in an academic setting.”

Bringing in former alumni who became entrepreneurs to mentor also has an impact. “We did studies of mentorship where we randomized which students were matched with entrepreneurs or with VCs, and various other alumni who may have had successful careers but who never actually started a business,” says Eesley. “The ones with entrepreneurs for mentors were far more likely to start an early-stage startup upon graduation.”

Eesley isn’t suggesting what’s happened (and continues to happen) in the southern Bay Area isn’t possible elsewhere. “Tech hubs can emerge in almost any location,” he says. “We know this because the centers of innovation of the past in the U.S. were places like Detroit and Cleveland. Just a few short decades ago, if you were a young, talented engineer, these were the cities you were drawn to.”

Commerce at the expense of the arts

With little to ostensibly offer in an educational system driven even more by commercial interests, the arts and humanities would presumably suffer most, and be considered to have even less value than they already do.

McLoughlin disagrees. “In this context, engaging more with tech startups only appears as a prioritization of business and commerce above all else on a superficial level. The arts give us access to our cultural life and the culture of society,” he says. “If the incubator model were to be adopted in an overall university setting, the arts would thrive. The social sciences, in particular, would be put to the fore in the development of new tech and people would think more about the consequences of new innovations. Many of the negative aspects of life in the digital age could be avoided or minimized if there were more independent input during the design stages of new tech. If innovation was driven as much by universities as it is by startups, we would all benefit.”

via TechCrunch
Incubating innovation