wit 225 JSJ Functional Programming with John A. De Goes By devchat.tv Published On :: Wed, 17 Aug 2016 09:00:00 -0400 03:08 - John A. De Goes Introduction Twitter GitHub Blog SlamData 04:07 - PureScript JavaScript Jabber Episode #189: PureScript with John A. De Goes and Phil Freeman 04:58 - “Purely Functional” 09:18 - Weaknesses With Functional Programming Object-oriented Programming Procedural Programming 14:36 - Organizing a FP Codebase John A. De Goes: A Modern Architecture for FP 17:54 - Beginners and Functional Programming; Getting Started Learning About the History of Functional Programming Hiring Junior Devs to do FP 28:20 - The Rise of Functional Programming in JavaScript-land 32:08 - Handling Existing Applications 36:03 - Complexity Argument 41:53 - Weighing Language Tradeoffs; Alt.js Picks Nadia Odunayo: The Guest: A Guide To Code Hospitality @ RailsConf 2016 (Aimee) React Rally (Jamison) Cleanup Algorithm (Jamison) PostgreSQL Exercises (Jamison) iPad Pro (Chuck) Smart Keyboard for iPad Pro (Chuck) Apple Pencil (Chuck) GoodNotes (Chuck) John A. De Goes: Halogen: Past, Present, and Future (John) slamdata (John) Full Article
wit 226 JSJ Test Doubles with Justin Searls By devchat.tv Published On :: Wed, 24 Aug 2016 09:00:00 -0400 React Remote Conf and Angular Remote Conf 03:15 - Justin Searls Introduction Twitter GitHub Blog Test Double JavaScript Jabber Episode #038: Jasmine with Justin Searls 04:13 - Testing testdouble.js teenytest Sinon.JS 08:44 - Mocking Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce Jim Weirich 14:45 - Starting These Concepts as a Junior Developer Test-driven Development 17:55 - testdouble.js vs. sinon.js NIH = Not Invented Here 26:39 - Duck Typing, Monkey Patching, Duck Punching 32:22 - Node.js Negativity Design, Resources Martin Fowler’s Refactoring and Patterns Books Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans 42:52 - Community 45:08 - The AAA Rule: Arrange, Act, Assert 51:19 - Error Messages Picks Unemployment (Jamison) React Rally (Jamison) Julia Evans' Tweet: how to be a wizard programmer (Jamison) See the good in people (Aimee) Sinon.JS (Joe) How to Stay Motivated: Developing the Qualities of Success by Zig Ziglar (Chuck) The Harry Potter Series (Chuck) RetroPie (Justin) How Elm can Make you a Better JavaScript Programer (Justin) NEJS Conf (Justin) Full Article
wit 227 JSJ Fostering Community Through React with Benjamin Dunphy, Berkeley Martinez, and Ian Sinnott By devchat.tv Published On :: Wed, 31 Aug 2016 09:00:00 -0400 03:08 - Benjamin Dunphy Introduction Twitter GitHub 04:07 - Berkeley Martinez Introduction Twitter GitHub Free Code Camp 04:19 - Ian Sinnott Introduction Twitter GitHub Blog TruSTAR Technology 05:19 - The React Codebase 12:38 - Other Important Parts of the React Ecosystem 14:22 - The Angular vs the React Ecosystem and Community The Learning Curve create-react-app 22:07 - Community Developer Experience Functional Programming 26:56 - Getting Connected to the React Community Meetup: Real World React @rwreact ReactJS San Francisco Bay Area Meetup Meetup Eventbrite Calagator Twitter Dan Abramov: My React List 29:34 - Conferences React.js Conf React Rally ReactNext ReactiveConf ReactEurope 33:28 - Technology From the Community redux ThunderCats.js 38:23 - Choices Are Expanding; Not Shrinking Linting 40:19 - The Future of React 42:39 - Starting More Communities Picks This Developing Story (Aimee) Nashville (Aimee) Nodevember (Aimee) egghead.io: React in 7 Minutes (Ben) Lee Byron: Immutable User Interfaces @ Render 2016 (Ben) Nick Schrock: React.js Conf 2016 Keynote (Ben) create-react-app (Ian) Functional Programming Jargon (Ian) The Serverless Framework (Ian) Ben's Blog (Berkeley) Isaac Asimov’s Robot Series (Berkeley) Vsauce: The Zipf Mystery (Berkeley) Kinesis Advantage for PC & Mac (Dave) Full Article
wit 228 JSJ React Native with Nader Dabit and Mike Grabowski By devchat.tv Published On :: Wed, 07 Sep 2016 08:00:00 -0400 Code-sharing between mobile and web apps with React Native Using native code and Javascript What to know about developing with React Native The importance of tooling Live and hot-reloading Updating your app on the fly Possible difficulties faced by transitioning to React Native Bridging between native API’s and React Native Writing apps in Swift or React Native The future of React Native How to start a React Native project Resources: Frontend Masters Hired.com Rollbar Microsoft Code Push React Native Radio Episode 8 Tadeu Zagallo’s Website Full Article
wit 229 JSJ Elm with Richard Feldman By Published On :: Wed, 14 Sep 2016 08:00:00 -0400 1:13 No Red Ink is hiring; Richard’s book-in-progress 2:10 Frontend Masters Workshop 2:55 Elm’s primary function 5:10 Using Elm over using Haskell, React, Javascript, etc. 9:15 Increased usability of Elm with each update 13:45 Striking differences between Elm and Javascript 16:08 Community reactions to Elm 20:21 First Elm conference in September 22:11 The approach for structuring an Elm app 23:45 Realistic time frame for building an app from scratch 32:20 Writing pure functions and immutable data; how Elm uses Side-Effects 38:20 Scaling a big FP application 44:15 What Javascript developers can take away from using Elm 48:00 Richard on Twitter PICKS “In a World…” Movie Building a Live-Validated Signup Form in Elm Apple Cider Vinegar CETUSA – Foreign exchange program Full Article
wit 230 JSJ Node at Capital One with Azat Mardan By devchat.tv Published On :: Wed, 21 Sep 2016 08:00:00 -0400 00:51 Jameson is looking for clients who need front and back end code for apps; @Jergason (Contact him via Direct Message) 04:40 An explanation of Capital One and its operations 6:06 How many Capital One developers are using Node and how it is being implemented 10:30 Process of approval for app/website development 14:15 How the culture at Capital One affects technology within the company 18:25 Using Javascript libraries to manage different currencies 19:40 Venmo and its influence on banking 22:32 Whether banks are prepared to operate in a cashless society 29:44 Using HTML and Javascript for updating projects or creating new ones 35:21 Who picks up Javascript easily and why: “It’s more about grit than raw intelligence.” 44:00 Upgrading via open source codes 45:40 The process for hiring developers 51:35 Typescript vs. non-typescript PICKS: “Nerve” Movie Brave Browser “Stranger Things” on Netflix Angular 2 Class in Ft. Lauderdale, Discount Code: JSJ “Strategy for Healthier Dev” blog post Health-Ade Beet Kombucha “The Adventure Zone” podcast On the Cruelty of Really Teaching Computer Science article by E.W. Dijkstra “The Freelancer Show” podcast “48 Days” podcast Node.university Azat Mardan’s Website Azat Mardan on Twitter CETUSA – Foreign exchange program Full Article
wit 231 JSJ Codewars with Nathan Doctor, Jake Hoffner, and Dan Nolan By devchat.tv Published On :: Wed, 28 Sep 2016 09:00:00 -0400 3:23 Discussing the purpose and aim of Codewars 7:30 The process for building a program with Codewars 11:07 The UI and editor experience 12:55 The challenges faced when first building Codewars 14:23 Explaining PJAX 16:54 Building code on Codewars 21:24 The expanded use of KATA on Codewars 23:11 Practicing “solving problems” and how it translates to real world situations 34:00 How Codewars proves out the persistence of coders 36:41 How Codewars appeals to collaborative workers 44:40 Teachable moments on Codewars 49:40 Always check to see if Codewars is hiring. Codewars uses Qualified.io, which helps automate the hiring process. PICKS: Marrow Sci-fi book Uprooted Fantasy book “Write Less Code” blog post “The Rands Test” blog post Five Stack software development studio “Stranger Things” on Netflix Angular 2 Class in Ft. Lauderdale, Discount Code: JSJ Lean Analytics book Code book Datasmart book Letting Go book Full Article
wit 232 JSJ GunDB and Databases with Mark Nadal By devchat.tv Published On :: Wed, 05 Oct 2016 08:00:00 -0400 03:45 What makes the Gun database engine special 07:00 Defining a database 12:58 The CAP Theorem 22:56 What Graphs are and how they function (circular references) 30:32 Gun and rotational disk systems 32:08 Gun’s optimizations for performance in ensuing versions 39:55 The prevalence of open source companies 42:45 Further discussing the CAP Theorem and its nuances 50:33 Gun’s purpose and design 52:13 What a Firebase is 54:22 How to get started with Gun - Visit Gun Tutorial, Gun's Github Page, and Gun Node Module QUOTES: “I think the database should bend to your application’s demands, rather than you having to bend to the database’s demands.” –Mark Nadal “…The protocol that GUN defines is something that can be implemented in any language. Because GUN is in the language, you don’t have the context which latency of having to make an HTTP call or socket request…” –AJ O’Neill “Let’s demystify the black magic of CAP.” –Mark Nadal PICKS: Dan North’s Deliberate Learning Video 8Tracks Internet Radio Pokemon Indigo League on Netflix Daplie Personal Cloud Young Frankenstein Movie Mystic Vale Card Game JS Remote Conference React Remote Conference Farm Heroes Super Saga Game App Full Article
wit 233 JSJ Google Chrome Extensions with John Sonmez By devchat.tv Published On :: Wed, 12 Oct 2016 08:00:00 -0400 02:50 The definition of a plug-in 03:31 The definition of an extension 05:09 The way to determine the plug-ins and extensions you are running 08:22 How to create an extension file 11:02 The appeal of creating extensions 13:26 How John got into creating extensions 15:48 Ways to organize extensions 19:38 Aspects of chrome that will affect extensions 23:23 Packaging for the Chrome store 26:22 Using dev tools 29:42 Conflicting plug-ins/extensions and how to deal with them 31:30 Open source extensions 32:32 A quick way to create an extension QUOTES: “I teach software developers how to be cool.” –John Sonmez “There wasn’t an ability to extend the dev tools, but now there is.” –John Sonmez “One quick way to create an extension is just to take one of these sample apps…and then just start modifying it…” –John Sonmez PICKS: “Django Unchained” Website “Using Angular 2 Patterns in Angular 1.x” Apps Egghead Course Girls’ Life vs. Boys’ Life on Refinery29 Webinar Jam Software “Five Mistakes That are Keeping You From Getting Hired” Webinar Screencastify Chrome Extension How to Fail at Almost Everything and Still Win Big Book on Amazon The Complete Software Developers Career Guide Book in Progress Simple Programmer Website Simple Programmer on Youtube Full Article
wit 234 JSJ JAMStack with Brian Douglas and Matt Christensen By devchat.tv Published On :: Wed, 19 Oct 2016 08:00:00 -0400 1:00 Intro to guests Brian Douglas and Matt Christensen 2:20 Definition of JAMStack 8:12 JAMStack and confusion over nomenclature 12:56 JAMStack and security, reliability and performance 17:05 Example of traffic spike for company Sphero 18:26 Meaning of hyperdynamic 20:35 Future and limits of JAMStack technology 26:01 Controlling data and APIs versus using third parties 28:10 Netlify.com and JAMStack 31:16 APIs, JavaScript framework and libraries recommended to start building on JAMStack 35:13 Resources and examples of JAMStack: netlify.com, Netlify blog, JAMStack radio, JAMStack SF Meetup QUOTES: “I think in the next couple of years we’re going to see the limits being pushed a lot for what you can do with this.” - Matt “Today we’re starting to see really interesting, really large projects getting built with this approach.” - Matt “If you can farm 100% of your backend off to third parties, I feel like that really limits a lot of the interesting things you can do as a developer.” - Brian PICKS: Early History of Smalltalk (Jamison) React Rally 2016 videos (Jamison) FiveStack.computer (Jamison) Falsehoods programmers believe about time (Aimee) Nodevember conference (Aimee) 48 Days Podcast (Charles) Fall of Hades by Richard Paul Evans (Charles) Jon Benjamin Jazz (Brian) RailsConf 2016 (Brian) React Native (Brian) Book of Ye Podcast (Brian) Aurora by Kim Stanley Robinson (Matt) Sequoia Capital website Sphero website Isomorphic rendering on the Jam Stack by Phil Hawksworth SPONSORS: Front End Masters Hired.com Full Article
wit 235 JSJ JavaScript Devops and Tools with Donovan Brown and Jordan Matthiesen By devchat.tv Published On :: Wed, 26 Oct 2016 08:00:00 -0400 00:50 Intro to guests Donovan Brown and Jordan Matthiesen 1:14 Javascript and Devops 3:49 Node JS and integrating with extensions 11:16 Learning Javascript coming from another language 15:21 Visual Studio Team Services at Microsoft, integration and unit testing Visualstudio.com Donovanbrown.com 25:10 Visual Studio Code and mobile development Apache Cordova open source project 31:45 TypeScript and tooling 33:03 Unit test tools and methods 38:39 ARM devices and integration QUOTES: “It’s not impossible, it’s just a different set of challenges.” - Donovan Brown “Devops is the union of people, process and products to enable continuous delivery of value to your end users” - Donovan Brown “Apps start to feel more native. They can actually get form.” - Jordan Matthiesen PICKS: Veridian Dynamics (AJ) Jabberwocky Video (AJ) Hard Rock Cafe - Atlanta (Charles) CES (Charles) 3D printers (Donovan) High-Yield Vegetable Gardening (Jordan) taco.visualstudio.com Jordan on Twitter @jmatthiesen Visualstudio.com Donovanbrown.com Donovan on Twitter @donovanbrown SPONSORS: Front End Masters Hired.com Full Article
wit 236 JSJ Interview with Mads Kristensen from Microsoft Ignite By devchat.tv Published On :: Wed, 02 Nov 2016 08:00:00 -0400 TOPICS: 4:00 Things that make web development more difficult 7:40 The developer experience with Angular 10:40 How cognitive cost affects the user experience 16:52 The variety of users for whom Mads’ software is built 22:14 Creating accessible javascript tools that aren’t immediately outdated 28:20 Why people shouldn’t be using dependency installers 34:00 Node updates QUOTES: “The massive introduction of new tools all the time is a big part of what makes web development harder.” -Mads Kristensen “I’m not a pretty pixels person, I’m a code and algorithms person.” -AJ O’Neill “I’m not hearing hype about people using HTTP2 to get those benefits, I’m only hearing hype around tools that Static built.” -AJ O’Neill PICKS: Death Note Anime Show JS Remote Conference The Alloy of Law Book by Brandon Sanderson Zig Zigler Books on Audible Mr. Robot TV Show RESOURCES & CONTACT INFO: Mads on Twitter Mads’ Website Full Article
wit 237 JSJ CLls - Ember Angular and React with Tracy Lee By devchat.tv Published On :: Wed, 09 Nov 2016 08:00:00 -0500 TOPICS: 3:57 The exciting facets of CLI’s 8:25 Advantages of CLI projects 11:25 Coding in RAILS 14:18 Disagreeing with conventions encoded in a CLI 19:30 How REACT CLI functions 20:43 Is Ember cheating by using REACT CLI? 26:52 Which CLI is easiest to use 29:00 How to add commands to a CLI 34:00 The future of current CLI’s 35:30 How well CLI’s are working for their respective communities 37:00 The impact of WebPac PICKS: “How Break Points are Set” Hacker News Article Chocolate Mint Tea Ten Things Wise Parents Know Book Strong Fathers, Strong Daughters Book Boys Should Be Boys Book “How Half of America Lost its Effing Mind” Blog Post Elementary TV Show Recommendation Form for Topics and Guests Amazon Smile Angular Cruise Sweet Licorice Mint Tea by Choice Organic Teas Van’s Nintendo Sneakers RESOURCES AND CONTACT INFO: Tracy's E-mail Full Article
wit 238 JSJ Intellectual Property and Software Forensics with Bob Zeidman By devchat.tv Published On :: Wed, 16 Nov 2016 08:00:00 -0500 TOPICS: 03:08 The level of difficulty in determining code creators on the Internet 04:28 How to determine if code has been copied 10:00 What defines a trade secret 12:11 The pending Oracle v Google lawsuit 25:29 Nintendo v Atari 27:38 The pros and cons of a patent 29:59 Terrible patents 33:48 Fighting patent infringement and dealing with “patent trolls” 39:00 How a company tried to steal Bob Zeidman’s software 44:13 How to know if you can use open source codes 49:15 Using detective work to determine who copied whom 52:55 Extreme examples of unethical behavior 56:03 The state of patent laws PICKS: Cognitive Bias Cheat Sheet Blog Post Bagels by P28 Foods Let’s Encrypt Indigogo Generosity Campaign Super Cartography Bros Album MicroConf 2017 MindMup Mind Mapping Tool Words with Friends Game Upcoming Conferences via Devchat.tv Good Intentions Book by Bob Zeidman Horror Flick Book by Bob Zeidman Silicon Valley Napkins Full Article
wit 239 JSJ Vets Who Code with Jerome Hardaway By devchat.tv Published On :: Wed, 23 Nov 2016 08:00:00 -0500 00:55 - Introducing Jerome Hardaway Vets Who Code Ruby Rogues Podcast Facebook Twitter Instagram 02:10 - Spouses and dependants of Vets Who Code 06:55 - Accepting and rejecting applicants 10:10 - The GI Bill Operation Code Dreamforce 15:45 - Military language and coding 18:20 - PTSD, trauma, and coding 21:10 - Moving past the veteran stigma 25:45 - Military backgrounds as an asset for jobs 30:45 - The future of Vets Who Code 32:35 - How much does it cost to be part of the program? General Assembly 36:15 - Is it easier or harder for Vets to get hired? 39:15 - Stories and memories 42:30 - Contributing to Vets Who Code Contact hello@vetswhocode.io to become a mentor Donate: https://vetswhocode.kindful.com/ SwearJar Hiring managers please contact Jerome@vetswhocode.io Picks: Soft Skills Engineering Podcast (Dave) Soft Skills Engineering Twitter (Dave) Awesome Algorithms Github list (Aimee) “The Churn” blog post by Bob Martin (Aimee) The 12 Week Year by Brian P. Moran and Michael Lennington (Charles) Vets Who Code (Jerome) Practical Javascript (Jerome) Full Article
wit 240 JSJ Visual Studio Code with Chris Dias By devchat.tv Published On :: Wed, 30 Nov 2016 08:00:00 -0500 Previous Episodes with Visual Studio Code’s Team: JSJ Episode 199, Visual Studio Code with Chris Dias and Erich Gamma JSJ Episode 221, Visual Studio Code with Wade Anderson 1:45 - What’s new at Visual Studio Code Visual Studio Code’s Twitter VS Code Github Chris Dias’ Twitter Chris Dias’ Github 3:42 - Confusion with Javascript versus separate languages 7:15 - Choosing your tools carefully 8:20 - Integrated shell and docker extensions 12:05 - Agar.io Extensions and extension packs 16:15- Deciding what goes into Visual Studio Code and what becomes an extension 18:20 - Using Github Issues and resolving user complaints 22:08 - Why do people stray away from VS proper? 23:10 - Microsoft and VS legacy 27:00 - Man hours and project development 31:30 - The Visual Studio default experience 37:10 - What are people writing with VS Code? 39:20 - Community versus developer views of VS Code 41:40 - Using Electron 44:00 - Updating the system 44:50 - How is Visual Code written? 48:00 - The future of Visual Code Studios https://github.com/microsoft/vscode/issues Picks: Don McMillan (AJ) Daplie Wefunder (AJ) Daplie (AJ) Facebook feed blocker plug-in (Charles) Tab Wrangler (Charles) Smart Things (Chris) Wood Pizza Ovens (Chis) PJ Mark, Chris’ friend and marketer (Chris) Full Article
wit 241 JSJ Microsoft Docs with Dan Fernandez By devchat.tv Published On :: Wed, 07 Dec 2016 08:00:00 -0500 0:55 - Dan Fernandez and his work Microsoft Docs Twitter 7:50 - Walkthrough of the doc experience 15:00 - Editable nature of the doc 21:00 - Test driving a language 26:30 - Catering to the user 32:30 - Open Source 34:40 - User feedback 37:30 - Filters and Tables of Content 40:45 - Form submissions 41:50 - Community contributors Picks: Ghostbusters (AJ) Daplie (AJ) Daplie Wefunder (AJ) .NET Rocks (Charles) ScheduleOnce (Charles) Devchat.tv 2017 Conferences (Charles) Disable HTML5 Autoplay (Dan) Visual Studio Code (Dan) JSJ episode Visual Studio Code with Chris Diaz and Eric Gamma (Charles) Full Article
wit 242 JSJ Visual Studio and .NET with Maria Naggaga By devchat.tv Published On :: Wed, 14 Dec 2016 08:00:00 -0500 1:15 - Introducing Maria Naggaga .NET Twitter 2:32 - .NET new developers 3:55 - NYC Microsoft bootcamp 6:25 - Building a community of .NET programmers 7:25 - Why would a Javascript developer care about .NET? 9:30 - Getting started with .NET 15:50 - The power of asking questions 22:45 - Recruiting new programmers to the industry @bitchwhocodes Seattle.rb 37:00 - Javascript and C# 48:30 - Running .NET on Raspberry Pi Picks: Super Cartography Bros album by OverClocked ReMix (AJ) Daplie (AJ) Daplie Wefunder (AJ) The Eventual Millionaire (Charles) Devchat Conferences (Charles) 15- Minute Calls (Charles) Codeland Conference (Maria) March by Congressman John Lewis (Maria) Microsoft Virtual Academy (Maria) Full Article
wit 243 JSJ Immutable.js with Lee Byron By devchat.tv Published On :: Wed, 21 Dec 2016 08:00:00 -0500 1:05 - Introducing Lee Byron Ruby Rogues episode 1:55 - Immutable.js 4:35 - Modifying data and operations using Immutable.js 7:40 - Explaining Big-O notation in layman’s terms 11:30 - Internal tree structures and arrays 15:50 - Why build with Immutable.js? 23:05 - Change detection with a mutable 25:00 - Computer science history 34:35 - Other positives to using mutables 37:50 - Flux and Redux 39:50 - When should you use a mutable? 46:10 - Using Immutable.js instead of the built-in Javascript option 51:50 - Learning curves and learning materials Docs 54:50 - Bowties Knotty Co Picks: Contractor by Andrew Ball 17 Hats (Charles) Asana (Charles) Call of Duty Infinite Warfare (Joe) LEGO Star Wars (Joe) Advent of Code (Lee) Full Article
wit 244 JSJ Visual Studio with Sam Guckenheimer By devchat.tv Published On :: Wed, 28 Dec 2016 08:00:00 -0500 1:05 - Introducing Sam Guckenheimer Twitter Microsoft Devops 2:45 - Continuous integration with Visual Studio 4:15 - Visual Studio on Macs Download link 5:55 - Is Visual Studio just for C#? Chris Dias JSJ Episode 8:45 - Container support and the Cloud 14:20 - Docker and Visual Studio 17:40 - Communicating with multiple services 24:15 - Talking to clients about change and working with transformation 33:00 - Telemetry and collecting data 37:50 - Xamarin forms 47:50 - Deployment with changed endpoints Picks: Daplie Wefunder (AJ) Unroll.Me (Charles) Focused Inbox on Outlook (Sam) WhiteSource (Sam) The Girl On The Train (Sam) The Pigeon Tunnel by John le Carre (Sam) Full Article
wit JSJ 245 Styled Components and react-boilerplate with Max Stoiber By devchat.tv Published On :: Tue, 17 Jan 2017 06:00:00 -0500 On today's episode, Aimee and Chuck welcome Maximillian "Max" Stoiber to the show. Max hails from Austria and is an expert in open source development at Think Mill. Tune in to JSJ 245 Styled Components and React-Boilerplate with Max Stoiber. Full Article
wit JSJ 246 GraphQL and Apollo with Uri Goldshtein By devchat.tv Published On :: Tue, 24 Jan 2017 06:00:00 -0500 On today's episode, Charles Max Wood and Aimee Knight discuss GraphQL and Apollo with Uri Goldshtein. Uri is a core developer at Meteor Development Group, and is an expert with GraphQL and Apollo. Full Article
wit JSJ 247 Building a Development Environment with Cory House By devchat.tv Published On :: Tue, 31 Jan 2017 06:00:00 -0500 On today's episode, Charles Max Wood, AJ O'neal, Joe Eames, and Aimee Knight discuss Building a Development Environment with Cory House. Pluralsight recently added a course on this. Tune in to know more! Full Article
wit JSJ 248 Reactive Programming and RxJS with Ben Lesh By devchat.tv Published On :: Tue, 07 Feb 2017 06:00:00 -0500 On today's episode, Charles Max Wood, Joe Eames, and Tracy Lee discuss Reactive Programming and RxJS with Ben Lesh. Ben works at Netflix and also has a side job for Rx Workshop with Tracy. He is the lead author of RxJS 5. Tune in to learn more about RxJS! Full Article
wit JSJ 249 Loading and Optimizing Web Applications with Sam Saccone and Jeff Cross By devchat.tv Published On :: Tue, 14 Feb 2017 06:00:00 -0500 On today's episode, Charles Max Wood, Joe Eames, and Aimee Knight discuss Loading and Optimizing Web Applications with Sam Saccone and Jeff Cross. Tune in to their interesting talk, and learn how you can improve user experience and performance with better loading! Full Article
wit JSJ 251 InfoSec for Web Developers with Kim Carter By devchat.tv Published On :: Tue, 21 Feb 2017 05:00:00 -0500 On today's episode, Charles Max Wood and Aimee Knight discuss InfoSec for Web Developers with Kim Carter. Kim is a senior software engineer/architect, an information security professional, and the founder of binarymist.io. He is currently working on his book called Holistic InfoSec for Web Developers. Tune in to learn more on what his book is all about. Full Article
wit JSJ 252 The 20th Anniversary of Visual Studio with Bowden Kelly By devchat.tv Published On :: Tue, 07 Mar 2017 06:00:00 -0500 Javascript Jabber is hosted this week by Joe Eames, Aimee Knight, AJ O'Neal, Cory House, Charles Max Wood and their special guest Bowden Kelly. Bowden is a program manager at Microsoft and he shares some insight into the new features in Visual Studio 2017 RTM with Bowden Kelly. Full Article
wit JSJ 253 Gomix with Daniel X Moore By devchat.tv Published On :: Tue, 14 Mar 2017 06:00:00 -0400 On today's JavaScript Jabber Show, Aimee Knight, Cory House, and Charles Max Wood discuss Gomix with Daniel X Moore. Daniel is a Software Developer at Fog Creek Software, and has been in the industry for 10 years. Their company currently offers an amazingly convenient way to build apps. Tune in to learn about it! Full Article
wit JSJ Special Episode: Azure with Jonathan Carter By devchat.tv Published On :: Fri, 17 Mar 2017 07:00:00 -0400 On today's episode, Aimee Knight, AJ O'Neal, Cory House, Joe Eames, and Charles Max Wood discuss Azure with Jonathan Carter. Jonathan has been working at Microsoft for 10 years. He currently focuses on Node.js and Azure. Tune in to learn how you can use Azure in building applications and services. Full Article
wit JSJ 254 Contributor Days with Tracy Lee By devchat.tv Published On :: Tue, 21 Mar 2017 07:00:00 -0400 On today's JavaScript Jabber Show, Aimee Knight and Charles Max Wood discuss Contributor Days with Tracy Lee. Tracy is a Google Developer Expert and a co-founder of This Dot Media and This Dot Labs. She's passionately into helping startups create a connection with investors. Part of what she's been up to lately is what this episode is about. Tune in to learn about it! Full Article
wit JSJ 255 Docker for Developers with Derick Bailey By devchat.tv Published On :: Tue, 28 Mar 2017 06:00:00 -0400 On today's JavaScript Jabber Show, Charles Max Wood, AJ O'neal, Aimee Knight, Joe Eames, and Cory House discuss Docker for Developers with Derick Bailey. Derick is currently into Docker and has been doing a series on it at WatchMeCode. He is also writing an ebook titled Docker Recipes for Node.js Development which aims to provide solutions for things that concern Node.js. Stay tuned to learn more about Docker and the ebook which Derick is working on! Full Article
wit JSJ 256 Wordpress and Wordpress API for JavaScript Developers with Roy Sivan By devchat.tv Published On :: Tue, 04 Apr 2017 06:00:00 -0400 On today's JavaScript Jabber Show, Charles, Aimee, Joe, and Cory discuss Wordpress and Wordpress API for JavaScript Developers with Roy Sivan. Roy is a WordPress (WP) developer at Disney Interactive. He has long been a fan of JavaScript and WP. During a WordCamp, the WP Founder announced the need for WP developers to learn JavaScript. But, what's in WP that developers should be interested about? Tune in to learn! Full Article
wit JSJ 257 Graphcool with Johannes Schickling By devchat.tv Published On :: Tue, 11 Apr 2017 06:00:00 -0400 On today's JavaScript Jabber Show, Charles, Aimee, and AJ discuss Graphcool with Johannes Schickling. Johannes is based in Berlin, Germany and is the founder of Graphcool, Inc. He also founded Optonaut, an Instagram for VR, which he sold about a year ago. Tune in to learn more about GraphQL and see what's in store for you! Full Article
wit JSJ 258 Development in a Public Institution with Shawn Clabough By devchat.tv Published On :: Tue, 18 Apr 2017 06:00:00 -0400 On today's JavaScript Jabber Show, Charles and Aimee discuss Development in a Public Institution with Shawn Clabough. Shawn is a developer and developer manager at Washington State University. He works with the research office, and has been in the industry for 20 years. Tune in to this exciting episode! Full Article
wit JSJ 259 Clean Code JavaScript with Ryan McDermott By devchat.tv Published On :: Tue, 25 Apr 2017 06:00:00 -0400 On today's JavaScript Jabber Show, Charles, Joe, Aimee, Cory, and AJ discuss Clean Code JavaScript with Ryan McDermott. Ryan is a UX Engineer at Google and has been a professional developer for 5 years. He's focused on frontend Angular and backend node.js. Stay tuned to learn more about his current project with JavaScript! Full Article
wit JSJ 260 Practical JavaScript with Gordon Zhu By devchat.tv Published On :: Tue, 02 May 2017 06:00:00 -0400 On today's episode, Charles, Joe, and Cory discuss Practical JavaScript with Gordon Zhu. Gordon is the founder of Watch and Code, and teaches the Practical JavaScript online course. His mission is to help beginners become developers through tutorials. Tune in! Full Article
wit JSJ 261 HTTP 2 with Surma By devchat.tv Published On :: Tue, 09 May 2017 06:00:00 -0400 On today's episode, Charles, Aimee, and Cory discuss HTTP 2 with Surma. Alongside being part of the Chrome DevRel Team for Google, Surma works on different web app performance. He is also engaged in HTTP 2, interaction, UX, and spec work. Stay tuned to discover what HTTP 2 can do for you! Full Article
wit JSJ 262 Mozilla Firefox Developer Tools with Jason Laster By devchat.tv Published On :: Tue, 16 May 2017 06:00:00 -0400 Join AJ, Aimee, and Joe as they discuss Mozilla Firefox Developer Tools with Jason Laster. Jason just started working at Mozilla since March. But even before that, he has been working on Chrome's dev tool extension called Marionette. That's when he discovered that the browser is an open source that anyone can play with. Now, he is working on a new debugger in Firefox. Tune in! Full Article
wit JSJ 263 Moving from Node.js to .NET and Raygun.io with John-Daniel Trask By devchat.tv Published On :: Tue, 23 May 2017 06:00:00 -0400 This episode features Moving from Node.js to .NET and Raygun.io with John-Daniel Trask. John-Daniel is the Co-founder and CEO of Raygun, a software intelligence platform for web and mobile. He's been programming for many years, and is originally from New Zealand. Tune in and learn what prompted them to move to the .NET framework! Full Article
wit JSJ 264 Mendel with Irae Carvalho By devchat.tv Published On :: Thu, 08 Jun 2017 23:22:00 -0400 Full Article
wit JSJ 266 NPM 5.0 with Rebecca Turner By devchat.tv Published On :: Tue, 20 Jun 2017 06:00:00 -0400 On today’s episode of JavaScript Jabber, Charles Max Wood and panelist Joe Eames chat with Rebecca Turner, tech lead for NPM, a popular Javascript package manager with the worlds largest software registry. Learn about the newly released NPM 5 including a few of the updated features. Stay tuned! [1:58] Was the release of node JS 8 tied to NPM5? Features in NPM5 have been in planning for 2 years now. Planned on getting it out earlier this year. Node 8 was coming out and got pushed out a month. Putting NPM5 into Node 8 became doable. Pushed really hard to get NPM5 into Node 8 so that users would get NPM5 and updates to NPM5. [2:58] Why would it matter? NPM doesn’t care right? Right you can use NPM5 with any version of node. Most people don’t update NPM, but upgrade Node. So releasing them together allowed for when people updated Node they would get NPM 5. [3:29] How does the upgrade process work if you’re using NVM or some node version manager? Depends. Different approaches for each NVM gets a fresh copy of Node with new globals. NVM5 and Node 8 are bundled. For some, If you manually upgrade NVM you’ll always have to manually. It will keep the one you manually upgraded to. [4:16] Why NPM 5? It’s night and day faster. 3 to 5 times speed up is not uncommon. Most package managers are slow. NPM 5 is still growing. Will get even faster. [5:18] How did you make it faster? The NPM’s cache is old. It’s very slow. Appalling slow. Rewrote cache Saw huge performance gains [5:49] What is the function of the cache? Cache makes it so you don’t have to reinstall modules from the internet. It has registry information too. It will now obey http headers for timing out cache. [6:50] Other things that made it faster? Had a log file for a long time. It was called shrinkwrap. NPM 5 makes it default. Renamed it to packagelog.json Exactly like shrinkwrap package file seen before In combo with cache, it makes it really fast. Stores information about what the tree should look like and it’s general structure. It doesn’t have to go back and learn versions of packages. [7:50] Can you turn the default Packagelog.json off? Yes. Just: Set packagelog=false in the npmrc [8:01] Why make it default? Why wasn’t it default before? It Didn’t have it before. Shrinkwrap was added as a separate project enfolded in NPM and wasn’t core to the design of NPM. Most people would now benefit from it. Not many scenarios where you wouldn’t want one. Teams not using the same tools causes headaches and issues. [9:38] Where does not having a lock show up as a problem? It records the versions of the packages installed and where NPM put them so that when you clone a project down you will have exactly the same versions across machines. Collaborators have the exact same version. Protects from issues after people introduce changes and patch releases. NPM being faster is just a bonus. Store the sha512 of the package that was installed in the glock file so that we can verify it when you install. It’s Bit for bit what you had previously. [11:12] Could you solve that by setting the package version as the same version as the .Json file? No. That will lock down the versions of the modules that you install personally, not the dependancies, or transitive dependancies. Package log allows you to look into the head of the installer. This is what the install looks like. [12:16] Defaulting the log file speed things up? How? It doesn’t have to figure out dependences or the tree which makes it faster. Shrinkwrap command is still there, it renames it to shrinkwrap but shrinkwrap cannot be published. For application level things or big libraries, using shrinkwrap to lock down versions is popular. [13:42] You’ve Adopted specifications in a ROC process. When did you guys do that? Did it in January Have been using them internally for years. Inviting people into the process. Specifications Written in the form of “Here is the problem and here are the solutions.” Spec folder in NPM docs, things being added to that as they specify how things work. Spec tests have been great. [14:59] The update adds new tools. Will there be new things in registry as well? Yes. Information about a package from registry, it returns document that has info about every version and package json data and full readme for every version. It gets very large. New API to request smaller version of that document. Reduces bandwidth, lower download size, makes it substantially faster. Used to be hashed with sha1, With this update it will be hashed with sha512 as well as sha1 for older clients. [16:20] Will you be stopping support for older versions? LTS version of NPM was a thing for a while. They stopped doing that. Two models, people either use whatever version came with Node or they update to the latest. The NPM team is really small. Hard to maintain old NPM branches. Supports current versions and that’s pretty much it. If there are big problems they will fix old versions. Patches , etc. [17:36] Will there ever be problems with that? Older versions should continue to work. Shouldn’t break any of that. Can’t upgrade from 0.8. It does break with different Node version Does not support Node versions 0.10 or 0.12. [18:47] How do you upgrade to NPM? sudo npm install -gmpm Yes, you may not need sudo. depend on what you’re on. [19:07] How long has it been since version 4? Last October is when it came out. [19:24] Do you already have plans for version 6? Yes! More releases than before coming up. Finally deprecating old features that are only used in a few packages out of the whole registry. Running tests on getting rid of things. [20:50] Self healing cache. What is it and why do we want it? Users are sometimes showing up where installs are broken and tarbols are corrupted. This happens sometimes with complicated containerization setups makes it more likely. It’s unclear where the problem actually is. CaCache - content addressable cache. Take the hash of your package and use it to look up address to look it up in the cache. Compares the Tarbol using an address to look it up in the cache. Compares to see if it’s old. Trashes old and downloads updated one. Came out with the cache. Free side effect of the new cache. [23:14] New information output as part of the update? NPM has always gave back you the tree from what you just installed. Now, trees can be larger and displaying that much information is not useful. User patch - gives you specifically what you asked for. Information it shows will be something like: “I installed 50 items, updated 7, deleted 2.” [24:23] Did you personally put that together? Yes, threw it together and then got feedback from users and went with it. Often unplanned features will get made and will be thrown out to get feedback. Another new things ls output now shows you modules that were deduped. Shows logical tree and it’s relationships and what was deduped. [25:27] You came up to node 4 syntax. Why not go to node 8? To allow people with just node 4 be able to use NPM. Many projects still run Node 4. Once a project has been deployed, people generally don’t touch it. [26:20] Other new features? What about the File Specifier? File specifier is new. File paths can be in package json, usually put inside pointing to something inside your package. It will copy from there to your node modules. Just a node module symlink. Much faster. Verifiable that what’s in your node modules matches the source. If it’s pointing at the right place it’s correct. If not, then it’s not. Earlier, sometimes it was hard to tell. [27:38] Anything else as part of the NPM 5 release? Who do you think will be most affected by it? For the most part, people notice three things: 1st. no giant tree at the end 2nd. Much faster 3rd. Package lock. [28:14] If it’s locked, how do you update it? Run npm installer and then npm update Used to be scary, but works well now. Updates to latest semver, matches semver to package json to all node modules. Updates package lock at the same time Summary in Git shows what’s changed. [28:59] Did Yarn come into play with your decisions with this release? The plans have been in play for a long time for this update. Yarn’s inclusion of similar features and the feedback was an indicator that some of the features were valuable. [29:53] Other plans to incorporate features similar to yarn? Features are already pretty close. There are other alternative package managers out there. PMPM interesting because when it installs it doesn’t copy all the files. It creates hard links. [30:28] Does PMPM and Yarn use NPM registry? Yes! Other than CNPM. The NPM client used in China. CNPM Registry mirror behind firewall. Have their own client to their registry. Their registry is a copy of ours. [31:15] What about RNPM? I wouldn’t be surprised. [31:45] “Won’t you come and say something controversial about your competitor?” We all want it to be collaborative. When we were writing our new cache, we also helped Yarn with their cache and sped things up tremendously. Picks Charles Rush Limbaugh’s children’s books Tinker Crate Kiwi Crate NPM Episodes on My JS Story. Joe Gravity Falls Board Games Rebecca NPX Funstream Links to keep up with NPM and Rebecca Twitter @rebeccaorg NPMjS on Twitter blog.npmjs.com Full Article
wit JSJ 267 Node 8 with Mikeal Rogers, Arunesh Chandra, and Anna Henningsen By devchat.tv Published On :: Tue, 27 Jun 2017 06:00:00 -0400 JSJ 267 Node 8 with Mikeal Rogers, Arunesh Chandra, and Anna Henningsen On today’s episode of JavaScript Jabber we have panelists Joe Eames, AJ O’Neil, Amiee Knight and Charles Max Wood and we are talking about Node 8. To help us we have special guests Mikeal Rodgers, Arunesh Chandra, and Anna Henningsen. It’s going to be a great show. Tune in. [1:56] Is Node 8 just an update or is there more? More than just an update Two main points: Improved Prana support Native API Native APIs are helpful for Native Add-ons. For both the consumer and the developer side. Prior to update these Node Native modules ran in C++ and bound to specific to Node 8 APIs. Causes these modules to be updated or reconciled every time these modules are rereleased. Creates burden for module maintainers. Creates friction in upgrading Node versions in production departments. If you have a deployment depending on a certain Native module, some of the modules may not get updated in time when updating your Node versions. Keeping people from updating Node. Creates compatibility issues with Node users not using Node 8 Experimental support for a Native layer in Node 8 to eliminate these issues as much as possible. Important milestone for the module ecosystem. You can write extensions for Node in C++ and it decouples V8 so you can use something else on the front. Modules takes dependency on V8 API specific to a particular version. So if V8 changes your module will be extracted from that. As a side benefit, you can have another VM to take advantage of that. Major version upgrades mean updating Native modules and usually some of those modules haven’t updated to the newest version of Node and be complicated. Deep dependency wise, about 30% depends on a Native module somewhere In the future, with the Native API, you’ll be able to update Node without breaking modules. [5:51] What kind of work went into this? Most of the work was in C++ First thing that was done was, they looked at the top dependent Native modules in the ecosystem. Looked for what kind of V8 exposure they had and cataloged it Looked at how these APIs and what their purposes were Looked for a way to extract them so that they are part of Node Core Created neutral APIs, now part of the Node core. All C APIs Also has a C++ wrapper to improves usability of the API. [7:17] What’s an example of what you can do with these APIs? Native modules allows for tighter integration and better module performance Specific APIs that you can use in V8 that isn’t available through JavaScript If you have a C++ variable code and you want to expose a variable into JavaScript, that is V8 API note a Node 8 API Having it bound directly to the VM was something they wanted for a long time Google controls V8 and they bind to V8 Created a better relationship with Google starting in IOJS Also worked with Microsoft with their Node Shocker work. Same with SpiderMonkey SpiderNode is in the works [9:23] Have you guys done any testing for performance? Some. There is a performance working group. There is a need to stay on top of V8 V8 team has focused on new language features Many features have been added over the years Many didn’t come in optimized The performance profile has changed with these features If you’re using new language features, you will see a performance boost In core, still tracking down code that was specific to the old optimizer and rewriting i to work the new optimizer Turbo C compiler hasn’t landed yet, but is to come. Will have a completely different performance profile In most real world applications it will be faster Waiting on the release to take a version of V8 to make it easier to upgrade features in the future [11:28] Are the new features picked up from V8 or implemented in Node? It’s all in V8 Better longterm support Promises are made better in Node as a platform Added new method called util.promisify() Implementation comes from V8 Allows for more optimization for promises in Node core Promise support for the one-deprecated domains module. [13:02] Is there anything more than NMP 5? First off, delete your NMP cache. It’s in your home directory usually with a .npm extension [14:09] What are the new features in V8? Unlimited heap sizes, previously had a 4gb limit. No fixed limit. [14:09] Will you see things like chakra come out tuned for servers? Profiles of a server for application process are getting smaller Getting cut into containers and VMs and micro services Vms that have cold boot time and run quickly in a strained environment is looking more like what we will see in the future Yes, especially if you’re using cloud functions V8 is optimized for phones, but Chakra is even more so Looking for opportunities for VMs can be solely optimized for a device target Node take advantage of that VM VM neutrality is an interesting concept VM Vendors trying to optimize it based on workloads of a server Opens opportunities for Node Node Chakra has been proved to iOS. You can cut off jitting off which was a requirement to be able to be in the Apple App Store Node is not just for servers anymore Node doesn’t take a long time configuring it When a developer runs code on an IoT or a mobile app they don’t control the VM that is bundled, they run it on top of Node and it just works. VM neutrality gives a new vector, so you can swam a whole different VM [18:44] When running different engines like iOS vs Android, does the profile change? What it comes down to is if it’s eventive programming The browser is an eventive environment, is very efficient waiting for things to happen before it does something The way that we program servers and nodes are the same as well the basics are the same generally environmental differences exist but the programming model is usually the same What does impact it is memory and processor and hardware and things like that That is where tuning the VM comes into play [20:29] What is the new Async Hooks API used for? Node has been lacking for automated inspection of Async Hook No way for Node to tell you when scheduling and beginning of an Async operation. Hook helps with that it’s a way for developers to write debugging features Node tells the application that it’s working with Asynchronous way. The embedded inspector has been embedded since Node 6 Now has a JavaScript API to use it You can use things like Chrome debugger inside the running node process Old debugging protocol has been removed VM.run is still there but in the process of being deprecated [22:34] How like is the experimental Node API will change? Marked as experimental because it’s the first time in the open Hopefully out of experimental soon Soon can port API to the existing LTS Looking for more people to participate with the new API and give feedback Fix any concerns before it goes to LTS Some other experimental things are in the works like ASync Hooks and how it interacts with promises Renaming some features Another new feature - serializer and deserializer that comes with V8 experimental but will most likely stay [25:31] what is your standard for going to LTS? Major releases every 6 months Next Oct Node 9 will come out and then Node 8 will be LTS Documentation, updates, additions etc will be ready then Plan to do it for 2.5 years Every even releases come out to LTS as the odd release comes out Helps keeps a current line while having something new in the release line Node 6 is the current LTS version [27:26] What are you taking out or deprecating in Node 8? Use the word deprecate sparingly If many people use features, it’s hard to get rid of Security issue with Buffer, constructor argument was ambiguous Had added APIs that were more explicit over time and pushed those Now it will be deprecated [28:43] 21% - 33% Performance increase with some Node updates Someone online updated their React app to Node 8 and found an 21% - 33% increase Benchmarking group tests to make sure things are getting faster V8 is always getting faster as well Code changes fast and so there is a chance performance slows down so they have people to check Benchmark test are all automated by a team [30:47] Is it safe to just switch to Node 8? For front-end, yes clear your NPM cache Back use cases will usually wait until LTS [31:28] Where any of the features hard to implement? The API work took about a year It was a collaboration which made it interesting IBM, Intel, Google were involved The collaboration took a while Also Async hooks took at least a year. Async hooks used to be called async wraps and has been in the work for almost 3 years many of the changes were the accumulation of small chances [33:07] It’s the little things Letting people get small changes in accumulate into a big difference the product gets much better that way [33:57] What versions of Node are you actively updating? Current releases of Node 8 for a half of year Node 6 is LTS Additional year of maintenance of previous LTSs. Schedule is at http://github.com/node8js/lts in a chart Support for Node 4 with only critical updates, Node 6 minor updates, and Node 8 Node 7 doesn’t get much support unless it’s vital security supports. If you’re running 0.10 or 0.12 stop. Those do not get security fixes anymore [35:42] Where do you see things going from here? Mostly still working out Async hooks Maybe add some web worker or worker support for Node JS ES module support Working to make promises better Working on the performance profile and internal systems [20:29] What is the adoption like of Node 8? Node team gets better at getting people to adopt quickly but about 5% - 6% will not upgrade community doubles each year at 8 million users right now Here is a graph on Twitter posted by NPM Limiting breaks and softly deprecating things makes it’s easier to upgrade [40:11] How can people contribute and get involved? NodeToDo.org shows how to make contribution Occasionally major conferences have information on how to contribute Test it out and help make it stronger [42:08] If people install Node 8 and have issues what can they do? If it’s an NPM problem check with them clear cache! install newest version with: npm install -g npm@latest Report problems to either NPM or Node If you’re not sure where the problem is, check github.com/nodejs/help Links Node8 Node’s Twitter Node’s Medium Node Evangelism Group Mikael on Twitter and GitHub Arunesh on Twitter Anna on Twitter Picks AJ Overclocked Remix Super Mario RPG Window to The Stars Amiee Blogpost RisingStack on Node 8 2 Frugal Dudes Charles Homeland House of Cards Joe Shimmer Lake Mikael Blake2b-wasm Aremesh Current Nightly News Full Article
wit JSJ 268 Building Microsoft Office Extensions with JavaScript with Tristan Davis and Sean Laberee By Published On :: Tue, 04 Jul 2017 06:00:00 -0400 JSJ 268 Building Microsoft Office Extensions with Javascript with Tristan Davis and Sean Laberee This episode is live at the Microsoft Build 2017 with Charles Max Wood and AJ O’Neal. We have Tristan Davis and Sean Laberee from the Office Team at Microsoft. Tune in and learn more about what’s new with Microsoft Office Extensions! [00:01:25] – Introduction to Tristan Davis and Sean Laberee Tristan Davis and Sean Laberee are Program Managers on the Microsoft Office team, focused on Extensibility. Questions for Tristan and Sean [00:01:45] – Extending Office functionality with Javascript Office isn’t just an application on Windows that runs on your PC. It is running on iPhone, iPad, Android tablet, and apps on the browser with Office Online. The team needs a new platform, add-ins, which allow you to build apps that run across all places. It’s HTML and Javascript. HTML for all the UI and a series of Javascript module calls for the document properties. Sometimes we call it OfficeJS. [00:03:20] – This works on any version of Office? It works on Office on Windows, Mac, Online and iPad. [00:03:55] – HTML and CSS suck on mobile? There are things that you’re going to want to do when you know you’re running on a mobile device. If you look at an add-in running on Outlook for iPhone, the developer does a lot of things to make that feel like part of the iPhone UI. Tristan believes that you could build a great add-in for Office using HTML and JavaScript. [00:05:20] – Are these apps written with JavaScript or you have a Native with WebView? Office itself is Native. All of it is Native code but the platform is very much web. The main piece of it is pointing at the URL. Just go load that URL. And then, you can also call functions in your JavaScript. [00:06:35] – Why would you do this? How does it work? The add-in platform is a way to help developers turn Word, Excel and PowerPoint into the apps that actually solve user’s business problems. The team will give you the tools with HTML and JavaScript to go and pop into the Word UI and the API’s that let you go manipulate the paragraph and texts inside of Word. Or in Excel, you might want to create custom formulas or visualizations. The team also let people use D3 to generate their own Excel charts. And developers want to extend Office because it’s where a lot of business workers spend their days 0 in Outlook, Teams, Word, Excel. [00:10:00] – How did this get delivered to them? There are 2 ways to get this delivered. One, there’s an Office Store. Second, if you go into Word, Excel, and PowerPoint, there’s a store button and you can see tons of integrations with partners. For enterprises, IT can deploy add-ins to the users’ desktops without having stress about deploying MSI’s and other software deployments that the web completely rids off. The add-ins make a whole lot of pain the past completely go away. [00:11:00] – Everybody in the company can use a particular plug-in by distributing it with Office? That’s right. You can go to Office 365 add-in experience. Here’s the add-in and you can to specific people or everyone who’s part of a group. For the developer’s perspective, if you have the add-in deployed to your client, you could actually push updates to the web service and your users get the updates instantly. It’s a lot faster turn-around model. [00:14:20] – What about conversations or bot integrations? There’s the idea of connectors at Teams. You can subscribe to this web book and it’ll publish JSON. When the JSON is received, a new conversation inside of Teams or Outlook will be created. For example, every time someone posts on Stack Overflow with one of the tags that team cares about, it posts on Outlook. It’s a great way to bring all the stuff. Rather than have 20 different apps that are shooting 20 different sets of notifications, it’s just all conversations in email, making do all the standard email things. And in the connector case, it’s a push model. The user could choose what notifications they want. You’d also learn things like bots. You can have bots in Teams and Skype. The users can interact with them with their natural language. [00:18:40] – How about authentication? As long as you’re signed into Office, you can call JavaScript API to give you an identity token for the sign in user and it will hand you a JWT back. That’s coming from Azure Active Directory or from whatever customer directory service. That’s standard. If you want to do more, you can take that identity token and you can exchange that for a token that can call Microsoft graph. This app wants to get access to phone, are you okay with that? Assuming the user says yes, the user gets a token that can go and grab whatever data he wants from the back-end. [00:20:00] – Where does it store the token? That’s up to the developer to decide how they want to handle that but there are facilities that make sure you can pop up a dialog box and you can go to the LO-flow. You could theoretically cache it in the browser or a cookie. Or whatever people think is more appropriate for the scenario. [00:20:55] – What does the API actually look like from JavaScript? If you’re familiar with Excel UI, you can look at Excel API. It’s workbook.worksheets.getItem() and you can pass the name of the worksheet. It can also pass the index of the worksheet. [00:22:30] – What’s the process of getting setup? There’s a variety of options. You can download Office, write XML manifest, and take a sample, and then, side loads it into Office. You can also do that through web apps. There’s no install required because you can go work against Office Online. In the Insert menu, there’s a way to configure your add-ins. There’s upload a manifest there and you can just upload the XML. That’s going to work against whatever web server you have set up. So it’s either on your local machine or up in the cloud. It’s as much as like regular web development. Just bring your own tools. [00:24:15] – How do you protect me as a plug-in developer? There’s an access add-in that will ask your permission to access, say, a document. Assume, they say yes, pipes are opened and they can just go talk to those things. But the team also tries to sandbox it by iframes. It’s not one page that has everybody’s plug-ins intermingle that people can pole at other people’s stuff. [00:27:20] – How do you support backward compatibility? There are cases where we change the behavior of the API. Every API is gated by requirement set. So if a developer needs access to a requirement set, he gets an aggregate instead of API’s that he can work with but it isn’t fixed forever. But it’s not at that point yet where we end up to remove things completely. In Office JS, we’ve talked about API’s as one JavaScript library but really, it’s a bootstrap that brings in a bunch of other pieces that you need. [00:30:00] – How does that work on mobile? Do they have to approve download for all components? You can download components by using the browser that the operating system gives. It’s another one of the virtues of being based on the web. Every platform that has a web browser can have JavaScript execution run-time. It allows for the way that their app guidelines are written. [00:33:15] – How about testing? It’s a place where there’s still have work to do. There’s a bunch of open-source projects that partners have started to do that. What they’ve done is they’ve built a testing library. Whatever the mock is, it's just a thing on Github. It is open-source friendly. So the team could be able to contribute to it. “Here’s an interesting test case for this API. I want to make sure that it behaves like this. [00:35:50] – Could you write it with any version for JavaScript e.g. TypeScript? A Huge chunk of the team is big TypeScript fans. They’ve done a lot of work to make sure that TypeScript experience is excellence. Type is basically a collection of typing files for TypeScript. There’s a runtime process that parses your TypeScript, gives you feedback on your code, and checks for errors. You can also run it in the background. There’s an add-in called Script Lab. Script Lab is literally, you hit the code button and you get a web IDE right there. You can go start typing JavaScript code, play with API’s, and uses TypeScript by default. It’ll just actually load your code in the browser, executes, and you can start watching. [00:39:25] – Are there any limitations on which JavaScript libraries you can pull in? There a no limitations in place right now. There are partners that use Angular. There are partners that are big React fans. If you’re a web dev, you can bring whatever preferences around frameworks, around tools, around TypeScript versus JavaScript. [00:45:20] – What’s the craziest thing you’ve seen done with this API? Battleship was pretty cool. There’s also Star Wars entering credits theme for PowerPoint. [00:46:40] – If a developer is building a plug-in and get paid for it, does Microsoft take credit for that? There are 2 ways that folks can do it. You can do paid add-ins to the store. Either you do the standard perpetual 99 cents or you can do subscriptions, where it’s $2.99/month. Tristan encourages that model because integrations are just a piece of some larger piece of software. But Microsoft is not in the business of trying to get you to pay me a little bit of 10 cents a dollar. It’s really in the business of making sure that you can integrate with Office as quickly as possibly can. When the users go to the store, they can use the same Microsoft account that you use to buy Xbox games or movies in the Xbox, Windows apps in the Windows store. [00:52:00] – The App Model If folks are interested in the app model, they should go to dev.office.com to learn more about it because that’s where all the documentation is. Check out our Github. Right there in the open, there’s the spec. Literally, the engineers who are coding the product are reading the same marked-down files in the same repo that you, as a developer, can come and look at. And you can comment. You can add issues like you could have a dialogue with that PM. Under the OfficeDev, you’ll find a tunnel repository that contains samples. Our docs are there. Picks AJ O'Neal Lithium Charles Max Wood Miracle Morning by Hal Erod Clean Code by Uncle Bob Martin Ketogenic diet Tristan Davis Amazon Echo Microbiome Sean Laberee Running Garmin watch Full Article
wit JSJ 269 Reusable React and JavaScript Components with Cory House By devchat.tv Published On :: Tue, 11 Jul 2017 06:00:00 -0400 JSJ 269 Reusable React and JavaScript Components with Cory House On today’s episode of JavaScript Jabber, we have panelists Joe Eames, Aimee Knight, Charles Max Wood, and playing the part of both host and guest, Cory House. Encourage your team to investigate reusable components, whether that’d be React, Angular, Vue, or Ember. Tune in! [00:01:35] – Overview We can finally write reusable components that it is really lightweight. It doesn’t take much framework-specific code to get things done. Around 3 years ago, the idea of web component standard was all front-end developers could share our components with each other whether someone is in Angular or React. Web components continue to be an interesting standard but people continue to reach for JavaScript libraries instead – React, Angular, Vue. [00:04:50] – Browser support issue The story in JavaScript libraries is easier. You have more power, more flexibility, more choices, and get superior performance, in certain cases, by choosing a JavaScript library over the standard right now. If you try to use the web components standard, you have to Polyfill-in some features so you can run things across browser. You also won’t get JavaScript features like intelligently splitting bundles and lazy load different components. Whether you’re in Angular or React, you have this model of putting your data in your curly braces. That setup is non-existent in standardized web components. You have to play the game of putting and pulling data into and out the DOM using DOM selectors. You actually take a step backward in developer ergonomics when you choose to leverage the platform instead. [00:07:50] – Polymer The reason that Polymer is useful is it adds some goodness on top of web components. One of those things is that it makes it easier to bind in data and not having to do things like writing a DOM query to be able to get your hands on this div and put this text inside of it. With Polymer, you can do something that feels more like Angular, where you can put in your curly braces and just bind in some data into that place. Polymer ends up adding some nice syntactic sugar on top of the web components standard just to make it easier to create web components. Polymer is also used to bundle in Polyfill for the features across browser. [00:14:20] – Standards are dead No. The standard itself has been embraced at different levels by different libraries. What you can see for the near future is popular libraries leveraging pieces of the web components platform to do things in a standard-spaced way. Effectively, Angular, Vue, Aurelia, are going to be abstractions over the web components standard. Arguably the most popular way to do components today is React. But React completely ignores the web components standard. When you look at React, you can’t see what piece of the web components standard would fundamentally make React a better component library. Cory can’t seem to run to anybody that is actually using the standard in production to build real applications. People continue to reach for the popular JavaScript libraries that we so often hear about. [00:17:05] – Libraries making reusable components There is a risk that it would have been a waste for people writing components on Angular, for React, for Vue. But it’s not necessarily safer writing on the web component standard when you have so few people leveraging that standard. There’s always the risk that that standard may shift as well. As an example, Cory’s team created approximately 100 reusable components in React. If they end up moving to a hot new library, the components are really just functions that take parameters and contain HTML. There is little there [00:21:20] – Why opt for reusable components Reusable components are inherently useful in a situation where you’re going to be doing something more than once. If you think about any work that you do as a software developer, we’d like to think that we’re coming in and creating new things but often it is groundhogs day. There are all sorts of opportunities for reuse. As a company, we want to encapsulate our forms in reusable components so it’s literally impossible for our software developers to do something that goes against our standard. That’s the power of reusable components. [00:31:20] – Rigid component vs. flexible component As component developers, if we try to create a reusable component in a vacuum, bad things happen. If you’re going to do a reusable component, start by solving a specific problem on a given application. If we think that a component’s going to be useful in multiple places, we put it in a folder called reusable right there in our application source folder. We try to follow that rule of three as well. If we’ve taken that component and used it in 3 places, that’s a good sign that we should extract it out, put it in our NPM package, that way, everybody has this centralized component to utilize. At that point, it has been tested. It’s been through the fire. People have used it in the real world in a few places so we can be confident that the API is truly flexible enough. Be as rigid as you can upfront. Once you add features, it’s really hard to take features away. But it’s quite easy to add features later. If you start with something rigid, it’s easier to understand. It’s easier to maintain and you can always add a few more switches later. [00:36:00] – Reusable components The reason that we can’t reuse code is every time a new project comes up, people are spending up their own ideas rather than leveraging standards that should have been put in place previously. We’ve had the technical ability to do this for a long time. We just haven’t been around long enough for consolidation to happen, for standardization to happen. You look at how quickly things are changing in our industry. For instance, a couple of years ago, everybody had pretty much decided that two-way binding was the way to build web applications. And then, React came along and shook that up. So today, you have different ways of thinking about that issue. [00:42:45] – Component development on teams Aimee’s team has component development and they’re using Angular 1.6. All of our base components are sitting in a seed application. We just go in when we want to create a new property and we just extend all of those components with specific functionalities that we need. [00:47:45] – Mobile to web crossover Cory’s team is creating React components but it’s not leveraged on a mobile application. But people use React Native components on the web. And in fact, if you use create-react-app today, you can do that right now. It’s wired up to work in React Native components. In that way, you can literally have these same components running on your Native mobile apps as you do on your web application. [00:50:00] – Challenge Cory’s challenge for everybody listening is sit down with your team and have a quick conversation about whether you think components make sense. Look back at the last few months of development and say, "if we have a reusable component library, what would be in it? How often have we found ourselves copying and pasting code between different projects? How much benefit would we get out of this story?" Once you’ve realized the benefits of the component model, both in the way that makes you think about your application, in a way that it helps you move faster and faster over time, I really think you won’t go back to the old model. I’d encourage people to investigate reusable components, whether that’d be React, Angular, Vue or Ember. Picks Cory House Creating Reusable React Components on Pluralsight Ted Talk: Why You Should Define your Fears Instead of Your Goals by Tim Ferriss Joe Eames UI-Router Persistence Aimee Knight Ask HN: People who completed a boot camp 3+ years ago, what are you doing now? NgAtlanta Charles Max Wood Upwork.com JSJ 269 Reusable React and JavaScript Components with Cory House On today’s episode of JavaScript Jabber, we have panelists Joe Eames, Aimee Knight, Charles Max Wood, and playing the part of both host and guest, Cory House. Encourage your team to investigate reusable components, whether that’d be React, Angular, Vue, or Ember. Tune in! [00:01:35] – Overview We can finally write reusable components that it is really lightweight. It doesn’t take much framework-specific code to get things done. Around 3 years ago, the idea of web component standard was all front-end developers could share our components with each other whether someone is in Angular or React. Web components continue to be an interesting standard but people continue to reach for JavaScript libraries instead – React, Angular, Vue. [00:04:50] – Browser support issue The story in JavaScript libraries is easier. You have more power, more flexibility, more choices, and get superior performance, in certain cases, by choosing a JavaScript library over the standard right now. If you try to use the web components standard, you have to Polyfill-in some features so you can run things across browser. You also won’t get JavaScript features like intelligently splitting bundles and lazy load different components. Whether you’re in Angular or React, you have this model of putting your data in your curly braces. That setup is non-existent in standardized web components. You have to play the game of putting and pulling data into and out the DOM using DOM selectors. You actually take a step backward in developer ergonomics when you choose to leverage the platform instead. [00:07:50] – Polymer The reason that Polymer is useful is it adds some goodness on top of web components. One of those things is that it makes it easier to bind in data and not having to do things like writing a DOM query to be able to get your hands on this div and put this text inside of it. With Polymer, you can do something that feels more like Angular, where you can put in your curly braces and just bind in some data into that place. Polymer ends up adding some nice syntactic sugar on top of the web components standard just to make it easier to create web components. Polymer is also used to bundle in Polyfill for the features across browser. [00:14:20] – Standards are dead No. The standard itself has been embraced at different levels by different libraries. What you can see for the near future is popular libraries leveraging pieces of the web components platform to do things in a standard-spaced way. Effectively, Angular, Vue, Aurelia, are going to be abstractions over the web components standard. Arguably the most popular way to do components today is React. But React completely ignores the web components standard. When you look at React, you can’t see what piece of the web components standard would fundamentally make React a better component library. Cory can’t seem to run to anybody that is actually using the standard in production to build real applications. People continue to reach for the popular JavaScript libraries that we so often hear about. [00:17:05] – Libraries making reusable components There is a risk that it would have been a waste for people writing components on Angular, for React, for Vue. But it’s not necessarily safer writing on the web component standard when you have so few people leveraging that standard. There’s always the risk that that standard may shift as well. As an example, Cory’s team created approximately 100 reusable components in React. If they end up moving to a hot new library, the components are really just functions that take parameters and contain HTML. There is little there [00:21:20] – Why opt for reusable components Reusable components are inherently useful in a situation where you’re going to be doing something more than once. If you think about any work that you do as a software developer, we’d like to think that we’re coming in and creating new things but often it is groundhogs day. There are all sorts of opportunities for reuse. As a company, we want to encapsulate our forms in reusable components so it’s literally impossible for our software developers to do something that goes against our standard. That’s the power of reusable components. [00:31:20] – Rigid component vs. flexible component As component developers, if we try to create a reusable component in a vacuum, bad things happen. If you’re going to do a reusable component, start by solving a specific problem on a given application. If we think that a component’s going to be useful in multiple places, we put it in a folder called reusable right there in our application source folder. We try to follow that rule of three as well. If we’ve taken that component and used it in 3 places, that’s a good sign that we should extract it out, put it in our NPM package, that way, everybody has this centralized component to utilize. At that point, it has been tested. It’s been through the fire. People have used it in the real world in a few places so we can be confident that the API is truly flexible enough. Be as rigid as you can upfront. Once you add features, it’s really hard to take features away. But it’s quite easy to add features later. If you start with something rigid, it’s easier to understand. It’s easier to maintain and you can always add a few more switches later. [00:36:00] – Reusable components The reason that we can’t reuse code is every time a new project comes up, people are spending up their own ideas rather than leveraging standards that should have been put in place previously. We’ve had the technical ability to do this for a long time. We just haven’t been around long enough for consolidation to happen, for standardization to happen. You look at how quickly things are changing in our industry. For instance, a couple of years ago, everybody had pretty much decided that two-way binding was the way to build web applications. And then, React came along and shook that up. So today, you have different ways of thinking about that issue. [00:42:45] – Component development on teams Aimee’s team has component development and they’re using Angular 1.6. All of our base components are sitting in a seed application. We just go in when we want to create a new property and we just extend all of those components with specific functionalities that we need. [00:47:45] – Mobile to web crossover Cory’s team is creating React components but it’s not leveraged on a mobile application. But people use React Native components on the web. And in fact, if you use create-react-app today, you can do that right now. It’s wired up to work in React Native components. In that way, you can literally have these same components running on your Native mobile apps as you do on your web application. [00:50:00] – Challenge Cory’s challenge for everybody listening is sit down with your team and have a quick conversation about whether you think components make sense. Look back at the last few months of development and say, "if we have a reusable component library, what would be in it? How often have we found ourselves copying and pasting code between different projects? How much benefit would we get out of this story?" Once you’ve realized the benefits of the component model, both in the way that makes you think about your application, in a way that it helps you move faster and faster over time, I really think you won’t go back to the old model. I’d encourage people to investigate reusable components, whether that’d be React, Angular, Vue or Ember. Picks Cory House Creating Reusable React Components on Pluralsight Ted Talk: Why You Should Define your Fears Instead of Your Goals by Tim Ferriss Joe Eames UI-Router Persistence Aimee Knight Ask HN: People who completed a boot camp 3+ years ago, what are you doing now? NgAtlanta Charles Max Wood Upwork.com Full Article
wit JSJ 270 The Complete Software Developers Career Guide with John Sonmez By devchat.tv Published On :: Tue, 18 Jul 2017 06:00:00 -0400 JSJ 270 The Complete Software Developers Career Guide with John Sonmez This episode features a panel of Joe Eames, AJ O’Neal, as well as host Charles Maxwell. Special guest John Sonmez runs the website SimpleProgrammer.com that is focused on personal development for software developers. He works on career development and improving the non-technical life aspects of software developers. Today’s episode focuses on John’s new book The Complete Software Developers Career Guide. Did the book start out being 700 pages? No. My goal was 200,000 words. During the editing process a lot of questions came up, so pages were added. There were side sections called “Hey John” to answer questions that added 150 pages. Is this book aimed at beginners? It should be valuable for three types of software developers: beginner, intermediate, and senior developers looking to advance their career. The book is broken up into five sections, which build upon each other. These sections are: - How to get started as a software developer - How to get a job and negotiate salary - The technical skills needed to know to be a software developer - How to work as a software developer - How to advance in career Is it more a reference book, not intended to read front to back? The book could be read either way. It is written in small chapters. Most people will read it start to finish, but it is written so that you can pick what you’re interested in and each chapter still makes sense by itself. Where did you come up with the idea for the book? It was a combination of things. At the time I wanted new blog posts, a new product, and a new book. So I thought, “What if I wrote a book that could release chapters as blog posts and could be a product later on?” I also wanted to capture everything I learned about software development and put it on paper so that didn’t lose it. What did people feel like they were missing (from Soft Skills) that you made sure went into this book? All the questions that people would ask were about career advice. People would ask things regarding: - How do I learn programming? - What programming language should I learn? - Problems with co-workers and boss - Dress code What do you think is the most practical advice from the book for someone just getting started? John thinks that the most important thing to tell people is to come up with a plan on how you’re going to become educated in software development. And then to decide what you’re going to pursue. People need to define what they want to be. After that is done, go backwards and come up with a plan in order to get there. If you set a plan, you’ll learn faster and become a valuable asset to a team. Charles agrees that this is how to stay current in the job force. What skills do you actually need to have as a developer? Section 3 of the book answers this question. There was some frustration when beginning as a software developer, so put this list together in the book. - Programming language that you know - Source control understanding - Basic testing - Continuous integration and build systems - What kinds of development (web, mobile, back end) - Databases - Sequel Were any of those surprises to you? Maybe DevOps because today’s software developers need to, but I didn’t need to starting out. We weren’t involved in production. Today’s software developers need to understand it because they will be involved in those steps. What do you think is the importance of learning build tools and frameworks, etc. verses learning the basics? Build tools and frameworks need to be understood in order to understand how your piece fits into the bigger picture. It is important to understand as much as you can of what’s out there. The basics aren’t going to change so you should have an in depth knowledge of them. Problems will always be solved the same way. John wants people to have as few “unknown unknowns” as possible. That way they won’t be lost and can focus on more timeless things. What do you think about the virtues of self-taught verses boot camp verses University? This is the first question many developers have so it is addressed it in the book. If you can find a good coding boot camp, John personally thinks that’s the best way. He would spend money on boot camp because it is a full immersion. But while there, you need to work as hard as possible to soak up knowledge. After a boot camp, then you can go back and fill in your computer science knowledge. This could be through part time college classes or even by self-teaching. Is the classic computer science stuff important? John was mostly self-taught; he only went to college for a year. He realized that he needed to go back and learn computer science stuff. Doesn’t think that there is a need to have background in computer science, but that it can be a time saver. A lot of people get into web development and learn React or Angular but don’t learn fundamentals of JavaScript. Is that a big mistake? John believes that it is a mistake to not fully understand what you’re doing. Knowing the function first, knowing React, is a good approach. Then you can go back and learn JavaScript and understand more. He states that if you don’t learn the basics, you will be stunted and possibly solve things wrong. Joe agrees with JavaScript, but not so much with things algorithms. He states that it never helped him once he went back and learned it. John suggests the book Algorithms to Live By – teaches how to apply algorithms to real life. Is there one question you get asked more than anything else you have the answer to in the book? The most interesting question is regarding contract verses salary employment and how to compare them. It should all be evaluated based on monetary value. Salary jobs look good because of benefits. But when looking at pay divided by the hours of work, usually a salary job is lower paid. This is because people usually work longer hours at salary jobs without being paid for it. What’s the best place for people to pick up the book? simpleprogrammer.com/careerguide and it will be sold on Amazon. The book will be 99 cents on kindle – want it to be the best selling software development book ever. Picks Joe Wonder Woman AJ The Alchemist Charles Artificial Intelligence with Python John Algorithms to Live by: The Computer Science of Human Decisions Apple Airpods Links Simple Programmer Youtube Full Article
wit JSJ 271: SharePoint Extensions in JavaScript with Mike Ammerlaan and Vesa Juvonen By devchat.tv Published On :: Tue, 25 Jul 2017 07:00:00 -0400 JSJ 271: SharePoint Extensions in JavaScript with Mike Ammerlaan and Vesa Juvonen This episode is a live episode from Microsoft Build where AJ O'Neal and Charles Max Wood interview Mike Ammerlaan and Vesa Juvonent about building extensions for SharePoint with JavaScript. [00:01:28] Mike Ammerlaan introduction Mike has worked at Microsoft for a long time on multiple Microsoft products and projects. He's currently on the Office Ecosystem Marketing Team. [00:01:52] Vesa Juvonen introduction Ves a is Senior Program Manager for the SharePoint Splat team. He's been with Microsoft for about 11 years and manages the community and documentation for the SharePoint framework. [00:02:18] What is the SharePoint Framework? This is how you write SharePoint extensions with JavaScript. SharePoint has changed. It now works with common modern development tools and web development techniques. SharePoint consolodates the extension effort [00:03:32] What is SharePoint? File sharing, team sites, communication points for teams. Part of Office 365. You use Web Parts to add functionality to SharePoint. Web Parts provide functionality like widgets and are scoped to a team, group, or set of users. It's usually hosted on premises, but you can also use it with Office 365 as a hosted solution. [00:05:56] What extensions can you build for SharePoint? You can build widgets for your front page or intranet. You can also add user management or data management or document management. Examples: Dashboards Mini Applications Scheduling and Time Tracking Document Storage Source code repositories [00:07:39] What is WebDAV and how does it relate? WebDAV is a protocol for accessing documents and SharePoint supports it among other protocols for managing documents. [00:08:36] Do I have to build front-end and back-end components to get full functionality? You can build the front-end UI with Angular and other frameworks. And then build a service in Azure on the backend. The backend systems can then access Line of Business systems or other data systems. It really does take multiple skill sets to build extensions for SharePoint. [00:11:10] SharePoint on Mobile There is a mobile web app and the Web Parts work through the mobile application. You can also use any browser to connect to the application. [00:12:08] Building extensions with standard Angular or React component libraries There are standard Yeoman templates. You can also pull in the components through React or Angular just like what Microsoft does. Newer Angular versions are designed for Single Page Apps and SharePoint isn't necessarily set up to work that way. The Web Parts are isolated from each other and Angular requires some workarounds. [00:14:30] Getting around sandboxing Google and Microsoft are talking to each other to see how to work around this when there are multiple sandboxed applications that can't talk to each other in very simple ways. [00:15:39] Application library or naming collisions if my UI uses different versions or clobber page wide settings There are guides for a lot of this. React does a bunch of the isolation work. Addons are iframed in and an API token is given to grant access to the data and APIs. Microsoft also reviews and approves plugins. [00:18:30] How do you get started and make money at this? Look at the SharePoint store. You can build things through websites and pages and offer the plugins through the store. You can request a SharePoint tenant installation from the Microsoft Dev Tools for free. Then you can build into the tenant site. The rest of the tools are available on npm. SharePoint Developer Tools [00:22:13] Automated testing for SharePoint extensions Unit testing is built in for JavaScript. Testing the UI's require you to sign into Office 365. There are people doing it, though. [00:22:54] Building internal-only extensions SharePoint is an enterprise tool, so a lot of enterprises may not want to install extensions from the store. You can definitely build and install private plugins for SharePoint setups. They also have their own backend systems that will require custom development. [00:25:50] Office 365, SharePoint, and OneDrive Office 365 is used by people across many different sized organizations and SharePoint is much more enterprise. Office 365 tools store files and information in SharePoint. What about OneDrive versus Sharepoint? OneDrive is focused for one person. SharePoint is focused around a team. But they have the same APIs and use the same technology stack. [00:29:05] The history and future of SharePoint It started out on premises and has moved to the cloud. The SharePoint team is working to keep it available and useful in the modern cloud based era. [00:30:25] What does the API footprint look like? It spans modifying lists, data objects, attributes, items in a list, put Web Parts on a page, modify the experience, and manage and modify access, users, and documents. SharePoint is a way of building a way of conveying information. SharePoint is layers of data and scopes. [00:35:26] Tutorials and Open Source dev.office.com The Sharepoint framework is not open source yet, but they're working on that. They also need to open source the Yeoman templates. Open source samples are available at github.com/sharepoint. Picks Charles Max Wood BlueTick Zapier ScheduleOnce Moo.com Advice: Take the time to go talk to people. Vesa adds that you should go to a session that's on something completely outside your experience. AJ O'Neal The Circle Spontaneity/Happiness: AJ tells a story about a woman he saw running through sprinklers. Oh the places you'll go by Dr. Seuss: AJ talks about a journal entry he read at a yard sale. Mike Ammerlaan Super hot VR on Oculus Rift Vesa Juvonen Family A big thanks to Microsoft, DotNetRocks, and Build! Full Article
wit JSJ 272: Functional Programming and ClojureScript with Eric Normand By devchat.tv Published On :: Tue, 01 Aug 2017 06:00:00 -0400 JSJ 272: Functional Programming and ClojureScript with Eric Normand This episode of JavaScript Jabber features panelists Aimee Knight and Charles Max Wood. Special guest Eric Normand is here to talk about functional programming and ClojureScript. Tune in to learn more! [00:1:14] Introduction to Eric Normand Eric works for purelyfunctional.tv. The main target market for his company is those people who want to transition into functional programming from their current job. He offers them support, shows them where to find jobs, and gives them the skills they need to do well. [00:02:22] Address that quickly Functional programming is used at big companies such as Wal-Mart, Amazon, EBay, Paypal, and banks. They all have Clojure but it is not used at the scale of Java or Ruby. So yes, people are using it and it is influencing the mainstream programming industry. [00:3:48] How do you build an application? A common question Eric gets is, “How do I structure my application?” People are used to using frameworks. Most start from an existing app. People want a process to figure out how to take a set of features and turn it into code. Most that get into functional programming have development experience. The attitude in functional programming is that they do not want a framework. Clojure needs to be more beginner friendly. His talk is a four-step process on how to turn into code. [00:05:56] Can you expand on that a little? There are four steps to the process of structuring an application. Develop a metaphor for what you are trying to do. Developing the first implementation. How would you build it if you didn’t have code? Develop the operations. What are their properties? Example: will have to sort records chronological. Develop relationships between the operations. Run tests and refactor the program. Once you have that, you can write the prototype. [00:13:13] Why can’t you always make the code better? Rules can’t be refactored into new concepts. They have to be thrown away and started completely over. The most important step is to think before beginning to write code. It may be the hardest part of the process, but it will make the implementation easier. [00:17:20] What are your thoughts on when people take it too far and it makes the code harder to read? He personally has written many bad abstractions. Writing bad things is how you get better as a programmer. The ones that go too far are the ones that don’t have any basis or are making something new up. They are trying to be too big and use no math to back up their code. [00:20:05] Is the hammock time when you decide if you want to make something abstract or should you wait until you see patterns develop? He thinks people should think about it before, although always be making experiments that do not touch production. [00:23:33] Is there a trade off between using ClojureScript and functional JavaScript? In terms of functional programming in JavaScript don’t have some of the niceties that there are in Clojure script. Clojure Script has a large standard library. JavaScript is not as well polished for functional programming; it is a lot of work to do functional programming it and not as much support. [00:27:00:] Dave Thomas believes that the future of software is functional programming. Do you agree? Eric thinks that it seems optimistic. He doesn’t see functional programming take over the world but does think that it has a lot to teach. The main reason to learn functional programming is to have more tools in your toolbox. [00:31:40] If this is a better way to solve these problems, why aren’t people using it? There is a prejudice against functional programming. When Eric was first getting into it, people would ask why he was wasting his time. Believes that people are jaded. Functional programming feels foreign because people are used to a familiar way of programming; they usually start with a language and get comfortable. [00:40:58] If people want to get started with it, is there an easy way in? Lodash is great to start replacing for loops. It will clean up code. There are other languages that compile to JavaScript. For example, Elm is getting a lot of attention right now. It is a Haskell like syntax. If you want more of a heavyweight language, use TypeScript or PureScript. ClojureScript is into live programming. You are able to type, save, and see results of the code immediately on the screen in front of you. Picks Aimee: The Hidden Cost of Abstraction What Functional Language Should I Learn Eric Steven King, On Writing Youtube Channel: Tested Charles Ionic Framework Links Purely Functional TV Blog Building Composable Abstractions Full Article
wit JSJ 273: Live to Code, Don't Code to Live with 2 Frugal Dudes Sean Merron and Kevin Griffin By devchat.tv Published On :: Tue, 08 Aug 2017 06:00:00 -0400 JSJ 273: Live to Code, Don't Code to Live with 2 Frugal Dudes Sean Merron and Kevin Griffin This episode of JavaScript Jabber features panelists Aimee Knight, Cory House, and Charles Max Wood. Special guests Sean Merron and Kevin Griffin discuss how to live frugally. Tune in to hear their advice! [00:02:14] Introduction to Sean and Kevin Sean and Kevin are the hosts of the 2 Frugal Dudes Podcast. They are middle class software engineers. Sean works a 9 to 5 job, while Kevin owns a small business called Swift Kick. Swift Kick is a company that focuses on independent consulting, software development, and training companies for software development. [00:05:50] Different Types of Financial Advisors There is no legal reason that financial advisors have to work in your best interest. On the 2 Frugal Dudes Podcast, Sean and Kevin advise people to use fiduciary advisors. These types of advisors are not legally allowed to accept kickbacks from different funds. This means that they are more likely to help you to the best of their ability. They get paid for their services. Laws are currently changing so that everyone has to be a fiduciary advisor unless clients sign a specific form. [00:10:00] What do I do with money left over at the end of the month that I can’t put into a 401K and Roth IRA? They suggest that you put only the amount of money in your 401K that your company will match. Then, put the rest into a Roth IRA and max that out. Before you decide to do what next, you need to decide why you are saving money. When will you need the money? What will you need it for? Once you know the answer to these questions, you will be able to assess what your money will best be placed. For example, if you are saving to buy a house you need to put your money in a safe investment. A Roth IRA can be used as a savings vehicle or as an emergency fund. Sean believes that a Bank CD is the safest return you can get. [00:14:30] Best Way to Save For those who are self-employed, it is a good idea to have two emergency funds – a personal and a business fund. Business emergency funds should have five months of personal salary. Kevin built his up over two or three years and uses it as self-insurance. Sean says that the employee world is different. For him, he only keeps the minimum amount in his emergency fund. He knows that he is in a field where his job is in high demand, so feels comfortable with being able to get a job quickly. For others, this may not be the case. Have to evaluate how much to save based on how long you think you may need the money. [00:18:50] What is the first thing people should be doing for their own financial well being? Kevin follows Dave Ramsey’s advice. Basic emergency fund. He uses $1,000. Most emergencies fall under that amount of money. Get rid of all consumer debt. This includes car payments, credit cards, and student loans. Mortgage is not consumer debt. Grow an emergency fund to three or six months of expenses. Investments. Setting up retirement funds, paying for college, or mortgages. Sean values early retirement so he focuses on that. What does retirement mean to me? What does rich mean? You should always track your money through a budget. Then you can funnel money towards emergency funds and tackling debt. Self-insurance means that you don’t have to worry about funds. It helps lower your stress knowing that you have your finances in order. It is a peaceful place to be and opens up opportunities for you. If someone has stressors in their life – for example, their car breaks down – and they have no money to fix it, they now have car and money problems. This stress can then potentially lead to other problems such as marriage problems. If the money to fix the broken car would have been there, it would alleviate stress. [00:28:23] Difference between 401k, IRA, and Roth IRAs A 401k is an employer provided, long-term retirement savings account. This is where you put in money before it is taxed. With this plan you are limited with the funds you can choose from to invest in. IRAs are long-term retirement plans as well. The first type of IRA is a Traditional IRA, which is similar to a 401k. You get tax reduction for the money you put in the account. You pay taxes once you withdraw money. A Roth IRA is where you already pay taxes on money that you are putting in, but don’t have to pay taxes when withdrawing money. You can withdraw contributions at anytime without being penalized, you just can’t take out any earnings. Another thing that is potentially good for early retirement is a Roth IRA conversion ladder. This is where you take money from a 401k and convert it into a Roth IRA and use it before 60 years old to fund early retirement. Traditional IRAs are good for business owners looking for tax deductions now. An HSA (Health Savings Account) can also be used as a retirement device. It goes towards medical expenses if needed. [00:34:20] Are there tools or algorithms I can use to figure this stuff out? There are some. Portfolio Visualizer allows you to choose different portfolio mixes and put different amounts of money in each one. Portfolio Charts is similar to Portfolio Visualizer but gives nice graphics. Sean created a JavaScript website to help people use to figure out early retirement. The hardest part is calculating return because you have to estimate what your return will be each year. [00:39:00] Put Your Money Somewhere The only bad investment is not making an investment. Even making a bad investment is better than not having any at all. Inflation eats away at money that is just sitting. [00:42:05] If you get one of these advisors what advice should you be looking for? Need someone that tries to understand your particular situation. “It depends” is very true and your advisor should know that. No two people will have the same financial goals. They should want to help reach your goals in the least costly way possible. Other things they should be able to do is be honest and help you control your emotions during upswings and downswings. [00:47:08] Why index funds? As an investor, you can buy an index fund cheaper than buying the whole index. A mutual fund will try to buy and sell the stocks in that index in order to follow the index's performance. As an investor, you have the opportunity to buy into a mutual fund that handles it for you. You don’t have to independently invest in companies either. You can invest in an index instead that will look at, for example, top performing technology companies. It is usually a better value. [00:53:33] How much do I invest in my business verses putting money into a Roth IRA or 401k? Sean thinks it comes down to retirement goals. At some point you will want money to come in passively and retire in the future. If you can passively put X amount of dollars into your company then it can be looked at as a form of investment. Kevin evaluates his business goals every quarter. He creates a business budget based off of those goals. Picks Cory Random Walk Down Wall Street by Burton Malkiel Rich Dad, Poor Dad by Robert Kiyosaki Ego is the Enemy by Ryan Holiday Aimee Hacker News Thread – How to Not Bring Emotions Home With You Phantogram Charles Money Master the Game by Tony Robbins ELPs (Endorsed Local Providers) Dave Ramsey Sean The Little Book of Common Sense Investing by John Bogle Mr. Money Mustache Blog www.mint.com Kevin Unshakable by Tony Robbins YNABS The Millionaire Next Door by Thomas Stanley Links 2 Frugal Dudes Twitter Sean's Twitter Kevin's Twitter www.swiftkick.in www.kevgriffin.com http://earlyretirementroadmap.com/ 2 Frugal Dudes Podcast Full Article
wit JSJ 274: Amazon Voice Services and Echo Skills with Terrance Smith By devchat.tv Published On :: Tue, 15 Aug 2017 06:00:00 -0400 JSJ 274 Amazon Voice Services and Echo Skills with Terrance Smith On today’s episode of JavaScript Jabber, we have panelists Joe Eames, Aimee Knight, Charles Max Wood, and we have special guest Terrance Smith. He’s here today to talk about the Amazon Alexa platform. So tune in and learn more about Amazon Voice Services! [01:00] – Introduction to Terrance Smith Terrance is from Hacker Ferrer Software. They hack love into software. [01:30] – Amazon Voice Service What I’m working on is called My CareTaker named probably pending change. What it will do and what it is doing will be to help you be there as a caretaker’s aid for the person in your life. If you have to take care an older parent, My CareTaker will be there in your place if you have to work that day. It will be your liaison to that person. Your mom and dad can talk to My CareTaker and My CareTaker could signal you via SMS or email message or tweet, anything on your usage dashboard, and you would be able to respond. It’s there when you’re not. [04:35] – Capabilities Getting started with it, there are different layers. The first layer is the Skills Kit for generally getting into the Amazon IoT. It has a limited subset of the functionality. You can give commands. The device parses them, sends them to Amazon’s endpoint, Amazon sends a call back to your API endpoint, and you can do whatever you want. That is the first level. You can make it do things like turn on your light switch, start your car, change your thermostat, or make an API call to some website somewhere to do anything. [05:50] – Skills Kit Skills Kit is different with AVS. Skills Kit, you can install it on any device. You’re spinning up a web service and register it on Amazon’s website. As long as you have an endpoint, you can register, say, the Amazon Web Services Lambda. Start that up and do something. The Skills Kit is literally the web endpoint response. Amazon Voice Services is a bit more in-depth. [07:00] – Steps for programming With the Skills Kit, you register what would be your utterance, your skill name, and you would give it a couple of sets of phrases to accept. Say, you have a skill that can start a car, your skill is “Car Starter.” “Alexa tell Car Starter to start the car.” At which point, your web service will be notified that that is the utterance. It literally has a case statement. You can have any number of individual conditional branches outside of that. The limitation for the Skills Kit is you have to have the “tell” or “ask” and the name of the skill to do whatever. It’s also going to be publicly accessible. For the most part, it’s literally a web service. [10:55] – Boilerplates for AWS Lambda Boilerplates can be used if you want to develop for production. If you publish a skill, you get free AVS instance time. You can host your skill for free for some amount of time. There are GUI tools to make it easier but if you’re a developer, you’re probably going to do the spin up a web service and deal it that way. [11:45] – Do you have to have an Amazon Echo? At one point, you have to have the Echo but now there is this called Echoism, which allows you to run it in your browser. In addition to that, you can potentially install it on a device like a Raspberry Pi and run Amazon Voice Services. The actual engine is on your PC, Mac, or Linux box. You have different options. [12:35] – Machine learning There are certain things that Amazon Alexa understand now that it did last year or time before that like understanding utterances and phrases better. A lot of the machine learning is definitely under the covers. The other portion of it Alexa Voice Service, which is a whole engine that you have untethered access to other portions like how to handle responses. That’s where you can build a custom device and take it apart. So the API that we’re working with here is just using JSON and HTTP. [16:40] – Amazon Echo Show You have that full real-time back and forth communication ability but there is no video streaming or video processing ability yet. You can utilize the engine in such a way that Amazon Voice Services can work with your existing tool language. If you have a Raspberry Pi and you have a camera to it, you can potentially work within that. But again, the official API’s and docs for that are not available yet. [27:20] – Challenges There’s an appliance in this house that listens to everything I say. There’s that natural inclination to not trust it, especially with the older generations. Giving past that is getting people to use the device. Some of the programming sides of it are getting the communication to work, doing something that Alexa isn’t pre-programmed to do. There isn’t a lot of documentation out there, just a couple of examples. The original examples are written in Java and trying to convert it to Node or JavaScript would be some of the technical challenges. In addition, getting it installed and setup takes at least an hour at the beginning. There’s also a learning curve involved. [29:35] – Is your product layered in an Echo or is your product a separate device? Terrance’s product is a completely separate device. One of the functionality of his program is medicine reminders. It can only respond to whatever the API calls from Amazon tells you to respond to but it can’t do anything like send something back. It can do an immediate audio response with a picture or turn on and off a light switch. But it can’t send a message back in like two hours from now. You do want your Alexa device to have (verbally) a list of notifications like on your phone. TLDR, Terrance can go a little further with just the Skills Kit. [32:00] – Could you set it up through a web server? Yes. There are examples out there. There’s Alexa in the browser. You can open up a browser and communicate with that. There are examples of it being installed like an app. You can deploy it to your existing iPhone app or Android app and have it interact that way. Or you can have it interact independently on a completely different device like a Raspberry Pi. But not a lot of folks are using it that way. [33:10] – Monetization Amazon isn’t changing anything in terms of monetization. They make discovery a lot easier though. If you knew the name of the app, you could just say, “Alexa, [tell the name of the app].” It will do a lazy load of the actual skill and it will add it to your available skill’s list. However, there is something called the Alexa Fund, which is kind of a startup fund that they have, which you can apply for. If you’re doing something interesting, there is a number of things you have to do. Ideally, you can get funding for whatever your product is. It is an available avenue for you. [36:25] – More information, documentation, walkthroughs The number one place to go to as far as getting started is the Amazon websites. They have the Conexant 4-Mic Far-Field Dev Kit. It has 4 mics and it has already a lot of what you need. You have to boot it up and/or SSH into it or plug it up and code it. They have a couple of these kits for $300 to $400. It’s one of the safe and simpler options. There are also directions for the AVS sites which is under Alexa Voice Services, where you can go to the Github from there. There will give you directions using the Raspberry Pi. If not that, there’s also the Slack chatroom. It is alexaslack.com. Travis Teague is the guy in charge in there. Picks Joe Eames Cosmic Engineers by Clifford D. Simak Aimee Knight Conference: React Rally Pancakes Charles Max Wood Conference: Angular Dev Summit Conference: React Dev Summit JavaScript Jabber Slack Terrance Smith Language: Elm Youtube channel: The School of Life Game: Night in the Woods Hacker Ferret Software Hackerferret.com Full Article
wit JSJ 275: Zones in Node with Austin McDaniel By devchat.tv Published On :: Tue, 22 Aug 2017 06:00:00 -0400 JSJ 275: Zones in Node with Austin McDaniel The panel for this week on JavaScript Jabber is Cory House, Aimee Knight, and Charles Max Wood. They speak with special guest Austin McDaniel about Zones in Node. Tune in to learn more about this topic! [00:01:11] Introduction to Austin Austin has worked in JavaScript for the past ten years. He currently works in Angular development and is a panelist on Angular Air. He has spent most of his career doing work in front-end development but has recently begun working with back-end development. With his move to back-end work he has incorporated front-end ideas with Angular into a back-end concept. [00:02:00] The Way it Works NodeJS is an event loop. There is no way to scope the context of a call stack. So for example, Austin makes a Node request to a server and wants to track the life cycle of that Node request. Once deep in the scope, or deep in the code, it is not easy to get the unique id. Maybe he wants to get the user from Passport JS. Other languages – Python, Java – have a concept called thread local storage. They can associate context with the thread and throughout the life cycle of that request, he can retrieve that context. There is a TC39 proposal for zones. A zone allows you to do what was just described. They can create new zones and associate data with them. Zones can also associate unique ids for requests and can associate the user so they can see who requested later in the stack. Zones also allow to scope and create a context. And then it allows scoping requests and capturing contacts all the way down. [00:05:40] Zone Uses One way Zone is being used is to capture stack traces, and associating unique ids with the requests. If there is an error, then Zone can capture a stack request and associate that back to the request that happened. Otherwise, the error would be vague. Zones are a TC39 proposal. Because it is still a proposal people are unsure how they can use it. Zones are not a new concept. Austin first saw Zones being used back when Angular 2 was first conceived. If an event happened and they wanted to isolate a component and create a scope for it, they used Zones to do so. Not a huge fan of how it worked out (quirky). He used the same library that Angular uses in his backend. It is a specific implementation for Node. Monkey patches all of the functions and creates a scope and passes it down to your functions, which does a good job capturing the information. [00:08:40] Is installing the library all you need to get this started? Yes, go to npminstallzone.js and install the library. There is a middler function for kla. To fork the zone, typing zone.current. This takes the Zone you are in and creates a new isolated Zone for that fork. A name can then be created for the Zone so it can be associated back with a call stack and assigned properties. Later, any properties can be retrieved no matter what level you are at. [00:09:50] So did you create the Zone library or did Google? The Google team created the Zone library. It was introduced in 2014 with Angular 2. It is currently used in front-end development. [00:10:12] Is the TC39 proposal based on the Zone library? While Austin has a feeling that the TC39 proposal came out of the Zone library, he cannot say for sure. [00:10:39] What stage is the proposal in right now? Zone is in Stage Zero right now. Zone JS is the most popular version because of its forced adoption to Angular. He recommends people use the Angular version because it is the most tested as it has a high number of people using it for front-end development. [00:11:50] Is there an easy way to copy the information from one thread to another? Yes. The best way would probably be to manually copy the information. Forking it may also work. [00:14:18] Is Stage Zero where someone is still looking to put it in or is it imminent? Austin believes that since it is actually in a stage, it means it is going to happen eventually but could be wrong. He assumes that it is going to be similar to the version that is out now. Aimee read that Stage Zero is the implementation stage where developers are gathering input about the product. Austin says that this basically means, “Implementation may vary. Enter at your own risk.” [00:16:21] If I’m using New Relic, is it using Zone JS under the hood? Austin is unsure but there something like that has to be done if profiling is being used. There has to be a way that you insert yourself in between calls. Zone is doing that while providing context, but probably not using Zone JS. There is a similar implementation to tracing and inserting logging in between all calls and timeouts. [00:17:22] What are the nuances? Why isn’t everybody doing this? Zone is still new in the JavaScript world, meaning everyone has a ton of ideas about what should be done. It can be frustrating to work with Zone in front-end development because it has to be manually learned. But in terms of implementation, only trying to create a context. Austin recommends Zone if people want to create direct contacts. The exception would be 100 lines of Zone traces because they can get difficult. Another issue Austin has is Node’s native basic weight. Weight hooks are still up in the air. The team is currently waiting on the Node JS community to provide additional information so that they can finish. Context can get lost sometimes if the wrong language is used. He is using Typescript and doesn’t have that problem because it is straightforward. [00:21:44:] Does this affect your ability to test your software at all? No, there have not been any issues with testing. One thing to accommodate for is if you are expecting certain contexts to be present you have to mock for those in the tests. After that happens, the tests should have no problems. Picks Cory: Apple AirPods Aimee: Blackmill Understanding Zones Charles: Classical Reading Playlist on Amazon Building stairs for his dad Angular Dev Summit Austin: NGRX Library Redux Links Twitter GitHub Full Article