<?xml version="1.0"?>
<News hasArchived="true" page="8835" pageCount="10714" pageSize="10" timestamp="Fri, 03 Jul 2026 10:09:27 -0400" url="https://my3.my.umbc.edu/posts.xml?page=8835">
<NewsItem contentIssues="true" id="27883" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27883">
<Title>Weak, Strong, Static And Dynamic: An Introduction To Programming Type Systems</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>Static typing is great because it keeps you out of trouble.  Dynamic typing is great because it gets out of your way and lets you get your work done faster. The debate between strongly and dynamically typed languages rages on, but <strong>understanding the issue starts with weak typing</strong> and languages such as <a href="http://en.wikipedia.org/wiki/C_(programming_language)" rel="nofollow external" class="bo">C</a>.</p>
    <p>C treats everything like a number. A character like <code>a</code> or <code>7</code> or <code>%</code> is the number of the ASCII symbol representing it; “true” and “false” are just 1 and 0.</p>
    <p>C defines variables with types such as <code>int</code> for integer and <code>char</code> for character, but that just defines how much memory to use. To access the variable and print it out, <strong>I need to know the type.</strong></p>
    <pre><code>&#x000A;    int a = 1;&#x000A;    printf("The number is %i\n", a);&#x000A;    &#x000A;    char z = 'z';&#x000A;    printf("The character is %c\n", z);&#x000A;    </code></pre>
    <p>When I run this program, it shows this:</p>
    <pre>The number is 1&#x000A;    The character is z&#x000A;    </pre>
    <p>The <code>printf</code> function needs a hint from us to know how to format the variable. If I give the wrong hint…</p>
    <pre><code>&#x000A;    char z = 'z';&#x000A;    printf("The character is %i\n", z);&#x000A;    </code></pre>
    <p>… then I get this:</p>
    <pre>The character is 122&#x000A;    </pre>
    <p>C doesn’t know whether <code>z</code> is a character or an integer; it has a weak type.</p>
    <p><strong>Weak typing is fast because there’s no overhead of remembering the different types</strong>, but it leads to some nasty bugs. There’s no way to format the <code>z</code> if you don’t know its type ahead of time. Imagine accessing a variable and getting the number <code>1229799107</code>. The number could be the result of a mathematical calculation (1,229,799,107), the cost of a government program ($1.2 billion) or a date (Saturday, 20 December 2008). When all you have is the number, there’s no way to know that it’s really the code for the letters in my name: <code>zack</code>.</p>
    <p>So far, we’ve just covered weak typing. “Weak versus strong” and “static versus dynamic” are often spoken of synonymously, but they each describe a different phase of the same problem. They’re also politicized, with the words carrying an implied value judgment. “Weak versus strong” makes one of them sound a lot better than the other, while “static vs. dynamic” makes one sound stodgy and the other exciting.</p>
    <p><img src="http://media.smashingmagazine.com/wp-content/uploads/2012/07/jellybean.jpg" alt="" width="500" height="208" style="max-width: 100%; height: auto;"><br>
    <em>(Image: <a href="http://www.flickr.com/photos/c_r_i_s/77763830/" rel="nofollow external" class="bo">Cris</a>)</em></p>
    <p>These two terms are used interchangeably, but they describe the difference between the way a language defines types and how it figures them out when the program runs. For example:</p>
    <table>
    <tbody>
    <tr>
    <td>Weak with no typing</td>
    <td>
    <a href="http://en.wikipedia.org/wiki/Assembly_language" rel="nofollow external" class="bo">Assembly languages</a> don’t provide any way of specifying or checking types at all.  Everything is just a number.</td>
    </tr>
    <tr>
    <td>Weak static typing</td>
    <td>C lets you define object types as structures, but it doesn’t do much to enforce or remember them.  C automatically convert between many types. <a href="http://en.wikipedia.org/wiki/C%2B%2B" rel="nofollow external" class="bo">C++</a> and <a href="http://en.wikipedia.org/wiki/Objective-C" rel="nofollow external" class="bo">Objective-C</a> go further with the definitions but still don’t enforce the resulting types.</td>
    </tr>
    <tr>
    <td>Strong static typing</td>
    <td>
    <a href="http://en.wikipedia.org/wiki/Java_(programming_language)" rel="nofollow external" class="bo">Java</a> forces you to define all types and checks them with a virtual machine.</td>
    </tr>
    <tr>
    <td>Strong dynamic typing</td>
    <td>
    <a href="http://en.wikipedia.org/wiki/Python_(programming_language)" rel="nofollow external" class="bo">Python</a>, <a href="http://en.wikipedia.org/wiki/Javascript" rel="nofollow external" class="bo">JavaScript</a> and <a href="http://en.wikipedia.org/wiki/Ruby_(programming_language)" rel="nofollow external" class="bo">Ruby</a> dynamically infer the types of objects, instead of forcing you to define them, and then enforce those types when the program runs in the interpreter. All dynamically typed languages need a strong typing system at runtime or else they won’t be able to resolve the object types.</td>
    </tr>
    <tr>
    <td>Weak dynamic typing</td>
    <td>Dynamically inferred types don’t work in a weakly typed language because there aren’t any types to infer.</td>
    </tr>
    </tbody>
    </table>
    <p><strong>No programming language fits any of these definitions 100%.</strong> Java is considered one of the most static languages, but it implemented a comprehensive <a href="http://en.wikipedia.org/wiki/Reflection_(computer_programming)" rel="nofollow external" class="bo">reflection</a> API that lets you change classes at runtime, thus resembling more dynamic languages. This feature allows the Java Virtual Machine to support very dynamic languages such as <a href="http://en.wikipedia.org/wiki/Groovy_(programming_language)" rel="nofollow external" class="bo">Groovy</a>.</p>
    <p><a href="http://en.wikipedia.org/wiki/Functional_programming" rel="nofollow external" class="bo">Functional programming languages</a> such as <a href="http://en.wikipedia.org/wiki/Lisp_(programming_language)" rel="nofollow external" class="bo">Lisp</a>, <a href="http://en.wikipedia.org/wiki/Erlang_(programming_language)" rel="nofollow external" class="bo">Erlang</a> and <a href="http://en.wikipedia.org/wiki/Haskell_(programming_language)" rel="nofollow external" class="bo">Haskell</a> blur the lines even more.</p>
    <p>Usually when people argue about the merits of strong versus weak programming languages, they really mean the varying degrees of weak, strong, static and dynamic philosophies in every language.</p>
    <h3>Weak Static Languages: C, C++ And Objective-C</h3>
    <p>These next programming languages use a subset of C’s functionality and strict guidelines to improve the loose nature of the language. <a href="http://en.wikipedia.org/wiki/C%2B%2B" rel="nofollow external" class="bo">C++</a> and <a href="http://en.wikipedia.org/wiki/Objective-C" rel="nofollow external" class="bo">Objective-C</a> compile into the same bytes as C, but they use the compiler to restrict the code you can write.</p>
    <p>In C++ and Objective-C, <strong>our number (1229799107) has a meaning</strong>. I can define it as a string of characters and make sure that no one uses it as a currency or a date. The compiler enforces its proper use.</p>
    <p>Static typing supports objects with sets of functionality that always work in a well-defined way. Now I can create a <code>Person</code> object and make sure the <code>getName</code> function always returns the string of someone’s name.</p>
    <pre><code>&#x000A;    class Person {&#x000A;        public:&#x000A;            string getName() {&#x000A;                return "zack";&#x000A;            }&#x000A;    };&#x000A;    </code></pre>
    <p>Now I can call my object like this:</p>
    <pre><code>&#x000A;    Person p;&#x000A;    printf("The name is %s\n", p.getName().c_str());&#x000A;    </code></pre>
    <p>Static typing goes a long way to avoid the bugs of weakly typed languages by <strong>adding more constraints in the compiler</strong>, but it can’t check anything when the program is running because a C++ or Objective-C program is just like C code when it runs. Both languages also leave the option of mixing weakly typed C code with static typed C++ or Objective-C to bypass all of the type checking.</p>
    <p>Java goes a step beyond that, adding type checking when the code runs in a virtual machine.</p>
    <h3>Strong Static Languages: Java</h3>
    <p>C++ offers some stricter ways of using C; Java makes sure you use them. <strong>Java needs everything to be defined</strong> so that you know at all times what type of object you have, which functions that object has and whether you’re calling them properly.</p>
    <p>Java also stopped supporting C code and other ways of getting out of static typing.</p>
    <p>The <code>Person</code> object looks almost the same in Java:</p>
    <pre><code>&#x000A;    public class Person {&#x000A;        public String getName() {&#x000A;            return "zack";&#x000A;        }&#x000A;    }&#x000A;    </code></pre>
    <p>I get the name by creating a new object and calling the <code>getName</code> function, like this:</p>
    <pre><code>&#x000A;    public class Main {&#x000A;        public static void main (String args[]) {&#x000A;            Person person = new Person();&#x000A;            System.out.println("The name is " + person.getName());&#x000A;        }&#x000A;    }&#x000A;    </code></pre>
    <p>This code creates a new <code>Person</code> object, assigns it to a variable named <code>person</code>, calls the <code>getName</code> function and prints out the value.</p>
    <p>If I try to assign my <code>person</code> variable to a different type, such as a character or integer, then the Java compiler will show an error that these types are incompatible. If I was calling a separate API that had changed since I compiled, then the Java runtime would still find the type error.</p>
    <p><strong>Java doesn’t allow code outside of a class.</strong> It’s a major reason why people complain that Java forces you to write too much boilerplate.</p>
    <p>The popularity of Java and its strong adherence to strong typing made a huge impact on the programming landscape. Strong typing advocates lauded Java for fixing the cracks in C++. But many programmers found Java overly prescriptive and rigid. They wanted a fast way to write code without all of the extra definition of Java.</p>
    <h3>Strong Dynamic Languages: JavaScript, Python, Ruby And Many More</h3>
    <p>In JavaScript, I <strong>define a variable with the keyword</strong> <code>var</code>, instead of a type like <code>int</code> or <code>char</code>. I don’t know the type of this variable and I don’t need to until I actually want to access it.</p>
    <p>I can define an object in JavaScript with the <code>getName</code> function.</p>
    <pre><code>&#x000A;    var person = {&#x000A;        getName: function() {&#x000A;            return 'zack';&#x000A;        }&#x000A;    };&#x000A;    &#x000A;    alert('The name is ' + person.getName());&#x000A;    </code></pre>
    <p>Now I have an object named <code>person</code>, and it has a function named <code>getName</code>.  If I call <code>person.getName()</code>, it will result in <code>zack</code>.</p>
    <p>I declared <code>person</code> as a <code>var</code>, and I can reassign it to anything.</p>
    <pre><code>&#x000A;    var person = {&#x000A;        getName: function() {&#x000A;            return 'zack';&#x000A;        }&#x000A;    };&#x000A;    &#x000A;    person = 5;&#x000A;    &#x000A;    alert('The name is ' + person.getName());&#x000A;    </code></pre>
    <p>This code creates a variable named <code>person</code> and assigns it to an object with a <code>getPerson</code> function, but then it reassigns that variable to the number 5. When this code runs, the result is <code>TypeError: Object 5 has no method 'getName'</code>. JavaScript says that the object <code>5</code> doesn’t have a function named <code>getName</code>. In Java, this error would come up during compilation, but <strong>JavaScript makes you wait for runtime</strong>.</p>
    <p>I can also change the type of the object based on the conditions of the program.</p>
    <pre><code>&#x000A;    var person = {&#x000A;        getName: function() {&#x000A;            return 'zack';&#x000A;        }&#x000A;    };&#x000A;    &#x000A;    if (new Date().getMinutes() &gt; 29) {&#x000A;        person = 5;&#x000A;    }&#x000A;    &#x000A;    alert('The name is ' + person.getName());&#x000A;    </code></pre>
    <p>Now this code will work at 9:15 but will fail at 9:30. Java would call this a type error, but it’s fine in JavaScript.</p>
    <p>The most popular form of dynamic typing is called “duck typing” because the code looks at the object during runtime to determine the type — and if it walks like a duck and quacks like a duck, then it must be a duck.</p>
    <p><strong>Duck typing enables you to redefine any object in the middle of the program.</strong> It can start as a duck and turn into a swan or goose.</p>
    <pre><code>&#x000A;    var person = {&#x000A;        getName: function() {&#x000A;            return 'zack';&#x000A;        }&#x000A;    };&#x000A;    &#x000A;    person['getBirthday'] = function() {&#x000A;        return 'July 18th';&#x000A;    };&#x000A;    &#x000A;    alert('The name is ' + person.getName() + ' ' + &#x000A;          'and the birthday is ' + person.getBirthday());&#x000A;    </code></pre>
    <p>At any point, I can change the nature of my <code>Person</code> object to add the new <code>getBirthday</code> function or to remove existing functionality. Java won’t allow that because you can’t check object types when they’re always changing. Dynamically redefining objects gives you a lot of power, for good and bad.</p>
    <p>C shows errors when the program runs. C++, Objective-C and Java use the compiler to catch errors at compile time. JavaScript pushes those errors back to the runtime of the application. That’s why supporters of strong typing hate JavaScript so much: it seems like a big step backward. They’re always <a href="http://coding.smashingmagazine.com/2012/12/14/which-javascript-recipe-is-right-for-you/" rel="nofollow external" class="bo">looking for JavaScript alternatives</a>.</p>
    <h3>Which Is Better?</h3>
    <p>I’m looking for a program to parse XML, find a particular element, make a change and save the file. On a team of Java programmers, I wrote the code in the dynamic language <a href="http://en.wikipedia.org/wiki/Python_(programming_language)" rel="nofollow external" class="bo">Python</a>.</p>
    <pre><code>import sys&#x000A;    import string&#x000A;    from xml.dom.minidom import parse&#x000A;    &#x000A;    dom = parse(sys.argv[1])&#x000A;    &#x000A;    for node in dom.getElementsByTagName('property'):&#x000A;        attr = node.attributes['name'];&#x000A;        if attr.value == 'my value':&#x000A;            node.childNodes[0] = dom.createTextNode('my new value');&#x000A;    &#x000A;    file = open(sys.argv[1], 'w');&#x000A;    file.write(dom.toxml('UTF-8'));&#x000A;    file.close();&#x000A;    </code></pre>
    <p>This program finds every property node with the name <code>my value</code> and sets the contents to <code>my new value</code>. I define the variables <code>dom</code> for my XML document, <code>node</code> for each node of XML that I find, and <code>attr</code> for the attribute. Python doesn’t even require the keyword <code>var</code>, and it doesn’t know that <code>node</code> has <code>childNodes</code> or that <code>attr</code> has <code>value</code> until I call it.</p>
    <p>To change an XML file in Java, I would write a new class, open an input stream, call the DOM parser, traverse the tree, call the right methods on the right elements, and write the file out to an output stream. I could simplify some of those calls with a library, but I’d still have the overhead of defining my static types. All of the extra definition of objects and variables could easily take a hundred lines. Python takes 14.</p>
    <p><strong>Dynamic code is generally shorter than static code</strong> because it needs less description of what the code is going to do. This program would be shorter in Python than in C++ and shorter in Ruby than in Objective-C.</p>
    <p>So, which is better?</p>
    <table>
    <tbody>
    <tr>
    <th><strong>The static programmer says:</strong></th>
    <th>The dynamic programmer says:</th>
    </tr>
    <tr>
    <td>“Static typing catches bugs with the compiler and keeps you out of trouble.”</td>
    <td>“Static typing only catches some bugs, and you can’t trust the compiler to do your testing.”</td>
    </tr>
    <tr>
    <td>“Static languages are easier to read because they’re more explicit about what the code does.”</td>
    <td>“Dynamic languages are easier to read because you write less code.”</td>
    </tr>
    <tr>
    <td>“At least I know that the code compiles.”</td>
    <td>“Just because the code compiles doesn’t mean it runs.”</td>
    </tr>
    <tr>
    <td>“I trust the static typing to make sure my team writes good code.”</td>
    <td>“The compiler doesn’t stop you from writing bad code.”</td>
    </tr>
    <tr>
    <td>“Debugging an unknown object is impossible.”</td>
    <td>“Debugging overly complex object hierarchies is unbearable.”</td>
    </tr>
    <tr>
    <td>“Compiler bugs happen at midmorning in my office; runtime bugs happen at midnight for my customers.”</td>
    <td>“There’s no replacement for testing, and unit tests find more issues than the compiler ever could.”</td>
    </tr>
    </tbody>
    </table>
    <p>Static typing made our <code>Person</code> object easier to understand. We defined a <code>Person</code> with a name and agreed about which fields mattered ahead of time. Establishing everything clearly makes our <code>Person</code> easier to debug but harder to change.</p>
    <p>What happens <strong>when someone in our application needs a second email address?</strong> In a static language, we’d need to redefine the object so that everyone has two email addresses, even though most people don’t. Add in a birthday, favorite color and a few more items and every <code>Person</code> will have twice as many fields as they need.</p>
    <p><strong>Dynamic languages make this problem much easier.</strong> We can add a second email field to one <code>Person</code> without adding it to everyone. Now, each object has only the fields it needs. A static language could handle this with a generic map of values, but then you’re fighting the static environment to write dynamic code. C programmers spent years tearing their hair out over errors in type conversions, corrupt values, and the terrible bugs that come from small typos. They’ve been burnt by weak typing, and dynamic typing looks weak.</p>
    <p>Dynamic programmers spent years banging their heads over the rigidity of static languages, and they crave the freedom to make the languages do what they want.</p>
    <p>I’ve seen static code get overly complex and become impossible to follow. Try debugging an <a href="http://en.wikipedia.org/wiki/Enterprise_JavaBeans" rel="nofollow external" class="bo">enterprise JavaBean</a> or understanding all of the details of <a href="http://en.wikipedia.org/wiki/Generics_in_Java" rel="nofollow external" class="bo">generics in Java</a>. I’ve seen dynamic code turn into a giant mound of unmaintainable spaghetti.  Look at the myriad of terrible JavaScript programs before jQuery. <a href="http://en.wikipedia.org/wiki/Node.js" rel="nofollow external" class="bo">Node.js</a> does some amazing things, but I can’t look at it without traumatic flashbacks of horrible JavaScript that I’ve debugged.</p>
    <h3>Conclusion</h3>
    <p>There’s no clear conclusion.  Dynamically typed languages are popular now. The pendulum will swing back and forth many times in the coming years. The only solution is flexibility. Learn to work in each environment and you’ll work well with any team.</p>
    <p><em>Image credits of image on front page: <a href="http://www.flickr.com/photos/73807667@N02/8021619893/sizes/c/" rel="nofollow external" class="bo">Alexflx54</a></em></p>
    <p><em>(al) (ea)</em></p>
    <hr>
    <p><small>© Zack Grossbart for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2013.</small></p>
    </div>
]]>
</Body>
<Summary>         Static typing is great because it keeps you out of trouble.  Dynamic typing is great because it gets out of your way and lets you get your work done faster. The debate between strongly...</Summary>
<Website>http://www.smashingmagazine.com/2013/04/18/an-introduction-to-programming-type-systems/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27883/guest@my.umbc.edu/db53c6891712363d8d9e24bc73130476/api/pixel</TrackingUrl>
<Tag>coding</Tag>
<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>
<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, 18 Apr 2013 05:36:06 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="27884" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27884">
<Title>Turn HTML into a CMS site with concrete5</Title>
<Body>
<![CDATA[
    <div class="html-content">Don’t change the way you work. With concrete5, you can convert your HTML into a concrete5 theme in a few minutes. Chris Torres explains how<div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.netmagazine.com%2Ftutorials%2Fturn-html-cms-site-concrete5&amp;t=Turn+HTML+into+a+CMS+site+with+concrete5" 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.netmagazine.com%2Ftutorials%2Fturn-html-cms-site-concrete5&amp;t=Turn+HTML+into+a+CMS+site+with+concrete5" 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.netmagazine.com%2Ftutorials%2Fturn-html-cms-site-concrete5&amp;t=Turn+HTML+into+a+CMS+site+with+concrete5" 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.netmagazine.com%2Ftutorials%2Fturn-html-cms-site-concrete5&amp;t=Turn+HTML+into+a+CMS+site+with+concrete5" 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.netmagazine.com%2Ftutorials%2Fturn-html-cms-site-concrete5&amp;t=Turn+HTML+into+a+CMS+site+with+concrete5" 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/163644711438/u/49/f/502346/c/32632/s/2add4090/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/163644711438/u/49/f/502346/c/32632/s/2add4090/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Don’t change the way you work. With concrete5, you can convert your HTML into a concrete5 theme in a few minutes. Chris Torres explains how     </Summary>
<Website>http://feedproxy.google.com/~r/net/topstories/~3/N7fSvRoeSKw/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27884/guest@my.umbc.edu/443496f6a36e4a6cbbfd6ac52f2969f1/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>net</Tag>
<Tag>php</Tag>
<Tag>sql</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, 18 Apr 2013 05:35:15 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="27892" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27892">
<Title>4 subconscious mistakes you&#8217;re probably making</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img src="http://netdna.webdesignerdepot.com/uploads/2013/03/thumbnail20.jpg" alt="Thumbnail" width="200" height="160" style="max-width: 100%; height: auto;">It’s like biting your nails. It’s like sucking your thumb. It’s like cursing too much. We all have some bad habits, some we just cannot seem to shake. I’m not sure why that is. I mean, no matter how wrong you know it is or how bad it is for you, it’s just impossible to stop.</p>
    <p>And have you realized that half the time you don’t even notice? Tomorrow, you can look down at your nails and wonder where they’ve disappeared to. And eventually, you’ll remember that you happily nibbled them off.</p>
    <p>As a designer, you’re probably no different. You’re a human and no one is perfect, plus design is just a tough industry. Sometimes, we are our own worst enemies with the things we do and we never seem to notice, nor do we stop. Being a designer, there are four things I notice most often that I and my colleagues do:</p>
    <p> </p>
    <h1>1. Aesthetics vs. ease of use</h1>
    <p><a href="http://netdna.webdesignerdepot.com/uploads/2013/03/aesthetics.jpg" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/03/aesthetics.jpg" width="650" style="max-width: 100%; height: auto;"></a></p>
    <p>We are designers. We are not artists. We are asked to fix problems, create solutions and design things. I could even say, though a stretch, that we are scientists.</p>
    <p>Artists typically have less or no rules and make things that make them feel good. But as designers, at the very least, we have to make something that makes our client (and eventually their customer) feel good. We shouldn’t be in the league of creating something pretty. We should be able to do that when necessary, but that shouldn’t be our priority. We must focus on ease of use or making things that make sense.</p>
    <p>It’s the reason why we hate fonts like Comic Sans and Papyrus, but love Helvetica. One is readable and serves as a great body font. The others? Well, not so much. Things have to make sense before we make them pretty. It’s why we create sketches and request thorough design briefs before designing a project.</p>
    <p>From our navigation menus to our image placement to the bullets we use, it has to be easy to understand. Far too many designers are stuck on an aesthetics first. Projects begin and end with looks rather than how to make things better and easier to understand. And it’s really easy to become concerned with looks when there are so many good designs with a high aesthetic quality. But I’ve learned when you pay attention to creating something with a purpose, aesthetics tend to fall right into place.</p>
    <p> </p>
    <h1>2. Looking at trends</h1>
    <p><a href="http://netdna.webdesignerdepot.com/uploads/2013/03/trends.jpg" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/03/trends.jpg" width="650" style="max-width: 100%; height: auto;"></a></p>
    <p>We all do it. We look to the new trends list and the infinite number of inspiration posts. And there’s nothing wrong with being up to date, but we have to be really careful with copying and emulating things that are already being done. </p>
    <p>It’s the difference between your web design being regular and being a stand out. We have to use these trends and inspiration as a means to learn how to approach different problems and situations. We’ve got to digest them and regurgitate something new and better.</p>
    <p>If we’re serious designers, we have to be forward thinkers who are always looking for the next big thing. How many vintage badges and seals have you seen? How many huge Helvetica or Futura headlines have you seen? Now when are you going to be the person to set the next trends as opposed to following?</p>
    <p> </p>
    <h1>3. Only inspired by web design</h1>
    <p><a href="http://netdna.webdesignerdepot.com/uploads/2013/03/inspiration.jpg" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/03/inspiration.jpg" width="650" style="max-width: 100%; height: auto;"></a></p>
    <p>We just talked about how we love to eat up the new trends that every design is already doing. But something I take great issue with is that we really are only inspired by similar things. We aren’t expanding our inspiration much, unless we’re taking print ideas and putting them on the web. Otherwise, we get inspired for web design by web designs.</p>
    <p>Design (and art) tend to make us feel things and allow us to process things differently. By only being inspired by other web design for your web project or other flyer designs for your flyer project, you are cheating yourself out of good things. </p>
    <p>Architecture, photography and even areas like furniture design can open up your eyes to new solutions for 3-column layouts, for example. Checking out some fashion design may give you an idea of what kind of textures and patterns you may want to use for a brand. I’ve even been inspired by a picture frame for a logo design. Anything works.</p>
    <p>Also, taking a look into different areas of designs helps to free your mind a bit. It allows you an opportunity to think about your project from a different angle. It enhances your creativity so that you can be more creative with the work you’ve got to do. Taking a look at something different can make all the difference in your designs.</p>
    <p>No matter the concentration or area, many designs have faced similar problems you’re trying to solve. Why not attempt to find different approaches and different solutions?</p>
    <p> </p>
    <h1>4. Moaning and groaning</h1>
    <p><a href="http://netdna.webdesignerdepot.com/uploads/2013/03/moaning.jpg" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/03/moaning.jpg" width="650" style="max-width: 100%; height: auto;"></a></p>
    <p>I’ve rarely met a designer who hasn’t whined about something. It could be client who’s too cheap or the one who doesn’t understand why it’s taking so long for a “simple” logo. Whichever it is, graphic designers just whine and get upset and never stop. I guess we feel underappreciated and underpaid and just like to have pity parties.</p>
    <p>Whatever. I say stop. Right now. Put your foot down with bad clients and remind them of your worth and what you’re doing. When I start a project, I outright let them know the way the relationship works and give them time tables for things. If there’s an issue there, then I immediately know we aren’t a good fit. Also, a trick is to add a couple days or weeks onto your timetable for safety reasons.</p>
    <p>No one understands the life of a designer and if you’re really good, chances are you make what you do look real easy. Clients probably don’t have a clue and don’t understand. Clients who are cheap don’t understand the concept of quality nor do the get the difficulty of what you’re doing. If your work, timetables and design process cannot be respected, then save yourself the headache and move right along.</p>
    <p>Many don’t understand the worth of designers, and it’s not really their fault. Businesspeople are concerned about their customers and making money and the like. Spending money on something like design may not be what matters to some. And I can guarantee you, that’s not the person you want to work for. Never be afraid to say ‘no’ and never be afraid to respectfully stand up for yourself.</p>
    <p>I’m not telling you to overcharge, nor am I telling you to be a snob to your clients, but it’s absolutely necessary that there’s a level of respect in your working relationships. For every cheap client and headache you say no, there’s a good client out there looking for you!</p>
    <p> </p>
    <h1>Conclusion</h1>
    <p>So you can put hot sauce on your thumb or disgusting nail polish on your nails in an attempt to get you to stop, but when you boil it down, you just have to make a conscious decision to make your change. Doing so makes designing much easier and even liberating. There was a point when I decided to make a change it just felt like I wasn’t even working any more. I was just enjoying what I do and making great things. Now it’s your turn. What are you going to stop doing today?</p>
    <p> </p>
    <p><em><strong>What are some subconscious things you notice you do? Could stopping make you a better designer? Let us know in the comments.</strong></em></p>
    <p><br><br>
    </p>
    <table width="100%">
    <tbody>
    <tr>
    <td>
          <a href="http://www.mightydeals.com/deal/tenton-html5-css3.html?ref=inwidget" rel="nofollow external" class="bo"><strong>Beginner’s Course: Learn HTML5 &amp; CSS3 Web Design – only $27!</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" style="max-width: 100%; height: auto;"><br>
          </a>
        </td>
    </tr>
    </tbody>
    </table>
    <p><br> </p>
    <a href="http://www.webdesignerdepot.com/2013/04/4-subconscious-mistakes-youre-probably-making/" rel="nofollow external" class="bo">Source</a>
    </div>
]]>
</Body>
<Summary>It’s like biting your nails. It’s like sucking your thumb. It’s like cursing too much. We all have some bad habits, some we just cannot seem to shake. I’m not sure why that is. I mean, no matter...</Summary>
<Website>http://www.webdesignerdepot.com/2013/04/4-subconscious-mistakes-youre-probably-making/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27892/guest@my.umbc.edu/c6f54cb4d8ad1adb0d8b1abaee0aea88/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>bad-clients</Tag>
<Tag>bad-habits</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>design-inspiration</Tag>
<Tag>design-mistakes</Tag>
<Tag>design-trends</Tag>
<Tag>designer-fail</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>subconscious-habits</Tag>
<Tag>web-design</Tag>
<Tag>web-designers</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, 18 Apr 2013 05:15:19 -0400</PostedAt>
<EditAt>Thu, 18 Apr 2013 05:15:19 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="27907" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27907">
<Title>Men's Lacrosse Heads to Albany to Battle Tenth-Ranked Great Danes on Friday Evening</Title>
<Body>
<![CDATA[
    <div class="html-content">The UMBC men's lacrosse team faces its fourth ranked team of the 2013 season when the Retrievers (5-6, 2-1 America East) meet the 10th-ranked Albany Great Danes (9-3, 3-0) at John Fallon Field in Albany, N.Y. on Friday, April 19. The opening face-off is set for 7:00 p.m. and the contest will be broadcast on Q1370 (<a href="http://www.q1370.com">www.q1370.com</a>) with Steve Levy on the call and televised live by Time Warner Cable in the Capital Region.</div>
]]>
</Body>
<Summary>The UMBC men's lacrosse team faces its fourth ranked team of the 2013 season when the Retrievers (5-6, 2-1 America East) meet the 10th-ranked Albany Great Danes (9-3, 3-0) at John Fallon Field in...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=7911</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27907/guest@my.umbc.edu/e245f39a9532a964d6195a4600a3657f/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>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 18 Apr 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="27940" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27940">
<Title>Track and Field Travels Across Town for Morgan State Legacy Meet Starting on Friday</Title>
<Body>
<![CDATA[
    <div class="html-content">BALTIMORE � With just two weeks left before the America East Championships in Vestal, N.Y., the UMBC track and field teams travel across town for the two-day Morgan State Legacy Meet at Hughes Stadium.  The meet is set to begin on Friday with the decathlon and men's javelin kicking-off at 12:00 p.m.  Saturday will start at 9:30 a.m. with the decathlon once again starting things off.</div>
]]>
</Body>
<Summary>BALTIMORE � With just two weeks left before the America East Championships in Vestal, N.Y., the UMBC track and field teams travel across town for the two-day Morgan State Legacy Meet at Hughes...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=7912</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27940/guest@my.umbc.edu/6beedbdcaff0d75b40347b055eaddca6/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>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 18 Apr 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="27941" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27941">
<Title>Track and Field Travels Across Town for Morgan State Legacy Meet Starting on Friday</Title>
<Body>
<![CDATA[
    <div class="html-content">BALTIMORE � With just two weeks left before the America East Championships in Vestal, N.Y., the UMBC track and field teams travel across town for the two-day Morgan State Legacy Meet at Hughes Stadium.  The meet is set to begin on Friday with the decathlon and men's javelin kicking-off at 12:00 p.m.  Saturday will start at 9:30 a.m. with the decathlon once again starting things off.</div>
]]>
</Body>
<Summary>BALTIMORE � With just two weeks left before the America East Championships in Vestal, N.Y., the UMBC track and field teams travel across town for the two-day Morgan State Legacy Meet at Hughes...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=7913</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27941/guest@my.umbc.edu/1ae2218f7e5122fd6863bafed62def7b/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>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Thu, 18 Apr 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="30058" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30058">
<Title>Intel&#8217;s Dubious Plan to Take Over TV</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Slumping PC sales and a changing server market are maiming Intel. But its plan to sell services for the home’s biggest screen is a long shot.</p>
    <p>When Intel lifted the veil from its stealthy media division in February, many outsiders scratched their heads. Why was the chip manufacturer, which has tried and failed to sell consumer products before, trying to launch a TV service, one of the trickiest consumer markets of all?</p>
    </div>
]]>
</Body>
<Summary>Slumping PC sales and a changing server market are maiming Intel. But its plan to sell services for the home’s biggest screen is a long shot.  When Intel lifted the veil from its stealthy media...</Summary>
<Website>http://www.technologyreview.com/news/513601/intels-dubious-plan-to-take-over-tv/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30058/guest@my.umbc.edu/0132cf7d8e6766e70f74eea37dd31a36/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, 18 Apr 2013 00:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="27881" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27881">
<Title>Typemock Launches Community for Developers in Early Stages of Unit Testing Adoption</Title>
<Body>
<![CDATA[
    <div class="html-content"><p>With over 50,000 Typemock users worldwide, we have seen time and again cases where developers - who believe in the benefits of Unit testing – drop it after facing opposition from management, harsh deadlines or other early challenges. Typemock wants to help developers overcome the early obstacles they face.</p></div>
]]>
</Body>
<Summary>With over 50,000 Typemock users worldwide, we have seen time and again cases where developers - who believe in the benefits of Unit testing – drop it after facing opposition from management, harsh...</Summary>
<Website>http://www.htmlgoodies.com/daily_news/developer-unit-testing-horror-stories.html</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27881/guest@my.umbc.edu/c0c7deff3f204c56b3b92042257525c7/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, 17 Apr 2013 20:27:00 -0400</PostedAt>
<EditAt>Wed, 17 Apr 2013 20:27:00 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="27880" important="false" status="posted" url="https://my3.my.umbc.edu/posts/27880">
<Title>Getting Into Ember.js: Part 3</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <a href="http://rss.buysellads.com/click.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=31394&amp;c=945854465" rel="nofollow external" class="bo"><img src="http://rss.buysellads.com/img.php?z=1260013&amp;k=d754f1e9ba63a736ba8ff5ece958f7dd&amp;a=31394&amp;c=945854465" alt="" style="max-width: 100%; height: auto;"></a><p>I hope that you’re <a href="http://net.tutsplus.com/tutorials/javascript-ajax/getting-into-ember-js-part-2/" rel="nofollow external" class="bo">starting to see</a> that Ember.js is a powerful, yet opinionated, framework. We’ve only scratched its surface; there’s more to learn before we can build something truly useful! We’ll continue using the <a href="https://github.com/NETTUTS/Ember-Starting-Kit" rel="nofollow external" class="bo">Ember Starter Kit</a>. In this portion of the series, we’ll review accessing and managing data within Ember.</p>
    <p></p>
    <hr>
    <h2>Playing with Data</h2>
    <p>In <a href="http://net.tutsplus.com/tutorials/javascript-ajax/getting-into-ember-js-part-2/" rel="nofollow external" class="bo">the last article</a>, we worked with a static set of color names that were defined within a controller:</p>
    <pre>App.IndexRoute = Ember.Route.extend({&#x000A;     setupController: function(controller) {&#x000A;       controller.set('content', ['red', 'yellow', 'blue']);&#x000A;     }&#x000A;    });</pre>
    <p>This allowed the controller to expose the data to the <em>index</em> template. That’s cute for a demo, but in real life, our data source will not be a hard-coded array.</p>
    <p>This is where <em>models</em> comes in. <em>Models</em> are object representations of the data your application uses. It could be a simple array or data dynamically retrieved from a RESTful JSON API. The data itself is accessed by referencing the model’s attributes. So, if we look at a result like this:</p>
    <pre>{&#x000A;       "login": "rey",&#x000A;       "id": 1,&#x000A;       "age": 45,&#x000A;       "gender": "male"&#x000A;    }</pre>
    <p>The attributes exposed in the model are:</p>
    <ul>
    <li>login</li>
    <li>id</li>
    <li>age</li>
    <li>gender</li>
    </ul>
    <blockquote><p>Data itself is accessed by referencing the model’s attributes.</p></blockquote>
    <p>As you see from the code above, you could define a static store, but you’ll use <a href="http://emberjs.com/guides/object-model/classes-and-instances/" rel="nofollow external" class="bo">Ember.Object</a> for defining your models most of the time. By subclassing <code>Ember.Object</code>, you’ll be able to return data (e.g.: via an Ajax call) and define your model. While you can explicitly set data within a controller, it’s always recommended that you create a model in order to adhere to separation of concerns and code organization best practices.</p>
    <p>Alternatively, you could use a sister framework called <a href="https://github.com/emberjs/data" rel="nofollow external" class="bo">Ember Data</a>. It is an ORM-like API and persistence store, but I need to stress that it is in a state of flux as of this writing. It has a lot of potential, but using <code>Ember.Object</code> is much safer at this time. Robin Ward, co-founder of <a href="http://www.discourse.org/" rel="nofollow external" class="bo">Discourse</a>, wrote <a href="http://eviltrout.com/2013/03/23/ember-without-data.html" rel="nofollow external" class="bo">a great blog post</a> on using Ember without Ember Data. It outlines their process, which I’ll break down for you.</p>
    <hr>
    <h2>Defining your Models</h2>
    <p>In the following example, I’m going to use the <a href="http://api.ihackernews.com/" rel="nofollow external" class="bo">unofficial Hacker News API</a> to pull JSON-based data from the news resource. This data will be stored in my model and later used by a controller to fill a template. If we look at the data returned from the API, we can understand the properties we’ll be working with:</p>
    <pre>{&#x000A;      "nextId": null,&#x000A;      "items": [{&#x000A;              "title": "Docker, the Linux container runtime: now open-source",&#x000A;              "url": "<a href="http://docker.io">http://docker.io</a>",&#x000A;              "id": 5445387,&#x000A;              "commentCount": 39,&#x000A;              "points": 146,&#x000A;              "postedAgo": "2 hours ago",&#x000A;              "postedBy": "shykes"&#x000A;          }, {&#x000A;              "title": "What\u0027s Actually Wrong with Yahoo\u0027s Purchase of Summly",&#x000A;              "url": "<a href="http://hackingdistributed.com/2013/03/26/summly/">http://hackingdistributed.com/2013/03/26/summly/</a>",&#x000A;              "id": 5445159,&#x000A;              "commentCount": 99,&#x000A;              "points": 133,&#x000A;              "postedAgo": "2 hours ago",&#x000A;              "postedBy": "hoonose"&#x000A;          },&#x000A;      ],&#x000A;      "version": "1.0",&#x000A;      "cachedOnUTC": "\/Date(1364333188244)\/"&#x000A;    }</pre>
    <p>I want to work with the <code>items</code> property, which contains all of the headlines and story information. If you’ve worked with SQL databases, think of each element of <code>items</code> as a record and the property names (i.e.: <code>title</code>, <code>url</code>, <code>id</code>, etc.) as field names. It’s important to grok the layout because these property names will be used as the attributes of our model object—which is a perfect segue into creating the model.</p>
    <blockquote><p><code>Ember.Object</code> is the main base class for all Ember objects, and we’ll subclass it to create our model using its <code>extend()</code> method.</p></blockquote>
    <p>To do this, we’ll add the following code to <em>js/app.js</em> immediately after the code that defines <code>App.IndexRoute</code>:</p>
    <pre>App.Item = Ember.Object.extend();</pre>
    <p><code>App.Item</code> serves as the model class for the Hacker News data, but it has no methods to retrieve or manipulate that data. So, we’ll need to define those:</p>
    <pre>App.Item.reopenClass({&#x000A;      all: function() {&#x000A;          return $.getJSON("<a href="http://api.ihackernews.com/page?format=jsonp&amp;callback=?%22).then(function(response)">http://api.ihackernews.com/page?format=jsonp&amp;callback=?").then(function(response)</a> {&#x000A;            var items = [];&#x000A;    &#x000A;            response.items.forEach( function (item) {&#x000A;              items.push( App.Item.create(item) );&#x000A;            });&#x000A;    &#x000A;    	      return items;&#x000A;          });&#x000A;      }&#x000A;    });</pre>
    <p>Let’s break down this code. First, we use Ember’s <code>reopenClass()</code> method to add our new methods to the <code>App.Item</code> class, and you pass it an object that contains our desired methods. For this example, we only need one method called <code>all()</code>: it returns all of the headlines from the Hacker News frontpage. Because jQuery is part of the deal with Ember, we have its simple Ajax API at our disposal. The API uses JSONP to return JSON data; so, I can just use <code>$.getJSON()</code> to make the request to:</p>
    <pre>$.getJSON("<a href="http://api.ihackernews.com/page?format=jsonp&amp;callback">http://api.ihackernews.com/page?format=jsonp&amp;callback</a>=?")</pre>
    <p>The “callback=?” tells jQuery that this is a JSONP request, and the data (once it’s retrieved) is passed to an anonymous callback handler defined using jQuery’s promises functionality:</p>
    <pre>.then(function(response) {...});</pre>
    <blockquote><p>I can easily pump in my JSON data into an Ember object.</p></blockquote>
    <p>The <code>response</code> parameter contains the JSON data, allowing you to loop over the records and update the local <code>items</code> array with instances of <code>App.Item</code>. Lastly, we return the newly populated array when <code>all()</code> executes. That’s a lot of words, so let me summarize:</p>
    <ul>
    <li>Create your new model class by subclassing <code>Ember.Object</code> using <code>extend()</code>.</li>
    <li>Add your model methods using <code>reopenClass()</code>.</li>
    <li>Make an Ajax call to retrieve your data.</li>
    <li>Loop over your data, creating an <code>Item</code> object and pushing it into an array.</li>
    <li>Return the array when the method executes.</li>
    </ul>
    <p>If you refresh <em>index.html</em>, you’ll see nothing has changed. This makes sense because the model has only been defined; we haven’t accessed it.</p>
    <hr>
    <h2>Exposing Your Data</h2>
    <p>Controllers act like proxies, giving you access to the model’s attributes and allowing templates to access them in order to dynamically render the display. In addition to accessing attributes from an associated model, controllers can also store other application properties that need to persist without saving to a server.</p>
    <p>Currently, our app has the following controller (the one that defines a static data set):</p>
    <pre>App.IndexRoute = Ember.Route.extend({&#x000A;      setupController: function(controller) {&#x000A;        controller.set('content', ['red', 'yellow', 'blue']);&#x000A;      }&#x000A;    });</pre>
    <p>We can directly associate our model with <code>App.IndexRoute</code> using the <code>model</code> method (AKA the model hook):</p>
    <pre>App.IndexRoute = Ember.Route.extend({&#x000A;      model: function() {&#x000A;        return App.Item.all();&#x000A;      }&#x000A;    });</pre>
    <p>Remember that Ember defines your controller if you don’t explicitly define it yourself, and that is what’s happening in this case.</p>
    <blockquote><p>Behind the scenes, Ember creates <code>IndexController</code> as an instance of <code>Ember.ArrayController</code>, and it uses the model specified in the <code>model</code> method.</p></blockquote>
    <p>Now we just need to update the index template to access the new attributes. Opening <em>index.html</em>, we can see the following Handlebars template code:</p>
    <pre>{{#each item in model}}&#x000A;        &lt;li&gt;{{item}}&lt;/li&gt;&#x000A;    {{/each}}</pre>
    <p>With one small change (adding the <code>title</code> property), we can immediately see the titles returned from the Hacker News API:</p>
    <p><code>{{item.title}}</code></p>
    <p>If you refresh your browser now, you should see something similar to the following:</p>
    <pre>&lt;h3&gt;Welcome to Ember.js&lt;/h3&gt;&#x000A;    &lt;ul&gt;&lt;li&gt;Persona is distributed. Today.&lt;/li&gt;&#x000A;    &lt;li&gt;21 graphs that show America's health-care prices are ludicrous&lt;/li&gt;&#x000A;    &lt;li&gt;10 000 concurrent real-time connections to Django&lt;/li&gt;&#x000A;    &lt;li&gt;Docker, the Linux container runtime: now open-source&lt;/li&gt;&#x000A;    &lt;li&gt;Let's Say FeedBurner Shuts Down…&lt;/li&gt;&lt;/ul&gt;&#x000A;    </pre>
    <p>If you want to display more information, simply add more properties:</p>
    <pre>{{item.title}} - {{item.postedAgo}} by {{item.postedBy}}</pre>
    <p>Refresh to see the updates you’ve made. That’s the beauty of Handlebars; it makes it trivial to add new data elements to the user interface.</p>
    <p>As I mentioned before, controllers can also be used to define static attributes that need to persist throughout the life of your application. For example, I may want to persist certain static content, like this:</p>
    <pre>App.IndexController = Ember.ObjectController.extend({&#x000A;      headerName: 'Welcome to the Hacker News App',&#x000A;      appVersion:  2.1&#x000A;    });</pre>
    <p>Here, I subclass <code>Ember.ObjectController</code> to create a new controller for my <em>index</em> route and template to work with. I can now go to <em>index.html</em> and update my template to replace the following:</p>
    <pre>&lt;h2&gt;Welcome to Ember.js&lt;/h2&gt;</pre>
    <p>with:</p>
    <pre>&lt;h2&gt;{{headerName}}&lt;/h2&gt;</pre>
    <blockquote><p><em>Models</em> are object representations of the data your application uses.</p></blockquote>
    <p>Handlebars will take the specified attributes in my controller and dynamically replace the <code>{{headerName}}</code> placeholder with its namesake value. It’s important to reinforce two things:</p>
    <ul>
    <li>By adhering to Ember’s naming conventions, I didn’t have to do any wiring to be able to use the controller with the index template.</li>
    <li>Even though I explicitly created an <code>IndexController</code>, Ember is smart enough not to overwrite the existing model that’s been associated via the route.</li>
    </ul>
    <p>That’s pretty powerful and flexible stuff!</p>
    <hr>
    <h2>Next up…Templates</h2>
    <p>Working with data in Ember isn’t difficult. In actuality, the hardest part is working with the various APIs that abound on the web.</p>
    <blockquote><p>The fact that I can easily pump in my JSON data into an Ember object makes management substantially easier—although I’ve never been a big fan of large data sets on the client-side, especially when represented as objects.</p></blockquote>
    <p>It’s something I’ll have to do more testing on, and I hope that Ember Data makes all of this trivial.</p>
    <p>With that said, I briefly touched on templates in this article. They’re very important… so much so that I want to tackle this topic in its own article. So in the next article, we’ll go over how to leverage Handelbars to build your user interface and drill-down into the various directives the templating framework offers.</p>
    </div>
]]>
</Body>
<Summary>I hope that you’re starting to see that Ember.js is a powerful, yet opinionated, framework. We’ve only scratched its surface; there’s more to learn before we can build something truly useful!...</Summary>
<Website>http://feedproxy.google.com/~r/nettuts/~3/-fRrSIgHeWU/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/27880/guest@my.umbc.edu/fc4e0bcde9af57e18d766f88c8d49e8a/api/pixel</TrackingUrl>
<Tag>css</Tag>
<Tag>development</Tag>
<Tag>ember</Tag>
<Tag>handlebars</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>javascript-and-ajax</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tutorials</Tag>
<Tag>wed</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, 17 Apr 2013 19:20:52 -0400</PostedAt>
<EditAt>Wed, 17 Apr 2013 19:20:52 -0400</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="30059" important="false" status="posted" url="https://my3.my.umbc.edu/posts/30059">
<Title>Have You Embarrassed Yourself Online?</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Many web services offer an accidental megaphone. They need to protect us from ourselves.</p>
    <p>I haven’t used Facebook’s Groups feature, but today brings <a href="http://allthingsd.com/20130417/facebook-gives-timeline-billing-to-groups-product/" rel="nofollow external" class="bo">news</a> that the company is boosting its visibility by adding the section to users’ Timeline pages. On some intuitive level, this bothers me: Groups is about having private conversations among friends and colleagues, reportedly. Yet the Timeline is one of the most visible, public parts of a Facebook user’s page. So what gives?</p>
    </div>
]]>
</Body>
<Summary>Many web services offer an accidental megaphone. They need to protect us from ourselves.  I haven’t used Facebook’s Groups feature, but today brings news that the company is boosting its...</Summary>
<Website>http://www.technologyreview.com/view/513846/have-you-embarrassed-yourself-online/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/30059/guest@my.umbc.edu/ed25683063a73a680fb05c4c48f8f13d/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>Wed, 17 Apr 2013 19:13:19 -0400</PostedAt>
</NewsItem>

</News>
