Smartware Design https://smartwaredesign.com Your Web and Mobile Development partner! Thu, 04 Apr 2019 15:08:01 +0000 en-US hourly 1 https://wordpress.org/?v=6.4.2 https://i0.wp.com/smartwaredesign.com/wp-content/uploads/2017/09/cropped-logo300x300.png?fit=32%2C32&ssl=1 Smartware Design https://smartwaredesign.com 32 32 63693571 Git Feature Branch and Build Number Reference for Android TFS Builds using Gradle https://smartwaredesign.com/git-feature-branch-and-build-number-reference-for-android-tfs-builds-using-gradle/ Wed, 10 Oct 2018 17:33:01 +0000 http://smartwaredesign.com/?p=153542 Frequently a developer will want to capture the build number and feature branch being built in TFS from within their Gradle build file.  The best way to capture these environment variables inside of Gradle for use internally in the project for displaying on a layout inside of your app or as a reference point inside […]

The post Git Feature Branch and Build Number Reference for Android TFS Builds using Gradle appeared first on Smartware Design.

]]>
Frequently a developer will want to capture the build number and feature branch being built in TFS from within their Gradle build file.  The best way to capture these environment variables inside of Gradle for use internally in the project for displaying on a layout inside of your app or as a reference point inside of your BuildConfig Java class, simply use the System environment variables reference as indicated below:

buildConfigField("int", "BUILDNUMBER", "1")
if (System.getenv("BUILD_BUILDNUMBER") != null) {
buildConfigField("int", "BUILDNUMBER", Integer.parseInt("${System.getenv('BUILD_BUILDNUMBER')}"))
}
buildConfigField("String", "BRANCH", "\"local\"")
if (System.getenv('BUILDBRANCHNAME') != null) { //BUILD_SOURCEBRANCHNAME is only the name of the branch
buildConfigField("String", "BRANCH", "\"${System.getenv('BUILDBRANCHNAME')}\"")
}

What this does is to create constants inside the project’s generated BuildConfig class which can then be used as a reference in your app (ex: BuildConfig.BRANCH):

public final class BuildConfig {
...
public static final String BRANCH = "local";
public static final int BUILDNUMBER = 1;
...
}

So, after spending quite a while navigating through the predefined TFS variables, I was finally able to discover the correct reference for converting environment variables (specifically ‘build’ environment variables) for use in Gradle. I thought I would add a blog post to help someone else out that may be having this issue.

The post Git Feature Branch and Build Number Reference for Android TFS Builds using Gradle appeared first on Smartware Design.

]]>
153542
Tutorial: Simple PHP Script to Add Text on a Darkened Image https://smartwaredesign.com/tutorial-simple-php-script-to-add-text-on-a-darkened-image/ Mon, 09 Oct 2017 17:33:06 +0000 http://smartwaredesign.com/?p=150882 Let us show you exactly how to use PHP, cURL, and ImageMagick to search, download, and manipulate an image to your choosing to autonomously build the image that you want for your website or project.

The post Tutorial: Simple PHP Script to Add Text on a Darkened Image appeared first on Smartware Design.

]]>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><!-- [et_pb_line_break_holder] --><!-- SmartwareDesign.com --><!-- [et_pb_line_break_holder] --><ins class="adsbygoogle"<!-- [et_pb_line_break_holder] --> style="display:block"<!-- [et_pb_line_break_holder] --> data-ad-client="ca-pub-6622580424367066"<!-- [et_pb_line_break_holder] --> data-ad-slot="6791039074"<!-- [et_pb_line_break_holder] --> data-ad-format="auto"></ins><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->(adsbygoogle = window.adsbygoogle || []).push({});<!-- [et_pb_line_break_holder] --></script>

Successfully Use PHP & ImageMagick

Today I’m sharing some example code to do the following all in one PHP script:

  • search Bing for an image given a keyword,
  • store the image locally,
  • add a dark overlay to that image,
  • add a curved title, and
  • add text on top of that image below the title that adjusts to the available space.

First, we’re going to create 2 parameters to be passed in “k” will represent the keyword that we’re searching for in a Bing image search and we want Bing to find a photo that is at least 300×300 pixels and has any “Creative Commons” license.  The second parameter will be “text” which will contain the text that we want to overlay on top of the image.  You can also pass in the title of the image if you choose but we’re going to use the current date for this example. We’re going to use cURL for retrieving the image result set and the image itself and ImageMagick for manipulating changes on our image.  The Bing search parameters that I have defined below are not necessary if you’re only interested in finding any image without filtering the results.  The searchUrl variable should at least contain “https://www.bing.com/images/search?q=<QUERY HERE>“.  To narrow down the Bing query results, simply use the “Filter” option and capture the URL for your script.

Below is the script for reference and we’ll walk through it afterwards.

<?php

$keyword = $_GET[“k”];
$theText = isset($_GET[“text”]) ? str_replace(“%20″,” “,$_GET[“text”]) : “Some very\n long text that needs to be placed on the image somewhere \nindeed what should \nI do now I have \nno idea lorem ipsum lorem ipsum what \nwhat what now now now how how how \nwhy why why when when when”;
$urlKey = str_replace(” “,”+”,$keyword);
$searchUrl = “http://www.bing.com/images/search?pq=”.$urlKey.”&q=”.$urlKey.”&qft=+filterui:imagesize-custom_300_300+filterui:licenseType-Any+filterui:photo-photo&FORM=IRFLTR”;

$output = getUrl($searchUrl);
preg_match_all(‘!<a class=”thumb” target=”_blank” href=”(.*?)”!’, $output,$url_matches);
//$url_matches[1] is an array of images matching search criteria

downloadImage($url_matches[1][0]);

function getUrl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
function downloadImage($url){
global $theText;
preg_match_all(“!.*?/!”,$url,$slashMatch);
preg_match(“!”.end($slashMatch[0]).”(.*?.*)!”,$url, $imageNameArray);
$imageName = str_replace(“+”,”-“,$imageNameArray[1]);
$imageNameNoExtension = substr($imageName, 0, strrpos($imageName, ‘.’));
$fp = fopen($imageName, “w+”);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, ‘Mozilla/5.0’);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds
$imageData = curl_exec($ch);
curl_close($ch);
fwrite($fp, $imageData);
fclose($fp);

$dateText = date(‘F j, Y’);
$theTitle = $dateText;
$textColor = “white”;
$convertCmd = ‘/usr/local/bin/convert’;

$imCmd = $convertCmd.’ ‘.$imageName.’ -resize 500×500 -size 500×500 -frame 500×500 xc:black +swap -gravity center -write mpr:image -composite ‘.$imageName;
echo $imCmd.”<br>”;
exec($imCmd);

//add a dark transparent overlay
$imCmd = $convertCmd.’ ‘.$imageName.’ ‘;
$imCmd .= ” \( -clone 0 -fill ‘#000000A0’ -alpha set -draw ‘color 0,0 reset’ \) -compose atop -composite “.$imageNameNoExtension.”.png”;
echo $imCmd.”<br>”;
exec($imCmd);

//resize it to 500×500
//add the title
$imCmd = $convertCmd.’ ‘.$imageNameNoExtension.’.png -thumbnail 500×500 -write mpr:image +delete ‘;
$imCmd .= ‘-pointsize 30 -fill ‘.$textColor.’ -background none label:”‘.$theTitle.'” -virtual-pixel transparent -distort arc 60 -write mpr:arc +delete ‘;
$imCmd .= ‘mpr:image mpr:arc -gravity north -composite ‘.$imageNameNoExtension.’.png’;
echo $imCmd.”<br>”;
exec($imCmd);

//add the text
$imCmd = $convertCmd.’ ‘.$imageNameNoExtension.’.png -background none ‘;//-annotate +10+60
$imCmd .= ” -fill ‘”.$textColor.”‘ “;
$imCmd .= “-size 480×350 -font ComicSans caption:'”.$theText.”‘ “;
$imCmd .= “-gravity NorthWest -geometry +10+60 -composite “.$imageNameNoExtension.’.png’;
echo $imCmd.”<br>”;
exec($imCmd);

echo “<img src='”.$imageNameNoExtension.”.png’>”;
}

Let’s say that I use the keyword “deer” and example text for the query parameter “text”, here’s what it would look like with the script to the left: If you happen to see timeouts, use the following methods to extend the timeout period so the search image has enough time to download: set_time_limit(0); //PHP script timeout curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0); // wait indefinitely curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds for cURL

There are two methods in the script, getUrl simply goes out to the Bing search URL, pulls back the HTML of the search, and the first step finds all of the thumbnail images on the screen and gives us an array of all thumbnails and the target image URL:

$output = getUrl($searchUrl); preg_match_all(‘!

Next, we’re going to get the first image from the query image result and download it (feel free to change the name of the file here by updating the $imageName variable).

  preg_match_all("!.*?/!",$url,$slashMatch);
  preg_match("!".end($slashMatch[0])."(.*?.*)!",$url, $imageNameArray);
  $imageName = str_replace("+","-",$imageNameArray[1]);
  $imageNameNoExtension = substr($imageName, 0, strrpos($imageName, '.'));
  $fp = fopen(dirname(__FILE__).'/'.$imageName, "w");
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_VERBOSE, 1);
  curl_setopt($ch, CURLOPT_AUTOREFERER, false);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0); 
  curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds
  $imageData = curl_exec($ch);
  curl_close($ch);
  fwrite($fp, $imageData);
  fclose($fp);

The next step will resize the image to 500×500 pixels and keep the aspect ratio of the image while creating a black background color for the area outside of the scaled image (similar to the black bars on 16:9 ratio movies).  Here we’re defining today’s date as the title, we’re setting all of the text color to white, and we’re pointing to the “convert” command.  In order to accurately run the convert utility, use SSH and the command “which convert”.  Update the $convertCmd value with the result of the command.

  $dateText = date(‘F j, Y’); $theTitle = $dateText; $textColor = “white”; $convertCmd = ‘convert’;//’/usr/local/bin/convert’; $imCmd = $convertCmd.’ ‘.dirname(__FILE__).’/’.$imageName.’ -resize 500×500 -size 500×500 -frame 500×500 xc:black +swap -gravity center -write mpr:image -composite ‘.$imageName; exec($imCmd);

We will then add a dark transparency overlay on top of the image and convert the image to a PNG file so that we can retain transparency (even if the image is not a PNG file to begin with).

$imCmd = $convertCmd.’ ‘.$imageName.’ ‘; $imCmd .= ” \( -clone 0 -fill ‘#000000A0’ -alpha set -draw ‘color 0,0 reset’ \) -compose atop -composite “.$imageNameNoExtension.”.png”; exec($imCmd);

Next we’ll take the new PNG image and add the arched title with an arc of 60 degrees and with a font size of 30 pixels at the top of the image.

$imCmd = $convertCmd.’ ‘.$imageNameNoExtension.’.png -thumbnail 500×500 -write mpr:image +delete ‘; $imCmd .= ‘-pointsize 30 -fill ‘.$textColor.’ -background none label:”‘.$theTitle.'” -virtual-pixel transparent -distort arc 60 -write mpr:arc +delete ‘; $imCmd .= ‘mpr:image mpr:arc -gravity north -composite ‘.$imageNameNoExtension.’.png’; exec($imCmd);

Finally, we’ll add the text on top of the new image just below the title and we’ll have it fit the area between the title and the bottom of the image.

$imCmd = $convertCmd.’ ‘.$imageNameNoExtension.’.png -background none ‘;//-annotate +10+60 $imCmd .= ” -fill ‘”.$textColor.”‘ “; $imCmd .= “-size 480×350 -font ComicSans caption:'”.$theText.”‘ “; $imCmd .= “-gravity NorthWest -geometry +10+60 -composite “.$imageNameNoExtension.’.png’; exec($imCmd);

Now that we have a PNG created exactly how we want, all we have to do is display it inside of a HTML img tag:

echo “<img src='”.$imageNameNoExtension.”.png’>”;

Simple enough, right?  With the power of ImageMagick, it’s easy to autonomously achieve the image manipulation that you need.

The post Tutorial: Simple PHP Script to Add Text on a Darkened Image appeared first on Smartware Design.

]]>
150882
Amazon Prime Day 2017 is upon us! https://smartwaredesign.com/amazon-prime-day-2017-upon-us/ Tue, 11 Jul 2017 06:52:14 +0000 http://smartwaredesign.com/?p=118435 Amazon Prime 2017 is loaded with deals from Amazon. This year's focus is on IoT, home automation, Alexa, televisions, tablets, and also lots of furniture and grocery deals. Check it out July 11, 2017, only.

The post Amazon Prime Day 2017 is upon us! appeared first on Smartware Design.

]]>

July 11, 2017, is known as Amazon Prime Day 2017. With Amazon hosting Prime Day for the third year in a row, lots of other retailers have offered slashed prices during Prime Day to pull some of the customers from Amazon, but it’s hard to compete with Goliath!

Sign up for Prime for only $79 using Alexa and save $10 with any $20+ order using Alexa Deals just by ordering through Alexa (comes in the form of a $10 credit).

Here are some of the best deals available throughout Prime Day:

Check out some of the IoT products to get your smart home started or complete some of the missing pieces that you need for your home (cameras, lights, scales, garage door openers, SmartThings, and more on sale today).

<iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ss&ref=as_ss_li_til&ad_type=product_link&tracking_id=smdell0c-20&marketplace=amazon®ion=US&placement=B00X4WHP5E&asins=B00X4WHP5E&linkId=878dfdafb825d89c93ead398a058e4f5&show_border=true&link_opens_in_new_window=true"></iframe><!-- [et_pb_line_break_holder] --><iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ss&ref=as_ss_li_til&ad_type=product_link&tracking_id=smdell0c-20&marketplace=amazon®ion=US&placement=B01DFKC2SO&asins=B01DFKC2SO&linkId=938c60ec38244c87193c021c43a3e62b&show_border=true&link_opens_in_new_window=true"></iframe><!-- [et_pb_line_break_holder] --><iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ss&ref=as_ss_li_til&ad_type=product_link&tracking_id=smdell0c-20&marketplace=amazon®ion=US&placement=B01J94SBEY&asins=B01J94SBEY&linkId=2aaf4819ca3ec9b6c4508cb4132854df&show_border=true&link_opens_in_new_window=true"></iframe><!-- [et_pb_line_break_holder] --><iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ss&ref=as_ss_li_til&ad_type=product_link&tracking_id=smdell0c-20&marketplace=amazon®ion=US&placement=B01EIZSF6I&asins=B01EIZSF6I&linkId=9a3aaaab7288ead565c462d988132a01&show_border=true&link_opens_in_new_window=true"></iframe><!-- [et_pb_line_break_holder] --><iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//ws-na.amazon-adsystem.com/widgets/q?ServiceVersion=20070822&OneJS=1&Operation=GetAdHtml&MarketPlace=US&source=ss&ref=as_ss_li_til&ad_type=product_link&tracking_id=smdell0c-20&marketplace=amazon®ion=US&placement=B01FV0F75G&asins=B01FV0F75G&linkId=add25a2a13ff80e5c9be0f6e7e46440e&show_border=true&link_opens_in_new_window=true"></iframe>

The post Amazon Prime Day 2017 is upon us! appeared first on Smartware Design.

]]>
118435
BuzzBundle Review – Social Marketing Expert Product https://smartwaredesign.com/buzzbundle-review-social-marketing-expert-product/ Tue, 22 Nov 2016 07:19:45 +0000 http://smartwaredesign.com/?p=1779 The post BuzzBundle Review – Social Marketing Expert Product appeared first on Smartware Design.

]]>
<a href="http://www.link-assistant.com/go/?app=sps&get=1086246"><img src="http://www.link-assistant.com/images/partners/affiliate-resource-center/banners/black-friday-2016/bb-sale-2016-250x250.png" width="250" height="250" alt="BuzzBundle Sale"/></a>

Buzz Bundle is an amazing tool for generating social media traffic to your site by scheduling posts, using personas, and managing multiple accounts. It’s the best out there and it’s on sale for the next 3 days only at 60% off and this sale literally only runs once per year and is never on sale again and there’s no guarantee that it will be on sale again next year.

<p>BuzzBundle is the software that helps companies see just who is talking about their brand or product, allows promoting their brand, drive in Social Media traffic and power up their SEO campaigns with social media.</p>
<p>At this day and age social media provide benefits to practically any kind of business. No matter what your business is about, properly planned tactics of your SMM campaign will let you:
</p>
<ul class="bird-red">
<li>Raise awareness about your product and brand on the Web</li>
<li>Improve customers engagement</li>
<li>Increase your site conversion rate and boost your profits</li>
</ul>
<p>
<a href="https://www.bluesnap.com/jsp/redirect.jsp?contractId=3211276&referrer=1086246">BuzzBundle</a> takes your social media management to the next level. This SMM application helps you easily manage a massive amount of social media accounts, monitor your social media performance and create robust online reputation for your website or brand.
</p> <center>
<img src="http://www.link-assistant.com/images/affiliates/sm_37.png" width="472" height="205" alt="">
</center> <h3>
Monitor all social mentions of the keywords you specify
</h3> <p>
BuzzBundle has the largest coverage of social media sources and collects all mentions of niche keywords in:
</p>
<ul class="bird-red">
<li><strong>Forums</strong></li>
<li><strong>Blogs</strong></li>
<li><strong>Q&A sites</strong></li>
<li><strong>Social networks (Facebook, Twitter, Google +, LinkedIn, etc)</strong></li>
<li><strong>Video - YouTube</strong></li>
<li><strong>And more!</strong></li>
</ul>
<p>
Thus, the software lets you get a better view of your social campaigns, see what people are saying about your website/brand and monitor fluctuations of your online popularity.
</p> <center>
<img src="http://www.link-assistant.com/images/affiliates/sm_38.png" width="472" height="381" alt="">
</center>
<h3>
Instantly see the "Reach" of each found message
</h3>
<p>
BuzzBundle offers an easy to grasp metric called Reach - it shows whether the message you've found is going to be seen by a lot of people. This is especially useful for reputation management. Say, when you see a bad review in a forum, but the Reach is low - you wouldn't need to interfere and lift up the message: with time, no one will read it. On the other hand, if you see a bad review with a big reach - you might want to step in the conversation asap and try to figure what's wrong/apologize for anything that caused the review etc.
</p>
<p>
<img src="http://www.link-assistant.com/images/news/reach-multiposting/screen-02.png" alt="">
</p>
<p>
<img src="http://www.link-assistant.com/images/news/reach-multiposting/screen-03.png" alt="">
</p> <h3>Generate more social buzz under different personas</h3> <p>
With BuzzBundle you can <strong>instantly post</strong> to any supported social media websites, <strong>like and share other posts, retweet</strong> and <strong>manage all your social correspondence</strong>.
</p> <p>
The software also lets you speak in multiple voices! You can post as yourself, your company, community manager, your Customer Care specialist, or a non-geeky granny. With BuzzBundle you can <strong>create an unlimited number of Personas</strong> with <strong>dozens of social media accounts</strong> and easily manage them in one conveniently organized environment.
</p> <center>
<img src="http://www.link-assistant.com/images/affiliates/sm_44.png" width="472" height="328" alt="">
</center> <center>
<img src="http://www.link-assistant.com/images/affiliates/sm_41.png" width="472" height="342" alt="">
</center> <h3>Track competitors' mentions</h3> <p>
The software <strong>monitors your competitors' activities</strong> on forums, blogs, various social
media sites and whatever else you'd like to track. Knowing what other guys in your niche are doing lets you
always be a few steps ahead of the game!
</p> <center>
<img src="http://www.link-assistant.com/images/affiliates/sm_40.png" width="472" height="341" alt="">
</center> <h3>Schedule your tasks</h3> <p>
BuzzBundle lets you run a wide scope of <strong>tasks on auto-pilot</strong>!
</p> <p>
Just set the time for posting your messages/announcements, and the software will do that for you.
Also, you can create a scheduled task for collecting buzz and uploading incoming messages!
</p> <p>
That's a fantastic time saver!
</p> <center>
<img src="http://www.link-assistant.com/images/affiliates/sm_42.png" width="381" height="443" alt="">
</center> <h3>Social media planner</h3> <p>
The software lets you keep track of your social media efforts. All your recent social activities are
put together into one convenient list, so you can see what exactly had the best effect on your
website/brand promotion.
</p> <center>
<img src="http://www.link-assistant.com/images/affiliates/sm_43.png" width="379" height="382" alt="">
</center> <p>And that's not all!</p> <p>
In addition, the software is ultimately user-friendly and customizable! You can:
</p>
<ul class="bird-red">
<li>Adjust the working area to display only the streams and dialogues you need</li>
<li>Filter streams by various parameters</li>
<li>Highlight the most important dialogues</li>
<li>Remove unnecessary dialogues and more!</li>
</ul><h3>Bottom line</h3> <p>BuzzBundle makes it possible for one person to accomplish more than several people would have done without the tool - and besides being able to do more in the same time, you have a better understanding of what the buzz is going about and how many people actually see the conversations.
</p><p>If we haven't said it yet, you need to check out this product today and see how well it will benefit your business. You won't regret the power of this software. Just go ahead and get the <a href="http://www.link-assistant.com/go?app=bz&get=1086246&url=http%253A%252F%252Fwww.link-assistant.com%252Fbuzzbundle%252Fblack-friday-2016.html">BuzzBundle</a> today for less than you ever expected.</p><a href="http://www.link-assistant.com/go/?app=sps&get=1086246"><img src="http://www.link-assistant.com/images/partners/affiliate-resource-center/banners/black-friday-2016/bb-sale-2016-728x90.png" width="728" height="90" alt="BuzzBundle Sale"/></a>

The post BuzzBundle Review – Social Marketing Expert Product appeared first on Smartware Design.

]]>
1779
Building a DIY Photography Backdrop and Floordrop https://smartwaredesign.com/building-a-diy-photography-backdrop-and-floordrop/ Thu, 28 Jul 2016 01:42:34 +0000 http://smartwaredesign.com/?p=1635 The post Building a DIY Photography Backdrop and Floordrop appeared first on Smartware Design.

]]>

My very first attempt at creating and publishing a course on Skillshare / Teachable and it involves my wife’s photography studio.  My wife needed a real-wood floordrop and backdrop in antique white and in stained wood to use for her family and newborn sessions, and of course with me being the person that I am, I decided to attempt to look up information online and build a reversible backdrop/floordrop that has both antique painted white paint and real-wood stain.

After several hours of creating this project, going to Home Depot to get 8′ x 4′ sheets of wood cut into sections, creating an antique white finish using vaseline and antique white paint, and trying to manage a feasible way to use hinges to make this floordrop/backdrop reversible, I now have an official course on Skillshare and Teachable with every step for doing so.  Everything you’ll need is described in the video and on the course page.  The final result allows one color to have a floordrop and backdrop but when reversed, the floordrop must be flipped to become the backdrop and the backdrop will be flipped to become the floordrop.  If you choose to build this project, I would suggest using 6′ sheets of wood rather than 8′ because you’ll find that it’s much easier to move around.  In our case, we have a photography studio and over 9′ ceilings so it happened to work out well for us with 8′ long boards.  One thing to keep in mind, you will need 2 people in order to flip the backdrop/floordrop if using 8′ boards.

If you need any help, have any questions, or would like for me to create another course for building photography projects (or web/mobile design projects), please send me an email or contact us today!

Smartware Design on Teachable!
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Course",
"name": "Building a DIY Photography Backdrop and Floordrop",
"description": "How to build a reversible backdrop and floordrop for your photography studio.",
"provider": {
"@type": "Organization",
"name": "Smartware Design",
"sameAs": "http://www.smartwaredesign.com"
}
}
</script>

The post Building a DIY Photography Backdrop and Floordrop appeared first on Smartware Design.

]]>
1635
Couponing and Saving Everywhere! https://smartwaredesign.com/couponing-and-saving-everywhere/ Thu, 28 Jul 2016 01:21:40 +0000 http://smartwaredesign.com/?p=1631 The post Couponing and Saving Everywhere! appeared first on Smartware Design.

]]>

So here’s my second attempt at teaching a course…  Because I’m typically a saver and deal finder as most people who know me usually ask me if there’s a better deal somewhere for what they’re looking to buy, I decided to put together a course for saving money when shopping either in retail brick & mortar stores or online at big corporate stores.  I also added a section on restaurant deals.

I figured if I’m not already on the bandwagon of teaching digital courses then I’m going to be the last one at the party without a course teaching what I know best.  Although the majority of my knowledge is around Java development or running outdoors or on a treadmill, I thought it was worthwhile to pass on my knowledge of online saving.  However, the glory days of using Mastercard Overwhelming Offers (using a program to snipe the best deals) and before Woot was purchased by Amazon when you had a better chance to get the wonderful “BOC” (Bag of Crap for us Wooters) are now over, there are still plenty of ways to save on every purchase you make online without paying full retail price.

What you’ll learn in the course are my seven ways of really saving money on deals and you always want to follow the latest deals on Dealighted.com and checking back on Amazon daily for daily deals and lightening deals.  If you can’t find something you’ll be able to use, at least you could find a really good price on something that you can re-sell for a profit!

<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Course",
"name": "Couponing and Saving Everywhere!",
"description": "The most efficient way to save money shopping online or in-store.",
"provider": {
"@type": "Organization",
"name": "Smartware Design",
"sameAs": "http://www.smartwaredesign.com"
}
}
</script>

The post Couponing and Saving Everywhere! appeared first on Smartware Design.

]]>
1631
Electronic Rental Business https://smartwaredesign.com/electronic-rental-business/ Mon, 25 Jul 2016 18:45:21 +0000 http://smartwaredesign.com/?p=1622 The post Electronic Rental Business appeared first on Smartware Design.

]]>

So a clever idea was released on ProductHunt today called Grover which happens to be an electronic rental business.  I thought about this for a while and said that’s a very clever idea if you’ve ever wanted to try out an Apple Watch, Amazon Echo, or any other niche electronic device that you would like to “try before you buy” to see if it fits in your everyday life or just to see i you like the device.

Today Grover is available only in New York City so if you live outside of NYC, you’ll have to wait until they support other cities for shipment.  There are other electronic and appliance rental companies out there, such as Aaron’s, RentACenter, and FlexShopper, but this is one of the only companies that I’ve personally seen allowing you to rent small electronic gadgets for a nominal monthly fee.

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- Smartware Design Sidebar --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6622580424367066" data-ad-slot="1309913071" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>

You can always get the newest Apple Watch 2 when it’s released later this year for $24.90 for a month (if it remains at its current price) until the price drops for Black Friday.  Of course, Grover isn’t necessarily a long term solution but a means to put the most current electronics in your hands before you fork out lots of money on something you may not actually need.

The post Electronic Rental Business appeared first on Smartware Design.

]]>
1622
iPad Users Should Prepare for Upgrade https://smartwaredesign.com/ipad-users-should-prepare-for-upgrade/ Tue, 14 Jun 2016 21:24:09 +0000 http://smartwaredesign.com/?p=1545 iPad 2, iPad 3, and iPad Mini first gen to lose support from Apple with latest release of iOS 10.

The post iPad Users Should Prepare for Upgrade appeared first on Smartware Design.

]]>
iPad Support Hits End of Life

After WWDC yesterday there was unfortunate news revealed for iPad 2, iPad 3, and iPad Mini first gen owners.  The new iOS 10 due out later this year will not be supported on the older iPads mentioned above.  This news will either be the death of the iPad or the resurgence of sales of the newer iPads (iPad Air, Air 2, Pro, Mini 2-4, etc.).  Apple will kill off support of around 42% of current iPad users if consumers choose not to upgrade (according to statistics provided by Localytics).

The iPad 2 has been very successful to consumers for a device that stopped being sold in early 2014 which happens to be second only to the iPad Air.  There are currently around 318 million iPads floating around the world and many of these will become obsolete with the release of the new iOS.

To Update or Not to Update

People should be prepared to update, give up, or move to a different tablet if they choose to keep up with the latest supported technology.  Consumer response will tell if Apple will strengthen their sales of tablets or move in an alternate direction for tablets with the new macOS announcement at WWDC.  It seems as though Apple is trying to play roulette with their users to see if their plans will stick with the general public.

[amazon text=Amazon&template=carousel&asin=B0013FRNKG, B006PLODWE, B0047DVWLW, B001I907I2, B00746LVOM, B00746MXF8, B00746W9F2]

The post iPad Users Should Prepare for Upgrade appeared first on Smartware Design.

]]>
1545
Google Calendar Combiner WordPress Plugin https://smartwaredesign.com/google-calendar-combiner-wordpress-plugin-by-smartware-design/ Fri, 01 Apr 2016 23:57:28 +0000 http://smartwaredesign.com/?p=1253 The post Google Calendar Combiner WordPress Plugin appeared first on Smartware Design.

]]>

Finally, a WordPress plugin that will combine Google Calendars!

WordPress just works and makes our lives simpler as web developers
DownloadContribute

Have you ever needed a WordPress plugin that will combine several Google calendars into one simple display on the screen?  Sure you can use the Google calendar embed option but you have to have an iframe on your website and you can’t put your own styles on it.  We needed our own calendar combiner to show several events on WhatsUpAugusta.com from lots of different providers and there just aren’t any plugins that simply combine Google calendars which means you wind up going the route of using the Google Calendar embed.  Not that there’s anything wrong with that!  It works, it does the job, and you get a nice calendar that you can embed on your site like this:

Ok, that’s awesome but what if I want to pull down the “Agenda” items (aka: events) and display them to my own liking on my site?  Well that’s a bit difficult.  Therefore I created a new plugin called SD Google Calendar Combiner which takes multiple public Google calendars (yes, I said PUBLIC) so make sure your calendars are public before trying to use the plugin and see a working list of combined calendars.  What this plugin allows me to do is to make a RESTful call to the new Wordpress 4.4 REST API with all events from multiple calendars on one feed that I can make with one simple GET call.  Pretty cool, huh?  Also, I created a shortcode, like [sd_show_calendar id=”171″] that can easily be inserted into any Wordpress post or page to display an agenda-like list of events in order by dates from the current date to the number of days in advance that you’re interested in viewing.

So I know it’s not the complete end-all be-all plugin for calendars but it solves a lot of issues in displaying combined calendars on your Wordpress blog or site.  If you would like to contribute to the plugin or have any questions about using it, I’ll be happy to answer them and would appreciate the help in maintaining the plugin.  Also, if you have any ideas for using the plugin that you’d like to share, please feel free to comment below or send me an email!  Thanks for reading this far and I hope you enjoyed the short and sweet video!

I’ve listed it as an open-source project on GitHub so please feel free to fork it and offer suggestions!

 

The post Google Calendar Combiner WordPress Plugin appeared first on Smartware Design.

]]>
1253
Parse is Shutting Down https://smartwaredesign.com/parse-is-shutting-down/ Fri, 29 Jan 2016 08:29:32 +0000 http://smartwaredesign.com/?p=1114 Unbelievably, the Parse data service is shutting down as of January 28, 2017, but they are providing a data migration tool to help out developers utilizing Parse to host their own Parse Server on Node.js or MongoDB.

The post Parse is Shutting Down appeared first on Smartware Design.

]]>
It is with the saddest of news to have to state that Parse is shutting down.  Service will continue through January 28, 2017, and the site is offering a database migration tool to MongoDB and the open-source Parse Server which you can host yourself but after 2017, the Parse service will no longer exist.  The cloud database helped lots of mobile developers out there while in existence!

Goodbye, Parse. :(

http://blog.parse.com/announcements/moving-on/

The post Parse is Shutting Down appeared first on Smartware Design.

]]>
1114