(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
<!doctype html> | |
<!-- http://taylor.fausak.me/2015/01/27/ios-8-web-apps/ --> | |
<html> | |
<head> | |
<title>iOS 8 web app</title> | |
<!-- CONFIGURATION --> |
(Hi, I'm Adam Smith. I started Xobni in 2006, which has written the most sophisticated and successful MS Outlook addin in history. This took millions of dollars and several years of work by some of the best programmers in the valley. Other startups have thrown millions of dollars at building Outlook addins and failed. This is my take on the idea of building a new MS Outlook addin as of 2012.) | |
My general advice is avoid any Outlook addins or desktop software if at all possible. More and more stuff is moving to the web, and the table stakes of doing anything reasonably well in Outlook are remarkably high. Consider it to be on the same level of making hardware with regards to the cost of bugs/mistakes, amount of black art, etc., but maybe a little higher since there's a much weaker ecosystem of people doing it. I pasted below in this email an old list of "gotchas" or things-to-know I made after leaving Xobni. It's not comprehensive but will include some of the biggest ones from a pain perspective. | |
The |
// from: http://stackoverflow.com/questions/2226920/how-to-monitor-clipboard-content-changes-in-c | |
/// <summary> | |
/// Provides notifications when the contents of the clipboard is updated. | |
/// </summary> | |
public sealed class ClipboardNotification | |
{ | |
/// <summary> | |
/// Occurs when the contents of the clipboard is updated. | |
/// </summary> |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
# FindItemBySourceKey.ps1 | |
param([string]$HostName, [string]$UserName, [string]$Mailbox, [Parameter(Mandatory=$True)][string]$PrSourceKey) | |
######################################### | |
# Update the path below to match the actual path to the EWS managed API DLL. | |
# | |
Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll" |
export const chaosTestStrings = (): void => { | |
const textNodes = getAllTextNodes(document.body); | |
for (const node of textNodes) { | |
const textNodeLength = node.textContent ? node.textContent.length : 0; | |
if (node.textContent === null) { | |
return; | |
} | |
if (node.parentElement instanceof Element) { | |
if (node.parentElement.dataset.originalText === undefined) { |