Friday, January 18, 2013

InK – An Impressive Front-end Development Kit

A very exciting framework for designing/developing good looking + cross-browser websites called InK. It is created by the Sapo.pt team (a popular website in Portugal) and consists of lots of cool stuff from a fluid grid to styles for handling typography, menus, pagination, tables, forms, notifications, buttons and more. InK doesn’t rely on any popular ...read more


The post InK – An Impressive Front-end Development Kit appeared first on Way2Webmaster.






via Way2webmaster Blog

Monday, January 14, 2013

Tutorial: Instagram on iOS: the complete guide

The phrase ‘don’t knock it till you’ve tried it’ is usually wheeled out when trying to convince someone to try an unusual foodstuff or, in what is usually a completely different set of circumstances, an exotic sexual practice. It applies just as well, however, to Instagram, the photo-editor-cum-social-network recently bought by Facebook for about a ...read more


The post Tutorial: Instagram on iOS: the complete guide appeared first on Way2Webmaster.






via Way2webmaster Blog

Sunday, January 13, 2013

Developing a private cloud

Cloud computing continues to transform the enterprises it touches. Moving business processes, data storage, and embracing more visualization are all key components of today’s cloud environments. The outsourced foundation of the cloud is driving this sector, but businesses are increasingly looking at how they can take more control of the platforms they already own. Enter ...read more


The post Developing a private cloud appeared first on Way2Webmaster.






via Way2webmaster Blog

Saturday, January 12, 2013

A Slick Admin Interface For Django Projects

A Slick Admin Interface For Django Projects


Grappelli is a free and open source project, built with Django, that can empower any website with an admin interface.

It is a skin to the Django’s default admin interface which has a plain, grid-based and good-looking design (uses Compass for styling) and offers some extras.

Grappelli Django Admin

There is a built-in WYSIWYG editor (TinyMCE), search with auto-completes, several jQuery plugins and sorting data with drag ‘n’ drops.

Also, its dashboard can be customized with ease and works well with the django-filebrowser extension.

The most new feature on Facebook in 2013

The most new feature on Facebook  in 2013

Facebook is at it again, the are introducing a new system. Facebook is testing out yet another new feature, and this time it’s almost unbelievable . Facebook is testing a service that charges you $100 to send a message to a strange !!! Yap. So, instead of having the message land in their “Other” inbox, it will go straight to their main inbox.

Some of the Facebook users had reported a  interesting popup when they attempt to send messages to people outside of their friend network. The popup notes that the message will be filtered to the “Other” inbox of the recipient, but offers to deliver it to the top of the recipient’s inbox for a staggering $100.

Now Facebook first began experimenting with this kind of option last month when it first introduced filters, including the “Other” folder. In initial tests, the fee was just $1. However, according to Mashable, Facebook confirms the $100 option is part of that test, and they say they’re testing “some extreme price points to see what works to filter spam.”

Mashable reported seeing $100 as the fee to send a message to Facebook founder and CEO Mark Zuckerberg, but sending messages to other strangers result in the same price, which means that the fee isn’t based on the popularity of the user. However, unless you’re part of the test group, you still can’t send a message to strangers, and there’s no word on when or if the feature will be rolling out. It’s also entirely possible that if the service eventually launched, the fee might change.


Facebook Timeline



  • Mark Zuckerberg's sister becomes victim of Facebook privacy issues

  • Facebook Poke and Snapchat bug saves 'deleted' videos

  • Facebook: Poke fix for sneaky video saving coming 'shortly'

  • Facebook tops list of most-viewed Wikipedia articles in 2012

  • Facebook works to fix confirmed privacy flaw with New Year's message service

  • Facebook adds free Voice Messaging and limited VoIP to Messenger app

  • Facebook says 'Come and see what we're building' on January 15 event

  • Facebook shares exceed $30 for the first time since July




 

Tech News - Skype founder browsing the world for next hot tech idea


Tech News - Skype founder browsing the world for next hot tech idea !!!


Niklas Zennstrom, co-founder of internet phone service Skype, believes the next hot tech business will just as likely spring from Istanbul or Sao Paolo as from Silicon Valley or the coolest districts of London.

And he is prepared to fly around the world to find it.


"Talent can pop up anywhere in the world, it's not just one city block," the Swedish entrepreneur and venture capitalist said at the headquarters of his Atomico fund, based on upmarket New Bond Street in central London.


Zennstrom, who retains faint traces of a Swedish accent despite his years of globetrotting, is looking for start-ups ready to shift up a gear into new markets and has the experience, gained from growing Skype into a service used by millions around the world, to help them.


Skype was sold to eBay in 2005 for roughly $3 billion, before being bought back by a consortium including Zennstrom in 2009 and then two years later sold on to Microsoft for $8.5 billion, leaving him a multi-millionaire.


"If you have a product that works it's important to scale (up) the business as quickly as possible," said Zennstrom, named by Time Magazine in 2006 as one of its 100 most influential people. "As entrepreneurs, usually you may not have that experience; how does Asia work? Europe? Latin America?"


Atomico, founded by Zennstrom in 2006, has invested in companies in northern Europe including Finland-based Rovio, developer of Angry Birds, and Hailo, a London-based startup that has developed an app that connects passengers with taxi drivers and has raised $20 million so far.


It also led a $105 million funding round for US online retailer Fab in July.


Future portfolio


The investment fund, whose London office reception is decked out with simple designer furniture and modern art pieces, has opened offices in Turkey and Brazil, emerging markets with growing middle classes eager to shop online and buy internet services.


Zennstrom wants to make these markets a large part of Atomico's portfolio in future.


The firm in 2011 backed Brazilian online retailers such as car parts supplier Connect Parts and announced a $16 million investment in a Russian online travel agency in October.


Atomico is not necessarily looking for the latest gizmo or internet trend, but savvy businesses with talented leaders who can take advantage of growth in nascent sectors such as e-commerce.


And Zennstrom, softly spoken and wearing an open-necked shirt and dark jacket, believes emerging market growth is fuelling a new breed of optimism and ambition.


"It's a much more of an entrepreneurial spirit (in Turkey and Brazil) compared to southern European where it's a depressed mindset," he said.


Zennstrom earned his stripes in the tech world after helping launch file-sharing service Kazaa more than a decade ago, which failed as a business but paved the way for Skype.


He said getting investment today was far easier than when he was starting Skype. It took him a year to secure funding, whereas today the most talented entrepreneurs with the best ideas could take their pick of investors.


There is also increasing recognition that entrepreneurs might want to realise some of the value of their creations, something he said was lacking when Skype became successful.


"There was really no IPO market and it was not really accepted for founders to sell some of their shares to get some money off the table," he said, adding that before Skype was sold to eBay, he could not even secure a mortgage on an apartment.


"I think we made the right decision for the time in terms of selling (Skype)," he said. "Today as an entrepreneur you have more options."

[stextbox id="info"]
via Tech News - Editor's Pick | TechGig.com http://www.techgig.com/tech-news/editors-pick/Skype-founder-browsing-the-world-for-next-hot-tech-idea-16678[/stextbox]

Friday, January 11, 2013

31 useful jQuery plugins for web designers

This is a collection of  31 useful jQuery plugins and scripts for web designers. This set contains jQuery sliders, image galleries, slideshow plugins, jQuery navigation menus, interactive maps, image rotators, plugins for tabs, accordion menus, user interface elements, web contact forms, modal windows, tooltips and many other fresh jQuery solutions collected in one place.

This jQuery plugins will help you to create your unique web designs.

1. jQuery “Shutter Effect Portfolio” Plugin


Fresh jQuery plugin for photo portfolio design. This plugin will show a set of featured photos or images with a camera shutter effect.

jQuery "Shutter Effect Portfolio" plugin

Demo Download

2. CSS & jQuery Clickable Map of Europe


The clickable map of Europe based on jQuery and CSS. As an example, it can be used as navigation on travel related websites. Works with all modern browsers + mobile browsers (Safari for iPhone or iPad).

CSS jQuery Clickable Map of Europe

Demo & Download

3. jQuery “Sweet Menu” Plugin


jQuery based navigation menu with nice animated slide-out effect.

jQuery Sweet Menu Plugin

Demo & Download

4. jQuery UI Forms


Few templates of user interface forms and elements.

jQuery UI Forms

Demo Download

5. jQuery “Smooth Div Scroll” Plugin


jQuery plugin for the horizontal scrolling of the content in a certain area. It starts scrolling when you mouse-over the left or right edge of the gallery.

jQuery Smooth Div Scroll Plugin

Demo Download

6. jQuery “Expanding Image Menu” Plugin


This plugin will create an expanding image menu with jQuery, something similar to accordion menu. The menu is made from images and the content area will slide out when you click on them.

jQuery Expanding Image Menu Plugin

Demo Download

7. New Version of jQuery “Supersized 3.1″ Plugin


This is new version of jQuery “Supersized” plugin by BuildInternet. This plugin creates a fullscreen slideshow.
Features: integrated with Flickr, can be controlled with keyboard, cycles images via slideshow with different transitions and preloading, automatic resizing of images to create a fullscreen slideshow.

jQuery Supersized Plugin

Demo Download

8. jQuery “Mosaic” Plugin


This jQuery plagin will automatically generate sliding boxes and captions with slide & fade animations for your images.

jQuery Mosaic Plugin

Demo Download

9. jQuery “Tabbed Content Rotator” Plugin


This plugin will create a tabbed content rotator. You can use this plugin to show your customers some of your products or services.

jQuery Tabbed Content Rotator Plugin

Demo Download

10. jQuery UI Tabs with Next/Previous Buttons


This plugin will help you to create tabbed areas with some content and next / previous buttons, which will improve the navigation.

jQuery UI Tabs with Next Previous Buttons

Demo & Download

11. “TinyBox2″ JavaScript Modal Windows


“TinyBox2″ JavaScript Modal Windows  plugin.

TinyBox2 JavaScript Modal Windows

Demo Download

12. Light JavaScript CSS Slider “TinySlider 2″


Full-featured, configurable, CSS customizable and standalone JavaScript slider.

Light JavaScript CSS Slider TinySlider 2

Demo Download

13. Fading JavaScript Elements


This JavaScript will create fading in and out effect for your text and elements.

Fading JavaScript Elements

Demo Download

14. JavaScript WYSIWYG Editor “TinyEditor”


This is a simple lightweight and standalone JavaScript based WYSIWYG editor. This editor is easy to customize through CSS and the multitude of parameters.

JavaScript WYSIWYG Editor TinyEditor

Demo Download

15. JavaScript Scrollable Div “TinyScroller”


This is a basic lightweight scrollable div script. The styling scroller is customizable through the CSS.

JavaScript Scrollable Div TinyScroller

Demo Download

16. JavaScript Table Sorter “TinyTable V3″


TinyTable is a lightweight JavaScript based table sorting script with search, column averages and totals, record numbering, a view all function, and a reset function. Some more features: alternate row highlighting, header class toggling, auto data type recognition, and selective column sorting. This plugin is useful for those who like to structure the information on the website in the form of tables.

JavaScript Table Sorter TinyTable V3

Demo Download

17. JavaScript Accordion “TinyAccordion” Plugin


Lightweight accordion script with multi-level support.

JavaScript Accordion TinyAccordion Plugin

Demo Download

18. jQuery “MobilyMap” Plugin


This jQuery plugin creates an interactive Google Maps-like draggable map of Europe with the use of JavaScript. Some of the features: you can create markers and add html content which will be displayed when markers are clicked.

jQuery MobilyMap Plugin

Demo Download

19. jQuery “Galleria 1.2.2″ Plugin


New jQuery based image gallery framework with for your projects with different transition effects, cropping methods and interaction details.

jQuery Galleria Plugin

Download

20. jQuery Plugin “liteAccordion”


liteAccordion – a horizontal accordion plugin for jQuery. This accordion can include any type of content.

jQuery Plugin liteAccordion

Demo Download

21. jQuery Slider “jShowOff”


jQuery slider plugin for content rotation with 3 variants of using: without navigation (with automatic slideshow), with button navigation and with thumbnail navigation. This kind of slider module is often used to promote pages, sections, or features on a website. Great for improving your web design.

jQuery Slider jShowOff

Demo & Download

22. jQuery Image Zoom Effect “Zoomy” Plugin


This plugin creates the “zoom” effect of magnifying glass to enlarge the part of the image.

jQuery Zoomy Plugin

Demo Download

23. jQuery Form Framework “jFormer”


Form framework written on top of jQuery for creating different type of contact forms: feedback, comments, login forms, registration forms with information input validation.

jQuery-Form-Framework-jFormer

Demo Download

24. jQuery Form Cloning “SheepIt” Plugin


SheepIt is a jQuery plugin that allows you to clone form elements dynamically.

jQuery-Form-Cloning-SheepIt-Plugin

Demo Download

25. jQuery Modal Plugin “Reveal”


Cross-browser compatible modal window lightbox clone. To see the demo – click on “Fire A Reveal Modal” on the demo page.

jQuery Modal Plugin Reveal

Demo Download

26. jQuery Pop-Up Messages Plugin “ToastMessage”


This is JQuery based plugin which provides Android-like notification messages.

jQuery Pop-Up Messages Plugin ToastMessage

Demo Download

27. jQuery Memory Game


This is a simple traditional memory game based on JQuery where you need to find two similar cards.

jQuery Memory Game

Demo & Download

28. CSS & jQuery Check Boxes


This plugin will help you to create nice looking checkboxes for your web forms, which looks somewhat similar to Apple-style switches from iPhone.

CSS jQuery Check Boxes

Demo Download

29. jQuery “NivoSlider” Image Slider


jQuery CSS image slider with using of a NivoSlider plug-in.

jQuery NivoSlider Image Slider
Download

30. jQuery & CSS Hover Zoom Effect Plugin


This plugin creates “Hover Zoom” effect for your image thumbnails with CSS and jQuery. This effect reverse zooms an image while fading in a label on top of it when the mouse hovers over it.

jQuery CSS Hover Zoom Effect Plugin

Demo Download

31. jQuery Drop Down Navigation Menu


Nice looking jQuery based drop-down horizontal (default) or vertical navigation menu.

jQuery Drop Down Navigation Menu

Demo Download

 

Create Custom Icon (Font) Packs From Multiple Sets

Create Custom Icon (Font) Packs From Multiple Sets

IcoMoon is a free service that enables us to create custom icon sets and icon fonts using different sets.

The application includes most of the popular and free icon sets (that can be selected from its library), we can choose which ones to use and select any number of items from them.

Icomoon

Once the selection is over, it offers 2 types of downloads: image and font.

The image version comes as PNG with optional sprite image + the CSS rules and the font version in multiple formats (EOT, SVG, WOFF, TTF).Also, besides the icons of other designers, IcoMoon has its own and free icon set which is pretty huge and slick.

[stextbox id="info"]

Visit IcoMoon

 

[/stextbox]

 

Internet use critical for women in India says Intel

Internet use critical for women in India says Intel


More needs to be done to boost women's and girl's lagging online access, tech giant Intel said in a report to be released later that calls for doubling the number of female internet users in developing nations over the next three years.


The report, funded by the global chipmaker with input from the United Nations and US State Department, among others, points to stubborn gaps in women's access to the internet in Africa, the Middle East and other developing parts of the world.


It found women are nearly 25 per cent less likely than men to be online in those regions, and called on policymakers and technology companies to take steps such as making it easier to access the internet on mobile phones, allowing free mobile content and boosting digital literacy to shrink the gap.


Surveys and interviews with more than 2,200 women and girls focused on four developing countries - Egypt, India, Mexico and Uganda - found that internet access was critical for women to earn more money or search and apply for jobs.


"With the powerful capabilities the internet enables - to connect, to learn, to engage, to increase productivity, and to find opportunities - women's lack of access is giving rise to a second digital divide, one where women and girls risk being left further and further behind," said Melanne Verveer, ambassador for global women's issues at the State Department.


Although the United States and other developed nations see fairly high levels of overall internet access and usage among women, some gaps remain, mostly in rural areas or among the poor.


In the developing world, however, the gap is far wider. Just 11 per cent of men and women in India have Internet access compared to 79 per cent in the United States, said Shelly Esque, a vice president for the chipmaker and president of its educational foundation.


Thursday's report shows 600 million women in developing nations, or 21 per cent, are online now, and another 450 million are expected to gain internet access by 2016. But taking extra steps could help bring an additional 150 million women and girls online over the next three years, the report said.




Good for global economy

Esque pointed to the role technology played in the Arab Spring revolts, particularly in Egypt.


"Information was such a powerful tool," she told Reuters. "What would be the potential for a country like that if they were able to have more equal access? We need to work on that."


A UN Human Rights Council resolution last year recognized the power of the internet to spur progress and encouraged countries to promote and facilitate access to it.


Still, many women surveyed by Intel cited barriers ranging from the belief that internet use was not "appropriate" for them to the cost of getting connected. Illiteracy and lack of awareness about potential uses also were factors.


Increased access would not only improve women's lives but also boost the global economy, according to Intel's report.


It would add between $50 billion and $70 billion in potential new market opportunities, the report said. It could also bring another $13 billion to $18 billion each year globally to the market value of goods and services - a measure known as gross domestic product or GDP.


The findings by the Santa Clara, California-based company aim to encourage other technology companies, policymakers and nongovernmental groups to take steps to get more women and girls online, it said.


"Without access to the internet, women lack access to its tools, resources and opportunities," the report said. "This gap disadvantages not just women, but their families, communities and countries."



[stextbox id="info"]via Tech News - Editor's Pick | TechGig.com http://www.techgig.com/tech-news/editors-pick/Intel-Internet-use-critical-for-women-in-India-16673[/stextbox]

Google‘s Eric Schmidt urges for internet freedom in North Korea

Google chairman Eric Schmidt told North Korea it will not develop unless it embraces internet freedom, he said as he returned from a controversial visit to the communist state with US politician Bill Richardson.


Richardson, the former US ambassador to the United Nations who led the trip, said he called on Pyongyang to adopt a moratorium on ballistic missiles and nuclear tests following the its widely criticised rocket launch last month.


Speaking at Beijing airport, he said efforts to "strongly urge" North Korea, a highly secretive and tightly-controlled country, to increase the use of the Internet were "the main success of the visit".


Schmidt said he told North Korean officials they should open up the country's Internet "or they will remain behind".


"As the world becomes increasingly connected, their decision to be virtually isolated is very much going to affect their physical world, their economic growth and so forth, and it will make it harder for them to catch up economically," he said.


"Once the Internet starts, citizens in a country can certainly build on top of it. The government has to do something. It has to make it possible for people to use the Internet which the government in North Korea has not yet done."


Richardson, also a former governor of New Mexico, said: "We strongly urged the North Koreans to proceed with a moratorium on ballistic missiles and possible nuclear test."


The delegation did not meet North Korean leader Kim Jong-Un but had a "series of very frank discussions" with officials on "the current level of tension in the peninsula", he said, adding: "The North Koreans need to temper their nuclear development."


North Korea angered the US and others in December by launching a long-range rocket which it claimed was part of a program to put a scientific satellite into orbit. Washington and other nations called it a disguised ballistic missile test.


The US State Department has voiced concern about Richardson's trip, saying it was ill-timed in the wake of the rocket launch.


The high-profile delegation visited North Korea's largest library and paid respects to its late leaders, according to the official Korean Central News Agency (KCNA).


KCNA, which described the visitors as a Google delegation, said they went to reading and lecture rooms at the Grand People's Study House and a mausoleum housing the bodies of late leaders Kim Il-Sung and Kim Jong-Il.


"The members of the delegation paid high tribute to the statues of the peerlessly great men," it said.


Richardson has been to North Korea a number of times in the past two decades and has been involved in negotiating the release of US citizens held in the isolated country.


During the latest trip discussions took place on Kenneth Bae, an American of Korean descent who is being held in North Korea, and Richardson said he had been told he was "in good health" but did not meet him personally.


Bae was arrested in November after entering the country as a tourist, according to the North's official news agency, which said he had admitted committing a crime against the state.


North Korea has in the past agreed to hand over detainees to high-profile delegations led by the likes of former US president Bill Clinton.


Richardson last visited the North in 2010 when he met its chief nuclear negotiator to try and ease tensions after the country shelled a South Korean border island.

[stextbox id="info"]via Tech News - Editor's Pick | TechGig.com http://www.techgig.com/tech-news/editors-pick/Google-s-Eric-Schmidt-urges-for-internet-freedom-in-North-Korea-16671[/stextbox]

Cisco appoints Jeff White as president, India & SAARC


 Cisco has appointed Jeff White as president, sales and operations of India & SAARC countries. White will also take on the role of leader of a new India Board, which comprises senior executives from Cisco's headquarters as well as India and will chart Cisco's continued engagement with one of the largest emerging economies in the world.


White will report to Jaime Valles, president of Cisco in Asia Pacific, Japan and Greater China (APJC), and will work in partnership with Faiyaz Shahpurwala, senior vice president, Industry Solutions and India Site Leader.


White will also be working closely with Wim Elfrink, executive vice president, Industry Solutions and Chief Globalisation Officer, who is also Cisco's Executive Sponsor for India. Elfrink was one of the primary drivers for Cisco's investment in the Globalisation Centre East in 2007 and was based out of Bangalore until 2011.


Together, this senior leadership combine will continue Cisco's momentum in India and will seek to build a strong local identity for the company through: close engagement with the government; investments in local companies; an expanded range of products and solutions innovated in India, for India and for the world; nurturing talent and innovation in the 10,000 strong employee base; and advancements in service delivery and creation.


The key industry verticals that Cisco will focus on in India are BFSI, IT Services, public sector, telecom service provider and small and mid-sized businesses.


"I am extremely honoured to have been given the opportunity to lead one of the most important emerging markets for Cisco. We have demonstrated strong growth in the country so far and I am optimistic for the future as well. India has seen advancements in technology adoption across industry sectors. I aim to support this growth by strengthening local innovation, and continuing to forge strong relationships with our customers, partners and the government,'' said White.


White has been with Cisco since 1997 in a range of leadership positions across channels, IT, managed services, infrastructure and enterprise solutions. His most recent position was vice president for Cisco's service provider business in APJC based out of Singapore. He will relocate to Bangalore with his family.

[stextbox id="info" shadow="true"]

via Tech News - Editor's Pick | TechGig.com

http://www.techgig.com/tech-news/editors-pick/Cisco-appoints-Jeff-White-as-president-India-SAARC-16670

[/stextbox]

 

Convert webpage to ePub for Easy Reading



convert webpage to epub

dotEPUB


Internet webpages are great source of information, but it’s not always a great place to read that information. Some websites have plenty of advertisements and prevent visitors from having a nice reading experience. There are also the other factors, such as bad page layouts and poor combinations of fonts and background color. Now it now you can convert webpage to epub for your iPad, amazon kindle, android tablet or any other ebook reader, thanks to dotEPUB.

dotEPUB is a simple bookmarklet that pulls content from webpages and offers you a downloadable epub file, which you can read on your e-reader of choice or even on your computer. If you think reading articles in web browser isn’t exciting, then dotEPUBmay be the option for you. Epub files can be read on most e-readers, including your Android and iOS devices, so you know you will be able to read this file on pretty much any device. dotEPUB is simple to use, and useful for anyone who love to read articles and informations on websites.

Installing dotEPUB:


To get started, head over to dotEPUB.com and follow the simple steps to convert webpage to epub.  If you find the writeup a bit complicated and prefer a better source for installation, please check the dotEPUB tutorial on YouTube..



Note that dotEPUB does not work with Internet Explorer, so you might need to upgrade to Chrome or Firefox to use dotEPUB.

Other web tools like ReadableReadability and Instapaper are other options to convert websites to good looking, readable printed webpages.

Source: dotEPUB, lifehacker.com

An easy HTML5 and CSS3 Framework With All The Basics

An easy HTML5-CSS3 Framework With All The Basics

Workless is an easy  HTML5 and CSS3 framework for building cross-browsers websites with ease.

It is a project that started as a mashup of Bootstrap + HTML5 Boilerplate, evolved more and now has most of the frequently-used stuff.

The framework includes a grid system and styles for forms, tables, buttons, labels, notifications and typography.

Also, there is an icon font and few jQuery plugins (modals, tooltips, text formatting) integrated.

[stextbox id="download"]Workless[/stextbox]


...


Thursday, January 10, 2013

ParamQuery Javascript Dynamic Grids With jQuery

Dynamic Grids With jQuery


Create a dynamic grids for your php script in munites

When displaying the data inside a grid, Excel-like interfaces are probably the most standard way to do it.

ParamQuery, a jQuery plugin, enables us to present the data in a similar way with lots of options.

The records can be sorted or paginated, columns can be resized, hidden and it is possible to edit data inside cells with inline-editing.

ParamQuery jQuery Grid

There is support for infinite scrolling which is nice when loading lots of records.

It is capable of loading the data from any format like HTML, Array, XML, JSON, etc. and can be used with any scripting language.

Also, its look and feel can be changed with ease (theming support) and a powerful API exists for interacting further.

[stextbox id="info"]ParamQuery[/stextbox]

Word Twit Pro-Premium Twitter publishing plug-in

Word Twit Pro is a premium plug-in that automatically adds tweets from a WordPress site. It allows you to add tweet options for every post. You can also include multiple Twitter accounts and can control the account to be used for a specific post. Individual authors in a WordPress multi-author site can add their separate account. They can also set a specific Twitter account to be shared or private.

[stextbox id="download"]http://www.bravenewcode.com/[/stextbox]

The plug-in allows you to edit individual tweets and add additional hashtags. It allows you to set the timeframe and duration for publishing individual tweets. You also get access to a log of all tweets-published or scheduled.  You can also edit rejected tweets can re-schedule them.

Hashtags: You can add multiple hashtags, can edit or remove previously used hashtags and can choose from popular hashtags that have been previously used. The plug-in also supports a vast number of URL shortening services.

The Word Twit Pro plug-in requires WordPress 3.1and higher and is internationalized. It also comes with included support and allows auto upgrades from the wp-admin panel.

Pricing: The Word Twit Pro premium plug-in comes with the below pricing options

1) Pro Single: Comes with support and upgrade licenses for a single site-$39.

2) Pro 5 Pack: Comes with support and upgrades for a total of 5 sites-$79.

Pro Unlimited pack:  For unlimited as well as multi-user sites.  It’s priced at $139 and also includes a priority support.

New WP Donations Plugin – Create a Donation Widget with Donation Goal

The famous WordPress Donations Plugin which allows you to collect donation for a cause from your blog. The main difference with this donation plugin from our other PayPal donation plugin is that this one shows the visitor your Donation Goal and how much you have raised so far. It creates a nice pie chart to show the amount you have raised.

  • Create unlimited donation campaigns with goals

  • It integrates with PayPal IPN and updates a progress meter in real time

  • Accept donation for a cause via PayPal

  • Easy to use user interface for creating donations


Download the WP Donations Plugin


[stextbox id="download"]Download the WordPress Donations Plugin[/stextbox]

WP Donations Plugin Installation



  • Go to the Add New plugins screen in your WordPress admin area

  • Click the upload tab

  • Browse for the plugin file (donations-plugin.zip)

  • Click Install Now and then activate the plugin


WP Donations Plugin Usage


 Step 1: Go to the Settings menu of the donations plugin and configure your PayPal email address (where the donation money will go to )

Donations plugin settings screenshot

Step 2: Click on the “Add New” link to create a donation (see the following screenshot).

creating a new donation

Step 3: Take note of the shortcode that it generates when you create a new donation (see the following screenshot).

donation shortcode

Step 4: Place the shortcode on a post, page or sidebar widget to place the donation widget. The donation widget looks like the following:

donation widget sample

Your visitors can see what your donation goal is and how much you have raised so far. They can also click on the “Donate” button to make a donation.

[stextbox id="info"]

Check out WordPress plugins page for more cool WordPress plugins.

Source Tips and Tricks

[/stextbox]

 

Top 3 of the Best Free Cloud Storage Providers and Their Features

What is cloud storage?

Cloud storage is a storage space where you can store your important files in a secured platform.Whether you’ve got important documents, photos, music,codes or other files that need to be shared across more than one device, using a cloud storage option is often the easiest way to do it. More than that almost all cloud platforms have mobile apps to secure your mobile data also.

What is Sync Folder ?

Sync folder  is a synchronized folder on your local drive and files in it are automatically uploaded an synchronized accordingly, so you don't have to bother on uploading.

Can I share my Files ?

Yes almost all platforms provide public link to files and folder, where you can share your files to anyone you like in public or private methods.

My Top 3  Best Free Cloud Storage Providers


1. Dropbox

Because of itDropboxs simplicity and fantastic design, Dropbox  is the most popular cloud storage service used  by the users  today. With Dropbox, you can store your important files in sync folder, share files with the public with a link and you can invite your friends on Facebook to share Dropbox files. Even with a free account, you can expand your 2 GB of free storage up to 18 GB of free storage by referring new people to join Dropbox (500 MB per referral). If you’re already a paid member, you can still increase it up to 32 GB with no further payment by referring new users.

[stextbox id="info"]

Free storage: 2 GB (Get more space through referrals.)

Approximate annual price for 100 GB: $99 /yr and $9.99 /month

Approximate annual price for 200 GB: $199 /yr and $19.99 /month

Approximate annual price for 500 GB: $499 /yr and $49.99/month

Desktop apps: Windows, Mac, Linux

Mobile apps: Android, iOS, BlackBerry

Api apps: Yes

[/stextbox]

 

2. Sugarsync

Sugar Sync Because of the initial space of 5Gb plus by completing few intro jobs you can add free space to    2Gb.Other features are same as dropbox with sync and public folder.You can expand your 5 GB of free storage up to 32 GB of free storage by referring new people to join Sugarsync.

 

[stextbox id="info"]

Free storage: 5 GB (Get more space through referrals and completing task.)

Approximate annual price for 30 GB: $49.99 /yr and $4.99 /month

Approximate annual price for 60 GB: $99.99 /yr and $9.99 /month

Approximate annual price for 100 GB: $149.99 /yr and $14.99 /month

Approximate annual price for 250 GB: $249.99 /yr and $24.99 /month

Approximate annual price for 500 GB: $399 /yr and $39.99/month

Desktop apps: Windows, Mac, Linux (3r party Sweetsync)

Mobile apps: Android, iOS, BlackBerry,Windows Mobile

Api apps: Yes

[/stextbox]
3. Box
Box.com
Last but not least, there’s Box. Although quite intuitive to use, Box is preferred more by enterprise companies compared to individuals who want personal cloud storage options. While larger file storage space may cost more with other services, Box gives you the option to pay per user business account (from $15 /user/month I Tb storage). Box also comes with a lot of great features and tools for businesses, such as content management, online workspace for better collaboration, task management, a built-in editing system and so much more.

[stextbox id="info"]

Free storage: 5 GB

Approximate annual price for 25 GB: $120

Approximate annual price for 50 GB: $240

Max file size allowed: 25 MB

Desktop apps: Windows, Mac

Mobile apps: Android, iOS, BlackBerry

[/stextbox]

 

 

There  are  other free cloud provider like Apple icloud , Google Drive , Microsoft SkyDrive, IdriveSync who are also very good.

 

 

Php Dropbox API class and SDK

Php Dropbox API class and SDK to manage dropbox cloud.


In tutorial will  show you how to manage Dropbox Cloud.The Dropbox PHP API  will show how easy accessing files in a Dropbox account is. The client will perform some basic operations, such as authentication, listing your  files, uploading and downloading files to and from Dropbox.

 

[stextbox id="info"]

The Script is Written By - BenTheDesigner.

Script Source  - https://github.com/BenTheDesigner/Dropbox

[/stextbox]

To source is in GitHub - View Script Source

Requirements



  • PHP >= 5.3.1

  • PHP cURL (\Dropbox\OAuth\Consumer\Curl)

  • PHP Mcrypt (\Dropbox\OAuth\Storage\Encrypter)

  • PHP PDO (\Dropbox\OAuth\Storage\DB)


How to use the source

Documentation and Examples - View Tutorial and Samples

Hope You will like it.

I will also post a easy class of Dropbox Php Class in few days.

Wednesday, January 9, 2013

Sugarsync Php Api Class to Manage Cloud Storage [Sugarsync CDN]

Sugarsync Php  Api Class to Manage Cloud Storage


Hello in this tutorial I will show you how to use a sugarsync class and manage manage your cloud storage.The Sugarsync class was written by Daniel Huesken. This class has all the functionality of sugarsync.All you have to do is to do the followings step.

Go to SugarSync Developer and signup for Free.

Login to you developer consol, on dashboard you will get Create App Link. Provide the Required credentials. Now you can use the below class to you needs.

Remember to change the constants with the keys provided by sugarsync.

STEP1

const PRIVATE_ACCESS_KEY= '';//Your Access Key

const ACCESS_KEY_ID = ''; //Your Key Id

const APP_ID = ''; //Your App Id


STEP2
Sugarsync needs a refresh token to authenticated for first time for a user app. You must need the refresh token to get access to api. To generate refresh token use the following code;

require('sugarsync.class.php');
$refreshtoken = new SugarSync;
$refreshtoken = $do->get_Refresh_Token('your sugar login email','your sugarsync password');
///NOW STORE THIS TOKEN FOR FURTHER USE


NOW AFTER GETTING TOKEN OPEN THE CLASS USING THE TOKES



$sugarsync = new SugarSync($refreshtoken);

//GET USER INFO ARRAY
$user=$sugarsync->user();

//GET USAGE DETAILS
$sugarsyncfreespase=(float)$user->quota->limit-(float)$user->quota->usage;

//SET ROOT FOLDER
$root = $user->webArchive;


//Create folder
$sugarsync->mkdir('mywebdir',$root); //you may create dir or upload directly to a folder
//Change folder
$dirid=$sugarsync->chdir('mywebdir',$root); // If you want to set root folder use $sugarsync->chdir('',$root);

//Read dir and files
$folders= $sugarsync->getcontents('folder'); //get folder list
$files = $sugarsync->getcontents('files'); //get file list


//Download
$response=$sugarsync->get(urldecode("Get file ref by $files->ref"));
//Remember files are in list so get your own logic to get individual file
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: ".(string)$response->mediaType);
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".(string)$response->displayName.";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".(int)$response->size);
print($sugarsync->download(urldecode($_GET['file'])));
die();

//Upload
DO it yourself for request in comment



Class file


/**
* SugarSync class
*
* This source file can be used to communicate with SugarSync (http://sugarsync.com)
*
* The class is documented in the file itself. If you find any bugs help me out and report them.
* If you report a bug, make sure you give me enough information (include your code).
*
*
* License
* Copyright (c), Daniel Huesken. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
*
* This software is provided by the author "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
*
* @author Daniel Huesken <daniel@huesken-net.de>
* @version 2.0.0
*
* @copyright Copyright (c), Daniel Huesken. All rights reserved.
* @license GPL3 License
*/

class SugarSync {

// url for the sugarsync-api
const API_URL = 'https://api.sugarsync.com';

const PRIVATE_ACCESS_KEY= '';//Your Access Key

const ACCESS_KEY_ID = ''; //Your Key Id

const APP_ID = ''; //Your App Id

protected $folder = '';

protected $ProgressFunction = false;

protected $encoding = 'UTF-8';

protected $refresh_token = '';

protected $access_token = '';

public function __construct($refresh_token=null ) {
//auth xml
$this->encoding= mb_internal_encoding();
//get access token
if (isset($refresh_token) and !empty($refresh_token)) {
$this->refresh_token=$refresh_token;
$this->get_Access_Token();
}
}

/**
* Make the call
*
* @return string
*
* @param string $url The url to call.
* @param string $data
* @param string $method
* @throws SugarSyncException
* @internal param $string [optiona] $data File on put, xml on post.
* @internal param $string [optional] $method The method to use. Possible values are GET, POST, PUT, DELETE.
*/
private function doCall( $url, $data = '', $method = 'GET' ) {
// allowed methods
$allowedMethods = array( 'GET', 'POST', 'PUT', 'DELETE' );

// redefine
$url = (string) $url;
$method = (string) $method;

// validate method
if ( ! in_array( $method, $allowedMethods ) )
throw new SugarSyncException('Unknown method (' . $method . '). Allowed methods are: ' . implode( ', ', $allowedMethods ));

// check auth token
if ( empty($this->access_token) )
throw new SugarSyncException('Auth Token not set correctly!!');
else
$headers[] = 'Authorization: ' . $this->access_token;
$headers[] = 'Expect:';

// init
$curl = curl_init();
//set otions
curl_setopt( $curl, CURLOPT_URL, $url );
curl_setopt( $curl, CURLOPT_USERAGENT,'BackWPup');
if ( ini_get( 'open_basedir' ) == '' && ini_get( 'safe_mode' == 'Off' ) ) curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
curl_setopt( $curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, 2 );
curl_setopt( $curl, CURLOPT_SSLVERSION, 3 );
if ( is_file( dirname( __FILE__ ) . '/gd-class2-root.pem' ) )
curl_setopt( $curl, CURLOPT_CAINFO, dirname( __FILE__ ) . '/gd-class2-root.pem' );

if ( $method == 'POST' ) {
$headers[] = 'Content-Type: application/xml; charset=UTF-8';
curl_setopt( $curl, CURLOPT_POSTFIELDS, $data );
curl_setopt( $curl, CURLOPT_POST, true );
$headers[] = 'Content-Length: ' . strlen( $data );
} elseif ( $method == 'PUT' ) {
if ( is_file( $data ) && is_readable( $data ) ) {
$headers[] = 'Content-Length: ' . filesize( $data );
$datafilefd = fopen( $data, 'r' );
curl_setopt( $curl, CURLOPT_PUT, true );
curl_setopt( $curl, CURLOPT_INFILE, $datafilefd );
curl_setopt( $curl, CURLOPT_INFILESIZE, filesize( $data ) );
if (function_exists($this->ProgressFunction) and defined('CURLOPT_PROGRESSFUNCTION')) {
curl_setopt($curl, CURLOPT_NOPROGRESS, false);
curl_setopt($curl, CURLOPT_PROGRESSFUNCTION, $this->ProgressFunction);
curl_setopt($curl, CURLOPT_BUFFERSIZE, 1048576);
}
} else {
throw new SugarSyncException('Is not a readable file:' . $data);
}
} elseif ( $method == 'DELETE' ) {
curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, 'DELETE' );
} else {
curl_setopt( $curl, CURLOPT_POST, false );
}

// set headers
curl_setopt( $curl, CURLOPT_HTTPHEADER, $headers );
curl_setopt( $curl, CURLINFO_HEADER_OUT, true );
// execute
$response = curl_exec( $curl );
$curlgetinfo = curl_getinfo( $curl );

// fetch curl errors
if ( curl_errno( $curl ) != 0 )
throw new SugarSyncException('cUrl Error: ' . curl_error( $curl ));
curl_close( $curl );
if ( ! empty($datafilefd) && is_resource( $datafilefd ) )
fclose( $datafilefd );

if ( $curlgetinfo['http_code'] >= 200 && $curlgetinfo['http_code'] < 300 ) {
if ( false !== stripos( $curlgetinfo['content_type'], 'xml' ) && ! empty($response) )
return simplexml_load_string( $response );
else
return $response;
} else {
if ( $curlgetinfo['http_code'] == 401 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' Authorization required.');
elseif ( $curlgetinfo['http_code'] == 403 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' (Forbidden) Authentication failed.');
elseif ( $curlgetinfo['http_code'] == 404 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' Not found');
else
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code']);
}
}

private function _read_cb( $curl, $fd, $length ) {
$data = fread( $fd, $length );
$len = strlen( $data );
if ( isset($this->ProgressFunction) ) {
call_user_func( $this->ProgressFunction, $len );
}
return $data;
}

private function get_Access_Token() {
$auth = '';
$auth .= '';
$auth .= ''.self::ACCESS_KEY_ID.'';
$auth .= ' '.self::PRIVATE_ACCESS_KEY.'';
$auth .= '' . trim($this->refresh_token) . '';
$auth .= '';
// init
$curl = curl_init();
//set options
curl_setopt( $curl, CURLOPT_URL, self::API_URL . '/authorization' );
curl_setopt( $curl, CURLOPT_USERAGENT, 'BackWPup');
if ( ini_get( 'open_basedir' ) == '' && ini_get( 'safe_mode' == 'Off' ) ) curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
curl_setopt( $curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, 2 );
curl_setopt( $curl, CURLOPT_SSLVERSION, 3 );
if ( is_file( dirname( __FILE__ ) . '/gd-class2-root.pem' ) )
curl_setopt( $curl, CURLOPT_CAINFO, dirname( __FILE__ ) . '/gd-class2-root.pem' );
curl_setopt( $curl, CURLOPT_HEADER, true );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/xml; charset=UTF-8','Content-Length: '.strlen($auth) ) );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $auth );
curl_setopt( $curl, CURLOPT_POST, true );
// execute
$response = curl_exec( $curl );
$curlgetinfo = curl_getinfo( $curl );
// fetch curl errors
if ( curl_errno( $curl ) != 0 )
throw new SugarSyncException('cUrl Error: ' . curl_error( $curl ));

curl_close( $curl );

if ( $curlgetinfo['http_code'] >= 200 && $curlgetinfo['http_code'] < 300 ) {
if ( preg_match( '/Location:(.*?)\r/i', $response, $matches ) )
$this->access_token = trim($matches[1]);
return $this->access_token;
} else {
if ( $curlgetinfo['http_code'] == 401 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' Authorization required.');
elseif ( $curlgetinfo['http_code'] == 403 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' (Forbidden) Authentication failed.');
elseif ( $curlgetinfo['http_code'] == 404 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' Not found');
else
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code']);
}
}

public function get_Refresh_Token($email,$password) {
$auth = '';
$auth .= '';
$auth .= '' .mb_convert_encoding( $email,'UTF-8',$this->encoding ) . '';
$auth .= ' ' . mb_convert_encoding( $password,'UTF-8',$this->encoding ) . '';
$auth .= ''.self::APP_ID.'';
$auth .= ''.self::ACCESS_KEY_ID.'';
$auth .= ' '.self::PRIVATE_ACCESS_KEY.'';
$auth .= '';
// init
$curl = curl_init();
//set options
curl_setopt( $curl, CURLOPT_URL, self::API_URL . '/app-authorization' );
curl_setopt( $curl, CURLOPT_USERAGENT, 'BackWPup');
if ( ini_get( 'open_basedir' ) == '' && ini_get( 'safe_mode' == 'Off' ) ) curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
curl_setopt( $curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, 2 );
curl_setopt( $curl, CURLOPT_SSLVERSION, 3 );
if ( is_file( dirname( __FILE__ ) . '/gd-class2-root.pem' ) )
curl_setopt( $curl, CURLOPT_CAINFO, dirname( __FILE__ ) . '/gd-class2-root.pem' );
curl_setopt( $curl, CURLOPT_HEADER, true );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/xml; charset=UTF-8','Content-Length: '.strlen($auth) ) );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $auth );
curl_setopt( $curl, CURLOPT_POST, true );
// execute
$response = curl_exec( $curl );
$curlgetinfo = curl_getinfo( $curl );
// fetch curl errors
if ( curl_errno( $curl ) != 0 )
throw new SugarSyncException('cUrl Error: ' . curl_error( $curl ));

curl_close( $curl );

if ( $curlgetinfo['http_code'] >= 200 && $curlgetinfo['http_code'] < 300 ) {
if ( preg_match( '/Location:(.*?)\r/i', $response, $matches ) )
$this->refresh_token = trim($matches[1]);
return $this->refresh_token;
} else {
if ( $curlgetinfo['http_code'] == 401 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' Authorization required.');
elseif ( $curlgetinfo['http_code'] == 403 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' (Forbidden) Authentication failed.');
elseif ( $curlgetinfo['http_code'] == 404 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' Not found');
else
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code']);
}
}

public function create_account($email,$password) {
$auth = '';
$auth .= '';
$auth .= '' . mb_convert_encoding( $email,'UTF-8',$this->encoding ) . '';
$auth .= ' ' . mb_convert_encoding( $password,'UTF-8',$this->encoding ) . '';
$auth .= ''.self::ACCESS_KEY_ID.'';
$auth .= ' '.self::PRIVATE_ACCESS_KEY.'';
$auth .= '';
// init
$curl = curl_init();
//set options
curl_setopt( $curl, CURLOPT_URL, 'https://provisioning-api.sugarsync.com/users' );
curl_setopt( $curl, CURLOPT_USERAGENT, 'BackWPup');
if ( ini_get( 'open_basedir' ) == '' && ini_get( 'safe_mode' == 'Off' ) ) curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC );
curl_setopt( $curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1 );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, true );
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, 2 );
curl_setopt( $curl, CURLOPT_SSLVERSION, 3 );
if ( is_file( dirname( __FILE__ ) . '/gd-class2-root.pem' ) )
curl_setopt( $curl, CURLOPT_CAINFO, dirname( __FILE__ ) . '/gd-class2-root.pem' );
curl_setopt( $curl, CURLOPT_HEADER, true );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/xml; charset=UTF-8','Content-Length: '.strlen($auth) ) );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $auth );
curl_setopt( $curl, CURLOPT_POST, true );
// execute
$response = curl_exec( $curl );
$curlgetinfo = curl_getinfo( $curl );
// fetch curl errors
if ( curl_errno( $curl ) != 0 )
throw new SugarSyncException('cUrl Error: ' . curl_error( $curl ));

curl_close( $curl );

if ( $curlgetinfo['http_code'] == 201 ) {
throw new SugarSyncException('Account created.');
} else {
if ( $curlgetinfo['http_code'] == 400 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' '.substr($response,$curlgetinfo['header_size']));
elseif ( $curlgetinfo['http_code'] == 401 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' Developer credentials cannot be verified. Either a developer with the specified accessKeyId does not exist or the privateKeyID does not match an assigned accessKeyId.');
elseif ( $curlgetinfo['http_code'] == 403 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' '.substr($response,$curlgetinfo['header_size']));
elseif ( $curlgetinfo['http_code'] == 503 )
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code'] . ' '.substr($response,$curlgetinfo['header_size']));
else
throw new SugarSyncException('Http Error: ' . $curlgetinfo['http_code']);
}
}

public function chdir( $folder, $root = '' ) {
$folder = rtrim( $folder, '/' );
if ( substr( $folder, 0, 1 ) == '/' || empty($this->folder) ) {
if ( ! empty($root) )
$this->folder = $root;
else
throw new SugarSyncException('chdir: root folder must set!');
}
$folders = explode( '/', $folder );
foreach ( $folders as $dir ) {
if ( $dir == '..' ) {
$contents = $this->doCall( $this->folder );
if ( ! empty($contents->parent) )
$this->folder = $contents->parent;
} elseif ( ! empty($dir) && $dir != '.' ) {
$isdir = false;
$contents = $this->getcontents( 'folder' );
foreach ( $contents->collection as $collection ) {
if ( strtolower( $collection->displayName ) == strtolower( $dir ) ) {
$isdir = true;
$this->folder = $collection->ref;
break;
}
}
if ( ! $isdir )
throw new SugarSyncException('chdir: Folder ' . $folder . ' not exitst');
}
}
return $this->folder;
}

public function showdir( $folderid ) {
$showfolder = '';
while ( $folderid ) {
$contents = $this->doCall( $folderid );
$showfolder = $contents->displayName . '/' . $showfolder;
if ( isset($contents->parent) )
$folderid = $contents->parent;
else
break;
}
return $showfolder;
}

public function mkdir( $folder, $root = '' ) {
$savefolder = $this->folder;
$folder = rtrim( $folder, '/' );
if ( substr( $folder, 0, 1 ) == '/' || empty($this->folder) ) {
if ( ! empty($root) )
$this->folder = $root;
else
throw new SugarSyncException('mkdir: root folder must set!');
}
$folders = explode( '/', $folder );
foreach ( $folders as $dir ) {
if ( $dir == '..' ) {
$contents = $this->doCall( $this->folder );
if ( ! empty($contents->parent) )
$this->folder = $contents->parent;
} elseif ( ! empty($dir) && $dir != '.' ) {
$isdir = false;
$contents = $this->getcontents( 'folder' );
foreach ( $contents->collection as $collection ) {
if ( strtolower( $collection->displayName ) == strtolower( $dir ) ) {
$isdir = true;
$this->folder = $collection->ref;
break;
}
}
if ( ! $isdir ) {
$request = $this->doCall( $this->folder, '' . mb_convert_encoding( $dir,'UTF-8',$this->encoding ) . '', 'POST' );
$contents = $this->getcontents( 'folder' );
foreach ( $contents->collection as $collection ) {
if ( strtolower( $collection->displayName ) == strtolower( $dir ) ) {
$isdir = true;
$this->folder = $collection->ref;
break;
}
}
}
}
}
$this->folder = $savefolder;
return true;
}

public function user() {
return $this->doCall( self::API_URL . '/user' );
}

public function get( $url ) {
return $this->doCall( $url, '', 'GET' );
}

public function download( $url ) {
return $this->doCall( $url . '/data' );
}

public function delete( $url ) {
return $this->doCall( $url, '', 'DELETE' );
}

public function getcontents( $type = '', $start = 0, $max = 500 ) {
$parameters = '';
if ( strtolower( $type ) == 'folder' || strtolower( $type ) == 'file' )
$parameters .= 'type=' . strtolower( $type );
if ( ! empty($start) && is_integer( $start ) ) {
if ( ! empty($parameters) )
$parameters .= '&';
$parameters .= 'start=' . $start;

}
if ( ! empty($max) && is_integer( $max ) ) {
if ( ! empty($parameters) )
$parameters .= '&';
$parameters .= 'max=' . $max;
}

$request = $this->doCall( $this->folder . '/contents?' . $parameters );
return $request;
}

public function upload( $file, $name = '' ) {
if ( empty($name) )
$name = basename( $file );
$xmlrequest = '';
$xmlrequest .= '';
$xmlrequest .= '' . mb_convert_encoding( $name,'UTF-8',$this->encoding ) . '';
if ( ! is_file( $file ) ) {
$finfo = fopen( $file, 'r' );
$xmlrequest .= '' . mime_content_type( $finfo ) . '';
fclose( $finfo );
}
$xmlrequest .= '';
$request = $this->doCall( $this->folder, $xmlrequest, 'POST' );
$getfiles = $this->getcontents( 'file' );
foreach ( $getfiles->file as $getfile ) {
if ( $getfile->displayName == $name ) {
$this->doCall( $getfile->ref . '/data', $file, 'PUT' );
return $getfile->ref;
}
}
}

public function setProgressFunction($function) {
if (function_exists($function))
$this->ProgressFunction = $function;
else
$this->ProgressFunction = false;
}
}

/**
* SugarSync Exception class
*
* @author Daniel Huesken <daniel@huersken-net.de>
*/
class SugarSyncException extends Exception {
}

[stextbox id="download"]Download the class file[/stextbox]

Free Unlimited Cloud Storage !!!

Yes you heard it right.. Symform a cloud storage website provides you Unlimited of Free Cloud Storage (Cloud Storage refers to storing data on multiple virtual servers that are generally hosted by third parties.)

Symform has eliminated the need for clumsy, unreliable backup tapes and expensive traditional online systems. Symform offer a no-risk free account with up to Unlimited Cloud Storage  so you can see the value.

See How It Works

It’s Easy to Get the Free Cloud Storage & Backup you Need


You immediately receive 10 GB of free cloud backup just for downloading Symform.
Start contributing excess local drive space to the Symform Network, and you can
get as much cloud space as you need. You’ll receive cloud space equal to
1/2 the amount of local drive space
you contribute to the network.

What is local Drive Space Contribution ?

When you contribute to the network, you’re contributing some of your excess local drive space (from your computer, external hard drive or NAS device, server, etc.) to the Symform Cloud. So using your local space you get cloud space which are secure.

How Does Contribution Work?



  • During configuration, you select a destination–a device and folder–to serve as your contribution location for Symform.

  • You set your bandwidth and determine how much of it Symform can use.

  • Symform works in the background, uploading your files and contributing data fragments without any interruption to your other applications or processes.

  • Symform lets you know if you need to contribute more local drive space, based on how much cloud storage you are using.

  • To get totally free cloud storage you need to contribute local drive space equal to two times the amount you want to store in the cloud.


Learn More on Synform. Join Free and Get Started With 10 GB free storage and contribute and expand your space !!! ENJOY..

 

Zapier – connecting your web apps together

Zapier – connecting your web apps together appeared on Bitstack.info

Zapier, may be the best and most versatile alternative to Ifttt which offers much more unique set of apps than those offered by Ifttt itself. You can call it as Ifttt for business.. Zapier lets you create connections that will push data between hundreds of best-in-breed web applications using triggers and actions and without having to ...read more

| Bit Stack -- Tech Blog - A Tech blog on Tips, Tweaks, Tricks And How To's.. !! -- by Sourish |

Bit Stack -- Tech Blog

Tuesday, January 8, 2013

Which Came First? The PHP Tutorial Script Or the Website?

Which Came First? The PHP Tutorial Script Or the Website?

Never mind the chicken or the egg. The burning philosophical question of our cyber age is, which came first, the PHP tutorial script or the website? You see the list of instructions that your PC follows when it displays a website on your screen, the software in other words is a symbolic language called PHP. It's called a language, but it is a language very unlike English, whether it is US or UK or any other kind.

Unlike language as we humans think of it, PHP tutorial scripts are not meant to be heard or listened too or even spoken. PHP tutorial scripts are learnt by people in order to be written and then 'read' and operated by computers alone.

PHP tutorial scripts are strings of symbols that operate only as pixels on screen and as digital data on your computers hard disk and on the servers of your Internet service provider. So have you ever wondered what happens to all those web pages, words and images when you move away from the website?

I always imagine them to be like the hologram of Princess Leia in the Star Wars movie. When you open up a website the PHP script leaps to life in front of your eyes and just as quickly reverts to PHP encoded script when you maneuver away from any particular site. So if nobody is visiting your website at any given time does it exist at all? Rather it only exists as a PHP tutorial script. That is to say PHP tutorial scripts only exist in a symbolic world until activated and then they only exist in a different symbolic world as long as you are looking at them. "Help me Obi Wan, you're my only hope!"

Now you can go to PHP tutorial script websites and learn to write the language of PHP scripts that will then generate websites of infinite variety and designed to your PHP scripting. (Really it isn't as difficult as becoming a Jedi knight). So hence the question that we began with, (boy aren't you glad you started this?) which came first the PHP tutorial script or the website?

Am I just contemplating my navel or does all this PHP tutorial script talk have anything to do with real life. Well quite a lot actually. "Search your feelings Luke. You know it's true"? You can turn a PHP tutorial script into cash and earn a very good living as a PHP programmer.

The online job site oDesk is finding that number of projects for PHP programmers is growing faster than any other freelance sector and the wages paid for these projects are rising faster too. ODesk also report that "overall, PHP demand was twice that of any other programming language. Open source technology, led by PHP and MySQL, is by far the skill set in highest demand today."

PHP tutorial scripts are better than any other coding platform because it is free. Very flexible and offers a huge support network of other PHP scripters. There is an extensive library of PHP tutorial scripts that can be tailored, are transferable and match to fit almost any web application.



PHP tutorial script [http://www.phptutorialscriptonline.com] comes with everything you need in one package. PHP tutorial scrip is a feature rich out-of-the-box solution. All features has been structured to make it easy to create a tutorial site and to seamlessly manage it with ease.

Article Source:
http://EzineArticles.com/?expert=Ally_J_Smith








In this tutorial we go over a short presentation on what PHP is, what is required to learn it and what we will be covering further down the line. This video will hopefully introduce you to the PHP scripting language and get you interested in learning more. For more information, check out the website: howtostartprogramming.com
Video Rating: 4 / 5



More Php Tutorial Articles