<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Brian Love</title><description>Writing on AI agents, agentic UI, Angular and React.</description><link>https://blove.dev/</link><item><title>Dawn is now b4</title><link>https://blove.dev/posts/2026-09-15-dawn-is-now-b4/</link><guid isPermaLink="true">https://blove.dev/posts/2026-09-15-dawn-is-now-b4/</guid><description>Dawn AI has a new name. Say hello to b4, pronounced bee-four or b4 dot run.</description><pubDate>Mon, 21 Sep 2026 19:00:00 GMT</pubDate></item><item><title>Bringing Agents to the Web with Angular: Announcing Threadplane</title><link>https://blove.dev/posts/2026-06-03-bringing-agents-to-angular-with-threadplane/</link><guid isPermaLink="true">https://blove.dev/posts/2026-06-03-bringing-agents-to-angular-with-threadplane/</guid><description>Threadplane is an open-source, Angular-native framework for building fullstack agentic applications — LangChain and AG-UI for the runtime, json-render and A2UI for generative UI, and Angular Signals all the way down.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Building LangGraph agents like Next.js Apps</title><link>https://blove.dev/posts/2026-05-21-building-langgraph-agents-like-nextjs-apps/</link><guid isPermaLink="true">https://blove.dev/posts/2026-05-21-building-langgraph-agents-like-nextjs-apps/</guid><description>Dawn is to LangGraph.js what Next.js is to React: file-system routes, route-local tools, generated types, a local dev loop, and LangSmith-ready build output.</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate></item><item><title>Building an Azure AI RAG Pipeline with SharePoint</title><link>https://blove.dev/posts/2026-04-08-building-azure-ai-rag-with-sharepoint/</link><guid isPermaLink="true">https://blove.dev/posts/2026-04-08-building-azure-ai-rag-with-sharepoint/</guid><description>A practical guide to building a production RAG pipeline that indexes SharePoint documents into Azure AI Search, chunks intelligently, generates embeddings, and grounds LLM responses in real organizational data.</description><pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Agentic Memory and What It Means for Web Apps</title><link>https://blove.dev/posts/2026-03-18-agentic-memory-and-what-it-means-for-web-apps/</link><guid isPermaLink="true">https://blove.dev/posts/2026-03-18-agentic-memory-and-what-it-means-for-web-apps/</guid><description>Agentic memory changes web apps from thin shells around stateless prompts into systems that can learn across sessions, adapt behavior, and manage context as product infrastructure.</description><pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Google A2UI: Fixed Schemas, Dynamic Schemas, and a Safe Fallback Strategy</title><link>https://blove.dev/posts/2026-03-17-google-a2ui-fixed-vs-dynamic-schemas/</link><guid isPermaLink="true">https://blove.dev/posts/2026-03-17-google-a2ui-fixed-vs-dynamic-schemas/</guid><description>A practical architecture for building fullstack agent web apps with Google A2UI v0.9 using fixed catalogs by default, dynamic schema overlays for the long tail, and deterministic fallback when validation fails.</description><pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate></item><item><title>The Frontend Reward Loop for Agentic Software</title><link>https://blove.dev/posts/2026-02-21-the-frontend-reward-loop-for-agentic-software/</link><guid isPermaLink="true">https://blove.dev/posts/2026-02-21-the-frontend-reward-loop-for-agentic-software/</guid><description>Agents improve through interaction. The frontend is where intent, correction, and outcomes are visible together, and where prompt augmentation can take most teams surprisingly far before offline reward-model training.</description><pubDate>Sat, 21 Feb 2026 00:00:00 GMT</pubDate></item><item><title>The Landscape of Generative UI in 2026</title><link>https://blove.dev/posts/2026-02-20-the-landscape-of-generative-ui-in-2026/</link><guid isPermaLink="true">https://blove.dev/posts/2026-02-20-the-landscape-of-generative-ui-in-2026/</guid><description>Generative UI is a spectrum. In 2026, teams should intentionally choose Chat Components, Component Systems, and Embedded Generative UI by surface area.</description><pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate></item><item><title>OpenClaw Setup, Configuration, and Key Takeaways</title><link>https://blove.dev/posts/2026-02-19-openclaw-setup-and-key-takeaways/</link><guid isPermaLink="true">https://blove.dev/posts/2026-02-19-openclaw-setup-and-key-takeaways/</guid><description>How I set up OpenClaw on macOS with Telegram, debugged pairing and health checks, and the security boundaries I now use by default.</description><pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate></item><item><title>The Success in the Ordinary</title><link>https://blove.dev/posts/2024-01-11-success-in-the-ordinary/</link><guid isPermaLink="true">https://blove.dev/posts/2024-01-11-success-in-the-ordinary/</guid><description>Success in western culture is often marked by follower count, headcount, and GitHub stars. What if success is found in the ordinary?</description><pubDate>Thu, 11 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Year in Review</title><link>https://blove.dev/posts/2024-01-09-year-in-review/</link><guid isPermaLink="true">https://blove.dev/posts/2024-01-09-year-in-review/</guid><description>A review of 2023 - a Year of Building</description><pubDate>Tue, 09 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Angular Transfer State</title><link>https://blove.dev/posts/2020-06-05-angular-transfer-state/</link><guid isPermaLink="true">https://blove.dev/posts/2020-06-05-angular-transfer-state/</guid><description>Learn how to effectively manage Angular Transfer State with server and static rendering using Universal.</description><pubDate>Fri, 05 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Generate Open Graph Image with Gatsby</title><link>https://blove.dev/posts/2020-06-03-generate-open-graph-image-gatsby/</link><guid isPermaLink="true">https://blove.dev/posts/2020-06-03-generate-open-graph-image-gatsby/</guid><description>Learn to generate open graph images for posts with Gatsby.</description><pubDate>Wed, 03 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Route Params with NgRx Store</title><link>https://blove.dev/posts/2020-06-01-route-params-ngrx-store/</link><guid isPermaLink="true">https://blove.dev/posts/2020-06-01-route-params-ngrx-store/</guid><description>Learn to access route parameters with NgRx router store.</description><pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate></item><item><title>Generate Angular Tests with QA Wolf</title><link>https://blove.dev/posts/2020-01-06-generate-angular-tests-with-qawolf/</link><guid isPermaLink="true">https://blove.dev/posts/2020-01-06-generate-angular-tests-with-qawolf/</guid><description>Learn how to generate Jest and Puppeteer tests for Angular applications with QA Wolf.</description><pubDate>Mon, 06 Jan 2020 00:00:00 GMT</pubDate></item><item><title>Console Debugging with `window.ng`</title><link>https://blove.dev/posts/2019-12-14-console-debugging-with-window-ng/</link><guid isPermaLink="true">https://blove.dev/posts/2019-12-14-console-debugging-with-window-ng/</guid><description>Angular 9 provides improved debugging in the console using window.ng.</description><pubDate>Sat, 14 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Lazy Load Angular 9+ Components</title><link>https://blove.dev/posts/2019-12-13-lazy-load-angular-v9-components/</link><guid isPermaLink="true">https://blove.dev/posts/2019-12-13-lazy-load-angular-v9-components/</guid><description>Lazy loading components with Angular 9+ just got a lot easier!</description><pubDate>Fri, 13 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Angular 9 Update Guide</title><link>https://blove.dev/posts/2019-12-12-angular-9-update-guide/</link><guid isPermaLink="true">https://blove.dev/posts/2019-12-12-angular-9-update-guide/</guid><description>Learn to successfully update to Angular version 9.</description><pubDate>Thu, 12 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Conditional Class Names in React</title><link>https://blove.dev/posts/2019-12-11-react-conditional-class-names/</link><guid isPermaLink="true">https://blove.dev/posts/2019-12-11-react-conditional-class-names/</guid><description>Efficiently apply class names conditionally in React.</description><pubDate>Wed, 11 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Impactful Presentations</title><link>https://blove.dev/posts/2019-12-10-top-5-tips-for-impactful-presentations/</link><guid isPermaLink="true">https://blove.dev/posts/2019-12-10-top-5-tips-for-impactful-presentations/</guid><description>Top 5 tips for creating impactful presentation to ensure your audience walks away inspired and not exhausted.</description><pubDate>Tue, 10 Dec 2019 00:00:00 GMT</pubDate></item><item><title>Ellipsis Directive</title><link>https://blove.dev/posts/2019-09-26-ellipsis-directive/</link><guid isPermaLink="true">https://blove.dev/posts/2019-09-26-ellipsis-directive/</guid><description>Build an Angular Attribute Directive for efficiently truncating text and appending an ellipsis within an element&apos;s fixed height.</description><pubDate>Thu, 26 Sep 2019 00:00:00 GMT</pubDate></item><item><title>NG Add Schematic</title><link>https://blove.dev/posts/2018-12-15-ng-add-schematic/</link><guid isPermaLink="true">https://blove.dev/posts/2018-12-15-ng-add-schematic/</guid><description>Learn how to build an Angular schematic that adds a library.</description><pubDate>Sat, 15 Dec 2018 00:00:00 GMT</pubDate></item><item><title>Angular Schematics Tutorial</title><link>https://blove.dev/posts/2018-12-11-angular-schematics-tutorial/</link><guid isPermaLink="true">https://blove.dev/posts/2018-12-11-angular-schematics-tutorial/</guid><description>Learn how to create Angular schematics.</description><pubDate>Tue, 11 Dec 2018 00:00:00 GMT</pubDate></item><item><title>Vuex for NgRx Devs</title><link>https://blove.dev/posts/2018-11-30-vuex-for-ngrx-devs/</link><guid isPermaLink="true">https://blove.dev/posts/2018-11-30-vuex-for-ngrx-devs/</guid><description>Learn to build manage state in a Vue.js application using Vuex from the perspective of an Angular dev using NgRx.</description><pubDate>Fri, 30 Nov 2018 00:00:00 GMT</pubDate></item><item><title>Vue.js for the Angular Dev</title><link>https://blove.dev/posts/2018-11-29-vue-for-the-angular-dev/</link><guid isPermaLink="true">https://blove.dev/posts/2018-11-29-vue-for-the-angular-dev/</guid><description>Learn to build an app using Vue.js from an Angular Dev&apos;s viewpoint.</description><pubDate>Thu, 29 Nov 2018 00:00:00 GMT</pubDate></item><item><title>Angular HttpClient Response</title><link>https://blove.dev/posts/2018-09-03-angular-http-client-observe-response/</link><guid isPermaLink="true">https://blove.dev/posts/2018-09-03-angular-http-client-observe-response/</guid><description>Learn to obtain the full response of an HTTP request with Angular using HttpClient.</description><pubDate>Mon, 03 Sep 2018 00:00:00 GMT</pubDate></item><item><title>NgRx Testing: Effects</title><link>https://blove.dev/posts/2018-06-28-ngrx-testing-effects/</link><guid isPermaLink="true">https://blove.dev/posts/2018-06-28-ngrx-testing-effects/</guid><description>Learn how to unit test NgRx effects using Jest.</description><pubDate>Thu, 28 Jun 2018 00:00:00 GMT</pubDate></item><item><title>NgRx Testing: Reducers</title><link>https://blove.dev/posts/2018-05-28-ngrx-testing-actions/</link><guid isPermaLink="true">https://blove.dev/posts/2018-05-28-ngrx-testing-actions/</guid><description>Learn how to unit test NgRx reducers using Jest.</description><pubDate>Mon, 28 May 2018 00:00:00 GMT</pubDate></item><item><title>NgRx Testing: Components</title><link>https://blove.dev/posts/2018-05-27-ngrx-testing-components/</link><guid isPermaLink="true">https://blove.dev/posts/2018-05-27-ngrx-testing-components/</guid><description>Learn how to unit test Angular components using NgRx with Jest.</description><pubDate>Sun, 27 May 2018 00:00:00 GMT</pubDate></item><item><title>Angular + Jest</title><link>https://blove.dev/posts/2018-05-26-angular-jest-testing/</link><guid isPermaLink="true">https://blove.dev/posts/2018-05-26-angular-jest-testing/</guid><description>Learn how to write unit tests for Angular using Jest.</description><pubDate>Sat, 26 May 2018 00:00:00 GMT</pubDate></item><item><title>NgRx + Loading Indicator</title><link>https://blove.dev/posts/2018-04-03-ngrx-loading-indicator/</link><guid isPermaLink="true">https://blove.dev/posts/2018-04-03-ngrx-loading-indicator/</guid><description>Application loading indicator using NgRX and Angular.</description><pubDate>Tue, 03 Apr 2018 00:00:00 GMT</pubDate></item><item><title>RxJS: Master the Operators</title><link>https://blove.dev/posts/2018-03-21-master-rxjs-operators/</link><guid isPermaLink="true">https://blove.dev/posts/2018-03-21-master-rxjs-operators/</guid><description>Learn to master RxJS operators with Angular 5 and NgRx.</description><pubDate>Wed, 21 Mar 2018 00:00:00 GMT</pubDate></item><item><title>NgRx + Material Snackbar</title><link>https://blove.dev/posts/2018-03-16-ngrx-mat-snackbar/</link><guid isPermaLink="true">https://blove.dev/posts/2018-03-16-ngrx-mat-snackbar/</guid><description>Show and hide Material Snackbar using NgRx and RxJS with Angular.</description><pubDate>Fri, 16 Mar 2018 00:00:00 GMT</pubDate></item><item><title>RxJS: The Basics</title><link>https://blove.dev/posts/2018-03-04-rxjs-the-basics/</link><guid isPermaLink="true">https://blove.dev/posts/2018-03-04-rxjs-the-basics/</guid><description>Learn the basics of functional reactive programming in Angular with RxJS.</description><pubDate>Sun, 04 Mar 2018 00:00:00 GMT</pubDate></item><item><title>Angular Window Provider</title><link>https://blove.dev/posts/2018-01-11-angular-window-provider/</link><guid isPermaLink="true">https://blove.dev/posts/2018-01-11-angular-window-provider/</guid><description>Where did my $window go? No problem, use this provider to inject the window into your Angular component.</description><pubDate>Thu, 11 Jan 2018 00:00:00 GMT</pubDate></item><item><title>Angular + NgRx: Refactor Module</title><link>https://blove.dev/posts/2018-01-10-ngrx-refactor-module/</link><guid isPermaLink="true">https://blove.dev/posts/2018-01-10-ngrx-refactor-module/</guid><description>Refactor an existing application&apos;s module to implement the Redux pattern using NgRx.</description><pubDate>Wed, 10 Jan 2018 00:00:00 GMT</pubDate></item><item><title>Angular + NgRx: Getting Started</title><link>https://blove.dev/posts/2018-01-09-ngrx-getting-started/</link><guid isPermaLink="true">https://blove.dev/posts/2018-01-09-ngrx-getting-started/</guid><description>Get started with NgRx in your Angular applications.</description><pubDate>Tue, 09 Jan 2018 00:00:00 GMT</pubDate></item><item><title>Angular + NgRx: The Basics</title><link>https://blove.dev/posts/2018-01-08-ngrx-the-basics/</link><guid isPermaLink="true">https://blove.dev/posts/2018-01-08-ngrx-the-basics/</guid><description>Learn the basics of implementing the Redux pattern in Angular applications.</description><pubDate>Mon, 08 Jan 2018 00:00:00 GMT</pubDate></item><item><title>Angular HttpClient Blob</title><link>https://blove.dev/posts/2017-11-02-angular-http-client-blob/</link><guid isPermaLink="true">https://blove.dev/posts/2017-11-02-angular-http-client-blob/</guid><description>Using Angular&apos;s HttpClient &quot;blob&quot; response type to display an image.</description><pubDate>Thu, 02 Nov 2017 00:00:00 GMT</pubDate></item><item><title>RxJS Antipatterns</title><link>https://blove.dev/posts/2017-11-01-ngrx-anti-patterns/</link><guid isPermaLink="true">https://blove.dev/posts/2017-11-01-ngrx-anti-patterns/</guid><description>Learn what not to do with RxJS in your Angular applications.</description><pubDate>Wed, 01 Nov 2017 00:00:00 GMT</pubDate></item><item><title>Updating To NgRx 4</title><link>https://blove.dev/posts/2017-09-09-updating-to-ngrx-4/</link><guid isPermaLink="true">https://blove.dev/posts/2017-09-09-updating-to-ngrx-4/</guid><description>Here&apos;s a quick guide to updating your code to use NgRx 4.</description><pubDate>Sat, 09 Sep 2017 00:00:00 GMT</pubDate></item><item><title>Migrating to HttpClient</title><link>https://blove.dev/posts/2017-07-21-migrating-to-http-client/</link><guid isPermaLink="true">https://blove.dev/posts/2017-07-21-migrating-to-http-client/</guid><description>Migrating to the new Angular HttpClientModule from the deprecated HttpModule.</description><pubDate>Fri, 21 Jul 2017 00:00:00 GMT</pubDate></item><item><title>Angular Delete Confirmation</title><link>https://blove.dev/posts/2017-07-17-angular-delete-confirmation/</link><guid isPermaLink="true">https://blove.dev/posts/2017-07-17-angular-delete-confirmation/</guid><description>Delete confirmation dialog using Angular and reactive programming with ngrx.</description><pubDate>Mon, 17 Jul 2017 00:00:00 GMT</pubDate></item><item><title>MEAN App: Angular + Material</title><link>https://blove.dev/posts/2017-07-16-mean-app-angular-material/</link><guid isPermaLink="true">https://blove.dev/posts/2017-07-16-mean-app-angular-material/</guid><description>Part 2 - Let&apos;s build an Angular app using Material.</description><pubDate>Sun, 16 Jul 2017 00:00:00 GMT</pubDate></item><item><title>MEAN App: Reactive Programming</title><link>https://blove.dev/posts/2017-07-16-mean-app-reactive-programming/</link><guid isPermaLink="true">https://blove.dev/posts/2017-07-16-mean-app-reactive-programming/</guid><description>Part 3 - Let&apos;s build an Angular app using reactive programming with RxJS and ngrx.</description><pubDate>Sun, 16 Jul 2017 00:00:00 GMT</pubDate></item><item><title>MEAN App: Server</title><link>https://blove.dev/posts/2017-07-16-mean-app-server/</link><guid isPermaLink="true">https://blove.dev/posts/2017-07-16-mean-app-server/</guid><description>Part 1 - REST API using Express Server written in TypeScript with Mongoose plus Mocha and Chai tests.</description><pubDate>Sun, 16 Jul 2017 00:00:00 GMT</pubDate></item><item><title>MEAN App Unplugged</title><link>https://blove.dev/posts/2017-07-16-mean-app-unplugged/</link><guid isPermaLink="true">https://blove.dev/posts/2017-07-16-mean-app-unplugged/</guid><description>Building a MEAN unplugged. We&apos;ll use TypeScript, Angular Material and reactive programming.</description><pubDate>Sun, 16 Jul 2017 00:00:00 GMT</pubDate></item><item><title>MEAN + Material + Reactive</title><link>https://blove.dev/posts/2017-06-21-mean-material-reactive/</link><guid isPermaLink="true">https://blove.dev/posts/2017-06-21-mean-material-reactive/</guid><description>Let&apos;s build a MEAN app using TypeScript for the client and server using Angular Material and Reactive programming.</description><pubDate>Wed, 21 Jun 2017 00:00:00 GMT</pubDate></item><item><title>Responsive Angular</title><link>https://blove.dev/posts/2017-05-03-responsive-angular/</link><guid isPermaLink="true">https://blove.dev/posts/2017-05-03-responsive-angular/</guid><description>Learn how to easily create responsive applications using Angular and Flex Layout.</description><pubDate>Wed, 03 May 2017 00:00:00 GMT</pubDate></item><item><title>Angular Language Service</title><link>https://blove.dev/posts/2017-04-11-angular-language-service/</link><guid isPermaLink="true">https://blove.dev/posts/2017-04-11-angular-language-service/</guid><description>The Angular Language Service extends the intelligence of your editor to Angular templates.</description><pubDate>Tue, 11 Apr 2017 00:00:00 GMT</pubDate></item><item><title>Angular Reactive (ngrx) Authentication</title><link>https://blove.dev/posts/2017-04-10-angular-reactive-authentication/</link><guid isPermaLink="true">https://blove.dev/posts/2017-04-10-angular-reactive-authentication/</guid><description>Learn how to add authentication to your Angular app using reactive (ngrx) extensions.</description><pubDate>Mon, 10 Apr 2017 00:00:00 GMT</pubDate></item><item><title>CORS in Express using TypeScript</title><link>https://blove.dev/posts/2017-03-22-express-cors-typescript/</link><guid isPermaLink="true">https://blove.dev/posts/2017-03-22-express-cors-typescript/</guid><description>A quick walkthrough on configuring CORS in your Express app using TypeScript and the cors middleware.</description><pubDate>Wed, 22 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Passing Data with MdDialog</title><link>https://blove.dev/posts/2017-03-21-passing-data-mddialog/</link><guid isPermaLink="true">https://blove.dev/posts/2017-03-21-passing-data-mddialog/</guid><description>Make your Material MdDialog stateless by passing data as part of the MdDialogConfig object.</description><pubDate>Tue, 21 Mar 2017 00:00:00 GMT</pubDate></item><item><title>Node.JS + SendGrid + TypeScript</title><link>https://blove.dev/posts/2017-03-15-node-sendgrid-typescript/</link><guid isPermaLink="true">https://blove.dev/posts/2017-03-15-node-sendgrid-typescript/</guid><description>(Almost) Every application needs to send an email at some point.</description><pubDate>Wed, 15 Mar 2017 00:00:00 GMT</pubDate></item><item><title>TypeScript 2 + AngularJS</title><link>https://blove.dev/posts/2016-12-26-typing-up-your-angular-1-app/</link><guid isPermaLink="true">https://blove.dev/posts/2016-12-26-typing-up-your-angular-1-app/</guid><description>If you want to use TypeScript in your AngularJS (Angular v1) application today but you are not yet ready to move to Angular v2 or v4 (yeah, it&apos;s coming) then keep reading.</description><pubDate>Mon, 26 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Angular: Don&apos;t forget to unsubscribe()</title><link>https://blove.dev/posts/2016-12-11-anguar-2-unsubscribe-observables/</link><guid isPermaLink="true">https://blove.dev/posts/2016-12-11-anguar-2-unsubscribe-observables/</guid><description>Don&apos;t forget to unsubscribe from subscriptions in Angular components using the OnDestroy lifecycle hook.</description><pubDate>Sun, 11 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Hackerrank: Making Anagrams</title><link>https://blove.dev/posts/2016-12-03-hackerrank-making-anagrams/</link><guid isPermaLink="true">https://blove.dev/posts/2016-12-03-hackerrank-making-anagrams/</guid><description>I&apos;ve put together some sample solutions to the Hackerrank _String: Making Anagrams_ challenge using JavaScript on Node.js.</description><pubDate>Sat, 03 Dec 2016 00:00:00 GMT</pubDate></item><item><title>Array Left Rotation Using Javascript and Node.js</title><link>https://blove.dev/posts/2016-11-20-array-left-rotation-using-node/</link><guid isPermaLink="true">https://blove.dev/posts/2016-11-20-array-left-rotation-using-node/</guid><description>I&apos;ve put together some sample solutions to the common array left rotation challenge.</description><pubDate>Sun, 20 Nov 2016 00:00:00 GMT</pubDate></item><item><title>TypeScript 2 + Express + Mongoose + Mocha + Chai</title><link>https://blove.dev/posts/2016-11-11-typescript-2-express-mongoose-mocha-chai/</link><guid isPermaLink="true">https://blove.dev/posts/2016-11-11-typescript-2-express-mongoose-mocha-chai/</guid><description>MongoDB is an excellent choice for persisting data for your web application that uses the Express engine on Node.js.</description><pubDate>Fri, 11 Nov 2016 00:00:00 GMT</pubDate></item><item><title>TypeScript 2 + Express + Node.js</title><link>https://blove.dev/posts/2016-11-08-typescript-2-express-node/</link><guid isPermaLink="true">https://blove.dev/posts/2016-11-08-typescript-2-express-node/</guid><description>TypeScript 2 enables you to develop solid web applications using Express on Node.js</description><pubDate>Tue, 08 Nov 2016 00:00:00 GMT</pubDate></item><item><title>Angular2 Breadcrumb using Router</title><link>https://blove.dev/posts/2016-10-23-angular2-breadcrumb-using-router/</link><guid isPermaLink="true">https://blove.dev/posts/2016-10-23-angular2-breadcrumb-using-router/</guid><description>A breadcrumb has been and still is a standard in user interface navigation on the web.</description><pubDate>Sun, 23 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Angular CLI using HTTPS</title><link>https://blove.dev/posts/2016-10-22-angular-cli-using-https/</link><guid isPermaLink="true">https://blove.dev/posts/2016-10-22-angular-cli-using-https/</guid><description>If you need to run the NG Development server over HTTP using SSL then this quick guide is for you.</description><pubDate>Sat, 22 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Angular 2 + Google Maps Places Autocomplete</title><link>https://blove.dev/posts/2016-10-18-angular-2-google-maps-places-autocomplete/</link><guid isPermaLink="true">https://blove.dev/posts/2016-10-18-angular-2-google-maps-places-autocomplete/</guid><description>In this brief tutorial I&apos;ll show you to to quickly build an Angular 2 + Google Maps Places Autocomplete application.</description><pubDate>Tue, 18 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Dynamic FormGroup Custom Validation in Angular2</title><link>https://blove.dev/posts/2016-10-16-dynamic-form-group-custom-validation-angular2/</link><guid isPermaLink="true">https://blove.dev/posts/2016-10-16-dynamic-form-group-custom-validation-angular2/</guid><description>In this post I will show you how to create nested FormGroups to create a custom validator.</description><pubDate>Sun, 16 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Angular + TypeScript Plunker Starter Kit</title><link>https://blove.dev/posts/2016-10-15-angular-2-0-0-typescript-plunker-starter-kit/</link><guid isPermaLink="true">https://blove.dev/posts/2016-10-15-angular-2-0-0-typescript-plunker-starter-kit/</guid><description>Ready to be forked: Angular + TypeScript Plunker Starter Kit.</description><pubDate>Sat, 15 Oct 2016 00:00:00 GMT</pubDate></item><item><title>Angular 2 window scroll event using @HostListener</title><link>https://blove.dev/posts/2016-10-10-angular-2-window-scroll-event-using-hostlistener/</link><guid isPermaLink="true">https://blove.dev/posts/2016-10-10-angular-2-window-scroll-event-using-hostlistener/</guid><description>Angular 2 is awesome, but it also a major departure from Angular 1.</description><pubDate>Mon, 10 Oct 2016 00:00:00 GMT</pubDate></item><item><title>TypeScript: Declaring Mongoose Schema + Model</title><link>https://blove.dev/posts/2016-10-04-typescript-declaring-mongoose-schema-model/</link><guid isPermaLink="true">https://blove.dev/posts/2016-10-04-typescript-declaring-mongoose-schema-model/</guid><description>So, you&apos;re on the `TypeScript` bandwagon and you want to use `Mongodb` and `mongoose`.</description><pubDate>Tue, 04 Oct 2016 00:00:00 GMT</pubDate></item><item><title>TypeSearch for @types powered by DefinitelyTyped</title><link>https://blove.dev/posts/2016-09-12-typesearch-for-types-powered-by-definitelytyped/</link><guid isPermaLink="true">https://blove.dev/posts/2016-09-12-typesearch-for-types-powered-by-definitelytyped/</guid><description>Microsoft is making things much easier for TypeScript developer who are using external libraries (who isn&apos;t?).</description><pubDate>Mon, 12 Sep 2016 00:00:00 GMT</pubDate></item><item><title>Preloading with Critical Path CSS</title><link>https://blove.dev/posts/2016-07-21-preloading-with-critical-path-css/</link><guid isPermaLink="true">https://blove.dev/posts/2016-07-21-preloading-with-critical-path-css/</guid><description>The `link rel=&quot;preload&quot;` resource hint combined with defining your critical path CSS may provide a better solution to deferring the loading of your CSS files.</description><pubDate>Thu, 21 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Upgrading to Typings 1.x</title><link>https://blove.dev/posts/2016-07-19-upgrading-to-typings-1-x/</link><guid isPermaLink="true">https://blove.dev/posts/2016-07-19-upgrading-to-typings-1-x/</guid><description>I have been playing with Angular 2 beta 4 and also updated typings from 0.x to 1.x.</description><pubDate>Tue, 19 Jul 2016 00:00:00 GMT</pubDate></item><item><title>Generate Critical Path CSS with Node.js</title><link>https://blove.dev/posts/2016-07-18-generate-critical-path-css-with-node-js/</link><guid isPermaLink="true">https://blove.dev/posts/2016-07-18-generate-critical-path-css-with-node-js/</guid><description>In this post I will show you how to generate the critical path CSS to avoid render-blocking JavaScript and CSS.</description><pubDate>Mon, 18 Jul 2016 00:00:00 GMT</pubDate></item><item><title>TypeScript + Express + Node.js</title><link>https://blove.dev/posts/2016-03-29-typescript-express-node-js/</link><guid isPermaLink="true">https://blove.dev/posts/2016-03-29-typescript-express-node-js/</guid><description>The Express web application framework for Node.js is arguable one of the most popular solutions for creating web apps built on the async Node.js engine.</description><pubDate>Tue, 29 Mar 2016 00:00:00 GMT</pubDate></item><item><title>CSS3 Content Property</title><link>https://blove.dev/posts/2015-08-20-css-content-character-entities/</link><guid isPermaLink="true">https://blove.dev/posts/2015-08-20-css-content-character-entities/</guid><description>The CSS3 content property is extremely valuable for inserting content into the ::before and ::after pseudo elements.</description><pubDate>Thu, 20 Aug 2015 00:00:00 GMT</pubDate></item><item><title>LESS to SASS</title><link>https://blove.dev/posts/2015-08-20-less-to-sass/</link><guid isPermaLink="true">https://blove.dev/posts/2015-08-20-less-to-sass/</guid><description>Auf wiedersehen LESS, Hallo SASS!</description><pubDate>Thu, 20 Aug 2015 00:00:00 GMT</pubDate></item><item><title>Bootstrap Cover Photo Sizing</title><link>https://blove.dev/posts/2015-08-17-bootstrap-cover-photo-sizing/</link><guid isPermaLink="true">https://blove.dev/posts/2015-08-17-bootstrap-cover-photo-sizing/</guid><description>In this post I will show how to create appropriately sized cover photos when using Bootstrap 3.</description><pubDate>Mon, 17 Aug 2015 00:00:00 GMT</pubDate></item><item><title>Bootstrap via RequireJS</title><link>https://blove.dev/posts/2015-08-13-bootstrap-via-requirejs/</link><guid isPermaLink="true">https://blove.dev/posts/2015-08-13-bootstrap-via-requirejs/</guid><description>I have been learning and using RequireJS for the past couple of weeks, and I have to say, I love it.</description><pubDate>Thu, 13 Aug 2015 00:00:00 GMT</pubDate></item><item><title>Web font in IIS: ERR_CONNECTION_RESET</title><link>https://blove.dev/posts/2015-08-11-web-font-in-iis-err_connection_reset/</link><guid isPermaLink="true">https://blove.dev/posts/2015-08-11-web-font-in-iis-err_connection_reset/</guid><description>If you are using a web font, including popular font icon fonts like Font Awesome then you may notice an error when loading your web font from an IIS server.</description><pubDate>Tue, 11 Aug 2015 00:00:00 GMT</pubDate></item><item><title>Multiple Batches in a single Transaction</title><link>https://blove.dev/posts/2015-06-02-multiple-batches-in-a-single-transaction/</link><guid isPermaLink="true">https://blove.dev/posts/2015-06-02-multiple-batches-in-a-single-transaction/</guid><description>Create a migration script that uses a transaction to roll back the changes in case one of the sql statements fail.</description><pubDate>Tue, 02 Jun 2015 00:00:00 GMT</pubDate></item><item><title>Migrating Databases in Amazon RDS</title><link>https://blove.dev/posts/2015-05-12-migrating-databases-in-amazon-rds/</link><guid isPermaLink="true">https://blove.dev/posts/2015-05-12-migrating-databases-in-amazon-rds/</guid><description>Amazon&apos;s Relational Database Service (RDS) enables developers to launch database instances in the cloud that are managed by Amazon.</description><pubDate>Tue, 12 May 2015 00:00:00 GMT</pubDate></item><item><title>Learning Nginx on OS X</title><link>https://blove.dev/posts/2015-04-04-learning-nginx-on-os-x/</link><guid isPermaLink="true">https://blove.dev/posts/2015-04-04-learning-nginx-on-os-x/</guid><description>In this post I am going to take a quick dive into the Nginx web server.</description><pubDate>Sat, 04 Apr 2015 00:00:00 GMT</pubDate></item><item><title>2015 Website Design Goals</title><link>https://blove.dev/posts/2015-03-30-2015-website-design-goals/</link><guid isPermaLink="true">https://blove.dev/posts/2015-03-30-2015-website-design-goals/</guid><description>When approaching a website design for 2015 what are your design goals?</description><pubDate>Mon, 30 Mar 2015 00:00:00 GMT</pubDate></item><item><title>chmod directories (and not files)</title><link>https://blove.dev/posts/2015-03-26-chmod-directories-and-not-files/</link><guid isPermaLink="true">https://blove.dev/posts/2015-03-26-chmod-directories-and-not-files/</guid><description>Here is a quick snippet that I used today and that I might end up needing in the future.</description><pubDate>Thu, 26 Mar 2015 00:00:00 GMT</pubDate></item><item><title>Lucee on Mac OS X Yosemite Quick Start</title><link>https://blove.dev/posts/2015-03-05-lucee-on-mac-os-x-yosemite-quick-start/</link><guid isPermaLink="true">https://blove.dev/posts/2015-03-05-lucee-on-mac-os-x-yosemite-quick-start/</guid><description>After the news of Railo being forked to a new project called lucee I wanted to check it out.</description><pubDate>Thu, 05 Mar 2015 00:00:00 GMT</pubDate></item><item><title>Hash Any ColdFusion Type</title><link>https://blove.dev/posts/2015-02-24-hash-any-coldfusion-type/</link><guid isPermaLink="true">https://blove.dev/posts/2015-02-24-hash-any-coldfusion-type/</guid><description>In order to generate a unique identifier for caching an object I needed to create a function to accept any data type, and to return a unique hash from that object.</description><pubDate>Tue, 24 Feb 2015 00:00:00 GMT</pubDate></item><item><title>Find-and-Replace in Multiple SVN Repositories</title><link>https://blove.dev/posts/2015-02-17-find-and-replace-in-multiple-svn-repositories/</link><guid isPermaLink="true">https://blove.dev/posts/2015-02-17-find-and-replace-in-multiple-svn-repositories/</guid><description>A bash shell script to find-and-replace in all files in multiple svn repositories.</description><pubDate>Tue, 17 Feb 2015 00:00:00 GMT</pubDate></item><item><title>ColdFusion 10 Install on OS X Yosemite</title><link>https://blove.dev/posts/2015-02-04-coldfusion-10-install-on-os-x-yosemite/</link><guid isPermaLink="true">https://blove.dev/posts/2015-02-04-coldfusion-10-install-on-os-x-yosemite/</guid><description>If you have just downloaded Adobe ColdFusion 10 on your OS X Yosemite development environment you might be surprised to find out that the installation will cause your Apache 2.4.x server to stop working.</description><pubDate>Wed, 04 Feb 2015 00:00:00 GMT</pubDate></item><item><title>IIS and HTTPS Binding with Host Header</title><link>https://blove.dev/posts/2015-01-21-iis-and-https-binding-with-host-header/</link><guid isPermaLink="true">https://blove.dev/posts/2015-01-21-iis-and-https-binding-with-host-header/</guid><description>Well, the title may not be entirely accurate. Honestly, I didn&apos;t know what to title this post -- let me explain what I observed and how I was able to get around the issue.</description><pubDate>Wed, 21 Jan 2015 00:00:00 GMT</pubDate></item><item><title>AlertifyJS</title><link>https://blove.dev/posts/2015-01-18-alertifyjs/</link><guid isPermaLink="true">https://blove.dev/posts/2015-01-18-alertifyjs/</guid><description>Check out this video on setting up and using the AlertifyJS library.</description><pubDate>Sun, 18 Jan 2015 00:00:00 GMT</pubDate></item><item><title>Ehcache Regions in ColdFusion</title><link>https://blove.dev/posts/2015-01-14-ehcache-regions-in-coldfusion/</link><guid isPermaLink="true">https://blove.dev/posts/2015-01-14-ehcache-regions-in-coldfusion/</guid><description>In migrating our application&apos;s caching service to use ColdFusion&apos;s Ehcache integration I needed to a way to get all of the caching regions stored in Ehcache.</description><pubDate>Wed, 14 Jan 2015 00:00:00 GMT</pubDate></item><item><title>PHP Script to Check Remote Server or Website</title><link>https://blove.dev/posts/2015-01-09-php-script-to-check-remote-server-or-website/</link><guid isPermaLink="true">https://blove.dev/posts/2015-01-09-php-script-to-check-remote-server-or-website/</guid><description>Check out this short video on creating a PHP script to check if a remote server or website is available.</description><pubDate>Fri, 09 Jan 2015 00:00:00 GMT</pubDate></item><item><title>PNG Support for PHP on OS X Yosemite</title><link>https://blove.dev/posts/2014-12-10-png-support-for-php-on-os-x-yosemite/</link><guid isPermaLink="true">https://blove.dev/posts/2014-12-10-png-support-for-php-on-os-x-yosemite/</guid><description>I recently upgraded to OS X Yosemite and ran into a small issue when attempting to create an image resource from a string.</description><pubDate>Wed, 10 Dec 2014 00:00:00 GMT</pubDate></item><item><title>Redirect to HTTPS</title><link>https://blove.dev/posts/2014-12-09-redirect-to-https/</link><guid isPermaLink="true">https://blove.dev/posts/2014-12-09-redirect-to-https/</guid><description>As part of my series on migrating a site to support HTTPS we are finally at the step where we will implement the redirect that will ensure our users are always using the HTTPS site.</description><pubDate>Tue, 09 Dec 2014 00:00:00 GMT</pubDate></item><item><title>Enabling Strict Transport Security (HSTS)</title><link>https://blove.dev/posts/2014-12-08-enabling-strict-transport-security-hsts/</link><guid isPermaLink="true">https://blove.dev/posts/2014-12-08-enabling-strict-transport-security-hsts/</guid><description>I am continuing a series of articles focused on migrating a website to support HTTPS Everywhere.</description><pubDate>Mon, 08 Dec 2014 00:00:00 GMT</pubDate></item><item><title>Keep-Alive and HTTPS</title><link>https://blove.dev/posts/2014-12-04-keep-alive-and-https/</link><guid isPermaLink="true">https://blove.dev/posts/2014-12-04-keep-alive-and-https/</guid><description>As part of a series on setting up HTTPS Everywhere I am migrating a website to use HTTPS for all requests.</description><pubDate>Thu, 04 Dec 2014 00:00:00 GMT</pubDate></item><item><title>HTTPS Protocols and Ciphers</title><link>https://blove.dev/posts/2014-12-03-https-protocols-and-ciphers/</link><guid isPermaLink="true">https://blove.dev/posts/2014-12-03-https-protocols-and-ciphers/</guid><description>As part of a series on using HTTPS Everywhere we are migrating a website from HTTP to HTTPS.</description><pubDate>Wed, 03 Dec 2014 00:00:00 GMT</pubDate></item><item><title>Calendar Using jQuery and CSS3</title><link>https://blove.dev/posts/2014-12-02-calendar-using-jquery-and-css3/</link><guid isPermaLink="true">https://blove.dev/posts/2014-12-02-calendar-using-jquery-and-css3/</guid><description>Check out a video I created on building a calendar using jQuery and CSS3.</description><pubDate>Tue, 02 Dec 2014 00:00:00 GMT</pubDate></item><item><title>Enable HTTPS in Apache on Mac Yosemite</title><link>https://blove.dev/posts/2014-12-02-enable-https-in-apache-on-mac-yosemite/</link><guid isPermaLink="true">https://blove.dev/posts/2014-12-02-enable-https-in-apache-on-mac-yosemite/</guid><description>In this post we&apos;ll be using HTTP with Apache on OS X Yosemite.</description><pubDate>Tue, 02 Dec 2014 00:00:00 GMT</pubDate></item><item><title>Enable HTTPS on IIS</title><link>https://blove.dev/posts/2014-12-02-enable-https-on-iis/</link><guid isPermaLink="true">https://blove.dev/posts/2014-12-02-enable-https-on-iis/</guid><description>As part of my HTTPS Everywhere series I am showing how to configure your web server for HTTPS.</description><pubDate>Tue, 02 Dec 2014 00:00:00 GMT</pubDate></item><item><title>HTTPS Everywhere</title><link>https://blove.dev/posts/2014-12-01-https-everywhere/</link><guid isPermaLink="true">https://blove.dev/posts/2014-12-01-https-everywhere/</guid><description>You might have heard this past summer that Google has made a slight (less than 1% of sites will be affected) modification to their algorithm to give more value to those sites that use HTTPS than those sites that do not.</description><pubDate>Mon, 01 Dec 2014 00:00:00 GMT</pubDate></item><item><title>Self-signed SSL Certificate on Mac Yosemite</title><link>https://blove.dev/posts/2014-12-01-self-signed-ssl-certificate-on-mac-yosemite/</link><guid isPermaLink="true">https://blove.dev/posts/2014-12-01-self-signed-ssl-certificate-on-mac-yosemite/</guid><description>As part of a series on migrating a website to support HTTPS everywhere I needed to create a self-signed certificate on Mac OS X.</description><pubDate>Mon, 01 Dec 2014 00:00:00 GMT</pubDate></item><item><title>Git Submodule Cheat Sheet</title><link>https://blove.dev/posts/2014-11-26-git-submodule-cheat-sheet/</link><guid isPermaLink="true">https://blove.dev/posts/2014-11-26-git-submodule-cheat-sheet/</guid><description>A quick and dirty cheat sheet for Git submodules.</description><pubDate>Wed, 26 Nov 2014 00:00:00 GMT</pubDate></item><item><title>Imagemagick Installation with OS X Mavericks and PHP 5.4</title><link>https://blove.dev/posts/2014-09-03-imagemagick-installation-with-os-x-mavericks-and-php-5-4/</link><guid isPermaLink="true">https://blove.dev/posts/2014-09-03-imagemagick-installation-with-os-x-mavericks-and-php-5-4/</guid><description>I know that there are lots of posts and articles written for installing the imagick PHP extension, so why not one more.</description><pubDate>Wed, 03 Sep 2014 00:00:00 GMT</pubDate></item><item><title>What&apos;s the double exclamation mark for in JavaScript?</title><link>https://blove.dev/posts/2014-09-02-whats-the-double-exclamation-mark-for-in-javascript/</link><guid isPermaLink="true">https://blove.dev/posts/2014-09-02-whats-the-double-exclamation-mark-for-in-javascript/</guid><description>If you have ever noticed a double exclamation mark (!!) in someone&apos;s JavaScript code you may be curious what it&apos;s for and what it does.</description><pubDate>Tue, 02 Sep 2014 00:00:00 GMT</pubDate></item><item><title>Bootstrap Git Submodule Workflow</title><link>https://blove.dev/posts/2014-08-21-bootstrap-git-submodule-workflow/</link><guid isPermaLink="true">https://blove.dev/posts/2014-08-21-bootstrap-git-submodule-workflow/</guid><description>I have used Bootstrap for projects in the past but I have always downloaded the precompiled bootstrap files. While this has worked easily in the past, there are some downsides.</description><pubDate>Thu, 21 Aug 2014 00:00:00 GMT</pubDate></item><item><title>Twitter Sign In using OAuth and ColdFusion</title><link>https://blove.dev/posts/2014-08-20-twitter-sign-in-using-oauth-and-coldfusion/</link><guid isPermaLink="true">https://blove.dev/posts/2014-08-20-twitter-sign-in-using-oauth-and-coldfusion/</guid><description>Enabling your users to authenticate to your website using a popular social media service such as Facebook or Twitter can increase your sign-up conversion rates.</description><pubDate>Wed, 20 Aug 2014 00:00:00 GMT</pubDate></item><item><title>Simple OAuth 1.0 using ColdFusion</title><link>https://blove.dev/posts/2014-08-19-simple-oauth-1-0-using-coldfusion/</link><guid isPermaLink="true">https://blove.dev/posts/2014-08-19-simple-oauth-1-0-using-coldfusion/</guid><description>As part of a project to integrate with a REST API I have developed a small project for OAuth 1.0 using ColdFusion.</description><pubDate>Tue, 19 Aug 2014 00:00:00 GMT</pubDate></item><item><title>One Day With Expressjs</title><link>https://blove.dev/posts/2014-08-14-one-day-with-expressjs/</link><guid isPermaLink="true">https://blove.dev/posts/2014-08-14-one-day-with-expressjs/</guid><description>I have spent one day (so far) learning expressjs -- a node.js framework for a web application server.</description><pubDate>Thu, 14 Aug 2014 00:00:00 GMT</pubDate></item><item><title>Lowercase Your URIs</title><link>https://blove.dev/posts/2014-08-11-lowercase-your-uris/</link><guid isPermaLink="true">https://blove.dev/posts/2014-08-11-lowercase-your-uris/</guid><description>For SEO purposes, it is often necessary to enforce lowercase URIs on your website.</description><pubDate>Mon, 11 Aug 2014 00:00:00 GMT</pubDate></item><item><title>Retina and Responsive HTML5 Images</title><link>https://blove.dev/posts/2014-08-07-retina-display-images/</link><guid isPermaLink="true">https://blove.dev/posts/2014-08-07-retina-display-images/</guid><description>With the popularity of retina and high definition displays on the rise it is now more important than ever for web developers to use high definition images.</description><pubDate>Thu, 07 Aug 2014 00:00:00 GMT</pubDate></item><item><title>WordPress Plugin using HTTPS</title><link>https://blove.dev/posts/2014-08-04-wordpress-plugin-using-https/</link><guid isPermaLink="true">https://blove.dev/posts/2014-08-04-wordpress-plugin-using-https/</guid><description>This post is mainly focused at those using a WordPress plugin that is old (and probably should not be used anymore) and is causing issues when attempting to load your WordPress blog over SSL via HTTPS.</description><pubDate>Mon, 04 Aug 2014 00:00:00 GMT</pubDate></item><item><title>ColdFusion 10 Run As User on Mac</title><link>https://blove.dev/posts/2014-07-10-coldfusion-10-run-as-user-on-mac/</link><guid isPermaLink="true">https://blove.dev/posts/2014-07-10-coldfusion-10-run-as-user-on-mac/</guid><description>During the installation of ColdFusion 10 you have the option to enable the automatic startup of the ColdFusion application server during the boot process on your machine.</description><pubDate>Thu, 10 Jul 2014 00:00:00 GMT</pubDate></item><item><title>Mac OS X Mavericks and pdo_odbc PHP extension</title><link>https://blove.dev/posts/2014-07-10-mac-os-x-mavericks-and-pdo_odbc-php-extension/</link><guid isPermaLink="true">https://blove.dev/posts/2014-07-10-mac-os-x-mavericks-and-pdo_odbc-php-extension/</guid><description>Compiling and installing the `pdo_odbc` PHP extension is not for the light of heart.</description><pubDate>Thu, 10 Jul 2014 00:00:00 GMT</pubDate></item><item><title>VMWare Fusion to Virtual Box</title><link>https://blove.dev/posts/2014-06-09-vmware-fusion-to-virtual-box/</link><guid isPermaLink="true">https://blove.dev/posts/2014-06-09-vmware-fusion-to-virtual-box/</guid><description>Based on reading other blogs and websites, exporting a virtual machine from VMware Fusion to Virtual Box can be accomplished into two ways.</description><pubDate>Mon, 09 Jun 2014 00:00:00 GMT</pubDate></item><item><title>Simple Tomcat7 Install on Ubuntu 10</title><link>https://blove.dev/posts/2014-06-04-simple-tomcat7-install-on-ubuntu-10/</link><guid isPermaLink="true">https://blove.dev/posts/2014-06-04-simple-tomcat7-install-on-ubuntu-10/</guid><description>Here&apos;s a quick and simple install guide for Tomcat7 on Ubuntu.</description><pubDate>Wed, 04 Jun 2014 00:00:00 GMT</pubDate></item><item><title>Upgrading to Apache 2.4 from Apache HTTP Server 2.2.x</title><link>https://blove.dev/posts/2014-04-23-upgrading-to-apache-2-4-from-apache-http-server-2-2-x/</link><guid isPermaLink="true">https://blove.dev/posts/2014-04-23-upgrading-to-apache-2-4-from-apache-http-server-2-2-x/</guid><description>Upgrading from Apache 2.x to the latest version of Apache 2.4 may require some changes to your configuration.</description><pubDate>Wed, 23 Apr 2014 00:00:00 GMT</pubDate></item><item><title>Add Git Composer Dependency</title><link>https://blove.dev/posts/2014-04-21-add-git-composer-dependency/</link><guid isPermaLink="true">https://blove.dev/posts/2014-04-21-add-git-composer-dependency/</guid><description>It&apos;s really easy to add a dependency to your PHP project using composer when the package is available in the packagist library.</description><pubDate>Mon, 21 Apr 2014 00:00:00 GMT</pubDate></item><item><title>Web Development Automation - apache Ant</title><link>https://blove.dev/posts/2014-04-18-web-development-automation-apache-ant/</link><guid isPermaLink="true">https://blove.dev/posts/2014-04-18-web-development-automation-apache-ant/</guid><description>This is the first part in my series on Web Development Automation.</description><pubDate>Fri, 18 Apr 2014 00:00:00 GMT</pubDate></item><item><title>Web Development Automation - Getting Started With Grunt Tutorial</title><link>https://blove.dev/posts/2014-04-18-web-development-automation-getting-started-with-grunt-tutorial/</link><guid isPermaLink="true">https://blove.dev/posts/2014-04-18-web-development-automation-getting-started-with-grunt-tutorial/</guid><description>This is the second part in my series on Web Development Automation.</description><pubDate>Fri, 18 Apr 2014 00:00:00 GMT</pubDate></item><item><title>Web Development Automation - gruntfile Using CoffeeScript</title><link>https://blove.dev/posts/2014-04-18-web-development-automation-gruntfile-using-coffeescript/</link><guid isPermaLink="true">https://blove.dev/posts/2014-04-18-web-development-automation-gruntfile-using-coffeescript/</guid><description>This is the third post in a series on automation in web development.</description><pubDate>Fri, 18 Apr 2014 00:00:00 GMT</pubDate></item><item><title>Web Development Automation</title><link>https://blove.dev/posts/2014-04-18-web-development-automation/</link><guid isPermaLink="true">https://blove.dev/posts/2014-04-18-web-development-automation/</guid><description>In my web development automation series we will learn the basics of automating your JavaScript and CSS development.</description><pubDate>Fri, 18 Apr 2014 00:00:00 GMT</pubDate></item><item><title>Open Graph Meta Tags</title><link>https://blove.dev/posts/2013-11-01-open-graph-meta-tags/</link><guid isPermaLink="true">https://blove.dev/posts/2013-11-01-open-graph-meta-tags/</guid><description>Does your web site implement the Open Graph protocol?</description><pubDate>Fri, 01 Nov 2013 00:00:00 GMT</pubDate></item><item><title>Async typekit using jQuery and CoffeeScript</title><link>https://blove.dev/posts/2013-10-23-async-typekit-using-jquery-and-coffeescript/</link><guid isPermaLink="true">https://blove.dev/posts/2013-10-23-async-typekit-using-jquery-and-coffeescript/</guid><description>Using TypeKit? Using CoffeeScript? Want to load the typekit library asynchronously using jQuery?</description><pubDate>Wed, 23 Oct 2013 00:00:00 GMT</pubDate></item><item><title>FTP Facade Utility for ColdFusion</title><link>https://blove.dev/posts/2013-10-23-ftp-facade-utility-for-coldfusion/</link><guid isPermaLink="true">https://blove.dev/posts/2013-10-23-ftp-facade-utility-for-coldfusion/</guid><description>In a recent project at work we needed a simpler approach to using the FTP solution built into Adobe ColdFusion.</description><pubDate>Wed, 23 Oct 2013 00:00:00 GMT</pubDate></item><item><title>OS X Mavericks and Apache</title><link>https://blove.dev/posts/2013-10-23-os-x-mavericks-and-apache/</link><guid isPermaLink="true">https://blove.dev/posts/2013-10-23-os-x-mavericks-and-apache/</guid><description>Web Development with Apache + PHP on OS X Mavericks</description><pubDate>Wed, 23 Oct 2013 00:00:00 GMT</pubDate></item><item><title>Logger Service for ColdFusion</title><link>https://blove.dev/posts/2013-10-22-logger-service-for-coldfusion/</link><guid isPermaLink="true">https://blove.dev/posts/2013-10-22-logger-service-for-coldfusion/</guid><description>Simple implementation using cfscript and object-oriented ColdFusion to create a logger service layer.</description><pubDate>Tue, 22 Oct 2013 00:00:00 GMT</pubDate></item><item><title>Getting Started with Composer and CakePHP</title><link>https://blove.dev/posts/2013-10-21-getting-started-with-composer-and-cakephp/</link><guid isPermaLink="true">https://blove.dev/posts/2013-10-21-getting-started-with-composer-and-cakephp/</guid><description>Composer is a dependency management tool for PHP; perhaps comparable to using Maven for a Java project.</description><pubDate>Mon, 21 Oct 2013 00:00:00 GMT</pubDate></item><item><title>JavaScript&apos;s hasOwnProperty() method</title><link>https://blove.dev/posts/2013-09-05-javascripts-hasownproperty-method/</link><guid isPermaLink="true">https://blove.dev/posts/2013-09-05-javascripts-hasownproperty-method/</guid><description>A common question asked by students who are learning JavaScript is what is the purpose of the hasOwnProperty() method?</description><pubDate>Thu, 05 Sep 2013 00:00:00 GMT</pubDate></item><item><title>Add new sudo user to EC2 Ubuntu</title><link>https://blove.dev/posts/2013-06-18-add-new-sudo-user-to-ec2-ubuntu/</link><guid isPermaLink="true">https://blove.dev/posts/2013-06-18-add-new-sudo-user-to-ec2-ubuntu/</guid><description>This post is more for me as a reference guide for adding a new user to Ubuntu.</description><pubDate>Tue, 18 Jun 2013 00:00:00 GMT</pubDate></item><item><title>Increase Java Heap for Maven Build</title><link>https://blove.dev/posts/2013-05-23-increase-java-heap-for-maven-build/</link><guid isPermaLink="true">https://blove.dev/posts/2013-05-23-increase-java-heap-for-maven-build/</guid><description>If you have ever run into an issue with the Java Heap space when doing a Maven build, you can easily give more memory to Java.</description><pubDate>Thu, 23 May 2013 00:00:00 GMT</pubDate></item><item><title>Git + git-flow</title><link>https://blove.dev/posts/2013-04-08-git-plus-git-flow/</link><guid isPermaLink="true">https://blove.dev/posts/2013-04-08-git-plus-git-flow/</guid><description>Using the Git-flow model with Git makes it easy to work on features, releases and hotfixes.</description><pubDate>Mon, 08 Apr 2013 00:00:00 GMT</pubDate></item><item><title>Coding Conventions or Guidelines for Objective-C</title><link>https://blove.dev/posts/2012-12-19-coding-conventions-or-guidelines-for-objective-c/</link><guid isPermaLink="true">https://blove.dev/posts/2012-12-19-coding-conventions-or-guidelines-for-objective-c/</guid><description>When developing a framework, or when developing as part of a team, it is a good idea to have an agreed set of coding guidelines.</description><pubDate>Wed, 19 Dec 2012 00:00:00 GMT</pubDate></item><item><title>How to show Interstitial Ads on iPad apps</title><link>https://blove.dev/posts/2012-12-17-how-to-show-interstitial-ads-on-ipad-apps/</link><guid isPermaLink="true">https://blove.dev/posts/2012-12-17-how-to-show-interstitial-ads-on-ipad-apps/</guid><description>We&apos;ve all seen an interstitial ad when playing a free game on our iPad or iPhone.</description><pubDate>Mon, 17 Dec 2012 00:00:00 GMT</pubDate></item><item><title>Hide status bar on iPhone and iPad apps</title><link>https://blove.dev/posts/2012-12-14-hide-status-bar-on-iphone-and-ipad-apps/</link><guid isPermaLink="true">https://blove.dev/posts/2012-12-14-hide-status-bar-on-iphone-and-ipad-apps/</guid><description>It&apos;s really easy to hide the status bar on your iPhone and iPad apps.</description><pubDate>Fri, 14 Dec 2012 00:00:00 GMT</pubDate></item><item><title>How to create an iPad popover view</title><link>https://blove.dev/posts/2012-12-10-how-to-create-an-ipad-popover-view/</link><guid isPermaLink="true">https://blove.dev/posts/2012-12-10-how-to-create-an-ipad-popover-view/</guid><description>In this tutorial we are going to walk through the steps necessary to create a popover view in your iPad application.</description><pubDate>Mon, 10 Dec 2012 00:00:00 GMT</pubDate></item><item><title>Objective C Image Naming Conventions</title><link>https://blove.dev/posts/2012-11-01-objective-c-image-naming-conventions/</link><guid isPermaLink="true">https://blove.dev/posts/2012-11-01-objective-c-image-naming-conventions/</guid><description>When using images in your iOS applications, you will need to have different sizes images.</description><pubDate>Thu, 01 Nov 2012 00:00:00 GMT</pubDate></item><item><title>Newlines stored in NSString attributes in Core Data</title><link>https://blove.dev/posts/2012-10-19-newlines-stored-in-nsstring-attributes-in-core-data/</link><guid isPermaLink="true">https://blove.dev/posts/2012-10-19-newlines-stored-in-nsstring-attributes-in-core-data/</guid><description>I recently ran into an interesting issue that I thought I would write about.</description><pubDate>Fri, 19 Oct 2012 00:00:00 GMT</pubDate></item><item><title>NSCopying Protocol</title><link>https://blove.dev/posts/2012-10-19-nscopying-protocol/</link><guid isPermaLink="true">https://blove.dev/posts/2012-10-19-nscopying-protocol/</guid><description>I have a factory object for creating new core data entities based on a predicate.</description><pubDate>Fri, 19 Oct 2012 00:00:00 GMT</pubDate></item><item><title>Segue Identifiers</title><link>https://blove.dev/posts/2012-10-19-segue-identifiers/</link><guid isPermaLink="true">https://blove.dev/posts/2012-10-19-segue-identifiers/</guid><description>How many times do you declare the same string for a segue identifier in your view controller&apos;s code? Perhaps just one, or twice, or more?</description><pubDate>Fri, 19 Oct 2012 00:00:00 GMT</pubDate></item><item><title>Target Conditionals in Objective-C</title><link>https://blove.dev/posts/2012-10-12-target-conditionals-in-objective-c/</link><guid isPermaLink="true">https://blove.dev/posts/2012-10-12-target-conditionals-in-objective-c/</guid><description>When developing an application I want to be able to set a variable based on the target.</description><pubDate>Fri, 12 Oct 2012 00:00:00 GMT</pubDate></item><item><title>Synthesize by Default with Xcode 4.4</title><link>https://blove.dev/posts/2012-10-08-synthesize-by-default-with-xcode-4-4/</link><guid isPermaLink="true">https://blove.dev/posts/2012-10-08-synthesize-by-default-with-xcode-4-4/</guid><description>Objective-C is a great programming language, and has had support for declaring class properties via the `@property` keyword.</description><pubDate>Mon, 08 Oct 2012 00:00:00 GMT</pubDate></item><item><title>Uniquely identify your iOS app users</title><link>https://blove.dev/posts/2012-10-04-uniquely-identify-your-ios-app-users/</link><guid isPermaLink="true">https://blove.dev/posts/2012-10-04-uniquely-identify-your-ios-app-users/</guid><description>In iOS 5 Apple deprecated the `[UIDevice uniqueIdentier]`, which returned the UDID (Unique Device Identifier).</description><pubDate>Thu, 04 Oct 2012 00:00:00 GMT</pubDate></item><item><title>LESS tutorial and presentation</title><link>https://blove.dev/posts/2012-10-03-less-tutorial-and-presentation/</link><guid isPermaLink="true">https://blove.dev/posts/2012-10-03-less-tutorial-and-presentation/</guid><description>I have prepared a tutorial and presentation to give an overview and detailed look at the LESS programming language.</description><pubDate>Wed, 03 Oct 2012 00:00:00 GMT</pubDate></item><item><title>NSArray, NSDictionary and NSNumber literals</title><link>https://blove.dev/posts/2012-10-01-nsarray-nsdictionary-and-nsnumber-literals/</link><guid isPermaLink="true">https://blove.dev/posts/2012-10-01-nsarray-nsdictionary-and-nsnumber-literals/</guid><description>With the release of Apple&apos;s updates to the LLVM compiler, it is now possible to use object literal notation in Objective-C.</description><pubDate>Mon, 01 Oct 2012 00:00:00 GMT</pubDate></item><item><title>UIToolbar for simple and easy toolbars in iOS</title><link>https://blove.dev/posts/2012-10-01-uitoolbar-for-simple-and-easy-toolbars-in-ios/</link><guid isPermaLink="true">https://blove.dev/posts/2012-10-01-uitoolbar-for-simple-and-easy-toolbars-in-ios/</guid><description>The `UIToolbar` class provides a simple and easy way to create a toolbar for your users.</description><pubDate>Mon, 01 Oct 2012 00:00:00 GMT</pubDate></item><item><title>Setting custom HTTP request headers with RestKit</title><link>https://blove.dev/posts/2012-09-27-setting-custom-http-request-headers-with-restkit/</link><guid isPermaLink="true">https://blove.dev/posts/2012-09-27-setting-custom-http-request-headers-with-restkit/</guid><description>RestKit is a great REST framework for Objective-C whose goal is to simplify consuming and modeling of RESTful APIs.</description><pubDate>Thu, 27 Sep 2012 00:00:00 GMT</pubDate></item><item><title>Core Data Aggregate Functions</title><link>https://blove.dev/posts/2012-09-26-core-data-aggregate-functions/</link><guid isPermaLink="true">https://blove.dev/posts/2012-09-26-core-data-aggregate-functions/</guid><description>Core Data is a beautifully designed object mapping and persistence framework -- big kudos to the Apple engineers.</description><pubDate>Wed, 26 Sep 2012 00:00:00 GMT</pubDate></item><item><title>NSUserDefaults</title><link>https://blove.dev/posts/2012-09-25-nsuserdefaults/</link><guid isPermaLink="true">https://blove.dev/posts/2012-09-25-nsuserdefaults/</guid><description>NSUserDefaults is the Objective-C class that allows you to store and retrieve user preferences for your application.</description><pubDate>Tue, 25 Sep 2012 00:00:00 GMT</pubDate></item><item><title>Starting with LESS</title><link>https://blove.dev/posts/2012-09-06-starting-with-less/</link><guid isPermaLink="true">https://blove.dev/posts/2012-09-06-starting-with-less/</guid><description>It&apos;s been on my list for awhile, and I was finally able to learn more about the LESS language.</description><pubDate>Thu, 06 Sep 2012 00:00:00 GMT</pubDate></item><item><title>Coda 2 Git toolkit</title><link>https://blove.dev/posts/2012-07-24-coda-2-git-toolkit/</link><guid isPermaLink="true">https://blove.dev/posts/2012-07-24-coda-2-git-toolkit/</guid><description>The Coda 2 application includes source control management (SCM) within the editor.</description><pubDate>Tue, 24 Jul 2012 00:00:00 GMT</pubDate></item><item><title>SQL Server Subquery as a List</title><link>https://blove.dev/posts/2012-07-24-sql-server-subquery-as-a-list/</link><guid isPermaLink="true">https://blove.dev/posts/2012-07-24-sql-server-subquery-as-a-list/</guid><description>I have a subquery that I want to aggregate into a semi-colon separated list.</description><pubDate>Tue, 24 Jul 2012 00:00:00 GMT</pubDate></item></channel></rss>