<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>angular &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<atom:link href="https://jessewarden.com/tag/angular/feed" rel="self" type="application/rss+xml" />
	<link>https://jessewarden.com</link>
	<description>Software &#124; Fitness &#124; Gaming</description>
	<lastBuildDate>Fri, 29 Apr 2016 22:35:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://jessewarden.com/wp-content/uploads/2016/08/cropped-Lambda2-32x32.png</url>
	<title>angular &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<link>https://jessewarden.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Experiences in Managing Software Development Through Kanban &#038; Trello</title>
		<link>https://jessewarden.com/2016/04/experiences-in-managing-software-development-through-kanban-trello.html</link>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Sat, 16 Apr 2016 20:02:57 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[angular]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[behaviordrivendevelopment]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[gherkin]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[leadership]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[protractor]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[testdrivendevelopment]]></category>
		<category><![CDATA[trello]]></category>
		<category><![CDATA[unitests]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=5112</guid>

					<description><![CDATA[Introduction On my last project, I managed a team developing an application to manage hospitality locations. Given our requirements were constantly in flux, the contracts were on a short cycle, and the team was generally new to enterprise software development, I chose a Kanban style approach to managing and delivering it. I wanted to share [&#8230;]]]></description>
										<content:encoded><![CDATA[<h1>Introduction</h1>
<p>On my last project, I managed a team developing an application to manage hospitality locations. Given our requirements were constantly in flux, the contracts were on a short cycle, and the team was generally new to enterprise software development, I chose a Kanban style approach to managing and delivering it. I wanted to share with you the rationale, methodology, challenges, and the surprising change to my role while on the project.<br />
<span id="more-5112"></span></p>
<h1>Why Kanban vs Scrum?</h1>
<p>Scrum has too many meetings, requires a well groomed backlog, and assumes senior developers so that they canÂ accurately task &amp; plan their stories.</p>
<h2>Junior to Mid-Level Team</h2>
<p>Given I was running my mid-level team in an Enterprise setting, I knew others would be more than happy to sabotage our teams productivity with meetings of their own. Part of the solution, not part of the problem. New team members, both onshore and offshore, who I expected to be reasonably cross functional whether they liked it or not, needed all the time they could to focus and learn quickly.</p>
<h2>No Solid Requirements</h2>
<p>Given staffing wasÂ changing bi-weekly with an my on-going effort to teach the Subject Matter Experts (SME&#8217;s) turned Business Analysts (BA&#8217;s) how to create properly groomed stories, there wasn&#8217;t anything the team could commit to within a reasonable timeframe. For example, it took us 8Â <a href="http://programmers.stackexchange.com/questions/176063/how-to-be-successful-at-bdd-specifications-workshops">workshops</a>Â over 3 weeks to get to a solid understanding of what we thought we were building.</p>
<h2>No CICD</h2>
<p>We also had no buildÂ nor <a href="https://en.wikipedia.org/wiki/DevOps">DevOps</a>Â in place to facilitate <a href="https://www.thoughtworks.com/continuous-integration">ContinuousÂ Integration</a> and <a href="https://www.thoughtworks.com/continuous-delivery">Continuous Delivery</a>.Â Thus we had no ability for weeks to deliver a working, high quality feature because there was no build to allow Developers &amp; Quality Assurance toÂ verify quality, nor server to deploy it to.</p>
<h2>No Roles, Just Fullstack / Cross Functional</h2>
<p>Having a <a href="https://www.mountaingoatsoftware.com/agile/scrum/product-owner">Product Owner</a> assumes you have someone either in Business, or who represents them, that knows what to build. The client asked us to use our expertise to help them out in true Consulting style.Â Thus there was no Product Owner.</p>
<p>There was no need for a <a href="http://whatis.techtarget.com/definition/scrum-master">Scrum Master</a>. <a href="https://www.mountaingoatsoftware.com/agile/scrum/sprint-planning-meeting">Sprint Planning</a>Â was pointless because we couldn&#8217;t plan 1 to 2 weeks in advanced since high level Epic&#8217;s were still beingÂ both defined, priced, and architecturally validated. ForÂ months. I already knew what the team was working on, and so did they, by their small Trello cards. If people had blockers, they asked me or the team over <a href="https://slack.com/">Slack</a> andÂ we collectively resolved it. There was no need for <a href="https://www.mountaingoatsoftware.com/agile/scrum/sprint-retrospective">Retrospectives</a> because there were no Sprints since things changed daily so you couldn&#8217;t effectively reflect on what happened the past week because it was ever changing.Â There were no roles beyond everyone coding the client, server, and some of the DevOps together.</p>
<p>Scrum would of beenÂ lot of ceremony with noÂ value.</p>
<h1>EnterÂ Kanban</h1>
<p>What <a href="https://www.atlassian.com/agile/kanban">Kanban</a> does well is allow you to change quickly, allow the team to be productive despite the chaos, with a continuous flow of delivering working software that&#8217;s in sharp contrast to the insanity outside their productive world. Unlike <a href="https://www.scrumalliance.org/community/articles/2014/july/scrum-vs-kanban">Scrum</a>, you much more quickly visualize the work going on &#8220;today&#8221; and identify problems sooner than later. Since the work in progress tends to be smaller, you can flush out bottlenecks in the process sooner. You can create <a href="http://leankit.com/learn/kanban/kanban-board-examples-for-development-and-operations/">swimlanes</a> and also identify which ones have bottlenecks.</p>
<h2>Flexible to Ever Changing Direction</h2>
<p>As each new day brought in new or modified requirements, role changes, and improved DevOps and API offerings, I wouldÂ changeÂ the Backlog to match &#8220;today&#8221;. Given we had no build, nor DevOps starting from scratch, I had a lot of flexibility to inject more build specific tasks so as to keep away from <a href="http://martinfowler.com/bliki/Yagni.html">Yagni</a>Â until we got a solid enough user story. &#8220;No user stories, nor API? No problem, get <a href="https://mochajs.org/">Mocha</a> working with our <a href="https://nodejs.org/en/">Node</a> code.&#8221; I&#8217;d attempt to stay 1 to 4 days ahead of my team. This was to ensure they were working on what I knew at the time to be real and providing client &amp; user value.</p>
<h2>Productive Despite Chaos</h2>
<p>Politically, it helped ensure we were being productive and thus visually showing we&#8217;re using the client&#8217;s money effectively with the fast ability to change course if they wanted something changed faster than aÂ Scrum Sprint would typically allow. This happened often.</p>
<h2>Learning the Team&#8217;s Strengths, Weaknesses, and Desires</h2>
<p>I had a new, junior to mid-level Development team and QA team, on a greenfieldÂ client (meaning no existing infrastructure or code), with ever changingÂ requirements, staffing, and contract lengths. Since the team was new and learning the entire <a href="https://en.wikipedia.org/wiki/Systems_development_life_cycle">Software Development Lifecycle</a> whilst me doing my best to shield them from politics, lack of a CICD process,Â lack of requirements, and nothing pre-built for them via <a href="http://yeoman.io/">Yeoman</a> generators / starter projects&#8230; I knew things would be slow and unpredictable at first.</p>
<p>What I didn&#8217;t know was the team. I didn&#8217;tÂ know their strengths, weaknesses, and most importantly, desires. Happy developers are productive developers. A lot of people say they are <a href="http://andyshora.com/full-stack-developers.html">fullstack</a> to ensure they are employable or because they are insecure that their speciality skill set cannot stand on it&#8217;s own. That or they like working in smaller, more cross functional groups.</p>
<p>As much as I expected the team to touch all parts of the development stack, including myself, you always have people who naturally gravitate somewhere, or like to be pushed to a particular area like API&#8217;s, services, components, or build level tasks. This should be encouraged just as much as being cross functional to get the most out of them, and the team. Additionally, as the project matures, you have less of a need to be cross functional as often, and tend to see people dive deep over time.</p>
<h1>Creating Tasks in Trello</h1>
<p>I also didn&#8217;t know the team&#8217;s ability to estimate their own tasks. It didn&#8217;t matter since the user stories weren&#8217;t defined enough for them to do so. Thus, I broke all tasks down for the team and included additional DevOpsÂ and QAÂ tasks as well into small units. We used <a href="https://trello.com/">Trello</a>, a real-time collaborative project board full of cards, to keep track of the work.</p>
<p>We had 6 columns in our Trello board, from left to right:</p>
<ol>
<li><strong>Bulletin Board</strong>: All the documents &amp; images for our project</li>
<li><strong>Undefined</strong>: Stories &amp; Tasks I didn&#8217;t have enough clarity on for the team to work on.</li>
<li><strong>Defined</strong>: Tasks I fleshed out enough toÂ ensure anyone on the team could work on with clearly defined success criteria, easily merged into a <a href="https://github.com/">Github</a> <a href="https://help.github.com/articles/using-pull-requests/">Pull Request</a>, and colored with the swimlane it belonged to: Testing, Client UI, Node API, DevOps, and <a href="https://en.wikipedia.org/wiki/User_experience_design">UX</a>.</li>
<li><strong>Working On It</strong>: What tasks were being actively worked on in the team. I ensured only 1 card per developer</li>
<li><strong>Done</strong>: For tasks that were done and developer tested, but not QA approved via them manually testing the Card&#8217;s associated PR.</li>
<li><strong>Approved</strong>: QA approved PR&#8217;s that merged into the dev branch and deployed via <a href="https://jenkins.io/">Jenkins</a> <a href="https://www.docker.com/">Docker</a> build.</li>
</ol>
<p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-5113" src="http://jessewarden.com/wp-content/uploads/2016/04/trello-board.png" alt="trello-board" width="720" height="456" srcset="https://jessewarden.com/wp-content/uploads/2016/04/trello-board.png 720w, https://jessewarden.com/wp-content/uploads/2016/04/trello-board-300x190.png 300w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<h2>Observe the Flow of Development&#8230;</h2>
<p>What happened next sold me on one of the key strengths of Kanban.</p>
<p>Every day I could immediately see problems. Instantly. It happened just like <a href="https://www.linkedin.com/in/andrea-ross-csm-sa-0a056b3b">Andrea Ross</a> <a href="http://jessewarden.com/2013/08/kanban-paper-airplane-factory.html">said it would</a>, and I&#8217;d see where bottlenecks were in the process. Each column in Trello would suddenly get overflowed with cards. You could be near blind, simply squint at the board so you couldn&#8217;t actually read anything and STILL SEE IT. The size of the columns told all: you have a bottleneck somewhere here.</p>
<p>It&#8217;s called <a href="https://stefanroock.wordpress.com/2010/03/02/kanban-definition-of-lead-time-and-cycle-time/">Cycle Time</a>: how long a piece of work goes from left to right. You want toÂ ensure once cards are created, they speed from Undefined to Accepted (left to right, start to finish) as quickly as possible. Typically that process isn&#8217;t linear; SOMEWHERE in the journey there is always a bottleneck.</p>
<h2>&#8230; Adjust as Necessary</h2>
<h3>How do I know I&#8217;m done?</h3>
<p>The first one was the success criteria I gave wasn&#8217;t clear enough. 90% ofÂ my created cards in Defined were moved back to Undefined by the team. Once I gave better success criteria, the development team started to chew through them. I wouldn&#8217;t hear from them for hours, then cards would suddenly start piling up in the Done column w/PR&#8217;s to boot.</p>
<h3>What does the UI look like?</h3>
<p>The second one was lack of good <a href="https://en.wikipedia.org/wiki/Website_wireframe">wireframes</a> and <a href="http://graphicdesign.stackexchange.com/questions/30860/what-is-the-difference-between-wireframes-and-mockups">designs</a> to illustrate both the layout and interactions of how the UI worked. We didn&#8217;t yet have budget for a UX resource, so I spent the time myselfÂ building low fidelity wireframes that were as accurate as possible and then creating design comps matching our <a href="https://www.google.com/design/spec/material-design/introduction.html">Material Design</a>Â style guide. I ensured all new cards had relevant design artifacts attached. If the wireframe/design comp changed, I&#8217;d move the card from Defined back to Undefined to ensure the team didn&#8217;t touch it. If it was too late, I&#8217;d create an iteration card to modify an existing piece of work with the updated UI/functionality change.</p>
<h3>How do I test itÂ works?</h3>
<p>The third one was the inability for QA to test functionality as cards started piling up in the Done column. QA didn&#8217;t yet have the build running locally, nor a QA environment to test on, nor a set of tools to help them automate it, nor a lead to help mentor them towards this.</p>
<p>So I picked up the torch, implemented <a href="http://www.protractortest.org">Angular&#8217;s Protractor</a> with theÂ <a href="https://github.com/mattfritz/protractor-cucumber-framework">Cucumber</a> version, then had a team member get an actual working feature through <a href="http://gulpjs.com/">Gulp</a>. I then worked with the QA team and BA&#8217;s to help define better Cucumber features through workshops so they were easier to test. I attached these as additional artifacts to each card where applicable.</p>
<p>Finally, we started Dockerizing our build to use throughÂ <a href="https://kitematic.com/">Kitematic</a> &amp; <a href="https://hub.docker.com/">DockerHub</a>.Â Given how hard it was to get <a href="http://redis.io/">Redis</a> + Node working the same between the Developer&#8217;s Macs and the QA&#8217;sÂ Windows machines with various lack of admin rights, this helped ensure things actually worked, quickly, without debugging install or configuration issues.</p>
<h3>Continually Improve</h3>
<p>This process never stopped. Sometimes it was smallÂ bottlenecks or even just blockers and we&#8217;d do our best to improve the process.Â Despite the politics, climate of unknowing, and constant readjustment of requirements &amp; processes&#8230; it felt good to be making both progress and improving the process.</p>
<p>Developers got to zone out by donningÂ headphonesÂ toÂ jam on code all day. Working codeÂ continually emerged as long as I fed this process.</p>
<p>We almost got to the point where the developers had no clue about the ever changing conditions on the ground with the client, ignored it when I brought it up, and focused strictly on questions about specific tasks. I&#8217;d call that a process win.</p>
<h1>Challenges</h1>
<p>It wasn&#8217;t all rose colored glasses.</p>
<h2>The Importance of Good, Upfront DevOps</h2>
<p>The main pain point throughout the entire process was our DevOps starting late in the cycle. Without a good CICD process, Scrum and Kanban don&#8217;t really seem to work all that well in tracking &#8220;actual work&#8221; because no actual work&#8230; works. Now, the CIÂ portion we knocked out of the park ourselves and quickly while waiting for confirmed requirements using Github and Jenkins in Docker + <a href="https://aws.amazon.com/">AWS</a>. Mostly. The CD, however, took awhile.</p>
<p>What we wanted at first was once a PR was approved, the code would, after a successful Jenkins build, deploy a Docker container of our code to a publicly accessible Amazon Web Service (AWS) instance. It took us about 3 months to get that going given our resource constraints &amp; timing. In the interim, we did a lot of <a href="https://en.wikipedia.org/wiki/Mock_object">mocks</a> and testing on localhost with <a href="https://ngrok.com/">ngrok</a> for demos.</p>
<p>Once our Docker deployment was working we started having code be deployed without our knowledge in a good way; the development teamÂ just focused on completing cards, and eventually the QA would focus on verifying manually what made it through the automated QA process to the server matched up.</p>
<p>The latter took forever simply because I was stretched too thin running the Development team, helping the DevOps team, doing my own wireframes and design comps, mentoring the BA&#8217;s to writeÂ awesome user stories via <a href="https://dannorth.net/introducing-bdd/">Behavioral Driven Development</a> to minimize our story grooming sessions, and keeping Senior Management in the loop.</p>
<p>Even with Analysts starting the DevOps, it&#8217;s clear having them full time on that endeavor payed off big time. In the future, I&#8217;m curious if I&#8217;d rather focus on that full time myself since it seems to have the largest, cross team impact regardless of whether the requirements, UX, and CIÂ are in a good or bad spot.</p>
<h2>Wireframing &amp; Designing at the Same Time vs. Staggered</h2>
<p>While me being the same person to do the wireframes made it easier to build design comps around them, it simnifically reduced the time I could spend with other teams.Â When the Undefined column would get too full, I&#8217;d have to spend the early part of the week ensuring I had enough information to wireframe. I&#8217;d then spend the weekend onÂ the design comps and then break them down into easily tackled, small PR tasks in Trello. This wasn&#8217;t sustainable and I knew it, but was banking on getting budget for UX resources.</p>
<p>While I was helping the BA&#8217;s, Development Team, and QA by ensuring the stories had a visual component toÂ help ensure we&#8217;re all on the same page of what theÂ user story looked like, I&#8217;d end up neglecting other things like refining those very stories, not unblocking the development team when they&#8217;d get stuck on build or architecture issues, nor helping push the DevOps team to help the QA do their job.</p>
<p>Rather than complain, I made a daily tactical call on what to focus on based on what Trello was telling me. Once we got the UX resourceÂ onboard, he worked aside the BA&#8217;s and that helped a ton; at that point I could just match the design comps to his wireframes, cutting my work in half + his were of insanely higher quality for talent &amp; focus reasons.</p>
<p>What this tells me is that unless I have a huge backlog of build and DevOps work in the pipeline, I&#8217;ll be hard pressed in the future to keep my development team busy with those tasks for a long timeÂ without quickly needing a proper UX team member(s).</p>
<h2>QA in Lean Engineering</h2>
<p>I didn&#8217;t have enough seniors to delegate management tasks to, and coupled with my CD problems, IÂ struggled to keep QA productive. While our developers were using <a href="http://eslint.org/">linting</a> <a href="https://www.typescriptlang.org/">compilers</a>, <a href="https://github.com/vigetlabs/grunt-complexity">complexity metrics</a>, unit and integration testing with <a href="https://www.youtube.com/watch?v=o6KSOs-N75o">end to end testing</a>, no one was laser focused on improving the latter part of the QA CD pipeline. I&#8217;d made some headway in getting QA involved in the beginning to help contribute to ensuring good user stories came out of our workshops. Where I struggledÂ was giving them enough of my time to teach them basic JavaScript coding, DevOps, and helping them walk through their testing plans on what we did have to start to develop a cadence.</p>
<p>A lot of this was we just didn&#8217;t have that much to test yet and the other was&#8230; well, nothing. I did the best I could working insane hours. If I were to do it again, I&#8217;d assign a senior dev interested in furthering their testing &amp; DevOps chops to work with them on owning the CD process, and ensuring a good quality pipeline.</p>
<p>In Lean Engineering, QA is no longer thrown code to test weeks or months later. Instead, they are brought into the beginning of the process and the end to improve the entire pipeline. You can&#8217;t do that if you don&#8217;t have a DevOps pipeline.</p>
<h2>User Feedback</h2>
<p>The same problem I had with QA I had with user feedback. Part ofÂ Lean engineering with Kanban is continuously improve not just the process, but the software. You do this by giving the working build to a user, testing it, and taking their feedback BACK into the process. While doing wireframes, I did informal and adhoc user interviews, created basic <a href="https://www.smashingmagazine.com/2014/08/a-closer-look-at-personas-part-1/">Persona&#8217;s</a> to differentiate who we were targeting, but did not get to validate this with released software until late in the cycle.</p>
<p>This actually wasn&#8217;t much of a bad thing, but rather, a challenge because a working build didn&#8217;t emerge until much later in the cycle, so we just did localhost demo&#8217;s &amp; testing vs. &#8220;use whatever device you have on your person or will use in your job&#8221;. I had already had extensive, informal discussions with the target users and really liked them as people. It just came up when I&#8217;d look at swimlanes via colors in Trello cards, the features had a huge cycle time in knowing if they were valid or not from user testing.</p>
<h1>Role Changes</h1>
<p>Traditionally in Agile, I&#8217;ve found I do most of my management efforts on Sprint Planning and post Retrospective. I ensure the requirements are rock solid and follow up on loose ends, and take action items seriously during retrospectives where new things need to be implemented or changed. The rest of the time I architect, pair program, and code.</p>
<p>In Kanban, it was very different. My role, daily, was to manage away problems for the team. Instead of a weekly or bi-weekly discovery, this was daily to hourly. I&#8217;d adjust based on what Trello was telling me. It gave me a greater insight into how my management efforts positively and negatively affected the team.</p>
<p>I also liked continually working with the team to improve our process. I&#8217;ve done that before in teams with Scrum, but process improvement usually fell behind &#8220;getting my story done&#8221; in terms of priority. In Kanban, fixing the bottleneck and improvingÂ the process is the priority.</p>
<p>I&#8217;ve found I really like Kanban. The consulting world is full of extremely hard software problems surrounded by politics and chaos. I love thoseÂ aspectsÂ and Kanban is now my tool of choice for managing teams within it.</p>
<h1>Citations</h1>
<p>I wanted to thank <a href="http://joelhooks.com/">Joel Hooks</a> forÂ telling me about Kanban being an alternative to ScrumÂ years ago. If Joel likes something, I typically trust his judgement that it must be good.</p>
<p>Also thanks to my manager, <a href="https://www.linkedin.com/in/mlancast">Matt Lancaster</a>, for teaching me about Lean engineering processes. You can see him speak about the processÂ below.</p>
<p><iframe src="https://www.youtube.com/embed/q2eyhFVWuKY" width="640" height="360" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>Thanks to <a href="https://www.linkedin.com/in/eric-motazedi-648a0490">Eric Motazedi</a>Â for teaching me about BDD and why <a href="http://programmers.stackexchange.com/questions/176063/how-to-be-successful-at-bdd-specifications-workshops">workshops</a> are so important.</p>
<p>FinallyÂ thanks to the Richmond <a href="http://www.meetup.com/Capital-Kanban/">Capital Kanban</a> group for teaching me more about how <a href="http://jessewarden.com/2013/08/kanban-paper-airplane-factory.html">Kanban works</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Angular 2 in Slovakia</title>
		<link>https://jessewarden.com/2015/10/angular-2-in-slovakia.html</link>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Sat, 31 Oct 2015 12:53:36 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[angular]]></category>
		<category><![CDATA[bratislava]]></category>
		<category><![CDATA[es6]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[openslava]]></category>
		<category><![CDATA[slovakia]]></category>
		<category><![CDATA[typescript]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=5070</guid>

					<description><![CDATA[Travelled to Slovakia 3 weeks back to speak about Angular 2 in Bratislava at the OpenSlava conference. Just a basic overview of Angular 2 vs 1. I dove into what docs I could find, took John Papa&#8217;s sample Angular 2 project out for a spin, played with a few language implementations. It&#8217;s nice to see [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Travelled to Slovakia 3 weeks back to speak about Angular 2 in Bratislava at the <a href="http://www.openslava.sk/">OpenSlava conference</a>. Just a basic overview of Angular 2 vs 1. I dove into what <a href="https://angular.io/docs/ts/latest/">docs I could find</a>, took <a href="https://github.com/johnpapa/angular2-tour-of-heroes">John Papa&#8217;s sample Angular 2 project</a> out for a spin, played with a few language implementations.</p>
<p><span id="more-5070"></span><img decoding="async" class="alignnone wp-image-5071" src="http://jessewarden.com/wp-content/uploads/2015/10/DSC8640.jpg" alt="_DSC8640" width="720" height="478" srcset="https://jessewarden.com/wp-content/uploads/2015/10/DSC8640.jpg 4288w, https://jessewarden.com/wp-content/uploads/2015/10/DSC8640-300x199.jpg 300w, https://jessewarden.com/wp-content/uploads/2015/10/DSC8640-1024x680.jpg 1024w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<p>It&#8217;s nice to see the Alpha stable enough to play with, and the community in general has done a great job keeping the various documentation about emerging features up to date as they&#8217;ve changed a ton.</p>
<p><a href="http://jessewarden.com/wp-content/uploads/2015/10/IMG_4358.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-5073" src="http://jessewarden.com/wp-content/uploads/2015/10/IMG_4358.jpg" alt="IMG_4358" width="720" height="405" srcset="https://jessewarden.com/wp-content/uploads/2015/10/IMG_4358.jpg 1600w, https://jessewarden.com/wp-content/uploads/2015/10/IMG_4358-300x169.jpg 300w, https://jessewarden.com/wp-content/uploads/2015/10/IMG_4358-1024x576.jpg 1024w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></p>
<p>Still not sure where the language will go.Â For my client work behind the firewall, <a href="http://www.typescriptlang.org/">TypeScript</a> seems like a shoe in, but for open source, <a href="https://github.com/lukehoban/es6features">ES6</a> still seems to reign supreme. They&#8217;re both compatible with each other,Â but having 4 language opens opens the door for massive fragmentation. While they&#8217;ve solidified the code base API to be less flexible in a good way to encourage a specific way to build components, opposite problem with encouraging language options. Things could be worse.</p>
<p><a href="http://jessewarden.com/wp-content/uploads/2015/10/IMG_4327.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-5072" src="http://jessewarden.com/wp-content/uploads/2015/10/IMG_4327.jpg" alt="IMG_4327" width="720" height="405" srcset="https://jessewarden.com/wp-content/uploads/2015/10/IMG_4327.jpg 1600w, https://jessewarden.com/wp-content/uploads/2015/10/IMG_4327-300x169.jpg 300w, https://jessewarden.com/wp-content/uploads/2015/10/IMG_4327-1024x576.jpg 1024w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></p>
<p>Overall great conference, the Slovaks were uber polite, and it was great to meet many of my Slovak coworkers in person. Any country that digs pork as much as I do is cool with me. Apologies to the cameraman who is used to stationary targets.</p>
<p><a href="http://jessewarden.com/wp-content/uploads/2015/10/IMG_4522.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-5074" src="http://jessewarden.com/wp-content/uploads/2015/10/IMG_4522.jpg" alt="IMG_4522" width="720" height="480" srcset="https://jessewarden.com/wp-content/uploads/2015/10/IMG_4522.jpg 1600w, https://jessewarden.com/wp-content/uploads/2015/10/IMG_4522-300x200.jpg 300w, https://jessewarden.com/wp-content/uploads/2015/10/IMG_4522-1024x683.jpg 1024w" sizes="auto, (max-width: 720px) 100vw, 720px" /></a></p>
<p><a href="https://github.com/JesterXL/OpenSlava-2015">Slides are up</a>, andÂ video below.</p>
<p><iframe loading="lazy" src="https://www.youtube.com/embed/HLvr4CHCots" width="640" height="360" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sharing CSS Between Polymer Components in Version 1.1 vs 0.5</title>
		<link>https://jessewarden.com/2015/08/sharing-css-between-polymer-components-in-version-1-1-vs-0-5.html</link>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Sat, 15 Aug 2015 14:12:17 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[angular]]></category>
		<category><![CDATA[components]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[dart]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[polymer]]></category>
		<category><![CDATA[styling]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=4887</guid>

					<description><![CDATA[Finally figured out how to share styles between components in Polymer. In version 0.5 it was &#60;core-style&#62; and in 1.1, they&#8217;ve changed it use shared styles which is pretty easy to grok for someone who sucks at CSS like me. Sadly, the 1.0 docs for Polymer are quite awful. Even more frustrating is most of [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Finally figured out how to <a href="https://blog.polymer-project.org/announcements/2015/08/13/1.1-release/">share styles between components in Polymer</a>. In version 0.5 it was &lt;core-style&gt; and in 1.1, they&#8217;ve changed it use shared styles which is pretty easy to grok for someone who sucks at CSS like me.</p>
<p><span id="more-4887"></span>Sadly, the 1.0 docs for <a href="https://www.polymer-project.org/1.0/docs/start/getting-the-code.html">Polymer</a> are quite awful. Even more frustrating is most of the Google links still point to v0.5 content, including Github repos that don&#8217;t all point to the newer repos. For example, go figure out how to know how to programmatically listen when a <a href="https://elements.polymer-project.org/elements/paper-radio-group">&lt;paper-radio-group&gt;</a> has changed a selected item by the user clicking it&#8230; ready, go. Oh look, you found misery! I reckon this is because they are still trying to keep ahead all of the Web vendor API changes, general code optimizations, and just resource issues. Not sure the size of the Polymer team. On a whim this morning I checked their blog and finally found what I was looking for since I gave up on the documentation (which was quite great in 0.5).</p>
<p>While I primarily work in raw JavaScript all day and sometimes <a href="https://angularjs.org/">Angular</a>, after messing with Polymer for about 2 weeks now, I really really don&#8217;t get the allure of <a href="http://facebook.github.io/react/">React</a>. When I was messing with Angular 2 months ago in <a href="https://www.dartlang.org/">Dart</a> using the new component syntax, it was immediately apparent how quickly you could build UI&#8217;s. It felt like <a href="http://www.adobe.com/products/flex.html">Flex</a>. Just focusing strictly on the UI, not caring about models and controllers and blah blah blah MVC whatever. Just git-r-done.</p>
<p>Polymer feels the same way; I never messed with the Dart version so just doing the JavaScript version, but even so, it&#8217;s a ton like Angular 1.0, just less&#8230; weird. That, and you can include styles WITH your component vs. &#8220;Uh&#8230; Bootstrap will&#8230; like&#8230; handle that somehow. I don&#8217;t know man, go ask the designer, I&#8217;m just the coder.&#8221;</p>
<p>Took me a few weeks to get re-acclimated to <a href="https://www.google.com/design/spec/material-design/introduction.html">Material Design</a>. <a href="http://getbootstrap.com/">Bootstrap</a> provides you with SO many components including general typography out of the box that work quite quickly, whereas Material Design, or even if you start with <a href="http://www.getmdl.io/">Material Design Lite</a>, there&#8217;s still a ton of onus on you to have SOME designer chops, or have a designer as a friend that can help you.</p>
<p>Anyway, glad to know now how to make my CSS styles follow DRY principles.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
