<?xml version="1.0"?>
<News hasArchived="true" page="8052" pageCount="10743" pageSize="10" timestamp="Fri, 07 Aug 2026 02:07:09 -0400" url="https://my3.my.umbc.edu/posts.xml?mode=activity&amp;page=8052">
<NewsItem contentIssues="true" id="38509" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38509">
<Title>Alternative School Break: Lasting Impact</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <h5>by Stephanie-Jane Okpara</h5>
    <div><br></div>
    <div>I’ve always been involved in service in my community, but never really got involved in service at UMBC until my 2013 Alternative School Break Trip during spring break. A friend of mine who was planning to participate in an ASB trip encouraged me to apply. At first, I was hesitant because I was looking forward to having that week to relax, but I decided to go ahead and apply anyway. The UMBC students I met during this experience were amazing and had a passion for service... (<a href="http://umbcbreakingground.wordpress.com/2013/11/18/alternative-school-break-lasting-impact/" rel="nofollow external" class="bo">continue reading</a>)</div>
    </div>
]]>
</Body>
<Summary>by Stephanie-Jane Okpara     I’ve always been involved in service in my community, but never really got involved in service at UMBC until my 2013 Alternative School Break Trip during spring break....</Summary>
<Website>http://umbcbreakingground.wordpress.com/2013/11/18/alternative-school-break-lasting-impact/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38509/guest@my.umbc.edu/f3ca2ea9c232a7436e5b2c1f4fa19a0d/api/pixel</TrackingUrl>
<Group token="bg">UMBC BreakingGround</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/bg</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/xsmall.png?1360169927</AvatarUrl>
<AvatarUrl size="original">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/original.png?1360169927</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/xxlarge.png?1360169927</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/xlarge.png?1360169927</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/large.png?1360169927</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/medium.png?1360169927</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/small.png?1360169927</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/xsmall.png?1360169927</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/493/e0dc61eceffa1a7dff9d396b4b7c5011/xxsmall.png?1360169927</AvatarUrl>
<Sponsor>UMBC BreakingGround</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/509/ba662e164a309d42867d16592696807f/xxlarge.jpg?1384788529</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/038/509/ba662e164a309d42867d16592696807f/xlarge.jpg?1384788529</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/038/509/ba662e164a309d42867d16592696807f/large.jpg?1384788529</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/509/ba662e164a309d42867d16592696807f/medium.jpg?1384788529</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/509/ba662e164a309d42867d16592696807f/small.jpg?1384788529</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/509/ba662e164a309d42867d16592696807f/xsmall.jpg?1384788529</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/038/509/ba662e164a309d42867d16592696807f/xxsmall.jpg?1384788529</ThumbnailUrl>
<PawCount>4</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Nov 2013 10:29:26 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="38506" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38506">
<Title>Celebrating Commuter Students</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <div>The office of Off-Campus Student Services celebrated with UMBC’s commuter students <span>at the annual Commuter Week—a week of events to highlight, entertain, and inform the </span><span>commuter student population. Beginning on October 28th </span><span> </span><span>and ending on November 1st, each day </span><span>was filled with ways to engage with the campus community from “Commuter Game Night” to </span><span>“Good Morning Commuters Breakfast” to “Commuters Care: Vets Service Project”. </span>
    </div>
    <div><br></div>
    <div>Students got lots of tips about being safe on and off campus and while on the road. At <span>“Street Smarts: Self-Defense and Safety”, the UMBC police demonstrated self-defense moves, </span><span>and UHS peer health educators advised students on how to defend themselves during the </span><span>upcoming cold and flu season. “Green Dot Overview” provided guidance for keeping the </span><span>campus community safe through active bystander training. As the week moved into Halloween, </span><span>commuters learned about emergency car maintenance such as changing a flat tire, checking tire </span><span>pressure, and jump-starting a car at “Nightmare on Hilltop”. </span>
    </div>
    <div><br></div>
    <div>Other Halloween-themed events included “Transportation Fair” with a zombie twist and <span>“Carpool Fever” with a scary movie flair. At these events, students learned about commuting </span><span>options available at UMBC such as Transit Services’ seven shuttle lines, connections to MTA’s </span><span>public transportation system, and the growing casual carpooling community. </span><span>and ending on November 1st</span>
    </div>
    <div><br></div>
    <div>Although Commuter Week 2013 has come to an end, OCSS continues to host events <span>every week. Keep up-to-date on ways to get involved at the UMBC Off-Campus Student </span><span>Services facebook page or at <a href="http://my.umbc.edu/groups/ocss">http://my.umbc.edu/groups/ocss</a>.</span>
    </div>
    </div>
]]>
</Body>
<Summary>The office of Off-Campus Student Services celebrated with UMBC’s commuter students at the annual Commuter Week—a week of events to highlight, entertain, and inform the commuter student population....</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38506/guest@my.umbc.edu/dbf6cb83d7cebb8a7568e7aac42be287/api/pixel</TrackingUrl>
<Tag>commuter</Tag>
<Tag>umbc</Tag>
<Tag>week</Tag>
<Group token="retired-420">UMBC Family Connection </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-420</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xsmall.png?1340914772</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/original.png?1340914772</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xxlarge.png?1340914772</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xlarge.png?1340914772</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/large.png?1340914772</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/medium.png?1340914772</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/small.png?1340914772</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xsmall.png?1340914772</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xxsmall.png?1340914772</AvatarUrl>
<Sponsor>UMBC Family Connection</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/506/e76d0860a1123e0cbc3cd3ec02e3c31b/xxlarge.jpg?1384788472</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/506/e76d0860a1123e0cbc3cd3ec02e3c31b/xlarge.jpg?1384788472</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/506/e76d0860a1123e0cbc3cd3ec02e3c31b/large.jpg?1384788472</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/038/506/e76d0860a1123e0cbc3cd3ec02e3c31b/medium.jpg?1384788472</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/506/e76d0860a1123e0cbc3cd3ec02e3c31b/small.jpg?1384788472</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/038/506/e76d0860a1123e0cbc3cd3ec02e3c31b/xsmall.jpg?1384788472</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/038/506/e76d0860a1123e0cbc3cd3ec02e3c31b/xxsmall.jpg?1384788472</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Nov 2013 10:28:46 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="38508" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38508">
<Title>Microsoft Scholarships are currently available</Title>
<Tagline>Apply Today!</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <p>By applying to the Microsoft Scholarship Program <em>students may be eligible for full or partial tuition</em> for the 2014-2015 academic year!</p>
    <p><strong>Student Eligibility Criteria:</strong></p>
    <p><span>·</span><span>         </span>Currently enrolled full-time in a bachelors degree program in the U.S., Canada, or Mexico</p>
    <p><span>·</span><span>         </span>Pursuing a degree in CS or a related technical discipline</p>
    <p><span>·</span><span>         </span>Cumulative GPA of 3.0/4.0 or 4.0/5.0 or higher</p>
    <p><span><strong>Visit: </strong><a href="http://www.microsoft.com/university/scholarships" rel="nofollow external" class="bo"><span>www.microsoft.com/university/scholarships</span></a> for more information.</span></p>
    <p>Applications must be received by: <span><strong>January 31</strong></span><span><strong><sup>st</sup></strong></span><span><strong>, 2014</strong></span></p>
    <p><span><strong><br></strong></span></p>
    <p>A Microsoft scholarship provides a leg up so you can pursue undergraduate studies in computer science and related technical disciplines. You’ll join a community of scholarship recipients from the United States, Canada and Mexico who share your passion for technology and academic excellence. It all adds up to achieving your primary goal—making a real difference in the software industry.</p>
    <p></p>
    <p>Microsoft is offering four different types of technical scholarships for the 2014-2015 academic year to current undergraduate students: General Scholarships, Women’s Scholarships, Minority Scholarships, and Scholarships for Students with Disabilities.</p>
    </div>
]]>
</Body>
<Summary>By applying to the Microsoft Scholarship Program students may be eligible for full or partial tuition for the 2014-2015 academic year!   Student Eligibility Criteria:   ·         Currently...</Summary>
<Website>http://careers.microsoft.com/careers/en/us/internships-scholarships.aspx</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38508/guest@my.umbc.edu/d0447b56f46f1acce6bdb7bb3b5df9b7/api/pixel</TrackingUrl>
<Group token="careers">Career Center</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/careers</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/xsmall.png?1411655278</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/original.jpg?1411655278</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/xxlarge.png?1411655278</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/xlarge.png?1411655278</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/large.png?1411655278</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/medium.png?1411655278</AvatarUrl>
<AvatarUrl size="small">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/small.png?1411655278</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/xsmall.png?1411655278</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/018/729f2c7eeeab66f50f4ab3677539a585/xxsmall.png?1411655278</AvatarUrl>
<Sponsor>Career Services Center</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/508/9ae0e1661f21a790e485c6d9b7299180/xxlarge.jpg?1384788453</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/038/508/9ae0e1661f21a790e485c6d9b7299180/xlarge.jpg?1384788453</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/038/508/9ae0e1661f21a790e485c6d9b7299180/large.jpg?1384788453</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/508/9ae0e1661f21a790e485c6d9b7299180/medium.jpg?1384788453</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/038/508/9ae0e1661f21a790e485c6d9b7299180/small.jpg?1384788453</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/thumbnails/news/000/038/508/9ae0e1661f21a790e485c6d9b7299180/xsmall.jpg?1384788453</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/038/508/9ae0e1661f21a790e485c6d9b7299180/xxsmall.jpg?1384788453</ThumbnailUrl>
<PawCount>3</PawCount>
<CommentCount>1</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Nov 2013 10:28:06 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="38507" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38507">
<Title>HELP YOUR STUDENT AIM FOR SUCCESS!</Title>
<Body>
<![CDATA[
    <div class="html-content"><span><p><span>It is that time of year again. The novelty of a new school year is wearing off and classes are starting to get a bit more challenging for your student. Your UMBC student might have informed you that he/she is busy studying for midterms and that Bio-Chem class is getting tough. Or you may not have heard from your child in a few days because he/she is spending hours upon hours in the library preparing for next week’s exams.  If your student sounds like this, they may be overwhelmed with their academics. You may feel unsure of how to help your child succeed academically. You can breathe deeply knowing that there are resources available for your student and ways to support your child through the semester as courses get more demanding.</span></p>
    <p><span> In Residential Life we want students to succeed holistically, and this includes academically. Here is some information that can help you to support your student during challenging times in the semester.  </span></p>
    <p><span><br></span></p>
    <p><span>1.</span><span> </span><span>Do more than just go to class!</span></p>
    <p><span>Even though attending class plays a huge role in whether or not a student will understand the information, students have to do more than just show up. Read assigned readings before class, take notes on the readings, take notes during class, and review all the material after class has ended. This may help students understand the information better and feel less inclined to pull all-nighters before a big exam. Also, if your student is finding a specific course challenging, encourage your student to meet with the professor outside of class time.</span></p>
    <p></p>
    <p><span>2.</span><span> </span><span>Use FREE Resources!!!</span></p>
    <p><span>UMBC is dedicated to supporting students and helping them succeed academically. UMBC provides plenty of free resources on campus to help student manage their academic course-loads. This includes the Learning Resource Center, the Math Lab, the Writing Center, Supplemental Instruction, Student Support Services and more! Tell your students about these resources; they will definitely help students with their academic demands.</span></p>
    <p></p>
    <p><span>3.</span><span> </span><span>Use MORE FREE Resources!!!</span></p>
    <p><span>The Counseling Center offers confidential individual counseling for stress, anxiety, and personal issues. Additionally, the Counseling Center organizes a number of Skills for Success Workshops during the semester. Workshop topics typically include: time management, procrastination, stress management, and test anxiety. Encourage your students to attend one of the following sessions (all of the following sessions are happening in the Commons, Room 327):</span></p>
    <p><br></p>
    <p><span>·</span><span>         </span><span>Motivation – November 20, 2013, 12:00pm-12:45pm</span></p>
    <p><span>·</span><span>         </span><span>Get Through Finals! – December 4, 2013, 12:00pm-12:45pm</span></p>
    <p></p>
    <p><span>4.</span><span> </span><span>Work those effective time management skills.</span></p>
    <p><span>It is easy for students to get overwhelmed when it feels like there is too much on their plate. When students develop effective time management strategies, school work may be less overwhelming. Encourage your student to keep track of their assignments, projects, classes, etc. by using a planner, or electronic calendar. Also remind them to check their calendar every day.  You can also encourage them to attend the </span></p>
    <p><span><br></span></p>
    <p><span>Jacqueline Wilson</span></p>
    <p></p>
    <p><span>Assistant Director, Residential Life</span></p>
    <div><span><br></span></div></span></div>
]]>
</Body>
<Summary>It is that time of year again. The novelty of a new school year is wearing off and classes are starting to get a bit more challenging for your student. Your UMBC student might have informed you...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38507/guest@my.umbc.edu/894b58ce31550b29588985585f3da8ae/api/pixel</TrackingUrl>
<Tag>life</Tag>
<Tag>residential</Tag>
<Tag>tips</Tag>
<Tag>umbc</Tag>
<Group token="retired-420">UMBC Family Connection </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-420</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xsmall.png?1340914772</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/original.png?1340914772</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xxlarge.png?1340914772</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xlarge.png?1340914772</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/large.png?1340914772</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/medium.png?1340914772</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/small.png?1340914772</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xsmall.png?1340914772</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xxsmall.png?1340914772</AvatarUrl>
<Sponsor>UMBC Family Connection</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Nov 2013 10:15:10 -0500</PostedAt>
<EditAt>Mon, 18 Nov 2013 10:50:36 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="38505" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38505">
<Title>Summer Intern Recruitment Has Begun!!!</Title>
<Body>
<![CDATA[
    <div class="html-content"><span><p><span>It’s Never too Early to Start:  Summer Intern Recruitment Has Begun</span></p>
    <p><span>While many people think of summer as a time for hitting the beach or relaxing poolside, a large majority of UMBC students spend their time learning more about their majors, developing professional skills and networks and often earning money through internships and research.  Several employers have already started recruiting on UMBC’s campus for these opportunities.   Last year, a number of our students secured intern placements across various industries by starting their search early.  To get a preview of their experiences, check out this</span><a href="http://www.umbc.edu/summer_interns2013/" rel="nofollow external" class="bo"><span>article</span></a><span> which highlights some of their work.</span></p>
    <p><span>If your student hasn’t secured an opportunity yet, it’s not too late to get him or her connected with a great internship, co-op, or research experience. </span></p>
    <p><span>Three quick tips to get on the path to success:</span></p>
    <p><span>1)</span><span>  </span><span>Use Campus Resources</span><span> – The professional staff of the Career Services Center (</span><a href="http://careers.umbc.edu/" rel="nofollow external" class="bo"><span>http://careers.umbc.edu</span></a><span>) are available for one-on-one resume reviews and personalized meetings to develop strategies for seeking out positions.  The Center also coordinates a range of networking events both on- and off-campus designed to connect talented students directly with organizations who can benefit from their skills.  Further, all UMBC students have access to </span><span>UMBCworks</span><span>, an online database exclusive to our campus, featuring internships, co-ops, research, part-time and full-time jobs in the Baltimore-Washington corridor and nationwide.  Students just need to upload a resume to get started.</span></p>
    <p><span>2)</span><span>  </span><span>Develop Professional Skills</span><span> – For many students, an internship is their first professional experience and the process of navigating the unwritten rules of the workplace can be daunting.  Recognizing this, UMBC offers students opportunities to practice interview skills via mock interviews as well as workshops on topics like networking, what to wear in the workplace and building a relationship with a mentor. </span></p>
    <p><span>3)</span><span>  </span><span>Connect with Faculty</span><span> – Particularly for students interested in research, UMBC faculty are key partners in this process.  Many summer research programs are currently advertising for applicant and want faculty references.  Prospective interns and students need to be pro-active in ensuring that their professors know them.  Regular attendance in class, using office hours (even for academically strong students!) and reviewing the UMBC website to understand faculty’s research interests are all important steps to building strong relationships with professors and instructors.  </span></p>
    <p><span>Finally, could you or your employer benefit from a motivated and skilled UMBC intern this summer?  Interns can often be a cost effective way to grow capacity and the experience you provide can put a student on the path to professional success.  Visit</span><a href="http://careers.umbc.edu/employers/jobs.php" rel="nofollow external" class="bo"><span>http://careers.umbc.edu/employers/jobs.php</span></a><span> or call The Career Services Center at 410-455-2216 to learn more.</span></p>
    <p></p>
    <div><span><br></span></div></span></div>
]]>
</Body>
<Summary>It’s Never too Early to Start:  Summer Intern Recruitment Has Begun  While many people think of summer as a time for hitting the beach or relaxing poolside, a large majority of UMBC students spend...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38505/guest@my.umbc.edu/59c740a7dc8811cd4a37b42101a267d2/api/pixel</TrackingUrl>
<Tag>career</Tag>
<Tag>center</Tag>
<Tag>internship</Tag>
<Tag>recruitment</Tag>
<Tag>summer</Tag>
<Group token="retired-420">UMBC Family Connection </Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-420</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xsmall.png?1340914772</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/original.png?1340914772</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xxlarge.png?1340914772</AvatarUrl>
<AvatarUrl size="xlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xlarge.png?1340914772</AvatarUrl>
<AvatarUrl size="large">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/large.png?1340914772</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/medium.png?1340914772</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/small.png?1340914772</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xsmall.png?1340914772</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/420/30293457191c29e0d0d7a715d26041bd/xxsmall.png?1340914772</AvatarUrl>
<Sponsor>UMBC Family Connection</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Nov 2013 10:02:43 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="38500" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38500">
<Title>The Future Of Video In Web Design</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>Federico was the only other kid on the block with a dedicated ISDN line, so I gave him a call. It had taken six hours of interminable waiting (peppered with frantic bouts of cursing), but I had just watched 60 choppy seconds of the original Macintosh TV commercial <em>in Firefox</em>, and I had to tell someone. It blew my mind.</p>
    <p>Video on the Web has improved quite a bit since that first jittery low-res commercial I watched on my Quadra 605 back in 7th grade. <strong>But for the most part, videos are still separate from the Web</strong>, cordoned off by iframes and Flash and bottled up in little windows in the center of the page. They’re a missed opportunity for Web designers everywhere.</p>
    <p>But how do you integrate video into an app or a marketing page? What would it look like, and how do you implement it? In this article, you will find inspiration, how-tos and a few technical goodies to get you started with modern video on the Web.</p>
    <h3>When Video Leaves Its Cage</h3>
    <p>Video combined with animation is a powerful tool for innovative and compelling user experiences. Imagine interactive screencasts and tutorials in which DOM elements flow and move around the page in sync with the instructor. Why not combine video with animation to walk new users through your app? Or what about including videos of your product on your marketing page, instead of static JPEGs? Getting carried away is easy — video can become little more than sophisticated blink tags if you’re not careful. But there are plenty of beautiful, inspiring examples of video tightly integrated in a design.</p>
    <p>Apple’s new marketing page for the <a href="http://www.apple.com/mac-pro/" rel="nofollow external" class="bo">Mac Pro</a> is a stunning example of video reaching out from its cage into the surrounding content. The new Mac Pro is featured in the center of the page, and as you scroll, <strong>it swoops and spins and disassembles itself</strong>. Supporting copy fades in to describe what you are seeing.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/11/macpro.png" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/11/mac-pro-opt.png" style="max-width: 100%; height: auto;"></a><br>
    <em>A static screenshot of the new landing page doesn’t do the new Mac Pro justice. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2013/11/macpro.png" rel="nofollow external" class="bo">larger view</a>)</em></p>
    <p>Another great example of interactive video is Adrian Holovaty’s <a href="http://www.soundslice.com/" rel="nofollow external" class="bo">Soundslice</a>. Soundslice is filled with YouTube videos of music sliced and diced into tablature (or tabs), which is notation that guitar players use to learn music.</p>
    <p><a href="http://media.smashingmagazine.com/wp-content/uploads/2013/11/soundslice.png" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/11/soundslice-opt.png" style="max-width: 100%; height: auto;"></a><br>
    <em>The musical bars at the bottom stay in sync with the video. (<a href="http://media.smashingmagazine.com/wp-content/uploads/2013/11/soundslice.png" rel="nofollow external" class="bo">larger view</a>)</em></p>
    <p>When you watch a music video, the tabs are animated at the bottom in time with the music, so that you can play along with your guitar. You can even slow down the video or loop selections to practice difficult sections, and the tab animation will stay in sync.</p>
    <h3>How Do You Add Video To A Design?</h3>
    <p>If you venture into video and animation in your next project, you won’t have many resources to lean on for implementation. No canonical, easy-to-use, open-source library for syncing video with animation exists, so every implementation is a bit different. Should you use a JavaScript animation library or pure CSS keyframes and transitions? Should you host the videos yourself and take advantage of HTML5’s <code>video</code> tag events or use YouTube or Vimeo? And then how exactly do you tie animations to a video?</p>
    <p>Together, we will explore answers to the above-mentioned questions and more as we build our own micro JavaScript framework. <a href="https://github.com/sfioritto/charlie.js" rel="nofollow external" class="bo">Charlie.js</a> provides an easy-to-use API for building pages with synchronized video and CSS3 animation.</p>
    <p><a href="http://www.flickr.com/photos/89093669@N00/1535398417/" rel="nofollow external" class="bo"><img src="http://media.smashingmagazine.com/wp-content/uploads/2013/11/chaplin_skates.jpg" width="500" height="373" alt="" style="max-width: 100%; height: auto;"></a><br><em>Charlie.js, named in honor of Charlie Chaplin. (<a href="http://www.flickr.com/photos/89093669@N00/1535398417/" rel="nofollow external" class="bo">Image source</a>)</em></p>
    <p>The best way to learn is by doing, so let’s dive in.</p>
    <h3>What Does Charlie.js Do?</h3>
    <p>We need a way to create animations and then trigger them at certain moments in a video. We also need to pause the animations if the video stops, and we’ll need a way to handle the user jumping around to different times in the video.</p>
    <p>To limit the scope of this article, <strong>we’ll have Charlie.js use only CSS animations</strong>. JavaScript animation libraries are more flexible and powerful than CSS animations, but wrapping one’s head around the straightforward, declarative syntax of keyframes is pretty easy, and the effects are hardware-accelerated. Sticking with only CSS animations is a pretty good choice for small projects.</p>
    <p>To keep it simple, Charlie.js will support only one video per page.</p>
    <p>As we go through the exercise of building this library, remember that we’re using the framework just to learn about CSS animation and video on the Web. The goal is to learn, not to create production-quality code.</p>
    <h3>Define The API</h3>
    <p>For our little framework, defining the API first makes sense. In other words, we need to figure out how someone would use the library and then write the JavaScript to implement the API.</p>
    <p>A video and animation library could work in many ways, but <strong>the main interface puzzle is to figure out how to couple the animation to the video</strong>. How should a developer specify which animations should appear on which elements and at which times they should start in the video?</p>
    <p>One option is to suck down the data in JSON or XML. The opposite solution is to have no separate data files and to put all of the configuration into pure JavaScript function calls. Both are fine, but there is a middle road.</p>
    <p>Normally, CSS animation is defined in a style sheet. Ideally, that’s where it should be defined for Charlie.js, not in a JSON file. It just makes sense, and doing it this way has advantages. When the animation is in a style sheet, rather than a JavaScript or JSON file, you can test it without loading the entire video and animation library.</p>
    <p>The animations are coupled to an element with data attributes. The data attributes define the animation names and also specify the start times.</p>
    <p>Let’s say you have a CSS animation named <code>fade</code> for dialing down the opacity, and another named <code>fling</code> for moving elements off the page. And you want a div on the page to use both animations three seconds into the video. Your markup would look like this:</p>
    <pre><code>&#x000A;    &lt;div class="charlie" data-animations="fade, fling" data-times="3, 3"&gt;&#x000A;    ...&#x000A;    &lt;/div&gt;&#x000A;    </code></pre>
    <p>Charlie.js will see this and know to run the <code>fade</code> and <code>fling</code> animations once the video hits three seconds.</p>
    <p>The <code>fade</code> and <code>fling</code> animations are defined in a style sheet that is linked to the document.</p>
    <p>Here is what the <code>fade</code> animation might look like (browser prefixes are excluded here but are <a href="http://caniuse.com/css-animation" rel="nofollow external" class="bo">required for Chrome and Safari</a>):</p>
    <pre><code>&#x000A;    .fade {&#x000A;    	animation-name: fade;&#x000A;    	animation-duration: 3s;&#x000A;    	animation-timing-function: linear;&#x000A;    	animation-iteration-count: 1;&#x000A;    	animation-direction: normal;&#x000A;    	animation-fill-mode: forwards;&#x000A;    }&#x000A;    &#x000A;    @keyframes fade {&#x000A;    	0% {&#x000A;    		opacity: 1;&#x000A;    	}&#x000A;    &#x000A;    	100% {&#x000A;    		opacity: 0;&#x000A;    	}&#x000A;    }&#x000A;    </code></pre>
    <p>The <code>.fade</code> class is what Charlie.js applies to the animated element, which will trigger the <code>fade</code> animation.</p>
    <h3>Host The Videos: HTML5 Vs. Flash And Silverlight</h3>
    <p>With the API out of the way, the next decision is how to host the video. The host will determine what kind of container the video is stuffed into, and the container will determine what is possible with the video.</p>
    <p>Video embedded with Flash or Silverlight will limit your design options, so the video-hosting service should ideally support HTML5’s <code>video</code> tag. The <code>video</code> tag is easier to style and move around on the page. You can apply CSS filters and transforms and even use CSS animation on the video itself. Plus, the standard media events are robust and provide plenty of places and ways to hook your code into the video. The big downside of the <code>video</code> tag is compatibility. It doesn’t work in Internet Explorer 8.</p>
    <p>What kinds of video-hosting should Charlie.js support? Building a library that supports multiple hosting options is feasible. For example, Popcorn.js (an awesome library for syncing content with video) supports several hosting options and APIs. But <strong>to keep it simple, our little library will support only a vanilla <code>video</code> tag</strong>. Anything in an iframe or Flash container won’t be supported.</p>
    <p>That’s nice for Charlie.js, but what if you are stuck supporting old browsers and have to deal with a video stuffed in an iframe? Most video-hosting companies have decent APIs. At the very least, you should be able to use those APIs to sync up your animation — you’ll just be stuck working with an embedded Flash object. YouTube and Vimeo are the most popular services, and both offer extensive APIs. <a href="http://wistia.com/" rel="nofollow external" class="bo">Wistia</a> is another great option but less well known.</p>
    <p>If you want to use a pure <code>video</code> tag but don’t want to host the video yourself, take a look at <a href="http://m.vid.ly/" rel="nofollow external" class="bo">Vid.ly</a>. Once you upload your video, Vid.ly will encode it in every format you need and give you a universal URL that you can use in your <code>video</code> tag, which will automatically choose the correct video type according to the user agent.</p>
    <pre><code>&#x000A;    &lt;video id="video" src="<a href="http://vid.ly/4m4e2n?content=video">http://vid.ly/4m4e2n?content=video</a>" controls="" preload="none"&gt;&#x000A;    Your browser does not support the HTML5 video element.&#x000A;    &lt;/video&gt;&#x000A;    </code></pre>
    <h3>Heads Up</h3>
    <p>The JavaScript in most of these snippets uses <a href="http://underscorejs.org/" rel="nofollow external" class="bo">Underscore</a>; stuff like <code>_.forEach</code> and <code>_.toArray</code> are utility functions from that library. Underscore encourages a functional style of programming that might look strange if you’ve never seen it before, but a little time invested in learning Underscore can save you a lot of time and lines of code. It’s worth checking out. For this article, you’ll find comments in the code to tell you what’s going on, and it should be pretty easy to understand.</p>
    <p>One other caveat: The code here will run in most modern browsers, but no attempt has been made to make this completely cross-browser compatible. If your business really needs CSS animation to be synced with video <em>and</em> to run in almost every browser, then this library will not help you out. But for my business, and perhaps for yours, supporting only modern browsers is fine. And even with this restriction, plenty of material here is still worth learning.</p>
    <h3>Control CSS Animations With JavaScript</h3>
    <p><strong>JavaScript is the glue between video and CSS animation.</strong> There is no way to couple an animation to a video purely with CSS. Animation doesn’t start until a style is applied, and CSS gives you only so many ways to trigger extra styles (such as <code>:hover</code>). In order to sync animation to video, we will need to pause, stop, resume, skip to the middle, and even reverse running animations.</p>
    <p>All of this is possible with JavaScript. So, the first step is to get the CSS animation out of the style sheet and into JavaScript. Every CSS animation has two parts. The first part is the keyframe and the properties used to configure how the animation behaves, such as duration, iteration and direction. The second part is what triggers the animation. Charlie.js will need to find both parts in the style sheets.</p>
    <p>The first thing we need is a utility function to search through style sheets that are loaded on the page.</p>
    <pre><code>&#x000A;    findRules = function(matches){&#x000A;    &#x000A;    		//document.stylesheets is not an array by default.&#x000A;    		// It's a StyleSheetList. toArray converts it to an actual array.&#x000A;    		var styleSheets = _.toArray(document.styleSheets),&#x000A;    		rules = [];&#x000A;    &#x000A;    		// forEach iterates through a list, in this case passing&#x000A;    		//every sheet in styleSheets to the next forEach&#x000A;    		_.forEach(styleSheets, function(sheet){&#x000A;    &#x000A;    		//This foreach iterates through each rule in the style sheet&#x000A;    		//and checks if it passes the matches function.&#x000A;    		_.forEach(_.toArray(sheet.cssRules), function(rule){&#x000A;    			if (matches(rule)){&#x000A;    				rules.push(rule);&#x000A;    			}&#x000A;    		});&#x000A;    	});&#x000A;    return rules;&#x000A;    }&#x000A;    </code></pre>
    <p>The <code>findRules</code> function iterates through every rule of every style sheet and returns a list of rules that match the passed-in <code>matches</code> function. To get all of the keyframe rules, we pass in a function to <code>findRules</code> that checks whether the rule is a keyframe:</p>
    <pre><code>&#x000A;    // A little code to handle prefixed properties&#x000A;    	var KEYFRAMES_RULE = window.CSSRule.KEYFRAMES_RULE&#x000A;    		|| window.CSSRule.WEBKIT_KEYFRAMES_RULE&#x000A;    		|| window.CSSRule.MOZ_KEYFRAMES_RULE&#x000A;    		|| window.CSSRule.O_KEYFRAMES_RULE&#x000A;    		|| window.CSSRule.MS_KEYFRAMES_RULE,&#x000A;    &#x000A;    		...&#x000A;    &#x000A;    		var keyframeRules = findRules(function(rule){&#x000A;    			return KEYFRAMES_RULE === rule.type;&#x000A;    		}),&#x000A;    &#x000A;    		...&#x000A;    </code></pre>
    <p>At this point, we have the keyframes in JavaScript, but we still need the rest of the animation styles that define duration, iterations, direction and so on.</p>
    <p>To find all of these classes, <strong>we again use the <code>findRules</code> function</strong> to go through every rule in every style sheet. This time, though, the <code>matches</code> function that we’ll pass in will check to see whether the rule has an <code>animationName</code> property.</p>
    <pre><code>&#x000A;    	...&#x000A;    &#x000A;    	var animationStyleRules = findRules(function(rule){&#x000A;    		return rule.style &amp;&amp; rule.style[animationName(rule.style)];&#x000A;    	});&#x000A;    &#x000A;    	...&#x000A;    </code></pre>
    <p>The <code>animationsName</code> function is there to handle the prefixes, because the <code>animationName</code> property still requires prefixes in some browsers. That function looks like this:</p>
    <pre><code>&#x000A;    ...&#x000A;    &#x000A;    if (style.animationName) {&#x000A;    	name = "animationName"; }&#x000A;    else if (style.webkitAnimationName) {&#x000A;    	name = "webkitAnimationName"; }&#x000A;    else if (style.mozAnimationName) {&#x000A;    	name = "mozAnimationName"; }&#x000A;    else if (style.oAnimationName) {&#x000A;    	name="oAnimationName"; }&#x000A;    else if (style.msAnimationName) {&#x000A;    	name = "msAnimationName"; }&#x000A;    else {&#x000A;    	name = "";&#x000A;    }&#x000A;    return name;&#x000A;    &#x000A;    ...&#x000A;    </code></pre>
    <p>Once the correct prefix has been determined, the name is cached and used for future look-ups.</p>
    <p>Once the keyframes and animation styles have been collected, they get stuffed into an instance of a helper class and stored for Charlie.js to use later.</p>
    <pre><code>&#x000A;    var CSSAnimations = function(keyframes, cssRules){&#x000A;    	this.keyframes = keyframes;&#x000A;    	this.cssRules = cssRules;&#x000A;    };&#x000A;    </code></pre>
    <h3>Get The Timing Information From The Data Attributes</h3>
    <p>Timing information is attached to the element that will be animated using a data attribute (remember that we decided this when we were defining the API). So, we need to crawl the document and pull out the information. Any element that will be animated is marked with the class of <code>charlie</code>, which makes it pretty easy to find the data attributes we are looking for.</p>
    <pre><code>&#x000A;    var scrapeAnimationData = function() {&#x000A;    &#x000A;    	/* Grab the data from the DOM. */&#x000A;    	var data = {};&#x000A;    	_.forEach(&#x000A;    		//loop through every element that should be animated&#x000A;    		document.getElementsByClassName("charlie"),&#x000A;    &#x000A;    		//for each element, pull off the info from the dataset&#x000A;    		function(element) {&#x000A;    &#x000A;    			/*&#x000A;    			* Creates an object of animation name: time, e.g.&#x000A;    			*&#x000A;    			* { swoopy: [&#x000A;    			*    { element: domElement,&#x000A;    			*  time: 6522 },&#x000A;    			*    { element: anotherElement,&#x000A;    			*  time: 7834 }]&#x000A;    			* }&#x000A;    			*/&#x000A;    &#x000A;    			//     var names = element.dataset.animations.split(/\s*,\s*/),&#x000A;    			times = element.dataset.times.split(/\s*,\s*/),&#x000A;    &#x000A;    			// creates an array of arrays, each one called a "tuple"&#x000A;    			// basically ties the time to the&#x000A;    			// animation name, so it looks like this:&#x000A;    			//[["zippy", 1], ["fade", 2] ... ]&#x000A;    			tuples = _.zip(names, times);&#x000A;    &#x000A;    			/*&#x000A;    			* turn the tuples into an object,&#x000A;    			* which is a little easier to work with.&#x000A;    			* We end up with an object that looks like this:&#x000A;    			* {&#x000A;    			*  fade: [ {element: domElement, time: "1.2s"}, ... ],&#x000A;    			*  fling: [ {element: domelement, time: "2.4s"}, ... ]&#x000A;    			* }&#x000A;    			* So, we can reuse an animation on different elements&#x000A;    			* at different times.&#x000A;    			*/&#x000A;    &#x000A;    			_.forEach(tuples, function(tuple){&#x000A;    				var name = tuple[0],&#x000A;    				time = tuple[1];&#x000A;    				data[name] = data[name] || [];&#x000A;    				data[name].push({&#x000A;    					element: element,&#x000A;    					time: time&#x000A;    				})&#x000A;    			});&#x000A;    		});&#x000A;    	return data;&#x000A;    },&#x000A;    </code></pre>
    <p>This stores all of the timing information in an object with the animation’s name as the key, followed by a list of times and elements. This object is used to create several <code>Animation</code> objects, which are then stuffed into various data structures to make it easy and fast to look up which animations should be running in the big loop.</p>
    <h3>The requestAnimationFrame Loop</h3>
    <p>The heart of Charlie.js is a loop that runs whenever the video runs. The loop is created with <code>requestAnimationFrame</code>.</p>
    <pre><code>&#x000A;    tick: function(time){&#x000A;    	if (this.running){&#x000A;    		this.frameID = requestAnimationFrame(this.tick.bind(this));&#x000A;    		this.controller.startAnimations(time, video.currentTime);&#x000A;    	}&#x000A;    }&#x000A;    </code></pre>
    <p>The <code>requestAnimationFrame</code> function is specifically <strong>designed to optimize any kind of animation</strong>, such as DOM manipulations, painting to the canvas, and WebGL. It’s a tighter loop than anything you can get with <code>setTimeout</code>, and it’s calibrated to bundle animation steps into a single reflow, thus performing better. It’s also better for battery usage and will completely stop running when the user switches tabs.</p>
    <p>The loop starts when the video starts and stops when the video stops. Charlie.js also needs to know whether the video ends or jumps to the middle somewhere. Each of those events requires a slightly different response.</p>
    <pre><code>&#x000A;    video.addEventListener("play", this.start.bind(this), false);&#x000A;    video.addEventListener("ended", this.ended.bind(this), false);&#x000A;    video.addEventListener("pause", this.stop.bind(this), false);&#x000A;    video.addEventListener("seeked", this.seeked.bind(this), false);&#x000A;    </code></pre>
    <p>As the video plays, the loop keeps ticking. Each tick runs this code:</p>
    <pre><code>&#x000A;    // allow precision to one tenth of a second&#x000A;    var seconds = roundTime(videoTime),&#x000A;    me = this;&#x000A;    &#x000A;    //resume any paused animations&#x000A;    me.resumeAnimations();&#x000A;    &#x000A;    /* start up any animations that should be running at this second.&#x000A;    * Don't start any that are already running&#x000A;    */&#x000A;    &#x000A;    if (me.bySeconds[seconds]){&#x000A;    	var animations = me.bySeconds[seconds],&#x000A;    	notRunning = _.filter(animations, function(animation){&#x000A;    		return !_.contains(me.running, animation);&#x000A;    	});&#x000A;    &#x000A;    	/* requestAnimationFrame happens more than&#x000A;    	*  every tenth of a second, so this code will run&#x000A;    	*  multiple times for each animation starting time&#x000A;    	*/&#x000A;    &#x000A;    	_.forEach(notRunning, function(animation){&#x000A;    		animation.start();&#x000A;    		me.running.push(animation);&#x000A;    	});&#x000A;    }&#x000A;    </code></pre>
    <p>Everything we have done up to this point has been to support these few lines of code. The <code>seconds</code> variable is just the <code>video.currentTime</code> value rounded to the nearest tenth of a second. The <code>bySeconds</code> property is created from the time data that is scraped from the HTML — it’s just a quick way to grab a list of animations to start at a given time. The <code>running</code> array is a list of animations that are currently running. The <code>requestAnimationFrame</code> loop is really fast and runs many, many times a second, and Charlie.js only supports a resolution of one tenth of a second.</p>
    <p>So, if one animation starts at the 2-second mark, then <code>requestAnimationFrame</code> will try to start it several times until the video has progressed to the next tenth of a second. To <strong>prevent animations from starting over and over again</strong> during that tenth of a second, they get put into the <code>running</code> array so that we know what is running and don’t start it again unnecessarily.</p>
    <p>To start a CSS animation, just add the animation properties to an element’s style. The easiest way to do this is to just add the animation class to the element’s <code>classList</code>, and that is exactly what the animation’s <code>start</code> method does.</p>
    <pre><code>&#x000A;    start: function(){&#x000A;    	var me = this;&#x000A;    	//The name of the animation is the same as the class name by convention.&#x000A;    	me.element.classList.add(me.name);&#x000A;    	onAnimationEnd(me.element, function(){&#x000A;    		me.reset();&#x000A;    	});&#x000A;    }&#x000A;    </code></pre>
    <p>The name of the animation is the same as the class name by convention.</p>
    <h3>Pause And Resume Animations</h3>
    <p>When the video stops, the animations should stop with it. There is a pretty straightforward way to do this using CSS animations: We just set the <code>animationPlayState</code> property of the element to <code>paused</code>.</p>
    <pre><code>&#x000A;    ...&#x000A;    &#x000A;    //method on the animation object&#x000A;    pause: function(){&#x000A;    	this.element.style.webkitAnimationPlayState = "paused";&#x000A;    	this.element.style.mozAnimationPlayState = "paused";&#x000A;    	this.element.style.oAnimationPlayState = "paused";&#x000A;    	this.element.style.animationPlayState = "paused";&#x000A;    },&#x000A;    &#x000A;    resume: function(){&#x000A;    	this.element.style.webkitAnimationPlayState = "running";&#x000A;    	this.element.style.mozAnimationPlayState = "running";&#x000A;    	this.element.style.oAnimationPlayState = "running";&#x000A;    	this.element.style.animationPlayState = "running";&#x000A;    }&#x000A;    &#x000A;    ...&#x000A;    &#x000A;    //called on the video "pause" event&#x000A;    while(animation = me.running.pop()){&#x000A;    	animation.pause();&#x000A;    	//keep track of paused animations so we can resume them later ...&#x000A;    	me.paused.push(animation);&#x000A;    }&#x000A;    </code></pre>
    <p>The only trick here is to keep track of which animations have been paused, so that they can resume once the video starts again, like so:</p>
    <pre><code>&#x000A;    while (animation = me.paused.pop()){&#x000A;    	animation.resume();&#x000A;    	me.running.push(animation);&#x000A;    }&#x000A;    </code></pre>
    <h3>How To Start An Animation In The Middle</h3>
    <p>What if someone skips ahead in the video and jumps right into the middle of an animation? How do you start a CSS animation in the middle? The <code>animationDelay</code> property is exactly what we need. Normally, <code>animationDelay</code> is set to a positive number. If you want an animation to start three seconds after the animation style has been applied, then you’d set <code>animationDelay</code> to <code>3s</code>. But if you set <code>animationDelay</code> to a negative number, then it will jump to the middle of the animation. For example, if an animation lasts three seconds, and you want the animation to start two seconds in, then set the <code>animationDelay</code> property to <code>-2s</code>.</p>
    <p>Whenever a user scrubs to the middle of the video, Charlie.js will need to stop all of the animations that are currently running, figure out what should be running, and then set the appropriate <code>animationDelay</code> values. Here is the high-level code:</p>
    <pre><code>&#x000A;    // 1. go through each to start&#x000A;    // 2. set the animation delay so that it starts at the right spot&#x000A;    // 3. start 'em up.&#x000A;    &#x000A;    var me = this,&#x000A;    seconds = roundTime(videoTime),&#x000A;    toStart = animationsToStart(me, seconds);&#x000A;    &#x000A;    // go through each animation to start&#x000A;    _.forEach(toStart, function(animation){&#x000A;    &#x000A;    	//set the delay to start the animation at the right place&#x000A;    	setDelay(animation, seconds);&#x000A;    &#x000A;    	//start it up&#x000A;    	animation.start();&#x000A;    &#x000A;    	/* If the move is playing right now, then let the animation&#x000A;    	* keep playing. Otherwise, pause the animation until&#x000A;    	* the video resumes.&#x000A;    	*/&#x000A;    &#x000A;    	if (playNow) {&#x000A;    	me.running.push(animation);&#x000A;    &#x000A;    	} else {&#x000A;    		me.paused.push(animation);&#x000A;    		animation.pause();&#x000A;    	}&#x000A;    });&#x000A;    </code></pre>
    <p>The <code>animationsToStart</code> function loops through a sorted list of animations and looks for anything that should be running. If the end time is greater than the current time and the start time is less than the current time, then the animation should be started.</p>
    <pre><code>&#x000A;    var animationsToStart = function(me, seconds) {&#x000A;    &#x000A;    	var toStart = [];&#x000A;    &#x000A;    	for(var i = 0; i &lt; me.timeModel.length; i++) {&#x000A;    &#x000A;    		var animation = me.timeModel[i];&#x000A;    &#x000A;    		//stop looking, nothing else is running&#x000A;    		if (animation.startsAt &gt; seconds) {&#x000A;    			break;&#x000A;    		}&#x000A;    &#x000A;    		if (animation.endsAt &gt; seconds) {&#x000A;    			toStart.push(animation);&#x000A;    		}&#x000A;    	}&#x000A;    	return toStart;&#x000A;    };&#x000A;    </code></pre>
    <p>The <code>timeModel</code> is a list of animations sorted by the times when the animations should end. This code loops through that list and looks for animations that start before the current time and end after the current time. The <code>toStart</code> array represents all of the animations that should be running right now.</p>
    <p>Those values get passed up to the higher-level code, which then computes and sets the delay in the <code>setDelay</code> function.</p>
    <pre><code>&#x000A;    setDelay = function(animation, seconds) {&#x000A;    	var delay = -(seconds - animation.startsAt);&#x000A;    	delay = delay &lt; 0 ? delay : 0,&#x000A;    	milliseconds = Math.floor(delay * 1000) + "ms";&#x000A;    	animation.element.style.webkitAnimationDelay = milliseconds;&#x000A;    	animation.element.style.mozAnimationDelay = milliseconds;&#x000A;    	animation.element.style.oAnimationDelay = milliseconds;&#x000A;    	animation.element.style.msAnimationDelay = milliseconds;&#x000A;    	animation.element.style.animationDelay = milliseconds;&#x000A;    };&#x000A;    </code></pre>
    <p>The <code>seconds</code> parameter is the current time in the video. Let’s say that the video is at 30 seconds, that the animation starts at 24 seconds and that it lasts for 10 seconds. If we set the delay to <code>-6s</code>, then it will start the animation 6 seconds in and will last another 4 seconds.</p>
    <h3>Look At The Code For Yourself</h3>
    <p>We’ve covered here how to use <code>requestAnimationFrame</code> to create a tight, optimized loop for animations, how to scrape keyframes and animation styles from the style sheet, how to start and stop animations with the video, and even how to start CSS animations in the middle. But to get to the point, we’ve skipped over quite a bit of glue code. Charlie.js is only a couple of hundred lines of code, and it is open source and commented thoroughly. You are welcome to <a href="https://github.com/sfioritto/charlie.js" rel="nofollow external" class="bo">grab the code</a> and read it.</p>
    <p>You can even use it if you want, with a few caveats:</p>
    <ul>
    <li>Charlie.js was made for educational purposes. It was made to be read and for you to learn about CSS animations, videos, <code>requestAnimationFrame</code>, etc. Don’t just plug it into your production code unless you really know what you are doing.</li>
    <li>Cross-browser support for animation is pretty good, and Charlie.js tries to be friendly to all the browsers when it can be. However, it hasn’t been heavily tested.</li>
    <li>It eats up CPU, even if the video is paused. (This has something to do with CSS animations still rendering.)</li>
    <li>The user can’t drag the seek bar while the video is unpaused. If they do, then the animations will start and overlap each other.</li>
    <li>Charlie.js does not respond to changes in frame rate. So, if the video stutters or you want to slow down the rate of the video, then the animations will fall out of sync. Also, you can’t run video backwards.</li>
    <li>Animations won’t start if the current tab isn’t set to the video, due to <code>requestAnimationFrame</code> not running unless the video tab is active. This could confuse users who switch back and forth between tabs.</li>
    </ul>
    <p>Some of these limitations can be fixed pretty easily, but Charlie.js was made for a very limited use case. I’ve put together a demo of Charlie.js in action so that you can see what it can do.</p>
    <p><strong>The future of video in Web design is filled with possibilities</strong>, and I for one can’t wait to see what happens.</p>
    <h4>Additional Resources</h4>
    <ul>
    <li>
    <a href="http://www.sketchingwithcss.com/flexbox/" rel="nofollow external" class="bo">A demo of Charlie.js</a><br>
    See what you can do with video and CSS3 animation.</li>
    <li>“<a href="http://caniuse.com/css-animation" rel="nofollow external" class="bo">CSS3 Animation,</a>” Can I Use…</li>
    <li>“<a href="http://www.planningforaliens.com/blog/2013/06/11/mac-pro/" rel="nofollow external" class="bo">How Does the New Mac Pro Site Work</a>,” Sean Fioritto</li>
    <li>“<a href="http://coding.smashingmagazine.com/2011/03/11/syncing-content-with-html5-video/" rel="nofollow external" class="bo">Syncing Content With HTML5 Video</a>,” Christian Heilmann, Smashing Magazine</li>
    <li>“<a href="http://css-tricks.com/controlling-css-animations-transitions-Javascript/" rel="nofollow external" class="bo">Controlling CSS Animations and Transitions With JavaScript</a>,” CSS-Tricks</li>
    <li>“<a href="http://vimeo.com/59193899" rel="nofollow external" class="bo">Adrian Holovaty’s Talks SoundSlice</a>” (video), 37signals</li>
    <li>“<a href="http://www.soundslice.com/tabs/1366/100-riffs-a-brief-history-of-rock-n-roll-tab/" rel="nofollow external" class="bo">100 Riffs: A Brief History of Rock n’ Roll</a>,” Soundslice<br>
    An amazing demonstration of Soundslice</li>
    <li>“<a href="http://www.youtube.com/watch?v=q7BjhX3K-5w" rel="nofollow external" class="bo">HTML5 Video With Filters and SVG</a>” (video), idibidiart</li>
    <li>“<a href="http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/" rel="nofollow external" class="bo">requestAnimationFrame for Smart Animating</a>,” Paul Irish</li>
    </ul>
    <p><em>(al, ea, il)</em></p>
    <hr>
    <p><small>© Sean Fioritto for <a href="http://www.smashingmagazine.com" rel="nofollow external" class="bo">Smashing Magazine</a>, 2013.</small></p>
    </div>
]]>
</Body>
<Summary>        Federico was the only other kid on the block with a dedicated ISDN line, so I gave him a call. It had taken six hours of interminable waiting (peppered with frantic bouts of cursing), but...</Summary>
<Website>http://www.smashingmagazine.com/2013/11/18/the-future-of-video-in-web-design/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38500/guest@my.umbc.edu/49cab4f328a29231a359927e3740679b/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>Mon, 18 Nov 2013 08:20:15 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="38501" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38501">
<Title>Bits Blog: Salesforce Making Business Software More Social</Title>
<Body>
<![CDATA[
    <div class="html-content">The cloud computing company will unveil its latest way to blur the lines between how businesses use technology and consumers use social media.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F11%2F18%2Fsalesforce-making-business-software-more-social%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Salesforce+Making+Business+Software+More+Social" 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%2Fbits.blogs.nytimes.com%2F2013%2F11%2F18%2Fsalesforce-making-business-software-more-social%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Salesforce+Making+Business+Software+More+Social" 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%2Fbits.blogs.nytimes.com%2F2013%2F11%2F18%2Fsalesforce-making-business-software-more-social%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Salesforce+Making+Business+Software+More+Social" 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%2Fbits.blogs.nytimes.com%2F2013%2F11%2F18%2Fsalesforce-making-business-software-more-social%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Salesforce+Making+Business+Software+More+Social" 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%2Fbits.blogs.nytimes.com%2F2013%2F11%2F18%2Fsalesforce-making-business-software-more-social%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+Salesforce+Making+Business+Software+More+Social" 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/180264443547/u/0/f/640387/c/34625/s/33cfe903/sc/4/rc/1/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264443547/u/0/f/640387/c/34625/s/33cfe903/sc/4/rc/1/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/180264443547/u/0/f/640387/c/34625/s/33cfe903/sc/4/rc/2/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264443547/u/0/f/640387/c/34625/s/33cfe903/sc/4/rc/2/rc.img" style="max-width: 100%; height: auto;"></a><br><a href="http://da.feedsportal.com/r/180264443547/u/0/f/640387/c/34625/s/33cfe903/sc/4/rc/3/rc.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264443547/u/0/f/640387/c/34625/s/33cfe903/sc/4/rc/3/rc.img" style="max-width: 100%; height: auto;"></a><br><br><a href="http://da.feedsportal.com/r/180264443547/u/0/f/640387/c/34625/s/33cfe903/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264443547/u/0/f/640387/c/34625/s/33cfe903/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>The cloud computing company will unveil its latest way to blur the lines between how businesses use technology and consumers use social media.      </Summary>
<Website>http://bits.blogs.nytimes.com/2013/11/18/salesforce-making-business-software-more-social/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38501/guest@my.umbc.edu/001702fea9afbcf81d0049b725046b20/api/pixel</TrackingUrl>
<Tag>benioff-marc</Tag>
<Tag>cloud-computing</Tag>
<Tag>dropbox-inc</Tag>
<Tag>enterprise-computing</Tag>
<Tag>evernote-corp</Tag>
<Tag>linkedin-corporation</Tag>
<Tag>linkedin-corporation-lnkd-nyse</Tag>
<Tag>new</Tag>
<Tag>salesforce-com-inc</Tag>
<Tag>salesforce-com-inc-crm-nyse</Tag>
<Tag>technology</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>Mon, 18 Nov 2013 08:12:08 -0500</PostedAt>
<EditAt>Mon, 18 Nov 2013 16:43:07 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="false" id="38499" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38499">
<Title>Namespaced Events in jQuery</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>It's really easy to add an event listener in jQuery. It's equally easy to remove an event listener. You might want to remove a listener because you don't care to perform any actions on that event anymore, to reduce memory usage, or both. But let's say you've attached several listeners to the same event. How do you remove just one of them? Namespacing can help.</p>
    <p></p>
    <p>Let's look at code.</p>
    <pre><code>$("#element")&#x000A;      .on("click", doSomething)&#x000A;      .on("click", doSomethingElse);</code></pre>
    <p><strong>Both</strong> <code>doSomething</code> and <code>doSomethingElse</code> will fire when that element we've selected is clicked. That's good. It's one advantage of using jQuery to bind events rather than super old school <code>onclick</code> which would overwrite previously declared event handlers.</p>
    <p>Now let's say you want to remove the first of those event listeners, the one that fires <code>doSomething</code>. How do you do that?</p>
    <pre><code>$("#element").off("click");</code></pre>
    <p>Careful there, that will unbind both of those handlers which is not what we want. </p>
    <p>Luckily jQuery will take the same second parameter with <code>.off()</code> as it does with <code>.on()</code>.</p>
    <pre><code>$("#element").off("click", doSomething);</code></pre>
    <p>That's great if you have a reference to an actual function that you can pass in as that parameter. But what if you don't have that reference? Either because you don't know what it is or you used an anonymous function as the handler, like this:</p>
    <pre><code>$("#element")&#x000A;      .on("click", function() { &#x000A;         console.log("doSomething");&#x000A;       });</code></pre>
    <p>How do you unbind that one in a safe way that won't accidentally unbind other click handlers? <a href="http://api.jquery.com/event.namespace/" rel="nofollow external" class="bo">Namespaced events</a>!</p>
    <p>Instead of just <code>click</code> as the name of the event, you can use <code>click.namespace</code>.</p>
    <pre><code>$("#element")&#x000A;      .on("click.myNamespace", function() { &#x000A;         console.log("doSomething");&#x000A;       });</code></pre>
    <p>Now you can use <code>.off()</code> with that exact event name to unbind <em>just</em> it.</p>
    <pre><code>$("#element").off("click.myNamespace");</code></pre>
    <p>Just one of those cool useful things in jQuery. Even with modern event binding using <code>addEventListener</code> and <code>removeEventListener</code> this would be a bit tricky (I think).</p>
    <p>I used it recently in <a href="http://css-tricks.com/bookmarklet-colorize-text-45-75-characters-line-length-testing/" rel="nofollow external" class="bo">that bookmarklet I made to test line length</a>. I essentially wanted to bind a <code>mouseenter</code> event on every single element on the page (using delegation) and then when one is clicked, unbind  both those events. But I wanted to be careful not to unbind anything that I didn't bind myself. Hence, namespacing!</p>
    <div>Want to learn more about jQuery? I have <a href="http://css-tricks.com/lodge/" rel="nofollow external" class="bo">a complete course available</a>.</div>
    <hr>
    
    <p><small><a href="http://css-tricks.com/namespaced-events-jquery/" rel="nofollow external" class="bo">Namespaced Events in jQuery</a> is a post from <a href="http://css-tricks.com" rel="nofollow external" class="bo">CSS-Tricks</a></small></p>
    </div>
]]>
</Body>
<Summary>It's really easy to add an event listener in jQuery. It's equally easy to remove an event listener. You might want to remove a listener because you don't care to perform any actions on that event...</Summary>
<Website>http://css-tricks.com/namespaced-events-jquery/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38499/guest@my.umbc.edu/cbd4875c25a2195478538c6cf7833f0b/api/pixel</TrackingUrl>
<Tag>article</Tag>
<Tag>css</Tag>
<Tag>html</Tag>
<Tag>javascript</Tag>
<Tag>mysql</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>tricks</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>Mon, 18 Nov 2013 08:11:02 -0500</PostedAt>
<EditAt>Mon, 18 Nov 2013 08:11:02 -0500</EditAt>
</NewsItem>

<NewsItem contentIssues="true" id="38497" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38497">
<Title>Rick Forno speaking at Cyber Education Symposium</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <img src="http://www.ncsi.com/ces/2013/img/event-name.png" alt="" style="max-width: 100%; height: auto;">
    <p>CSEE’s Dr. Richard Forno, Cybersecurity GPD and Assistant Director of UMBC’s Center for Cybersecurity, is speaking at the <a href="http://www.ncsi.com/ces/2013/agenda.php" rel="nofollow external" class="bo">NCSI Cybersecurity Education Symposium </a>in Arlington, Virginia on Tuesday, November 19th. The panel session, “Creating the Cyber Curricula for Success” will explore the interdisciplinary nature of cybersecurity and cybersecurity education at the undergraduate and graduate levels and discuss the right balance of disciplines, knowledge, skills, and attributes required to prepare future cybersecurity practitioners.</p>
    <p>Also speaking later that day are Ellen Hemmerly (Executive Director and President, UMBC Research Park Corporation) and Kent Malwitz (President, UMBC Training Centers) on a panel session entitled “The Business Model for a Cybersecurity Program.”</p>
    </div>
]]>
</Body>
<Summary>CSEE’s Dr. Richard Forno, Cybersecurity GPD and Assistant Director of UMBC’s Center for Cybersecurity, is speaking at the NCSI Cybersecurity Education Symposium in Arlington, Virginia on Tuesday,...</Summary>
<Website>http://www.csee.umbc.edu/2013/11/rick-forno-speaking-at-cyber-education-symposium/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38497/guest@my.umbc.edu/3b58a3048e159f51c463231a93cd70de/api/pixel</TrackingUrl>
<Tag>cybersecurity</Tag>
<Tag>news</Tag>
<Group token="csee">Computer Science and Electrical Engineering</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/csee</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xsmall.png?1314043393</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/original.png?1314043393</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xxlarge.png?1314043393</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xlarge.png?1314043393</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/large.png?1314043393</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/medium.png?1314043393</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/small.png?1314043393</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xsmall.png?1314043393</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xxsmall.png?1314043393</AvatarUrl>
<Sponsor>Computer Science and Electrical Engineering</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Mon, 18 Nov 2013 07:40:21 -0500</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="38496" important="false" status="posted" url="https://my3.my.umbc.edu/posts/38496">
<Title>4 essential UX rules taught by eye-tracking research</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="thumbnail" src="http://netdna.webdesignerdepot.com/uploads/2013/09/thumbnail40.jpg" width="200" height="160" style="max-width: 100%; height: auto;">Web designers use a lot of tools to make the sites they design the best possible for site visitors; one of the best ways of achieving this is incorporating actual science and research into design to maximize user satisfaction.</p> <p>Eye-tracking research provides designers with a blueprint of sorts to guide them on the priorities with which site visitors generally absorb the information on any given site.</p> <p>Eye-tracking research also tells us a good deal about the way in which site visitors read websites. This information can be used by savvy web designers to tailor-make a site to the average person. When users get a great experience from visiting your site, they’ll be back, and chances are good that they’ll even turn into regular site visitors. This has implications no matter what type of site you’re designing.</p> <p>So just what does this insightful research tell us about the average site visitor? How can designers harness this very powerful information to create sites that are nothing short of excellent? You’ll be surprised at what the research has uncovered.</p> <p> </p> <h1>Draw visitors’ eyes with gripping headlines—not pictures!</h1> <p>Contrary to popular belief, it is in fact gripping headlines that catch the attention of site visitors and not eye-popping pictures. This finding is applicable to homepage layouts, especially if you’re working on the layout of a news site. This also explains why so many news sites frequently use sensationalistic to shocking headlines all in the effort to grab site visitors’ precious attention.</p> <p>In one well-known study from a few years back, dubbed the <a href="http://www.math.unipd.it/~massimo/corsi/tecweb2/Eyetrack-III.pdf" rel="nofollow external" class="bo">Eyetrack III study,</a> it was discovered that site visitors have a penchant for gawking at headlines, particularly if they’re dominant. Further, the specific placement of these headlines on the homepage has an effect on the speed with which a site visitor homes in on them. Place your headlines on the upper left part of the homepage, and you’ll get more site visitors paying attention to your content than if you positioned the headlines anywhere else on the homepage.</p> <p>So if you’re a designer working for a news site, keep this in mind. Text draws the eye quicker on a computer screen than does a picture—again, contrary to what one might call conventional wisdom. The designers at <a href="http://www.foxnews.com/" rel="nofollow external" class="bo">Fox News,</a> 173rd-most popular site in the world and 36th-most popular in the U.S., know this reality well. Observe how the main headline on its homepage is precisely situated in the upper-left section of the page, noticeably off-center.</p> <p><a href="http://www.foxnews.com/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/09/fox.jpg" width="650" alt="4 essential UX rules taught by eye tracking research" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Design your site in an F-shaped pattern</h1> <p>A few years ago, there was a very revealing web-user study that was put out by the Nielsen Norman Group. The <a href="http://www.nngroup.com/articles/f-shaped-pattern-reading-web-content/" rel="nofollow external" class="bo">study</a> found that everyday site visitors usually read any given webpage in a so-called F-shaped pattern.</p> <p>In essence, site visitors typically absorb the information on a webpage by an initial horizontal movement, over the page’s upper part. This is referred to as the top bar of the F. Then, visitors usually move their eyes down the page a little bit before reading across in another horizontal movement that’s shorter than the initial one. This accounts for the second and shorter bar on the F. Lastly, they look at the page’s content on the left-hand side in a vertical manner, thereby forming the stem of the F.</p> <p>Knowing this constant reading pattern of the average web user, it should motivate you to design a site that’s geared to how visitors read web content. Doing so will improve their user experience vastly and give you more loyal site visitors.</p> <p>Some websites already put this research into good practice. <a href="http://ghostgames.com/" rel="nofollow external" class="bo">Ghost Games</a> is one of EA’s new studios on Sweden’s west coast. Note how its homepage mimics the F-shaped pattern perfectly. This improves the user experience and makes for easier navigation, especially since the stem of the F in the pattern links to information about the site of the studio.</p> <p><a href="http://ghostgames.com/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/09/ghost.jpg" width="650" alt="4 essential UX rules taught by eye tracking research" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Don’t waste time with ads — your site visitors sure won’t!</h1> <p>Many people find display ads annoying, which helps to explain why many site visitors just ignore them and instead focus on a webpage’s useful content. The alliterative and technical term for this is <em>banner blindness.</em> Another <a href="http://www.nngroup.com/articles/banner-blindness-old-and-new-findings/" rel="nofollow external" class="bo">study</a> from the Nielsen Norman Group demonstrated that most web users simply don’t fixate on any ads when they’re absorbing web content.</p> <p>Know that it’s simply a waste of time if you’re designing a site that relies primarily on display ads to generate money. In light of the study, you should reevaluate your primary means of earning money on your site. Do away with ads and switch to a subscription-based model that charges site visitors a membership fee. Some sites are already implementing this strategy in acknowledgment of the weakness of display ads.</p> <p>A great example of this is <a href="http://www.clubpenguin.com/?country=US" rel="nofollow external" class="bo">Club Penguin,</a> which is an MMO (massively multiplayer online game) that is owned by Disney. The site is absolutely free of any annoying display ads, which is why visitors are encouraged to purchase memberships to play the game.</p> <p><a href="http://www.clubpenguin.com/?country=US" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/09/penguin.jpg" width="650" alt="4 essential UX rules taught by eye tracking research" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Avoid fancy words and formatting</h1> <p>Again, minimalism rules the day, especially if you want site visitors who are able to find the information on your site efficiently. According to the U.S. Department of Health and Human Services’ Usability <a href="http://www.usability.gov/get-involved/blog/2010/03/eyetracking.html" rel="nofollow external" class="bo">blog,</a> the fancier (read: elaborate) a webpage’s formatting and words are, the more site visitors will be confused and fail basic navigation tests. The blog refers to a Nielsen study from a few years ago that asked test subjects to find a basic piece of information from the U.S. Census Bureau’s website. Most failed the test spectacularly.</p> <p>Participants were asked to find the then-current population of the U.S., which was found on the Census Bureau’s homepage. Startlingly, just a pathetic 14 percent of participants were able to locate this information on the page, even though it was literally staring at them in huge, red letters on the right side of the page. It was suspected that this abysmally low success rate was due to the presence of the information on the page’s right side, in direct contravention of the F-shaped reading pattern so well established.</p> <p>However, further examination revealed that the vast majority of study participants simply ignored the information although it was in big, red and not-easy-to-miss appearance. They ignored it because its fancy formatting and presentation made it look like a promotion or ad of some sort! Since many web users already don’t pay attention to display ads in the first place, this conclusion should come as no surprise to anyone in light of what we know.</p> <p>This Nielsen study was 6 years ago, so it would be interesting to see if the U.S. federal government learned something in that time and improved its homepage for usability! We are talking about the federal government here, so efficiency isn’t its forté. However, looking at its <a href="http://www.census.gov/" rel="nofollow external" class="bo">current Census site,</a> we see that it has made at least a significant change in that the population number doesn’t look like a glaring promotion anymore with fancy formatting. Still, the population number has been moved all the way down to the bottom left of the homepage, forcing site visitors to actually scroll down to the bottom to see it. This is not a good alternative either!</p> <p><a href="http://www.census.gov/" rel="nofollow external" class="bo"><img src="http://netdna.webdesignerdepot.com/uploads/2013/09/census.jpg" width="650" alt="4 essential UX rules taught by eye tracking research" style="max-width: 100%; height: auto;"></a></p> <p> </p> <h1>Understand eye tracking, understand effective web design</h1> <p>Eye-tracking studies exist for a reason: They virtually lay out a blueprint of what web users like and don’t like on any given site, based on their behavior. Web designers who ignore this copious research are doing so at their own peril. Why wouldn’t you want to design a site that your visitors found easy to navigate? Make smart use of this research, and web users will find your site extremely pleasing to navigate…which will only lead to more visitors and greater popularity.</p> <p>Remember that, on any given site, it’s always headlines that draw the eyes of the user and, thus, their attention, not pictures. Always keep in mind the notorious F-shaped pattern that represents the general viewing pattern of many site visitors. It would do you good to design at least a homepage layout that mimics this pattern in some respect.</p> <p>Finally, steer clear of display ads. Not only do they look bad, but many site visitors don’t even pay them mind and ignore them completely. Explore other ways to get revenue for your site, perhaps through membership fees and other approaches. And whatever you do, don’t make useful web content look like a promotion or ad because site visitors tend to ignore that too. Keep all this in mind, and you’ll design a site in harmony with your visitors’ behavior.</p> <p> </p> <p><em><strong>Do you design to the ‘F’ pattern? What other usability tips would you share? Let us know in the comments.</strong></em></p> <p><em>Featured image/thumbnail, <a href="http://www.shutterstock.com/pic-128188214/stock-photo-mosaic-eyes.html" rel="nofollow external" class="bo">eyes image</a> via Shutterstock.</em></p> <p><br><br> </p>
    <table width="100%"> <tbody>
    <tr> <td> <a href="http://www.mightydeals.com/deal/vectorain-xmas-vectors.html?ref=inwidget" rel="nofollow external" class="bo"><strong>The Ultimate Christmas Vector Bundle – only $9.99!</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="4 essential UX rules taught by eye tracking research" style="max-width: 100%; height: auto;"><br> </a> </td> </tr> </tbody>
    </table> <p><br> </p> <a href="http://www.webdesignerdepot.com/2013/11/4-essential-ux-rules-taught-by-eye-tracking-research/" rel="nofollow external" class="bo">Source</a> <br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.webdesignerdepot.com%2F2013%2F11%2F4-essential-ux-rules-taught-by-eye-tracking-research%2F&amp;t=4+essential+UX+rules+taught+by+eye-tracking+research" 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%2F11%2F4-essential-ux-rules-taught-by-eye-tracking-research%2F&amp;t=4+essential+UX+rules+taught+by+eye-tracking+research" 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%2F11%2F4-essential-ux-rules-taught-by-eye-tracking-research%2F&amp;t=4+essential+UX+rules+taught+by+eye-tracking+research" 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%2F11%2F4-essential-ux-rules-taught-by-eye-tracking-research%2F&amp;t=4+essential+UX+rules+taught+by+eye-tracking+research" 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%2F11%2F4-essential-ux-rules-taught-by-eye-tracking-research%2F&amp;t=4+essential+UX+rules+taught+by+eye-tracking+research" 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/180264490329/u/49/f/661066/c/35285/s/33cca998/a2.htm" rel="nofollow external" class="bo"><img src="http://da.feedsportal.com/r/180264490329/u/49/f/661066/c/35285/s/33cca998/a2.img" style="max-width: 100%; height: auto;"></a>
    </div>
]]>
</Body>
<Summary>Web designers use a lot of tools to make the sites they design the best possible for site visitors; one of the best ways of achieving this is incorporating actual science and research into design...</Summary>
<Website>http://rss.feedsportal.com/c/35285/f/661066/s/33cca998/sc/4/l/0L0Swebdesignerdepot0N0C20A130C110C40Eessential0Eux0Erules0Etaught0Eby0Eeye0Etracking0Eresearch0C/story01.htm</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/38496/guest@my.umbc.edu/f18431c187c35ec2063676ff64f9a4ca/api/pixel</TrackingUrl>
<Tag>art</Tag>
<Tag>best-web-practices</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>eye-tracking-research</Tag>
<Tag>how-users-view-sites</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>illustrator</Tag>
<Tag>javascript</Tag>
<Tag>layout-for-websites</Tag>
<Tag>mysql</Tag>
<Tag>oracle</Tag>
<Tag>photoshop</Tag>
<Tag>php</Tag>
<Tag>sql</Tag>
<Tag>ux-design</Tag>
<Tag>web-layouts</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>Mon, 18 Nov 2013 03:15:10 -0500</PostedAt>
<EditAt>Mon, 18 Nov 2013 03:15:10 -0500</EditAt>
</NewsItem>

</News>
