Author: Brian

Instagram and Twitter: The Final Break-Up

As of today, December 5th 2012, Instagram has dropped support for Twitter “cards.” This means that Instagram images will no longer be displayed properly on Twitter. This doesn’t eliminate the ability to post Instagram images to Twitter but makes visible the now weak compatibility between the two companies. Why has this happened?

Well, the feud between Instagram and Twitter all began when CEO of Instagram Kevin Systrom approached Facebook for an appraisal on the company after very recently receiving a valuation from Twitter which was said to be in the hundreds of millions of dollars. This offer from Twitter was given in April of 2012 after Instagram had reached tremendous growth since its initial launch in October of 2010. It was Jack Dorsey, a founder of Twitter, keen photographer and an original investor to Instagram, who made the offer. Dorsey’s intent was to have Instagram highly compatible with Twitter and the two companies work together.

Once Systrom went to Facebook looking for a better assessment to his company, the relationship between Instagram and Twitter quickly retrogressed. Facebook acquired Instagram for $715 million in cash and stock just 48 hours after the two companies met.

It was July 2012 when Twitter blocked Instagram from accessing data on friend connections on Twitter. This disabled automatic connections with Twitter friends through Instagram upon using the Instagram app. Twitter never publicly revealed the reason for their change in policy with Instagram, but it was quite obvious that Twitter felt betrayed. The previous ally is now a part of Twitter’s biggest competitor and the tensions continue to grow.

By September of that same year, Instagram had more mobile users than Twitter – a 7.3 million to 6.9 million victory and real slap in the face for Twitter. In October Instagram established a branch that would re-open Twitter access to its users. They were able to use their own user database to allow users to share Instagram images on Twitter.

This brings us to today’s latest quarrel between the two social media companies where Instagram dropped support for Twitter “cards” – which makes Instagram images easily viewable on Twitter. Despite the back and forth feud between the companies, CEO Systrom’s latest statement on the matter is “we have a really good relationship with Twitter.” On top of that, he has also announced that the dropping of Twitter cards was “deliberate and intended to drive users to the new web client for Instagram.” – Christopher Mims’ “Instagram to Twitter: We are never ever getting back together

So Systrom, is this just a love-hate game we are playing or are things officially over with Twitter?

Filed under: Articles, Featured

Facebook Messenger Android Update

Exactly 20 years ago from yesterday the first SMS (text message) was sent. The progress this area of technology has made is incredible. It’s a shame that so many tech giants want SMS to come to an end.

Facebook launched their latest attack against SMS this morning – Tuesday, December 4th 2012 – as the company made its messenger app available to Android users in five different countries. This does not require a Facebook account either! You can simply download the Messenger app and sign in with your phone number and you are ready to start messaging your contacts… who use this application.

Since the beginning of SMS (short messaging services) its uses have been controlled by cellular carriers like Verizon Wireless, AT&T, T-Mobile, etc. – until now. This is not the first attempt by a tech company to grab hold of this market, but none the less, a very important release for Android users. As social media companies have updated to the mobile world, a piece of the text messaging pie has since been in their cross-hairs. One can’t help but wonder how long it will be before Facebook develops their very own mobile devices… or have they already started?

This Facebook Messenger App is available for both Android and iOS phones.

This release brings about the possibility for international expansion. There’s no telling how far companies like Facebook will stretch their arms for a strong hold on the SMS market. Starting today the product update will initially reach five countries – India, Australia, Indonesia, Venezuela, and South Africa – all areas showing very expensive SMS rates. This gives Facebook a greater chance at securing the SMS market in these areas, whether they have an account or not. It’s no surprise the update is beginning with Android powered phones as it is the fastest spreading smartphone platform in the world and available on a wide price range of phones.

There isn’t any word on the update for iOS users as of yet. It is more than likely that Apple will not be very fond of Facebook stealing users from using their SMS and switching to the app driven messenger.

Current competitor levels are certainly considerable, with mobile messaging platforms such as WhatsApp – one that Facebook has personally expressed interest in. However there is no development in the movement on securing this as their own. Owners of Whatsapp Brian Acton and Jan Koum have made clear their intent to remain as an independent company.

For now, SMS is still in the lead with mobile messaging, but who knows how long it shall remain. It’s been a solid 20 years SMS, but your days may be numbered.

You can find out more about the Messenger App from Facebook here.

Filed under: Articles, Featured

Yahoo Faces $2.7 Billion Charges in Mexican Court

In response to Mexico’s $2.7 billion US dollars judgement, Yahoo states they “will vigorously pursue all appeals.” The non-final judgement made by a Mexico City court ruling is for a breach of contract with a former partner – Ideas Interactivas and a company Worldwide Directories. Josh Constine explains the intent of the book-form directory:

The idea was to augment its online local business search with printed book. Yahoo hoped that the two-pronged strategy would let it compete with Google. The books would include maps, business and landmark listings, and a catalogue of offers and discounts. There would be flexible, low-cost advertising options in Yahoo! Páginas Útiles, which was slated for an initial circulation of 800,000 free copies followed by a second print run of 1.7 million units according to a April 2003 article from Mexican website Noticias Dot.com.

 Yahoo says the case is “without merit.”

The ruling comes at a time when Yahoo! and its owners are looking to find a new direction for their business and its focus. Just another obstacle for CEO Marissa Mayer who just recently shut down services in Korea. The company has not been generating much traffic through Korean browsers as many users have turned to Google Inc.’s search engine and leading social media service providers such as Facebook Inc. and Twitter Inc.

You can read more on the details of the agreement announced in 2003 here.

The $2.7 billion ruling against Yahoo is pretty troubling considering Yahoo’s total revenue for last quarter was just $1.2 billion, and only $226 million the quarter prior. If Marissa Mayer’s appeals are unsuccessful this could prove to be a serious disaster for the CEO’s new direction. The case could take months or even years to be settled and the penalty their facing doesn’t hang well on the wall until then. As these charges will surely hurt their reputation, the intent of the former partners’ actions seems far more painful.

Josh’s article also explains the absurdity of the judgement in a relative matter:

The scope of the contracts between the companies are not yet clear. If the deals were for Mexico alone the penalty would amount to $30 per resident. A 2005 study said there were 4.29 million businesses in Mexico, which would mean Yahoo would pay $630 each. That seems somewhat absurd, so the total Yahoo has to pay could definitely get reduced if it doesn’t beat the charges all together during appeals.

Word from Yahoo on the details of the courts initial ruling and the agreement made with Worldwide Directories and Ideas Interactivas is still being anticipated.

Filed under: Articles, FeaturedTagged with: , , , , , , , , , ,

PHP Upload Multiple Files From URL

In a previous post I made I showed you how to upload a file from a URL using a PHP script. You can view this post here.

Now I will show you how to take this a step further and upload multiple files from multiple URLs or uploaded from the user’s computer.

Because we will have multiple files to upload we are going to want to make an array of these files that include all their attributes. Then we’ll process each file at a time and based on whether it is coming from a URL or the user’s hard drive, we will upload it accordingly.

Here is a preview of what our form will look like:

Here is our HTML for this form on index.php:

<form action="./index.php?do=upload" method="post" enctype="multipart/form-data" name="upload_files_form">
<div id="upload_files">
<div id="upload_file_1">
<div>
<button id="1_computer_button" name="upload_type_computer" type="button" onclick="hideElement('1_upload_url'); showElement('1_upload_computer')">Upload From Computer</button>
<button id="1_url_button" name="upload_type_url" type="button" onclick="hideElement('1_upload_computer'); showElement('1_upload_url')">Upload From URL</button>
</div>
<div>
<div id="1_upload_computer">
<input type="file" name="files_hdd[]" size="30" />
</div>
<div id="1_upload_url" style="display:none">
<input type="text" name="files_url[]" size="30" maxlength="100" value="http://" onfocus="if(this.value == 'http://') this.value = '';" id="1_input_url" />
</div>
</div>
</div>
<div id="upload_file_2">
<div>
<button id="2_computer_button" name="upload_type_computer" type="button" onclick="hideElement('2_upload_url'); showElement('2_upload_computer')">Upload From Computer</button>
<button id="2_url_button" name="upload_type_url" type="button" onclick="hideElement('2_upload_computer'); showElement('2_upload_url')">Upload From URL</button>
</div>
<div>
<div id="2_upload_computer">
<input type="file" name="files_hdd[]" size="30" />
</div>
<div id="2_upload_url" style="display:none">
<input type="text" name="files_url[]" size="30" maxlength="100" value="http://" onfocus="if(this.value == 'http://') this.value = '';" id="2_input_url" />
</div>
</div>
</div>
<div id="upload_file_3">
<div>
<button id="3_computer_button" name="upload_type_computer" type="button" onclick="hideElement('3_upload_url'); showElement('3_upload_computer')">Upload From Computer</button>
<button id="3_url_button" name="upload_type_url" type="button" onclick="hideElement('3_upload_computer'); showElement('3_upload_url')">Upload From URL</button>
</div>
<div>
<div id="3_upload_computer">
<input type="file" name="files_hdd[]" size="30" />
</div>
<div id="3_upload_url" style="display:none">
<input type="text" name="files_url[]" size="30" maxlength="100" value="http://" onfocus="if(this.value == 'http://') this.value = '';" id="3_input_url" />
</div>
</div>
</div>
</div>
<input type="submit" name="submit" value="Upload Files Now" onclick="showUploadDiv()" />  <input type="reset" name="reset" value="Reset Fields" />
<p> </p>
<div id="uploading" style="display:none">
</div>
</form>

This form contains three file inputs, either uploaded from the user’s computer, or given by a URL to a file. There are two buttons for each input which enable and disable the HDD or URL upload options. Now, I haven’t made the script to completely disable the URL input once a file has been selected from the user’s computer, so when the form is submitted it will check for uploaded files first over files being gathered from a URL. So you will want to include that on your main page so users know you can only upload three files at a time here, not six.

The form includes the animated loading gif feature which I posted here:
https://bgallz.dev/1140/how-to-make-animated-loading-gif/

You’ll notice on the submit button it activates the Javascript function “showUploadDiv().” This function changes the display style setting on the uploading div and then fills it with some text and the animated loading image.

I also have used some jQuery for the buttons to be used effectively:

<script src="jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
var clickedClass = "selected";
var buttons = "#upload_files button";
$(buttons).click(function() {
$(this).addClass(clickedClass).siblings().removeClass(clickedClass);
});
});
</script>

What this jQuery says is to add the class “selected” – from clickedClass – to the current button that is being clicked, and remove that class name from all other buttons within the current parent’s sibilings. Sounds a little complicated, but it’s very simple. The buttons are loaded from “#upload_files button” – so thats all the button elements within the div ID “upload_files.”

Now finally for the PHP of the script. On index.php we include the following in the header:

$valid_exts = array(
"gif","png","jpeg","jpg",
"image/gif","image/jpeg","image/png","image/jpg"
); // array of valid file extensions
$max_file_size = 32; // file size in kb
$upload_dir = "files/"; // directory to upload to with trailing slash

$upload_result = "";

if(isset($_GET['do']) && $_GET['do'] == "upload"){
$upload_result = run_upload_form();
}

So when the form is submitted – which is sent to “index.php?do=upload” – we run the function run_upload_form() and set the $upload_result to its returned value.

The key variables defined at the beginning of the script are there for you to modify as you need them. Of course you can modify the function itself to output different values as you need them to be. Currently the script checks against the following before uploading:

  • Valid extension type (image files by default)
  • File size limit (32KB by default)
  • Upload directory exists and is writable
  • URL validation for remote file size and type

To view the rest of the PHP as well as the Javascript and CSS styles you must download the script.

Download the script free here.

Use the demo here.

Multiple File Upload with HTML5

A new feature of HTML 5 is the ability to use a multiple file upload field. This is extremely simple with HTML 5. You basically create an input tag with type = file and the multiple attribute applied.

Here is an example:

<form action="upload.php" method="post" enctype="multipart/form-data">
Upload Files: <input type="file" name="upload_files[]" multiple="multiple" />
<input type="submit" value="Submit" name="submit" />
</form>

This will create the following:

This may look like a regular file upload input from standard HTML however when you click the “Browse…” button to look for files on your computer, you can select multiple files by Shift+Clicking on the desired files grouped together, or alternatively Ctrl+Clicking to select individual scattered files. This only works for files coming from your computer of course, so to upload multiple files from URL, you will need a script like the one above.

Here is a screenshot of the browse window. You can select multiple files as you can see they are highlighted, and listed in order in the “File name:” input.

Browse for multiple files using HTML 5
Browse for multiple files using HTML 5

For this multiple file upload, the PHP is much simpler. We simply run the upload like we would for the first example, only we don’t have to worry about URL files or checking an array of files. The HTML already loads the files into an array for us when PHP checks the $_FILES[‘upload_files’].

Here is how it looks…

<?php
// upload multiple files from HTML5 multiple files input

if(isset($_POST['submit']))
{
$valid_exts = array("image/gif","image/jpeg","image/png","image/jpg"); // image files
$max_size = 20480; // max size in kb (2kb default)
$directory = "./files/"; // upload directory

$upload_files = $_FILES['upload_files'];
$files_uploaded = array(); // successful uploads

if(is_array($upload_files))
{

foreach($upload_files as $file)
{

if(in_array($file["type"],$valid_exts))
{

if($file["size"] <= $max_size)
{

// file is valid type and size, let's upload
if(move_uploaded_file($file["tmp_name"],$directory . $file["name"]))
{

$files_uploaded[] = '<a href="'.$directory.$file["name"].'" target="_blank">'.$file["name"].'</a>';

}

} else { return "File size too large. Max file size is: ". ($max_size / 1024) . " KB."; }

} else { return "Only image file types may be uploaded."; }

}

return "". count($files_uploaded) ." files out of ". count($upload_files) ." total have successfully been uploaded. Here are the uploaded files: <br/><br/>" . print_r($files_uploaded) . "";

} else { return "Please a file or multiple files to upload."; }

}
?>

Enjoy!

Filed under: CSS, Featured, Javascript, PHP, Scripts, Web ProgrammingTagged with: , , , , , , , , , , , , ,

GoDaddy’s Unlimited Upload File Size – Know The Facts

Recently there has been an argument on the GoDaddy Support Forums over the ability to upload files with no file size limit. You can view this thread here.

The thread began by jchasko who questioned a file size limit after receiving failures  upon uploading files around 4 gigabytes (GB).  GoDaddy Forums staff member christianh replied by referencing to an article on the GoDaddy Support website.

The article states that the upload file size limit is 1GB per file or 1GB total for all the files being uploaded at one time. Also, the upload size is limited by the space available on the user’s account. The article seems to explain the uploading limits clearly.

In another thread, viewable here, a few members requested cancellation of their accounts and refunds for not being given SFTP – a secure connection to their online storage folders.

One member, web_site_creat says:

Add me to the list. A secure connection is a must, there’s no good excuse not to have sftp or some sort of encryption without using the https://onlinefilefolder.com interface.

GoDaddy Forum staff member JasonP replied in the original thread that the upload file size limit is in fact 2GB – NOT 1GB as previously stated in the article provided and by christianh. About a month later, the same staff member, JasonP, then replies and says the upload limit is 1GB. This is after he said 1GB was wrong and that it should be a 2GB file size limit for uploads.

As if this was not enough confusion for the web hosting users, there was further complications with the GoDaddy’s features list. The Online Storage webpage from www.godaddy.com shows plans, pricing, comparisons between the GoDaddy features and other competitors, and more. On this page it states that with the GoDaddy services you get “Unlimited Sharing – Both for the number of files AND the file size.”

GoDaddy.com's Storage Features Comparison List

Following this statement is subtext in fine print that states “Subject to plan storage space limits” – which is suppose to clarify that file size limits are different for different accounts and their specifications. The problem is that this doesn’t quite simplify things or shine any light on the true details. In fact, upload file size limits are capped at 2GB according to most users’ experience at GoDaddy. That’s not even what the article that many staff members referred to says, as it claims the upload limit to be only 1GB total.

User bbakersmith comments about the upload file size limit and its intangibility:

Are you planning to update the information on https://www.godaddy.com/email/online-storage.aspx? You’ve obviously been made aware of this issue and yet it still states that the file size limit is “Unlimited” and that one of the features you offer is “Unlimited Sharing°. Both for the number of files AND the file size.”

The “°Subject to plan storage space limits” fine print doesn’t seem adequate as this implies that the max file size is the same as the max storage size.

All in all, the lesson here is that you must always read the fine print before making your final decision and ultimately, your purchase. File size limits can be an important point that must be covered when dealing with web hosting or server space because you may need access to large files such as: videos, downloads, programs, executable files, etc.

Always consider every possible need for your web hosting or server. Many times, companies will require you to purchase Virtual Private Servers (VPS) to acquire unlimited file sizes for upload and other undesired restrictions.

Thanks for reading.

Filed under: ArticlesTagged with: , , , , , , , , , , , , , ,

United Nations Defends Internet to Russia’s Control

Within the current year, a couple of researchers from George Mason University, have established a website called WCITLeaks.org. This site allows users to upload and share documents that many government officials don’t want you to know about. One of which being the “Draft Compilation of Proposals with Options for Revisions to the ITRs.”

This ties into Russia’s desire to censor the internet. The United States plans to put this action to a halt at a United Nations conference later this year. Russian officials say they want the right to block access where it is used for “interfering in the internal affairs, or undermining the sovereignty, national security, territorial integrity and public safety of other states, or to divulge information of a sensitive nature”.

This may sound like a reasonable cause but the power that this would give the Russian government is far too fearful.

Members of the United Nations will gather this December to create a treaty for the World Conference on International Telecommunications. Russia has clearly shown the direction they want internet development to head in.

Russian President Vladimir Putin has strongly felt a need for centralized control over the internet.

President Vladimir Putin, on right, pushes for centralized control of the web.

U.S. delegation has promised to block any and all proposals from Russia, and other countries for that matter, that they find to threaten the current governing structure of the internet or give “tacit approval to online censorship.”

However, these assurances have yet to lessen tension for bureaucrats and those that hold the power of the internet so dearly. The possibility of damaging the world’s single most powerful engine for exchanging information, employment opportunities, and revolution across the globe has kept many on their toes.

“Examples of where the internet has acted as a voice for change include when social networks played a key role in the Arab Spring uprisings that last year upended regimes in Egypt and Tunisia.”

Besides these factors, the provision has also been found to be in violation of Article 19 of the U.N. Universal Declaration of Human Rights, which says “people shall have the right to access information through any media and regardless of frontiers.” Such an amended treaty would be sure to be followed by intense investigation by lawmakers wary of its promising dangers.

The U.N.’s International Telecommunications Union (ITU) works around the general agreement of the public. So its proposals can be stopped by a considerable amount of objections from various countries.

Protesters from the Anonymous India group iun Mimbai of hackers protest laws that give government control of internet usage.

More than 190 nations are expected to attend the Dubai conference and the U.S. delegation now seeks support for positions at the meetings in anticipation of the conference.
Filed under: ArticlesTagged with: , , , , , , , , ,

Facebook Faces Sponsored Stories Lawsuit for $10M

About a month ago, Facebook settled a lawsuit for “Sponsored Stories” and was forced to pay $10 million. This just became public from federal court in San Jose, California.

What is a Facebook Sponsored Story?

Sponsored Stores are advertisements including a friend’s name, profile picture, and text saying that they like a certain product, service, or person that is being advertised. These “stories” are valued at 3 times the amount of a regular advertisement and act as a recommendation. However, that friend’s “like” is made public without their awareness and they are not being compensated for their referral.

Five Facebook members filed against the social network for this as it is in violation of California law. This could have included a substantially larger number had the word gotten out and Facebook would be facing billions in penalties.

U.S. District Judge Lucy Koh found the Sponsored Stories to cause “economic injury” be involving people’s names, pictures, and interests. Therefore, a cy-pres settlement was issued, meaning Facebook’s $10 million will be sent to charity.

“California has long recognized a right to protect one’s name and likeness against appropriation by others for their advantage,” Koh wrote.

Yet another privacy lawsuit for Facebook has reached their door. Not only in court, but outside Facebook has been spending large amounts on various causes. From their expansion of their headquarters and $1 billion Instagram purchase, to possible future purchases – Facebook is showing just how financially powerful it is.

Filed under: ArticlesTagged with: , , , , , , ,

Deathwing

Deathwing Banner
Deathwing

Another quick banner made with a Deathwing render (found here). Just did some smudging and brushing basically as I worked the render into a background color. I then used a brush to paint a mountain like background behind the render. Let me know what you think!

Filed under: GraphicsTagged with: , , ,

Installing Your New Internal Hard Drive

So you just bought a hard drive and want to start filling that sucker with some files or whatever you want to put on it… Whether you don’t know how to install it into your computer’s case or just on the BIOS you have come to the right place. Here I am going to show you step by step how to install the new piece of hardware into your case as well as how to be sure it is populated properly on your PC.

Hard Drive (Hardware) Installation

Step 1) Open your computer’s case.

Your case should support at least 2 hard drives if not more. The hard drive bays are located (usually) below the bays for the CD/DVD drives. Most modern cases have locking mechanisms for the drives as you can see in Figure 1 next the the numbers for each bay.

7-Pin SATA Cable
Figure 2 (7-Pin SATA Cable)

Now if this is your first hard drive you are installing you are going to want to choose a bay that works well with your power supply connection’s cord length. So don’t choose the bottom bay with a cord that runs to hard drives as well as CD/DVD drives because you probably will have trouble reaching them up at the top of your case. The amount of space and cord length which you are given is always important to consider when installing ANY new hardware in your system.

In Figure 1 below you can see I labeled the following important items:

a) SATA Cables – Also called “Serial ATA” cables as seen in Figure 2, these connect from your motherboard to CD/DVD/Bluray Drives and SATA hard drive disks.
b) CD/DVD Drives – Usually located on top of the hard drive bays and are larger in size.
c) Hard Drive Bays – This is where you are installing your new hard drive. You will most likely need to remove a locking mechanism from the bay before you can insert a new drive. Be sure to pick an easily accessible bay with adequate cord length to the mother board and PSU.

Figure 3 (4-Pin Molex to SATA)

d) Molex Cables – These are usually white or clear 4-pin connectors that have 4 male outputs to connect to devices, see Figure 3. Most modern power supplies will have these molex connectors attached with adapters to connect to SATA devices like the hard drive. See Figure 3 for the connector to your new hard drive.

Not all hard drives come with SATA cables to connect to the motherboard. Make sure you have one before hand or that it comes with one!

Computer Hardware Layout
Figure 1 (Computer Hardware Layout)

Step 2) Place hard drive in case.

Once you know where you are installing the hard drive slide it into the bay and be sure to use the locks on the side of the bays that come with the case. This will keep the hard drive from sliding back and forth.

Plug in the SATA cable shown in the Figure 2 in to your motherboard and then into the back end of the hard drive. Then plug in the power cable to your hard drive and be sure it is connected properly to the power supply.

Tuck away any loose cables to be sure they are as far away from any fans as possible.

Once you have your hard drive installed in the case it should resemble something like Figure 5.

Figure 5 (Hard Drive in Case)

 Step 3) Install the device’s drivers.

Great! You have the hard part over with. Now that the drive is securely installed in the case we can close the case back up, power on, and start uploading.

When you boot up your computer after the hard drive is installed you should automatically get a notification from Windows detecting a new device. This will install the device’s drivers onto Windows. If Windows doesn’t tell you it has found a new device, go to:

Start > Right-click Computer > Properties > Click Device Manager

Right click on “Disk drives” and go to “Scan for hardware changes.” This should find your newly connected hard drive and run driver install/update.

If this fails to detect the hard drive, you may need to recheck your installation in the case. Make sure all cables are plugged in securely, or try another SATA port on the motherboard.

 Step 4) Add drive to Disk Management.

Last thing before you can start utilizing your hard drive. Before the hard drive is recognized as a partition part of your computer’s disk management you must do the following:

Start > Right-click Computer > Manage

On the left go to Storage > Disk Management and in the main window you should see your new drive in the list of volumes. Right click on the drive and go to “Format…” From here it will format the drive for your operating system and you can name it, etc. It will then populate the drive’s details, and whalla!

Enjoy using your new hard drive!

Filed under: Articles, Featured, TutorialsTagged with: , , , , , , , , , , ,