<?xml version="1.0"?>
<News hasArchived="true" page="8573" pageCount="10722" pageSize="10" timestamp="Sun, 12 Jul 2026 10:05:43 -0400" url="https://my3.my.umbc.edu/posts.xml?page=8573">
<NewsItem contentIssues="true" id="31929" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31929">
<Title>How to approach usability testing</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="thumbnail" src="http://netdna.webdesignerdepot.com/uploads/2013/06/thumbnail9.jpg" width="200" height="160" style="max-width: 100%; height: auto;">In order to deliver a clean, fresh, and — more importantly — effective user interface, usability tests are required. It is very unlikely any designer, regardless of his reputation and skills, will be able to design a good product without doing some kind of research and testing.</p> <p>Usability testing is a technique used for evaluating a product by testing it on users who are part of the respective target audience. Testing is used in many fields, but today we will focus on user-centered interaction design and how to test when designing and developing such a product.</p> <p>Every product has an intended purpose, and the scope and aim of usability testing is measuring if a product meets this purpose with regards to a user.</p> <h1>The four principles</h1> <p>Behind every usability test there are different goals, which pertain specifically to the observation aims of the tester. The results can be treated as a control measurement or a baseline. Because several tests can be conducted throughout a period of time, all the results will be compared with the baseline test results.</p> <p>The four principles behind usability testing are:</p> <ul> <li>
    <strong>Efficiency</strong> – the tester measures how much time and how many steps are required for the user to complete basic tasks (find a product, add it to the cart, read the feedback and ratings, ask questions, buy the product. These would be basic tasks for a mobile app such as Amazon.</li> <li>
    <strong>Accuracy </strong>– how many mistakes do users make when trying to perform these tasks and how fatal are the mistakes?  Sometimes, with the right information, the mistake is recoverable. </li> <li>
    <strong>Recall </strong>– after a period of non-use, how much does a person remember about the interface and the browsing process?</li> <li>
    <strong>Emotional response </strong>– how does the user feel about the tasks he had to complete? Was the person stressed or confident, and would the user recommend the product to a friend?</li> </ul> <p>These are general principles used in testing user-centered interfaces, but it is important for the tester to set his own usability goals. Based on these, he will be able to closely monitor the subject and interpret his mistakes or gestures.</p> <p> </p> <h1>Wrong interpretation</h1> <p>Some people interpret the term “usability testing” incorrectly. Just gathering opinions on an object (or a device or an application) doesn’t mean anything more than market research. This type of research is definitely not usability testing, but rather quantitative research.</p> <p>In order for such a procedure to be labeled as usability testing, it requires involving a systematic observation under controlled conditions; this determines how well users (always part of the target audience) can make use of the product. Knowing that 86% of the questioned users mentioned that “the application works fine” doesn’t mean you tested the usability of your application and the results were mostly positive. This only means the majority of the questioned individuals seem to think the application works fine, but this is not enough information for you to use for improving the interface.</p> <p>One key aspect of usability testing is to involve the users as much as possible. Instead of asking them what they think about how a mobile interface looks, ask them to perform some actions. There are many aspects affecting the browsing process and most users will not be able to name or discuss them, but they will most definitely be able to show it to you while using the interface.</p> <p> </p> <h1>Methods</h1> <p>There are several methods to usability testing available, and I will go through most of them — or at least the most important — hoping to give you an idea of which one is more suitable for you and your purposes.</p> <p>When testing a product you need to create a realistic situation in which the participant has to perform a list of tasks using the product you are testing. During this, observers should watch carefully and take notes as quietly as possible. Different props such as paper prototypes, scripted instructions and pre or post-test questionnaires are also used to gather information and feedback about the product you are testing. The think-aloud testing method, co-discovery learning and eye-tracking are usability testing techniques that can be used throughout these methods.</p> <h2>Hallway testing</h2> <p>This is a general methodology working with a limited number of people, ranged between four and six. The name of the testing comes from the idea that participants to the test should be random people who pass by in the hallway. This method can be used when your product is not necessarily aimed at a specific target.</p> <p>Hallway testing should be employed early in the design phase. Test quickly and test often! This means that you will need to go out there several times. The process is quite simple: test on five persons, go back to the drawing board and solve the issues. Go out and test again on five other people, get back inside and solve the issues. After testing three or four times, the number of critical interface mistakes should be narrowed down significantly, and you then can start focusing on developing the product and its features. You will need to test again at some point in time, but knowing you solved most of your interface issues should allow you to focus on the development phase a bit more.</p> <p>The reason behind using totally random people is because you don’t want to test your product on individuals who are somewhat familiar with your product and its interface. You want people who have never seen your interface before, so they all start from a common ground. Moreover, this way you can test newcomers — who are most of the time the easiest to lose — as their level of interest and motivation is not high enough yet. If someone who has not used the application before is very happy with it and handles all the tasks easily, it means most of the people who will use your application will do the same. </p> <h2>Remote usability testing</h2> <p>This methodology can be used when the product you test on has prospective users in different parts of the world. Bringing them together would pose real financial challenges and might not be possible for a freelancer or a small company.</p> <p>Experts concerned by these issues came up with this methodology — which facilitates evaluations and testing being done remotely — with the user and the tester separated over space and maybe even time. Video conferencing is a way of doing this kind of testing, while another one could be by employing remote applications such as TeamViewer or WebEx. Both of them involve users who have a personal computer and an Internet connection. This way the tester can follow the participant’s movements, but not their reactions and emotions.</p> <p>The tester can automatically get a collection of user’s click streams, user logs of critical mistakes, incidents that occur while interacting with the interface, and even subjective feedback by the users.</p> <p>The good part about this kind of testing is that it is carried out in the participant’s own environment, which means he will be very confident in his abilities, and you will be able to simulate a real-life scenario testing. Clearly, the biggest advantage of this remote testing methodology is that it allows you to work with people from all over the world without many costs for transport and logistics.</p> <p>There are several tools a designer can use for remote testing. WebEx and GoToMeeting are the most popular, but pretty much any remote tool would do the job. </p> <p>Regardless of how well the tools would work, carrying out a synchronous remote testing is a bit more difficult than it looks like, as managing linguistic and cultural barriers through a computer might decrease the efficiency of the test. Interruptions and distractions in the participant’s environment are other challenges that are pretty much impossible to solve from the other corner of the planet.</p> <h2>Expert review</h2> <p>This is another methodology for usability testing and requires bringing in field experts to evaluate the product in testing. The challenges of this method are mostly financial and logistical, as it would cost a lot to bring in experts from different areas.</p> <p>There is also an automated expert review methodology, which is based on the same principle, only it would be done through the use of different software.</p> <h2>A/B testing</h2> <p>A/B Split Testing is probably one of the most well known experimental approaches to user experience and interface testing. It aims at identifying the elements of a webpage that increase the user’s interest or engagement. </p> <p>The method is called A/B testing because there are two versions of a website/interface (the A and the B version) that are compared. They are always identical, except for one variation (which can be an element such as a button, contact form or image) that might impact a user’s behaviour.</p> <p>During the testing period the website is monitored through tools such as Google Analytics. In this period the two versions, A and B, change randomly, which means that you can come on the webpage and find a header image, then refresh the webpage and find the other header image.</p> <p>The methodology is mainly used behind the scenes to maximize profit, reduce drop-off rates and increase sales. Amazon pioneered the methodology, but companies like eBay, Google, Walmart, Microsoft, Netflix and Zynga are also known for employing this method to increase the profitability of their sites.</p> <p>Although this is mainly used for e-commerce websites, A/B testing can easily be used in interface design as well; and it can be as effective as giving testers an overview of which interface is better between a choice of two or more.</p> <p> </p> <h1>How many users to test?</h1> <p>Carrying out several tests with a limited number of participants is much better than testing once on a larger number of subjects. This translates simply into many quality tests instead of few quantity tests. Around five subjects for each test should be enough to help observers get enough information to work with for a period of time.</p> <p>The argument behind this theory is that once you find out few people are confused by a feature or a website, you gain less from testing the same interface on even more people, as they will most likely be confused by the same elements. The solution is to solve the issues and then go out there and test again on a limited number of subjects. You need to repeat this process several times to get the best out of it.</p> <p>There might be some downsides to this theory, many experts say. Usability usually applies to a larger sample of the population, not only to a specific set of users; this means that interface problems might be undetectable by the first group tested. However, carrying out one or two tests with this limited number of subjects is not what this theory suggests.</p> <p>These tests should be carried out every week — maybe even twice per week — during the design process. The longer the design process is, the larger the number of tests has to be. During this whole process even a number of subjects between 50 and 100, or sometimes even larger, could be tested.</p> <p>It would be more effective to test subjects across a broad spectrum of abilities in the second phase of testing. During the last tests, as the design should already be smooth, you could narrow the observations down and start testing at your own target audience.</p> <p>When conducting usability tests, it is also important to notice the things that work well — not only the ones that don’t —and keep testing them over and over again. The theory behind this is that elements not working well should be eliminated, but elements that work well and are enjoyed by users should also be paid attention to. Try to keep them the same as they were in the first instance, because they obviously work well. Focus more on the ones that fail instead of trying to change and improve the ones that are already functioning successfully. There is time for that later on during the post-development processes.</p> <p> </p> <h1>Conclusion</h1> <p>Usability testing is something worth carrying out if you develop an interface and hope to achieve some kind of success with it. It might not be worth investing in it when developing a simple website; but I would personally always involve some testing if developing a mobile application, because it is much more complex.</p> <p>Usability testing can also be done more or less for free; you do not necessarily need to invest a big amount of money in logistics. If you feel you only need to test on a smaller scale, use your friends and relatives for it; it would all be free or very, very cheap (chocolate cake is always a winner).</p> <p>As you can see above, usability testing is something you can do in many different ways and you have to determine which way is right for you and your purposes before starting. It might seem like a very complicated process in the beginning, but even a beginner should be able to carry out such a test and get something out of it. So if you are in the middle of your design process, do not hesitate to go out there and do some testing — I promise you it will improve your interface and your users will be much happier with it.</p> <p> </p> <p><strong><em>Do you carry out usability testing on your designs? Which testing methods do you favor? Let us know in the comments.</em></strong></p> <p><em>Featured image/thumbnail, <a href="http://www.flickr.com/photos/jurvetson/2798315677/" rel="nofollow external" class="bo">testing image</a> via jurvetson</em></p> <p><br><br> </p>
    <table width="100%"> <tbody>
    <tr> <td> <a href="http://www.mightydeals.com/deal/growth-hacker-tv.html?ref=inwidget" rel="nofollow external" class="bo"><strong>60+ Hours of Expert Tutorials from Growth Hacker TV – only $29!</strong></a> </td> <td> <a href="http://www.mightydeals.com/?ref=inwidget" rel="nofollow external" class="bo"><br> <img src="http://mightydeals.com/web/images/widget-logo.png" height="40" width="90" alt="How to approach usability testing" style="max-width: 100%; height: auto;"><br> </a> </td> </tr> </tbody>
    </table> <p><br> </p> <a href="http://www.webdesignerdepot.com/2013/06/how-to-approach-usability-testing/" rel="nofollow external" class="bo">Source</a> <div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F06%2Fhow-to-approach-usability-testing%2F&amp;t=How+to+approach+usability+testing" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F06%2Fhow-to-approach-usability-testing%2F&amp;t=How+to+approach+usability+testing" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F06%2Fhow-to-approach-usability-testing%2F&amp;t=How+to+approach+usability+testing" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F06%2Fhow-to-approach-usability-testing%2F&amp;t=How+to+approach+usability+testing" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F06%2Fhow-to-approach-usability-testing%2F&amp;t=How+to+approach+usability+testing" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    <br><br><a href="http://da.feedsportal.com/r/165665981494/u/49/f/661066/c/35285/s/2ddd24b3/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/165665981494/u/49/f/661066/c/35285/s/2ddd24b3/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>In order to deliver a clean, fresh, and — more importantly — effective user interface, usability tests are required. It is very unlikely any designer, regardless of his reputation and skills, will...</Summary>
<Website>http://rss.feedsportal.com/c/35285/f/661066/s/2ddd24b3/l/0L0Swebdesignerdepot0N0C20A130C0A60Chow0Eto0Eapproach0Eusability0Etesting0C/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31929/guest@my.umbc.edu/cc1a6866f4f2ffb41eebfcdc89b871e4/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>business</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>oracle</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>usability</Tag>
<Tag>web-design</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 27 Jun 2013 05:15:55 -0400</PostedAt>
<EditAt>Thu, 27 Jun 2013 05:15:55 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="31928" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31928">
<Title>How To Create A Twitter Widget</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <table width="650">
    <tbody>
    <tr>
    <td>
    <div>
    <img src="http://statisches.auslieferung.commindo-media-ressourcen.de/advertisement.gif" alt="" style="max-width: 100%; height: auto;"><br><a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=1" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=1" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=2" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=2" alt="" style="max-width: 100%; height: auto;"></a> <a href="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=target&amp;collection=smashing-rss&amp;position=3" rel="nofollow external" class="bo"><img src="http://auslieferung.commindo-media-ressourcen.de/random.php?mode=image&amp;collection=smashing-rss&amp;position=3" alt="" style="max-width: 100%; height: auto;"></a>
    </div>
    </td>
    </tr>
    </tbody>
    </table>
    <p>Twitter needs no introduction. It has become <em>the</em> way to reach audiences for some people and companies and a place to hang out for others. Placing a Twitter feed on one’s website has almost become compulsory. Embedding a feed isn’t all that difficult if you are comfortable with Twitter’s default widget, but making your own will enable you to blend it into your website seamlessly.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/photodune-4052663-twitter-on-keyboard-xs_mini.jpg" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/photodune-4052663-twitter-on-keyboard-xs_500_mini.jpg" alt="photodune-4052663-twitter-on-keyboard-xs" width="500" height="333" style="max-width: 100%; height: auto;"></a></p>
    <h3>The Result</h3>
    <p>The result of our effort will be a WordPress widget that can be placed in a widgetized sidebar. It will display the user’s details on top and the latest few items from the user’s feed. You can see it in action in our <a href="http://bonsaished.com/musico/about/" rel="nofollow external" class="bo">Musico</a> theme, although the screenshot below says it all.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/06/finished_widget_mini.png" rel="nofollow external" class="bo"><img alt="finished_widget" src="http://media.smashingmagazine.com/wp-content/uploads/2013/06/finished_widget_mini.png" width="354" height="723" style="max-width: 100%; height: auto;"></a></p>
    <h3>About The Twitter Terms Of Service</h3>
    <p>Because this is a custom widget, you control what and how elements are displayed. Make sure to read Twitter’s “<a href="https://dev.twitter.com/terms/display-requirements" rel="nofollow external" class="bo">Developer Display Requirements</a>” to find out what you need to display. I will be breaking some of the rules for simplicity’s sake, but bolting on stuff will be a trivial matter once you’ve finished this article.</p>
    <p>Note that <strong>conforming to the requirements is a must. If you do not, you run the risk of your ID being banned which means that your widget will not display any tweets.</strong></p>
    <strong>
    <h3>First Step: Create A Twitter App</h3>
    <p>Before writing any code, we’ll have to get our hands on a Twitter app or, more appropriately, Twitter API credentials. The process is explained in a video that I made:</p>
    <p></p>
    <div class="embed-container"><iframe src="http://player.vimeo.com/video/60891535?title=0&amp;byline=0&amp;portrait=0&amp;color=ffffff" frameborder="0" webkitallowfullscreen="webkitAllowFullScreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowFullScreen">[Video]</iframe></div>
    <p>In case you prefer reading to watching a video, <strong>here are the basic steps</strong>:</p>
    <ol>
    <li>Log into Twitter’s <a href="https://dev.twitter.com/" rel="nofollow external" class="bo">developers section</a>.</li>
    <li>Go to “<a href="https://dev.twitter.com/apps" rel="nofollow external" class="bo">My Applications</a>,” and click “Create a new application.”</li>
    <li>Fill out the required fields, accept the rules of the road, and then click on the “Create your Twitter application” button. You will not need a callback URL for this app, so feel free to leave it blank.</li>
    <li>Once the app has been created, click the “Create my access token” button.</li>
    <li>You’re done! You will need the following data later on:
    <ul>
    <li>consumer key,</li>
    <li>consumer secret,</li>
    <li>access token,</li>
    <li>access token secret.</li>
    </ul>
    </li>
    </ol>
    <h3>Add Our App’s Details</h3>
    <p>To add some options to our theme quickly, we’ll be using the theme customizer, introduced in WordPress 3.4. Smashing Magazine has an <a href="http://wp.smashingmagazine.com/2013/03/05/the-wordpress-theme-customizer-a-developers-guide/" rel="nofollow external" class="bo">exhaustive article on it</a>, if you’re interested to learn more. For now, we’ll just add the bare necessities.</p>
    <p>To enable quick access to the theme customizer, I like to use the following snippet:</p>
    <pre><code>&#x000A;    add_action ('admin_menu', 'my_theme_customizer');&#x000A;    function my_theme_customizer() {&#x000A;    	add_theme_page(&#x000A;    		__( 'Customize Theme Options', THEMENAME ),&#x000A;    		__( 'Customize Theme', THEMENAME ),&#x000A;    		'edit_theme_options',&#x000A;    		'customize.php'&#x000A;    	);&#x000A;    }&#x000A;    </code></pre>
    <p>Adding the code above to your theme’s <code>functions.php</code> file will generate a link to the customizer in the “Appearance” section of the admin area. To add some options, we’ll need to create a class. Add a file named <code>MyCustomizer.class.php</code> to the theme’s directory, and paste the following code in it:</p>
    <pre><code>&#x000A;    &lt;?php&#x000A;    class MyCustomizer {&#x000A;    	public static function register ( $wp_customize ) {&#x000A;    &#x000A;    		/** Sections **/&#x000A;    		$wp_customize-&gt;add_section( 'twitter_api' , array(&#x000A;    			'title'    =&gt; __( 'Twitter API Details', 'mytextdomain' ),&#x000A;    			'priority' =&gt; 10,&#x000A;    		));&#x000A;    &#x000A;    		/** Settings **/&#x000A;    		$wp_customize-&gt;add_setting( 'twitter_consumer_key' );&#x000A;    		$wp_customize-&gt;add_setting( 'twitter_consumer_secret' );&#x000A;    		$wp_customize-&gt;add_setting( 'twitter_access_token' );&#x000A;    		$wp_customize-&gt;add_setting( 'twitter_access_token_secret' );&#x000A;    &#x000A;    		/** Controls **/&#x000A;    		$wp_customize-&gt;add_control(&#x000A;    			'twitter_consumer_key',&#x000A;    			 array(&#x000A;    				'label' =&gt; __( 'Consumer Key', 'mytextdomain' ),&#x000A;    			 	'section' =&gt; 'twitter_api',&#x000A;    				'priority' =&gt; 10,&#x000A;    			 )&#x000A;    		);&#x000A;    		$wp_customize-&gt;add_control(&#x000A;    			'twitter_consumer_secret',&#x000A;    			 array(&#x000A;    				'label' =&gt; __( 'Consumer Secret', 'mytextdomain' ),&#x000A;    			 	'section' =&gt; 'twitter_api',&#x000A;    				'priority' =&gt; 20,&#x000A;    			 )&#x000A;    		);&#x000A;    		$wp_customize-&gt;add_control(&#x000A;    			'twitter_access_token',&#x000A;    			 array(&#x000A;    				'label' =&gt; __( 'Access Token', 'mytextdomain' ),&#x000A;    			 	'section' =&gt; 'twitter_api',&#x000A;    				'priority' =&gt; 30,&#x000A;    			 )&#x000A;    		);&#x000A;    		$wp_customize-&gt;add_control(&#x000A;    			'twitter_access_token_secret',&#x000A;    			 array(&#x000A;    				'label' =&gt; __( 'Access Token Secret', 'mytextdomain' ),&#x000A;    			 	'section' =&gt; 'twitter_api',&#x000A;    				'priority' =&gt; 40,&#x000A;    			 )&#x000A;    		);&#x000A;       }&#x000A;    }&#x000A;    add_action( 'customize_register' , array( 'MyCustomizer' , 'register' ) );&#x000A;    ?&gt;&#x000A;    </code></pre>
    <p>There are a couple of things to note about the code above. <strong>All of the details we need to add to the customizer are encapsulated in a class.</strong> The class is registered at the bottom of the code block, using a hook.</p>
    <p>We need to do three things with the class to get our options to show up:</p>
    <ul>
    <li>Create a new section to house these options in one logical group. We use the <code>add_section()</code> function to do this; all we need to add is a title.</li>
    <li>We need to tell WordPress that we are adding particular settings. The function used is <code>add_setting</code>, which can take a default parameter as well, but we don’t really need it here.</li>
    <li>Finally, we tie a control to the setting so that the user can manipulate it. A number of controls are available; here, we need a simple text box. Using the <code>add_control()</code> function, we specify the setting to be modified, the label of the control and the section it is in. The type of control is not specified because the default is the usual input box.</li>
    </ul>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/04/apisettings.png" rel="nofollow external" class="bo"><img alt="apisettings" src="http://media.smashingmagazine.com/wp-content/uploads/2013/04/apisettings.png" width="329" height="312" style="max-width: 100%; height: auto;"></a></p>
    <p>Notice the “priority” setting for some elements. This determines the order they show up in. The reason they are multiples of 10 is that, if you realize later that you need to add something between two settings, <strong>you won’t need to rewrite all of the priorities</strong>; you would just use “15” for the new element.</p>
    <p>Don’t forget to include this class in <code>functions.php</code> so that the code is executed.</p>
    <pre><code>&#x000A;    include( 'MyCustomizer.class.php' );&#x000A;    </code></pre>
    <p>Once all that is done, you can fill out the details. You will be able to access the values using the <code>get_theme_mod( 'option_name' )</code> function (more on that below).</p>
    <h3>Integrate The API</h3>
    <p>We now have a way to retrieve our API details, but we are not in contact with the API just yet. Doing that is a bit difficult; luckily, others have done the grunt work for us. For this tutorial, I’ll use Codebird, a PHP class for interacting with the Twitter API.</p>
    <p>Download the <code>codebird.php</code> file from <a href="https://github.com/mynetx/codebird-php" rel="nofollow external" class="bo">Codebird</a>, put it in your main theme folder, and set it up like so:</p>
    <pre><code>&#x000A;    add_action( 'init', 'my_twitter_api' );&#x000A;    function my_twitter_api() {&#x000A;    	global $cb;&#x000A;    	$consumer_key = get_theme_mod( 'consumer_key' );&#x000A;    	$consumer_secret = get_theme_mod( 'consumer_secret' );&#x000A;    	$access_token = get_theme_mod( 'access_token' );&#x000A;    	$access_secret = get_theme_mod( 'access_secret' );&#x000A;    &#x000A;    	include( 'codebird.php' )&#x000A;    	Codebird::setConsumerKey( $consumer_key, $consumer_secret );&#x000A;    	$cb = Codebird::getInstance();&#x000A;    	$cb-&gt;setToken( $access_token, $access_secret );&#x000A;    }&#x000A;    </code></pre>
    <p>Now you’ll be able to use Codebird by invoking the <code>$cb</code> instance. Let’s set this aside for now; we’ll get back to it later!</p>
    <h3>Create A Widget</h3>
    <p>I like to separate widgets into individual files. So, before we do anything else, create a <code>widgets</code> directory and put a file in it named <code>MyTwitterWidget.class.php</code>. Include this file in <code>functions.php</code> just as we did above:</p>
    <pre><code>&#x000A;    include( 'widgets/MyTwitterWidget.class.php' );&#x000A;    </code></pre>
    <p>Add the following PHP code to the file. <strong>This is the general starting point for widgets.</strong></p>
    <pre><code>&#x000A;    &lt;?php&#x000A;    class MyTwitterWidget extends WP_Widget {&#x000A;    	/** Widget setup **/&#x000A;    	function MyTwitterWidget() {&#x000A;    		parent::WP_Widget(&#x000A;    			false, __( 'My Twitter Widget', 'mytextdomain' ),&#x000A;    			array('description' =&gt; __( 'Displays a list of tweets from a specified user name', 'mytextdomain' )),&#x000A;    			array('width' =&gt; '400px')&#x000A;    		);&#x000A;    	}&#x000A;    	/** The back-end form **/&#x000A;    	function form( $instance ) {&#x000A;    &#x000A;    	}&#x000A;    	/** Saving form data **/&#x000A;    	function update( $new_instance, $old_instance ) {&#x000A;    &#x000A;    	}&#x000A;    	/** The front-end display **/&#x000A;    	function widget( $args, $instance ) {&#x000A;    &#x000A;    	}&#x000A;    }&#x000A;    register_widget('MyTwitterWidget');&#x000A;    ?&gt;&#x000A;    </code></pre>
    <p>There are four functions here, each with a particular role in creating the widget.</p>
    <ul>
    <li>The first function is the constructor. The widget’s title and description may be specified here.</li>
    <li>The <code>form</code> function takes care of the back-end form. Putting a few functions in there makes it very easy to assemble a form. WordPress takes care of the rest.</li>
    <li>The <code>update</code> function enables you to add any special code to the saving process.</li>
    <li>The <code>widget</code> function handles the front-end display of the widget.</li>
    </ul>
    <p>As we build the widget, you’ll see that we’ll need some custom functions. But until then, <strong>let’s go function by function</strong>.</p>
    <h4>The Back-End Form</h4>
    <p>We want to give the user the option to change the title of the widget, to specify how many tweets to show, and to specify their Twitter user name. The basic pattern for creating these options is as follows:</p>
    <pre><code>&#x000A;    &lt;p&gt;&#x000A;    	&lt;label for='&lt;?php echo $this-&gt;get_field_id( 'option_name' ); ?&gt;'&gt;&#x000A;    		&lt;?php _e( 'Title:', 'mytextdomain' ); ?&gt;&#x000A;    		&lt;input class='widefat' id='&lt;?php echo $this-&gt;get_field_id( 'option_name' ); ?&gt;' name='&lt;?php echo $this-&gt;get_field_name( 'option_name' ); ?&gt;' type='text' value='&lt;?php echo $values['option_name']; ?&gt;' /&gt;&#x000A;    	&lt;/label&gt;&#x000A;    &lt;/p&gt;&#x000A;    </code></pre>
    <p>The <code>$values</code> array is a list of all of this widget’s options, which are specified elsewhere. All of our options will follow the pattern below. Here are the functions to look out for:</p>
    <ul>
    <li>
    <code>get_field_id()</code>
    <p>Outputs the ID of the field for your option.</p>
    </li>
    <li>
    <code>get_field_name()</code>
    <p>Outputs the name of the field for your option.</p>
    </li>
    </ul>
    <p>Using these functions is crucial because the name and ID of these fields can get pretty funky when multiple widget instances are in multiple sidebars.</p>
    <p><strong>The complete code for our form</strong> looks something like this:</p>
    <pre><code>&#x000A;    &lt;?php&#x000A;    	$defaults = array(&#x000A;    		'title'    =&gt; '',&#x000A;    		'limit'    =&gt; 5,&#x000A;    		'username' =&gt; 'bonsaished'&#x000A;    	);&#x000A;    	$values = wp_parse_args( $instance, $defaults );&#x000A;    ?&gt;&#x000A;    &lt;p&gt;&#x000A;    	&lt;label for='&lt;?php echo $this-&gt;get_field_id( 'title' ); ?&gt;'&gt;&#x000A;    		&lt;?php _e( 'Title:', 'mytextdomain' ); ?&gt;&#x000A;    		&lt;input class='widefat' id='&lt;?php echo $this-&gt;get_field_id( 'title' ); ?&gt;' name='&lt;?php echo $this-&gt;get_field_name( 'title' ); ?&gt;' type='text' value='&lt;?php echo $values['title']; ?&gt;' /&gt;&#x000A;    	&lt;/label&gt;&#x000A;    &lt;/p&gt;&#x000A;    &#x000A;    &lt;p&gt;&#x000A;    	&lt;label for='&lt;?php echo $this-&gt;get_field_id( 'limit' ); ?&gt;'&gt;&#x000A;    		&lt;?php _e( 'Tweets to show:', 'mytextdomain' ); ?&gt;&#x000A;    		&lt;input class='widefat' id='&lt;?php echo $this-&gt;get_field_id( 'limit' ); ?&gt;' name='&lt;?php echo $this-&gt;get_field_name( 'limit' ); ?&gt;' type='text' value='&lt;?php echo $values['limit']; ?&gt;' /&gt;&#x000A;    	&lt;/label&gt;&#x000A;    &lt;/p&gt;&#x000A;    &#x000A;    &lt;p&gt;&#x000A;    	&lt;label for='&lt;?php echo $this-&gt;get_field_id( 'username' ); ?&gt;'&gt;&#x000A;    		&lt;?php _e( 'Twitter user name:', 'mytextdomain' ); ?&gt;&#x000A;    		&lt;input class='widefat' id='&lt;?php echo $this-&gt;get_field_id( 'username' ); ?&gt;' name='&lt;?php echo $this-&gt;get_field_name( 'username' ); ?&gt;' type='text' value='&lt;?php echo $values['username']; ?&gt;' /&gt;&#x000A;    	&lt;/label&gt;&#x000A;    &lt;/p&gt;&#x000A;    </code></pre>
    <p>The only addition made to this code is the retrieval of the values. The function is passed the current values in the <code>$instance</code> parameter. I’ve added a <code>defaults</code> array in case no values have been set. The <code>defaults</code> and the <code>instance</code> data arrays have been merged, resulting in the final <code>$values</code> array.</p>
    <h3>Save The Form’s Data</h3>
    <p>I’m sure you’ll be relieved by the simplicity of this. Here’s the complete code in the <code>update()</code> functions.</p>
    <pre><code>&#x000A;    return $new_instance;&#x000A;    </code></pre>
    <p>The <code>$new_instance</code> parameter has all of the new data in it. All we need to do is return it. The purpose of the <code>update</code> function is to allow for some validation or manipulation.</p>
    <h3>Display The Tweets</h3>
    <p>Now for the hard part! Retrieving the tweets is not that difficult, but if we do it on every page load, we’ll be rate-limited by Twitter in no time. We’ll need to find a way to cache the results <strong>so that we only bother Twitter, say, every five minutes</strong>. The way I like to handle these problems is to side-step them altogether and code as if the solution were already in place. Let’s assume that we’ve already written the functions that we need for this and proceed to create the front end:</p>
    <p>First, let’s look at the general template needed to display widgets:</p>
    <pre><code>&#x000A;    echo $args['before_widget'];&#x000A;    echo $args['before_title'] . $instance['title'] .  $args['after_title'];&#x000A;    echo $args['after_widget'];&#x000A;    </code></pre>
    <p>The <code>$args</code> parameter holds some structural information from the sidebar you created. We just output these to make sure that this widget conforms to all of your other widgets.</p>
    <p>Now, let’s list some tweets:</p>
    <pre><code>&#x000A;    $tweets = $this-&gt;get_tweets( $args['widget_id'], $instance );&#x000A;    if( !empty( $tweets['tweets'] ) AND empty( $tweets['tweets']-&gt;errors ) ) {&#x000A;    &#x000A;    	echo $args['before_widget'];&#x000A;    	echo $args['before_title'] . $instance['title'] .  $args['after_title'];&#x000A;    &#x000A;    	$user = current( $tweets['tweets'] );&#x000A;    	$user = $user-&gt;user;&#x000A;    &#x000A;    	echo '&#x000A;    		&lt;div class="twitter-profile"&gt;&#x000A;    		&lt;img src="' . $user-&gt;profile_image_url . '"&gt;&#x000A;    		&lt;h1&gt;&lt;a class="heading-text-color" href="<a href="http://twitter.com/">http://twitter.com/</a>' . $user-&gt;screen_name . '"&gt;' . $user-&gt;screen_name . '&lt;/a&gt;&lt;/h1&gt;&#x000A;    		&lt;div class="description content"&gt;' . $user-&gt;description . '&lt;/div&gt;&#x000A;    		&lt;/div&gt;	';&#x000A;    &#x000A;    	echo '&lt;ul&gt;';&#x000A;    	foreach( $tweets['tweets'] as $tweet ) {&#x000A;    		if( is_object( $tweet ) ) {&#x000A;    			$tweet_text = htmlentities($tweet-&gt;text, ENT_QUOTES);&#x000A;    			$tweet_text = preg_replace( '/http:\/\/([a-z0-9_\.\-\+\&amp;\!\#\~\/\,]+)/i', '<a href="http://%241" rel="nofollow external" class="bo">http://$1</a>', $tweet_text );&#x000A;    &#x000A;    			echo '&#x000A;    				&lt;li&gt;&#x000A;    					&lt;span class="content"&gt;' . $tweet_text . '&lt;/span&gt;&#x000A;    					&lt;div class="date"&gt;' . human_time_diff( strtotime( $tweet-&gt;created_at ) ) . ' ago &lt;/div&gt;&#x000A;    				&lt;/li&gt;';&#x000A;    		}&#x000A;    	}&#x000A;    	echo '&lt;/ul&gt;';&#x000A;    	echo $args['after_widget'];&#x000A;    }&#x000A;    </code></pre>
    <p>Let’s dissect this to understand what’s going on.</p>
    <ul>
    <li>
    <strong>Line 1</strong>
    <p>We’re assuming that we have a <code>get_tweets()</code> function that will return a list of tweets in some form. We haven’t written this yet, but by assuming that we have done so, we’ll know what to include in the function’s code.</p>
    </li>
    <li>
    <strong>Line 2</strong>
    <p>If the tweets list is not empty and there are no errors, we can display the widget.</p>
    </li>
    <li>
    <strong>Lines 7–8</strong>
    <p>All tweets are from the same user, and each tweet contains the user’s data. In line 7, we’re just grabbing the first tweet. In line 8, we’re pulling the user’s details into the <code>$user</code> variable.</p>
    </li>
    <li>
    <strong>Lines 10–16</strong>
    <p>We use data from the <code>$user</code> object to build a simple display for the user’s account. It includes the image, short description and user name.</p>
    </li>
    <li>
    <strong>Lines 18–29</strong>
    <p>Using data in the <code>$tweets['tweets']</code> variable, we build a list of tweets. The <code>preg_replace()</code> in there is needed to convert links (which arrive as plain text) into clickable elements.</p>
    </li>
    </ul>
    <p>All that’s left is to figure out how the <code>get_tweets()</code> function should work. We already know that it can’t directly get the tweets from Twitter, so we’ll need to use some trickery!</p>
    <p>To pull this off, our <code>get_tweets()</code> function will need to do the following:</p>
    <ol>
    <li>Get the list of tweets from our own database.</li>
    <li>If no list is there or the list is more than five minutes old, then it needs to grab the list from Twitter.</li>
    <li>Once we get results from Twitter, we save them to our database and add a timestamp to make sure we don’t grab it again before the five minutes is up.</li>
    </ol>
    <p>To make things more modular, we’ll create three functions.</p>
    <ul>
    <li>
    <code>get_tweets()</code>
    <p>Pulls a list of tweets from our database.</p>
    </li>
    <li>
    <code>retrieve_tweets()</code>
    <p>Pulls a list of tweets from Twitter.</p>
    </li>
    <li>
    <code>save_tweets()</code>
    <p>Saves a list of tweets from Twitter to our database.</p>
    </li>
    </ul>
    <h4>Retrieve Tweets From Twitter</h4>
    <p>In the <code>MyTwitterWidget</code> class, let’s create this function and make it retrieve some tweets:</p>
    <pre><code>&#x000A;    function retrieve_tweets( $widget_id, $instance ) {&#x000A;    	global $cb;&#x000A;     	$timeline = $cb-&gt;statuses_userTimeline( 'screen_name=' . $instance['username']. '&amp;count=' . $instance['limit'] . '&amp;exclude_replies=true' );&#x000A;     	return $timeline;&#x000A;    }&#x000A;    </code></pre>
    <p>As you can see, this is pretty easy, thanks to the Codebird class. We simply use one of its functions, <code>statuses_userTimeline()</code>, to retrieve our list. Our own functions receive the widget’s ID and the <code>instance</code> data, which we use to tell Codebird which user’s tweets we want and how many to retrieve.</p>
    <h4>Save Tweets to the Database</h4>
    <p>To save the tweets to the database, we’ll need to use the ID of the widget and the actual tweets, and we’ll need to store the time when we last updated them.</p>
    <pre><code>&#x000A;    function save_tweets( $widget_id, $instance ) {&#x000A;    	$timeline = $this-&gt;retrieve_tweets( $widget_id, $instance );&#x000A;    	$tweets = array( 'tweets' =&gt; $timeline, 'update_time' =&gt; time() + ( 60 * 5 ) );&#x000A;    	update_option( 'my_tweets_' . $widget_id, $tweets );&#x000A;    	return $tweets;&#x000A;    }&#x000A;    </code></pre>
    <p>This widget also receives the widget’s ID and the <code>instance</code> data. We use these to retrieve the tweets, using the <code>retrieve_tweets()</code> function that we created above. We’ll add that to our <code>$tweets</code> array, which contains the data returned from Twitter and the time of update.</p>
    <p>The time of update is five minutes from now. When we display our tweets, we’ll use this value to determine whether to display the tweets in the database or to grab the list from Twitter again (to ensure we have the most recent ones).</p>
    <p>We use the widget’s ID to save the list to the database, using WordPress’ options table. This ensures that we can save the proper Twitter details for each instance of our Twitter widget.</p>
    <h4>Get Tweets From the Database</h4>
    <p>We’ve finally arrived at the <code>get_tweets()</code> function. Let’s take a look. Explanation ensues!</p>
    <pre><code>&#x000A;    function get_tweets( $widget_id, $instance ) {&#x000A;    	$tweets = get_option( 'my_tweets_' . $widget_id );&#x000A;    	if( empty( $tweets ) OR time() &gt; $tweets['update_time'] ) {&#x000A;    		$tweets = $this-&gt;save_tweets( $widget_id, $instance );&#x000A;    	}&#x000A;    	return $tweets;&#x000A;    }&#x000A;    </code></pre>
    <p>First, we retrieve the tweets from the database using the options table. If the options table is empty or the update time has past our limit, then we use the <code>save_tweets()</code> function. This will retrieve the tweets from Twitter and save them to the database (and also return them so that we can use them right away).</p>
    <h3>Conclusion</h3>
    <p>While this methodology does not lack complexity, it has a <strong>tight and clear logic</strong> to it, which arises from the thoughtful way that WordPress implements widgets and the new theme customizer.</p>
    <p>Once you grasp the basic idea behind how this widget is created, you can add many of your own and customize them to your (or your client’s) delight.</p>
    <p><em>(al) (ea)</em></p>
    <hr>
    <p><small>© Daniel Pataki for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2013.</small></p></strong>
    </div>
]]>
</Body>
<Summary>        Twitter needs no introduction. It has become the way to reach audiences for some people and companies and a place to hang out for others. Placing a Twitter feed on one’s website has almost...</Summary>
<Website>http://www.smashingmagazine.com/2013/06/27/how-to-create-a-twitter-widget/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31928/guest@my.umbc.edu/10b32c4df626b3ccf25a9b26364dfdcd/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>web</Tag>
<Tag>wordpress</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 27 Jun 2013 05:13:28 -0400</PostedAt>
<EditAt>Thu, 27 Jun 2013 05:13:28 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="31935" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31935">
<Title>Jimmy Wales Is Not an Internet Billionaire</Title>
<Body>
<![CDATA[
    <div class="html-content">The founder of Wikipedia has a brand-new life in London with Kate Garvey, his third wife, whom he often describes as “the most connected woman in London.”<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F30%2Fmagazine%2Fjimmy-wales-is-not-an-internet-billionaire.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Jimmy+Wales+Is+Not+an+Internet+Billionaire" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F30%2Fmagazine%2Fjimmy-wales-is-not-an-internet-billionaire.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Jimmy+Wales+Is+Not+an+Internet+Billionaire" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F30%2Fmagazine%2Fjimmy-wales-is-not-an-internet-billionaire.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Jimmy+Wales+Is+Not+an+Internet+Billionaire" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F30%2Fmagazine%2Fjimmy-wales-is-not-an-internet-billionaire.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Jimmy+Wales+Is+Not+an+Internet+Billionaire" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F06%2F30%2Fmagazine%2Fjimmy-wales-is-not-an-internet-billionaire.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Jimmy+Wales+Is+Not+an+Internet+Billionaire" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    </div>
]]>
</Body>
<Summary>The founder of Wikipedia has a brand-new life in London with Kate Garvey, his third wife, whom he often describes as “the most connected woman in London.”     </Summary>
<Website>http://www.nytimes.com/2013/06/30/magazine/jimmy-wales-is-not-an-internet-billionaire.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31935/guest@my.umbc.edu/055ba3fa7daafa3b861b7ca66fcdadf4/api/pixel</TrackingUrl>
<Tag>amazon-com-inc-amzn-nasdaq</Tag>
<Tag>apple-inc-aapl-nasdaq</Tag>
<Tag>computers-and-the-internet</Tag>
<Tag>ebay-inc-ebay-nasdaq</Tag>
<Tag>encyclopedias</Tag>
<Tag>facebook-inc-fb-nasdaq</Tag>
<Tag>google-inc-goog-nasdaq</Tag>
<Tag>microsoft-corporation-msft-nasdaq</Tag>
<Tag>new</Tag>
<Tag>technology</Tag>
<Tag>wales-jimmy</Tag>
<Tag>wikipedia</Tag>
<Tag>yahoo-inc-yhoo-nasdaq</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 27 Jun 2013 05:00:01 -0400</PostedAt>
<EditAt>Thu, 27 Jun 2013 05:00:01 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="31955" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31955">
<Title>Retrievers Unveil Challenging 2013 Volleyball Schedule</Title>
<Body>
<![CDATA[
    <div class="html-content">BALTIMORE � Before attempting to qualify for their school-record sixth consecutive trip to the America East Championships, the UMBC volleyball team will face a challenging out-of-conference slate, head coach Ian Blanchard announced on Thursday afternoon.</div>
]]>
</Body>
<Summary>BALTIMORE � Before attempting to qualify for their school-record sixth consecutive trip to the America East Championships, the UMBC volleyball team will face a challenging out-of-conference slate,...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=8055</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31955/guest@my.umbc.edu/6cfe860a5f50e388ce86f15f5a6eb16e/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>3</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 27 Jun 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="31961" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31961">
<Title>Tackling Online Dating's Biggest Conundrum</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>When you read the profile of a potential partner, how do you know it’s true? Researchers at Xerox’s PARC think they have the answer</p>
    <p><img src="https://www.technologyreview.com/sites/default/files/images/Certifeye.png" alt="" width="370" height="265" style="max-width: 100%; height: auto;"></p>
    </div>
]]>
</Body>
<Summary>When you read the profile of a potential partner, how do you know it’s true? Researchers at Xerox’s PARC think they have the answer</Summary>
<Website>http://www.technologyreview.com/view/516556/tackling-online-datings-biggest-conundrum/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31961/guest@my.umbc.edu/b11bae23345fdca5061a570821ae58bf/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 27 Jun 2013 00:31:06 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="31925" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31925">
<Title>Xeroc PARC Tackles Online Dating's Biggest Conundrum</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>When you read the profile of a potential partner, how do you know it’s true? Researchers at Xerox PARC think they have the answer</p>
    <p><img src="https://www.technologyreview.com/sites/default/files/images/Certifeye.png" alt="" width="370" height="265" style="max-width: 100%; height: auto;"></p>
    </div>
]]>
</Body>
<Summary>When you read the profile of a potential partner, how do you know it’s true? Researchers at Xerox PARC think they have the answer</Summary>
<Website>http://www.technologyreview.com/view/516556/xeroc-parc-tackles-online-datings-biggest-conundrum/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31925/guest@my.umbc.edu/aaaa7f04eb10b589e214850ec09d4d78/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 27 Jun 2013 00:31:06 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="31942" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31942">
<Title>Xerox PARC Tackles Online Dating's Biggest Conundrum</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>When you read the profile of a potential partner, how do you know it’s true? Researchers at Xerox PARC think they have the answer</p>
    <p><img src="https://www.technologyreview.com/sites/default/files/images/Certifeye.png" alt="" width="370" height="265" style="max-width: 100%; height: auto;"></p>
    </div>
]]>
</Body>
<Summary>When you read the profile of a potential partner, how do you know it’s true? Researchers at Xerox PARC think they have the answer</Summary>
<Website>http://www.technologyreview.com/view/516556/xerox-parc-tackles-online-datings-biggest-conundrum/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31942/guest@my.umbc.edu/80ae7feb7733b825a42db0037c9ef361/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 27 Jun 2013 00:31:06 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="31923" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31923">
<Title>Siri&#8217;s Creators Demonstrate an Assistant That Takes the Initiative</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>An SRI project aims to build a powerful predictive assistant for office workers.</p>
    <p>In a small, dark, room off a long hallway within a sprawling complex of buildings in Silicon Valley, an array of massive flat-panel displays and video cameras track <a href="http://www.csl.sri.com/users/denker/" rel="nofollow external" class="bo">Grit Denker</a>’s every move. Denker, a senior computer scientist at the nonprofit R&amp;D institute <a href="http://www.sri.com" rel="nofollow external" class="bo">SRI</a>, is showing off <a href="http://bright.csl.sri.com/" rel="nofollow external" class="bo">Bright</a>, an intelligent assistant that could someday know what information you need before you even ask.</p>
    </div>
]]>
</Body>
<Summary>An SRI project aims to build a powerful predictive assistant for office workers.  In a small, dark, room off a long hallway within a sprawling complex of buildings in Silicon Valley, an array of...</Summary>
<Website>http://www.technologyreview.com/news/515671/siris-creators-demonstrate-an-assistant-that-takes-the-initiative/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31923/guest@my.umbc.edu/5c71f357b62b5bf850047cc05389f2b5/api/pixel</TrackingUrl>
<Tag>development</Tag>
<Tag>internet</Tag>
<Tag>mit</Tag>
<Tag>technology</Tag>
<Tag>web</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 27 Jun 2013 00:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="31926" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31926">
<Title>JQuery Mobile Comes to Rescue of Touch-Friendly Websites</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>Supporting cross-platform with Html 5 based mobile apps, JQuery Mobile includes all the features of JQuery but adds touch-friendly features.</p></div>
]]>
</Body>
<Summary>Supporting cross-platform with Html 5 based mobile apps, JQuery Mobile includes all the features of JQuery but adds touch-friendly features.</Summary>
<Website>http://www.htmlgoodies.com/daily_news/jquery-mobile-comes-to-rescue-of-touch-friendly-websites.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31926/guest@my.umbc.edu/2bd5e6ac3599dbb26f8d9510d1a1edce/api/pixel</TrackingUrl>
<Tag>html</Tag>
<Tag>htmlgoodies</Tag>
<Tag>learning</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Wed, 26 Jun 2013 22:57:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="31927" important="false" status="posted" url="https://my3.my.umbc.edu/posts/31927">
<Title>Google's Dart Enters Beta and Hot on the Heels of Microsoft&#8217;s New TypeScript 0.9</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>Microsoft’s JavaScript contender gains improved tools and better performance.</p></div>
]]>
</Body>
<Summary>Microsoft’s JavaScript contender gains improved tools and better performance.</Summary>
<Website>http://www.htmlgoodies.com/daily_news/googles-dart-enters-beta-and-hot-on-the-heels-of-microsofts-new-typescript-0.9.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/31927/guest@my.umbc.edu/d344906727f54e59177fbf38477cd220/api/pixel</TrackingUrl>
<Tag>html</Tag>
<Tag>htmlgoodies</Tag>
<Tag>learning</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Wed, 26 Jun 2013 22:40:00 -0400</PostedAt>
</NewsItem>

</News>
