Syndiker innhold
Oppdatert: 26 min 28 sek siden

Send Automated Emails Using SendEmail & Windows Task Scheduler

28. juli 2010 - 18:31

No matter what your job is, usually everyone at some point has to email a boss or supervisor with daily, weekly or monthly status reports. A lot of time this is nothing more than sending over a spreadsheet of data, logfiles or other reports that are usually automatically generated.

Gathering the data and generating reports may not be a big deal for you, but remembering to write up that email every so often can turn into a real hassle. And if you forget once or twice, it looks like you’re not on top of your game.

This is where your computer comes in handy.


Most Windows users know about the Windows Task Scheduler by now. In this article, I’m going to show you how you can use Windows Task Scheduler in combination with the awesome SendEmail SMTP command-line tool to send off scheduled, automated emails that include multiple attachments.

Configuring SendEmail to Correctly Send Reports

The task here is fairly simple. You have a directory where several automated reports are stored. Maybe it’s a logfile summary for servers that you support, which you need to forward to your supervisor. Maybe it’s an Analytics traffic report that you need to forward to your website clients. Regardless of the need, this technique will let you automatically fire off an automated report email that will include as many of those attachments that you need to send. So long as you have a system set up to automatically update those files before the scheduled email goes out – you’ll have a completely automated reporting system.

Here’s how it works. Let’s say I send out three Google Analytics reports that I generate and download every Thursday and I store them in a directory called C:/Analytics. When you download SendEmail from the link above, there’s no setup required. Just place it in any directory where you’d like to run it from. In this case I’m just placing it in the same directory, so that I don’t have to include the directory path to the attachments in my command line.

Linux users have been using the “sendmail” command for ages, so this isn’t really new to them, but the Windows compatible “SendEmail” tool is something that lets Windows users have the same sort of command-line functionality. Once you have the executable sitting in a directory like this, as long as you know the syntax, you can do a lot of cool stuff with the tool.

When you issue the “SendEmail” command at the command prompt (or run it from an application), you have to follow it with a number of parameters. The critical ones that we are concerned with are shown in the examples below.

  • -f xxxxx@gmail.com : This parameter is the email address that will be the “sender.”
  • -t rdube@yahoo.com : This is the recipient’s email address.
  • -u Monday Status Updates : This is the subject
  • -m Here’s the analytics data for this week! : This is the message body.
  • -a Analytics_Channel1.csv Analytics_Channel2.csv Analytics_Channel3.csv : These are the attachments.
  • -s smtp.gmail.com:587 : SMTP server and port
  • -xu xxxxx@gmail.com : SMTP authentication ID name
  • -xp A1ienz2A51 : SMTP authentication password
  • -o tls=yes : SMTP uses TLS (or SSL)

These are all of the parameters you’ll need to complete the task that I’m detailing in this article. Once you’ve downloaded the SendEmail.exe file to your computer, you’re ready to use Windows Task Scheduler to issue your SendEmail automated email command every day, week, or month.

Setting Up Windows Task Scheduler

Open up Windows Task scheduler by going to Start->Programs->Accessories->System Tools->Task Scheduler. Click to create a basic task.

This will walk you through the task scheduling wizard, where you can assign any calendar schedule you’d like for these emails to get sent.

On the next screen, select “Start a Program” and then you’ll see the screen where you need to set up the task. This is where you’ll enter the path for your SendEmail executable and the parameters.

The entire argument line that I typed in was as follows:

-f xxxxx@gmail.com -u Monday Status Updates -m Here’s the analytics data for this week! -a Analytics_Channel1.csv -t xxxxx@yahoo.com -s smtp.gmail.com:587 -xu xxxxx@gmail.com -xp xxxxxxx -o tls=yes

Refer back to the parameter list above, but as you can see this sends out an email from your Gmail account to a recipient who has a Yahoo account with a subject line, “Here’s the analytics data for this week!” When this task runs (which will run every week), it fires off your message and attaches the file attachments that you’ve defined your parameters above.

This is what the received email looks like.

As you can see, there’s no indication that it comes from an automated script. Instead, it has a personal message and the necessary data/information files attached to the email. So long as you make sure the files are updated before this email goes out, you’ll never have to worry about forgetting to send out another one of these status updates again. You can look as though you’re being extremely productive. Meanwhile, you can work on Saikat’s approach to being a procrastination ninja!

Have you ever used the command-line SendEmail tool for Windows? Or maybe you have a different method for sending out automated emails?  Share your own insight about this tool or other similar tools in the comments section below.

Image Credit: Tory Byrne
Do you like MakeUseOf articles? Don’t forget to share our articles with others! It’s really important to us.

 

 

Similar MakeUseOf Articles


Kategorier: Delte artikler

Seven Must-See Videos and Presentations for Web App Developers

18. juli 2010 - 8:57

  

In previous video roundups, we’ve collected together some interesting videos and presentations from a variety of speakers discussing topics covering usability, graphic design, CSS frameworks, web standards, and more. In this small roundup, we’ve included seven videos that we think would be of great interest to web app developers in particular, with less focus on design and standards.

These presentations are a little more technically heavy than ones we’ve featured in the past, but we think they’re worth every minute. Check them out, and be sure to comment to include links to any related videos that you feel are worth mentioning.

[Offtopic: by the way, did you already get your copy of the Smashing Book?]

Speed Up Your JavaScript

Speaker: Nicholas C. Zakas

As an interpreted language, JavaScript is filled with hidden performance issues that conspire to slow down your code and ruin the user experience. Learn exactly what is fast, what is slow, and what you can do to squeeze that last bit of performance out of your JavaScript code.

Notable Quotes:

“The problem is that JavaScript is slow… And the secondary problem is that people notice that it’s slow, because a lot of the web is about perceived performance. If your [code] is slow and people perceive it to be slow, then you're in a lot of trouble."

"Really the issue is, browsers aren't going to help you with your code. They don't care that your code is running slow, they're not going to do anything to adapt for it. So really, if something has to be done to speed up your code, it pretty much has to be done by you."

Series of articles by the author on the same topic:

Further Info:

HTML 5 and Internet Explorer 9

Speaker: Giorgio Sardo

Giorgio Sardo talks about HTML5, CSS3, SVG, and fast JavaScript support coming in the Internet Explorer 9 platform. His presentation includes demos showcasing the latest code, providing best practices on how to make web application standards compliant, fast and interoperable across browsers.

This is a humorous presentation that will be of interest to front-end developers who want to create cutting-edge applications while keeping up with the latest developments in web standards.

Notable Quotes:

"How many of you are still on IE6? You're more than welcome to leave the room now."

"Microsoft is committed to web standards. And I'm very serious when I say this. [audience laughter] It's not a joke!"

"Our job as browser vendors is to make sure that we give you a professional implementation of HTML5, something you can rely on, something that, if you start building your application today, in one year from now it will not break just because the standard changes."

Further Information:

Introduction to HTML 5

Speaker: Brad Neuberg

If you want to know what's new in HTML 5 but haven't had a chance to do much reading on the topic yet, this video by Brad Neuberg provides a solid introduction to HTML 5's most powerful capabilities and features. In this presentation he discusses five aspects of the HTML5 spec: (1) Canvas and SVG; (2) HTML5 Video; (3) The Geolocation API; (4) The HTML5 database and application cache; and (5) Web Workers.

This is a great video and a must-see for anyone that wants to start building powerful web apps using HTML5's newest features.

Notable Quotes:

"One of the things that's really unique about HTML5 is it [allows you to] drop SVG right into a normal HTML page, so it really makes SVG a core part of HTML."

"Currently, video is complicated, and it's outside your control... In 2009 video really should be a part of the browser... HTML5 now gives you a video tag that really works very similar to the image tag, so you don't have to have very complicated objects or plugins — video just works."

"Using all this JavaScript... we can end up not writing apps great, that end up freezing the browser, causing it to run slowly... HTML 5 gives you something called Web Workers, and this lets you run JavaScript in the background in such a way that it won't 'hose' or kill the browser."

Further Information:

eCSStender: the 'jQuery of CSS'

Speaker: Aaron Gustafson

In this video, Aaron Gustafson discusses an overview of his new JavaScript library along with demos and example code to demonstrate how it can be used. Along the way, Gustafson includes some interesting points on the history of the HTML and CSS specs. He also discusses the library's compatibility with IE6 and CSS3 selectors.

Notable Quotes:

"You can use [eCSStender] for patching older browsers... basically standardizing implementations across browsers."

"What the extension in the case of border-radius is doing is actually figuring out what it is that it needs to do and then building the implementation that the browser wants... It greatly simplifies the design process."

Further Information:

10 Things I Learned From the jQuery Source

Speaker: Paul Irish

This is a unique, informative, and entertaining screencast from one of the web's best JavaScript developers. Irish is funny and down-to-earth while he reveals some cool little nuggets that he's discovered from examining the jQuery source. The screencast is a remake of Irish's presentation at the recent Texas JavaScript Conference.

Notable Quote:

"Everyone... considers jQuery this black box, and this black box is this magical box that just works — it has this great API, we use it, we don't have to worry about how it actually works internally, we're not going to look inside the source and figure it out. But I'm here to say, if you do, I think you're going to benefit from it."

Further Information:

Steve Huffman on Lessons Learned at Reddit

Speaker: Steve Huffman

A presentation from Future of Web Apps Miami 2010 by reddit co-founder Steve Huffman. Huffman explains some of the most important lessons he and his development team learned while reddit was growing. This is a highly technical presentation that concludes with some audience Q&A.

Notable Quotes:

"If this talk had existed when we were starting reddit, I think it would have saved me a lot of time, so I hope something in here isn't obvious to you now and you can learn from it."

"I dreaded my phone ringing. Nobody would call me for any other reason than to tell me Reddit was down. Even my mother would call me and say, 'Steve, your website’s not working.' Thanks mom."

"Wasting disc and memory is totally fine if you’re not making your users wait. Discs and memory are far cheaper than annoying your customers."

Further Information:

The Paradox of Choice

Speaker: Barry Schwartz

This video, on the surface, is not about web development in any way, but provides an interesting viewpoint on "freedom of choice" and may well remind app and website designers to avoid bombarding users with choices and complicated options. Some very controversial insights are given here into what makes people happier, providing some food for thought for those concerned about usability.

Notable Quotes:

"The way to maximize freedom, is to maximize choice. The more choice people have, the more freedom they have, and the more freedom they have, the more welfare they have. This I think is so deeply embedded in the water supply, that it wouldn't occur to anyone to question it."

"[Having too much choice] produces paralysis rather than liberation. With so many options to choose from, people find it very difficult to choose at all."

Further Information:

Related Articles

© Louis Lazaris for Smashing Magazine, 2010. | Permalink | Post a comment | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags:

Kategorier: Delte artikler

How To Get Your Very Own Free SSL Certificate

7. juli 2010 - 19:31

A Secure Sockets Layer (SSL) certificate helps us to encrypt the data being transmitted via the Internet. It will come in handy if you are running a blog or a personal webpage and logging into them from an unsecured public access WiFi Hotspot (such as coffee shops, airports etc).

Transmission of your login information over an unsecured connection can be intercepted and hacked. Internet security is a topic of interest for MUO authors and our readers alike.

SSL certificates encrypt the login data before transmitting them to your ISP/server making it harder for eavesdroppers to break in. That’s exactly why banks, financial institutions, ecommerce sites etc. use SSL for securing login information, user identity information and credit card data.


SSL certificates cost a lot if bought from providers like Verisign, GoDaddy etc. For those us who don’t run mission critical portals, that is not an option. Let us see how to get free SSL certificates from StartSSL.

Obtaining The Free SSL Certificate

A simple signup form kickstarts the process of getting the free SSL certificate. All the details, including home/company address to phone number are mandatory requirements. Once the signup is done, an email with the verification code is sent to the email address you specified.

After entering the verification code, the application is sent to the second stage of verification by the StartSSL team and we are advised to wait for about six hours before being contacted by their team.

However, I got a confirmation mail in less than 5 minutes with a link to the account. Remember, this email is good for only 24 hours from the time it has been received, so act fast.

Installing The SSL Certificate

StartSSL offers free certificates with no holds barred and with absolutely no hidden charges. You can choose either a 128 bit or 256 bit key for encryption.

We have the option to choose between a high grade or medium grade private key. Once the type of key is selected, it is generated and we are taken to the installation page.

Once the install button is clicked, the certificate is installed. There is also an option to download and store the certificate to an external disk and I strongly advise you to do it.

Now that the certificate is installed in the browser, we can just click on the Authenticate option to enter the control panel. No need for an username and password. We are identified by way of the unique private key and hence it is very important to back it up securely.

Validating The Domain Name

After authentication, we can start the process of validating the domain name & the email address with the help of the Validations Wizard. From the dropdown, you can choose the appropriate option. Let us go ahead and validate a domain name.

Once we enter the domain name, an email address has to be associated with it to confirm domain ownership.

Once the email address is verified, the domain is validated. However, this being a free SSL certificate, StartSSL requires the renewal of this validation every 30 days, which involves the same process.

Certificate Wizard

I chose the Webserver certificate since I am planning to use it for my Wordpress installation. We need to enter a password to create a private key and then we have to enter the subdomain where the certificate will be used. Subdomain is a mandatory requirement.

The certificate created will support the domain and the sub domain. As the final step, we now have the text box displaying the encoded certificate information. Copy the content, paste it in a notepad file and rename the file as ssl.crt

The same page also has links to download the intermediate and root certificates. Download them to the same folder.

Uploading Files To Server

Navigate to the How to Install section in the FAQ section. Choose your server setup, for example Apache and you will have the code to modify the http.conf or ssl.conf file. Copy it and update the file in the root folder of the domain in your webserver.

From the same page download the ca.pem & sub.class1.server.ca.pem files. Upload all the files to the root folder and now we have the SSL enabled connection at the website.

Final Thoughts

Please exercise caution with the last step and ensure that all the directories (marked by arrows in the image above) follow the same naming convention of your ISP or location in your webserver. And do remember to validate the domain every 30 days to enjoy the security provided by the free SSL certificate.

Are there any other services offering free SSL certificates? If you know of any, do share them with us.

NEW: Download MakeUseOf iPhone App. FREE!

Similar MakeUseOf Articles

Kategorier: Delte artikler

Building a Real Predator UAV (GeekDad Wayback Machine)

6. juli 2010 - 13:30

Here’s a semi-scale Predator. Pretty cool, but it’s an Almost-Ready-to-Fly model so I can’t do too much bragging. I just modded an inexpensive ($80) Nitro Models kit with a AXI 2208 brushless motor and added some proper landing gear and an airscoop to cool the motor in the back. (BTW, Nitro sells two Predators. Get this one, not the similar camo version with a slightly smaller wingspan. That one’s wings don’t come off! I have no idea how you’re supposed to transport it, short of a van).

[This post originally ran in July, 2007]

But there’s more to this Predator than meets the eye. It’s not just a model of an Autonomous Aerial Vehicle–it is a UAV! How can you tell? Look closer.

This is a Pentax W30 camera, which is one of the smallest cameras to have a proper programmable time-lapse photography setting. Why would I want to strap a camera with a time-lapse function to the bottom of a R/C plane? Because it’s not just a R/C plane!

Here’s what’s under the canopy, or at least the first layer of it. It shows the installation of a UNAV Picopilot GPS-guided autopilot. This makes the Predator totally autonomous. You can enter up to 20 GPS waypoints, and the Predator will fly to them and then return home afterwards. That, in turn, explains the time-lapse camera. It snaps a 7 megapixel picture every ten seconds while the
UAV is following its programmed course. Which means that you can stitch those pictures together and create a super high-quality aerial view of any area you choose. They’re WAY better than Google Maps resolution, and you can update the aerial views anytime you want to.

But how can you take off and land the Predator? The Picopilot can’t do that.
Fortunately, there’s another layer in the Predator’s electronics bay.

Underneath the autopilot floor, there’s space for all the standard R/C stuff: A Futaba 2.4 GHz receiver, a 1,500 mAh Li-Po battery and an electronic speed control. When the transmitter’s gear switch is down, this lower layer controls the plane manually. When you switch the gear lever up, it transfers control to the Picopilot and the Predator goes into autonomous mode.
Just like the real thing!

Full details at DIYDrones.

Kategorier: Delte artikler

Change Your Wi-Fi Router Channel to Optimize Your Wireless Signal

5. juli 2010 - 13:00

If you live in an apartment complex you’ve probably noticed more than just the passive-aggressive network IDs that your neighbors use—very likely you’ve had problems with your wireless connections dropping out, or just not being as fast as you’d like. Here’s a quick fix.

Of course, this isn’t the only thing you need to do to make sure your wireless network is running at maximum speed, but for today’s lesson we’ll show you how to pick the right channel to make sure you can stream the new Futurama episode to your laptop without skipping.

Note: if your Wireless network is working fine, please don’t mess with it. Or at least, don’t blame us if you break it.

Figuring Out the Right Wi-Fi Channel

The first thing you need to do is grab yourself a copy of the free inSSIDer utility, which will scan your wireless network and probably reveal some humorous names from your weird neighbors. If only they could learn how to park their cars like decent human beings.

Let’s take a closer look at that window… you’ll need to choose the right channel band, depending on the router you are using. Mine is a Linksys dual-band Wireless-N router, which has two separate networks… if you aren’t sure, go for the 2.4 GHz one first, and then click the Start Scanning button.

Note: If you have more than one network card enabled, make sure the drop-down has your wireless card selected.

Ideally you’ve selected the right one, and after waiting for a minute or two, you’ll see your network in the list. For example, my test network is called lhdevnet, and it’s currently running on channel 6. If you looked closely at the screenshot earlier, you’d see that there are loads of networks in my apartment complex using the same wireless channel.

Looks like it’s time to change the channel. Hopefully Futurama is on.

Change Your Wireless Channel

If you’re using a Linksys router, you’ll need to browse to the address of your router, which is probably set to http://192.168.1.1 but could be assigned to another address. You can run a quick ipconfig command at the command prompt to check:

In my case the address is different (because I changed it, of course), but what you’re looking for is the Default Gateway for your Wireless connection, and then go to http://<Default Gateway> in your browser. Enter in the password that you hopefully remember, and head to the Wireless –> Basic Wireless Settings tab.

My router has two separate bands, but your router might just have a single band here. In my case, what I’ve done is set the 2.4 GHz band to only be used for Wireless-G, and the 5GHz one to Wireless-N only. Since I’m not having any problems with the Wireless-N settings, I’ve left those on auto.

 

Where I am having a problem, however, is my Wireless-G devices—so what I’ve done is chosen channel 9, since it’s the only channel that’s not being used by any of my neighbors, who are using mostly channels 1 and 6, though a few are using 11 as well.

Channels 1, 6, and 11 are the most common channels to choose, and most routers will use one of them as the default channel—but the general idea is to be as far away from everybody else as you can.

Note: I’ve also configured my router for 20 MHz only on the 2.4 GHz Wireless-G band, just because that was the only way it would let me choose the standard channel manually.

If you are using a different router, the IP address will generally be the same, but you’ll have to figure out how to change the Wireless channel without any screenshot tours. It’s usually fairly easy, though, once you know what you’re looking for.

Fun Technical notes

If you look closely, you’ll notice that each of the channels are 5 MHz away from each other, but the Channel Width for 2.4 GHz is actually 20 MHz. What this means is while that the channel might be set to channel 6, it’s also partially using 5 and 7, and probably slightly interfering with 4 and 8.



Similar Articles Productive Geek Tips Latest Software Reviews Tinyhacker Random Tips

The Geek148624883488198994751732417222435775229804290614748615523448117880962027107655731726818317867356899701018829345306024240114990692665645698060160086143087271870003537279839030073637100753276921850028321507915399866604172611224466181161839182071679455034568969941522539732168659692107294153430044766909143564767822244422700259802266011780994715983923681392043405125861671755640058640438094956436191828905084959009493803646056116067725893059661363047246351129875416667744812319894588106006654688535674341262955653338947432505227952249820973149044604858476127188410295868698495585639407515884303291711752057124169222048054540696895935472266000605605387856875640743090908090111224577280145225692680845803401861480086854722761009841886027634921031618255043551089272713786293103766124829164933803678189913960433776428658590947408371486760213834654152511099234514299860899242782483089558308625522315912363542167535001089750763470809936790106880281616047241684141988933146749463694769426620926683427763176775317935242559270314643039669648934900104580855428158773372099308027601182134689378056979945214154144180773507848140666250108825396816362898441077090057703415581400725818530731029505411175975268729573009156053476157142205360419930820692577731209077740815001720324
Kategorier: Delte artikler

How to Rip a DVD to your Hard Drive and Play it on your PC

28. juni 2010 - 19:00

Are you looking to for a way to play your media DVDs without rifling through your collection and swapping discs? Today we’ll take a look at ripping a DVD to your hard drive and playing it with some popular media players.

To rip our DVD we’ll use HD Decrypter which is the always free module of the DVDFab software suite. HD Decrypter will remove the copy protection from your DVD, and copy the contents of the DVD to your hard drive.

Note: You’ll get full access to all the options in DVDFab  during the 30 trial period. HD Decrypter is always free.

Download and install DVDFab. You’ll find the download link below.

If prompted with a Windows Security dialog box, select Install.

When you run DVDFab for the first time, you’ll be met with a Welcome to DVDFab screen. You can select the Do not show again to skip this screen in the future and then click Start DVDFab.

Place your DVD into your optical drive. The application will take a few seconds to open the DVD source.

Before we get started with the ripping, we’re going to change a few settings. Select the green button at the top with the white check mark.

On the Common Settings window, select DVD to DVD on the left pane. For the Default output type, we’ll select DVD Folder. The default setting of DVD Writer is used for copying and burning a DVD and won’t work after the 30 day trial is over.

 

Tip: If you’re going to play your ripped DVD in the Windows Media Center native Movie Library, select Create dvdid.xml which can be used by Windows Media Center. This will allow WMC to pull cover art and metadata for your movie.

You can set your output directory by selecting General on the left pane of the Common Settings…

And then browsing for your preferred output directory. On Windows 7 the default output will be C:\Users\%username%\Documents\DVDFab\

 

If you’ve made the changes you’ll be prompted to restart the program. Click OK then open and close the application.

On the the main interface, make sure to select Full Disc on the left and Copy DVD-Video (VIDEO_TS folder), which should be selected by default.

 

Under navigation select Remove annoying PGCs to eliminate unwanted program chains like FBI warnings. You can also change the Volume Label by typing a name into text box. We recommend naming the Volume label the same as the movie title, but it’s not essential.

Note: For the Quality setting, once the 30 day trial has expired your only available option will be DVD9. During the 30 day trial you can select DVD5, which will (if needed) compress the output to a size that would fit a single layer DVD.

Click Start.

As the DVD is being ripped to your hard drive, you can follow the progress. Typical ripping time may be around 15 – 20 minutes, but will vary depending on your hardware and size of the disc.

When the process its finished you’ll be notified by the DVDFab dialog box. Click OK.

That’s it. Your rip is complete. Click Finish.

When your finished you’ll have a root folder containing a VIDEO_TS and AUDIO_TS folders. The AUDIO_TS folder, however,  is really not needed and will probably just be an empty folder.

Now we’ll take a look at playing the DVD rip in a number of Windows applications.

Playback in VLC

VLC is a popular cross platform media player that can play virtually any media type and VIDEO_TS is no exception. Open VLC and select Media  > Open Folder.

Select the folder that contains your VIDEO_TS directory and click OK.

 

Your DVD will open just as if you were playing it from the disc.

Playback in Boxee

Add the folder containing your DVD rip(s) to the My Movies library. For Boxee to recognize it and display covert art and movie info, make sure your root folder is named the same as the title of the movie or TV show you ripped. Check out our previous article for an in depth look at setting up movie folders and managing your movie collection in Boxee.

Select your DVD from the My Movies section, then select Local File…

…and enjoy your DVD rip.

Playback on Windows 7 Media Center

Add the root folder containing the VIDEO_TS folder and XML file (if you choose to create one when your ripped the DVD) to your WMC library. Your DVD rip will still play without the xml file, but you won’t have all the nice metadata.

Click play and video playback will begin just like the DVD.

Playback on Windows Media Player 12

It’s a tad trickier on WMP 12. Instead of opening a folder, which Media Player doesn’t support, we’ll open the VIDEO_TS.IFO file.

Media Player will begin playing.

Conclusion

Not only is ripping your DVD collection to a hard drive a nice way to enjoy them on your computer or media center PC, it is also a great way to create backups of your media. It’ll take up much more hard drive space than compressing them to MP4 or AVI files, but in return you’ll get the full DVD experience right from the hard drive without swapping discs.

You might want to check out our previous posts if you prefer to rip and convert DVDs to ISO images, or rip your DVD and compress it with x.264 codec.

 

Downloads

Download DVDFab / HD Decrypter

Download VLC

Download Boxee



Similar Articles Productive Geek Tips Latest Software Reviews Tinyhacker Random Tips


DigitalGeekery16260852437884112148173241722243577522981726818317867356899701018829345306024240114990692665645698060037111523536714864307167945503456896994141282873068723480581666774481231989458812798736411912944504163264890975521954901044779260123857485905605387856875640743029114884459600364891041189972526036327416783308762768561838145354237317640372040623000834729786305708625522315912363542167535001089750763470137197391741529710213246487613089115844061046319648238218980983932479731613850316530840852763467519178115124934731627180437489546701955904108908076854390465604167897423715802858301560534761571422053610465930878331419617
Kategorier: Delte artikler

50 Powerful Time-Savers For Web Designers

28. juni 2010 - 14:17

  

Being a web designer is not easy. Not only do we need to have a good understanding about visual design, typography, information architecture, psychology and a plethora of other disciplines; in our work, we need to take care of so many details, so that our job becomes more and more time-consuming, requiring dozens of tools, attention span and an effective workflow for beautiful, timely and functional results.

And this is where small time-savers become handy. Be it a handy checklist, batch installer, dummy image generator or converter from Excel spreadsheet to HTML — all these things can save us a couple of minutes every day, making our work easier and more efficient. And this is why we keep collecting them for Smashing Magazine’s readers. Whether you like lists or not: this one will probably help you find those little nuggets out there that will help you avoid headaches and stress. Below we present useful time-savers for web designers.

You may want to subcribe to Smashing Magazine’s E-Mail Newsletter (32,600 subscribers) to keep updated about new useful tools, techniques and resources. The newsletter is sent out once every two weeks.

[Offtopic: by the way, did you already get your copy of the Smashing Book?]

Time-Savers For Web Designers

LaunchList
This tool helps you review important items before the big launch. By default, the tool provides 28 items to be checked, but it also allows you to add custom items to the list. Each item can be commented on or crossed out. Once you’re done, you can send the report along with project’s details to multiple recipients via email. Alternatives: Ultimate Website Launch Checklist and Paul Boag’s The Ultimate Website Prelaunch Checklist.

Pencil Project: Sketching and Prototyping with Firefox
Pencil is an open source GUI prototyping tool. It contains built-in stencils for diagrams and prototyping, on-screen text editing with rich text support as well as standard drawing operations. Works in Firefox 3.5+.

Zootool
Zootool is a bookmarking website and tool for collecting images, documents, links and videos from anywhere on the Web. A bookmarklet allows you to collect items quickly and easily. You can then tag and organize your saved items in Zootool’s back end. You can also integrate Zootool with Tumblr, Twitter, Delicious and FriendFeed to share what you find. Screenshot via MacStories.

Bounce
A fun and easy way to share ideas on a website. The tool allows you to make notes, write feedback in an overlay of every site and then share your notes with friends.

Ninite Batch Installer
Ninite lets you pick your favorite software from among an extensive list (Web browsers, messaging, media, images, documents, security, runtimes, file sharing, utilities, compression, developer tools and more), creates a batch installer for them and then installs them for you automatically. Alternative: Allmyapps allows you to bundle your favourite applications, install them in a single click and reinstall them whenever you need to.

Support Details
When in doubt, send your customers to this tool. Their data will be automatically read out of the browser (including Flash version, operating system, cookies, JavaScript status, screen resolution, browser size and more) and can be copied, sent directly to you via email or saved.

MugTug’s Darkroom
When you need to modify a picture but don’t have your favorite software on hand, you can use the all-in-one image processor MugTug’s Darkroom which was created for photographers. You are able to adjust levels, white balance, exposure, contrast and saturation and apply a few photographic effects. In addition, Darkroom allows to upload pictures from Picasa and Flickr. Alternatives: Pixlr and Sumo Paint.

Visual Website Optimizer
Visual Website Optimizer is undoubtedly the best A/B, split and multivariate testing software ever created by mankind.

Keyonary
This site a nice little application for finding shortcuts in Mac OS X, Photoshop and so on. Currently, more than 250 Photoshop shortcuts have been added. Simply type the name of application in the search box, and it spits out a long shortcut list.

gridr buildrrr
This generators allows you to choose the grid for your layout and preview it online.

Instant Blueprint – Create a web project framework in seconds.
Instant Blueprint allows you to quickly create a web project framework with valid HTML/XHTML and CSS in only a matter of seconds, allowing you to get your project up and running faster!

Hummingbird
Hummingbird lets you see how visitors are interacting with your website in real time. Hummingbird is built on top of Node.js, a new javascript web toolkit that can handle large amounts of traffic and many concurrent users.

jsFiddle
Online Editor for the Web, with support of JavaScript, MooTools, jQuery, Prototype, YUI, Glow and Dojo, HTML and CSS. The tool lets you save and run your applications within the web browser.

String: create a multi-language website or app
Essentially, String is a version control for localization. This tool allows you to manage your language files – from PHP to PO to Rails to iPhone apps. You can invite users to translate your content, and keep track of changes. You can add new sections and languages as you go and then download your updated language files and place them in your app.

Titanpad
This tool allows you to edit documents simultaneously with other users, highlighting each user’s edits in a different color. Editing is done in true real time. Nice solution for everybody who works collaboratively on text documents, whether in the same office or on the other side of the world.

Pixelnovel Timeline: Version Control for Adobe Photoshop
This tool basically integrates a Subversion client in Adobe Photoshop with an Adobe Photoshop plug-in. You can preview versions right in Photoshop and manage version control directly from Photoshop. Not free.

0to255
A simple tool that helps web designers find variations of any color. Simply pick the color that you want to start with and 0to255 gives you a range of colors from black to white using an interval optimized for web design. Then, just click the variation you want to use and the hex code is automatically copied to your clipboard.

Load Impact: Website load/stress test
The tool lets you find out the performance limits of your website before you learn the hard way. It is an online service that simulates users accessing your site and creates test report graphs to find out how many users your site could handle.

Ideone: Online IDE & Debugging Tool
This tool is an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages, among them C++, Java, JavaScript, Perl, PHP, Python and Ruby. Nice alternatives online: PHP Anywhere (online PHP editor) and CodeRun (allows you to develop, test and debug ASP.NET, PHP and Ajax applications online).

Online Dummy Image Generator
This online tool generates dummy images for you site: you can specify size, background and foreground colors, image format and add custom text. You can also use shortcuts for several standard dimensions including ad sizes (mediumrectangle, skyscarper, leaderboard etc.), screen resolution sizes and video standards (ntsc, pal, hd720, hd1080).

HiFi RegExp Tool
Regular expressions can be a pain. The HiFi RegExp tool is 100% JavaScript using jQuery. This tool was created to help developers learn, practice, and compose regular expressions.

Tableizer
Clients often provide data in spreadsheet form, and reformatting it into HTML can be a real pain. This tool generates HTML tables out of spreadsheet data. Just copy and paste the cells from your spreadsheet, choose your options (font, font size and header color) and you have a properly formatted HTML table for your data.

FollowUpThen: Easy Email Reminder
If you don’t mind sending your e-mails to a third-party, try this tool for easy email reminders. On your next email just include time-interval@followupthen.com and the tool will follow up after the time interval you specify. No account is required.

Divine: Conversion tool from PSD to HTML
Divine is a plug-in that sits on top of Photoshop. Once you’ve finished designing in Photoshop, launch Divine plug-in in Photoshop, assign WordPress roles to the main elements (e.g. #footer, #header, etc.), and then the plug-in will prepare all the files you need. Once you set FTP access, the tool uploads the theme automatically to your server. Absolutely free.

Kaleido
This tool allows you to create meaningful visuals for code and can be used to plan, organize and navigate code in a more intuitive way.

Sketchpad
This application is a powerful online image editor. Its tools are organized in handy, draggable boxes that can be positioned very much as you would see in traditional image-editing applications.

Unicode code converter
Type or paste text in any of the green or grey shaded boxes and click on the button Convert button above it. Alternative representations will appear in all the other boxes. You can then cut & paste the results into your document.

Grid System Generator
This tool generates grid systems in valid css / xhtml for rapid prototyping, development and production environments. The grid system generators offer the ability to customize the width, no. of columns and margin(s) to allow more flexibility for various designs.

ud.com namecheck
The tool checks availability of social usernames, domain names and trademarks.

Typograph — Scale & Rhythm
A useful tool for testing typographic scale and rhythm. It lets you set factors such as the typographic scale (traditional, 3:5 Fibonacci, Le Corbusier, etc.), the font size in percentage, line height, the layout, padding and the line height for h1, h2 and h3 headings.

ColorBrewer Intro – Selecting Good Color Schemes for Maps
ColorBrewer is an online tool designed to help people select good color schemes for maps and other graphics.

CSS Inliner Tool
If you’ve ever sent an email campaign, you know that if your CSS is not coded inline, it is likely to get stripped out by email clients, which can make your email design pretty funky looking. Writing CSS inline can be time consuming, and repetitive. MailChimp has a CSS inline conversion tool built right in that will automatically transform all of your local styles into inline styles. Designers have found it so useful, we thought we’d share it with everyone else – even if you don’t have a MailChimp account.

HTML Purifier – Filter your HTML the standards-compliant way!
HTML Purifier is a standards-compliant HTML filter library written in PHP. HTML Purifier removes malicious code (better known as XSS) and make sure your documents are standards compliant.

Rendera
Rendera helps you learn HTML5 and CSS. Type in your HTML code and see it rendered in real-time. Then style it with CSS. You can use any of the HTML 5 or CSS3 tags your browser supports. The tool supports HAML and SASS, too.

RegExr
An intuitive tool for learning, writing, and testing Regular Expressions.

try ruby! (in your browser)
This tool allows you to try out Ruby code in the prompt command line online. It supports Ruby’s built-in methods, and contains a step-by-step tutorial for Ruby newbies.

Google Command Line
GoogleCL is a command-line utility that provides access to various Google services. It streamlines tasks such as posting to a Blogger blog, adding events to Calendar, or editing documents on Google Docs.

Tiny Fluid Grid
Simple tool that generates code for fluid grid-based layouts.

Fonolo.com
This online tool lets you skip the phone menus for hundreds of companies and makes it less frustrating to call large companies. For business owners, Fonolo allows your customers to actually see your phone menu options, before they call you.

Producteev: Creating To-Do Lists with Emails
Forward your important emails to task@producteev.com and the tool will create to-do lists on the fly and send you alerts when needed. It can be integrated in E-mails, IM, Web, iPhone, Gmail, Google Calendar etc.

AddUse – User research made easy
AddUse is a web based tool that helps you create, manage and present your user research in a simple, easy to use and cost efficient way. It’s a tool to use at any given moment in your development process. It presents the results from your user tests, surveys and questionnaires in a graphical way, efficiently helping engineering, marketing and management groups make the right decisions.

bookwhen
Online registration for events, workshops, classes and courses. The free version allows for 150 events with 300 bookings per month.

Further useful tools

see[Mike]code: tool for remote coding interview
This simple tool lets you conduct a short coding interview remotely: it creates a disposable page for the job candidate and allows you to discover people who struggle to code on big or small problems.

jsdo.it
This tool allows you to write code your browser, fork and modify any code, fix bugs and add features and also ask the community about your problems.

JavaScript Error Tracking
The service tracks JavaScript errors that occur on your site and provides you with a stack trace to help you debug. Similar errors are grouped together.

Old Version
Old Version has exactly that, the older version of some of your favorite programs. Why? Because newer is not always better. Sometimes the newer versions cause conflicts. This way, you can always go back to the older version that worked for you.

Onbile
Onbile is a free platform for creating and managing your Mobile Website version for iPhone, Android and Blackberry users

Free Bookkeeping, Accounting, & Tax Services; Self Employment & Freelance Success
Easily import from online accounts to put your bookkeeping on autopilot and prepare taxes. Get up-to-date reports that give you visibility into your P&L, income, and expenses.

iSendr
iSendr lets you send files to your friends directly, without uploading to a server.

seekWP
WordPress documentation search engine.

speedtracer
Speed Tracer is a tool to help you identify and fix performance problems in your web applications. It visualizes metrics that are taken from low level instrumentation points inside of the browser and analyzes them as your application runs. Speed Tracer is available as a Chrome extension and works on all platforms where extensions are currently supported (Windows and Linux).

the Awesome Highlighter
This tool lets you highlight text on web pages and then gives you a small link to the highlighted page.

OpenWith.org
This page provides detailed information about most file extension and links to free programs that can open and create each type of file.

Last Click

Kuku Klok
Online alarm clock and wake-up call for those of us who often work too much and fall asleep in front of the screen. Open the website, select the desired alarm time and set your favorite wake-up call. Keep the browser tab open. Happily, this online alarm clock works even if your Internet connection goes down. The available sounds are “Classic Clock,” “Electronic,” “Slayer Guitar,” “Military Trumpet” and “Cockerel.”

What the Hex?
Among the variety of methods of representing color values, some are easier to identify than others. The hexadecimal system, though, often looks incomprehensible. If you feel you know colors pretty well, then this is a simple game for you. All you have to do is match the hexadecimal code (which is actually a group of three hex numbers: #rrggbb) with the corresponding color. Of course, this is easier said than done, but you can adjust the difficulty by displaying between 2 and 48 possible answers.

Would you like to see more similar round-ups on Smashing Magazine?



Would you like to see more similar round-ups on SmashingMag?Market Research

Related Posts

You may be interested in the following related posts:

© Vitaly Friedman for Smashing Magazine, 2010. | Permalink | Post a comment | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: , ,

Kategorier: Delte artikler

Matthew Saunders: Drupalcamp CO - Ubercart

26. juni 2010 - 23:54

These are my rapid notes from Ryan Szrama's session on 10 ecommerce tips presentation at Drupalcamp CO. Apologies for the video quality - the projectors were fairly dim.

Ryan started out by talking about "what we've figured out". He notes that it is about Content, Product, and User Management. Use Drupal and then something like ubercard or drupal commerce. Using an integrated solution is better than using a third party solutions like magento.

Drupal Commerce is being rethought out in Drupal 7. What are the tools to use today. There are 356 or so contributed e-Commerce. Drupal 6 has the Ubercart package and the e-commerce package. There is 20-1 usage for Ubercard vs e-commerce thus more modules.

read more

(author unknown)05605387856875640743
Kategorier: Delte artikler

GPS Tracking Tutorial

24. juni 2010 - 7:00

GPS is definitely one of the most handy sensors you can add to your project - it can provide you with a whole host of data including things like location, altitude, speed, heading, and more. We already have a GPS Buying Guide that will help you decide which unit is good for you as you sort through our GPS category, but you might want a little more.

For a more in-depth look at the GPS units we offer, check out Engineer Aaron's "GPS Tracking Comparison."This tutorial shows the type of readings you can expect from your GPS and goes through the pros and cons of each unit.

So whether you are looking to build an autonomous robot or create a hand-held GPS unit for geocaching adventures, this tutorial can help you better understand GPS and how to implement it into your next project!

(author unknown)0953285872374894697811226777490679887005051627232546789376990420330035726380215707617326038510745750013658523935816486911671655790420578574412082329934788377814077680646216270491510560538785687564074308753838081568033202101868855988843662891008070057963329033411771179019882147004051244437969657460361617599893143095406016500897162056430000172890062218453836601427227664558886626206441634437323634297
Kategorier: Delte artikler

Stop Forking with CSS3

22. juni 2010 - 10:00
You may remember when JavaScript was a dark art. It earned that reputation because, in order to do anything with even the teensiest bit of cross-browser consistency, you had to fork your code for various versions of Netscape and IE. Today, thanks to web standards advocacy and diligent JavaScript library authors, our code is relatively fork-free. Alas, in our rush to use some of the features available in CSS3, we’ve fallen off the wagon. Enter Aaron Gustafson’s eCSStender, a JavaScript library that lets you use CSS3 properties and selectors while keeping your code fork- and hack-free.contact.us@alistapart.com ( Aaron Gustafson)06836422528150126485024933618644598977261660097973179532882102817188608600300065074026595090951102300100443687687930630414297490442846806394076755880350012412700802960047749877324414545760659093133778121044473787064463940368265567581086190505458573668346554143086940717126231516811316954377011271120612337029730024875700130433807394212546191463452466643273539410643510197986573170029456321060269200171158758374400960232618065037690356870006005670921032402256581069233127950839218603962672013806464852056053878568756407431599210639900651056409729401588001158499002003379489644692660999202864006930020200644302901849920736056902290470869150531233015382770810258003545964666694920486085800208214165170480492584803760485124003267826884210344264121788174009890014030718823774568155174404658825499305303120079590257964826749361169091320129667428814816389278948316194156979641375541766841181881009131358130118059945952945441754026059756243375653411456131915646142884311277540501752748054
Kategorier: Delte artikler

IconViewer Extracts Hidden Icons from Applications [Downloads]

15. juni 2010 - 21:00
Windows only: Free plug-in IconViewer adds a new tab to Windows Explorer's properties screen that views, copies, and saves the icons hidden inside Windows applications and libraries. More »



Microsoft Windows - Icon - Desktop Customization - Windows Explorer - Utilities The How-To Geek09443426246936002327128120451127870049690634475683170588018215096834664725211097071384330789416149820929263450614458417917398784131309411590004560204027114285261305246349882468159514252031827322623894060513617998362311521505562668300026034417543291858960396508034831959118086253931381403004150566236500779898117424943955015583457262918941440560538785687564074302484761429795992560151237634645152203080357398299485199606201321247874535601551033205143980678055651236633297335593291403898967624860199465119939344601182827920207021584164677889310303999348257579233115835161769864578880350574145462047176214838237222264399571
Kategorier: Delte artikler

Cross-Browser Testing: A Detailed Review Of Tools And Services

4. juni 2010 - 13:23

  

As you probably know, cross-browser testing is an important part of any developer’s routine. As the number of browsers increase, and they certainly have in recent years, the need for automatic tools that can assist us in the process becomes ever greater. In this article, we present an overview of different cross-browser testing applications and services. Surely, you are already familiar with some of them, and you may have even stumbled across another overview article, but this one takes a different approach.

This is not just a list of available tools, but rather a comprehensive analysis based on my experience with each of them. For the impatient among you, a summary table is at the end summarizing key metrics and unique features for each service. But if you’re interested in my personal experience with these tools, then read on.

Probably the most important metric of these services is the capture delay, which I measured for the URL stackoverflow, with the following browsers enabled: Firefox, IE, Chrome and Safari.

[By the way, did you know we have a brand new free Smashing Email Newsletter? Subscribe now and get fresh short tips and tricks on Tuesdays!]

BrowserShots

BrowserShots is the oldest and best known free online multi-browser screenshot service. It supports the largest number of browsers: a total of 61 different browser versions and operating systems, which is great, but I can hardly imagine anyone wanting to test their website under Kazahakase 0.5 running on BSD Unix. Feature-wise, it allows you to enable and disable Javascript, Java and Flash and change the screen size. I find the latter very useful, especially nowadays when one has to take into account smartphone browsers with non-standard resolutions.

The interface is not very user-friendly. Selecting the browsers and options you want takes time, and because it is a Web service you have to do it over every time you want to take a screenshot. When (and if) you finally get your screenshots, there is no easy way to compare different captures in order to find rendering inconsistencies. HTTP redirect is not fully automated: BrowserShots displays the URL you are being redirected to, but you have to start the screenshot again manually.

The biggest disadvantage of BrowserShots—which, in my opinion, makes it practically unusable for a professional developer — is the response time. In our test scenario, it was more than 45 minutes. Note that a screenshot expires in 30 minutes, unless you manually extend it. As you can see from the shot below, BrowserShots has serious bugs with scrolling (see MSIE 8.0 screenshot) and at least one browser screenshot failed, even though it said the operation was successful.

Conclusion

Unless you need only a single test on a particular browser, this service is not for you. Even then, by the way, it would probably take less time to install that browser, test the page and then uninstall it.

Unique features: None.

Disadvantages: Painfully slow.

BrowserCam

BrowserCam is another well-known screenshot service. Unlike BrowserShots, this is a commercial service. The cheapest plan cost $159.80 a year and provides access for five users. The interface is nice. It allows you to create a project and specify the URL and browsers you want to capture, so that you do not have to do it all over again to re-test the page. But because it is a non-AJAX Web-based interface, its response time is not comparable to that of a native application, which is a bit annoying.

Browser support is slightly more limited than that of BrowserShots, but it is good enough for practical purposes; it supports multiple versions of IE, Firefox, Safari, Opera and Chrome, as well as some older browsers on OS X, Linux and multiple versions of Windows. Capture speed is decent: it took about two minutes to take a screenshot of our test scenario.

BrowserCam supports multiple resolutions and has window and full-page capture, which means scroll bar support. Another nice feature is mobile device capture: it supports Blackberry, iPhone, Android and Windows Mobile devices. Note that mobile capture support is not part of the browser capture plan and costs $999.95 extra annually. It also has an email capture service, which in my opinion is of limited use, and remote access, which can be useful for troubleshooting rendering inconsistencies that are detected from a screen capture. Both services cost extra. The screenshot below is of a BrowserCam results window.

Remote access packages allow you to connect using VNC to your choice of Linux, Windows and Mac machines with different browser versions. This can be a good option for debugging on hardware that you do not have, such as Mac. But the price of $499.95 a year is not far from the price of Mac mini, and because the VNC protocol is not terribly efficient, extensive remote debugging via VNC can be daunting.

Conclusion

A very good professional service with advanced features and thoughtful interface.

Unique features: Mobile device support, remote access.

Disadvantages: Expensive.

Adobe BrowserLab

BrowserLab is a new offering from Adobe and was previously known as Meer-Meer. It is written in Flash and as such has the advantage of being cross-platform compatible and of having the look, feel and (most importantly) response time of an application. It is currently offered free of charge in preview mode while Adobe “is monitoring the performance.” Because it will monitor it for more than one year, one wonders whether it has other reasons for this. According to Adobe, it will charge $10 to $20 per month for this service starting in 2011.

The interface is attractive, polished and easy to use, as you can see from the screenshot below. You can inspect captures one by one or view two captures side by side, which is more useful. The much lauded “onion skin” option is not very practical: most of the time, browsers will not render a page identically pixel by pixel, but the page might still look the same.

Browser support is modest compared to the competition. At the time of writing, BrowserLab supports only Chrome, Firefox, IE and Safari: a total of 12 browsers and OS version combinations. But it looks like the quality of the product is still at beta level; in two captures, it actually cut the image horizontally. Scroll bar support is buggy, too.

Screenshot speed is very good. Our test scenario did it in less than one minute.

Conclusion

A very nice interface, and free till the end of 2010.

Unique features: None.

Disadvantages: Modest browser support, minor bugs.

Microsoft Expression Web SuperPreview

SuperPreview is a new addition to Microsoft’s Expression Web WYSIWYG development environment. This is the standalone version, limited to Internet Explorer and available for download free of charge. Browser support is limited. The standalone version supports only IE 6, 7 and 8, while the full version has support for Firefox and Safari. The user experience, on the other hand, is very impressive.

Because it is an application that runs on your PC, the response time and screenshot delay are among the best in class. In our test scenario, it loaded the website in a matter of seconds. Please note, though, that because SuperPreview works with only two browsers at a time and does not support Chrome, this test was not identical to that of other services.

SuperPreview cannot be purchased without the Expression Web, whose retail price is $149.

Conclusion

The interface is extremely easy to use, and the speed is incredible. But browser support is very limited, and being part of the Expression Web package, it’s almost unusable.

Unique features: None.

Disadvantages: Limited browser support, expensive.

BrowserSeal

BrowserSeal is a new tool. Similar to SuperPreview, it is an application rather than a Web service, and as such its capture speed is very good. BrowserSeal finished our test case in less than one minute. Browser support is quite broad. With multiple versions of IE, Firefox, Safari, Opera and Chrome, it pretty much covers every browser anyone would want to test. It has two good features that set it apart from the competition: standalone browser support and a command-line interface for automation scripting.

All browsers supported by BrowserSeal can be launched manually, which means that once you’ve found a rendering inconsistency in a browser, you can actually run the problem browser and troubleshoot the issue. This is something most other services do not offer.

The price is very competitive, too: the standard version sells for $49. There is also an automation version with a command-line interface that lets you capture multiple URLs from a script or batch file. The interface is attractive and easy to use. The optional tabbed interface makes it easy to spot even the slightest rendering difference when switching from one capture to another.

Conclusion

A very nice tool, with comprehensive browser support. The interface is easy to use, the capture speed is great, and the price is competitive.

Unique features:: Comes with standalone versions for all major browsers; has command-line mode for automation scripts.

Disadvantages:: Runs on Windows only.

Litmus

Litmus is another Web-based screenshot service. Its browser support is impressive, with 23 browser versions and operating system combinations, including IE, Firefox, Chrome, Safari, Opera, Flock, Camino, SeaMonkey and Netscape. Capture speed is okay but not comparable to that of native applications: our test took five minutes.

The interface is clear and simple but lacks some features. For instance, there is no easy way to compare capture results. All you can do is view them one by one or download them to your PC. The app, though, does support projects, so you don’t have to enter URLs and change browser settings every time you want to take a screenshot, but this is pretty much all it does.

Litmus does not support scrolling; that is, it captures only the top of long pages, which is a major drawback. The price is a bit high for a service that has such basic features: a single-user license costs $588 annually.

Conclusion

Good browser support, and average capture speed, which is probably good enough for most users. But very few features.

Unique features:: None.

Disadvantages: Does not support scrolling, and lacks other standard features found in competing products.

Multi-Browser Viewer

Multi-Browser Viewer is an application but relies on a server farm for browser rendering; in other words, the application is just a graphical interface, so it is as easy to use as an application but suffers the delays of a typical Web-based service.

One interesting feature is that it comes with standalone browsers that can be used for debugging. But note that these are not the same browsers used for screen capture. Multi-Browser Viewer has standalone browsers that can be used for debugging, and it has a rendering farm with many more browsers that can be used for screen capture.

Browser support is impressive, with 54 browser and OS version combinations (out of which 17 are available in standalone versions), including IE, Firefox, Chrome, Opera, Safari, Camino, Konqueror. The price is reasonable: a single-user license costs $129.95 annually.

Feature-wise, it does lag significantly behind the competition: there is no support for authentication or capture delay. Scroll bar support is buggy; in our test case, it worked for IE, Firefox and Safari, but not for Opera.

Conclusion

A good interface and impressive browser support.

Unique features: Standalone versions of some (but not all) browsers.

Disadvantages: Lacks many features of competing products, buggy scroll bar support, runs on Windows only.

Browsera

Browsera is a Web-based screenshot service. Browser support is limited compared to that of most competitors: only IE, Firefox and Safari are supported. The standard plan costs $588 annually. The interface is attractive, fast and clean. You can conveniently organize your screenshot sessions into projects.

Browsera supports authentication, scroll bars and page crawling (i.e. you can ask Browsera to crawl your website recursively and take a screenshot of every page). The screenshot response time is very fast for a Web-based service; it completed our test in three minutes.

Conclusion

A professional service with a good interface and interesting features, but limited browser support.

Unique features: Recursive website crawling.

Disadvantages: Limited browser support, expensive.

Browser Packs

If all you need is to test your website in specific browsers with and you are willing to perform the tests manually, there are a few free services and applications that could help:

At first glance, Spoon looks convenient because it is a Web service, which relieves you from having to install many browsers locally. But I had some stability problems with this service.

Meanwhile, both the IE Collection and BrowserSeal.BrowserPack (offered free of charge, separate from the BrowserSeal commercial screenshot service) work very reliably. I did not have any issues with browsers installed by these packs. The IE Collection has every IE version you could think of. BrowserSeal.BrowserPack, which relies on the IE Collection for IE support, also supports two Firefox, three Opera and two Safari versions.

Conclusion

The following table summarizes services that were tested and analyzed in the article. You can use the separate page for the full table for a better overview. I have included some metrics for each service to make it easier for you to choose the best one based on price, features and performance trade-offs.

Supported BrowsersCapture speedPrice (1 year)InterfaceAuthenticationCapture delayScroll barsSpecial featuresBrowserShotsIE, Firefox, Chrome, Opera, Safari, Dilo, SeaMonkey, Minefield, Epiphany, Flock, Galeon, Konqueror, K-Meleon, Avant, Netscape, Shireteko, Kazehakase, Iceweasel45 minsFreeBadNoNoNoNoneBrowserCamIE, Firefox, Chrome, Opera, Safari, Konqueror, Camino, Netscape, AOL2 mins$999.95GoodYesYesYesMobile browsers support, remote access serviceBrowserLabIE, Firefox, Chrome and Safari1 minFree (till end of 2010)GoodNoYesBuggyNoneSuperPreviewIE, Firefox and Safari1 min$149GoodNoNoYesNoneBrowserSealIE, Firefox, Chrome, Opera and Safari1 min$49GoodYesYesYesStandalone browser versions, support for automation scriptsLitmusIE, Firefox, Chrome, Opera, Safari, Flock, Camino, SeaMonkey, Netscape5 mins$588BasicYesNoNoNoneMulti Browser ViewerIE, Firefox, Chrome, Opera, Safari, Flock, SeaMonkey, Netscape, K-Meleon, Camino, Konqueror, Epiphany, Kazehakase2 mins$129.95GoodNoNoBuggyStandalone browser versionsBrowseraIE, Firefox, Safari3 mins$588GoodYesNoYesRecursive crawling

Obviously, we have no clear winner. Each service has its advantages and disadvantages, and you are left to decide what is the best trade-off for your case. Professional developers would likely not use BrowserShots because of the unreasonably long response time. SuperPreview and Browsera are probably also impractical because of their very limited browser support.

BrowserLab will probably remain popular as long as it is free. Once Adobe starts charging about $20 per month for it, one would hardly have reason to use it, unless you worked in Dreamweaver, which has a BrowserLab extension, because there are much better alternatives.

When choosing a tool, one of the most important factors in your decision will be whether to use a Web service or application. Some people prefer Web-based tools because they do not require installation. Personally, I prefer applications, at least for the development tools that I use frequently. They generally have a better interface and faster response time; they never have outages, and they can be used to debug locally (i.e. on my hard drive or company intranet — although some Web-based services offer a workaround for this issue).

BrowserCam, BrowserSeal, Litmus and Multi-Browser Viewer are all very good choices. But they do vary significantly in price. If you need to test mobile browsers, BrowserCam is probably your only option. For everyone else, I would recommend either BrowserSeal or Multi-Browser Viewer; both come with standalone browser versions that are extremely important for testing. Unfortunately, both of them are Windows only, so Mac users will probably have to go with BrowserLab or BrowserCam. If automatic testing is important to you, then the BrowserSeal automation edition is your best bet.

(al)

© Demiurg for Smashing Magazine, 2010. | Permalink | Post a comment | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: ,

Kategorier: Delte artikler

jQuery Templates and Data Linking (and Microsoft contributing to jQuery)

7. mai 2010 - 17:53
Shared by Tom Ø.
Datalinking will be a hit, really cool, simplifying a lot of tedious dom / ajax glue code!

The jQuery library has a passionate community of developers, and it is now the most widely used JavaScript library on the web today.

Two years ago I announced that Microsoft would begin offering product support for jQuery, and that we’d be including it in new versions of Visual Studio going forward. By default, when you create new ASP.NET Web Forms and ASP.NET MVC projects with VS 2010 you’ll find jQuery automatically added to your project.

A few weeks ago during my second keynote at the MIX 2010 conference I announced that Microsoft would also begin contributing to the jQuery project.  During the talk, John Resig -- the creator of the jQuery library and leader of the jQuery developer team – talked a little about our participation and discussed an early prototype of a new client templating API for jQuery.

In this blog post, I’m going to talk a little about how my team is starting to contribute to the jQuery project, and discuss some of the specific features that we are working on such as client-side templating and data linking (data-binding).

Contributing to jQuery

jQuery has a fantastic developer community, and a very open way to propose suggestions and make contributions.  Microsoft is following the same process to contribute to jQuery as any other member of the community.

As an example, when working with the jQuery community to improve support for templating to jQuery my team followed the following steps:

  1. We created a proposal for templating and posted the proposal to the jQuery developer forum (http://forum.jquery.com/topic/jquery-templates-proposal and http://forum.jquery.com/topic/templating-syntax ).
  2. After receiving feedback on the forums, the jQuery team created a prototype for templating and posted the prototype at the Github code repository (http://github.com/jquery/jquery-tmpl ).
  3. We iterated on the prototype, creating a new fork on Github of the templating prototype, to suggest design improvements. Several other members of the community also provided design feedback by forking the templating code.

There has been an amazing amount of participation by the jQuery community in response to the original templating proposal (over 100 posts in the jQuery forum), and the design of the templating proposal has evolved significantly based on community feedback.

The jQuery team is the ultimate determiner on what happens with the templating proposal – they might include it in jQuery core, or make it an official plugin, or reject it entirely.  My team is excited to be able to participate in the open source process, and make suggestions and contributions the same way as any other member of the community.

jQuery Template Support

Client-side templates enable jQuery developers to easily generate and render HTML UI on the client.  Templates support a simple syntax that enables either developers or designers to declaratively specify the HTML they want to generate.  Developers can then programmatically invoke the templates on the client, and pass JavaScript objects to them to make the content rendered completely data driven.  These JavaScript objects can optionally be based on data retrieved from a server.

Because the jQuery templating proposal is still evolving in response to community feedback, the final version might look very different than the version below. This blog post gives you a sense of how you can try out and use templating as it exists today (you can download the prototype by the jQuery core team at http://github.com/jquery/jquery-tmpl or the latest submission from my team at http://github.com/nje/jquery-tmpl). 

jQuery Client Templates

You create client-side jQuery templates by embedding content within a <script type="text/html"> tag.  For example, the HTML below contains a <div> template container, as well as a client-side jQuery “contactTemplate” template (within the <script type="text/html"> element) that can be used to dynamically display a list of contacts:

The {{= name }} and {{= phone }} expressions are used within the contact template above to display the names and phone numbers of “contact” objects passed to the template.

We can use the template to display either an array of JavaScript objects or a single object. The JavaScript code below demonstrates how you can render a JavaScript array of “contact” object using the above template. The render() method renders the data into a string and appends the string to the “contactContainer” DIV element:

When the page is loaded, the list of contacts is rendered by the template.  All of this template rendering is happening on the client-side within the browser:

 

Templating Commands and Conditional Display Logic

The current templating proposal supports a small set of template commands - including if, else, and each statements. The number of template commands was deliberately kept small to encourage people to place more complicated logic outside of their templates.

Even this small set of template commands is very useful though. Imagine, for example, that each contact can have zero or more phone numbers. The contacts could be represented by the JavaScript array below:

The template below demonstrates how you can use the if and each template commands to conditionally display and loop the phone numbers for each contact:

If a contact has one or more phone numbers then each of the phone numbers is displayed by iterating through the phone numbers with the each template command:

The jQuery team designed the template commands so that they are extensible. If you have a need for a new template command then you can easily add new template commands to the default set of commands.

Support for Client Data-Linking

The ASP.NET team recently submitted another proposal and prototype to the jQuery forums (http://forum.jquery.com/topic/proposal-for-adding-data-linking-to-jquery). This proposal describes a new feature named data linking. Data Linking enables you to link a property of one object to a property of another object - so that when one property changes the other property changes.  Data linking enables you to easily keep your UI and data objects synchronized within a page.

If you are familiar with the concept of data-binding then you will be familiar with data linking (in the proposal, we call the feature data linking because jQuery already includes a bind() method that has nothing to do with data-binding).

Imagine, for example, that you have a page with the following HTML <input> elements:

The following JavaScript code links the two INPUT elements above to the properties of a JavaScript “contact” object that has a “name” and “phone” property:

When you execute this code, the value of the first INPUT element (#name) is set to the value of the contact name property, and the value of the second INPUT element (#phone) is set to the value of the contact phone property. The properties of the contact object and the properties of the INPUT elements are also linked – so that changes to one are also reflected in the other.

Because the contact object is linked to the INPUT element, when you request the page, the values of the contact properties are displayed:

More interesting, the values of the linked INPUT elements will change automatically whenever you update the properties of the contact object they are linked to.

For example, we could programmatically modify the properties of the “contact” object using the jQuery attr() method like below:

Because our two INPUT elements are linked to the “contact” object, the INPUT element values will be updated automatically (without us having to write any code to modify the UI elements):

Note that we updated the contact object above using the jQuery attr() method. In order for data linking to work, you must use jQuery methods to modify the property values.

Two Way Linking

The linkBoth() method enables two-way data linking. The contact object and INPUT elements are linked in both directions. When you modify the value of the INPUT element, the contact object is also updated automatically.

For example, the following code adds a client-side JavaScript click handler to an HTML button element. When you click the button, the property values of the contact object are displayed using an alert() dialog:

The following demonstrates what happens when you change the value of the Name INPUT element and click the Save button. Notice that the name property of the “contact” object that the INPUT element was linked to was updated automatically:

The above example is obviously trivially simple.  Instead of displaying the new values of the contact object with a JavaScript alert, you can imagine instead calling a web-service to save the object to a database. The benefit of data linking is that it enables you to focus on your data and frees you from the mechanics of keeping your UI and data in sync.

Converters

The current data linking proposal also supports a feature called converters. A converter enables you to easily convert the value of a property during data linking.

For example, imagine that you want to represent phone numbers in a standard way with the “contact” object phone property. In particular, you don’t want to include special characters such as ()- in the phone number - instead you only want digits and nothing else. In that case, you can wire-up a converter to convert the value of an INPUT element into this format using the code below:

Notice above how a converter function is being passed to the linkFrom() method used to link the phone property of the “contact” object with the value of the phone INPUT element. This convertor function strips any non-numeric characters from the INPUT element before updating the phone property.  Now, if you enter the phone number (206) 555-9999 into the phone input field then the value 2065559999 is assigned to the phone property of the contact object:

You can also use a converter in the opposite direction also. For example, you can apply a standard phone format string when displaying a phone number from a phone property.

Combining Templating and Data Linking

Our goal in submitting these two proposals for templating and data linking is to make it easier to work with data when building websites and applications with jQuery. Templating makes it easier to display a list of database records retrieved from a database through an Ajax call. Data linking makes it easier to keep the data and user interface in sync for update scenarios.

Currently, we are working on an extension of the data linking proposal to support declarative data linking. We want to make it easy to take advantage of data linking when using a template to display data.

For example, imagine that you are using the following template to display an array of product objects:

Notice the {{link name}} and {{link price}} expressions. These expressions enable declarative data linking between the SPAN elements and properties of the product objects. The current jQuery templating prototype supports extending its syntax with custom template commands. In this case, we are extending the default templating syntax with a custom template command named “link”.

The benefit of using data linking with the above template is that the SPAN elements will be automatically updated whenever the underlying “product” data is updated.  Declarative data linking also makes it easier to create edit and insert forms. For example, you could create a form for editing a product by using declarative data linking like this:

Whenever you change the value of the INPUT elements in a template that uses declarative data linking, the underlying JavaScript data object is automatically updated. Instead of needing to write code to scrape the HTML form to get updated values, you can instead work with the underlying data directly – making your client-side code much cleaner and simpler.

Downloading Working Code Examples of the Above Scenarios

You can download this .zip file to get with working code examples of the above scenarios.  The .zip file includes 4 static HTML page:

  • Listing1_Templating.htm – Illustrates basic templating.
  • Listing2_TemplatingConditionals.htm – Illustrates templating with the use of the if and each template commands.
  • Listing3_DataLinking.htm – Illustrates data linking.
  • Listing4_Converters.htm – Illustrates using a converter with data linking.

You can un-zip the file to the file-system and then run each page to see the concepts in action.

Summary

We are excited to be able to begin participating within the open-source jQuery project.  We’ve received lots of encouraging feedback in response to our first two proposals, and we will continue to actively contribute going forward.  These features will hopefully make it easier for all developers (including ASP.NET developers) to build great Ajax applications.

Hope this helps,

Scott

P.S. [In addition to blogging, I am also now using Twitter for quick updates and to share links. Follow me at: twitter.com/scottgu]

Datalinking will be a hit, really cool, simplifying a lot of tedious dom / ajax glue code!
Kategorier: Delte artikler

VI Editor / Linux Terminal Cheat Sheet (PDF)

3. mai 2010 - 20:52

  

We’ve been releasing many icon sets and WordPress themes on Smashing Magazine, yet today we are glad to announce the release of a bit different freebie. This post features a VI Help Sheet, a cheat sheet for the VI Editor, for all web-developers out there who are working on Linux. The help sheet was designed by GoSquared and released for Smashing Magazine and its readers.

The cheat sheet contains terminal commands for modes and controls, inserting text, cursor navigation, deleting text, searching and replacing. Download it. Print it. Stick it on the wall and get commanding.

Download the cheat sheet for free!

Behind the design

As always, here are some insights from the designers:

We created the VI Editor cheat sheet because of the amount of time members of our team spend working in the Linux Terminal. Working on our web app is a full time occupation and for the developers, using the command line 24/7 can be exhausting. Forgetting a command here or there can really break up their workflow. So we put together the VI cheat sheet that can be used for quick reference as and when you need!

Thank you, guys. We really appreciate your work and your good intentions.

© Smashing Editorial for Smashing Magazine, 2010. | Permalink | 42 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags:

Kategorier: Delte artikler

BurnAware Free 3 Beta Improves Burning Performance, Supports Tons of Formats [Downloads]

29. april 2010 - 14:00
Windows: BurnAware Free has one of the most simple interfaces you can find for making a CD or DVD from a computer. A free beta of its upcoming third release converts many formats to usable discs, and won't tax your system's resources. More »


Kevin Purdy1808336395713846081108737550551806355671128120451127870049690634475683170588018214349957743663114168092926345061445841790073850559515898361906081778882630631271081178081198802444430786149052843524698612014130147628427966080792673685620772700252138796913791134316481459257320409203052096516916673492431770098890953472918607202083155766637742042141741434449120350431042743436369891104406755512913617490056053878568756407431512376346451522030806259556973756197451144841013356313275540357398299485199606202445906757296028141158826676430479631681257301949509903424205313825653323991641095242230787355468160791818429362624795008385942203113074377099789829459906019091274879391195950005318164173817773437206042186244214091750400217585406373411444116139285331794231306066439032807653996240641654663171966541909247281630046244245062265197003021495160532242476211357037507880706953004069436
Kategorier: Delte artikler

Facebook Open Graph: The Definitive Guide For Publishers, Users and Competitors

23. april 2010 - 19:50

Facebook just shook the tech world by announcing several major initiatives that collectively constitute an aggressive move to weave the social net on top of the existing Web.The rumors were that the leading social network would launch a "Like" button for the entire Web. Instead, Zuckerberg & Co. unveiled a bold and visionary new platform that cannot be ignored.

The bits of this platform bring together the visions of a social, personalized and semantic Web that have been discussed since del.icio.us pioneered Web 2.0 back in 2004. Facebook's vision is both minimalistic and encompassing - but its ambition is to kill off its competition and use 500 million users to take over entire Web.

Sponsor

Whether we like it (pun intended) or not, we have to understand what this move means. It impacts users, publishers, competitors and, of course, Facebook itself. In this post, we summarize what Facebook announced and ponder the impact this will have on everyone.

Facebook Open Graph: Publisher Plugins

The Open Graph is a set combination of publisher plugins, semantic markup and a developer API.

"This new API turns Facebook into a read/write storage of user's tastes."

Login with Faces & Facepile: The simpler publisher plugins enhance Facebook Connect. They makes it easy and compelling to sign in by leveraging Facebook cookies and showing faces of Facebook friends who are already members of the service.

Like Button and Like Box: These plugins add the liking feature to any content, typically the whole page. Both can be enhanced with semantic markup, described below. But the very basic intent for these is to get users to Like on the site and post a link to Facebook, which is then permanently stored on a user's profile and points back to the original site.

Activity Feed and Live Stream: These plugins show static and dynamic activity on the site. Activity Feed lists recent likes and comments from the site, while Live Stream shows a real-time view of activity on the site and is intended for interactive events.

Recommendations: This plugin surfaces personalized recommendations for the user based on what friends and everyone else is liking on the site. It is intended to drive the users to other pages on the site.

Facebook Open Graph: Semantic Markup

Facebook announced simple, RDF-based markup to make the plugins smarter. In a nutshell, the markup enables publishers to say what object is on the page - a movie, a book, a recording artist, an event, a sports team, etc. This automatically enables semantics, that is, an understanding that the user is not just interacting with a webpage, but that he or she is liking a specific kind of thing. Semantics then leads to bucketing of the objects into categories like books, movies, music, etc., and gives rise to all sort of applications, including personalized recommendations.

Perhaps even more importantly, the markup helps Facebook connect the users across common interests across different websites. For example, if both Pandora and Last.fm annotate a page about The Beatles using Facebook's markup, then users will be able to see their friends, who like the Beatles across different sites. This is very significant, because the data around friends is sparse and scattered around the sites. Previously, Facebook would surface this data in the stream without persisting it. Now, the information about a friend's likes of movies, music, books, recording artists, events, sports team, etc. will be permanent on Facebook profiles and readily available in context around the Web.

Facebook Open Graph: New API

The new Facebook API is elegant and streamlined. It makes it easy to access user information (with permission of course) such as profile, friends, etc. All of the calls are REST based and return JSON objects. For example, my profile information can be fetched like this: http://graph.facebook.com/alexiskold. The authentication is based on OAuth 2.0 protocol and makes it simple not only to connect, but to also prompt for permissions to access user information.

This new API turns Facebook into a read/write storage of users' tastes. And not just one user - all Facebook users.

Implications for the Users

With this release, Facebook asks users if they are willing to trade off privacy for personalization. To be clear, no personalization is ever possible without users telling a system about their tastes. What Facebook is asking for is necessary in order to then create personalized Web experience. Whether users want this sort of thing is a different question, but assuming that you want to know more about your friends you will.

Friends' interests around entertainment, sports, travel, etc. will be categorized and available. It will be easy to figure out what your friends are into both on Facebook and around the Web. In addition, Facebook is going to be using its own engine to bring you recommendations for related content. This will further accelerate the discovery and cross linking between friends. This will likely further impact the amount of search people do around the Web. As Fred Wilson pointed out - passed links replace search.

Yet, the crux of user implications is neither of the above, but one single issue: privacy. It is unclear at this point that this issue is a concern for actual Facebook users, but it is clear that tech world is raising its eyebrows: Marshall Kirkpatrick, Dave Winer, Jeff Jarvis and many others expressed their concerns. People are saying that not only Facebook will know too much about us (because Google is already there today), but that it will be able to control too much.

Personally, I am skeptical that the average Facebook user is going to care all that much. People are notoriously naive about being watched on the Web, and this is likely to be no exception. More likely than not, Facebook users will enjoy the personalization aspects of the new platform and won't think much about it - until Facebook starts openly targeting them.

This was not been part of f8 of course, but Facebook is likely to use the information for targeting. After all, advertising is a major part of its monetization already so why won't it make it even better? If this targeting is too spot on, lots of users will probably get annoyed. Facebook is likely to sooth them via Facebook credits and heavy discounts, negotiated because of their massive volume.

How exactly users react remains to be seen, but they will probably like the new Facebook more because of increased relevancy and interaction with friends around the Web.

Next page:Implications for Publishers Implications for Publishers

On the surface, this Facebook offering is a no-brainer for publishers. Who does not want more social activity on their site? However, in reality this is far from a slam dunk. To understand why, consider two types of sites: sites that are either social networks or have social networking integrated, and the sites that have their own commenting and ratings systems. In the first camp you will find Last.fm, Flixster, Goodreads, etc. None of these sites were a launch partner, understandably so. Social connections around music, movies and books are their bread and butter as are the ratings, reviews and recommendations. If they switch to Facebook for all of this, what do they have left?

So any site that already has social networking built in has to decide to abandon that before jumping into the Facebook Open Graph. The even worse problem is the ownership of ratings and comments. Are publishers really ready to give that up? Nobody seriously thinks that users are going to be rating through Facebook and then through the site again. So how is this going to work? It is unclear at this point, but it's likely publishers will ask for ways to replicate or export comments and likes that users sent to Facebook via their site. Perhaps an open API that allows publishers to manipulate the data is the answer, but it is easy to see how some publishers would be very concerned.

"You don't need to look too closely to see that Facebook is creating a feedback loop, which includes it, users and the rest of the Web and excludes its competitors."

However, if you run a website like eCommerce or a blog or a service like Pandora that currently does not have a lot of social built-in, this offering is a no-brainer as it will instantly start recycling your pages through the massive Facebook power of passed links.

Implications for Competitors

This is aggressive and brilliant move by Facebook - and Twitter, Google, Yahoo, MySpace, AOL, eBay, Amazon and others, except for Microsoft, should be really worried. It appears that Microsoft is content with just partnering with Facebook, perhaps rightly so. Possibly a Bing deal is in the works, which would make a lot of sense.

For all other players on the Web, the worry is that Facebook is trying to close the loop in exclusively owning user eyeballs. Apparently Facebook is not content with just connecting people; it wants to connect people and things. And not only that, it wants to do it around the Web. And not just any people - friends. You don't need to look too closely to see that Facebook is creating a feedback loop, which includes it, users and the rest of the Web and excludes its competitors.

There are several things that other big players might try to do, the worst of which is to try to mimic Facebook. The "me too" that we've seen way too many times recently has not worked, and will not work now. The second best choice is to try to block it. As strange as it sounds it might just work. Between publisher and user issues there are a lot of concerns, and a carefully orchestrated and coordinated campaign may seriously hurt this initiative. Remember, Beacon was brought down fairly quickly by a combination of user backlash and derogatory press.

The third option - to embrace and extend this platform, to innovate on top of it - is likely to be the best move. Innovation has always trumped stagnation on the Web. The problem is that it might not be that easy to embrace this initiative. After all, it does not look like Facebook asked everyone to gather around the table and cooperate on this. It might not be open to cooperation, but if it is then this is the way forward.

Technically speaking, what Facebook has done is elegant and correct. From markup, to plugins, to API, all of it is modern and awesome. The missing bit is that Facebook appears to be the only repository of data in this equation - and that makes the whole offering seriously closed. Publishers and users don't have a choice as to where to store the data. It is going to Facebook and Facebook alone. Perhaps there is a way to rework the system in a way that fixes that. We will look forward to see how this unfolds.

Implications for Facebook

Clearly this announcement is yet another turning point for Facebook. Before the conference Facebook was the biggest social network on the planet. If its vision actually happens, Facebook will be the biggest network of people and things on the planet- or to put it differently, it will be the taste graph of the planet.

Obviously there is a different technology that Facebook will need to be building. It already perfected the social networking part, but semantic analysis, recommendation systems, vertical categories like movies and books, as well as having completely open read/write storage of tastes is completely new to the team. The biggest challenge that Facebook will face is to inject, re-deliver and most importantly make use of the data that is flowing into it.

Facebook will be doing some serious number crunching and UI revamps to prepare for this next phase of its life. But perhaps the biggest experiment and test will be delivering relevancy. Google succeed with this in search; Facebook will now have the challenge to bring relevancy to the recommendations and taste-based advertising arena.

Next page:Implications For the Semantic Web Implications For the Semantic Web

One of the most exciting parts of the Facebook announcement to me personally is the possible breakthrough in semanticizing the Web. We've written previously about the Semantic Web here, and it has been a personal passion of mine. What Facebook has done has a chance to make vast parts of the consumer Web including movies, books, music, events, sports, and news semantically tagged. Publishers and websites finally have a strong incentive to mark things up and get return traffic from Facebook.

"This is a great chance for the Semantic Web to finally hit consumer verticals and become real."

The actual protocol that Facebook suggested is very simple. To describe the object on the page, the site owner needs to specify the title, type of the object, image, url and the name of the site using simple meta tags. The format is extensible and additional tags can be added. For example, for a book a site can add an isbn number. This format leaves room for ambiguity. The goal of classic semantic markups traditionally has been to refer to entities precisely; for example adding the director to a movie, or a year to remakes. The Facebook protocol does not seem to have this.

There were lots of previous efforts to markup the Web. To name a few, RDF, microformats, Google Rich Snippets, Yahoo's Search Monkey (based on RDF and microformats), and lastly, abmeta, which was developed by me with help from Peter Mika at Yahoo. Of all these formats, Facebook's is most similar to abmeta because the markup is placed into meta tags, and is simple and human readable. This simplicity is the key to broad adoption.

So all around, this is a great chance for the Semantic Web to finally hit consumer verticals and become real.

Implications for Developers

Every new rich platform that has been rolled out in the past couple of years presented a big opportunity for developers and this one will be no exception. While we do not know exactly what sort of applications will be build on top of new Facebook, we know that they will be very powerful. This platform has the potential to give rise to to new kind of personalization and attention economy that people have been talking about for years. It has of course, a chance to majorly backfire, but I am optimistic.

This will be a gold rush for application that is likely to last for at least a year, like the last one did. It's too early to tell whether this will be a platform that survives and does not hurt is participants. However, it is very likely that the best applications built on this platform will be owned by Facebook. Still, there is a huge new opportunity here for developers and the sky is the limit.

Checkmate?

Facebook made a major chess move. It might have checkmated its competitors, or perhaps it might have to lose another piece like it lost Beacon. Whichever is the case, right now there are deep implications for Facebook and its competitors, publishers, users and the Web at large. What Facebook has announced cannot be ignored and can not be undone. Everyone needs to figure out the next steps and understand what to do.

Time will tell where we land, but my gut is that positive things will come out of this. If nothing else, let's give Facebook credit for innovation and re-imagination the Web.

Discuss

Alex Iskold020817683598882630190738483958912556811217959305948508351143092964182327390083130106677465462117957606356215917021158258046723157619079423730912959998857672314703582849762869493590124137709611601072821789530359934693103709004265449352502205173661878575714719940434323544972497646003510157725908942025003636474794705194340235259939906736321910373899759076777721093286628054641374700206828016628171842513413989044346433210148781099957339424960056709210324022565805605387856875640743097750775623063850460675791409141115931509176024138551132407127479229637311473521162555331663968499503658597455233485075129603427619505561450787465078518880850109253492207681780321075164459217228284981811947907288500188111451039578759002484126359650421326733800130151284888439147908921988665753059944021047032028580505180724830552532895050100458366911360432541061841259265397327081042121958679159229313979508357794707550147032502836642528570214160185338818022515605347615714220536172030244405918426370431252014908044253015901375800080364082
Kategorier: Delte artikler

Seven JavaScript Things I Wish I Knew Much Earlier In My Career

20. april 2010 - 15:21

  

I’ve been writing JavaScript code for much longer than I care to remember. I am very excited about the language’s recent success; it’s good to be a part of that success story. I’ve written dozens of articles, book chapters and one full book on the matter, and yet I keep finding new things. Here are some of the “aha!” moments I’ve had in the past, which you can try out rather than waiting for them to come to you by chance.

[By the way, did you know we have a brand new free Smashing Email Newsletter? Subscribe now and get fresh short tips and tricks on Tuesdays!]

Shortcut Notations

One of the things I love most about JavaScript now is shortcut notations to generate objects and arrays. So, in the past when we wanted to create an object, we wrote:

var car = new Object(); car.colour = 'red'; car.wheels = 4; car.hubcaps = 'spinning'; car.age = 4;

The same can be achieved with:

var car = { colour:'red', wheels:4, hubcaps:'spinning', age:4 }

Much shorter, and you don’t need to repeat the name of the object. Right now, car is fine, but what happens when you use invalidUserInSession? The main gotcha in this notation is IE. Never ever leave a trailing comma before the closing curly brace or you’ll be in trouble.

The other handy shortcut notation is for arrays. The old school way of defining arrays was this:

var moviesThatNeedBetterWriters = new Array( 'Transformers','Transformers2','Avatar','Indiana Jones 4' );

The shorter version of this is:

var moviesThatNeedBetterWriters = [ 'Transformers','Transformers2','Avatar','Indiana Jones 4' ];

The other thing about arrays is that there is no such thing as an associative array. You will find a lot of code examples that define the above car example like so:

var car = new Array(); car['colour'] = 'red'; car['wheels'] = 4; car['hubcaps'] = 'spinning'; car['age'] = 4;

This is not Sparta; this is madness—don’t bother with this. “Associative arrays” is a confusing name for objects.

Another very cool shortcut notation is the ternary notation for conditions. So, instead of the following…

var direction; if(x < 200){ direction = 1; } else { direction = -1; }

… You could write a shorter version using the ternary notation:

var direction = x < 200 ? 1 : -1;

The true case of the condition is after the question mark, and the other case follows the colon.

JSON As A Data Format

Before I discovered JSON to store data, I did all kinds of crazy things to put content in a JavaScript-ready format: arrays, strings with control characters to split, and other abominations. The creation of JSON by Douglas Crockford changed all that. Using JSON, you can store complex data in a format that is native to JavaScript and doesn't need any extra conversion to be used immediately.

JSON is short for "JavaScript Object Notation" and uses both of the shortcuts we covered earlier.

So, if I wanted to describe a band, for example, I could do the following:

var band = { "name":"The Red Hot Chili Peppers", "members":[ { "name":"Anthony Kiedis", "role":"lead vocals" }, { "name":"Michael 'Flea' Balzary", "role":"bass guitar, trumpet, backing vocals" }, { "name":"Chad Smith", "role":"drums,percussion" }, { "name":"John Frusciante", "role":"Lead Guitar" } ], "year":"2009" }

You can use JSON directly in JavaScript and, when wrapped in a function call, even as a return format of APIs. This is called JSON-P and is supported by a lot of APIs out there. You can use a data endpoint, returning JSON-P directly in a script node:

<div id="delicious"></div><script> function delicious(o){ var out = '<ul>'; for(var i=0;i<o.length;i++){ out += '<li><a href="' + o[i].u + '">' + o[i].d + '</a></li>'; } out += '</ul>'; document.getElementById('delicious').innerHTML = out; } </script> <script src="http://feeds.delicious.com/v2/json/codepo8/javascript?count=15&callback=delicious"></script>

This calls the Delicious Web service to get my latest JavaScript bookmarks in JSON format and then displays them as an unordered list.

In essence, JSON is probably the most lightweight way of describing complex data—and it runs in a browser. You can even use it in PHP using the json_decode() function.

Native JavaScript Functions (Math, Array And String)

One thing that amazed me is how much easier my life got once I read up thoroughly on the math and string functions of JavaScript. You can use these to avoid a lot of looping and conditions. For example, when I had the task of finding the largest number in an array of numbers, I used to write a loop, like so:

var numbers = [3,342,23,22,124]; var max = 0; for(var i=0;i<numbers.length;i++){ if(numbers[i] > max){ max = numbers[i]; } } alert(max);

This can be achieved without a loop:

var numbers = [3,342,23,22,124]; numbers.sort(function(a,b){return b - a}); alert(numbers[0]);

Notice that you cannot use sort() on a number array because it sorts lexically. There's a good tutorial on sort() here in case you need to know more.

Another interesting method is Math.max(). This one returns the largest number from a list of parameters:

Math.max(12,123,3,2,433,4); // returns 433

Because this tests for numbers and returns the largest one, you can use it to test for browser support of certain properties:

var scrollTop= Math.max( doc.documentElement.scrollTop, doc.body.scrollTop );

This works around an Internet Explorer problem. You can read out the scrollTop of the current document, but depending on the DOCTYPE of the document, one or the other property is assigned the value. When you use Math.max() you get the right number because only one of the properties returns one; the other will be undefined. You can read more about shortening JavaScript with math functions here.

Other very powerful functions to manipulate strings are split() and join(). Probably the most powerful example of this is writing a function to attach CSS classes to elements.

The thing is, when you add a class to a DOM element, you want to add it either as the first class or to already existing classes with a space in front of it. When you remove classes, you also need to remove the spaces (which was much more important in the past when some browsers failed to apply classes with trailing spaces).

So, the original function would be something like:

function addclass(elm,newclass){ var c = elm.className; elm.className = (c === '') ? newclass : c+' '+newclass; }

You can automate this using the split() and join() methods:

function addclass(elm,newclass){ var classes = elm.className.split(' '); classes.push(newclass); elm.className = classes.join(' '); }

This automatically ensures that classes are space-separated and that yours gets tacked on at the end.

Event Delegation

Events make Web apps work. I love events, especially custom events, which make your products extensible without your needing to touch the core code. The main problem (and actually one of its strengths) is that events are removed from the HTML—you apply an event listener to a certain element and then it becomes active. Nothing in the HTML indicates that this is the case though. Take this abstraction issue (which is hard for beginners to wrap their heads around) and the fact that "browsers" such as IE6 have all kind of memory problems and too many events applied to them, and you'll see that not using too many event handlers in a document is wise.

This is where event delegation comes in. When an event happens on a certain element and on all the elements above it in the DOM hierarchy, you can simplify your event handling by using a single handler on a parent element, rather than using a lot of handlers.

What do I mean by that? Say you want a list of links, and you want to call a function rather than load the links. The HTML would be:

<h2>Great Web resources</h2> <ul id="resources"> <li><a href="http://opera.com/wsc">Opera Web Standards Curriculum</a></li> <li><a href="http://sitepoint.com">Sitepoint</a></li> <li><a href="http://alistapart.com">A List Apart</a></li> <li><a href="http://yuiblog.com">YUI Blog</a></li> <li><a href="http://blameitonthevoices.com">Blame it on the voices</a></li> <li><a href="http://oddlyspecific.com">Oddly specific</a></li> </ul>

The normal way to apply event handlers here would be to loop through the links:

// Classic event handling example (function(){ var resources = document.getElementById('resources'); var links = resources.getElementsByTagName('a'); var all = links.length; for(var i=0;i<all;i++){ // Attach a listener to each link links[i].addEventListener('click',handler,false); }; function handler(e){ var x = e.target; // Get the link that was clicked alert(x); e.preventDefault(); }; })();

This could also be done with a single event handler:

(function(){ var resources = document.getElementById('resources'); resources.addEventListener('click',handler,false); function handler(e){ var x = e.target; // get the link tha if(x.nodeName.toLowerCase() === 'a'){ alert('Event delegation:' + x); e.preventDefault(); } }; })();

Because the click happens on all the elements in the list, all you need to do is compare the nodeName to the right element that you want to react to the event.

Disclaimer: while both of the event examples above work in browsers, they fail in IE6. For IE6, you need to apply an event model other than the W3C one, and this is why we use libraries for these tricks.

The benefits of this approach are more than just being able to use a single event handler. Say, for example, you want to add more links dynamically to this list. With event delegation, there is no need to change anything; with simple event handling, you would have to reassign handlers and re-loop the list.

Anonymous Functions And The Module Pattern

One of the most annoying things about JavaScript is that it has no scope for variables. Any variable, function, array or object you define that is not inside another function is global, which means that other scripts on the same page can access—and will usually override— them.

The workaround is to encapsulate your variables in an anonymous function and call that function immediately after you define it. For example, the following definition would result in three global variables and two global functions:

var name = 'Chris'; var age = '34'; var status = 'single'; function createMember(){ // [...] } function getMemberDetails(){ // [...] }

Any other script on the page that has a variable named status could cause trouble. If we wrap all of this in a name such as myApplication, then we work around that issue:

var myApplication = function(){ var name = 'Chris'; var age = '34'; var status = 'single'; function createMember(){ // [...] } function getMemberDetails(){ // [...] } }();

This, however, doesn't do anything outside of that function. If this is what you need, then great. You may as well discard the name then:

(function(){ var name = 'Chris'; var age = '34'; var status = 'single'; function createMember(){ // [...] } function getMemberDetails(){ // [...] } })();

If you need to make some of the things reachable to the outside, then you need to change this. In order to reach createMember() or getMemberDetails(), you need to return them to the outside world to make them properties of myApplication:

var myApplication = function(){ var name = 'Chris'; var age = '34'; var status = 'single'; return{ createMember:function(){ // [...] }, getMemberDetails:function(){ // [...] } } }(); // myApplication.createMember() and // myApplication.getMemberDetails() now works.

This is called a module pattern or singleton. It was mentioned a lot by Douglas Crockford and is used very much in the Yahoo User Interface Library YUI. What ails me about this is that I need to switch syntaxes to make functions or variables available to the outside world. Furthermore, if I want to call one method from another, I have to call it preceded by the myApplication name. So instead, I prefer simply to return pointers to the elements that I want to make public. This even allows me to shorten the names for outside use:

var myApplication = function(){ var name = 'Chris'; var age = '34'; var status = 'single'; function createMember(){ // [...] } function getMemberDetails(){ // [...] } return{ create:createMember, get:getMemberDetails } }(); //myApplication.get() and myApplication.create() now work.

I've called this "revealing module pattern."

Allowing For Configuration

Whenever I've written JavaScript and given it to the world, people have changed it, usually when they wanted it to do things that it couldn't do out of the box—but also often because I made it too hard for people to change things.

The workaround is to add configuration objects to your scripts. I've written about JavaScript configuration objects in detail, but here's the gist:

  • Have an object as part of your whole script called configuration.
  • In it, store all of the things that people will likely change when they use your script:
    • CSS ID and class names;
    • Strings (such as labels) for generated buttons;
    • Values such as "number of images being displayed," "dimensions of map";
    • Location, locale and language settings.
  • Return the object as a public property so that people can override it.

Most of the time you can do this as a last step in the coding process. I've put together an example in "Five things to do to a script before handing it over to the next developer."

In essence, you want to make it easy for people to use your code and alter it to their needs. If you do that, you are much less likely to get confusing emails from people who complain about your scripts and refer to changes that someone else actually did.

Interacting With The Back End

One of the main things I learned from all my years with JavaScript is that it is a great language with which to make interactive interfaces, but when it comes to crunching numbers and accessing data sources, it can be daunting.

Originally, I learned JavaScript to replace Perl because I was sick of copying things to a cgi-bin folder in order to make it work. Later on, I learned that making a back-end language do the main data churning for me, instead of trying to do all in JavaScript, makes more sense with regard to security and language.

If I access a Web service, I could get JSON-P as the returned format and do a lot of data conversion on the client, but why should I when I have a server that has a richer way of converting data and that can return the data as JSON or HTML… and cache it for me to boot?

So, if you want to use AJAX, learn about HTTP and about writing your own caching and conversion proxy. You will save a lot of time and nerves in the long run.

Browser-Specific Code Is A Waste Of Time. Use Libraries!

When I started Web development, the battle between using document.all and using document.layers as the main way to access the document was still raging. I chose document.layers because I liked the idea of any layer being its own document (and I had written more than enough document.write solutions to last a lifetime). The layer model failed, but so did document.all. When Netscape 6 went all out supporting only the W3C DOM model, I loved it, but end users didn't care. End users just saw that this browser didn't show the majority of the Internets correctly (although it did)—the code we produced was what was wrong. We built short-sighted code that supported a state-of-the-art environment, and the funny thing about the state of the art is that it is constantly changing.

I've wasted quite some time learning the ins and outs of all of the browsers and working around their issues. Doing this back then secured my career and ensured that I had a great job. But we shouldn't have to go through this trial by fire any longer.

Libraries such as YUI, jQuery and Dojo are here to help us with this. They take on the problems of browsers by abstracting the pains of poor implementation, inconsistencies and flat-out bugs, and relieve us of the chore. Unless you want to beta test a certain browser because you're a big fan, don't fix browser issues in your JavaScript solutions, because you are unlikely to ever update the code to remove this fix. All you would be doing is adding to the already massive pile of outdated code on the Web.

That said, relying solely on libraries for your core skill is short-sighted. Read up on JavaScript, watch some good videos and tutorials on it, and understand the language. (Tip: closures are God's gift to the JavaScript developer.) Libraries will help you build things quickly, but if you assign a lot of events and effects and need to add a class to every HTML element in the document, then you are doing it wrong.

Resources

In addition to the resources mentioned in this article, also check out the following to learn more about JavaScript itself:

Related Posts

You may be interested in the following related posts:

(al)

© Christian Heilmann for Smashing Magazine, 2010. | Permalink | 132 comments | Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: ,

Kategorier: Delte artikler

Norway Uses iPad to Run the Government During Icelandic Volcano

16. april 2010 - 6:16

Thousands of travelers are stranded throughout Europe as ash continues to rain down from an erupting volcano in Iceland this week. Among them is Norwegian Prime Minister Jens Stoltenberg who, according to his press secretary, is “running the Norwegian government from the United States via his new iPad.”

CNN reports that the Norwegian prime minister was in New York this week for President Obama’s nuclear summit and has been left stranded on American soil thanks to the widespread closure of most of European airspace. The volcanic eruption sent a cloud of ash toward mainland Europe that could take up to 48 hours to dissipate, resulting in over 6,000 canceled flights across the E.U.

The people of Norway, however, can rest easy knowing all political affairs will be safely and soundly resolved via Apple’s latest gadget wunderkind. Meanwhile, Israel has apparently rejected the potential diplomatic utility of the iPad, considering the country has banned all imports of the device. Maybe Steve Jobs can hire Stoltenberg to do some outreach.

The obvious question here is: Should Obama get an iPad?

[img credit: Statsministerens Kontor]

[via Gizmodo]


For more Apple coverage, follow Mashable Apple on Twitter or become a fan on Facebook


Reviews: Facebook, Twitter

Tags: government, Iceland, ipad, Israel, Norway, obama, politics, travel, volcano

Kategorier: Delte artikler

Two Useful Google Chrome Extensions for SEO Guys

11. april 2010 - 20:30


If you own a website or are interested in helping others with their SEO, then you should add the Google chrome extensions covered in this article into your SEO toolbox.

The best way to use these tools is to… well… use them! Then, as you are examining the data points, question the data and do your own research into their meaning. But even before that, make sure to have some clear objectives in mind that lead to a specific result. You will also want to check out the 10 common SEO mistakes that can destroy your website.

SEO Site Tools

The first thing you may notice as you navigate to various web sites with this Google Chrome extension installed is a small green box with a number inside, this is the current Google PageRank of the website you are viewing. When you click the plugin’s icon in the toolbar you get a drop down with the following categories: External Page Data, Page Elements, Social Media, Page Terms / Tools, Server / Domain Info and Suggestions. Let’s go through each in turn.

External Page Data

In this section, you can get a quick overview of a web site’s overall performance. Google, Bing, Yahoo Site Explorer, Alexa Data, Quantcast, SeoMoz Linkscape, DMOZ Directory, Majestic SEO and SEM Rush information is at your fingertips. Clicking on any of the data elements takes you to the source web page for that data.

Page Elements

If you need technical information regarding a particular web page, this section delivers. Using the information here, you can determine how to modify the HTML and content to better optimize your page for targeted keywords.

If you are new to on-site SEO, you will want to review this resource (PDF link) to best understand how to use this wealth of information to your advantage. Then keep this cheat sheet handy for the web development aspect.

The Page Elements section is also useful for determining whether you should pursue the web site for a link back to your web site by examining the no-follow information.

For HTML and CSS purists, there is built-in HTML and CSS validation.

Social Media

The data provided here does not go too deep, but nonetheless you can get a quick snapshot that provides the basic social media exposure of a website.

If you are analyzing your own web pages with this Google Chrome extension, do not take the advice the program gives you when you are not found in a particular network such as Reddit. In general, you don’t want to submit your own site to a social media web site yourself. Instead, make it easy for your readers to do so by creating great content.

Page Terms / Tools

This section is still in development and you will want to check out the developers website to monitor changes. In short, this section helps you with keyword research functions.

There are also a few miscellaneous tools in this section that I suspect will end up in their own category over time. For example, you can test the loading time and examine the ramifications of your web site’s page size in terms of number of viewers able to view your web site correctly.

Server/Domain Info

DNS, WhoIS, server type, IP address, XML sitemap and robots.txt information can be viewed here along with the information on record for the domain’s owner.

Suggestions

The author of the plugin has some SEO enhancement suggestions in this section that are useful for some quick web site changes you may have overlooked.

Chrome SEO

The approach with this plugin is to display all of the data on one simple page for a quick understanding of the overall SEO status of a particular web page. The data is split into the following sections: Pages Indexed, Backlinks, Traffic and Rank, Bookmarks, Cached, On Site and Domain Details. Following is a quick rundown of each section.

Pages Indexed

At a glance, you can view how many web pages these search engines indexed: Google, Bing, Yahoo, Ask and MajesticSEO. If you click show more you get a few more options, but as of this writing they are not active. Clicking on any of the links takes you to the source data.

Backlinks

Here is a list of sources that show how many web sites are linking into the web page. You can view the source of the data by clicking on the links and if you click show more you will find a few more data sources.

Traffic and Rank

Here is a list of sites that rank web pages by some algorithm that is normally proprietary. These data points are useful to get a quick overview of the general popularity of a web site and its trend. For Alexa and Quancast, a graph is also available for a quick visual interpretation.

Bookmarks

Only Delicious and Digg are integrated at the time of this writing, DMOZ and StumbleUpon are coming soon.

Cached

These links are useful if you need to find an older version of the web site.

On Site

Here is where you find the robots.txt and sitemap.xml files.

Domain Details

Domain and server details are here along with a link to the web site’s Whois information.

Keywords

The tab with the key symbol integrates with Google’s keyword tool to help you with keyword research; however, the service is still in alpha so you may want to cross check your results.

Misc

There is also a check mark at the bottom of the plugin window, that when clicked, shows you the do-follow status of the links on the web page.

Conclusion

Some of the data you will find in Chrome SEO is also found in SEO Site Tools and vice versa; however, they differ enough that you will find value in using both of these tools in tandem. I personally prefer to use Chrome SEO for quick overviews of a site, and SEO Site Tools if I need to go deeper.

Do you have any experience with these tools? What tools to you use to monitor SEO in Google Chrome?

Got Questions? Ask Them Now FREE on MakeUseOf Answers!

Similar MakeUseOf Articles

Kategorier: Delte artikler

10 Fantastic Photoshop Tutorials on YouTube

11. april 2010 - 17:16

Photoshop has been a mainstay of the design software pantheon for over 20 years, and it remains a great tool for pro artists and social media customizers alike.

But the sophisticated image editor has a daunting learning curve. With so many tools, features, and concepts to get a hold of, new users can be discouraged by dry help files and blind fumbling.

But fear not, gentle reader, for the collective wisdom of YouTube is at your disposal. Photoshop tutorials abound on the video network. Some are superb, while others may not be worth your precious clickthrough. For help, check out the resourceful selections below. Whether you’re brand new to Photoshop or a seasoned veteran, there’s always something to learn from the screencasting community.

For Beginners

If you’re looking for a visual way to wrap your head around the basic functions of Photoshop, check out these “101″ resources that take it nice and slow, and don’t assume any prior experience.

1. Workspace Overview

If you’ve never taken up the virtual paintbrush before, get the lay of the land with this overview of the workspace. It will give you a good sense of where the most useful tools and menus live in Photoshop.

2. Tools and Layers

This two-part tutorial breaks down most of the basic tools you’ll need to start your graphic hacking adventures.

If you come away with only one concept from a Photoshop lesson, it should be about layers. Layers are key to everything in Photoshop, but jumping in head-first can often leave new users confused. In addition to rummaging through the toolbox, this video offers a concise, visual explanation of how layers work using a simple drawing exercise.

For Intermediate Users

If you’ve gotten a feel for the software and done your share of image touch-up and manipulation, you may want to kick the program into second gear and start exploring some of the more powerful and creative features. These tutorials will get you going.

3. Blending Modes

Blending modes are connected to layers and are integral for toning photographs and many other graphic manipulations. This screencast will take you through Photoshop’s many blending flavors and hopefully spark some creative ideas for your next epic Facebook photo.

4. Patching and Healing

So you’ve got your new Facebook photo perfectly toned for maximum epicness — except for that tiny blemish and your annoying little brother who insists on jumping into every frame. That’s where the healing tools come in. With these, you can remove unwanted elements and (with a bit of practice) smooth those adjustments right into the background.

5. Text Effects

Let’s face it: The black and white arial text your rendered in MS Paint simply won’t cut it as your blog’s logo anymore. It’s time to snazz it up with some creative texturing. Check out this two-part tutorial that showcases some of the powerful text manipulation tools at your disposal in Photoshop.

6. Creating Actions

As you start using the software more regularly, you may find you’re repeating the same processes (sizing, filtering, blending, etc.) over and over again. The “Actions” feature lets you record the steps you use frequently and execute them with a single time-saving click or hotkey combination.

For Advanced Users

If you’ve spent any time on the Internet, you surely know what some Photoshop wizards are capable of. While the truly amazing feats require actual artistic talent (for which there is not yet a software substitute), some advanced Photoshop knowhow can go a long way to impressing your social media pals. Even if you’re not up to speed on all the advanced tools, just following along with these example-based lessons will provide a lot of insight into how the pros work their magic.

7. Changing Eye and Hair Color

If you’re due for a new look, but don’t want to drop a pretty penny at the salon, check out this tutorial on how to change eye and hair color for some dramatic portrait results.

8. Photo Combination and Manipulation

And now for some of the cool stuff. Through some clever erasing, blending, smoothing, and layering, this tutorial grafts a roaring lion’s face onto an apple to make for some frightening fruit that even Adam and Eve would have stayed away from.

9. Environmental Effects: Beams of Light

If landscapes are your passion, you can add even more drama to your sweeping vistas with some Photoshop tricks. Here, the designer adds some cloud-bursting light to make for an awe-inspiring desktop wallpaper, or perhaps even a snazzy Twitter background.

10. Environmental Effects: Fog and Mist

If you’re looking to add a bit of mystery to your recent snapshot, check out this tutorial on adding some rolling fog.

Have you found any other useful Photoshop tutorials on YouTube? Be sure to post the links in the comments below.


For more social media coverage, follow Mashable Social Media on Twitter or become a fan on Facebook


More design resources from Mashable:

- 10 Essential Design Tools for Social Media Pros
- 10 Fantastic Places for Finding Designers Online - HOW TO: Build a More Beautiful Blog
- HOW TO: Create Custom Backgrounds for Twitter, YouTube, & MySpace
- 15+ Great Ways to Find Web Design and Development Work

Reviews: Facebook, Twitter, YouTube

Tags: design, how-to video, List, Lists, Photoshop, tutorials, youtube

Kategorier: Delte artikler