<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>PVIEITO</title>
    <description></description>
    <link>https://pvieito.com//</link>
    <atom:link href="https://pvieito.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Mon, 26 Jan 2026 18:37:33 +0100</pubDate>
    <lastBuildDate>Mon, 26 Jan 2026 18:37:33 +0100</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>Inside Claude Cowork: How Anthropic Runs Claude Code in a Local VM on Your Mac</title>
        <pubDate>Mon, 26 Jan 2026 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2026/01/inside-claude-cowork</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2026/01/inside-claude-cowork</guid>
        
        
        <description>&lt;p&gt;&lt;img src=&quot;/media/2026/claude-cowork.png&quot; alt=&quot;Claude Cowork&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://claude.com/product/cowork&quot;&gt;Claude Cowork&lt;/a&gt;&lt;/strong&gt; is a feature of the Claude Desktop app that allows Claude to execute code, manipulate files, and perform complex tasks autonomously. This post documents a deep investigation into how it works under the hood, covering the architecture, security layers, and interesting implementation details.&lt;/p&gt;

&lt;h3 id=&quot;tldr&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;Claude Cowork runs a full Linux virtual machine locally using native virtualization. Inside this VM, it executes Claude Code CLI within a multi-layered sandbox. Network access is restricted to a strict allowlist, and MCP servers from Claude Desktop are dynamically passed through to the VM. Multiple conversations share a single VM instance, but each gets its own isolated session.&lt;/p&gt;

&lt;h2 class=&quot;no_toc&quot; id=&quot;contents&quot;&gt;Contents&lt;/h2&gt;
&lt;ul id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#tldr&quot; id=&quot;markdown-toc-tldr&quot;&gt;TL;DR&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#introduction&quot; id=&quot;markdown-toc-introduction&quot;&gt;Introduction&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#architecture&quot; id=&quot;markdown-toc-architecture&quot;&gt;Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#isolation&quot; id=&quot;markdown-toc-isolation&quot;&gt;Isolation&lt;/a&gt;    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#virtual-machine&quot; id=&quot;markdown-toc-virtual-machine&quot;&gt;Virtual Machine&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#vm-bundle-structure&quot; id=&quot;markdown-toc-vm-bundle-structure&quot;&gt;VM Bundle Structure&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#security-layers&quot; id=&quot;markdown-toc-security-layers&quot;&gt;Security Layers&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#multi-session-architecture&quot; id=&quot;markdown-toc-multi-session-architecture&quot;&gt;Multi-Session Architecture&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#file-sharing&quot; id=&quot;markdown-toc-file-sharing&quot;&gt;File Sharing&lt;/a&gt;    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#path-translation&quot; id=&quot;markdown-toc-path-translation&quot;&gt;Path Translation&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#networking&quot; id=&quot;markdown-toc-networking&quot;&gt;Networking&lt;/a&gt;    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#allowlist&quot; id=&quot;markdown-toc-allowlist&quot;&gt;Allowlist&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#host-vm-communication&quot; id=&quot;markdown-toc-host-vm-communication&quot;&gt;Host-VM Communication&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#mcp&quot; id=&quot;markdown-toc-mcp&quot;&gt;MCP&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#pre-installed-tools&quot; id=&quot;markdown-toc-pre-installed-tools&quot;&gt;Pre-installed Tools&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#security-implications&quot; id=&quot;markdown-toc-security-implications&quot;&gt;Security Implications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#conclusion&quot; id=&quot;markdown-toc-conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;

&lt;p&gt;When you start a Cowork session in Claude Desktop, Claude can suddenly run Python scripts, process videos with ffmpeg, create PowerPoint presentations, and more. But how does it actually work? Is it a Docker container? A remote server?&lt;/p&gt;

&lt;p&gt;Cowork is currently only available on macOS, so this investigation was conducted on that platform from both sides: from within the execution environment (Claude’s perspective) and from the host system (the user’s perspective), using Claude Code 1.1.799 (2e02b6). The findings reveal a thoughtful and robust architecture.&lt;/p&gt;

&lt;h2 id=&quot;architecture&quot;&gt;Architecture&lt;/h2&gt;

&lt;p&gt;The core architecture consists of three main layers:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;┌────────────────────────────────────────────────────────────────────────┐
│                              macOS Host                                │
│                                                                        │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │  Claude.app (Electron)                                         │   │
│   │    ├── UI Renderer                                             │   │
│   │    ├── MCP Servers (Slack, Atlassian, etc.)                    │   │
│   │    ├── Network Proxy Service                                   │   │
│   │    └── Virtualization.framework                                │   │
│   └────────────────────────────────────────────────────────────────┘   │
│                                    │                                   │
│         ┌──────────────────────────┼──────────────────────────┐        │
│         │  stdio    VirtioFS    MCP SDK    HTTP/SOCKS         │        │
│         │  pipes    mounts      protocol   proxy              │        │
│         └──────────────────────────┼──────────────────────────┘        │
│                                    ▼                                   │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │  Ubuntu 22.04 VM (ARM64)                                       │   │
│   │                                                                │   │
│   │    /sessions/&amp;lt;name&amp;gt;/mnt/ ◄── VirtioFS ──► ~/&amp;lt;shared-folder&amp;gt;/   │   │
│   │                                                                │   │
│   │    ┌────────────────────────────────────────────────────────┐  │   │
│   │    │  bubblewrap sandbox + seccomp (per session)            │  │   │
│   │    │                                                        │  │   │
│   │    │    Claude Code CLI v2.1.15                             │  │   │
│   │    │      --model claude-opus-4-5-20251101                  │  │   │
│   │    │      --mcp-config {...}                                │  │   │
│   │    │      --allowedTools Task,Bash,Grep,...                 │  │   │
│   │    │                                                        │  │   │
│   │    └────────────────────────────────────────────────────────┘  │   │
│   │                                                                │   │
│   │    Network: :3128 (HTTP) / :1080 (SOCKS) → Allowlist           │   │
│   │    Disks: rootfs.img (10GB) + sessiondata.img (36MB)           │   │
│   │                                                                │   │
│   └────────────────────────────────────────────────────────────────┘   │
│                                                                        │
└────────────────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Claude Cowork is &lt;strong&gt;not&lt;/strong&gt; a separate model, it is &lt;a href=&quot;https://github.com/anthropics/claude-code&quot;&gt;Claude Code CLI&lt;/a&gt; running inside the VM, orchestrated by Claude Desktop:&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Component&lt;/th&gt;
      &lt;th&gt;Value&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;CLI Binary&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/usr/local/bin/claude&lt;/code&gt; (ELF 64-bit ARM aarch64)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;CLI Version&lt;/td&gt;
      &lt;td&gt;2.1.15 (Claude Code)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Model&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;claude-opus-4-5-20251101&lt;/code&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;I/O Format&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;stream-json&lt;/code&gt; (bidirectional)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Session Resume&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--resume &amp;lt;session-uuid&amp;gt;&lt;/code&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;The CLI is launched with the following arguments:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/usr/local/bin/claude &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--output-format&lt;/span&gt; stream-json &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--input-format&lt;/span&gt; stream-json &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--model&lt;/span&gt; claude-opus-4-5-20251101 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--resume&lt;/span&gt; &amp;lt;session-uuid&amp;gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--allowedTools&lt;/span&gt; Task,Bash,Glob,Grep,Read,Edit,Write,... &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--mcp-config&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;&apos;{&quot;mcpServers&quot;: {...}}&apos;&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--permission-mode&lt;/span&gt; default &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;--plugin-dir&lt;/span&gt; /sessions/&amp;lt;name&amp;gt;/mnt/.skills
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;isolation&quot;&gt;Isolation&lt;/h2&gt;

&lt;h3 id=&quot;virtual-machine&quot;&gt;Virtual Machine&lt;/h3&gt;

&lt;p&gt;The execution environment is a complete Ubuntu 22.04 LTS virtual machine running on ARM64 architecture:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;PRETTY_NAME=&quot;Ubuntu 22.04.5 LTS&quot;
Linux claude 6.8.0-90-generic aarch64 GNU/Linux
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This is not a Docker container or a lightweight sandbox, it is a full VM with its own kernel, managed by Apple’s Virtualization Framework. The VM runs via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;com.apple.Virtualization.VirtualMachine&lt;/code&gt;, the same technology used by tools like &lt;a href=&quot;https://mac.getutm.app&quot;&gt;UTM&lt;/a&gt; and &lt;a href=&quot;https://tart.run&quot;&gt;Tart&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Resources allocated:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;4 vCPUs (ARM64)&lt;/li&gt;
  &lt;li&gt;3.8 GB RAM&lt;/li&gt;
  &lt;li&gt;~10 GB virtual disk (sparse)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;vm-bundle-structure&quot;&gt;VM Bundle Structure&lt;/h3&gt;

&lt;p&gt;The VM files are stored locally at:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~/Library/Application Support/Claude/vm_bundles/claudevm.bundle/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;File&lt;/th&gt;
      &lt;th&gt;Size&lt;/th&gt;
      &lt;th&gt;Purpose&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rootfs.img&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;10 GB&lt;/td&gt;
      &lt;td&gt;Ubuntu root filesystem (sparse)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sessiondata.img&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;36 MB&lt;/td&gt;
      &lt;td&gt;Persistent session data (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/sessions&lt;/code&gt;)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;efivars.fd&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;128 KB&lt;/td&gt;
      &lt;td&gt;UEFI boot variables&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;macAddress&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;17 B&lt;/td&gt;
      &lt;td&gt;Virtual MAC address&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;machineIdentifier&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;70 B&lt;/td&gt;
      &lt;td&gt;Unique VM identifier&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.rootfs.img.origin&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;40 B&lt;/td&gt;
      &lt;td&gt;SHA1 hash for image verification&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;rootfs.img&lt;/code&gt; is a sparse file, meaning it does not actually consume 10 GB on disk, only the space needed for actual data.&lt;/p&gt;

&lt;h3 id=&quot;security-layers&quot;&gt;Security Layers&lt;/h3&gt;

&lt;p&gt;The VM employs multiple security layers:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;┌──────────────────────────────────────────────┐
│  macOS Host                                  │
│    └── Apple Virtualization Framework        │
│          └── Ubuntu 22.04 VM                 │
│                └── bubblewrap sandbox        │
│                      └── seccomp filter      │
│                            └── Claude Code   │
└──────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;VM isolation&lt;/strong&gt;: Full hardware-level separation&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;bubblewrap (bwrap)&lt;/strong&gt;: Linux sandboxing tool&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;seccomp&lt;/strong&gt;: System call filtering&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Network isolation&lt;/strong&gt;: Traffic routed through local proxy (ports 3128/1080)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;multi-session-architecture&quot;&gt;Multi-Session Architecture&lt;/h3&gt;

&lt;p&gt;A single VM instance serves multiple Cowork conversations simultaneously. Each conversation gets its own isolated session:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/sessions/
├── intelligent-loving-darwin/  ← Chat session 1
├── dreamy-optimistic-babbage/  ← Chat session 2
└── ...
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Session names are randomly generated using a Docker-container-like pattern: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;adjective-adjective-scientist&lt;/code&gt;.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Resource&lt;/th&gt;
      &lt;th&gt;Shared?&lt;/th&gt;
      &lt;th&gt;Notes&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/tmp/&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;Sessions can see each other’s temporary files&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/sessions/&amp;lt;name&amp;gt;/&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;No&lt;/td&gt;
      &lt;td&gt;Permissions &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;drwxr-x---&lt;/code&gt; block cross-session access&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;User (UID)&lt;/td&gt;
      &lt;td&gt;No&lt;/td&gt;
      &lt;td&gt;Each active session has its own Linux user (e.g., &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uid=1002&lt;/code&gt;)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Kernel/Processes&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;Same VM, same kernel&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Network proxy&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
      &lt;td&gt;Same allowlist rules&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;This was verified by creating a file in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/tmp/&lt;/code&gt; from one session and successfully reading it from another, while attempting &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ls /sessions/dreamy-optimistic-babbage/&lt;/code&gt; returned &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Permission denied&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Interestingly, inactive sessions show &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;nobody:nogroup&lt;/code&gt; as owner, while the active session has its own dedicated user. This suggests sessions are “depersonalized” when closed.&lt;/p&gt;

&lt;h2 id=&quot;file-sharing&quot;&gt;File Sharing&lt;/h2&gt;

&lt;p&gt;User folders are shared between macOS and the VM using &lt;a href=&quot;https://virtio-fs.gitlab.io&quot;&gt;VirtioFS&lt;/a&gt;, Apple’s high-performance paravirtualized filesystem:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/mnt/.virtiofs-root/shared/Downloads → /sessions/.../mnt/Downloads
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This enables bidirectional file access: Claude can read and write to the user’s selected folder, and changes appear instantly on both sides.&lt;/p&gt;

&lt;h3 id=&quot;path-translation&quot;&gt;Path Translation&lt;/h3&gt;

&lt;p&gt;Claude Desktop performs smart path translation in the UI. When Claude executes:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cp &lt;/span&gt;report.pdf /sessions/intelligent-loving-darwin/mnt/Downloads/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The user sees:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cp &lt;/span&gt;report.pdf ~/Downloads/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This translation is context-aware: it only rewrites paths that are actual file arguments, not string literals in other commands.&lt;/p&gt;

&lt;h2 id=&quot;networking&quot;&gt;Networking&lt;/h2&gt;

&lt;h3 id=&quot;allowlist&quot;&gt;Allowlist&lt;/h3&gt;

&lt;p&gt;All network traffic from the VM is routed through a local proxy with a strict allowlist. Direct DNS lookups are blocked (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;socket(): Operation not permitted&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Allowed domains:&lt;/strong&gt;&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Domain&lt;/th&gt;
      &lt;th&gt;Status&lt;/th&gt;
      &lt;th&gt;Purpose&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;api.anthropic.com&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;200&lt;/td&gt;
      &lt;td&gt;Anthropic API&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pypi.org&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;200&lt;/td&gt;
      &lt;td&gt;Python packages&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;registry.npmjs.org&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;200&lt;/td&gt;
      &lt;td&gt;Node packages&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;Blocked domains:&lt;/strong&gt;&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Domain&lt;/th&gt;
      &lt;th&gt;Response&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;google.com&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;403 Forbidden - blocked-by-allowlist&lt;/code&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;api.github.com&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;403 Forbidden - blocked-by-allowlist&lt;/code&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Any other domain&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;403 Forbidden - blocked-by-allowlist&lt;/code&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;This means Claude can install dependencies via &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pip&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm&lt;/code&gt;, but cannot make arbitrary HTTP requests from the VM—&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;curl&lt;/code&gt; to non-allowlisted domains is blocked, and the same applies to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;WebFetch&lt;/code&gt; tool. However, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;WebSearch&lt;/code&gt; works as it uses the Anthropic API endpoint.&lt;/p&gt;

&lt;h3 id=&quot;host-vm-communication&quot;&gt;Host-VM Communication&lt;/h3&gt;

&lt;p&gt;Communication between Claude Desktop (macOS) and Claude Code (VM) uses multiple channels:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────────────┐
│  macOS (Claude Desktop)                                         │
│                                                                 │
│    ┌─────────────────┐                                          │
│    │  Electron App   │                                          │
│    │                 │                                          │
│    │  stdio pipes ───┼──────────────────────┐                   │
│    │                 │                      │                   │
│    │  Unix sockets ──┼───┐                  │                   │
│    └─────────────────┘   │                  │                   │
│                          │                  │                   │
└──────────────────────────│──────────────────│───────────────────┘
                           │ virtiofs mount   │ pipes
┌──────────────────────────│──────────────────│───────────────────┐
│  VM                      │                  │                   │
│                          ▼                  ▼                   │
│    /tmp/claude-http-*.sock     pipe:[xxxxx] (stdin)             │
│    /tmp/claude-socks-*.sock    pipe:[xxxxx] (stdout)            │
│           │                         │                           │
│           ▼                         ▼                           │
│    socat → localhost:3128    Claude Code CLI                    │
│    socat → localhost:1080      --input-format stream-json       │
│    (HTTP/SOCKS proxy)          --output-format stream-json      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Channel&lt;/th&gt;
      &lt;th&gt;Mechanism&lt;/th&gt;
      &lt;th&gt;Purpose&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Messages&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Unix pipes (stdin/stdout)&lt;/td&gt;
      &lt;td&gt;JSON stream for user messages and responses&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;HTTP Proxy&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Unix socket → socat → &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:3128&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;HTTP requests (pip, npm, API calls)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;SOCKS Proxy&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;Unix socket → socat → &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:1080&lt;/code&gt;&lt;/td&gt;
      &lt;td&gt;Other network protocols&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;MCP&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;SDK protocol via pipes&lt;/td&gt;
      &lt;td&gt;Communication with MCP servers on host&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Files&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;VirtioFS mount&lt;/td&gt;
      &lt;td&gt;Shared folder access&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;The Unix sockets (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/tmp/claude-*.sock&lt;/code&gt;) are mounted from macOS into the VM via VirtioFS, allowing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;socat&lt;/code&gt; processes inside the VM to bridge network traffic to the host’s proxy.&lt;/p&gt;

&lt;h2 id=&quot;mcp&quot;&gt;MCP&lt;/h2&gt;

&lt;p&gt;One of the most interesting aspects of the architecture is how &lt;a href=&quot;https://modelcontextprotocol.io&quot;&gt;MCP (Model Context Protocol)&lt;/a&gt; servers are integrated. Claude Desktop’s MCP servers are passed to the VM and made available to Claude Code. The MCP configuration is injected via command-line argument:&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;mcpServers&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;ea93ae0e-73b4-4d43-9bb0-2c3720b9d627&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;sdk&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;4b26c136-8d30-4046-b6ad-2e41dde789ea&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;sdk&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;Claude in Chrome&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;sdk&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;Claude in Chrome&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;My Custom Server&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;sdk&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;My Custom Server&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;},&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;cowork&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;sdk&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;cowork&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Official Anthropic integrations use UUIDs as identifiers (e.g., &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ea93ae0e-...&lt;/code&gt; for Atlassian, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;4b26c136-...&lt;/code&gt; for Slack), while third-party and custom servers use human-readable names. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cowork&lt;/code&gt; server is built-in and provides tools like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;request_cowork_directory&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;allow_cowork_file_delete&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;MCP servers configured in Claude Desktop are dynamically passed through to the VM. When a new MCP server is added to Claude Desktop, it becomes available to Cowork sessions. MCP servers use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;type&quot;: &quot;sdk&quot;&lt;/code&gt; which means they communicate through the Claude SDK rather than stdio pipes, enabling Claude inside the VM to interact with applications running on the host.&lt;/p&gt;

&lt;h2 id=&quot;pre-installed-tools&quot;&gt;Pre-installed Tools&lt;/h2&gt;

&lt;p&gt;The VM comes with a comprehensive toolkit:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Languages:&lt;/strong&gt;&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Language&lt;/th&gt;
      &lt;th&gt;Version&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;Python&lt;/td&gt;
      &lt;td&gt;3.10.12&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Node.js&lt;/td&gt;
      &lt;td&gt;22.22.0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;Ruby&lt;/td&gt;
      &lt;td&gt;3.0.2&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;TypeScript&lt;/td&gt;
      &lt;td&gt;5.9.3&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;&lt;strong&gt;CLI Tools:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ffmpeg&lt;/code&gt;/&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ffprobe&lt;/code&gt; 4.4.2 — Video/audio processing&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git&lt;/code&gt; 2.34.1 — Version control&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pandoc&lt;/code&gt; 2.9.2 — Document conversion&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ImageMagick&lt;/code&gt; 6.9.11 — Image manipulation&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ripgrep&lt;/code&gt; — Fast search&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;jq&lt;/code&gt; 1.6 — JSON processing&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sqlite3&lt;/code&gt; — Database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Node.js Packages:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;docx&lt;/code&gt; — Word document creation&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pptxgenjs&lt;/code&gt; — PowerPoint generation&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pdf-lib&lt;/code&gt; — PDF manipulation&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sharp&lt;/code&gt; — Image processing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Python Packages:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;beautifulsoup4&lt;/code&gt; — Web scraping&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;camelot-py&lt;/code&gt; — PDF table extraction&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pandas&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;numpy&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;matplotlib&lt;/code&gt; — Data analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;security-implications&quot;&gt;Security Implications&lt;/h2&gt;

&lt;p&gt;The architecture provides strong isolation:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;No direct host access&lt;/strong&gt;: Claude cannot access arbitrary files on macOS, only the explicitly shared folder&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Network allowlist&lt;/strong&gt;: Only package registries (pypi, npm) and Anthropic’s API are accessible; arbitrary web requests are blocked&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Syscall restrictions&lt;/strong&gt;: seccomp limits what system calls can be made&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Per-session sandboxing&lt;/strong&gt;: Each conversation runs in its own bubblewrap sandbox with a dedicated user&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;DNS blocked&lt;/strong&gt;: Direct DNS lookups fail; all traffic must go through the proxy&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Potential concerns:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Sessions sharing &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/tmp/&lt;/code&gt; could theoretically leak information between conversations&lt;/li&gt;
  &lt;li&gt;The VM persists between sessions, so artifacts may remain in shared spaces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a significant improvement over running code directly on the host or in a simple container.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Claude Cowork represents a thoughtful approach to enabling AI code execution. By running a full Linux VM with multiple security layers, Anthropic has created an environment that is both powerful (full Ubuntu with extensive tooling) and isolated (VM + sandbox + seccomp + network allowlist).&lt;/p&gt;

&lt;p&gt;Key architectural decisions:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;Claude Code as the engine&lt;/strong&gt;: Cowork is Claude Code CLI running inside a sandboxed VM, not a separate product&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Single VM, multiple sessions&lt;/strong&gt;: Efficient resource usage while maintaining per-session isolation&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Apple Virtualization Framework&lt;/strong&gt;: Native ARM64 performance on Apple Silicon&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;VirtioFS&lt;/strong&gt;: Fast, bidirectional file sharing with the host&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;MCP passthrough&lt;/strong&gt;: Desktop MCP servers are dynamically shared with the VM via SDK protocol&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Network allowlist&lt;/strong&gt;: Permits dependency installation while blocking arbitrary web access&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Smart path translation&lt;/strong&gt;: Seamless UX by rewriting VM paths to host paths in the UI&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This architecture allows Claude to perform complex tasks—video processing, document generation, data analysis—while maintaining strong security boundaries. It is a practical solution to the challenge of giving AI systems the ability to execute code safely.&lt;/p&gt;
</description>
      </item>
    
      <item>
        <title>CVE-2024-40801: How a Sandboxed Mac App Could Steal Your Private Data Bypassing TCC Protections</title>
        <pubDate>Sun, 22 Sep 2024 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2024/09/cve-2024-40801</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2024/09/cve-2024-40801</guid>
        
        
        <description>&lt;p&gt;This post includes the details of the first vulnerability I have ever reported to Apple. It was fixed on &lt;a href=&quot;https://support.apple.com/en-us/121247&quot;&gt;macOS Sonoma 14.7&lt;/a&gt; and &lt;a href=&quot;https://support.apple.com/en-us/121238&quot;&gt;macOS Sequoia 15.0&lt;/a&gt; as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CVE-2024-40801&lt;/code&gt;.&lt;/p&gt;

&lt;h3 id=&quot;tldr&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;A vulnerability in macOS allowed a sandboxed app to bypass TCC (Transparency, Consent and Control) protections and access sensitive user data without requiring user permission. By leveraging the &lt;a href=&quot;https://developer.apple.com/documentation/security/app_sandbox/migrating_your_app_s_files_to_its_app_sandbox_container#4098974&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;container-migration.plist&lt;/code&gt; feature&lt;/a&gt;, a sandboxed app could request the migration of TCC-protected files (like Safari history, Mail database, or user documents) to its app container, effectively bypassing TCC and giving the app full access to these files. There are multiple examples included in &lt;a href=&quot;https://github.com/pvieito/ContainerMigrationExploit&quot;&gt;this repository&lt;/a&gt; demonstrating the exploit.&lt;/p&gt;

&lt;h3 id=&quot;initial-report&quot;&gt;Initial Report&lt;/h3&gt;

&lt;p&gt;Below is the full report as submitted to Apple. You can also check the &lt;a href=&quot;https://github.com/pvieito/ContainerMigrationExploit&quot;&gt;GitHub repository&lt;/a&gt; that includes the example projects to reproduce the vulnerability.&lt;/p&gt;

&lt;h4 id=&quot;introduction&quot;&gt;Introduction&lt;/h4&gt;

&lt;p&gt;A sandboxed Mac app can exploit the &lt;a href=&quot;https://developer.apple.com/documentation/security/app_sandbox/migrating_your_app_s_files_to_its_app_sandbox_container#4098974&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;container-migration.plist&lt;/code&gt; feature&lt;/a&gt; to get access to TCC-protected files without any user permission prompt.&lt;/p&gt;

&lt;p&gt;For example, you can request the Safari history file or Mail database to be migrated by the App Sandbox to the app container, and it will happily do it. Once the files are in the app container, the app has full control to read and exfiltrate this data.&lt;/p&gt;

&lt;p&gt;You can use the attached project to reproduce the exploit (check the demo video at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Extra/Videos/ContainerMigrationExploit.mp4&lt;/code&gt;):&lt;/p&gt;

&lt;h4 id=&quot;steps-to-reproduce&quot;&gt;Steps to Reproduce&lt;/h4&gt;

&lt;ol&gt;
  &lt;li&gt;Run the script at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Scripts/ContainerMigrationExploitReset.sh&lt;/code&gt; in a Terminal with Full Disk Access. This script will:
    &lt;ul&gt;
      &lt;li&gt;Reset the App Sandbox container of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Exploit&lt;/code&gt; app (if it exists).&lt;/li&gt;
      &lt;li&gt;Reset the TCC permissions of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Expected&lt;/code&gt; app that shows the proper expected behavior when accessing the protected files.&lt;/li&gt;
      &lt;li&gt;Create a demo file in the user Documents folder named &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;my-secret.txt&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Restore &amp;amp; back up the Safari history database (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;History.db&lt;/code&gt;) and Mail recent searches plist (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;recentSearches.plist&lt;/code&gt;). Both of these files are protected by TCC, and reading them requires Full Disk Access as they contain very sensitive data like contacts and the browsing history. The first time the script runs, the restore will fail, but you can ignore it.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Open the Xcode project at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Projects/ContainerMigrationExploit.xcodeproj&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Run the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Expected&lt;/code&gt; scheme: this is an un-sandboxed app that tries to read directly the files that the exploit app will steal. As you see, it triggers the expected TCC permission prompt when reading the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;my-secret.txt&lt;/code&gt; file in the Documents folder, and it also cannot access the Safari history database nor the Mail recent searches plist as they are stored in protected directories.&lt;/li&gt;
  &lt;li&gt;Now run the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Exploit&lt;/code&gt; scheme: this sandboxed app is able to read the three files without any issue as they have been migrated by the App Sandbox into the app container.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4 id=&quot;expected-results&quot;&gt;Expected Results&lt;/h4&gt;

&lt;p&gt;As demonstrated by the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Expected&lt;/code&gt; scheme, the app should not be able to access any of the data in the protected directories without user permissions and/or Full Disk Access. Even worse, a sandboxed app is able to get more access to sensitive files than an un-sandboxed app using this technique.&lt;/p&gt;

&lt;h4 id=&quot;actual-results&quot;&gt;Actual Results&lt;/h4&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Exploit&lt;/code&gt; app can access sensitive files protected by TCC without any user permission. This same technique can be used to exfiltrate the following data from a fully sandboxed app:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;User documents stored in the Documents folder (without any TCC prompt).&lt;/li&gt;
  &lt;li&gt;Sensitive files in the Library folder:
    &lt;ul&gt;
      &lt;li&gt;Safari history &amp;amp; bookmarks.&lt;/li&gt;
      &lt;li&gt;Full Mail database &amp;amp; contacts.&lt;/li&gt;
      &lt;li&gt;Other apps’ containers’ data.&lt;/li&gt;
      &lt;li&gt;…&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;annex-i&quot;&gt;Annex I&lt;/h3&gt;

&lt;p&gt;This new version of the project includes a new Mail-app-specific example project in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Projects/MailContactsExploit.xcodeproj&lt;/code&gt; that demonstrates how you can use this exploit to dump all your Mail contact addresses without any TCC prompt from a fully sandboxed app (demo video at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Extra/Videos/MailContactsExploit.mp4&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;This same exploit can also be used for a denial-of-service / ransomware attack as the original files (in this example, the Mail database) are deleted by the App Sandbox migration from the original location and are now in full control of the attacker app.&lt;/p&gt;

&lt;h3 id=&quot;annex-ii&quot;&gt;Annex II&lt;/h3&gt;

&lt;p&gt;Some details about how the exploit seems to work under-the-hood:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;The sandboxed app initializes the App Sandbox and connects to the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;secinitd&lt;/code&gt; daemon.&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;secinitd&lt;/code&gt; reads the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;container-migration.plist&lt;/code&gt; file in the app bundle.&lt;/li&gt;
  &lt;li&gt;As &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;secinitd&lt;/code&gt; has the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;kTCCServiceSystemPolicyAllFiles&lt;/code&gt; value in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;com.apple.private.tcc.allow&lt;/code&gt; entitlement, it can access any protected directory and moves the protected files into the app container.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can check the related Endpoint Security events from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;eslogger&lt;/code&gt; in the directory &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Data/EndpointSecurity/&lt;/code&gt;.&lt;/p&gt;

&lt;h3 id=&quot;annex-iii&quot;&gt;Annex III&lt;/h3&gt;

&lt;p&gt;This final version of the project includes a demonstration that this same exploit can also be used to exfiltrate both Calendar &amp;amp; Contacts databases, even though their paths are symlinked inside the app container, by leveraging a custom destination in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;container-migration.plist&lt;/code&gt; file:&lt;/p&gt;

&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;dict&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;key&amp;gt;&lt;/span&gt;Move&lt;span class=&quot;nt&quot;&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;array&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;array&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;nt&quot;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;${Home}/Library/Calendars/Calendar.sqlitedb&lt;span class=&quot;nt&quot;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;nt&quot;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;${Home}/Calendar.sqlitedb&lt;span class=&quot;nt&quot;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;/array&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/array&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/dict&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You can check a Calendar-specific example project at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Projects/CalendarExploit.xcodeproj&lt;/code&gt; and a demo video at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Extra/Videos/CalendarExploit.mp4&lt;/code&gt;.&lt;/p&gt;
</description>
      </item>
    
      <item>
        <title>ChatGPT for Mac was storing all conversations in an unprotected location</title>
        <pubDate>Mon, 08 Jul 2024 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2024/07/chatgpt-unprotected-conversations</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2024/07/chatgpt-unprotected-conversations</guid>
        
        
        <description>&lt;p&gt;&lt;em&gt;This is a recap of &lt;a href=&quot;https://www.threads.net/@pvieito/post/C85NVV6hvF6?xmt=AQGz2aGyO79t7rDf_sy_9CCnwG61rDGEsdERLEa6TbqZ0g&quot;&gt;some posts I published on Threads during the past week&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h3 id=&quot;tldr&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;The OpenAI ChatGPT for Mac app stored user conversations in plain text in a non-protected location, making them accessible to any running app or malware. After public disclosure, OpenAI released an update encrypting the conversations but did not implement sandboxing.&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;The OpenAI ChatGPT app on macOS is not sandboxed and stored all conversations in &lt;strong&gt;plain text&lt;/strong&gt; in a non-protected location:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~/Library/Application Support/com.openai.chat/conversations-&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;uuid&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This approach is somewhat typical for non-sandboxed apps on macOS, but a high-profile chat app like ChatGPT should be more careful with user data. For example, Apple started blocking access to user private data 6 years ago with the introduction of macOS 10.14 Mojave. Before that, any non-sandboxed app could access any user file. With macOS Mojave, Apple began requiring explicit user permission to access sensitive files like the Calendar, Contacts, Mail or Messages databases. Later, Apple extended this requirement to the Desktop and Documents directories, and &lt;a href=&quot;https://developer.apple.com/documentation/security/app_sandbox/accessing_files_from_the_macos_app_sandbox#4144038&quot;&gt;with macOS 14 Sonoma, any file stored by a sandboxed third-party app in its sandbox container is automatically protected&lt;/a&gt;. This protection prevents malware or untrusted apps from exfiltrating user data without triggering a permission prompt like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2024/07/macos-sandbox-request.jpg&quot; alt=&quot;macOS Sandbox Container Access Prompt&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, OpenAI opted out of sandboxing the ChatGPT app on macOS and stored conversations in plain text in a non-protected location, disabling all these built-in defenses. This meant that any running app, process, or malware could read all your ChatGPT conversations without any permission prompt.&lt;/p&gt;

&lt;h3 id=&quot;example&quot;&gt;Example&lt;/h3&gt;

&lt;p&gt;Here you can see how easily any other app could access any ChatGPT conversation without any permission prompt:&lt;/p&gt;

&lt;center&gt;
&lt;video autoplay=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; muted=&quot;&quot; style=&quot;max-width: 100%;&quot; src=&quot;/media/2024/07/chatgptstealer-demo.mp4&quot;&gt;&lt;/video&gt;
&lt;/center&gt;

&lt;p&gt;You can check the source code of this demo app, &lt;a href=&quot;https://github.com/pvieito/ChatGPTStealer&quot;&gt;&lt;strong&gt;ChatGPTStealer&lt;/strong&gt;, on GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;aftermath&quot;&gt;Aftermath&lt;/h3&gt;

&lt;p&gt;Initially, I reported this issue to OpenAI through their &lt;a href=&quot;https://bugcrowd.com/openai&quot;&gt;security bug reporting program in BugCrowd&lt;/a&gt;, but they marked the report as “Not Applicable” as “in-order for an attacker to leverage this, they would need physical access to the victim’s device.”&lt;/p&gt;

&lt;p&gt;As I disagreed with that consideration, I decided to post this issue publicly on &lt;a href=&quot;https://www.threads.net/@pvieito/post/C85NVV6hvF6?xmt=AQGz2aGyO79t7rDf_sy_9CCnwG61rDGEsdERLEa6TbqZ0g&quot;&gt;Threads&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://mastodon.social/@pvieito/112713171065724442&quot;&gt;Mastodon&lt;/a&gt; to raise awareness and encourage OpenAI to fix this issue and hopefully sandbox the ChatGPT app on macOS. These posts gained attention and were eventually covered by &lt;a href=&quot;https://www.theverge.com/2024/7/3/24191636/openai-chatgpt-mac-app-conversations-plain-text&quot;&gt;The Verge&lt;/a&gt;, &lt;a href=&quot;https://arstechnica.com/ai/2024/07/chatgpts-much-heralded-mac-app-was-storing-conversations-as-plain-text/&quot;&gt;Ars Technica&lt;/a&gt;, &lt;a href=&quot;https://9to5mac.com/2024/07/03/chatgpt-macos-conversations-plain-text/&quot;&gt;9to5Mac&lt;/a&gt;, and others.&lt;/p&gt;

&lt;p&gt;Following these publications, OpenAI finally acknowledged the issue and released ChatGPT 1.2024.171 for Mac, which now encrypts the conversations. The conversations are now stored in a new location:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~/Library/Application Support/com.openai.chat/conversations-v2-&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;uuid&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;These files are now encrypted with a key named &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;com.openai.chat.conversations_v2_cache&lt;/code&gt; stored securely in the macOS Keychain and the old plain-text conversations are removed after upgrading to the new version. However, the app is still not sandboxed, so the conversations are still stored in a non-protected location, but now at least they are encrypted so other apps can’t read them without user-granted access to the Keychain key.&lt;/p&gt;

&lt;p&gt;Interestingly, &lt;a href=&quot;https://developer.apple.com/wwdc24/10123?time=743&quot;&gt;macOS Sequoia will introduce protections for Group Containers&lt;/a&gt;, so non-sandboxed apps like ChatGPT could improve their security by moving sensitive data to a Group Container directory. This way, any other process or app trying to access the data would be blocked by the system, and a permission prompt would be presented to the user.&lt;/p&gt;

</description>
      </item>
    
      <item>
        <title>Creating Apple Wallet Passes Instantly With ChatGPT and MakePass AI</title>
        <pubDate>Thu, 31 Aug 2023 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2023/08/makepass-ai</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2023/08/makepass-ai</guid>
        
        
        <description>&lt;p&gt;&lt;img src=&quot;/media/2023/08/makepass-ai-post-header.png&quot; alt=&quot;&amp;quot;MakePass AI – MakePass + ChatGPT&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;tldr&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;You can use the &lt;strong&gt;MakePass AI&lt;/strong&gt; service in the &lt;a href=&quot;/apps?redirect=makepass&amp;amp;utm_campaign=pvieito-post-makepass-ai#app-makepass&quot;&gt;&lt;strong&gt;MakePass&lt;/strong&gt;&lt;/a&gt; app with the &lt;strong&gt;Ultra subscription&lt;/strong&gt; to create Apple Wallet passes instantly using an input photo or document of a ticket or card:&lt;/p&gt;

&lt;center&gt;
&lt;video autoplay=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; muted=&quot;&quot; style=&quot;max-width: 100%; max-width: 300px;&quot; src=&quot;/media/2023/08/makepass-ai-demo.mp4&quot;&gt;&lt;/video&gt;
&lt;/center&gt;

&lt;h3 id=&quot;introduction-to-makepass-ai&quot;&gt;Introduction to MakePass AI&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/apps?redirect=makepass&amp;amp;utm_campaign=pvieito-post-makepass-ai#app-makepass&quot;&gt;&lt;strong&gt;MakePass&lt;/strong&gt;&lt;/a&gt; is a mighty Apple Wallet pass editor, with it you can create and customize a myriad of passes with complex layouts including images, barcodes, colors and text fields. Now it includes a new service called &lt;strong&gt;MakePass AI&lt;/strong&gt; available with the &lt;strong&gt;MakePass Ultra subscription&lt;/strong&gt; that allows you to create Apple Wallet passes instantly using an input photo or document of a ticket or card. It can even design the pass using a pass description.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MakePass AI&lt;/strong&gt; uses technologies like text recognition, barcode recognition and Artificial Intelligence powered by OpenAI ChatGPT models to compose Apple Wallet passes from photos or documents of tickets and cards.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2023/08/makepass-ai-input-options.png&quot; alt=&quot;&amp;quot;MakePass AI – Input Options&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;examples&quot;&gt;Examples&lt;/h3&gt;

&lt;p&gt;Here you can see some examples of passes generated automatically with &lt;strong&gt;MakePass AI&lt;/strong&gt; from some input image or document:&lt;/p&gt;

&lt;table style=&quot;width: 100%;&quot;&gt;
  &lt;tr&gt;
    &lt;th style=&quot;width: 50%;&quot;&gt;Input&lt;/th&gt;
    &lt;th style=&quot;width: 50%;&quot;&gt;Pass&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&quot;width: 50%;&quot;&gt;
      &lt;img src=&quot;/media/2023/08/makepass-ai-demo-1-input.png&quot; alt=&quot;Input 1&quot; /&gt;
    &lt;/td&gt;
    &lt;td style=&quot;width: 50%;&quot;&gt;
      &lt;img src=&quot;/media/2023/08/makepass-ai-demo-1-pass.png&quot; alt=&quot;Pass 1&quot; /&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&quot;width: 50%;&quot;&gt;
      &lt;img src=&quot;/media/2023/08/makepass-ai-demo-2-input.png&quot; alt=&quot;Input 2&quot; /&gt;
    &lt;/td&gt;
    &lt;td style=&quot;width: 50%;&quot;&gt;
      &lt;img src=&quot;/media/2023/08/makepass-ai-demo-2-pass.png&quot; alt=&quot;Pass 2&quot; /&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style=&quot;width: 50%;&quot;&gt;
      &lt;img src=&quot;/media/2023/08/makepass-ai-demo-3-input.png&quot; alt=&quot;Input 3&quot; /&gt;
    &lt;/td&gt;
    &lt;td style=&quot;width: 50%;&quot;&gt;
      &lt;img src=&quot;/media/2023/08/makepass-ai-demo-3-pass.png&quot; alt=&quot;Pass 3&quot; /&gt;
    &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;h3 id=&quot;makepass&quot;&gt;MakePass&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/apps?redirect=makepass&amp;amp;utm_campaign=pvieito-post-makepass-ai#app-makepass&quot;&gt;&lt;strong&gt;MakePass&lt;/strong&gt;&lt;/a&gt; is available on the &lt;a href=&quot;/apps?redirect=makepass&amp;amp;utm_campaign=pvieito-post-makepass-ai#app-makepass&quot;&gt;&lt;strong&gt;App Store&lt;/strong&gt;&lt;/a&gt; for iPhone, iPad and Mac.&lt;/p&gt;

</description>
      </item>
    
      <item>
        <title>WWDC Sessions Archive</title>
        <pubDate>Thu, 26 May 2022 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2022/05/wwdc-sessions-archive</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2022/05/wwdc-sessions-archive</guid>
        
        
        <description>&lt;p&gt;&lt;img src=&quot;/media/2022/05/wwdc-sessions-archive.jpg&quot; alt=&quot;&amp;quot;WWDC Sessions Archive&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;

&lt;p&gt;This archive of WWDC sessions is meant to extend the current collection of videos available on &lt;a href=&quot;https://developer.apple.com/videos/all-videos/&quot;&gt;Apple Developer website&lt;/a&gt; with all the sessions prior to WWDC 2017 that are not available there but continue to be hosted by Apple servers.&lt;/p&gt;

&lt;h2 id=&quot;notes&quot;&gt;Notes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;The videos are hosted by Apple so you may need to login with your Apple Developer account to be able to view or download them.&lt;/li&gt;
  &lt;li&gt;Unfortunately, some of the sessions do not have a link since they are not currently published by Apple.&lt;/li&gt;
  &lt;li&gt;Recent WWDC session videos can be found directly on &lt;a href=&quot;https://developer.apple.com/videos/all-videos/&quot;&gt;Apple Developer website&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;You can find more links for WWDC sessions on &lt;a href=&quot;https://gist.github.com/IsaacXen/874c59aec92a13f30728aecdabb9ea80&quot;&gt;this gist by IsaacXen&lt;/a&gt;. This archive would not be possible without its initial links so credits and thanks to &lt;a href=&quot;https://twitter.com/isaacxen&quot;&gt;IsaacXen&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;The archive is also available in new-line delimited JSON format &lt;a href=&quot;/resources/downloads/WWDC-Sessions.json&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;index&quot;&gt;Index&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;#wwdc-2007&quot;&gt;WWDC 2007&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wwdc-2008&quot;&gt;WWDC 2008&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wwdc-2009&quot;&gt;WWDC 2009&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wwdc-2010&quot;&gt;WWDC 2010&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wwdc-2011&quot;&gt;WWDC 2011&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wwdc-2012&quot;&gt;WWDC 2012&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wwdc-2013&quot;&gt;WWDC 2013&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wwdc-2014&quot;&gt;WWDC 2014&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wwdc-2015&quot;&gt;WWDC 2015&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#wwdc-2016&quot;&gt;WWDC 2016&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;sessions&quot;&gt;Sessions&lt;/h2&gt;

&lt;h3 id=&quot;wwdc-2007&quot;&gt;WWDC 2007&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Session 100 – Coming to the Mac OS X Platform – Part 1 – The Mac OS X Architecture&lt;/li&gt;
  &lt;li&gt;Session 101 – Coming to the Mac OS X Platform – Part 2 – Frameworks, APIs and Tools&lt;/li&gt;
  &lt;li&gt;Session 102 – Threading for Performance Using OpenMP and Intel Threading Building Blocks&lt;/li&gt;
  &lt;li&gt;Session 103 – Getting Started with Core Data&lt;/li&gt;
  &lt;li&gt;Session 104 – Getting Started with Mac OS X Kernel Programming&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__mac_os_x_essentials/105_cc.mov&quot;&gt;Session 105 – Optimizing Your Core Data Application&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 106 – Fundamentals of Kernel Debugging&lt;/li&gt;
  &lt;li&gt;Session 107 – Students - Getting the Most out of WWDC&lt;/li&gt;
  &lt;li&gt;Session 108 – Mac OS X File Systems – A Walkthrough For Developers and IT Professionals&lt;/li&gt;
  &lt;li&gt;Session 109 – Code Hardening Techniques&lt;/li&gt;
  &lt;li&gt;Session 110 – Cocoa Today&lt;/li&gt;
  &lt;li&gt;Session 111 – Managing Schema Versioning and Data Migration in Your Core Data Application&lt;/li&gt;
  &lt;li&gt;Session 112 – From Power On to Login – Inside the Mac OS X Leopard Boot Process&lt;/li&gt;
  &lt;li&gt;Session 114 – Developing for UNIX on Mac OS X&lt;/li&gt;
  &lt;li&gt;Session 115 – Getting Started with Cocoa Bindings&lt;/li&gt;
  &lt;li&gt;Session 116 – Students-Packets of Pure Power&lt;/li&gt;
  &lt;li&gt;Session 117 – Discovering Network Services Using Bonjour&lt;/li&gt;
  &lt;li&gt;Session 119 – Managing Processes with launchd&lt;/li&gt;
  &lt;li&gt;Session 125 – Building a Custom Control for Your Cocoa Application&lt;/li&gt;
  &lt;li&gt;Session 127 – Getting Started with Core Text&lt;/li&gt;
  &lt;li&gt;Session 128 – Cocoa Drawing Techniques&lt;/li&gt;
  &lt;li&gt;Session 130 – Cocoa Scripting Enhancements in Leopard&lt;/li&gt;
  &lt;li&gt;Session 131 – Add WYSIWYG HTML Editing to Your Web Page or Application&lt;/li&gt;
  &lt;li&gt;Session 134 – Customizing the Cocoa Text System&lt;/li&gt;
  &lt;li&gt;Session 136 – Modernizing Your Text Rendering with Core Text&lt;/li&gt;
  &lt;li&gt;Session 138 – Discover Java on Mac OS X Leopard&lt;/li&gt;
  &lt;li&gt;Session 139 – Partitioning Your Cocoa Application&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__mac_os_x_essentials/140_cc.mov&quot;&gt;Session 140 – Developing Cocoa Applications with Python and Ruby&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__mac_os_x_essentials/141_cc.mov&quot;&gt;Session 141 – Boosting Responsiveness and Performance in Your Cocoa Application&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 145 – See What’s New in HIToolbox&lt;/li&gt;
  &lt;li&gt;Session 146 – Sign Your Application to Increase Security and Ensure Code Integrity&lt;/li&gt;
  &lt;li&gt;Session 147 – Advanced Java Development on Mac OS X&lt;/li&gt;
  &lt;li&gt;Session 154 – Leveraging SOAP Technologies on Mac OS X&lt;/li&gt;
  &lt;li&gt;Session 156 – Writing an Input Method Using the Input Method Kit&lt;/li&gt;
  &lt;li&gt;Session 157 – Extending Your Application with JavaScript&lt;/li&gt;
  &lt;li&gt;Session 158 – Adding Accessibility Support to Your Application&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__mac_os_x_essentials/161_cc.mov&quot;&gt;Session 161 – Making Your Custom Controls, Icons, and Artwork Resolution Independent&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 164 – Professional Audio Input and Output with Leopard&lt;/li&gt;
  &lt;li&gt;Session 166 – Improving User Experience with Effective Power Management&lt;/li&gt;
  &lt;li&gt;Session 200 – Mac OS X State of the Union&lt;/li&gt;
  &lt;li&gt;Session 201 – Effective Widget Creation with Dashcode 2&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__leopard_innovations/202_cc.mov&quot;&gt;Session 202 – Broadcast Your Application’s Content with iChat Theater&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__leopard_innovations/203_cc.mov&quot;&gt;Session 203 – Coding Smarter with Objective-C 2.0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 204 – Fostering User Interaction with iChat&lt;/li&gt;
  &lt;li&gt;Session 205 – Making Your Application Scriptable&lt;/li&gt;
  &lt;li&gt;Session 206 – Building Automator Actions 2&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__leopard_innovations/207_cc.mov&quot;&gt;Session 207 – Integrating iCal Events and Tasks into Your Application&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 209 – Getting Started with Address Book&lt;/li&gt;
  &lt;li&gt;Session 210 – Building Animated Cocoa User Interfaces&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__leopard_innovations/210_cc.mov&quot;&gt;Session 210 – Building Animated Cocoa User Interfaces&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 211 – Adding Core Animation to Your Application&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__leopard_innovations/211_cc.mov&quot;&gt;Session 211 – Adding Core Animation to Your Application&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__leopard_innovations/213_cc.mov&quot;&gt;Session 213 – Getting Started with Spotlight and Quick Look&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 215 – Embracing Automator Workflows with Your Application 2&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__leopard_innovations/216_cc.mov&quot;&gt;Session 216 – Time Machine In-Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 217 – Unlocking the Potential of Dashcode&lt;/li&gt;
  &lt;li&gt;Session 218 – Garbage Collection Strategies for Objective-C 2.0&lt;/li&gt;
  &lt;li&gt;Session 220 – Leopard User Interface Design&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__leopard_innovations/221_cc.mov&quot;&gt;Session 221 – Handling Images with the Image Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 222 – Using Advanced Objective-C 2.0 Features&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__leopard_innovations/223_cc.mov&quot;&gt;Session 223 – Adopting 64-bit Programming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 224 – Next Generation Automation – AppleScript, Automator and Scripting Bridge&lt;/li&gt;
  &lt;li&gt;Session 300 – Developer Tools State of the Union&lt;/li&gt;
  &lt;li&gt;Session 301 – Getting Started with Mac OS X Development Tools&lt;/li&gt;
  &lt;li&gt;Session 302 – Getting Started with Xcode&lt;/li&gt;
  &lt;li&gt;Session 304 – Creating Custom Installers with Leopard’s New PackageMaker&lt;/li&gt;
  &lt;li&gt;Session 305 – Xcode 3.0 – The New Development Workflow&lt;/li&gt;
  &lt;li&gt;Session 306 – Interface Builder 3.0 – Creating an Interface from Start to Finish&lt;/li&gt;
  &lt;li&gt;Session 309 – Getting Started with Xray&lt;/li&gt;
  &lt;li&gt;Session 311 – Unleashing the Power of the Xcode Build System&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__developer_tools/312_cc.mov&quot;&gt;Session 312 – Refactoring in Xcode – Automatic Project-wide Code Changes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__developer_tools/314_cc.mov&quot;&gt;Session 314 – Project-Free Xcode – Mixed Language Development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 315 – Tracing Software Behavior with DTrace&lt;/li&gt;
  &lt;li&gt;Session 316 – Getting Started – Performance Tuning with Shark&lt;/li&gt;
  &lt;li&gt;Session 317 – Taking Advantage of Compiler Advances&lt;/li&gt;
  &lt;li&gt;Session 318 – Using Xray and DTrace for In-depth Analysis&lt;/li&gt;
  &lt;li&gt;Session 319 – Developing Plugins for Interface Builder&lt;/li&gt;
  &lt;li&gt;Session 323 – Fortran Development and HPC on Mac OS X – 3rd Party Solutions&lt;/li&gt;
  &lt;li&gt;Session 324 – Bug Reporting Best Practices&lt;/li&gt;
  &lt;li&gt;Session 400 – Graphics and Media State of the Union&lt;/li&gt;
  &lt;li&gt;Session 401 – Creating Leading-edge 2D Graphics with Quartz&lt;/li&gt;
  &lt;li&gt;Session 402 – Understanding the Architecture of Core Audio&lt;/li&gt;
  &lt;li&gt;Session 403 – Creating Integrated Workflow Solutions with Final Cut Pro&lt;/li&gt;
  &lt;li&gt;Session 404 – Queueing, Streaming, and Extending Core Audio&lt;/li&gt;
  &lt;li&gt;Session 407 – Extending the Aperture RAW Workflow with Export Plug-Ins&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__graphics_and_imaging/408_cc.mov&quot;&gt;Session 408 – Modernizing Your OpenGL Application for Leopard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 409 – Mastering QuickTime Digital Video Techniques&lt;/li&gt;
  &lt;li&gt;Session 410 – Introduction to FxPlug Development for Final Cut Studio&lt;/li&gt;
  &lt;li&gt;Session 411 – Advanced FxPlug Development for Final Cut Studio&lt;/li&gt;
  &lt;li&gt;Session 414 – Creating High-quality Content With QuickTime APIs&lt;/li&gt;
  &lt;li&gt;Session 415 – Mastering the Quartz Composer Editor&lt;/li&gt;
  &lt;li&gt;Session 416 – Integrating QuickTime Support into Your Application with QTKit&lt;/li&gt;
  &lt;li&gt;Session 417 – Switching to Mac OS X OpenGL&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__graphics_and_imaging/418_cc.mov&quot;&gt;Session 418 – Leveraging the OpenGL Shading Language (GLSL)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 419 – Printing with Style in Mac OS X&lt;/li&gt;
  &lt;li&gt;Session 420 – Tune Your OpenGL Application&lt;/li&gt;
  &lt;li&gt;Session 421 – Using Quartz Composer in Your Application 2&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__graphics_and_imaging/424_cc.mov&quot;&gt;Session 424 – Create Stunning Effects with Core Image&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 429 – Tune Your 2D Graphics Code&lt;/li&gt;
  &lt;li&gt;Session 430 – Manipulating PDF Content in Your Application&lt;/li&gt;
  &lt;li&gt;Session 431 – Leveraging the Common Unix Printing System (CUPS)&lt;/li&gt;
  &lt;li&gt;Session 500 – IT State of the Union&lt;/li&gt;
  &lt;li&gt;Session 501 – Welcome to Leopard Server&lt;/li&gt;
  &lt;li&gt;Session 502 – Getting Started with Mac OS X Administration&lt;/li&gt;
  &lt;li&gt;Session 503 – Scripting for SysAdmins&lt;/li&gt;
  &lt;li&gt;Session 504 – Mac OS X Security Configuration&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__information_technologies/505_cc.mov&quot;&gt;Session 505 – Discovering Wiki and Group Services in Leopard Server&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 506 – Integrating Smart Card Solutions in Leopard&lt;/li&gt;
  &lt;li&gt;Session 508 – Building Powerful Web 2.0 Applications with WebObjects&lt;/li&gt;
  &lt;li&gt;Session 509 – Mac OS X Scientific Computing State of the Union&lt;/li&gt;
  &lt;li&gt;Session 510 – Learning to Become an Effective SysAdmin&lt;/li&gt;
  &lt;li&gt;Session 512 – Bending Directory Services To Your Will – Best Practices&lt;/li&gt;
  &lt;li&gt;Session 514 – Understanding PKI and Certificate Management on Mac OS X&lt;/li&gt;
  &lt;li&gt;Session 518 – Real-World WebObjects Solutions&lt;/li&gt;
  &lt;li&gt;Session 519 – Deploying Large-scale Storage Solutions using Xsan and Xserve RAID&lt;/li&gt;
  &lt;li&gt;Session 600 – Fundamentals of Digital Video&lt;/li&gt;
  &lt;li&gt;Session 601 – Improving Your Video With Professional Preprocessing&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__content_and_media/602_cc.mov&quot;&gt;Session 602 – The Encoding Process In Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 603 – Delivering Your Media&lt;/li&gt;
  &lt;li&gt;Session 604 – Iterative Cocoa and Web Application Design&lt;/li&gt;
  &lt;li&gt;Session 605 – Understanding Web Accessibility for Building Better Websites&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__content_and_media/606_cc.mov&quot;&gt;Session 606 – Motion Graphics Design Using Quartz Composer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__content_and_media/607_cc.mov&quot;&gt;Session 607 – Development Methods for WebKit AJAX Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__content_and_media/608_cc.mov&quot;&gt;Session 608 – Vector Graphics for WebKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 609 – Dashboard Widget Design Techniques&lt;/li&gt;
  &lt;li&gt;Session 610 – Design Innovation behind Apple.com&lt;/li&gt;
  &lt;li&gt;Session 611 – AJAX Methodologies for QuickTime Development&lt;/li&gt;
  &lt;li&gt;Session 614 – Developing Web Sites for iPhone&lt;/li&gt;
  &lt;li&gt;Session 615 – Using Dojo Toolkit Power Tools to Build Rich Web Applications&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__content_and_media/616_cc.mov&quot;&gt;Session 616 – Designing and Developing Hybrid-Web Cocoa Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 618 – Designing and Extending the Mac OS X Blog Experience&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2004/adc_on_itunes__leopard_sessions_from_wwdc07__content_and_media/619_cc.mov&quot;&gt;Session 619 – Designing and Developing Rich Media WebKit-based Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 621 – Advanced Concepts in Using the Prototype JavaScript Framework&lt;/li&gt;
  &lt;li&gt;Session 622 – Create Effective, Sophisticated Podcasts&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;wwdc-2008&quot;&gt;WWDC 2008&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/100.m4v&quot;&gt;Session 100 – Introduction to Mac and iPhone Development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 101 – Getting Started with Mac OS X Administration&lt;/li&gt;
  &lt;li&gt;Session 102 – Integrating Your Organization’s First Macs&lt;/li&gt;
  &lt;li&gt;Session 105 – Publishing on the App Store&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/300.m4v&quot;&gt;Session 300 – Mac OS X State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 312 – iPhone Application Development Fundamentals&lt;/li&gt;
  &lt;li&gt;Session 313 – Getting Started with Web Development for Safari on iPhone&lt;/li&gt;
  &lt;li&gt;Session 314 – Java and WebObjects Overview&lt;/li&gt;
  &lt;li&gt;Session 324 – iPhone for Mac Developers&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/325.m4v&quot;&gt;Session 325 – Safari and WebKit Overview: Features, Enhancements, and Open Source Development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/326.m4v&quot;&gt;Session 326 – Application Accessibility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/327.m4v&quot;&gt;Session 327 – Building Great Java Applications on Mac OS X Leopard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/328.m4v&quot;&gt;Session 328 – Networking with Bonjour&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 337 – Understanding iPhone View Controllers&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/338.m4v&quot;&gt;Session 338 – Mac OS X 64-bit Kernel: Architecture and Kernel Extension Transition&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/339.m4v&quot;&gt;Session 339 – Getting Started with Objective-C:  Migrating from Other Languages&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/340.m4v&quot;&gt;Session 340 – Creating Secure Applications for iPhone and Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 343 – Understanding iPhone Table Views&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/344.m4v&quot;&gt;Session 344 – Adding Rich Graphics and Media to Web Content in Safari&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/345.m4v&quot;&gt;Session 345 – Managing Certificates for iPhone and Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/348.m4v&quot;&gt;Session 348 – Cocoa Fundamentals&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/349.m4v&quot;&gt;Session 349 – Creating Rich User Interfaces for Web Content in Safari&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 351 – iPhone Application User Interface Design&lt;/li&gt;
  &lt;li&gt;Session 352 – Web Development for iPhone: Tips, Tricks, and Advanced Techniques&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/353.m4v&quot;&gt;Session 353 – What’s New in Objective-C&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 362 – Controls, Views, and Animation on iPhone&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/363.m4v&quot;&gt;Session 363 – What’s New in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/364.m4v&quot;&gt;Session 364 – Font Management and Core Text&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/374.m4v&quot;&gt;Session 374 – Internationalizing Your Software&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/375.m4v&quot;&gt;Session 375 – Using Filesystem APIs Efficiently&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 379 – Enhancing Your iPhone Web Application with CSS Transforms and Animations&lt;/li&gt;
  &lt;li&gt;Session 380 – iPhone Multi-Touch Events and Gestures&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/381.m4v&quot;&gt;Session 381 – Core Data Tips and Tricks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/382.m4v&quot;&gt;Session 382 – Simplifying Multicore with Grand Central Dispatch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 387 – Text Input on iPhone&lt;/li&gt;
  &lt;li&gt;Session 391 – Building an Advanced iPhone Web Application, Hands On&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/392.m4v&quot;&gt;Session 392 – Cocoa Tips and Tricks: Using Leopard Features Effectively&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/393.m4v&quot;&gt;Session 393 – Managing User Privileges and Operations with Authorization Services&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/401.m4v&quot;&gt;Session 401 – Leveraging Cocoa’s Layer-Backed Views&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 402 – Managing Secure Data on iPhone&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/403.m4v&quot;&gt;Session 403 – Using Advanced AJAX Technologies in Safari&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 410 – Mastering iPhone View Controllers&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/411.m4v&quot;&gt;Session 411 – Utilizing Offline Data in Safari&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/412.m4v&quot;&gt;Session 412 – Cocoa Performance Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/413.m4v&quot;&gt;Session 413 – Assigning Your Application an Identity with Code Signing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 417 – Optimizing Performance in iPhone Applications&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/418.m4v&quot;&gt;Session 418 – Debugging Websites Using Safari’s Integrated Developer Tools&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/419.m4v&quot;&gt;Session 419 – Polishing Your Cocoa Application&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/420.m4v&quot;&gt;Session 420 – Using Garbage Collection with Objective-C&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/421.m4v&quot;&gt;Session 421 – Introduction to Kerberos&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/425.m4v&quot;&gt;Session 425 – Performance in Document-Centric Cocoa Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/426.m4v&quot;&gt;Session 426 – Creating Ruby on Rails Applications for Safari on iPhone and the Desktop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/427.m4v&quot;&gt;Session 427 – Managing X.509 Certificates and Digital Identities&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 432 – Mastering iPhone Table Views&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/433.m4v&quot;&gt;Session 433 – Building Native Look-and-Feel Web Applications Using SproutCore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/434.m4v&quot;&gt;Session 434 – Getting Started with the I/O Kit: Device Drivers on Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/435.m4v&quot;&gt;Session 435 – Configuring the Apple AirPort Interface&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 446 – How Do I Do That? Tips and Tricks for iPhone Application Development&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/447.m4v&quot;&gt;Session 447 – Maximizing Platform Compatibility of I/O Kit Drivers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/453.m4v&quot;&gt;Session 453 – Using Vectorization Techniques to Maximize Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/454.m4v&quot;&gt;Session 454 – Improving Responsiveness in Websites and Web Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/455.m4v&quot;&gt;Session 455 – Kernel Extension Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 456 – The KPCB iFund&lt;/li&gt;
  &lt;li&gt;Session 500 – Mac OS X Server State of the Union&lt;/li&gt;
  &lt;li&gt;Session 501 – Integrating iPhone with IT&lt;/li&gt;
  &lt;li&gt;Session 504 – Deploying Network and Portable Home Directories&lt;/li&gt;
  &lt;li&gt;Session 505 – Integrating iTunes U into Your Workflows and Infrastructure&lt;/li&gt;
  &lt;li&gt;Session 511 – Enterprise iPhone Management with Configuration Profiles&lt;/li&gt;
  &lt;li&gt;Session 512 – Deploying the Mac in a Highly Secure Environment&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/513.m4v&quot;&gt;Session 513 – System-Wide Previews with Quick Look&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 514 – What’s New for Podcast Producer&lt;/li&gt;
  &lt;li&gt;Session 515 – Best Practices for Tiger to Leopard Server Migration&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/516.m4v&quot;&gt;Session 516 – Sync Services: A Complete Tour&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 517 – Managing Clients and Preferences with Mac OS X and Leopard Server&lt;/li&gt;
  &lt;li&gt;Session 520 – Deploying and Scaling iCal Server Calendaring Services&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/523.m4v&quot;&gt;Session 523 – Keeping Users Connected with the Instant Message Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/525.m4v&quot;&gt;Session 525 – Cocoa Development Using Scripting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/526.m4v&quot;&gt;Session 526 – Latent Semantic Mapping&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/527.m4v&quot;&gt;Session 527 – Sharing Live Content Through iChat Theater&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 529 – Address Book for iPhone&lt;/li&gt;
  &lt;li&gt;Session 533 – Customizing and Extending Leopard Server Wiki Server&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/534.m4v&quot;&gt;Session 534 – Spotlight: Search and Be Searched&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 535 – Podcast Producer In-Depth&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/539.m4v&quot;&gt;Session 539 – Making Your Application Scriptable&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 540 – Deploying Podcast Producer&lt;/li&gt;
  &lt;li&gt;Session 541 – Scripting for System Administrators&lt;/li&gt;
  &lt;li&gt;Session 543 – Deploying Final Cut Server&lt;/li&gt;
  &lt;li&gt;Session 546 – iPhone Device APIs: Location, Accelerometer and Camera&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/547.m4v&quot;&gt;Session 547 – Building and Leveraging Automator Actions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 549 – Extending and Troubleshooting Directory Services&lt;/li&gt;
  &lt;li&gt;Session 550 – Integrating with Final Cut Server&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/551.m4v&quot;&gt;Session 551 – Providing User Assistance with Apple Help&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 552 – Unleashing Leopard Server Performance&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/556.m4v&quot;&gt;Session 556 – Accessing Contacts and Calendars on Leopard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 557 – Infrastructure and Deployment Techniques for Large-Scale On-Demand Content Delivery with the Mac&lt;/li&gt;
  &lt;li&gt;Session 558 – Best Practices in Mac OS X Administration Panel&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/700.m4v&quot;&gt;Session 700 – Graphics &amp;amp; Media State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/701.m4v&quot;&gt;Session 701 – Handling PDF Content in Your Application&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/702.m4v&quot;&gt;Session 702 – Getting Started with OpenGL on the Mac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 703 – Introduction to Game Development for iPhone&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/704.m4v&quot;&gt;Session 704 – Understanding the Core Audio Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 706 – Audio Development for iPhone&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/707.m4v&quot;&gt;Session 707 – Mastering the Mac Graphics Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 708 – 3D Graphics for iPhone using OpenGL ES&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/709.m4v&quot;&gt;Session 709 – High-Performance Image Processing with Core Image&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/710.m4v&quot;&gt;Session 710 – Integrating Media into Your Application with QTKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/711.m4v&quot;&gt;Session 711 – 2D Graphics &amp;amp; Animation for iPhone and Mac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/712.m4v&quot;&gt;Session 712 – Advanced Media Application Development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/716.m4v&quot;&gt;Session 716 – Core Animation Techniques for iPhone and Mac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/719.m4v&quot;&gt;Session 719 – Advances in Modern OpenGL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/722.m4v&quot;&gt;Session 722 – Preparing and Delivering Video for iPhone, Safari, and Apple TV&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/723.m4v&quot;&gt;Session 723 – Tuning OpenGL Applications for the Mac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/724.m4v&quot;&gt;Session 724 – Introducing OpenCL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/725.m4v&quot;&gt;Session 725 – Application Printing in Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/727.m4v&quot;&gt;Session 727 – Advanced OpenCL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/731.m4v&quot;&gt;Session 731 – Integrating and Extending Quartz Composer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/735.m4v&quot;&gt;Session 735 – Image Capture, Manipulation, and Display with Image Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/736.m4v&quot;&gt;Session 736 – Extending and Integrating Post-Production Applications with Final Cut Pro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/737.m4v&quot;&gt;Session 737 – FxPlug Development for Motion and Final Cut Pro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/739.m4v&quot;&gt;Session 739 – Extending Aperture with Image Editing Plug-Ins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/900.m4v&quot;&gt;Session 900 – Developer Tools State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 901 – Introduction to the iPhone Development Tools&lt;/li&gt;
  &lt;li&gt;Session 902 – Using WebObjects to Build Powerful Web Applications&lt;/li&gt;
  &lt;li&gt;Session 903 – Introducing Address Book Server&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/906.m4v&quot;&gt;Session 906 – Xcode for Visual Studio and Eclipse Developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/907.m4v&quot;&gt;Session 907 – New Compiler Technology and Future Directions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 908 – Managing Mac OS X with Netboot, Managed Preferences and Apple Remote Desktop&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/910.m4v&quot;&gt;Session 910 – Designing Applications with Interface Builder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/911.m4v&quot;&gt;Session 911 – Advanced Performance Profiling Techniques with Shark&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/915.m4v&quot;&gt;Session 915 – Using Xcode: Source Editor, Refactoring, Debugger, and SCM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/916.m4v&quot;&gt;Session 916 – Getting Started with Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/917.m4v&quot;&gt;Session 917 – What’s New in Core Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/919.m4v&quot;&gt;Session 919 – Understanding the Xcode Project Management and Build System&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 920 – Best Practices for Large-Scale Xsan 2 Deployments&lt;/li&gt;
  &lt;li&gt;Session 921 – Using Dashcode to Create and Debug iPhone Web Applications&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/922.m4v&quot;&gt;Session 922 – Creating Efficient Data Models with Core Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/923.m4v&quot;&gt;Session 923 – Mastering Interface Builder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 925 – Debugging and Profiling Your iPhone Application&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/930.m4v&quot;&gt;Session 930 – Using DTrace on Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/932.m4v&quot;&gt;Session 932 – Performance Tuning Your Application with Shark&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/933.m4v&quot;&gt;Session 933 – LLVM Compilers In Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/935.m4v&quot;&gt;Session 935 – Advanced Performance Analysis with Instruments &amp;amp; DTrace&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/936.m4v&quot;&gt;Session 936 – Intel’s Multi-Core Software Visio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/938.m4v&quot;&gt;Session 938 – Creating Widgets with Dashcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/939.m4v&quot;&gt;Session 939 – Performance Optimization Techniques using Intel Libraries&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2008/adc_on_itunes__wwdc08_sessions__mac_track__videos/940.m4v&quot;&gt;Session 940 – Mastering Advanced Objective-C Features&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;wwdc-2009&quot;&gt;WWDC 2009&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/100__iphone_user_interface_design.m4v&quot;&gt;Session 100 – iPhone User Interface Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/101__perfecting_your_iphone_table_views.m4v&quot;&gt;Session 101 – Perfecting Your iPhone Table Views&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/102__mastering_iphone_scroll_views.m4v&quot;&gt;Session 102 – Mastering iPhone Scroll Views&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/103__processing_multitouch_events_on_iphone.m4v&quot;&gt;Session 103 – Processing Multi-Touch Events on iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/104__whats_new_in_cocoa_touch.m4v&quot;&gt;Session 104 – What’s New in Cocoa Touch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/105__cut_copy_and_paste_on_iphone.m4v&quot;&gt;Session 105 – Cut, Copy, and Paste on iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/106__building_localized_mac_and_iphone_applications.m4v&quot;&gt;Session 106 – Building Localized Mac and iPhone Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/107__iphone_os_networking.m4v&quot;&gt;Session 107 – iPhone OS Networking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/108__concurrent_programming_in_cocoa.m4v&quot;&gt;Session 108 – Concurrent Programming in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/109__pasteboards_services_and_interoperability_on_mac.m4v&quot;&gt;Session 109 – Pasteboards, Services, and Interoperability on Mac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/110__presenting_user_data_with_table_views_and_browsers.m4v&quot;&gt;Session 110 – Presenting User Data with Table Views and Browsers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/111__nsimage_in_snow_leopard.m4v&quot;&gt;Session 111 – NSImage in Snow Leopard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/112__text_processing_in_cocoa.m4v&quot;&gt;Session 112 – Text Processing in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/113__mac_programming_for_iphone_developers.m4v&quot;&gt;Session 113 – Mac Programming for iPhone Developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/114__whats_new_in_core_data.m4v&quot;&gt;Session 114 – What’s New in Core Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/115__whats_new_in_cocoa.m4v&quot;&gt;Session 115 – What’s New in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/116__cocoa_tips_and_tricks.m4v&quot;&gt;Session 116 – Cocoa Tips and Tricks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/117__user_events_in_cocoa.m4v&quot;&gt;Session 117 – User Events in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/118__embedding_maps_in_iphone_applications.m4v&quot;&gt;Session 118 – Embedding Maps in iPhone Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/119__finding_your_place_with_core_location.m4v&quot;&gt;Session 119 – Finding Your Place with Core Location&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/120__apple_push_notification_service.m4v&quot;&gt;Session 120 – Apple Push Notification Service&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 121 – iPhone accessibility: Make your app compatible with VoiceOver&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/122__inapp_purchase_on_iphone.m4v&quot;&gt;Session 122 – In-App Purchase on iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/123__iphone_view_controller_techniques.m4v&quot;&gt;Session 123 – iPhone View Controller Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/124__displaying_web_content_in_iphone_applications.m4v&quot;&gt;Session 124 – Displaying Web Content in iPhone Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/125__effective_iphone_app_architecture.m4v&quot;&gt;Session 125 – Effective iPhone App Architecture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/126__enabling_your_mac_applications_for_assistive_technologies.m4v&quot;&gt;Session 126 – Enabling Your Mac Applications for Assistive Technologies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/127__advanced_accessibility_best_practices_and_new_apis_in_snow_leopard.m4v&quot;&gt;Session 127 – Advanced Accessibility: Best Practices and New APIs in Snow Leopard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/128__prototyping_iphone_user_interfaces.m4v&quot;&gt;Session 128 – Prototyping iPhone User Interfaces&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/129__texttospeech_adventures_with_alex.m4v&quot;&gt;Session 129 – Text-to-Speech: Adventures with Alex&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 130 – Performance Tuning with Shark and Intel’s Processor Performance Events&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/131__scaling_performance_using_grand_central_dispatch_and_intel_libraries.m4v&quot;&gt;Session 131 – Scaling Performance Using Grand Central Dispatch &amp;amp; Intel Libraries&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/132__iphone_views_and_animations.m4v&quot;&gt;Session 132 – iPhone Views and Animations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/200__leveraging_web_content_in_mac_os_x_applications_with_webkit.m4v&quot;&gt;Session 200 – Leveraging Web Content in Mac OS X Applications with WebKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/201__safari_and_webkit_overview.m4v&quot;&gt;Session 201 – Safari and WebKit Overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/202__adding_innovative_styling_and_animation_to_webpages_with_css_effects.m4v&quot;&gt;Session 202 – Adding Innovative Styling and Animation to Webpages with CSS Effects&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/203__local_data_storage_and_offline_web_applications_in_safari.m4v&quot;&gt;Session 203 – Local Data Storage and Offline Web Applications for Safari&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/204__building_compatible_websites_using_emerging_web_technologies.m4v&quot;&gt;Session 204 – Building Compatible Websites Using Emerging Web Technologies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/206__iphone_web_applications_from_start_to_finish.m4v&quot;&gt;Session 206 – iPhone Web Applications from Start to Finish&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/207__rapid_development_with_safaris_integrated_developer_tools.m4v&quot;&gt;Session 207 – Rapid Development with Safari’s Integrated Developer Tools&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/208__creating_safari_web_applications_in_dashcode.m4v&quot;&gt;Session 208 – Creating Safari Web Applications in Dashcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/209__improving_accessibility_in_web_applications.m4v&quot;&gt;Session 209 – Improving Accessibility in Web Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/300__graphics_and_media_state_of_the_union.m4v&quot;&gt;Session 300 – Graphics and Media State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/301__color_management_for_snow_leopard.m4v&quot;&gt;Session 301 – Color Management for Snow Leopard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/302__getting_started_with_graphics_for_iphone.m4v&quot;&gt;Session 302 – Getting Started with Graphics for iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/303__core_animation_techniques_for_iphone_and_mac.m4v&quot;&gt;Session 303 – Core Animation Techniques for iPhone and Mac&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/304__game_development_for_iphone_part_1.m4v&quot;&gt;Session 304 – Game Development for iPhone, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/305__game_development_for_iphone_part_2.m4v&quot;&gt;Session 305 – Game Development for iPhone, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/306__quartz_composer_advances_in_snow_leopard.m4v&quot;&gt;Session 306 – Quartz Composer Advances in Snow Leopard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/307__introduction_to_opencl.m4v&quot;&gt;Session 307 – Introduction to OpenCL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/308__harnessing_the_power_of_opencl.m4v&quot;&gt;Session 308 – Harnessing the Power of OpenCL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/309__mastering_opencl.m4v&quot;&gt;Session 309 – Mastering OpenCL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/310__opengl_techniques_for_snow_leopard.m4v&quot;&gt;Session 310 – OpenGL Techniques for Snow Leopard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/311__opengl_es_overview_for_iphone_os.m4v&quot;&gt;Session 311 – OpenGL ES Overview for iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/312__opengl_es_tuning_and_techniques.m4v&quot;&gt;Session 312 – OpenGL ES Tuning &amp;amp; Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/313__http_live_streaming_introduction.m4v&quot;&gt;Session 313 – HTTP Live Streaming Introduction&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/314__transitioning_to_quicktime_x.m4v&quot;&gt;Session 314 – Transitioning to QuickTime X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/315__audio_development_for_iphone_os.m4v&quot;&gt;Session 315 – Audio Development for iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/316__audio_processing_and_playback.m4v&quot;&gt;Session 316 – Audio Processing and Playback&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/317__accessing_the_ipod_library.m4v&quot;&gt;Session 317 – Accessing the iPod Library&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/318__peer_to_peer_networking_with_game_kit.m4v&quot;&gt;Session 318 – Peer to Peer Networking with Game Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/319__opengl_es_shading_and_rendering.m4v&quot;&gt;Session 319 – OpenGL ES Shading &amp;amp; Rendering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/320__image_processing_and_effects_with_core_image.m4v&quot;&gt;Session 320 – Image Processing and Effects with Core Image&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/400__developer_tools_state_of_the_union.m4v&quot;&gt;Session 400 – Developer Tools State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/401__improving_your_application_with_the_xcode_static_analyzer.m4v&quot;&gt;Session 401 – Improving Your Application with the Xcode Static Analyzer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/402__compiler_overview.m4v&quot;&gt;Session 402 – Compiler Overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/403__applescript_and_cocoa_bridge.m4v&quot;&gt;Session 403 – AppleScript and Cocoa Bridge&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/404__using_automator_and_services_to_integrate_with_mac_os_x.m4v&quot;&gt;Session 404 – Using Automator and Services to Integrate with Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/405__java_se_6_on_snow_leopard.m4v&quot;&gt;Session 405 – Java SE 6 on Snow Leopard&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/406__programming_with_blocks_and_grand_central_dispatch.m4v&quot;&gt;Session 406 – Programming with Blocks and Grand Central Dispatch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/407__migrating_your_application_to_grand_central_dispatch.m4v&quot;&gt;Session 407 – Migrating Your Application to Grand Central Dispatch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/408__understanding_grand_central_dispatch_in_depth.m4v&quot;&gt;Session 408 – Understanding Grand Central Dispatch in Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/409__getting_started_with_interface_builder.m4v&quot;&gt;Session 409 – Getting Started with Interface Builder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/410__iphone_application_design_using_interface_builder.m4v&quot;&gt;Session 410 – iPhone Application Design Using Interface Builder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/411__whats_new_in_instruments.m4v&quot;&gt;Session 411 – What’s New in Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/412__advanced_debugging_and_performance_analysis.m4v&quot;&gt;Session 412 – Advanced Debugging and Performance Analysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/413__performance_tuning_with_shark_on_mac_and_iphone.m4v&quot;&gt;Session 413 – Performance Tuning with Shark on Mac and iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/414__iphone_performance_optimization_with_instruments.m4v&quot;&gt;Session 414 – iPhone Performance Optimization with Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/415__optimizing_performance_on_iphone.m4v&quot;&gt;Session 415 – Optimizing Performance on iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/416__understanding_memory_management_on_iphone.m4v&quot;&gt;Session 416 – Understanding Memory Management on iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/417__managing_the_iphone_development_process.m4v&quot;&gt;Session 417 – Managing the iPhone Development Process&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/418__customizing_xcode_for_your_development_workflow.m4v&quot;&gt;Session 418 – Customizing Xcode for Your Development Workflow&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/419__objectivec_and_garbage_collection_advancements.m4v&quot;&gt;Session 419 – Objective-C and Garbage Collection Advancements&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/420__introduction_to_objectivec.m4v&quot;&gt;Session 420 – Introduction to Objective-C&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/421__introduction_to_core_data_on_iphone.m4v&quot;&gt;Session 421 – Introduction to Core Data on iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/422__state_of_the_art_cocoa_application_design.m4v&quot;&gt;Session 422 – State of the Art Cocoa: Application Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/423__introduction_to_iphone_development_tools.m4v&quot;&gt;Session 423 – Introduction to iPhone Development Tools&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/424__introduction_to_cocoa_and_cocoa_touch_development_with_xcode.m4v&quot;&gt;Session 424 – Introduction to Cocoa and Cocoa Touch Development with Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/425__designing_your_cocoa_application_for_concurrency.m4v&quot;&gt;Session 425 – Designing Your Cocoa Application for Concurrency&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/426__state_of_the_art_cocoa_user_interface_design.m4v&quot;&gt;Session 426 – State of the Art Cocoa:  User Interface Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 500 – Managing Processes with launchd&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/501__managing_kernel_extensions.m4v&quot;&gt;Session 501 – Managing Kernel Extensions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/502__creating_io_kit_drivers_for_multiple_architectures_and_os_versions.m4v&quot;&gt;Session 502 – Creating I/O Kit Drivers for Multiple Architectures and OS Versions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/503__creating_secure_iphone_and_mac_os_x_applications.m4v&quot;&gt;Session 503 – Creating Secure iPhone and Mac OS X Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/504__assigning_your_application_an_identity_with_code_signing.m4v&quot;&gt;Session 504 – Assigning Your Application an Identity with Code Signing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/505__managing_user_privileges_and_operations_with_authorization_services.m4v&quot;&gt;Session 505 – Managing User Privileges and Operations with Authorization Services&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/506__designing_usb_audio_class_devices_for_mac_os_x.m4v&quot;&gt;Session 506 – Designing USB Audio Class Devices for Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/507__creating_iphone_apps_that_communicate_with_accessories.m4v&quot;&gt;Session 507 – Creating iPhone Apps that Communicate with Accessories&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/508__zero_configuration_networking_using_bonjour.m4v&quot;&gt;Session 508 – Zero Configuration Networking Using Bonjour&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/601__integrating_iphone_into_the_enterprise.m4v&quot;&gt;Session 601 – Integrating iPhone into the Enterprise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/602__iphone_configuration_creation_and_deployment.m4v&quot;&gt;Session 602 – iPhone Configuration Creation and Deployment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/603__inhouse_app_development_for_iphone.m4v&quot;&gt;Session 603 – In-House App Development for iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Session 604 – Managing Home Directories with Mac OS X Server&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/605__contact_management_with_snow_leopard_server_snow_leopard_and_iphone.m4v&quot;&gt;Session 605 – Contact Management with Snow Leopard Server, Snow Leopard, and iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/606__adding_authentication_authorization_and_access_controls_with_the_open_directory_framework.m4v&quot;&gt;Session 606 – Adding Authentication, Authorization, and Access Controls with the Open Directory Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/607__using_services_in_snow_leopard_for_scripting_it_tasks.m4v&quot;&gt;Session 607 – Using Services in Snow Leopard for Scripting IT Tasks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/608__snow_leopard_server_setup_under_the_hood.m4v&quot;&gt;Session 608 – Snow Leopard Server Setup: Under the Hood&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/609__podcast_composer_indepth.m4v&quot;&gt;Session 609 – Podcast Composer In-Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/610__mac_os_x_server_state_of_the_union.m4v&quot;&gt;Session 610 – Mac OS X Server State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/611__whats_new_for_wiki_server_2.m4v&quot;&gt;Session 611 – What’s New for Wiki Server 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/612__calendaring_solutions_in_snow_leopard_server_snow_leopard_and_iphone.m4v&quot;&gt;Session 612 – Calendaring Solutions in Snow Leopard Server, Snow Leopard, and iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/613__whats_new_for_podcast_producer_2.m4v&quot;&gt;Session 613 – What’s New for Podcast Producer 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/614__whats_new_in_directory_services.m4v&quot;&gt;Session 614 – What’s New in Directory Services&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/615__system_image_creation_and_deployment_with_snow_leopard_server.m4v&quot;&gt;Session 615 – System Image Creation and Deployment with Snow Leopard Server&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/616__system_management_with_apple_remote_desktop.m4v&quot;&gt;Session 616 – System Management with Apple Remote Desktop&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/617__deploying_mobile_access_server.m4v&quot;&gt;Session 617 – Deploying Mobile Access Server&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/618__scripting_for_sys_admins.m4v&quot;&gt;Session 618 – Scripting for Sys Admins&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/619__secure_access_with_802.1x.m4v&quot;&gt;Session 619 – Secure Access with 802.1X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/620__performance_tuning_for_mac_os_x_server.m4v&quot;&gt;Session 620 – Performance Tuning for Mac OS X Server&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/621__deploying_podcast_producer.m4v&quot;&gt;Session 621 – Deploying Podcast Producer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/622__moving_to_snow_leopard_server.m4v&quot;&gt;Session 622 – Moving to Snow Leopard Server&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/623__the_technologies_that_empower_podcast_producer.m4v&quot;&gt;Session 623 – The Technologies that Empower Podcast Producer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__mac_track__video/624__xsan_configuration_optimization_and_integration_best_practices.m4v&quot;&gt;Session 624 – Xsan Configuration, Optimization, and Integration Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/625__iphone_security_best_practices.m4v&quot;&gt;Session 625 – iPhone Security Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/700__wwdc_sessions_kickoff.m4v&quot;&gt;Session 700 – WWDC Sessions Kickoff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/701__core_os_state_of_the_union.m4v&quot;&gt;Session 701 – Core OS State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.developer.apple.com/wwdc_2009/adc_on_itunes__wwdc09_sessions__iphone_track__video/702__publishing_on_the_app_store.m4v&quot;&gt;Session 702 – Publishing on the App Store&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;wwdc-2010&quot;&gt;WWDC 2010&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_101__whats_new_in_cocoa_touch.mov&quot;&gt;Session 101 – What’s New in Cocoa Touch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_102__whats_new_in_foundation_for_ios_4_1.mov&quot;&gt;Session 102 – What’s New in Foundation for iOS 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_103__ipad_and_iphone_user_interface_design.mov&quot;&gt;Session 103 – iPad and iPhone User Interface Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_104__designing_apps_with_scroll_views.mov&quot;&gt;Session 104 – Designing Apps with Scroll Views&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_105__adopting_multitasking_on_iphone_os_part_1.mov&quot;&gt;Session 105 – Adopting Multitasking on iPhone OS, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_106__understanding_document_interaction_controller.mov&quot;&gt;Session 106 – Understanding Document Interaction Controller&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_107__cocoa_tips_and_tricks.mov&quot;&gt;Session 107 – Cocoa Tips and Tricks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_108__managing_mobile_devices.mov&quot;&gt;Session 108 – Managing Mobile Devices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_109__adopting_multitasking_on_iphone_os_part_2.mov&quot;&gt;Session 109 – Adopting Multitasking on iPhone OS, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_110__advanced_text_handling_for_iphone_os.mov&quot;&gt;Session 110 – Advanced Text Handling for iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_111__ipad_development_overview.mov&quot;&gt;Session 111 – iPad Development Overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_112__integrating_ads_with_iad.mov&quot;&gt;Session 112 – Integrating Ads with iAd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_113__working_effectively_with_objectivec_on_iphone_os.mov&quot;&gt;Session 113 – Working Effectively with Objective-C on iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_114__advanced_cocoa_text_tips_and_tricks.mov&quot;&gt;Session 114 – Advanced Cocoa Text Tips and Tricks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_115__using_core_location_in_ios_4.mov&quot;&gt;Session 115 – Using Core Location in iOS 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_116__modelviewcontroller_for_iphone_os_1.mov&quot;&gt;Session 116 – Model-View-Controller for iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_117__building_a_serverdriven_user_experience.mov&quot;&gt;Session 117 – Building a Server-driven User Experience&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_118__mastering_core_data.mov&quot;&gt;Session 118 – Mastering Core Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_119__accessing_shared_contact_information.mov&quot;&gt;Session 119 – Accessing Shared Contact Information&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_120__simplifying_touch_event_handling_with_gesture_recognizers.mov&quot;&gt;Session 120 – Simplifying Touch Event Handling with Gesture Recognizers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_121__advanced_gesture_recognition.mov&quot;&gt;Session 121 – Advanced Gesture Recognition&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_122__accessibility_on_iphone_os.mov&quot;&gt;Session 122 – Accessibility on iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_123__building_animation_driven_interfaces.mov&quot;&gt;Session 123 – Building Animation Driven Interfaces&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_124__understanding_foundation.mov&quot;&gt;Session 124 – Understanding Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_125__internationalizing_data_on_mac_and_iphone.mov&quot;&gt;Session 125 – Internationalizing Data on Mac and iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_127__customizing_maps_with_overlays.mov&quot;&gt;Session 127 – Customizing Maps with Overlays&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_128__mastering_table_views.mov&quot;&gt;Session 128 – Mastering Table Views&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_129__implementing_local_and_push_notifications.mov&quot;&gt;Session 129 – Implementing Local and Push Notifications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_130__future_proofing_your_application.mov&quot;&gt;Session 130 – Future Proofing your Application&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_131__performance_optimization_on_iphone_os.mov&quot;&gt;Session 131 – Performance Optimization on iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_133__using_itunes_and_app_store_affiliate_tools_and_technologies.mov&quot;&gt;Session 133 – Using iTunes and App Store Affiliate Tools and Technologies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_134__optimize_your_iphone_app_for_the_retina_display.mov&quot;&gt;Session 134 – Optimize your iPhone App for the Retina Display&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_135__advanced_performance_optimization_on_iphone_os_part_1.mov&quot;&gt;Session 135 – Advanced Performance Optimization on iPhone OS, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_136__calendar_integration_with_event_kit.mov&quot;&gt;Session 136 – Calendar Integration with Event Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_137__optimizing_core_data_performance_on_iphone_os.mov&quot;&gt;Session 137 – Optimizing Core Data Performance on iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_138__api_design_for_cocoa_and_cocoa_touch.mov&quot;&gt;Session 138 – API Design for Cocoa and Cocoa Touch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_141__crafting_custom_cocoa_views.mov&quot;&gt;Session 141 – Crafting Custom Cocoa Views&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_144__advanced_objectivec_and_garbage_collection_techniques.mov&quot;&gt;Session 144 – Advanced Objective-C and Garbage Collection Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_145__key_event_handling_in_cocoa_applications.mov&quot;&gt;Session 145 – Key Event Handling in Cocoa Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_147__advanced_performance_optimization_on_iphone_os_part_2.mov&quot;&gt;Session 147 – Advanced Performance Optimization on iPhone OS, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_200__core_os_networking.mov&quot;&gt;Session 200 – Core OS Networking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_201__developing_applications_that_work_with_iphone_os_accessories.mov&quot;&gt;Session 201 – Developing Applications that work with iPhone OS Accessories&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_202__the_accelerate_framework_for_iphone_os.mov&quot;&gt;Session 202 – The Accelerate framework for iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_203__i_o_kit_device_drivers_for_mac_os_x.mov&quot;&gt;Session 203 – IO Kit Device Drivers for Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_204__creating_secure_applications.mov&quot;&gt;Session 204 – Creating Secure Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_205__simplifying_networking_using_bonjour.mov&quot;&gt;Session 205 – Simplifying Networking Using Bonjour&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_206__introducing_blocks_and_grand_central_dispatch_on_iphone.mov&quot;&gt;Session 206 – Introducing Blocks and Grand Central Dispatch on iPhone&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_207__network_apps_for_iphone_os_part_1.mov&quot;&gt;Session 207 – Network Apps for iPhone OS, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_208__network_apps_for_iphone_os_part_2.mov&quot;&gt;Session 208 – Network Apps for iPhone OS, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_209__securing_application_data.mov&quot;&gt;Session 209 – Securing Application Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_210__launchondemand.mov&quot;&gt;Session 210 – Launch-on-Demand&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_211__simplifying_iphone_app_development_with_grand_central_dispatch.mov&quot;&gt;Session 211 – Simplifying iPhone App Development with Grand Central Dispatch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_300__developer_tools_state_of_the_union.mov&quot;&gt;Session 300 – Developer Tools State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_301__mastering_xcode_for_iphone_os_development_part_1.mov&quot;&gt;Session 301 – Mastering Xcode for iPhone OS Development, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_302__automating_the_creation_of_ipad_content.mov&quot;&gt;Session 302 – Automating the Creation of iPad Content&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_303__mastering_xcode_for_iphone_os_development_part_2.mov&quot;&gt;Session 303 – Mastering Xcode for iPhone OS Development, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_304__whats_new_in_instruments.mov&quot;&gt;Session 304 – What’s New in Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_305__designing_apps_with_interface_builder.mov&quot;&gt;Session 305 – Designing Apps with Interface Builder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_306__automating_user_interface_testing_with_instruments.mov&quot;&gt;Session 306 – Automating User Interface Testing with Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_307__introducing_xcode_4.mov&quot;&gt;Session 307 – Introducing Xcode 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_308__developing_your_app_with_xcode_4.mov&quot;&gt;Session 308 – Developing Your App with Xcode 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_309__advanced_performance_analysis_with_instruments.mov&quot;&gt;Session 309 – Advanced Performance Analysis with Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_310__app_publishing_with_itunes_connect.mov&quot;&gt;Session 310 – App Publishing with iTunes Connect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_311__advanced_memory_analysis_with_instruments.mov&quot;&gt;Session 311 – Advanced Memory Analysis with Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_312__whats_new_in_the_llvm_compiler.mov&quot;&gt;Session 312 – What’s New in the LLVM Compiler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_313__llvm_technologies_in_depth.mov&quot;&gt;Session 313 – LLVM Technologies in Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_314__building_and_distributing_your_app_with_xcode_4.mov&quot;&gt;Session 314 – Building and Distributing Your App with Xcode 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_315__using_interface_builder_in_xcode_4.mov&quot;&gt;Session 315 – Using Interface Builder in Xcode 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_316__debugging_with_xcode_4_and_lldb.mov&quot;&gt;Session 316 – Debugging with Xcode 4 and LLDB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_317__understanding_crash_reports_on_iphone_os.mov&quot;&gt;Session 317 – Understanding Crash Reports on iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_400__graphics_and_media_state_of_the_union.mov&quot;&gt;Session 400 – Graphics and Media State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_401__game_design_and_development_for_iphone_os_part_1.mov&quot;&gt;Session 401 – Game Design and Development for iPhone OS, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_402__game_design_and_development_for_iphone_os_part_2.mov&quot;&gt;Session 402 – Game Design and Development for iPhone OS, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_403__advances_in_http_live_streaming.mov&quot;&gt;Session 403 – Advances in HTTP Live Streaming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_404__introduction_to_game_center.mov&quot;&gt;Session 404 – Introduction to Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_405__discovering_av_foundation.mov&quot;&gt;Session 405 – Discovering AV Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_407__editing_media_with_av_foundation.mov&quot;&gt;Session 407 – Editing Media with AV Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_408__game_center_techniques_part_1.mov&quot;&gt;Session 408 – Game Center Techniques, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_409__using_the_camera_with_av_foundation.mov&quot;&gt;Session 409 – Using the Camera with AV Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_410__game_center_techniques_part_2.mov&quot;&gt;Session 410 – Game Center Techniques, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_411__fundamentals_of_digital_audio_for_mac_os_x_and_iphone_os.mov&quot;&gt;Session 411 – Fundamentals of Digital Audio for Mac OS X and iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_412__audio_development_for_iphone_os_part_1.mov&quot;&gt;Session 412 – Audio Development for iPhone OS, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_413__audio_development_for_iphone_os_part_2.mov&quot;&gt;Session 413 – Audio Development for iPhone OS, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_414__opengl_essential_design_practices.mov&quot;&gt;Session 414 – OpenGL Essential Design Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_415__opengl_es_overview_for_iphone_os.mov&quot;&gt;Session 415 – OpenGL ES Overview for iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_416__harnessing_opencl_in_your_application.mov&quot;&gt;Session 416 – Harnessing OpenCL in Your Application&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_417__opengl_es_shading_and_advanced_rendering.mov&quot;&gt;Session 417 – OpenGL ES Shading and Advanced Rendering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_418__maximizing_opencl_performance.mov&quot;&gt;Session 418 – Maximizing OpenCL Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_419__opengl_es_tuning_and_optimization.mov&quot;&gt;Session 419 – OpenGL ES Tuning and Optimization&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_420__opengl_for_mac_os_x.mov&quot;&gt;Session 420 – OpenGL for Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_421__incorporating_the_camera_and_photo_library_in_your_app.mov&quot;&gt;Session 421 – Incorporating the Camera and Photo Library in your App&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_422__taking_advantage_of_multiple_gpus.mov&quot;&gt;Session 422 – Taking Advantage of Multiple GPUs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_423__sensing_device_motion_in_ios_4.mov&quot;&gt;Session 423 – Sensing Device Motion in iOS 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_424__core_animation_in_practice_part_1.mov&quot;&gt;Session 424 – Core Animation in Practice, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_425__core_animation_in_practice_part_2.mov&quot;&gt;Session 425 – Core Animation in Practice, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_426__core_image_effects_and_optimization.mov&quot;&gt;Session 426 – Core Image Effects and Optimization&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_500__safari_internet_and_web_state_of_the_union.mov&quot;&gt;Session 500 – Safari, Internet and Web State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_501__delivering_audio_and_video_using_web_standards_part_1.mov&quot;&gt;Session 501 – Delivering Audio and Video Using Web Standards, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_502__delivering_audio_and_video_using_web_standards_part_2.mov&quot;&gt;Session 502 – Delivering Audio and Video Using Web Standards, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_503__css_effects_part_1__ui_elements_and_navigation.mov&quot;&gt;Session 503 – CSS Effects, Part 1 - UI Elements and Navigation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_504__css_effects_part_2__galleries_and_3d_effects.mov&quot;&gt;Session 504 – CSS Effects, Part 2 - Galleries and 3D Effects&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_505__creating_extensions_for_safari_part_1.mov&quot;&gt;Session 505 – Creating Extensions for Safari, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_506__creating_extensions_for_safari_part_2.mov&quot;&gt;Session 506 – Creating Extensions for Safari, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_507__getting_the_most_out_of_safari_integrated_developer_tools.mov&quot;&gt;Session 507 – Getting the Most Out of Safari Integrated Developer Tools&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_508__adding_touch_and_gesture_detection_to_web_pages_on_iphone_os.mov&quot;&gt;Session 508 – Adding Touch and Gesture Detection to Web Pages on iPhone OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_509__creating_info_graphics_with_standard_web_technologies.mov&quot;&gt;Session 509 – Creating Info Graphics with Standard Web Technologies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_510__creating_content_with_iad_js_part_1.mov&quot;&gt;Session 510 – Creating Content With iAd JS, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_511__creating_content_with_iad_js_part_2.mov&quot;&gt;Session 511 – Creating Content With iAd JS, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2010__hd%2Fsession_512__using_html5_offline_storage.mov&quot;&gt;Session 512 – Using HTML5 Offline Storage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;wwdc-2011&quot;&gt;WWDC 2011&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_101__whats_new_in_cocoa.m4v&quot;&gt;Session 101 – What’s New in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_102__implementing_uiviewcontroller_containment.m4v&quot;&gt;Session 102 – Implementing UIViewController Containment&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_103__cocoa_autolayout.m4v&quot;&gt;Session 103 – Cocoa Autolayout&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_104__advanced_scroll_view_techniques.m4v&quot;&gt;Session 104 – Advanced ScrollView Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_105__polishing_your_app.m4v&quot;&gt;Session 105 – Polishing your App - Tips and Tricks to Improve Responsiveness and Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_106__systemwide_previews_on_osx_and_ios.m4v&quot;&gt;Session 106 – System-wide Previews on OSX and iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_107__autosave_and_versions_in_mac_os_x_10.7_lion.m4v&quot;&gt;Session 107 – Auto Save and Versions in Mac OS X 10.7 Lion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_108__ios_printing_system.m4v&quot;&gt;Session 108 – iOS Printing System&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_109__taking_advantage_of_file_coordination.m4v&quot;&gt;Session 109 – Taking Advantage of File Coordination&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_110__designing_user_interfaces_for_ios_and_mac_os_x_apps.m4v&quot;&gt;Session 110 – Designing User Interfaces for iOS and Mac OS X Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_111__visualizing_information_geographically_with_mapkit.m4v&quot;&gt;Session 111 – Visualizing Information Geographically with MapKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_112__writing_easytochange_code.m4v&quot;&gt;Session 112 – Writing Easy-To-Change Code - Your Second-Most Important Goal As A Developer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_113__full_screen_and_aqua_changes.m4v&quot;&gt;Session 113 – Full Screen and Aqua Changes&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_114__customizing_the_appearance_of_uikit_controls.m4v&quot;&gt;Session 114 – Customizing the Appearance of UIKit Controls&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_115__scrolling_swiping_dragging.m4v&quot;&gt;Session 115 – Scrolling, Swiping, Dragging - Now with more animation!&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_116__storing_documents_in_icloud_using_ios_5.m4v&quot;&gt;Session 116 – Storing Documents in iCloud using iOS 5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_117__performing_calendar_calculations.m4v&quot;&gt;Session 117 – Performing Calendar Calculations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_118__making_the_most_of_multitouch_on_ios.m4v&quot;&gt;Session 118 – Making the Most of Multi-Touch on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_119__resume_and_automatic_termination.m4v&quot;&gt;Session 119 – Resume and Automatic Termination in Lion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_120__view_based_nstableview.m4v&quot;&gt;Session 120 – View Based NSTableView Basic to Advanced&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_121__understanding_uikit_rendering.m4v&quot;&gt;Session 121 – Understanding UIKit Rendering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_122__ios_accessibility.m4v&quot;&gt;Session 122 – iOS Accessibility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_123__improving_the_stability_of_your_apps.m4v&quot;&gt;Session 123 – Improving the Stability of Your Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_124__twitter_integration.m4v&quot;&gt;Session 124 – Twitter Integration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_125__uitableview_changes_tips_tricks.m4v&quot;&gt;Session 125 – UITableView Changes, Tips &lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_127__design_patterns_to_simplify_mac_accessibility.m4v&quot;&gt;Session 127 – Design Patterns to Simplify Mac Accessibility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_128__advanced_text_processing.m4v&quot;&gt;Session 128 – Advanced Text Processing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_129__practical_drawing_for_ios_developers.m4v&quot;&gt;Session 129 – Practical Drawing for iOS Developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_131__getting_your_apps_ready_for_china_and_hot_markets.m4v&quot;&gt;Session 131 – Getting Your Apps Ready for China and other Hot New Markets&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__sd%2Fsession_133__lionsized_automation.m4v&quot;&gt;Session 133 – Lion-Sized Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_136__latent_semantic_mapping.m4v&quot;&gt;Session 136 – Latent Semantic Mapping - Exposing the Meaning behind Words and Documents&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_200__core_os_networking.m4v&quot;&gt;Session 200 – Core OS Networking, Key Principles&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_201__working_with_ios_accessories.m4v&quot;&gt;Session 201 – Working with iOS Accessories&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_202__security_overview.m4v&quot;&gt;Session 202 – Security Overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__sd%2Fsession_203__introducing_app_sandbox.m4v&quot;&gt;Session 203 – Introducing App Sandbox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_204__app_sandbox_and_the_mac_app_store.m4v&quot;&gt;Session 204 – App Sandbox and the Mac App Store&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_205__core_os_networking_indepth.m4v&quot;&gt;Session 205 – Core OS Networking In-Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_206__introducing_xpc.m4v&quot;&gt;Session 206 – Introducing XPC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_207__userlevel_device_access.m4v&quot;&gt;Session 207 – Userland Device Access&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_208__securing_ios_applications.m4v&quot;&gt;Session 208 – Securing Application Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_209__inside_the_accelerate_framework_for_ios.m4v&quot;&gt;Session 209 – Inside the Accelerate Framework for iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_210__mastering_grand_central_dispatch.m4v&quot;&gt;Session 210 – Mastering Grand Central Dispatch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_211__bonjour_network_discovery_and_connectivity.m4v&quot;&gt;Session 211 – Bonjour Network Discovery and Connectivity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_212__nextgeneration_cryptographic_services.m4v&quot;&gt;Session 212 – Next Generation Cryptographic Services&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_300__developer_tools_kickoff.m4v&quot;&gt;Session 300 – Developer Tools Kickoff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_302__using_interface_builder_in_xcode_4.m4v&quot;&gt;Session 302 – Using Interface Builder in Xcode 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_303__whats_new_in_core_data_on_ios.m4v&quot;&gt;Session 303 – What’s New in Core Data on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_306__maximizing_productivity_in_xcode_4.m4v&quot;&gt;Session 306 – Maximizing Productivity in Xcode 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_307__moving_to_the_apple_llvm_compiler.m4v&quot;&gt;Session 307 – Moving to Apple LLVM compiler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_308__blocks_and_grand_central_dispatch_in_practice.m4v&quot;&gt;Session 308 – Blocks and Grand Central Dispatch in Practice&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_309__introducing_interface_builder_storyboarding.m4v&quot;&gt;Session 309 – Introducing Interface Builder Storyboarding&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__sd%2Fsession_310__whats_new_in_instruments.m4v&quot;&gt;Session 310 – What’s New in Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__sd%2Fsession_311__mastering_source_control_in_xcode.m4v&quot;&gt;Session 311 – Mastering Source Control in Xcode 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_312__ios_performance_and_power_optimization_with_instruments.m4v&quot;&gt;Session 312 – iOS Performance and Power Optimization with Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_313__mastering_schemes_in_xcode_4.m4v&quot;&gt;Session 313 – Mastering Schemes in Xcode 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_315__whats_new_in_core_data_on_mac_os_x.m4v&quot;&gt;Session 315 – What’s New in Core Data on Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_316__llvm_technologies_in_depth.m4v&quot;&gt;Session 316 – LLVM Technologies in Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_317__device_management_and_app_submission_with_xcode_4.m4v&quot;&gt;Session 317 – Device Management and App Submission with Xcode 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_319__effective_debugging_with_xcode_4.m4v&quot;&gt;Session 319 – Effective Debugging with Xcode 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__sd%2Fsession_320__adopting_multitasking_in_your_app.m4v&quot;&gt;Session 320 – Adopting Multitasking in Your App&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_321__migrating_from_gdb_to_lldb.m4v&quot;&gt;Session 321 – Migrating from GDB to LLDB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_322__objectivec_advancements_in_depth.m4v&quot;&gt;Session 322 – Objective-C Advancements In-Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_323__introducing_automatic_reference_counting.m4v&quot;&gt;Session 323 – Introducing Automatic Reference Counting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_400__graphics_media_and_games_kickoff.m4v&quot;&gt;Session 400 – Graphics, Media, and Games Kickoff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_401__whats_new_in_opencl.m4v&quot;&gt;Session 401 – What’s New in OpenCL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_402__essential_game_technologies_for_ios_part_1.m4v&quot;&gt;Session 402 – Essential Game Technologies for iOS, Pt 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_403__essential_game_technologies_for_ios_part_2.m4v&quot;&gt;Session 403 – Essential Game Technologies for iOS, Pt 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_404__audio_development_for_games.m4v&quot;&gt;Session 404 – Audio Development for Games&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_405__exploring_av_foundation.m4v&quot;&gt;Session 405 – Exploring AV Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_406__airplay_and_external_displays_in_ios_apps.m4v&quot;&gt;Session 406 – AirPlay and External Displays in iOS apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_407__introduction_to_game_center.m4v&quot;&gt;Session 407 – Introduction to Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_408__http_live_streaming_update.m4v&quot;&gt;Session 408 – HTTP Live Streaming Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_409__working_with_game_center.m4v&quot;&gt;Session 409 – Working with Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_410__multiplayer_gaming_with_game_center.m4v&quot;&gt;Session 410 – Multi-Player Gaming with Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_411__music_in_ios_and_lion.m4v&quot;&gt;Session 411 – Music in iOS and Lion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_412__turnbased_gaming_with_game_center.m4v&quot;&gt;Session 412 – Turn-Based Gaming with Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_413__audio_session_management_for_ios.m4v&quot;&gt;Session 413 – Audio Session Management for iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_414__advances_in_opengl_es_for_ios_5.m4v&quot;&gt;Session 414 – Advances in OpenGL ES for iOS 5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_415__working_with_media_in_av_foundation.m4v&quot;&gt;Session 415 – Working with Media in AV Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_416__tools_for_tuning_opengl_es_apps_on_ios.m4v&quot;&gt;Session 416 – Tools for Tuning OpenGL ES Apps on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_417__introducing_avfoundation_capture_for_lion.m4v&quot;&gt;Session 417 – Introducing AV Foundation Capture For Lion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_418__best_practices_for_opengl_es_on_ios.m4v&quot;&gt;Session 418 – Best Practices for OpenGL ES Apps in iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_419__capture_from_camera_using_avfoundation_on_ios.m4v&quot;&gt;Session 419 – Capturing from the Camera using AV Foundation on iOS 5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_420__advances_in_opengl_for_mac_os_lion.m4v&quot;&gt;Session 420 – Advances in OpenGL for Mac OS X Lion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_421__core_animation_essentials.m4v&quot;&gt;Session 421 – Core Animation Essentials&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_422__using_core_image_on_ios_and_mac_os_x.m4v&quot;&gt;Session 422 – Using Core Image on iOS &lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_423__whats_new_in_core_motion.m4v&quot;&gt;Session 423 – What’s New in Core Motion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_500__whats_new_in_core_location.m4v&quot;&gt;Session 500 – What’s New in Core Location&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_501__icloud_storage_overview.m4v&quot;&gt;Session 501 – iCloud Storage Overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_502__advanced_html5_media_controllers_in_safari.m4v&quot;&gt;Session 502 – Advanced HTML5 Media Controllers in Safari&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_503__hidden_gems_for_web_apps.m4v&quot;&gt;Session 503 – Hidden Gems for Web Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_504__building_newsstand_apps.m4v&quot;&gt;Session 504 – Building Newsstand Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_505__iad_implementation_best_practices.m4v&quot;&gt;Session 505 – iAd Implementation Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_506__building_iad_rich_media_ads_with_iad_producer.m4v&quot;&gt;Session 506 – Building iAd Rich Media Ads with iAd Producer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_507__ibooks.m4v&quot;&gt;Session 507 – iBooks - Create Beautiful Books with HTML5, CSS3 and EPUB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_508__understanding_and_optimizing_web_graphics.m4v&quot;&gt;Session 508 – Understanding And Optimizing Web Graphics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_509__whats_new_in_css_effects_and_animation.m4v&quot;&gt;Session 509 – What’s New in CSS Effects and Animations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_510__inapp_purchase_for_ios_and_mac_os_x.m4v&quot;&gt;Session 510 – In-App Purchase for iOS and Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_511__rich_text_editing_in_safari_on_ios.m4v&quot;&gt;Session 511 – Rich Text Editing in Safari on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_512__whats_new_in_app_publishing_with_itunes_connect.m4v&quot;&gt;Session 512 – What’s New in App Publishing With iTunes Connect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_514__whats_new_in_safari_extensions.m4v&quot;&gt;Session 514 – What’s New in Safari Extensions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_515__using_html5_offline_storage.m4v&quot;&gt;Session 515 – Using HTML5 Offline Storage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_516__understanding_layout_and_gestures.m4v&quot;&gt;Session 516 – Understanding Layout and Gestures in Safari on iOS and Lion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_517__using_local_and_push_notifications_on_ios_and_mac_os_x.m4v&quot;&gt;Session 517 – Using Local And Push Notifications on iOS and Mac OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_518__testing_your_locationaware_application.m4v&quot;&gt;Session 518 – Testing Your Location-Aware App Without Leaving Your Chair&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fsession_519__combining_web_accessibility_and_automation_on_ios.m4v&quot;&gt;Session 519 – Combining Web Accessibility and Automation on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2011__hd%2Fapple_platforms_kickoff.m4v&quot;&gt;Session 601 – Apple Platforms Kickoff&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;wwdc-2012&quot;&gt;WWDC 2012&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_101__platforms_kickoff.mov&quot;&gt;Session 101 – Platforms Kickoff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_200__whats_new_in_cocoa_touch.mov&quot;&gt;Session 200 – What’s New in Cocoa Touch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_202__introduction_to_auto_layout_for_ios_and_os_x.mov&quot;&gt;Session 202 – Introduction to Auto Layout for iOS and OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_203__accessibility_for_os_x.mov&quot;&gt;Session 203 – Accessibility for OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_204__whats_new_in_cocoa.mov&quot;&gt;Session 204 – What’s New in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_205__introducing_collection_views.mov&quot;&gt;Session 205 – Introducing Collection Views&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_206__secure_automation_techniques_in_os_x.mov&quot;&gt;Session 206 – Secure Automation Techniques in OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_208__saving_and_restoring_application_state_on_ios.mov&quot;&gt;Session 208 – Saving and Restoring Application State on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_209__icloud_storage_overview.mov&quot;&gt;Session 209 – iCloud Storage Overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_210__accessibility_for_ios.mov&quot;&gt;Session 210 – Accessibility for iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_211__building_concurrent_user_interfaces_on_ios.mov&quot;&gt;Session 211 – Building Concurrent User Interfaces on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_212__basicshabits__building_your_software_projects_to_last.mov&quot;&gt;Session 212 – Basics + habits - Building Your Software Projects to Last&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_213__introduction_to_high_resolution_on_os_x.mov&quot;&gt;Session 213 – Introduction to High Resolution on OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_214__core_data_best_practices.mov&quot;&gt;Session 214 – Core Data Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_215__text_and_linguistic_analysis.mov&quot;&gt;Session 215 – Text and Linguistic Analysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_216__advanced_appearance_customization_on_ios.mov&quot;&gt;Session 216 – Advanced Appearance Customization on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_217__layerbacked_views__appkit__core_animation.mov&quot;&gt;Session 217 – Layer-Backed Views - AppKit + Core Animation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_218__using_icloud_with_uidocument.mov&quot;&gt;Session 218 – Using iCloud with UIDocument&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_219__advanced_collection_views_and_building_custom_layouts.mov&quot;&gt;Session 219 – Advanced Collection Views and Building Custom Layouts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_220__keyboard_input_in_ios.mov&quot;&gt;Session 220 – Keyboard Input in iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_221__ios_user_interface_design.mov&quot;&gt;Session 221 – iOS User Interface Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__sd%2Fsession_222__introduction_to_attributed_strings_for_ios.mov&quot;&gt;Session 222 – Introduction to Attributed Strings for iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_223__enhancing_user_experience_with_scroll_views.mov&quot;&gt;Session 223 – Enhancing User Experience with Scroll Views&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_224__using_icloud_with_nsdocument.mov&quot;&gt;Session 224 – Using iCloud with NSDocument&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_225__up_and_running__making_a_great_impression_with_every_launch.mov&quot;&gt;Session 225 – Up and Running - Making a Great Impression with Every Launch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_226__core_text_and_fonts.mov&quot;&gt;Session 226 – Core Text and Fonts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__sd%2Fsession_227__using_icloud_with_core_data.mov&quot;&gt;Session 227 – Using iCloud with Core Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_228__best_practices_for_mastering_auto_layout.mov&quot;&gt;Session 228 – Best Practices for Mastering Auto Layout&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_230__advanced_attributed_strings_for_ios.mov&quot;&gt;Session 230 – Advanced Attributed Strings for iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_231__whats_new_with_gestures.mov&quot;&gt;Session 231 – What’s New with Gestures&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_232__auto_layout_by_example.mov&quot;&gt;Session 232 – Auto Layout by Example&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_233__building_advanced_gesture_recognizers.mov&quot;&gt;Session 233 – Building Advanced Gesture Recognizers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_234__airprint.mov&quot;&gt;Session 234 – AirPrint&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_235__ios_app_performance__responsiveness.mov&quot;&gt;Session 235 – iOS App Performance - Responsiveness&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_236__the_evolution_of_view_controllers_on_ios.mov&quot;&gt;Session 236 – The Evolution of View Controllers on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_237__advanced_icloud_document_storage.mov&quot;&gt;Session 237 – Advanced iCloud Document Storage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_238__ios_app_performance__graphics_and_animations.mov&quot;&gt;Session 238 – iOS App Performance - Graphics and Animations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_240__polishing_your_interface_rotations.mov&quot;&gt;Session 240 – Polishing Your Interface Rotations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_241__cocoa_interprocess_communication_with_xpc.mov&quot;&gt;Session 241 – Cocoa Inter-process Communication with XPC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_242__ios_app_performance__memory.mov&quot;&gt;Session 242 – iOS App Performance - Memory&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_243__iphoto_for_ios__ui_progression_and_animation_design.mov&quot;&gt;Session 243 – iPhoto for iOS - UI Progression and Animation Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_244__internationalization_tips_and_tricks.mov&quot;&gt;Session 244 – Internationalization Tips and Tricks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_245__advanced_tips_and_tricks_for_high_resolution_on_os_x.mov&quot;&gt;Session 245 – Advanced Tips and Tricks for High Resolution on OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_300__getting_around_using_map_kit.mov&quot;&gt;Session 300 – Getting Around Using Map Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_301__introducing_passbook_part_1.mov&quot;&gt;Session 301 – Introducing Passbook, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_302__selling_products_with_store_kit.mov&quot;&gt;Session 302 – Selling Products with Store Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_303__staying_on_track_with_location_services.mov&quot;&gt;Session 303 – Staying on Track with Location Services&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_304__events_and_reminders_in_event_kit.mov&quot;&gt;Session 304 – Events and Reminders in Event Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__sd%2Fsession_305__whats_new_in_itunes_connect_for_app_developers.mov&quot;&gt;Session 305 – What’s New in iTunes Connect for App Developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_306__integrating_with_facebook_twitter_and_sina_weibo.mov&quot;&gt;Session 306 – Integrating with Facebook, Twitter and Sina Weibo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_307__building_great_newsstand_apps.mov&quot;&gt;Session 307 – Building Great Newsstand Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_308__managing_subscriptions_with_inapp_purchase.mov&quot;&gt;Session 308 – Managing Subscriptions with In-App Purchase&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_309__introducing_passbook_part_2.mov&quot;&gt;Session 309 – Introducing Passbook, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_311__building_and_distributing_custom_b2b_apps_for_ios.mov&quot;&gt;Session 311 – Building and Distributing Custom B2B Apps for iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_400__developer_tools_kickoff.mov&quot;&gt;Session 400 – Developer Tools Kickoff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_402__working_efficiently_with_xcode.mov&quot;&gt;Session 402 – Working Efficiently with Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_404__building_from_the_command_line_with_xcode.mov&quot;&gt;Session 404 – Building from the Command Line with Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_405__modern_objectivec.mov&quot;&gt;Session 405 – Modern Objective-C&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__sd%2Fsession_406__adopting_automatic_reference_counting.mov&quot;&gt;Session 406 – Adopting Automatic Reference Counting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_407__adopting_storyboards_in_your_app.mov&quot;&gt;Session 407 – Adopting Storyboards in Your App&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_408__working_with_schemes_and_projects_in_xcode.mov&quot;&gt;Session 408 – Working with schemes and Projects in Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_409__learning_instruments.mov&quot;&gt;Session 409 – Learning Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_410__whats_new_in_llvm.mov&quot;&gt;Session 410 – What’s New in LLVM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_411__source_control_management_in_xcode.mov&quot;&gt;Session 411 – Source Control Management in Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_412__debugging_in_xcode.mov&quot;&gt;Session 412 – Debugging in Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_413__migrating_to_modern_objectivec.mov&quot;&gt;Session 413 – Migrating to Modern Objective-C&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_414__building_archiving_and_submitting_your_app.mov&quot;&gt;Session 414 – Building, Archiving and Submitting Your App&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_415__debugging_with_lldb.mov&quot;&gt;Session 415 – Debugging with LLDB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_500__game_technologies_kickoff.mov&quot;&gt;Session 500 – Game Technologies Kickoff&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__sd%2Fsession_501__publishing_with_the_ibookstore.mov&quot;&gt;Session 501 – Publishing with the iBookStore&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_502__effective_http_live_streaming.mov&quot;&gt;Session 502 – Effective HTTP Live Streaming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_503__building_books_with_ibooks_author.mov&quot;&gt;Session 503 – Building Books with iBooks Author&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_504__introducing_scene_kit.mov&quot;&gt;Session 504 – Introducing Scene Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_505__audio_session_and_multiroute_audio_in_ios.mov&quot;&gt;Session 505 – Audio Session and Multiroute Audio in iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_506__optimizing_2d_graphics_and_animation_performance.mov&quot;&gt;Session 506 – Optimizing 2D Graphics and Animation Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_508__whats_new_in_game_center.mov&quot;&gt;Session 508 – What’s New in Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_509__building_interactive_books_with_epub_3_and_javascript.mov&quot;&gt;Session 509 – Building Interactive Books with EPUB 3 and JavaScript&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_510__getting_started_with_core_image.mov&quot;&gt;Session 510 – Getting Started with Core Image&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_511__core_image_techniques.mov&quot;&gt;Session 511 – Core Image Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_512__whats_new_in_http_live_streaming.mov&quot;&gt;Session 512 – What’s New in HTTP Live Streaming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_513__advances_in_opengl_and_opengl_es.mov&quot;&gt;Session 513 – Advances in OpenGL and OpenGL ES&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_514__opengl_es_tools_and_techniques.mov&quot;&gt;Session 514 – OpenGL ES Tools and Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_515__html_css_and_dom_for_book_authors.mov&quot;&gt;Session 515 – HTML, CSS and DOM for Book Authors&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_516__integrating_your_games_with_game_center.mov&quot;&gt;Session 516 – Integrating Your Games with Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_517__realtime_media_effects_and_processing_during_playback.mov&quot;&gt;Session 517 – Real-Time Media Effects and Processing During Playback&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_518__improving_accessibility_in_books.mov&quot;&gt;Session 518 – Improving Accessibility in Books&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_519__multiplayer_gaming_with_game_center.mov&quot;&gt;Session 519 – Multiplayer Gaming with Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_520__whats_new_in_camera_capture.mov&quot;&gt;Session 520 – What’s New in Camera Capture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_521__building_game_center_games_for_os_x.mov&quot;&gt;Session 521 – Building Game Center Games for OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_522__adopting_opencl_in_your_application.mov&quot;&gt;Session 522 – Adopting OpenCL in Your Application&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_523__best_practices_for_color_management.mov&quot;&gt;Session 523 – Best Practices for Color Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_524__understanding_core_motion.mov&quot;&gt;Session 524 – Understanding Core Motion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_600__debugging_uiwebviews_and_websites_on_ios.mov&quot;&gt;Session 600 – Debugging UIWebViews and Websites on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_601__optimizing_web_content_in_uiwebviews_and_websites_on_ios.mov&quot;&gt;Session 601 – Optimizing Web Content in UIWebViews and Websites on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_602__delivering_web_content_on_high_resolution_displays.mov&quot;&gt;Session 602 – Delivering Web Content on High Resolution Displays&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_603__tools_services_and_apis_for_itunes_affiliate_program_marketing.mov&quot;&gt;Session 603 – Tools, Services and APIs for iTunes Affiliate Program Marketing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_604__advanced_effects_with_html5_media_technologies.mov&quot;&gt;Session 604 – Advanced Effects with HTML5 Media Technologies&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_605__producing_rich_media_advertisements_for_iad.mov&quot;&gt;Session 605 – Producing Rich Media Advertisements for iAd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_700__the_os_x_app_sandbox.mov&quot;&gt;Session 700 – The OS X App Sandbox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_701__ios_accessories.mov&quot;&gt;Session 701 – iOS Accessories&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_702__gatekeeper_and_developer_id.mov&quot;&gt;Session 702 – GateKeeper and Developer ID&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__sd%2Fsession_703__core_bluetooth_101.mov&quot;&gt;Session 703 – Core Bluetooth 101&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_704__the_security_framework.mov&quot;&gt;Session 704 – The Security Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_705__advanced_core_bluetooth.mov&quot;&gt;Session 705 – Advanced Core Bluetooth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_706__networking_best_practices.mov&quot;&gt;Session 706 – Networking Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_707__simplify_networking_with_bonjour.mov&quot;&gt;Session 707 – Simplify Networking with Bonjour&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__sd%2Fsession_708__the_accelerate_framework.mov&quot;&gt;Session 708 – The Accelerate Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_709__whats_new_in_the_filesystem.mov&quot;&gt;Session 709 – What’s New in the Filesystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_710__privacy_support_in_ios_and_os_x.mov&quot;&gt;Session 710 – Privacy Support in iOS and OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_711__power_management.mov&quot;&gt;Session 711 – Power Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_712__asynchronous_design_patterns_with_blocks_gcd_and_xpc.mov&quot;&gt;Session 712 – Asynchronous Design Patterns with Blocks, GCD and XPC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.apple.com/devcenter/download.action?path=%2Fvideos%2Fwwdc_2012__hd%2Fsession_714__protecting_the_users_data.mov&quot;&gt;Session 714 – Protecting the Users Data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;wwdc-2013&quot;&gt;WWDC 2013&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/101xex1x82z7rpszsw/101/101-HD.mov&quot;&gt;Session 101 – Platforms State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/102xex1x2e4xpykz1y/102/102-HD.mov&quot;&gt;Session 102 – Apple Design Awards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/109xxxjfr9zgakbgrzxk23n2/109/109-HD.mov&quot;&gt;Session 109 – Painting the Future&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/200xdx2x35e1pxiinm/200/200-HD.mov&quot;&gt;Session 200 – Accessibility in OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/201xex2xxf5ynwnsgl/201/201-HD.mov&quot;&gt;Session 201 – Building User Interfaces for iOS 7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/202xdx2x47ezp1wein/202/202-HD.mov&quot;&gt;Session 202 – Accessibility in iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/203xex2xro3o27pyntvhsqsohil/203/203-HD.mov&quot;&gt;Session 203 – What’s New in Cocoa Touch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/204xex2xvpdncz9kdb17lmfooh/204/204-HD.mov&quot;&gt;Session 204 – What’s New with Multitasking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/205xbx2xfbtmyu1l18h36mfqxmy/205/205-HD.mov&quot;&gt;Session 205 – What’s New in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/206xex2xws29m12p69m7s169q/206/206-HD.mov&quot;&gt;Session 206 – Getting Started with UIKit Dynamics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/207xdx3xbarjw2d2va5olp57qh8/207/207-HD.mov&quot;&gt;Session 207 – What’s New in Core Data and iCloud&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/208xex3xyxmpz8s37fk59avul0c5/208/208-HD.mov&quot;&gt;Session 208 – What’s New in iOS User Interface Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/209xdx3xahizhph6dg8wk631i/209/209-HD.mov&quot;&gt;Session 209 – Improving Power Efficiency with App Nap&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/210xbx3xpg6jhh8okmc7zc8j89/210/210-HD.mov&quot;&gt;Session 210 – Introducing Text Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/211xcx3xeognrgah6anssirb/211/211-HD.mov&quot;&gt;Session 211 – Core Data Performance Optimization and Debugging&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/213xax3xr33a8oxfsxg8bha/213/213-HD.mov&quot;&gt;Session 213 – Best Practices for Cocoa Animation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/214xex3xkbq0z93doa6o31c0/214/214-HD.mov&quot;&gt;Session 214 – Customizing Your App’s Appearance for iOS 7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/215xax3xz5pbbxeaxxe7z1mk3q/215/215-HD.mov&quot;&gt;Session 215 – Optimizing Drawing and Scrolling on OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/216xcx4x7if809qdggi7vcc/216/216-HD.mov&quot;&gt;Session 216 – Bringing Your iOS Apps to OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/217xex4xi4ws3f5wrv3w2wkh/217/217-HD.mov&quot;&gt;Session 217 – Exploring Scroll Views on iOS 7&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/218xdx4xj2umojkv3e8dbk6i/218/218-HD.mov&quot;&gt;Session 218 – Custom Transitions Using View Controllers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/219xax4xjor8i6b9h77lafay32/219/219-HD.mov&quot;&gt;Session 219 – Making Your App World-Ready&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/220xbx4xipaxfd1tggxuoib/220/220-HD.mov&quot;&gt;Session 220 – Advanced Text Layouts and Effects with Text Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/221xex4xxohbllf4hblyngt/221/221-HD.mov&quot;&gt;Session 221 – Advanced Techniques with UIKit Dynamics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/222xbx4xitmr47hmc2ulz1tli4hv/222/222-HD.mov&quot;&gt;Session 222 – What’s New in State Restoration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/223xex5xsgdfh1ergtjrqwoghbj/223/223-HD.mov&quot;&gt;Session 223 – Using Fonts with Text Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/224xcx5x1y1yx8ra5jbmfyhf/224/224-HD.mov&quot;&gt;Session 224 – Designing Code for Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/225xex5xkk51ehr0z54gd9kt/225/225-HD.mov&quot;&gt;Session 225 – Best Practices for Great iOS UI Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/226xbx5xinmlvbdabxux9k3kt/226/226-HD.mov&quot;&gt;Session 226 – Implementing Engaging UI on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/227xax5xif2s7s531dsmfs1afo2/227/227-HD.mov&quot;&gt;Session 227 – Solutions to Common Date and Time Challenges&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/228xax5xif2s7s53df5ffjfao2/228/228-HD.mov&quot;&gt;Session 228 – Hidden Gems in Cocoa and Cocoa Touch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/300xdx2xem8o4pmrhvraq9ty76/300/300-HD.mov&quot;&gt;Session 300 – Managing Apple Devices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/301xcx2xzxf8qjdcu3y2k1itm/301/301-HD.mov&quot;&gt;Session 301 – Extending Your Apps for Enterprise and Education Use&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/302xdx3xf65k8c0kkajsjy2mh9jj/302/302-HD.mov&quot;&gt;Session 302 – What’s New in Passbook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/303xdx3xodi2951d3kopnrhlg/303/303-HD.mov&quot;&gt;Session 303 – Integrating Passbook into your Ecosystem&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/304xex4x7qun15qmlzgf1s39fn08/304/304-HD.mov&quot;&gt;Session 304 – What’s New in Map Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/305xbx4xqongltzvuja8xrmsrq1/305/305-HD.mov&quot;&gt;Session 305 – Using Store Kit for In-App Purchases&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/306xdx4xq2n1jhue4dfou0nemckj/306/306-HD.mov&quot;&gt;Session 306 – What’s New in iTunes Connect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/307xex4xl1ey243ksyxqfip0xowr/307/307-HD.mov&quot;&gt;Session 307 – What’s New in Core Location&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/308xex4x6ybggtlw4ztv0sg5btp/308/308-HD.mov&quot;&gt;Session 308 – Using Receipts to Protect Your Digital Sales&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/309xdx4x891fj1ing58e5cayt1z/309/309-HD.mov&quot;&gt;Session 309 – Putting Map Kit in Perspective&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/310xex5xg29dwip7fgthel9z2/310/310-HD.mov&quot;&gt;Session 310 – Harnessing iOS to Create Magic in Your Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/400xex2xbskwa5bkxr17zihju9uf/400/400-HD.mov&quot;&gt;Session 400 – What’s New in Xcode 5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/401xbx2xq50gv7mqafyfdns2yhxl/401/401-HD.mov&quot;&gt;Session 401 – Xcode Core Concepts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/402xdx2x3ccrfzk85j9dysimvsui/402/402-HD.mov&quot;&gt;Session 402 – What’s New in the LLVM Compiler&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/403xex2xoo3u74gemi4q9vhvs/403/403-HD.mov&quot;&gt;Session 403 – From Zero to App Store in Xcode 5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/404xbx2xvp1eaaqonr8zokm/404/404-HD.mov&quot;&gt;Session 404 – Advances in Objective-C&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/405xcx3x5ud6sopkxfqg7ikk/405/405-HD.mov&quot;&gt;Session 405 – Interface Builder Core Concepts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/406xex3x90a7ka0kyhsfjxfqfbi/406/406-HD.mov&quot;&gt;Session 406 – Taking Control of Auto Layout in Xcode 5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/407xdx3xw3kl5xx1h5cs73sp/407/407-HD.mov&quot;&gt;Session 407 – Debugging with Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/408xcx3x0l4e2phvin8xrhsn23/408/408-HD.mov&quot;&gt;Session 408 – Optimize Your Code Using LLVM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/409xdx4x4adcwca5ok0rtsup0sg/409/409-HD.mov&quot;&gt;Session 409 – Testing in Xcode 5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/410xcx4x9x0ry3zbw3rzq14kx/410/410-HD.mov&quot;&gt;Session 410 – Fixing Memory Issues&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/412xdx4x6xpjownhu5d4as36/412/412-HD.mov&quot;&gt;Session 412 – Continuous Integration with Xcode 5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/413xdx5x97itb5ek4yex3r7/413/413-HD.mov&quot;&gt;Session 413 – Advanced Debugging with LLDB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/414xdx5xbjc8ls04ewrox0a160i/414/414-HD.mov&quot;&gt;Session 414 – Understanding Source Control in Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/415xdx5x0wygxidaf0ifiey/415/415-HD.mov&quot;&gt;Session 415 – Maximizing Apple Development Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/416xxx3x90yhsjxfqfbi/416/416-HD.mov&quot;&gt;Session 416 – Introducing AppleScript Libraries&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/417xxx0oh4r99eed2hb1k3ce/417/417-HD.mov&quot;&gt;Session 417 – OS X Automation Update&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/500xbx2xh3dv43mpm46sd0qzj8d0/500/500-HD.mov&quot;&gt;Session 500 – What’s New in Scene Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/501xdx2xat8ocml4nv7i08noe/501/501-HD.mov&quot;&gt;Session 501 – Integrating with Game Controllers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/502xex3x2iwfiaeglpjw0mh54u/502/502-HD.mov&quot;&gt;Session 502 – Introduction to Sprite Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/503xbx3xoaktjug4e05xvl04/503/503-HD.mov&quot;&gt;Session 503 – Designing Games with Sprite Kit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/504xbx3x55lc470bv6s8dk2lcg28/504/504-HD.mov&quot;&gt;Session 504 – What’s New in Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/505xbx4xrgmhwby4oiwkrpp/505/505-HD.mov&quot;&gt;Session 505 – Advances in OpenGL ES&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/506xbx4x8brixcxa41wrzgph0gw/506/506-HD.mov&quot;&gt;Session 506 – Turn-Based Gaming with Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/507xax4xgxp9uuxl9i7y0emdv5ib/507/507-HD.mov&quot;&gt;Session 507 – What’s New in OpenGL for OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/508xax4xqkee4rd9rsmbb86dw5cu/508/508-HD.mov&quot;&gt;Session 508 – Working with OpenCL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/509xbx5xydkscnk7eyuyj1qi/509/509-HD.mov&quot;&gt;Session 509 – Core Image Effects and Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/600xbx2x3eaj3ryz3w5zw5gozz39/600/600-HD.mov&quot;&gt;Session 600 – What’s New in Safari and WebKit for Web Developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/601xfx2xk7wrmhwsa5gao39ln/601/601-HD.mov&quot;&gt;Session 601 – Getting to Know Web Inspector&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/602xcx2xk6ipx0cusjryu1sx5eu/602/602-HD.mov&quot;&gt;Session 602 – What’s New in Core Audio for iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/603xfx2xhszvvn0zgc1cbgx1j/603/603-HD.mov&quot;&gt;Session 603 – Getting the Most Out of Web Inspector&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/604xfx2xl2ujhx7vffbjmtqu2t/604/604-HD.mov&quot;&gt;Session 604 – Introducing iAd Workbench, The Best Way to Market Your App&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/605xfx2xbot31cme1uns8w647vsw/605/605-HD.mov&quot;&gt;Session 605 – What’s New in iBooks Author&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/606xdx2xbp31zp28fdov8p0b6d/606/606-HD.mov&quot;&gt;Session 606 – Moving to AV Kit and AV Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/607xfx3xox1jscc7z24fl2jf4mf/607/607-HD.mov&quot;&gt;Session 607 – Power and Performance -  Optimizing Your Website for Great Battery Life and Responsive Scrolling&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/608xcx3xafjdvmnjpo5dzvou97r/608/608-HD.mov&quot;&gt;Session 608 – Preparing and Presenting Media for Accessibility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/609xfx3xpwcil5bz8h6ot4f871/609/609-HD.mov&quot;&gt;Session 609 – Introduction to iBooks Author Widget and iAd Rich Media Ad Development with iAd Producer 4&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/610xcx3xv9xjy916g3wzes0ze63/610/610-HD.mov&quot;&gt;Session 610 – What’s New in Camera Capture&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/611xfx3x2l2zzkb2oaovson/611/611-HD.mov&quot;&gt;Session 611 – Building Advanced iBooks HTML 5 Widgets and iAd Rich Media Ads&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/612xax4xx65z1ervy5np1qb/612/612-HD.mov&quot;&gt;Session 612 – Advanced Editing with AV Foundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/613xfx4xp91m26w7iu790d3nx/613/613-HD.mov&quot;&gt;Session 613 – iAd Integration and Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/614xax5x602jmihlq4c4edtrl/614/614-HD.mov&quot;&gt;Session 614 – Implementing OS X Push Notifications for Websites&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/615xax5xpcdns8jyhaiszkz2p/615/615-HD.mov&quot;&gt;Session 615 – Integrating JavaScript into Native Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/700xcx2xuedgs1rni4qry1yumg/700/700-HD.mov&quot;&gt;Session 700 – Designing Accessories for iOS and OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/701xbx2xqblo39z6tpbdrcz/701/701-HD.mov&quot;&gt;Session 701 – Maximizing Battery Life on OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/702xfx2xmlrics5pyrjfwu2m/702/702-HD.mov&quot;&gt;Session 702 – Efficient Design with XPC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/703xcx2xljtlq481grxurla4/703/703-HD.mov&quot;&gt;Session 703 – Core Bluetooth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/704xcx2xrmodatdtgs6nf5w4/704/704-HD.mov&quot;&gt;Session 704 – Building Efficient OS X Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/705xbx3xcjsmrdbtwl5grta6gq6r/705/705-HD.mov&quot;&gt;Session 705 – What’s New in Foundation Networking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/707xfx3xysb4yyrvtxbbu6t9fono/707/707-HD.mov&quot;&gt;Session 707 – What’s New in Kext Development&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/708xbx3x7xusbzidl0j3acxest/708/708-HD.mov&quot;&gt;Session 708 – Nearby Networking with Multipeer Connectivity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/709xax3xiafkagts5jfa5705dx6/709/709-HD.mov&quot;&gt;Session 709 – Protecting Secrets with the Keychain&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/710xfx3xn8197k4i9s2rvyb/710/710-HD.mov&quot;&gt;Session 710 – A Practical Guide to the App Sandbox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/711xcx4x8yuutk8sady6t9f/711/711-HD.mov&quot;&gt;Session 711 – Advances in AirPrint&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/712xax4xb4mh6prvqkesmm75/712/712-HD.mov&quot;&gt;Session 712 – Energy Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/713xcx4xtaue02i1tvk0kpvarvo/713/713-HD.mov&quot;&gt;Session 713 – The Accelerate Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2013/714xbx5xcen10zkjl5f9sd8ys63/714/714-HD.mov&quot;&gt;Session 714 – Protecting your Users’ Privacy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;wwdc-2014&quot;&gt;WWDC 2014&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/101xx36lr6smzjo/101/101_hd.mov&quot;&gt;Session 101 – Keynote&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/102xxw2o82y78a4/102/102_hd_platforms_state_of_the_union.mov&quot;&gt;Session 102 – Platforms State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/103xx8s53gk94hl/103/103_hd_apple_design_awards.mov&quot;&gt;Session 103 – Apple Design Awards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/201xx2xfazhzce8/201/201_hd_advanced_topics_in_internationalization.mov&quot;&gt;Session 201 – Advanced Topics in Internationalization&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/202xx3ane09vxdz/202/202_hd_whats_new_in_cocoa_touch.mov&quot;&gt;Session 202 – What’s New in Cocoa Touch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/203xxh9oqtm0piw/203/203_hd_introducing_healthkit.mov&quot;&gt;Session 203 – Introducing HealthKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/204xxhe1lli87dm/204/204_hd_whats_new_in_cocoa.mov&quot;&gt;Session 204 – What’s New in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/205xxqzduadzo14/205/205_hd_creating_extensions_for_ios_and_os_x,_part_1.mov&quot;&gt;Session 205 – Creating Extensions for iOS and OS X, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/206xxdiurnffagr/206/206_hd_introducing_the_modern_webkit_api.mov&quot;&gt;Session 206 – Introducing the Modern WebKit API&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/207xx270npvffao/207/207_hd_accessibility_on_os_x.mov&quot;&gt;Session 207 – Accessibility on OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/208xx42tf0hw3vv/208/208_hd_introducing_cloudkit.mov&quot;&gt;Session 208 – Introducing CloudKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/209xxbyg01mfqt8/209/209_hd_adapting_your_app_to_the_new_ui_of_os_x_yosemite.mov&quot;&gt;Session 209 – Adapting Your App to the New UI of OS X Yosemite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/210xxksa9s9ewsa/210/210_hd_accessibility_on_ios.mov&quot;&gt;Session 210 – Accessibility on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/211xxmyz80g30i9/211/211_hd_designing_intuitive_user_experiences.mov&quot;&gt;Session 211 – Designing Intuitive User Experiences&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/212xxi1kzzkdr54/212/212_hd_storyboards_and_controllers_on_os_x.mov&quot;&gt;Session 212 – Storyboards and Controllers on OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/213xxbmca4in9u5/213/213_hd_introducing_homekit.mov&quot;&gt;Session 213 – Introducing HomeKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/214xxq2mdbtmp23/214/214_hd_view_controller_advancements_in_ios_8.mov&quot;&gt;Session 214 – View Controller Advancements in iOS 8&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/216xxcnxc6wnkf3/216/216_hd_building_adaptive_apps_with_uikit.mov&quot;&gt;Session 216 – Building Adaptive Apps with UIKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/217xxsvxdga3rh5/217/217_hd_creating_extensions_for_ios_and_os_x_part_2.mov&quot;&gt;Session 217 – Creating Extensions for iOS and OS X, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/218xx267rleu4n8/218/218_hd_designing_a_great_in-app_purchase_experience.mov&quot;&gt;Session 218 – Designing a Great In-App Purchase Experience&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/219xxebl6quoz05/219/219_hd_adopting_handoff_on_ios_and_os_x.mov&quot;&gt;Session 219 – Adopting Handoff on iOS and OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/220xx01yweszmjv/220/220_hd_adopting_advanced_features_of_the_new_ui_of_os_x_yosemite.mov&quot;&gt;Session 220 – Adopting Advanced Features of the New UI of OS X Yosemite&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/221xxobzcm2j26x/221/221_hd_creating_custom_ios_user_interfaces.mov&quot;&gt;Session 221 – Creating Custom iOS User Interfaces&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/222xxz9991l36ro/222/222_hd_optimize_your_earning_power_with_iad.mov&quot;&gt;Session 222 – Optimize Your Earning Power with iAd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/223xxp1uag2jn3n/223/223_hd_prototyping_fake_it_till_you_make_it.mov&quot;&gt;Session 223 – Prototyping - Fake It Till You Make It&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/224xxxlsvigdoc0/224/224_hd_core_os_ios_application_architectural_patterns.mov&quot;&gt;Session 224 – Core iOS Application Architectural Patterns&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/225xxgzhqylosff/225/225_hd_whats_new_in_core_data.mov&quot;&gt;Session 225 – What’s New in Core Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/226xxf6phq7ufzl/226/226_hd_whats_new_in_table_and_collection_views.mov&quot;&gt;Session 226 – What’s New in Table and Collection Views&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/227xx1g0sa1mhjf/227/227_hd_creating_modern_cocoa_apps.mov&quot;&gt;Session 227 – Creating Modern Cocoa Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/228xxnfgueiskhi/228/228_hd_a_look_inside_presentation_controllers.mov&quot;&gt;Session 228 – A Look Inside Presentation Controllers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/229xx77tq0pmkwo/229/229_hd_advanced_ios_architecture_and_patterns.mov&quot;&gt;Session 229 – Advanced iOS Architecture and Patterns&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/230xxe44dq1m2da/230/230_hd_making_a_great_first_impression_with_strong_onboarding_design.mov&quot;&gt;Session 230 – Making a Great First Impression with Strong Onboarding Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/231xx9bil1zgee7/231/231_hd_advanced_cloudkit.mov&quot;&gt;Session 231 – Advanced CloudKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/232xxz8gxpbstio/232/232_hd_advanced_user_interfaces_with_collection_views.mov&quot;&gt;Session 232 – Advanced User Interfaces with Collection Views&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/233xxwktnowwj0u/233/233_hd_sharing_code_between_ios_and_os_x.mov&quot;&gt;Session 233 – Sharing Code Between iOS and OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/234xxi5cismq5hn/234/234_hd_building_a_document_based_app.mov&quot;&gt;Session 234 – Building A Document-Based App&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/235xxsugqo8pxak/235/235_hd_advanced_scrollviews_and_touch_handling_techniques.mov&quot;&gt;Session 235 – Advanced Scroll Views and Touch Handling Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/236xxwk3fv82sx2/236/236_hd_building_interruptible_and_responsive_interactions.mov&quot;&gt;Session 236 – Building Interruptible and Responsive Interactions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/237xxcyp7vhx2xt/237/237_hd_a_strategy_for_great_work.mov&quot;&gt;Session 237 – A Strategy for Great Work&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/301xxu0xo3hhg9h/301/301_hd_affiliate_tools_for_app_developers.mov&quot;&gt;Session 301 – Affiliate Tools for App Developers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/302xxo8xxixuera/302/302_hd_the_new_itunes_connect.mov&quot;&gt;Session 302 – The New iTunes Connect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/303xxqw0yb14u0r/303/303_hd_optimizing_in-app_purchases.mov&quot;&gt;Session 303 – Optimizing In-App Purchases&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/304xxc65wjxydj8/304/304_hd_creating_great_app_previews.mov&quot;&gt;Session 304 – Creating Great App Previews&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/305xxjjl70ix0y1/305/305_hd_preventing_unauthorized_purchases_with_receipts.mov&quot;&gt;Session 305 – Preventing Unauthorized Purchases with Receipts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/306xxjtg7uz13v0/306/306_hd_javascript_for_automation.mov&quot;&gt;Session 306 – JavaScript for Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/401xxfkzfrjyb93/401/401_hd_whats_new_in_xcode_6.mov&quot;&gt;Session 401 – What’s New in Xcode 6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/402xxgg8o88ulsr/402/402_hd_introduction_to_swift.mov&quot;&gt;Session 402 – Introduction to Swift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/403xxksrj0qs8c0/403/403_hd_intermediate_swift.mov&quot;&gt;Session 403 – Intermediate Swift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/404xxdxsstkaqjb/404/404_hd_advanced_swift.mov&quot;&gt;Session 404 – Advanced Swift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/406xxssvkspk997/406/406_hd_integrating_swift_with_objective_c.mov&quot;&gt;Session 406 – Integrating Swift with Objective-C&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/407xxptt888z5jv/407/407_hd_swift_interoperability_in_depth.mov&quot;&gt;Session 407 – Swift Interoperability in Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/408xxcm26svis12/408/408_hd_swift_playgrounds.mov&quot;&gt;Session 408 – Swift Playgrounds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/409xxfw34pado34/409/409_hd_introduction_to_lldb_and_the_swift_repl.mov&quot;&gt;Session 409 – Introduction to LLDB and the Swift REPL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/410xx1s19e83i5z/410/410_hd_advanced_swift_debugging_in_lldb.mov&quot;&gt;Session 410 – Advanced Swift Debugging in LLDB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/411xx0xo98zzoor/411/411_hd_whats_new_in_interface_builder.mov&quot;&gt;Session 411 – What’s New in Interface Builder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/412xx80au1lrfcn/412/412_hd_localizing_with_xcode_6.mov&quot;&gt;Session 412 – Localizing with Xcode 6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/413xxr7gdc60u2p/413/413_hd_debugging_in_xcode_6.mov&quot;&gt;Session 413 – Debugging in Xcode 6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/414xx4l5du0f408/414/414_hd_testing_in_xcode_6.mov&quot;&gt;Session 414 – Testing in Xcode 6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/415xx83xkyr55fj/415/415_hd_continuous_integration_with_xcode_6.mov&quot;&gt;Session 415 – Continuous Integration with Xcode 6&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/416xxuit620s53g/416/416_hd_building_modern_frameworks.mov&quot;&gt;Session 416 – Building Modern Frameworks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/417xx2zsyyp8zcs/417/417_hd_whats_new_in_llvm.mov&quot;&gt;Session 417 – What’s New in LLVM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/418xxtihju1a7v4/418/418_hd_improving_your_app_with_instruments.mov&quot;&gt;Session 418 – Improving Your App with Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/419xxli6f60a6bs/419/419_hd_advanced_graphics_and_animation_performance.mov&quot;&gt;Session 419 – Advanced Graphics and Animation Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/501xxfo4d68h054/501/501_hd_whats_new_in_core_audio.mov&quot;&gt;Session 501 – What’s New in Core Audio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/502xxvo7vov799k/502/502_hd_avaudioengine_in_practice.mov&quot;&gt;Session 502 – AVAudioEngine in Practice&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/503xx50xm4n63qe/503/503_hd_mastering_modern_media_playback.mov&quot;&gt;Session 503 – Mastering Modern Media Playback&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/504xx5n1n7eie65/504/504_hd_advanced_media_for_the_web.mov&quot;&gt;Session 504 – Advanced Media for the Web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/505xx5j7n7h3a1q/505/505_hd_harnessing_metadata_in_audiovisual_media.mov&quot;&gt;Session 505 – Harnessing Metadata in Audiovisual Media&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/506xxeo80e5kykp/506/506_hd_ensuring_continuity_between_your_app_and_web_site.mov&quot;&gt;Session 506 – Ensuring Continuity Between Your App, WebSite and Safari&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/508xxfvaehrll14/508/508_hd_camera_capture_manual_controls.mov&quot;&gt;Session 508 – Camera Capture Manual Controls&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/509xxwli42i4gs6/509/509_hd_creating_3d_interactive_content_with_webgl.mov&quot;&gt;Session 509 –  Creating 3D Interactive Content with WebGL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/510xx6yeo9go0lo/510/510_hd_whats_new_in_iad_workbench.mov&quot;&gt;Session 510 – What’s New in iAd Workbench&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/511xxegx4yyhbt9/511/511_hd_introducing_the_photos_frameworks.mov&quot;&gt;Session 511 – Introducing the Photos Frameworks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/512xxj53iuolu78/512/512_hd_web_inspector_and_modern_javascript.mov&quot;&gt;Session 512 – Web Inspector and Modern JavaScript&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/513xxhfudagscto/513/513_hd_direct_access_to_media_encoding_and_decoding.mov&quot;&gt;Session 513 – Direct Access to Media Encoding and Decoding&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/514xxio5buvlu16/514/514_hd_advances_in_core_image.mov&quot;&gt;Session 514 – Advances in Core Image&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/515xxv01d9tcg3o/515/515_hd_developing_core_image_filters_for_ios.mov&quot;&gt;Session 515 – Developing Core Image Filters for iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/516xxanja9ziaar/516/516_hd_improving_the_accessibility_and_usability_of_complex_web_applications.mov&quot;&gt;Session 516 – Improving the Accessibility and Usability of Complex Web Applications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/517xxlpmjgeqazd/517/517_hd_designing_responsive_web_experiences.mov&quot;&gt;Session 517 – Designing Responsive Web Experiences&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/601xxu3eg5ttkcj/601/601_hd_harnessing_the_power_of_the_mac_pro_with_opengl_and_opencl.mov&quot;&gt;Session 601 – Harnessing the Power of the Mac Pro with OpenGL and OpenCL&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/602xx0qpmdkc2ki/602/602_hd_ingredients_of_great_games.mov&quot;&gt;Session 602 – Ingredients of Great Games&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/603xx33n8igr5n1/603/603_hd_working_with_metal_overview.mov&quot;&gt;Session 603 – Working with Metal - Overview&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/604xxg7crkljcr8/604/604_hd_working_with_metal_fundamentals.mov&quot;&gt;Session 604 – Working with Metal - Fundamentals&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/605xxygcz4pd0h6/605/605_hd_working_with_metal_advanced.mov&quot;&gt;Session 605 – Working with Metal - Advanced&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/606xxql3qoibema/606/606_hd_whats_new_in_sprite_kit.mov&quot;&gt;Session 606 – What’s New in SpriteKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/608xx0tzmkcqkrn/608/608_hd_best_practices_for_building_spritekit_games.mov&quot;&gt;Session 608 – Best Practices for Building SpriteKit Games&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/609xxkxq1v95fju/609/609_hd_whats_new_in_scenekit.mov&quot;&gt;Session 609 – What’s New in SceneKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/610xxc04fgmv80x/610/610_hd_building_a_game_with_scenekit.mov&quot;&gt;Session 610 – Building a Game with SceneKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/611xxblieag1z2a/611/611_hd_designing_for_game_controllers.mov&quot;&gt;Session 611 – Designing for Game Controllers&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/612xxnsoq5fis79/612/612_hd_motion_tracking_with_the_core_motion_framework.mov&quot;&gt;Session 612 – Motion Tracking with the Core Motion Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/701xx8n8ca3aq4j/701/701_hd_designing_accessories_for_ios_and_os_x.mov&quot;&gt;Session 701 – Designing Accessories for iOS and OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/702xxvsjwkmhw2e/702/702_hd_managing_apple_devices.mov&quot;&gt;Session 702 – Managing Apple Devices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/703xx9ich9e8mkn/703/703_hd_whats_new_in_the_accelerate_framework.mov&quot;&gt;Session 703 – What’s New in the Accelerate Framework&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/704xx7dmqd5m9l4/704/704_hd_building_apps_for_enterprise_and_education.mov&quot;&gt;Session 704 – Building Apps for Enterprise and Education&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/705xx0r0x0fsaf5/705/705_hd_distributing_enterprise_apps.mov&quot;&gt;Session 705 – Distributing Enterprise Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/706xxjytntg51wd/706/706_hd_whats_new_in_core_location.mov&quot;&gt;Session 706 – What’s New in Core Location&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/707xx1o5tdjnvg9/707/707_hd_whats_new_in_foundation_networking.mov&quot;&gt;Session 707 – What’s New in Foundation Networking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/708xxvfd08bdof2/708/708_hd_taking_core_location_indoors.mov&quot;&gt;Session 708 – Taking Core Location Indoors&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/709xx1q8hdvo14x/709/709_hd_cross_platform_nearby_networking.mov&quot;&gt;Session 709 – Cross Platform Nearby Networking&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/710xxwwk9jiqtu2/710/710_hd_writing_energy_efficient_code_part_1.mov&quot;&gt;Session 710 – Writing Energy Efficient Code, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/711xx6j5wzufu78/711/711_hd_keychain_and_authentication_with_touch_id.mov&quot;&gt;Session 711 – Keychain and Authentication with Touch ID&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/712xx1pl2u942g2/712/712_hd_writing_energy_efficient_code_part_2.mov&quot;&gt;Session 712 – Writing Energy Efficient Code, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/713xx1il4h4ur9c/713/713_hd_whats_new_in_ios_notifications.mov&quot;&gt;Session 713 – What’s New in iOS Notifications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/714xx1h4szxdnyz/714/714_hd_fix_bugs_faster_using_activity_tracing.mov&quot;&gt;Session 714 – Fix Bugs Faster using Activity Tracing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/715xx4loqo5can9/715/715_hd_user_privacy_in_ios_and_os_x.mov&quot;&gt;Session 715 – User Privacy in iOS and OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/716xx8q4shlqcp8/716/716_hd_power_performance_and_diagnostics_whats_new_in_gcd_and_xpc_for.mov&quot;&gt;Session 716 – Power, Performance and Diagnostics - What’s New in GCD and XPC&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/717xxux5eg6f9v4/717/717_hd_kids_and_apps.mov&quot;&gt;Session 717 – Kids and Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2014/718xxctf8ley20j/718/718_hd_adopting_airprint.mov&quot;&gt;Session 718 – Adopting Airprint&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;wwdc-2015&quot;&gt;WWDC 2015&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/1014o78qhj07pbfxt9g7/101/101_hd_keynote.mp4&quot;&gt;Session 101 – Keynote&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/1026npwuy2crj2xyuq11/102/102_hd_platforms_state_of_the_union.mp4&quot;&gt;Session 102 – Platforms State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/103ot7lzkdri2fvn1iyh/103/103_hd_apple_design_awards.mp4&quot;&gt;Session 103 – Apple Design Awards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/104usewvb5m0qbwafx8p/104/104_hd_whats_new_in_xcode.mp4&quot;&gt;Session 104 – What’s New in Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/105ncyldc6ofunvsgtan/105/105_hd_introducing_watchkit_for_watchos_2.mp4&quot;&gt;Session 105 – Introducing WatchKit for WatchOS 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/106z3yjwpfymnauri96m/106/106_hd_whats_new_in_swift.mp4&quot;&gt;Session 106 – What’s New in Swift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/1075hpxmc54818sn59su/107/107_hd_whats_new_in_cocoa_touch.mp4&quot;&gt;Session 107 – What’s New in Cocoa Touch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/1086gvs7f4vryixs49s6/108/108_hd_building_watch_apps.mp4&quot;&gt;Session 108 – Building Watch Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/201pps6n6g0nsnz/201/201_hd_ios_accessibility.mp4&quot;&gt;Session 201 – iOS Accessibility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/2023wpov1sxpnf9/202/202_hd_whats_new_in_cocoa.mp4&quot;&gt;Session 202 – What’s New in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/203bxvbtrom9t1t/203/203_hd_whats_new_in_healthkit.mp4&quot;&gt;Session 203 – What’s New in HealthKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/2048w4vdjhe1i1m/204/204_hd_apple_watch_accessibility.mp4&quot;&gt;Session 204 – Apple Watch Accessibility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/2058z3fx76huw93/205/205_hd_getting_started_with_multitasking_on_ipad_in_ios_9.mp4&quot;&gt;Session 205 – Getting Started with Multitasking on iPad in iOS 9&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/206v5ce46maax7s/206/206_hd_whats_new_in_mapkit.mp4&quot;&gt;Session 206 – What’s New in MapKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/207id8oiaxrt6lh/207/207_hd_watchkit_indepth_part_1.mp4&quot;&gt;Session 207 – WatchKit In-Depth, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/208wc2mdvock1md/208/208_hd_watchkit_indepth_part_2.mp4&quot;&gt;Session 208 – WatchKit In-Depth, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/209c9277tttlt9/209/209_hd_creating_complications_with_clockkit.mp4&quot;&gt;Session 209 – Creating Complications with ClockKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/210oyq5peqlavb/210/210_hd_whats_new_in_homekit.mp4&quot;&gt;Session 210 – What’s New in HomeKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/211dseo3cn0bnw/211/211_hd_multitasking_essentials_for_mediabased_apps_on_ipad_in_ios_9.mp4&quot;&gt;Session 211 – Multitasking Essentials for Media-Based Apps on iPad in iOS 9&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/212mm5ra3oau66/212/212_hd_optimizing_your_app_for_multitasking_on_ipad_in_ios_9.mp4&quot;&gt;Session 212 – Optimizing Your App for Multitasking on iPad in iOS 9&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/213w6grumlfm0q/213/213_hd_building_apps_with_researchkit.mp4&quot;&gt;Session 213 – Building Apps with ResearchKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/214dh5q5d0kswh/214/214_hd_introducing_on_demand_resources.mp4&quot;&gt;Session 214 – Introducing On Demand Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/215972d0hjjcfx/215/215_hd_whats_new_in_storyboards.mp4&quot;&gt;Session 215 – What’s New in Storyboards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/216isrjt4ku9w4/216/216_hd_layout_and_animation_techniques_for_watchkit.mp4&quot;&gt;Session 216 – Layout and Animation Techniques for WatchKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/217wu453thu1r1/217/217_hd_adopting_new_trackpad_features.mp4&quot;&gt;Session 217 – Adopting New Trackpad Features&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/2187le7kpyhdff/218/218_hd_mysteries_of_auto_layout_part_1.mp4&quot;&gt;Session 218 – Mysteries of Auto Layout, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/219u3bqgvsz2g/219/219_hd_mysteries_of_auto_layout_part_2.mp4&quot;&gt;Session 219 – Mysteries of Auto Layout, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/220lgx5lvphj2/220/220_hd_whats_new_in_core_data.mp4&quot;&gt;Session 220 – What’s New in Core Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/22160ycymy0qg/221/221_hd_improving_the_full_screen_window_experience.mp4&quot;&gt;Session 221 – Improving the Full Screen Window Experience&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/222ngkqh58b52/222/222_hd_new_uikit_support_for_international_user_interfaces.mp4&quot;&gt;Session 222 – New UIKit Support for International User Interfaces&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/223rmo6dv9hxh/223/223_hd_introducing_the_contacts_framework_for_ios_and_os_x.mp4&quot;&gt;Session 223 – Introducing the Contacts Framework for iOS and OS X&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/224o6pqmtb4ik/224/224_hd_app_extension_best_practices.mp4&quot;&gt;Session 224 – App Extension Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/225629tzulwe0/225/225_hd_whats_new_in_nscollectionview.mp4&quot;&gt;Session 225 – What’s New in NSCollectionView&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/2267p2ni281ba/226/226_hd_advanced_nsoperations.mp4&quot;&gt;Session 226 – Advanced NSOperations&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/227s0ti458qgg/227/227_hd_whats_new_in_internationalization.mp4&quot;&gt;Session 227 – What’s New in Internationalization&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/228eahxjbaops/228/228_hd_watchkit_tips_and_tricks.mp4&quot;&gt;Session 228 – WatchKit Tips and Tricks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/229fksrj39nd/229/229_hd_whats_new_in_uikit_dynamics_and_visual_effects.mp4&quot;&gt;Session 229 – What’s New in UIKit Dynamics and Visual Effects&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/230wt8hs0wt8/230/230_hd_performance_on_ios_and_watchos.mp4&quot;&gt;Session 230 – Performance on iOS and WatchOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/2313dt427pmq/231/231_hd_cocoa_touch_best_practices.mp4&quot;&gt;Session 231 – Cocoa Touch Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/232f1zopzycv/232/232_hd_best_practices_for_progress_reporting.mp4&quot;&gt;Session 232 – Best Practices for Progress Reporting&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/233l9q8hj9mw/233/233_hd_advanced_touch_input_on_ios.mp4&quot;&gt;Session 233 – Advanced Touch Input on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/234reaz1byqc/234/234_hd_building_document_based_apps.mp4&quot;&gt;Session 234 – Building Document-Based Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/301tcfp66f/301/301_hd_whats_new_in_managing_apple_devices.mp4&quot;&gt;Session 301 – What’s New in Managing Apple Devices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/302sxabxp0/302/302_hd_whats_new_in_itunes_connect.mp4&quot;&gt;Session 302 – What’s New in iTunes Connect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/303qzm09e7/303/303_hd_getting_the_most_out_of_app_analytics.mp4&quot;&gt;Session 303 – Getting the Most out of App Analytics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/304ywrr62d/304/304_hd_itunes_connect_development_to_distribution.mp4&quot;&gt;Session 304 – iTunes Connect Development to Distribution&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/306vjwcqnm/306/306_hd_supporting_the_enterprise_with_os_x_automation.mp4&quot;&gt;Session 306 – Supporting the Enterprise with OS X Automation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/401gee20yy5v2men/401/401_hd_swift_and_objectivec_interoperability.mp4&quot;&gt;Session 401 – Swift and Objective-C Interoperability&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/402c0mhxbs8tt52t/402/402_hd_whats_new_in_lldb.mp4&quot;&gt;Session 402 – What’s New in LLDB&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/403l7ohdidhmnkgx/403/403_hd_improving_your_existing_apps_with_swift.mp4&quot;&gt;Session 403 – Improving Your Existing Apps with Swift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/404l17yio30l549x/404/404_hd_app_thinning_in_xcode.mp4&quot;&gt;Session 404 – App Thinning in Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/405t69ymgwkmfzc9/405/405_hd_authoring_rich_playgrounds.mp4&quot;&gt;Session 405 – Authoring Rich Playgrounds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/406o0doszwo8r15m/406/406_hd_ui_testing_in_xcode.mp4&quot;&gt;Session 406 – UI Testing in Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/4072909wwb9o9j3/407/407_hd_implementing_ui_designs_in_interface_builder.mp4&quot;&gt;Session 407 – Implementing UI Ddesigns in Interface Builder&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/408509vyudbqvts/408/408_hd_protocoloriented_programming_in_swift.mp4&quot;&gt;Session 408 – Protocol-Oriented Programming in Swift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/4097c25o0qhs6g5/409/409_hd_optimizing_swift_performance.mp4&quot;&gt;Session 409 – Optimizing Swift Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/41097fby32x3opk/410/410_hd_continuous_integration_and_code_coverage_in_xcode.mp4&quot;&gt;Session 410 – Continuous Integration and Code Coverage in Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/4119flfsnsgmlfy/411/411_hd_swift_in_practice.mp4&quot;&gt;Session 411 – Swift in Practice&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/412rhea5amj6iaf/412/412_hd_profiling_in_depth.mp4&quot;&gt;Session 412 – Profiling in Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/413eflf3lrh1tyo/413/413_hd_advanced_debugging_and_the_address_sanitizer.mp4&quot;&gt;Session 413 – Advanced Debugging and the Address Sanitizer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/414sklk5h2k3ki3/414/414_hd_building_better_apps_with_value_types_in_swift.mp4&quot;&gt;Session 414 – Building Better Apps with Value Types in Swift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/501g8vwlgg2/501/501_hd_whats_new_in_web_development_in_webkit_and_safari.mp4&quot;&gt;Session 501 – What’s New in Web Development in WebKit and Safari&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/502sufwcpog/502/502_hd_content_protection_for_http_live_streaming.mp4&quot;&gt;Session 502 – Content Protection for HTTP Live Streaming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/503oad8l55m/503/503_hd_monetize_and_promote_your_app_with_iad.mp4&quot;&gt;Session 503 – Monetize and Promote Your App with iAd&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/5048tyhotl6/504/504_hd_introducing_safari_view_controller.mp4&quot;&gt;Session 504 – Introducing Safari View Controller&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/5059xl75l59/505/505_hd_using_safari_to_deliver_and_debug_a_responsive_web_design.mp4&quot;&gt;Session 505 – Using Safari to Deliver and Debug a Responsive Web Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/5062qehwhs/506/506_hd_editing_movies_in_av_foundation.mp4&quot;&gt;Session 506 – Editing Movies in AVFoundation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/507pq8rldk/507/507_hd_whats_new_in_core_audio.mp4&quot;&gt;Session 507 – What’s New in Core Audio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/508691kyzp/508/508_hd_audio_unit_extensions.mp4&quot;&gt;Session 508 – Audio Unit Extensions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/5091mxk00t/509/509_hd_seamless_linking_to_your_app.mp4&quot;&gt;Session 509 – Seamless Linking to Your App&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/510jiccqsz/510/510_hd_whats_new_in_core_image.mp4&quot;&gt;Session 510 – What’s New in Core Image&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/511kmynuza/511/511_hd_safari_extensibility_content_blocking_and_shared_links.mp4&quot;&gt;Session 511 – Safari Extensibilily Content Blocking and Shared Links&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/602868pb0ow6idb3w/602/602_hd_managing_3d_assets_with_model_io.mp4&quot;&gt;Session 602 – Managing 3D Assets with Model IO&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/6037pi9rxl6tfss8w/603/603_hd_whats_new_in_metal_part_1.mp4&quot;&gt;Session 603 – What’ New in Metal, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/604gq12qghmv39znb/604/604_hd_whats_new_in_spritekit.mp4&quot;&gt;Session 604 – What’s New in SpriteKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/6053hq2fz0ebo0lm/605/605_hd_going_social_with_replaykit_and_game_center.mp4&quot;&gt;Session 605 – Going Social with ReplayKit and Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/606ui2ppsvalj4nn/606/606_hd_enhancements_to_scenekit.mp4&quot;&gt;Session 606 – Enhancements to SceneKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/607g5z16fpl7pzgi/607/607_hd_whats_new_in_metal_part_2.mp4&quot;&gt;Session 607 – What’s New in Metal, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/608rpwq1ltvg5nmk/608/608_hd_introducing_gameplaykit.mp4&quot;&gt;Session 608 – Introducing GameplayKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/609pzlyunriyjupp/609/609_hd_deeper_into_gameplaykit_with_demobots.mp4&quot;&gt;Session 609 – Deeper into GameplayKit with DemoBots&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/610kn68riy9ms89m/610/610_hd_metal_performance_optimization_techniques.mp4&quot;&gt;Session 610 – Metal Performance Optimization Techniques&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/701i2qis0reg/701/701_hd_wallet__the_home_for_apple_pay_and_more.mp4&quot;&gt;Session 701 – Wallet - the Home for Apple Pay and More&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/702lp563ezbr/702/702_hd_apple_pay_within_apps.mp4&quot;&gt;Session 702 – Apple Pay Within Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/703kp2dwbwkr/703/703_hd_privacy_and_your_app.mp4&quot;&gt;Session 703 – Privacy and Your App&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/704ci202euy/704/704_hd_whats_new_in_cloudkit.mp4&quot;&gt;Session 704 – Whats New in CloudKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/705qrxhfxo0/705/705_hd_whats_new_in_core_motion.mp4&quot;&gt;Session 705 – What’s New in Core Motion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/706nu20qkag/706/706_hd_security_and_your_apps.mp4&quot;&gt;Session 706 – Security and Your Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/707ysegpumy/707/707_hd_achieving_allday_battery_life.mp4&quot;&gt;Session 707 – Achieving All-day Battery Life&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/708xzs0dtwx/708/708_hd_debugging_energy_issues.mp4&quot;&gt;Session 708 – Debugging Energy Issues&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/709jcaer6su/709/709_hd_introducing_search_apis.mp4&quot;&gt;Session 709 – Introducing Search APIs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/710jle9eakx/710/710_hd_cloudkit_js_and_web_services.mp4&quot;&gt;Session 710 – CloudKit JS and Web Services&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/711y6zlz0ll/711/711_hd_networking_with_nsurlsession.mp4&quot;&gt;Session 711 – Networking with NSURLSession&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/7125ovmdf36/712/712_hd_low_energy_high_performance_compression_and_accelerate.mp4&quot;&gt;Session 712 – Low Energy, High Performance - Compression and Accelerate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/713gc2tqvvb/713/713_hd_introducing_watch_connectivity.mp4&quot;&gt;Session 713 – Introducing Watch Connectivity&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/714tqy593v/714/714_hd_whats_new_in_core_location.mp4&quot;&gt;Session 714 – What’s New in Core Location&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/7153rwmu2r/715/715_hd_cloudkit_tips_and_tricks.mp4&quot;&gt;Session 715 – CloudKit Tips and Tricks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/717yq4y85w/717/717_hd_whats_new_in_network_extension_and_vpn.mp4&quot;&gt;Session 717 – What’s New in Network Extension and VPN&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/718b7aw9tq/718/718_hd_building_responsive_and_efficient_apps_with_gcd.mp4&quot;&gt;Session 718 – Building Responsive and Efficient Apps with GCD&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/719ui2k57m/719/719_hd_your_app_and_next_generation_networks.mp4&quot;&gt;Session 719 – Your App and Next Generation Networks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/720xwbi9nl/720/720_hd_whats_new_in_notifications.mp4&quot;&gt;Session 720 – What’s New in Notifications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/801auxyvb1pgtkufjk/801/801_hd_designing_for_future_hardware.mp4&quot;&gt;Session 801 – Designing for Future Hardware&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/802mpzd3nzovlygpbg/802/802_hd_designing_for_apple_watch.mp4&quot;&gt;Session 802 – Designing for Apple Watch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/803q4kw6eqia7ssp17/803/803_hd_designing_with_animation.mp4&quot;&gt;Session 803 – Designing with Animation&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/804eub264zh3x4j9yb/804/804_hd_introducing_the_new_system_fonts.mp4&quot;&gt;Session 804 – Introducing the New System Fonts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2015/805yjy11epjkgmnn11/805/805_hd_apple_watch_design_tips_and_tricks.mp4&quot;&gt;Session 805 – Apple Watch Design Tips and Tricks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;wwdc-2016&quot;&gt;WWDC 2016&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/101g0jrsvv5qcoduisk/101/101_hd_keynote.mp4&quot;&gt;Session 101 – Keynote&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/102w0bsn0ge83qfv7za/102/102_hd_platforms_state_of_the_union.mp4&quot;&gt;Session 102 – Platforms State of the Union&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/103m0752oxdkymyk6gy/103/103_hd_apple_design_awards.mp4&quot;&gt;Session 103 – Apple Design Awards&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/104b1061nbty638w2cd/104/104_hd_disability_and_innovation_the_universal_benefits_of_accessible_design.mp4&quot;&gt;Session 104 – Disability and Innovation - The Universal Benefits of Accessible Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/105o1y9n857rpjpmu27/105/105_hd_tapping_into_innovative_solutions_to_save_the_worlds_wildlife.mp4&quot;&gt;Session 105 – Tapping into Innovative Solutions to Save the World’s Wildlife&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/106r1nsdtsnrih7t6id/106/106_hd_talking_in_pictures_reconstructing_the_building_blocks_of_language.mp4&quot;&gt;Session 106 – Talking In Pictures - Reconstructing the Building Blocks of Language&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/108h16qehvq9hdjuf96/108/108_hd_marvel_making_a_difference_in_the_real_world.mp4&quot;&gt;Session 108 – Marvel - Making a Difference in the Real World&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/201h1g4asm31ti2l9n1/201/201_hd_internationalization_best_practices.mp4&quot;&gt;Session 201 – Internationalization Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/202w2zhc4l8yomptqnt/202/202_hd_whats_new_in_accessibility.mp4&quot;&gt;Session 202 – What’s New in Accessibility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/203x2w42att1kdzg1ce/203/203_hd_whats_new_in_cocoa.mp4&quot;&gt;Session 203 – What’s New in Cocoa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/204t23fvanrkj7a1oj7/204/204_hd_imessage_apps_and_stickers_part_1.mp4&quot;&gt;Session 204 – iMessage Apps and Stickers, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/205n2okotvilcayc8rc/205/205_hd_whats_new_in_cocoa_touch.mp4&quot;&gt;Session 205 – What’s New in Cocoa Touch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/206a38wgme6uponcuwd/206/206_hd_whats_new_in_tvos.mp4&quot;&gt;Session 206 – What’s New in tvOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/207i37356qcyyh2yxos/207/207_hd_whats_new_in_foundation_for_swift.mp4&quot;&gt;Session 207 – What’s New in Foundation for Swift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/208j30f4v1a1i9i5fg9/208/208_hd_whats_new_in_watchos_3.mp4&quot;&gt;Session 208 – What’s New in watchOS 3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/209e37d5ks3pfj21ij5/209/209_hd_getting_the_most_out_of_healthkit.mp4&quot;&gt;Session 209 – Getting the Most Out of HealthKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/210e4481b1cnwor4n1q/210/210_hd_mastering_uikit_on_tvos.mp4&quot;&gt;Session 210 – Mastering UIKit on tvOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/211m4cro5y3rrsfzfdj/211/211_hd_quick_interaction_techniques_for_watchos.mp4&quot;&gt;Session 211 – Quick Interaction Techniques for watchOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/212s41rh77qgdg26s86/212/212_hd_developing_tvos_apps_using_tvmlkit_part_1.mp4&quot;&gt;Session 212 – Developing tvOS Apps Using TVMLKit, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/213r47rtymgcyythv7w/213/213_hd_improving_existing_apps_with_modern_best_practices.mp4&quot;&gt;Session 213 – Improving Existing Apps with Modern Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/214b51jlndqja1bpptt/214/214_hd_extending_your_app_with_safari_app_extensions.mp4&quot;&gt;Session 214 – Extending your App with Safari App Extensions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/215e597a1en6wrh89hm/215/215_hd_focus_interaction_on_tvos.mp4&quot;&gt;Session 215 – Focus Interaction on tvOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/216v55u6zpxizxkml6k/216/216_hd_advances_in_uikit_animations_and_transitions.mp4&quot;&gt;Session 216 – Advances in UIKit Animations and Transitions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/217x5143f51ztsxao1u/217/217_hd_introducing_sirikit.mp4&quot;&gt;Session 217 – Introducing SiriKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/218e59uvbkp1smncrss/218/218_hd_keeping_your_watch_app_up_to_date.mp4&quot;&gt;Session 218 – Keeping Your Watch App Up to Date&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/219g66mxt0n74iogsgp/219/219_hd_whats_new_in_uicollectionview_in_ios_10.mp4&quot;&gt;Session 219 – What’s New in UICollectionView in iOS 10&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/220c6lnr7wkcjewnj1g/220/220_hd_leveraging_touch_input_on_ios.mp4&quot;&gt;Session 220 – Leveraging Touch Input on iOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/221l723gdmjyvv5pmw7/221/221_hd_optimizing_ondemand_resources.mp4&quot;&gt;Session 221 – Optimizing On-Demand Resources&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/222l873ttj77llkzbzs/222/222_hd_making_apps_adaptive_part_1.mp4&quot;&gt;Session 222 – Making Apps Adaptive, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/223j90dqr7q1xyld1mv/223/223_hd_making_the_most_of_search_apis.mp4&quot;&gt;Session 223 – Making the Most of Search APIs&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/224g9mui5qb06o6ukpf/224/224_hd_imessage_apps_and_stickers_part_2.mp4&quot;&gt;Session 224 – iMessage Apps and Stickers, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/225e97ww3majsu3bvt8/225/225_hd_extending_your_apps_with_sirikit.mp4&quot;&gt;Session 225 – Extending Your Apps with SiriKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/226aey4ryxex6rvqvn1/226/226_hd_whats_new_with_cloudkit.mp4&quot;&gt;Session 226 – What’s New with CloudKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/227a480gfx4hwinv5x9/227/227_hd_architecting_for_performance_on_watchos_3.mp4&quot;&gt;Session 227 – Architecting for Performance on watchOS 3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/228a1kbxogojm4fviqc/228/228_hd_a_peek_at_3d_touch.mp4&quot;&gt;Session 228 – A Peek at 3D Touch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/229b09xkrv3t6tdzwsu/229/229_hd_developing_tvos_apps_using_tvmlkit_part_2.mp4&quot;&gt;Session 229 – Developing tvOS Apps Using TVMLKit, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/230b83wfxc7m69dm90q/230/230_hd_enhancing_voip_apps_with_callkit.mp4&quot;&gt;Session 230 – Enhancing VoIP Apps with CallKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/231bhrh1z1fzrejhbz7/231/231_hd_cloudkit_best_practices.mp4&quot;&gt;Session 231 – CloudKit Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/232biqdny8x84wjag07/232/232_hd_whats_new_in_international_user_interfaces.mp4&quot;&gt;Session 232 – What’s New in International User Interfaces&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/233c3uhytv8cxwoanja/233/233_hd_making_apps_adaptive_part_2.mp4&quot;&gt;Session 233 – Making Apps Adaptive, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/234dvn2mhmc3klk7vy4/234/234_hd_whats_new_in_researchkit.mp4&quot;&gt;Session 234 – What’s New in ResearchKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/235dk9q4a4mflq2dbms/235/235_hd_building_great_workout_apps.mp4&quot;&gt;Session 235 – Building Great Workout Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/236dnxhy85jkit108dh/236/236_hd_whats_new_in_auto_layout.mp4&quot;&gt;Session 236 – What’s New in Auto Layout&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/237e12rha4rg2t0p53u/237/237_hd_getting_started_with_carekit.mp4&quot;&gt;Session 237 – Getting Started with CareKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/238eemv232k9lp2px30/238/238_hd_measurements_and_units.mp4&quot;&gt;Session 238 – Measurements and Units&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/239ebj00keggvd2m2fx/239/239_hd_crafting_modern_cocoa_apps.mp4&quot;&gt;Session 239 – Crafting Modern Cocoa Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/240f49ca5uvbzg5pwk5/240/240_hd_increase_usage_of_your_app_with_proactive_suggestions.mp4&quot;&gt;Session 240 – Increase Usage of Your App With Proactive Suggestions&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/241fgk9sdmxcb6c6wz2/241/241_hd_public_transit_in_apple_maps.mp4&quot;&gt;Session 241 – Public Transit in Apple Maps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/242vdhuk4hmwrxnb465/242/242_hd_whats_new_in_core_data.mp4&quot;&gt;Session 242 – What’s New in Core Data&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/301fbtjd9exjetky78s/301/301_hd_introducing_expanded_subscriptions_in_itunes_connect.mp4&quot;&gt;Session 301 – Introducing Expanded Subscriptions in iTunes Connect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/302f5hkfjyg13j84oda/302/302_hd_introducing_search_ads.mp4&quot;&gt;Session 302 – Introducing Search Ads&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/303g7ecrjttz4lpqd7y/303/303_hd_whats_new_in_apple_device_management.mp4&quot;&gt;Session 303 – What’s New in Apple Device Management&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/304heg1mrvxxz5lhd4h/304/304_hd_best_practices_for_building_apps_used_in_business_and_education.mp4&quot;&gt;Session 304 – Best Practices for Building Apps Used in Business and Education&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/305h9fsce1kcqkvmtvk/305/305_hd_whats_new_in_itunes_connect.mp4&quot;&gt;Session 305 – What’s New in iTunes Connect&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/401hmew12wifry4svvi/401/401_hd_whats_new_in_xcode_app_signing.mp4&quot;&gt;Session 401 – What’s New in Xcode App Signing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/402h429l9d0hy98c9m6/402/402_hd_whats_new_in_swift.mp4&quot;&gt;Session 402 – What’s New in Swift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/403hb0ie2m86hvs7yyn/403/403_hd_swift_api_design_guidelines.mp4&quot;&gt;Session 403 – Swift API Design Guidelines&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/404hskg1ijeev16mdej/404/404_hd_getting_started_with_swift.mp4&quot;&gt;Session 404 – Getting Started with Swift&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/405i2ilotov3bazyei1/405/405_hd_whats_new_in_llvm.mp4&quot;&gt;Session 405 – What’s New in LLVM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/406i3zbazbegkeh0udt/406/406_hd_optimizing_app_startup_time.mp4&quot;&gt;Session 406 – Optimizing App Startup Time&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/407itxn2ujs52fwcgw5/407/407_hd_auditing_your_apps_for_accessibility.mp4&quot;&gt;Session 407 – Auditing Your Apps for Accessibility&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/408j7syjtdlxnl2rq4j/408/408_hd_introducing_swift_playgrounds.mp4&quot;&gt;Session 408 – Introducing Swift Playgrounds&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/409jh83sf1h8dqrt00q/409/409_hd_advanced_testing_and_continuous_integration.mp4&quot;&gt;Session 409 – Advanced Testing and Continuous Integration&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/410jaf5ko3ob8asajlf/410/410_hd_visual_debugging_with_xcode.mp4&quot;&gt;Session 410 – Visual Debugging with Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/411jge60tmuuh7dolja/411/411_hd_system_trace_in_depth.mp4&quot;&gt;Session 411 – System Trace in Depth&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/412jzguxz4h8hykgjlm/412/412_hd_thread_sanitizer_and_static_analysis.mp4&quot;&gt;Session 412 – Thread Sanitizer and Static Analysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/413jz6eb2wkfuzwx1me/413/413_hd_introduction_to_xcode.mp4&quot;&gt;Session 413 – Introduction to Xcode&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/414k6h6qdzyihpowpaa/414/414_hd_using_and_extending_the_xcode_source_editor.mp4&quot;&gt;Session 414 – Using and Extending the Xcode Source Editor&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/415kvwo632dbu5csn3g/415/415_hd_going_serverside_with_swift_open_source.mp4&quot;&gt;Session 415 – Going Server-side with Swift Open Source&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/416k7f0xkmz28rvlvwb/416/416_hd_understanding_swift_performance.mp4&quot;&gt;Session 416 – Understanding Swift Performance&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/417kbvnnlivhyfnn98p/417/417_hd_debugging_tips_and_tricks.mp4&quot;&gt;Session 417 – Debugging Tips and Tricks&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/418kmcxcwg4psxzsjuy/418/418_hd_using_time_profiler_in_instruments.mp4&quot;&gt;Session 418 – Using Time Profiler in Instruments&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/419lgbsyhjrmqtmq0qh/419/419_hd_protocol_and_value_oriented_programming_in_uikit_apps.mp4&quot;&gt;Session 419 – Protocol and Value Oriented Programming in UIKit Apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/420lbx5afix4io0xo9p/420/420_hd_optimizing_web_content_in_your_app.mp4&quot;&gt;Session 420 – Optimizing Web Content in Your App&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/501l32ujtbnw2ad06wy/501/501_hd_advances_in_ios_photography.mp4&quot;&gt;Session 501 – Advances in iOS Photography&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/502lezynlddsti4drbq/502/502_hd_getting_published_in_apple_news.mp4&quot;&gt;Session 502 – Getting Published in Apple News&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/503lkp4vimgv7tqecn7/503/503_hd_advances_in_avfoundation_playback.mp4&quot;&gt;Session 503 – Advances in AVFoundation Playback&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/504m956dgg4hlw2uez9/504/504_hd_whats_new_in_http_live_streaming.mp4&quot;&gt;Session 504 – What’s New in HTTP Live Streaming&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/505mia12r7dwmk3aumw/505/505_hd_live_photo_editing_and_raw_processing_with_core_image.mp4&quot;&gt;Session 505 – Live Photo Editing and RAW Processing with Core Image&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/506ms2tv71tcduwp3dm/506/506_hd_avkit_on_tvos.mp4&quot;&gt;Session 506 – AVKit on tvOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/507n0zrhzxdzmg20zcl/507/507_hd_delivering_an_exceptional_audio_experience.mp4&quot;&gt;Session 507 – Delivering an Exceptional Audio Experience&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/508nbofuzf16hljuwqe/508/508_hd_using_apple_news_format_to_create_rich_and_responsive_stories.mp4&quot;&gt;Session 508 – Using Apple News Format to Create Rich and Responsive Stories&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/509n1cnykqms19r9jyp/509/509_hd_speech_recognition_api.mp4&quot;&gt;Session 509 – Speech Recognition API&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/510ndmh9wkcvzneegv2/510/510_hd_validating_http_live_streams.mp4&quot;&gt;Session 510 – Validating HTTP Live Streams&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/511nqyciexman7sf932/511/511_hd_avcapturephotooutput__beyond_the_basics.mp4&quot;&gt;Session 511 – AVCapturePhotoOutput - Beyond the Basics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/601nsio90cd7ylwimk9/601/601_hd_go_live_with_replaykit.mp4&quot;&gt;Session 601 – Go Live with ReplayKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/602o05a86ysk0ngvlgj/602/602_hd_adopting_metal_part_1.mp4&quot;&gt;Session 602 – Adopting Metal, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/603oba298b1v4z54011/603/603_hd_adopting_metal_part_2.mp4&quot;&gt;Session 603 – Adopting Metal, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/604oezpg3wmqrkxl0t7/604/604_hd_whats_new_in_metal_part_1.mp4&quot;&gt;Session 604 – What’s New in Metal, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/605ooaey8tbzegv8fth/605/605_hd_whats_new_in_metal_part_2.mp4&quot;&gt;Session 605 – What’s New in Metal, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/606oluchfgwakjbymy8/606/606_hd_advanced_metal_shader_optimization.mp4&quot;&gt;Session 606 – Advanced Metal Shader Optimization&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/607odzb3n443nv9ei5p/607/607_hd_controlling_game_input_for_apple_tv.mp4&quot;&gt;Session 607 – Controlling Game Input for Apple TV&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/608p3mqohp4bat0id7s/608/608_hd_whats_new_in_gameplaykit.mp4&quot;&gt;Session 608 – What’s New in GameplayKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/609pxdzx9vsps1l0qdh/609/609_hd_advances_in_scenekit_rendering.mp4&quot;&gt;Session 609 – Advances in SceneKit Rendering&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/610p9xtklo7t2au11md/610/610_hd_whats_new_in_spritekit.mp4&quot;&gt;Session 610 – What’s New in SpriteKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/611qdyg26bqfivpaww1/611/611_hd_whats_new_in_game_center.mp4&quot;&gt;Session 611 – What’s New in Game Center&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/612qhqi7kh3399jwhy7/612/612_hd_game_technologies_for_apple_watch.mp4&quot;&gt;Session 612 – Game Technologies for Apple Watch&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/701q0pnn0ietcautcrv/701/701_hd_introducing_apple_file_system.mp4&quot;&gt;Session 701 – Introducing Apple File System&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/702rhpkb0ux7uuzixps/702/702_hd_using_store_kit_for_inapp_purchases_with_swift_3.mp4&quot;&gt;Session 702 – Using Store Kit for In-App Purchases with Swift 3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/703rx8zlfedjfom6l93/703/703_hd_apple_pay_on_the_web.mp4&quot;&gt;Session 703 – Apple Pay on the Web&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/704s1a6rjyi2dqhhyi7/704/704_hd_whats_new_with_wallet_and_apple_pay.mp4&quot;&gt;Session 704 – What’s New with Wallet and Apple Pay&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/705s57mrvm8so193i8c/705/705_hd_how_ios_security_really_works.mp4&quot;&gt;Session 705 – How iOS Security Really Works&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/706sgjvzkvg6rrg9icw/706/706_hd_whats_new_in_security.mp4&quot;&gt;Session 706 – What’s New in Security&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/707s77u9e6pv0dy9ggm/707/707_hd_introduction_to_notifications.mp4&quot;&gt;Session 707 – Introduction to Notifications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/708tbh8wnspsg01hxwx/708/708_hd_advanced_notifications.mp4&quot;&gt;Session 708 – Advanced Notifications&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/709tvxadw201avg5v7n/709/709_hd_engineering_privacy_for_your_users.mp4&quot;&gt;Session 709 – Engineering Privacy for Your Users&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/710tkhyprou9hhbnc6g/710/710_hd_whats_new_in_homekit.mp4&quot;&gt;Session 710 – What’s New in HomeKit&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/711tlraheg74mofg3uq/711/711_hd_nsurlsession_new_features_and_best_practices.mp4&quot;&gt;Session 711 – NSURLSession - New Features and Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/712ugi7vg8jznn3pc3u/712/712_hd_working_with_wide_color.mp4&quot;&gt;Session 712 – Working with Wide Color&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/713uqrvfj3uo0xewc37/713/713_hd_health_and_fitness_with_core_motion.mp4&quot;&gt;Session 713 – Health and Fitness with Core Motion&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/714urluxe140lardrb7/714/714_hd_networking_for_the_modern_internet.mp4&quot;&gt;Session 714 – Networking for the Modern Internet&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/715v2nxofqo5an4q79a/715/715_hd_neural_networks_and_accelerate.mp4&quot;&gt;Session 715 – Neural Networks and Accelerate&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/716vyncka4gcaxxwuvq/716/716_hd_core_location_best_practices.mp4&quot;&gt;Session 716 – Core Location Best Practices&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/719wve0t1j24kny0f9r/719/719_hd_optimizing_io_for_performance_and_battery_life.mp4&quot;&gt;Session 719 – Optimizing IO for Performance and Battery Life&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/720w6g8t9zhd23va0ai/720/720_hd_concurrent_programming_with_gcd_in_swift_3.mp4&quot;&gt;Session 720 – Concurrent Programming With GCD in Swift 3&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/721wh2etddp4ghxhpcg/721/721_hd_unified_logging_and_activity_tracing.mp4&quot;&gt;Session 721 – Unified Logging and Activity Tracing&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/722x2eefo3u2rp8k8qs/722/722_hd_developing_carplay_systems_part_1.mp4&quot;&gt;Session 722 – Developing CarPlay Systems, Part 1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/723x16j75lwkg414uxk/723/723_hd_developing_carplay_systems_part_2.mp4&quot;&gt;Session 723 – Developing CarPlay Systems, Part 2&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/724x4wbpmrtkjpgfdlj/724/724_hd_whats_new_in_the_apple_push_notification_service.mp4&quot;&gt;Session 724 – What’s New in the Apple Push Notification Service&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/725xk1hwmcfqkiv0jfh/725/725_hd_deploying_airprint_in_enterprise.mp4&quot;&gt;Session 725 – Deploying AirPrint in Enterprise&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/801y753jw8vxmjblocq/801/801_hd_inclusive_app_design.mp4&quot;&gt;Session 801 – Inclusive App Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/802z6j79sd7g5drr7k7/802/802_hd_designing_for_tvos.mp4&quot;&gt;Session 802 – Designing for tvOS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/803z7m1ln9vmbpg35x9/803/803_hd_typography_and_fonts.mp4&quot;&gt;Session 803 – Typography and Fonts&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/804zpr8et6qv87n8j1z/804/804_hd_designing_great_apple_watch_experiences.mp4&quot;&gt;Session 804 – Designing Great Apple Watch Experiences&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://devstreaming-cdn.apple.com/videos/wwdc/2016/805zlxpfexwwzt7x0cr/805/805_hd_iterative_ui_design.mp4&quot;&gt;Session 805 – Iterative UI Design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      </item>
    
      <item>
        <title>Automate HomeKit with HomeControl Automation URLs</title>
        <pubDate>Fri, 14 Jan 2022 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2022/01/automate-homekit-with-homecontrol</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2022/01/automate-homekit-with-homecontrol</guid>
        
        
        <description>&lt;p&gt;&lt;img src=&quot;/media/2022/01/homecontrol-automation-post.png&quot; alt=&quot;&amp;quot;HomeControl – Automation&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/apps?redirect=homecontrol&amp;amp;utm_campaign=pvieito-post-homecontrol-automation#app-homecontrol&quot;&gt;&lt;strong&gt;HomeControl&lt;/strong&gt;&lt;/a&gt; is a powerful Mac app that allows you to control your HomeKit setup directly from the menu bar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HomeControl&lt;/strong&gt; also includes full automation support for all the actions available in the app (triggering scenes, switching a device or device group status, changing the primary home and also changing device properties) with “x-callback-url”-compatible &lt;strong&gt;Automation URLs&lt;/strong&gt; which can be easily invoked from &lt;strong&gt;AppleScript, Terminal and other apps&lt;/strong&gt;.&lt;/p&gt;

&lt;h3 id=&quot;automation-urls&quot;&gt;Automation URLs&lt;/h3&gt;

&lt;p&gt;HomeControl Automation URLs can be easily generated from the “Customize Items” section available in the HomeControl preferences window. Just right-click an actionable item like a device or scene and select “Copy Automation URL”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2022/01/homecontrol-app-automation-url.png&quot; alt=&quot;HomeControl – Copy Automation URL&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A HomeControl Automation URL will be now available in your pasteboard. By default, Automation URLs run the same action that is executed when clicking on the item in the HomeControl menu:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Scenes will be triggered.&lt;/li&gt;
  &lt;li&gt;Devices will toggle their status (on to off and viceversa).&lt;/li&gt;
  &lt;li&gt;Homes will be set as the HomeKit primary home.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can customize these default Automation URL to unleash a lot of more actions.&lt;/p&gt;

&lt;h4 id=&quot;device-activation-modes&quot;&gt;Device Activation Modes&lt;/h4&gt;

&lt;p&gt;Device and device group Automation URLs can be modified so they always activate or deactivate the item instead of toggling its state by changing the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;activation-mode&lt;/code&gt; parameter to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;activate&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;deactivate&lt;/code&gt; instead of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;toggle&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Toggle: &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=switch-device-status&amp;amp;item-type=device&amp;amp;item-name=Outlet&amp;amp;room-name=Principal&amp;amp;home-name=Home&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;activation-mode=toggle&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;Activate: &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=switch-device-status&amp;amp;item-type=device&amp;amp;item-name=Outlet&amp;amp;room-name=Principal&amp;amp;home-name=Home&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;activation-mode=activate&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;Deactivate: &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=switch-device-status&amp;amp;item-type=device&amp;amp;item-name=Outlet&amp;amp;room-name=Principal&amp;amp;home-name=Home&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;activation-mode=deactivate&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&quot;current-home-actions&quot;&gt;Current Home Actions&lt;/h4&gt;

&lt;p&gt;You can also remove the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;home-name&lt;/code&gt; parameter of the URL and it will be invoked on the device or scene named as the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;item-name&lt;/code&gt; available in the current primary home. This is handy if you have the same scene available in multiple homes and want to trigger the scene in the one you are at the moment the automation is triggered.&lt;/p&gt;

&lt;h4 id=&quot;device-property-actions&quot;&gt;Device Property Actions&lt;/h4&gt;

&lt;p&gt;There is a forth type of automation action that is not available directly with the “Copy Automation URL” shortcut, the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;change-device-property&lt;/code&gt; action. This action allows you to change a property of a device like light brightness, light color, thermostat mode, thermostat temperature or blinds position by setting the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-type&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-value&lt;/code&gt; parameters. These are some examples of what is posible with this powerful action type:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Set lightbulb named “Light” to 70% brightness: &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=change-device-property&amp;amp;item-type=device&amp;amp;item-name=Light&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-type=light-brightness&amp;amp;property-value=70&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;Set lightbulb named “Light” to yellow color (hue 60°): &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=change-device-property&amp;amp;item-type=device&amp;amp;item-name=Light&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-type=light-hue&amp;amp;property-value=60&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;Set lightbulb named “Light” to 30% color saturation: &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=change-device-property&amp;amp;item-type=device&amp;amp;item-name=Light&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-type=light-saturation&amp;amp;property-value=30&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;Set lightbulb named “Light” to warm color temperature (3200K): &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol//x-callback-url/run-action?action-type=change-device-property&amp;amp;item-type=device&amp;amp;item-name=Light&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-type=light-color-temperature&amp;amp;property-value=3200&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;Set thermostat named “Air Conditioner” to 21°C target temperature: &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=change-device-property&amp;amp;item-type=device&amp;amp;item-name=Air%20Conditioner&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-type=thermostat-temperature&amp;amp;property-value=21&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;Set thermostat named “Air Conditioner” to “Auto” mode: &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=change-device-property&amp;amp;item-type=device&amp;amp;item-name=Air%20Conditioner&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-type=thermostat-mode&amp;amp;property-value=auto&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;Set blinds named “Blinds” to 70% open: &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=change-device-property&amp;amp;item-type=device&amp;amp;item-name=Blinds&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-type=position&amp;amp;property-value=70&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;Set window named “Window” to 30% open: &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=change-device-property&amp;amp;item-type=device&amp;amp;item-name=Window&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-type=position&amp;amp;property-value=30&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;Set fan named “Fan” to 60% speed: &lt;span style=&quot;color:var(--soft-gray-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homecontrol://x-callback-url/run-action?action-type=change-device-property&amp;amp;item-type=device&amp;amp;item-name=Fan&amp;amp;&lt;/code&gt;&lt;strong&gt;&lt;span style=&quot;color:var(--default-text-color);&quot;&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;property-type=rotation-speed&amp;amp;property-value=60&lt;/code&gt;&lt;/span&gt;&lt;/strong&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;amp;authentication-token=TOKEN&lt;/code&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;automation--scripting&quot;&gt;Automation &amp;amp; Scripting&lt;/h3&gt;

&lt;p&gt;You can easily invoke &lt;a href=&quot;/apps?redirect=homecontrol&amp;amp;utm_campaign=pvieito-post-homecontrol-automation#app-homecontrol&quot;&gt;&lt;strong&gt;HomeControl&lt;/strong&gt;&lt;/a&gt; Automation URLs from AppleScript, Terminal or other apps like &lt;a href=&quot;https://support.apple.com/guide/shortcuts/welcome/ios&quot;&gt;Shortcuts&lt;/a&gt;, &lt;a href=&quot;https://www.keyboardmaestro.com/&quot;&gt;Keyboard Maestro&lt;/a&gt; or &lt;a href=&quot;https://www.elgato.com/es/stream-deck&quot;&gt;Stream Deck&lt;/a&gt;.&lt;/p&gt;

&lt;h4 id=&quot;applescript&quot;&gt;AppleScript&lt;/h4&gt;

&lt;div class=&quot;language-applescript highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;tell&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;application&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;HomeControl&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;k&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;open location&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;homecontrol://…&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;terminal&quot;&gt;Terminal&lt;/h4&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;open &lt;span class=&quot;nt&quot;&gt;-g&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;homecontrol://…&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;other-apps&quot;&gt;Other Apps&lt;/h4&gt;

&lt;p&gt;Simply use an “Open URL” or “Open X-Callback URL” action and set it to launch the Automation URL. Some apps also support running Terminal scripts or AppleScript.&lt;/p&gt;

</description>
      </item>
    
      <item>
        <title>Creating Apple Wallet Passes in Batch With MakePass and Shortcuts</title>
        <pubDate>Wed, 24 Nov 2021 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2021/11/wallet-passes-batch-makepass</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2021/11/wallet-passes-batch-makepass</guid>
        
        
        <description>&lt;p&gt;&lt;img src=&quot;/media/2021/11/makepass-batch-header.png&quot; alt=&quot;&amp;quot;MakePass – Pass Batch&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;tldr&quot;&gt;TL;DR&lt;/h3&gt;

&lt;p&gt;You can download a shortcut &lt;a href=&quot;https://www.icloud.com/shortcuts/40dce4da8619459b9631e0de98036826&quot;&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt; that parses a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CSV&lt;/code&gt; text and generates multiple passes in batch using &lt;a href=&quot;/apps?redirect=makepass&amp;amp;utm_campaign=pvieito-post-makepass-batch#app-makepass&quot;&gt;&lt;strong&gt;MakePass&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;

&lt;video autoplay=&quot;&quot; loop=&quot;&quot; playsinline=&quot;&quot; muted=&quot;&quot; style=&quot;width: 100%;&quot; src=&quot;/media/2021/11/makepass-batch-shortcut-demo.mp4&quot;&gt;&lt;/video&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;/apps?redirect=makepass&amp;amp;utm_campaign=pvieito-post-makepass-batch#app-makepass&quot;&gt;&lt;strong&gt;MakePass&lt;/strong&gt;&lt;/a&gt; is a mighty Apple Wallet pass editor, with it you can create and customize a myriad of passes with complex layouts including images, barcodes, colors and text fields, but its the most powerful and versatile feature is its integration with the &lt;a href=&quot;https://support.apple.com/guide/shortcuts/welcome/ios&quot;&gt;Shortcuts app&lt;/a&gt; in iOS, iPad and macOS.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2021/11/makepass-batch-create-pass-action.png&quot; alt=&quot;&amp;quot;MakePass – “Create Pass” Action&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MakePass&lt;/strong&gt; includes multiple Shortcuts actions that allow you to create, preview and share Apple Wallet passes. The &lt;strong&gt;Create Pass&lt;/strong&gt; action exposes all the power of the MakePass pass editor directly in Shortcuts so you can customize all the properties of your pass. The &lt;strong&gt;Create Pass&lt;/strong&gt; action includes an &lt;strong&gt;Import Pass File&lt;/strong&gt; parameter so you can import a template pass file whose properties can be overridden by the action parameters.&lt;/p&gt;

&lt;h3 id=&quot;process&quot;&gt;Process&lt;/h3&gt;

&lt;p&gt;First you should create a pass file which will be used as a template. This template file will be set in the &lt;strong&gt;Import Pass File&lt;/strong&gt; parameter of the &lt;strong&gt;Create Pass&lt;/strong&gt; action which uses it as the base canvas over which to override any other parameter. If you do not import a pass file, the &lt;strong&gt;Create Pass&lt;/strong&gt; action will use a blank template by default. You can create your own pass template file in MakePass or use &lt;a href=&quot;/resources/downloads/UpMarket_Coupon.pkpass.zip&quot;&gt;this one&lt;/a&gt; as an example.&lt;/p&gt;

&lt;p&gt;Afterwards, to create multiple Apple Wallet passes in batch you should import the information which will be inserted in the pass template for each new pass. To do so, we can use the popular &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CSV&lt;/code&gt; (comma-separated values) format:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-csv&quot;&gt;John Appleseed,CD-0000001,2021-01-01 12:00
Chandler Bing,CD-0000002,2021-01-02 12:00
Mario Gómez,CD-0000003,2021-01-03 12:00
Ursula von Köriet,CD-0000004,2021-01-04 12:00
Alejandro Couñago,CD-0000005,2021-01-05 12:00
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In this example &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CSV&lt;/code&gt; document, each line represent a pass which will be generated. Each line includes 3 components which will be added to the pass template (a name in a text field like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;John Appleseed&quot;&lt;/code&gt;, a QR barcode payload like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;CD-0000001&quot;&lt;/code&gt; and a relevant date like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;2021-01-01 12:00&quot;&lt;/code&gt;). To load this &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CSV&lt;/code&gt; in Shortcuts we can use the &lt;strong&gt;Text&lt;/strong&gt; action, load the contents from a file or use the shortcut content input. In this example we will use the &lt;strong&gt;Text&lt;/strong&gt; action.&lt;/p&gt;

&lt;p&gt;Once we have the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CSV&lt;/code&gt; text loaded in the shortcut, we can split it by line and iterate over them. In each iteration we can split the line by commas and we can extract each of the pass components needed to fill the pass template:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2021/11/makepass-batch-shortcut-1.png&quot; alt=&quot;&amp;quot;MakePass – Batch Shortcut – 1&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;After extracting the components we can simply set our pass template file in the &lt;strong&gt;Import Pass File&lt;/strong&gt; parameter and fill the other custom parameters in the &lt;strong&gt;Create Pass&lt;/strong&gt; action to complete the template:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2021/11/makepass-batch-shortcut-2.png&quot; alt=&quot;&amp;quot;MakePass – Batch Shortcut – 2&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And &lt;em&gt;voilà!&lt;/em&gt;, running the shortcut will generate 5 passes, each one with its own custom properties:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2021/11/makepass-batch-shortcut-3.png&quot; alt=&quot;&amp;quot;MakePass – Batch Shortcut – 3&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;To complete the shortcut, we can add an action to open the passes in macOS or share them with an app in iOS and iPadOS. You can also use the &lt;strong&gt;Save File&lt;/strong&gt; action to store the pass files in your device.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2021/11/makepass-batch-shortcut-4.png&quot; alt=&quot;&amp;quot;MakePass – Batch Shortcut – 4&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;shortcut&quot;&gt;Shortcut&lt;/h3&gt;

&lt;p&gt;You can get the complete shortcut &lt;a href=&quot;https://www.icloud.com/shortcuts/40dce4da8619459b9631e0de98036826&quot;&gt;&lt;strong&gt;here&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

</description>
      </item>
    
      <item>
        <title>Install Any iOS App on Apple Silicon Macs</title>
        <pubDate>Tue, 17 Nov 2020 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2020/11/install-any-ios-app-in-apple-silicon</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2020/11/install-any-ios-app-in-apple-silicon</guid>
        
        
        <description>&lt;p&gt;&lt;img src=&quot;/media/2020/11/ios-apps-apple-silicon.jpg&quot; alt=&quot;iOS apps on Apple silicon Mac&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;Apple silicon Mac running multiple iOS apps, some of them not available on the Mac App Store yet.&lt;/figcaption&gt;

&lt;p&gt;Apple silicon Macs can run iPhone and iPad apps natively using the same &lt;a href=&quot;https://developer.apple.com/mac-catalyst/&quot;&gt;Mac Catalyst technology&lt;/a&gt; that powers apps like &lt;a href=&quot;https://apps.apple.com/es/app/twitter/id1482454543?mt=12&quot;&gt;Twitter&lt;/a&gt; or &lt;a href=&quot;https://apps.apple.com/es/app/darkroom-editor-de-foto-v%C3%ADdeo/id953286746&quot;&gt;Darkroom&lt;/a&gt; on macOS. Although all iOS apps are by default directly available on the Mac App Store, developers can opt-out and make their apps unavailable. Unfortunately, some of the most popular apps like &lt;a href=&quot;https://apps.apple.com/es/app/instagram/id389801252&quot;&gt;Instagram&lt;/a&gt;, &lt;a href=&quot;https://apps.apple.com/es/app/deliveroo-comida-a-domicilio/id1001501844&quot;&gt;Deliveroo&lt;/a&gt; or &lt;a href=&quot;https://apps.apple.com/es/app/netflix/id363590051&quot;&gt;Netflix&lt;/a&gt; have been removed from the Mac App Store… but that does not mean they cannot run on macOS, they are simply hidden in the Mac App Store. If you have purchased or downloaded any app from the iOS App Store, you have the option to make a backup of it using an &lt;a href=&quot;https://en.wikipedia.org/wiki/.ipa&quot;&gt;IPA file&lt;/a&gt;, and those files can be used on Apple silicon Macs to install any iOS app.&lt;/p&gt;

&lt;p&gt;Currently there are multiple approaches to download those IPA files for any iOS app:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.imobie.com/m1-app-checker/&quot;&gt;iMobie M1 App Checker&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://medium.com/@b0661064248/how-can-i-get-ipa-of-any-app-which-is-available-on-app-store-3a403be7b028&quot;&gt;Apple Configurator&lt;/a&gt; (requires connecting an iPhone or iPad).&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://support.apple.com/es_ES/downloads/itunes&quot;&gt;iTunes 12.6&lt;/a&gt; on a compatible Mac or PC.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you have the IPA file, you can simply double click it on any Apple silicon Mac and &lt;em&gt;voilà!&lt;/em&gt;&lt;/p&gt;

&lt;center&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-dnt=&quot;true&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;Apple Silicon Macs running iOS apps natively is truly game-changing.&lt;br /&gt;&lt;br /&gt;macOS will become the most complete app platform ever: from complex workflows with Xcode, Final Cut Pro or MATLAB to ordering with Deliveroo, browsing IMDb or watching Netflix… there will be an app for that! &lt;a href=&quot;https://t.co/CiCTOROaNR&quot;&gt;pic.twitter.com/CiCTOROaNR&lt;/a&gt;&lt;/p&gt;&amp;mdash; Pedro José Pereira Vieito (@pvieito) &lt;a href=&quot;https://twitter.com/pvieito/status/1328397045032497154?ref_src=twsrc%5Etfw&quot;&gt;November 16, 2020&lt;/a&gt;&lt;/blockquote&gt; &lt;script async=&quot;&quot; src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/center&gt;
</description>
      </item>
    
      <item>
        <title>HomeKit Automation: Extracting HomeKit Pairing Keys from macOS</title>
        <pubDate>Mon, 09 Dec 2019 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2019/12/extract-homekit-pairing-keys</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2019/12/extract-homekit-pairing-keys</guid>
        
        
        <description>&lt;p&gt;&lt;img src=&quot;/media/2019/12/extract-homekit-pairing-keys-header.png&quot; alt=&quot;&amp;quot;HomeKit Pairing Keys&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;While the Home app allows you to read and control your HomeKit-based devices on macOS, iPadOS and iOS, sometimes you want more control. You may want to bridge some sensor to other protocol, expose you home temperature on a public API, or simply export the historical data to a CSV file. Either way, currently the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HomeKit&lt;/code&gt; framework is private API on macOS, and it is not available on other platforms like Linux or Windows.&lt;/p&gt;

&lt;p&gt;Fortunately there are some cross-platform implementations of the HomeKit Accessory Protocol that support controller-mode functionality:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/jlusiardi/homekit_python&quot;&gt;HomeKit Python&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/mrstegeman/hap-controller-node&quot;&gt;HAP Controller Node&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In particular &lt;strong&gt;HomeKit Python&lt;/strong&gt; supports reading and writing HomeKit characteristics on paired devices as well as generating additional pairings. The main problem is that typically HomeKit devices only support one main pairing controller, thus, once it is paired with the Apple Home app it can only be controlled with the pairing keys managed by the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;homed&lt;/code&gt; system daemon which are gated by the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;HomeKit&lt;/code&gt; framework.&lt;/p&gt;

&lt;p&gt;Fortunately, the HomeKit pairing keys are stored on the iCloud Keychain. Unfortunately (&lt;em&gt;but reasonably&lt;/em&gt;), the system tries hard to hide these pairing keys. In particular, they do not appear on the Keychain app nor can be read with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Security&lt;/code&gt; framework &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;SecItem*&lt;/code&gt; family of APIs without some private entitlements granting access to the keychain access group &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;com.apple.hap.pairing&lt;/code&gt;.&lt;/p&gt;

&lt;h3 id=&quot;process&quot;&gt;Process&lt;/h3&gt;

&lt;p&gt;First of all, we have to subvert the AMFI security model to be able to sign arbitrary executables with private entitlements. To do it, we have to disable &lt;strong&gt;System Integrity Protection&lt;/strong&gt; and &lt;strong&gt;AMFI&lt;/strong&gt;. Rebooting on &lt;strong&gt;Recovery OS&lt;/strong&gt; we can disable the protections using the Terminal app:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;csrutil disable
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;nvram boot-args&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;amfi_get_out_of_my_way&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0x1
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;reboot
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;After reboot, we can use &lt;a href=&quot;https://github.com/pvieito/KeychainKit&quot;&gt;&lt;strong&gt;KeychainTool&lt;/strong&gt;&lt;/a&gt; to dump the HomeKit keychain items.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;git clone https://github.com/pvieito/KeychainKit.git
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cd &lt;/span&gt;KeychainKit
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cat &lt;/span&gt;KeychainTool/KeychainTool.entitlements
&lt;span class=&quot;c&quot;&gt;# The all-powerful * `keychain-access-groups` entitlement which grants its bearer permission to read all keychain items:&lt;/span&gt;
&amp;lt;?xml &lt;span class=&quot;nv&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;1.0&quot;&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;encoding&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;?&amp;gt;
&amp;lt;&lt;span class=&quot;o&quot;&gt;!&lt;/span&gt;DOCTYPE plist PUBLIC &lt;span class=&quot;s2&quot;&gt;&quot;-//Apple//DTD PLIST 1.0//EN&quot;&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;lt;plist &lt;span class=&quot;nv&quot;&gt;version&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;1.0&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;
&amp;lt;dict&amp;gt;
    &amp;lt;key&amp;gt;keychain-access-groups&amp;lt;/key&amp;gt;
    &amp;lt;array&amp;gt;
        &amp;lt;string&amp;gt;&lt;span class=&quot;k&quot;&gt;*&lt;/span&gt;&amp;lt;/string&amp;gt;
    &amp;lt;/array&amp;gt;
&amp;lt;/dict&amp;gt;
&amp;lt;/plist&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now we will compile and run &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;KeychainTool&lt;/code&gt; to dump all the keychain entries in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;com.apple.hap.pairing&lt;/code&gt; access group.&lt;/p&gt;

&lt;p&gt;Bear in mind that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;KeychainTool&lt;/code&gt; uses &lt;a href=&quot;https://github.com/pvieito/CodeSignKit&quot;&gt;&lt;strong&gt;CodeSignKit&lt;/strong&gt;&lt;/a&gt; to self sign its executable with private entitlements before relaunching itself. If a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;codesign&lt;/code&gt; error is shown set the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CODESIGNKIT_DEFAULT_IDENTITY&lt;/code&gt; environment variable to the name of your Apple Developer certificate as presented on the Keychain app.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ swift run KeychainTool -g com.apple.hap.pairing
[*] HomeKit Pairing Identity (com.apple.hap.pairing)
[ ] Account: 7C73D188-BF12-4B8C-B7A5-5842D71C24EA
[ ] Key: “21159cfa6032438be197d668b3562e262441965789f95634d6460d4cce5cc706+d2ed8558b369b4ee1fbf4f9eb8d687ee2799aba5608efc2712d8175697bd8ad8”
[*] Paired HomeKit Accessory: CC:0D:07:E4:F7:54 (com.apple.hap.pairing)
[ ] Account: CC:0D:07:E4:F7:54
[ ] Key: “3a4473f1efe5e378fdd329826936f34b674fcb97c8aa5bd9818abde46963f864”
[*] Paired HomeKit Accessory: 58:CA:96:CE:66:5F (com.apple.hap.pairing)
[ ] Account: 58:CA:96:CE:66:5F
[ ] Key: “44d34407d583aee3b12b774a6eb15ee96c527fa83af1db66ac90f60494bbbc29”
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Voilà!&lt;/em&gt; Here we have all we need:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The &lt;strong&gt;HomeKit Pairing Identity&lt;/strong&gt; entry contains the pairing identifier stored as the item account name: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;7C73D188-BF12-4B8C-B7A5-5842D71C24EA&lt;/code&gt; and the LTP and LTS keys required by the HomeKit protocol separated by a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;+&lt;/code&gt; sign on the entry key payload: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;21159cfa6032438be197d668b3562e262441965789f95634d6460d4cce5cc706&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;d2ed8558b369b4ee1fbf4f9eb8d687ee2799aba5608efc2712d8175697bd8ad8 &lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Each accessory has its own &lt;strong&gt;Paired HomeKit Accessory&lt;/strong&gt; keychain entry containing its paring key. For example, the device &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;58:CA:96:CE:66:E9&lt;/code&gt; has the LTP key &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;44d34407d583aee3b12b774a6eb15ee96c527fa83af1db66ac90f60494bbbc29&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we can use the pairing keys to set up &lt;strong&gt;HomeKit Python&lt;/strong&gt; on any device and platform:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;python3 &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; pip &lt;span class=&quot;nb&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;homekit[IP]&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;--user&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;python3 &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; homekit.discover
&lt;span class=&quot;c&quot;&gt;# `homekit_python` will list all HomeKit devices found on the network:&lt;/span&gt;
Name: Eve Extend XXXX._hap._tcp.local.
Url: http_impl://192.168.0.123:8080
Configuration number &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;c#&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: 5
Feature Flags &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;ff&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: Supports HAP Pairing &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Flag: 1&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
Device ID &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: 58:CA:96:CE:66:5F  &lt;span class=&quot;c&quot;&gt;# Same Device ID as in the keychain entry.&lt;/span&gt;
Model Name &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;md&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: Eve Extend XXXXXXXX
Protocol Version &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;pv&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: 1.1
State Number &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;s#&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: 1
Status Flags &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;sf&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: Accessory has been paired. &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Flag: 0&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
Category Identifier &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;ci&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;: Bridge &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;Id: 2&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;mkdir&lt;/span&gt; ~/.homekit_python
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;python3 &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; homekit.init_controller_storage &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; ~/.homekit_python/pairing.json
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;nano ~/.homekit_python/pairing.json
&lt;span class=&quot;c&quot;&gt;# Write the pairing credentials of each the device:&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;s2&quot;&gt;&quot;EveExtend&quot;&lt;/span&gt;: &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&quot;AccessoryPairingID&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;58:CA:96:CE:66:E9&quot;&lt;/span&gt;,
    &lt;span class=&quot;s2&quot;&gt;&quot;AccessoryLTPK&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;44d34407d583aee3b12b774a6eb15ee96c527fa83af1db66ac90f60494bbbc29&quot;&lt;/span&gt;,
    &lt;span class=&quot;s2&quot;&gt;&quot;iOSPairingId&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;7C73D188-BF12-4B8C-B7A5-5842D71C24EA&quot;&lt;/span&gt;,
    &lt;span class=&quot;s2&quot;&gt;&quot;iOSDeviceLTSK&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;d2ed8558b369b4ee1fbf4f9eb8d687ee2799aba5608efc2712d8175697bd8ad8&quot;&lt;/span&gt;,
    &lt;span class=&quot;s2&quot;&gt;&quot;iOSDeviceLTPK&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;21159cfa6032438be197d668b3562e262441965789f95634d6460d4cce5cc706&quot;&lt;/span&gt;,
    &lt;span class=&quot;s2&quot;&gt;&quot;AccessoryIP&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;192.168.0.123&quot;&lt;/span&gt;,
    &lt;span class=&quot;s2&quot;&gt;&quot;AccessoryPort&quot;&lt;/span&gt;: 8080,
    &lt;span class=&quot;s2&quot;&gt;&quot;Connection&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;IP&quot;&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;python3 &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; homekit.identify &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; ~/.homekit_python/pairing.json &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; EveExtend
&lt;span class=&quot;c&quot;&gt;# The HomeKit device should identify itself (for example blinking an LED).&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;python3 &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; homekit.get_accessories &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; ~/.homekit_python/pairing.json &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; EveExtend
&lt;span class=&quot;c&quot;&gt;# Shows all the accesories exposed by the device.&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;python3 &lt;span class=&quot;nt&quot;&gt;-m&lt;/span&gt; homekit.get_characteristic &lt;span class=&quot;nt&quot;&gt;-f&lt;/span&gt; ~/.homekit_python/pairing.json &lt;span class=&quot;nt&quot;&gt;-a&lt;/span&gt; EveExtend &lt;span class=&quot;nt&quot;&gt;-c&lt;/span&gt; 3.38
&lt;span class=&quot;c&quot;&gt;# Shows the value of a given characteristic, for example the room relative humidity:&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;s2&quot;&gt;&quot;3.38&quot;&lt;/span&gt;: &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;s2&quot;&gt;&quot;value&quot;&lt;/span&gt;: 54.4525146484375
    &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Finally, remember to re-enable &lt;strong&gt;System Integrity Protection&lt;/strong&gt; and reboot your Mac:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;csrutil clear
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
      </item>
    
      <item>
        <title>Jailbreaking macOS: Patching AMFI to Allow Arbitrary Entitlements</title>
        <pubDate>Tue, 27 Dec 2016 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2016/12/amfid-patching</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2016/12/amfid-patching</guid>
        
        
        <description>&lt;p&gt;&lt;img src=&quot;/media/2017/01/amfid-header.png&quot; alt=&quot;&amp;quot;Patching amfid&amp;quot;&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;introduction&quot;&gt;Introduction&lt;/h3&gt;

&lt;p&gt;Entitlements are an important part of Apple Security architecture. They allow Apple to limit an OS feature to be only available to Apple-approved processes. Nowadays, even with System Integrity Protection disabled, the AMFI Kernel Extension and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;amfid&lt;/code&gt; process dueto will always kill any process at execution with restricted Entitlements not signed by Apple or with a properly Apple-approved embedded provisioning profile.&lt;/p&gt;

&lt;p&gt;Unrestricted Entitlements are available to all signed binaries, even ad-hoc (some examples of this are the Sandbox entitlements &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;com.apple.security.*&lt;/code&gt; or the application identifier one &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;com.apple.application-identifier&lt;/code&gt;) but they do no give any special capability to the process, on the contrary, they limit its reach.&lt;/p&gt;

&lt;p&gt;To allow any Entitlements, even the more interesting Restricted ones, for a Developer ID signed binary we have to modificate the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;amfid&lt;/code&gt; process (to allow adhoc signatures too we would have to patch the AMFI Kernel Extension or its underlying dependencies which I didn’t try).&lt;/p&gt;

&lt;h3 id=&quot;process&quot;&gt;Process&lt;/h3&gt;

&lt;p&gt;To patch a system daemon, we have to disable macOS System Integrity Protection. After some reverse engineering, it seems one of the main decisions in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;amfid&lt;/code&gt; flow is in the address offset &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0x347D&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2017/01/amfid-patch.png&quot; alt=&quot;&amp;quot;Patching amfid&amp;quot;&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;Decision flow of &lt;code&gt;amfid&lt;/code&gt;.&lt;/figcaption&gt;

&lt;p&gt;Knowing that we can change the following two instructions from:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;test %r14, %r14
je loc_100003531
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;To this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;mov %r14, %r15
jno loc_100003531
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This way the flow will always jump to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;loc_100003531&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;%r14&lt;/code&gt; will become null (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;%r15&lt;/code&gt; is always null in this point), so every Developer ID signed process will be validated even without a provisioning profile allowing its Entitlements.&lt;/p&gt;

&lt;h3 id=&quot;code&quot;&gt;Code&lt;/h3&gt;

&lt;p&gt;To achieve this modification we can go the hard way by modifing the binary &lt;em&gt;in situ&lt;/em&gt; (it is located at &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/usr/libexec/amfid&lt;/code&gt;) or the soft way: patching &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;amfid&lt;/code&gt; memory at runtime. I preferred the second option so I could restart the unpatched &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;amfid&lt;/code&gt; code by simply killing it.&lt;/p&gt;

&lt;p&gt;To do it I ported to Python 3 a wrapper for Mach VM APIs called &lt;a href=&quot;https://github.com/abarnert/pymach&quot;&gt;pymach&lt;/a&gt; and added a new function to get the ASRL Slice Offset of the process: &lt;a href=&quot;https://github.com/pvieito/PyMach&quot;&gt;PyMach for Python 3&lt;/a&gt;. With that I wrote this &lt;a href=&quot;https://gist.github.com/pvieito/c0c9b8fd73255b57927b273d329c5800&quot;&gt;script&lt;/a&gt; for macOS 10.12.2. To use it simply run:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$ sudo ./amfid_patch.py
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And answer &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;yes&lt;/code&gt; when asked if you want to patch the process. &lt;em&gt;Voilà!&lt;/em&gt; Now any Developer ID signed binaries will be executed even with restricted Entitlements.&lt;/p&gt;

&lt;p&gt;You can set any Entitlement you want, like &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;com.apple.developer.icloud-container-identifiers&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;com.apple.private.appleaccount.app-hidden-from-icloud-settings&lt;/code&gt; with an arbitrary iCloud container. For a complete list of private Entitlements used by Apple you can go to Jonathan Levin’s &lt;a href=&quot;http://newosxbook.com/ent.jl?osVer=OSX&quot;&gt;Entitlements Database&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;references&quot;&gt;References&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://newosxbook.com&quot;&gt;*OS Internals: Volume III&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
      </item>
    
      <item>
        <title>iCloud Locations in macOS</title>
        <pubDate>Tue, 15 Nov 2016 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2016/11/icloud-locations</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2016/11/icloud-locations</guid>
        
        
        <description>&lt;h2 id=&quot;sandboxed-vs-non-sandboxed&quot;&gt;Sandboxed vs. Non Sandboxed&lt;/h2&gt;

&lt;p&gt;In macOS a given app can or cannot be sandboxed and since macOS Sierra non App Store apps can access iCloud APIs so could be a non-sandboxed app using this locations to sync data.&lt;/p&gt;

&lt;p&gt;So if you want to access a sandboxed iCloud location you should go to the app container and use it as the home path.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$SANDBOXED_CONTAINER = ~/Library/Container/com.example.app/Data
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;icloud-documents&quot;&gt;iCloud Documents&lt;/h2&gt;

&lt;p&gt;Each app can have one or more document containers inside named with its Bundle ID:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~/Library/Mobile Documents/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The information and details of each container are stored here:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~/Library/Application Support/CloudDocs/session/containers
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The info is stored in a plist file with the name of the container for example:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;iCloud.com.pvieito.Example.plist
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And the icons are stored in a folder with the name of the container:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;iCloud.com.pvieito.Example/40x40_iOS.png
iCloud.com.pvieito.Example/80x80_iOS.png
iCloud.com.pvieito.Example/120x120_iOS.png
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;key-value-store&quot;&gt;Key-Value Store&lt;/h2&gt;

&lt;p&gt;This synced data is stored as a property list file in:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~/Library/SyncedPreferences/
$(SANDBOXED_CONTAINER)/Library/SyncedPreferences/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;cloudkit&quot;&gt;CloudKit&lt;/h2&gt;

&lt;p&gt;CloudKit works online but macOS stores a cache of its contents in a folder appropriately called &lt;em&gt;CloudKit&lt;/em&gt;:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;~/Caches/CloudKit
$(SANDBOXED_CONTAINER)/CloudKit
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
      </item>
    
      <item>
        <title>Coldplay Xyloband Reverse Engineering</title>
        <pubDate>Thu, 29 Sep 2016 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2016/09/xyloband-reverse-engineering</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2016/09/xyloband-reverse-engineering</guid>
        
        
        <description>&lt;p&gt;The &lt;strong&gt;Xyloband&lt;/strong&gt; is the wristband that Coldplay gives to the audience to create a &lt;a href=&quot;https://player.vimeo.com/video/167725225&quot;&gt;colorful light show during its concerts&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/06/xyloband-intro.jpg&quot; alt=&quot;Xyloband&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;Fotografía de &lt;strong&gt;&lt;a href=&quot;https://www.flickr.com/photos/carlos_rm/7242179112/&quot;&gt;Carlos RM
&lt;/a&gt;&lt;/strong&gt; (CC) 2012.&lt;/figcaption&gt;

&lt;p&gt;The wristband receives data from a central transmitter. The new version of the band not only is able to light the LEDs but can receive audio and play it through a built-in speaker.&lt;/p&gt;

&lt;h2 class=&quot;no_toc&quot; id=&quot;contents&quot;&gt;Contents&lt;/h2&gt;
&lt;ul id=&quot;markdown-toc&quot;&gt;
  &lt;li&gt;&lt;a href=&quot;#procedure&quot; id=&quot;markdown-toc-procedure&quot;&gt;Procedure&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#disassembly&quot; id=&quot;markdown-toc-disassembly&quot;&gt;Disassembly&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#pcb-inspection&quot; id=&quot;markdown-toc-pcb-inspection&quot;&gt;PCB Inspection&lt;/a&gt;    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#front&quot; id=&quot;markdown-toc-front&quot;&gt;Front&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#back&quot; id=&quot;markdown-toc-back&quot;&gt;Back&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#pcb-reverse-engineering&quot; id=&quot;markdown-toc-pcb-reverse-engineering&quot;&gt;PCB Reverse Engineering&lt;/a&gt;    &lt;ul&gt;
      &lt;li&gt;&lt;a href=&quot;#front-tracks&quot; id=&quot;markdown-toc-front-tracks&quot;&gt;Front Tracks&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#back-tracks&quot; id=&quot;markdown-toc-back-tracks&quot;&gt;Back Tracks&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#inside-tracks&quot; id=&quot;markdown-toc-inside-tracks&quot;&gt;Inside Tracks&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;#all-tracks-superimposed&quot; id=&quot;markdown-toc-all-tracks-superimposed&quot;&gt;All tracks superimposed&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;#conclusion&quot; id=&quot;markdown-toc-conclusion&quot;&gt;Conclusion&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;procedure&quot;&gt;Procedure&lt;/h2&gt;

&lt;p&gt;First, we will disassembly the device and list the different components that we find in the PCB. Then we will try to investigate them looking for datasheets and all the available information to reconstruct the behavior of the circuit. Finally that, we can recover the blueprint of the tracks in the PCB and analyze the complete system.&lt;/p&gt;

&lt;h2 id=&quot;disassembly&quot;&gt;Disassembly&lt;/h2&gt;

&lt;p&gt;So I took the &lt;a href=&quot;http://www.eevblog.com&quot;&gt;Dave Jones&lt;/a&gt; approach: “Don’t turn it on, take it apart!”. First I opened the wristband and extracted the PCB with the LED band.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/06/xyloband-pcb-general.jpg&quot; alt=&quot;Xyloband internals&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;Xyloband internals: Speaker, LED/Antenna flat-flex and PCB.&lt;/figcaption&gt;

&lt;p&gt;This is the internal parts of the Xyloband. We can see the speaker, the flat-flex with the LEDs and the main PCB. From this view we can intuit that the flat-flex will probably act not only to power the color LEDs but as an antenna to receive the signal.&lt;/p&gt;

&lt;h2 id=&quot;pcb-inspection&quot;&gt;PCB Inspection&lt;/h2&gt;

&lt;p&gt;To get a good view of the PCB layers I have done two photos from each side, one front-lighted and another back-lighted. After that we can create a composite image for each side so we can find if there are inside layers. And indeed, there are.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/06/xyloband-pcb-composite.jpg&quot; alt=&quot;Xyloband PCB Front&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;Both sides of the PCB with front-light, back-lighted and composite.&lt;/figcaption&gt;

&lt;p&gt;The PCB has 4 layers, two external or sides and two internal layers. In parenthesis is the color I have used later in the PCB track blueprint:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Front side (&lt;strong&gt;&lt;span style=&quot;color:orange&quot;&gt;Orange&lt;/span&gt;&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;Back side (&lt;strong&gt;&lt;span style=&quot;color:deepskyblue&quot;&gt;Cyan&lt;/span&gt;&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;Internal ground layer (&lt;strong&gt;&lt;span style=&quot;color:navy&quot;&gt;Navy Blue&lt;/span&gt;&lt;/strong&gt;)&lt;/li&gt;
  &lt;li&gt;Internal track layer (&lt;strong&gt;&lt;span style=&quot;color:purple&quot;&gt;Purple&lt;/span&gt;&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we will analyze each layer in detail.&lt;/p&gt;

&lt;h3 id=&quot;front&quot;&gt;Front&lt;/h3&gt;

&lt;p&gt;So here is the first composite image of the front side with its main areas, power and data reception, demodulation and decoding (RX):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/06/xyloband-pcb-front.jpg&quot; alt=&quot;Xyloband PCB Front&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;Composite image of the front of the Xyloband PCB. Horizontally flipped image to match the back layer.&lt;/figcaption&gt;

&lt;p&gt;In the front of the Xyloband PCB we can find these devices:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.silabs.com/Support%20Documents/TechnicalDocs/Si4362.pdf&quot;&gt;Silicon Labs Si4362&lt;/a&gt; High-Performance, Low-Current Receiver&lt;/li&gt;
  &lt;li&gt;30 MHz Cristal Oscillator&lt;/li&gt;
  &lt;li&gt;IC IACMF Voltage Regulator&lt;/li&gt;
  &lt;li&gt;3 mH Inductor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Si4362 IC is the main component of the RX area. This chip will receive the transmission from the antenna (we can see it is connected to the uppermost pin of the flat-flex), amplify it using an Low Noise Amplifier and demodulate it. Then the final digital signal will be sent to the microcontroller in the other side of the board through an I²C connection.&lt;/p&gt;

&lt;p&gt;The Power section of the front side is mainly a voltage controller that generates the suitable voltage to drive the LEDs and the Audio Amplifier.&lt;/p&gt;

&lt;h3 id=&quot;back&quot;&gt;Back&lt;/h3&gt;

&lt;p&gt;Now back to the back were the main areas are the logic microcontroller, the audio amplifier, the LED drivers and a part of the power section that enables the connection of the battery to the voltage regulator on the other side.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/06/xyloband-pcb-back.jpg&quot; alt=&quot;Xyloband PCB Front&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;Composite image of the back of the Xyloband PCB.&lt;/figcaption&gt;

&lt;p&gt;And in the back we can see the following ICs:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.atmel.com/images/atmel-42129-sam-d20_datasheet.pdf&quot;&gt;Atmel SAM D20&lt;/a&gt; SMART ARM-based Microcontroller&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.analog.com/media/en/technical-documentation/data-sheets/SSM2211.pdf&quot;&gt;Analog Devices SSM2211&lt;/a&gt; Low Distortion, 1.5 W Audio Power Amplifier&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ARM processor is connected with the Si4362 receiver through the I&lt;sup&gt;2&lt;/sup&gt;C and decodes the information, namely the audio and LEDs colors. Then it will light the LEDs through the driver and output the audio signal with its DAC.&lt;/p&gt;

&lt;p&gt;The audio signal goes to the SSM2211 audio amplifier which is connected with the speaker.&lt;/p&gt;

&lt;h2 id=&quot;pcb-reverse-engineering&quot;&gt;PCB Reverse Engineering&lt;/h2&gt;

&lt;p&gt;Now we are going to analyze the board and extract to tracks printed on in to get to full circuit schematic.&lt;/p&gt;

&lt;h4 id=&quot;front-tracks&quot;&gt;Front Tracks&lt;/h4&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/06/xyloband-pcb-front-tracks.jpg&quot; alt=&quot;Xyloband PCB Front Tracks&quot; /&gt;&lt;/p&gt;

&lt;h4 id=&quot;back-tracks&quot;&gt;Back Tracks&lt;/h4&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/06/xyloband-pcb-back-tracks.jpg&quot; alt=&quot;Xyloband PCB Back Tracks&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;inside-tracks&quot;&gt;Inside Tracks&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/06/xyloband-pcb-inside-tracks.jpg&quot; alt=&quot;Xyloband PCB Inside Tracks&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;all-tracks-superimposed&quot;&gt;All tracks superimposed&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/06/xyloband-pcb-full-tracks.jpg&quot; alt=&quot;Xyloband PCB Inside Tracks&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;The main controller of the Xyloband is an Atmel SAM D20 which outputs the audio and sets the light of the wristband. The audio output is amplified by the Analog Devices SSM2211 low distortion power amplifier and the LEDs are managed by tree transistors. Finally all the data is received and decoded by the Silicon Labs Si4362 receiver and sent through the I&lt;sup&gt;2&lt;/sup&gt;C bus to the main processor.&lt;/p&gt;
</description>
      </item>
    
      <item>
        <title>GIF support coming to WhatsApp</title>
        <pubDate>Fri, 05 Aug 2016 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2016/08/gif-whatsapp</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2016/08/gif-whatsapp</guid>
        
        
        <description>&lt;p&gt;After our friends from &lt;a href=&quot;https://androidtr.es/2016/08/03/whatsapp-ya-esta-preparado-enviar-gifs-primicia/&quot;&gt;AndroidTR&lt;/a&gt; found out some resources in the new update of WhatsApp for Android I wanted to go deeper and analyze the iOS version to see if it was prepared to handle GIFs as well.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/08/gif-resources.png&quot; alt=&quot;New glyphs for GIF support&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;New glyphs for GIF support.&lt;/figcaption&gt;

&lt;p&gt;In the last update of WhatsApp for iOS (version 2.16.7) there are the same three new GIF glyphs found in Android and two more for what it seems to be &lt;a href=&quot;https://www.youtube.com/watch?v=YRRBs71p7II&quot;&gt;Live Photos&lt;/a&gt; support.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2016/08/gif-executable.png&quot; alt=&quot;New methods and classes for GIF support&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;New methods and classes for GIF support.&lt;/figcaption&gt;

&lt;p&gt;Then in the proper binary executable there are a lot of new methods designed to handle GIFs. They even have created a new Class &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;WAGIFCreator&lt;/code&gt; which seems to allow to create GIFs from scratch with various images or a video.&lt;/p&gt;

&lt;p&gt;It seems this feature is complete, but the WhatsApp team has to enable it remotely as they have previously done with other capabilities like E2E Encryption.&lt;/p&gt;
</description>
      </item>
    
      <item>
        <title>Introducing the YAML Subject specification</title>
        <pubDate>Thu, 30 Jun 2016 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2016/06/ymark</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2016/06/ymark</guid>
        
        
        <description>&lt;p&gt;The &lt;strong&gt;YAML Subject&lt;/strong&gt; specification aims to define a simple file format that allows to store (and export) all the &lt;em&gt;metadata&lt;/em&gt; of a given course subject for a student. In particular it was designed to store the assessment so a program can easily parse the file and compute the final mark and show all the available information of the subject.&lt;/p&gt;

&lt;h2 id=&quot;introduction&quot;&gt;Introduction&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;YAML Subject&lt;/strong&gt; files are encoded in plain &lt;em&gt;YAML&lt;/em&gt;, are identified with a double filename extension &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.subject.yaml&lt;/code&gt; and include all the metadata of a subject and its assessment. The main principles of the &lt;strong&gt;YAML Subject&lt;/strong&gt; format are that it must be:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Simple&lt;/li&gt;
  &lt;li&gt;Human readable&lt;/li&gt;
  &lt;li&gt;Easy to modify&lt;/li&gt;
  &lt;li&gt;Extensible&lt;/li&gt;
  &lt;li&gt;Compatible&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;structure&quot;&gt;Structure&lt;/h2&gt;

&lt;p&gt;The following are the defined keys of a &lt;strong&gt;YAML Subject&lt;/strong&gt; file. Each &lt;strong&gt;YAML Subject&lt;/strong&gt; file describes a unique subject for one student, so each of these properties is about that particular subject and student:&lt;/p&gt;

&lt;table style=&quot;width:100%; font-size:0.9em&quot;&gt;
    &lt;tr&gt;
        &lt;th&gt;Key&lt;/th&gt;
        &lt;th&gt;Required&lt;/th&gt;
        &lt;th&gt;Description&lt;/th&gt;
        &lt;th&gt;Type&lt;/th&gt;
        &lt;th&gt;Examples&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;codename&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;&lt;b&gt;Required&lt;/b&gt;&lt;/td&gt;
        &lt;td&gt;Two or more capital letters that easily identify the subject&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;String&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;CRYPTO&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;MND&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;SED&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;status&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;&lt;b&gt;Required&lt;/b&gt;&lt;/td&gt;
        &lt;td&gt;An integer describing the state of this subject&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;Integer&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;&lt;i&gt;&lt;a href=&quot;#status&quot;&gt;More info below&lt;/a&gt;&lt;/i&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Full name of the subject&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;String&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;Cryptography I&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;Micro and Nano Electronic Design&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;Sistemas electrónicos digitales&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;code&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Code of the subject&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;String&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;G330923&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;230646&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;course&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Course of the subject&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;String&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;Cybersecurity Course&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;Master in Electronic Engineering&lt;/code&gt;
            &lt;code&gt;Grado en Ingeniería Electrónica&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;institution&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Institution teaching the subject&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;String&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;Standford University&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;Universitat Polit&amp;egrave;cnica de Cat&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;Universidade de Vigo&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;credits&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Number of credits of the subject&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;Float&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;2.5&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;6&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;type&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Type of the subject&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;String&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;Online&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;Core&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;Obligatoria&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;year&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Academic year&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;String&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;2014&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;2015/16&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;1999/2000&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;term&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Term of the subject&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;String&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;2&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;Spring&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;web&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Website of the subject&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;String&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;coursera.org/learn/crypto&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;atenea.upc.edu/31299&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;assessment&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Array of dictionaries containing the assessment marks&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;Array&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;&lt;i&gt;&lt;a href=&quot;#assessment&quot;&gt;More info below&lt;/a&gt;&lt;/i&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;h3 id=&quot;status&quot;&gt;Status&lt;/h3&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;status&lt;/code&gt; key of the subject is an integer that indicates the following:&lt;/p&gt;

&lt;table style=&quot;width:100%;&quot;&gt;
    &lt;tr&gt;
        &lt;th&gt;Status Code&lt;/th&gt;
        &lt;th&gt;Meaning&lt;/th&gt;
        &lt;th&gt;Description&lt;/th&gt;
        &lt;th&gt;Color&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Passed&lt;/td&gt;
        &lt;td&gt;The subject has been passed and now is archived&lt;/td&gt;
        &lt;td style=&quot;color:LimeGreen&quot;&gt;&lt;b&gt;Green&lt;/b&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Active&lt;/td&gt;
        &lt;td&gt;The subject is being taught in the actual course&lt;/td&gt;
        &lt;td style=&quot;color:DeepSkyBlue&quot;&gt;&lt;b&gt;Blue&lt;/b&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Future&lt;/td&gt;
        &lt;td&gt;The subject will start in the future&lt;/td&gt;
        &lt;td style=&quot;color:RebeccaPurple&quot;&gt;&lt;b&gt;Purple&lt;/b&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Failed&lt;/td&gt;
        &lt;td&gt;The subject is failed&lt;/td&gt;
        &lt;td style=&quot;color:red&quot;&gt;&lt;b&gt;Red&lt;/b&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;i&gt;Other&lt;/i&gt;&lt;/td&gt;
        &lt;td&gt;Unknown&lt;/td&gt;
        &lt;td&gt;The status of the subject is unknown&lt;/td&gt;
        &lt;td style=&quot;color:grey&quot;&gt;&lt;b&gt;Grey&lt;/b&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;If you want to create a new proprietary &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;status&lt;/code&gt; code you should use a code over 100. The colors are recommendations for any GUI.&lt;/p&gt;

&lt;h3 id=&quot;assessment&quot;&gt;Assessment&lt;/h3&gt;

&lt;p&gt;The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;assessment&lt;/code&gt; key is an array that includes all the marks of the subject needed to compute the final mark and a some other important information.&lt;/p&gt;

&lt;p&gt;Each element of the array is a dictionary with the following keys:&lt;/p&gt;

&lt;table style=&quot;width:100%;&quot;&gt;
    &lt;tr&gt;
        &lt;th&gt;Key&lt;/th&gt;
        &lt;th&gt;Required&lt;/th&gt;
        &lt;th&gt;Description&lt;/th&gt;
        &lt;th&gt;Default&lt;/th&gt;
        &lt;th&gt;Example&lt;/th&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;mark&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;&lt;b&gt;Required&lt;/b&gt;&lt;/td&gt;
        &lt;td&gt;Mark of the item&lt;/td&gt;
        &lt;td&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;8&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;68&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;7.5&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Name of the item&lt;/td&gt;
        &lt;td&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;Mid-Term Exam&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;Delivery&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;Lab 3&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;weight&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Float between 0 and 1 indicating the weight of this item over the overall subject mark&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;1&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;0.2&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;0.05&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;code&gt;fullscale&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;Optional&lt;/td&gt;
        &lt;td&gt;Float that indicates the maximum mark of this item&lt;/td&gt;
        &lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
        &lt;td&gt;
            &lt;code&gt;10&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;100&lt;/code&gt;&lt;br /&gt;
            &lt;code&gt;2.5&lt;/code&gt;
        &lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;h2 id=&quot;example&quot;&gt;Example&lt;/h2&gt;

&lt;p&gt;Here is an example of a full &lt;strong&gt;YAML Subject&lt;/strong&gt; file (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;AACT.subject.yaml&lt;/code&gt;):&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;course: Master in Electronic Engineering (MEE)
institution: Universitat Politècnica de Catalunya (UPC)
codename: AACT
name: Advanced Analog Circuit Techniques
code: 230642
credits: 5
type: Core
year: 2015/16
term: 2
status: 1
web: http://atenea.upc.edu/moodle/course/view.php?id=31281
assessment:
  - description: Deliveries
    mark: 7
    weight: 0.2
  - description: Mid-Term Exam
    mark: 8
    weight: 0.2
  - description: Final Exam
    mark: 76
    fullscale: 100
    weight: 0.6
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
      </item>
    
      <item>
        <title>Interesting courses in Coursera</title>
        <pubDate>Mon, 30 Mar 2015 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2015/03/coursera-courses</link>
        <language>en</language>
        <guid isPermaLink="true">https://pvieito.com/2015/03/coursera-courses</guid>
        
        
        <description>&lt;p&gt;&lt;a href=&quot;https://www.coursera.org&quot;&gt;Coursera&lt;/a&gt; is a &lt;a href=&quot;https://es.wikipedia.org/wiki/MOOC&quot;&gt;MOOC&lt;/a&gt; platform with thousands of courses from different universities and institutions. These are some I have found very interesting:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coursera.org/course/crypto&quot;&gt;&lt;strong&gt;Cryptography I&lt;/strong&gt;&lt;/a&gt; from &lt;em&gt;Standford University&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coursera.org/course/softwaresec&quot;&gt;&lt;strong&gt;Software Security&lt;/strong&gt;&lt;/a&gt; from &lt;em&gt;University of Maryland&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coursera.org/course/comnetworks&quot;&gt;&lt;strong&gt;Computer Networks&lt;/strong&gt;&lt;/a&gt; from &lt;em&gt;University of Washington&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coursera.org/course/cryptography&quot;&gt;&lt;strong&gt;Cryptography&lt;/strong&gt;&lt;/a&gt; from &lt;em&gt;University of Maryland&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.coursera.org/course/digital&quot;&gt;&lt;strong&gt;Fundamentals of Digital Image and Video Processing&lt;/strong&gt;&lt;/a&gt; from &lt;em&gt;Northwestern University&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
      </item>
    
      <item>
        <title>Cómo recuperar acceso de administrador en un Mac</title>
        <pubDate>Wed, 10 Sep 2014 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2014/09/administrador-mac</link>
        <language>es</language>
        <guid isPermaLink="true">https://pvieito.com/2014/09/administrador-mac</guid>
        
        
        <description>&lt;p&gt;Siguiendo estas instrucciones se puede recuperar el acceso de administrador de un Mac sin eliminar otras cuentas o borrar el disco. Este método no funcionará si el disco duro está cifrado con FileVault 2.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Reiniciar el Mac.&lt;/li&gt;
  &lt;li&gt;Antes de escuchar el sonido de arranque hay que pulsar Comando+S para entrar en modo terminal.&lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Desde la línea de comandos borramos el archivo &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.AppleSetupDone&lt;/code&gt; para que OS X ejecute la pantalla de bienvenida la próxima vez que reiniciemos:&lt;/p&gt;

    &lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;  mount -uw /
  rm /var/db/.AppleSetupDone
  shutdown -h now
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;    &lt;/div&gt;
  &lt;/li&gt;
  &lt;li&gt;Finalmente sólo hay que encender de nuevo el Mac y crear una cuenta.&lt;/li&gt;
&lt;/ul&gt;
</description>
      </item>
    
      <item>
        <title>A ICANN activa o primeiro dominio .gal</title>
        <pubDate>Sat, 12 Apr 2014 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2014/04/punto-gal</link>
        <language>gl</language>
        <guid isPermaLink="true">https://pvieito.com/2014/04/punto-gal</guid>
        
        
        <description>&lt;p&gt;Tras 7 anos, o dominio .gal xa é unha realidade:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href=&quot;http://nic.gal&quot;&gt;Nic.gal&lt;/a&gt; convertiuse onte pola noite no primeiro dominio de puntoGAL activado pola ICANN, o organismo internacional que xestiona os dominios da rede a nivel mundial.&lt;/p&gt;

  &lt;p&gt;Tras máis de 7 anos de traballo e coas sinaturas de apoio de doce mil cidadáns e 110 entidades, a posta en marcha desta primeira páxina, de caracter técnico e para probas, supón a delegación formal do dominio e a culminación dun longo proceso apoiado por toda a sociedade galega.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Como todos os novos dominios haberá un prazo inicial para que as administracións públicas, organizacións galegas e marcas poidan rexistrar o seu dominios antes do público xeral.&lt;/p&gt;
</description>
      </item>
    
      <item>
        <title>Instalación del Combo R 100</title>
        <pubDate>Fri, 20 Dec 2013 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2013/12/instalacion-r</link>
        <language>es</language>
        <guid isPermaLink="true">https://pvieito.com/2013/12/instalacion-r</guid>
        
        
        <description>&lt;p&gt;Hace unos días decidí cambiar de Movistar ADSL 10 Mbps a un Combo R 100 Mbps. Lo pedí el pasado miércoles a la mañana, a la tarde llamé para pedir la cita con el técnico y al día siguiente ya vinieron a hacer la instalación.&lt;/p&gt;

&lt;h3 id=&quot;instalación&quot;&gt;Instalación&lt;/h3&gt;

&lt;p&gt;&lt;img src=&quot;/media/2013/12/ptr.jpg&quot; alt=&quot;PTR de R&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;Lo que lleva el PTR dentro: un repartidor coaxial y un zócalo RJ para probar el teléfono.&lt;/figcaption&gt;

&lt;p&gt;Básicamente suben un cable doble (coaxial para Internet y par de cobre para teléfono) desde un distribuidor externo hasta un Punto de Terminación de Red (PTR) que colocan dentro de casa. Ese PTR es una caja que simplemente tiene dos salidas coaxiales (internet y televisión) y una de teléfono.&lt;/p&gt;

&lt;h3 id=&quot;router&quot;&gt;Router&lt;/h3&gt;

&lt;p&gt;La primera salida coaxial va directamente al router, mi modelo fue el que instalan con los Combos 100 y 200, un inesperado &lt;a href=&quot;http://particulares.mundo-r.com/es/mas/internet/equipos&quot;&gt;Cisco EPC3928AD&lt;/a&gt;. Acostumbrado a los equipos que suele dar Movistar esto fue una bonita alegría. A parte de incluir todo los clásico (DHCP, IEEE802.11b/g/n, filtrado MAC, DDNS o DMZ) tiene también un servidor de archivos (gracias a su puerto USB), Media Server, configuración Wi-Fi avanzada (velocidad de transmisión, medición automática de ruido por canal, permite crear 2 redes inalámbricas independientes) y el VPN de Cisco.&lt;/p&gt;

&lt;h3 id=&quot;teléfono&quot;&gt;Teléfono&lt;/h3&gt;

&lt;p&gt;Para conectar el teléfono simplemente desconectan la red del antiguo operador y enchufan el par de cobre de R a la red de teléfono interior. Desde ese momento todos los teléfonos ya funcionan con un número temporal que te dan mientras no se finaliza la portabilidad.&lt;/p&gt;

&lt;h3 id=&quot;velocidad&quot;&gt;Velocidad&lt;/h3&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Conexión&lt;/th&gt;
      &lt;th&gt;Contratada&lt;/th&gt;
      &lt;th&gt;Bajada&lt;/th&gt;
      &lt;th&gt;Subida&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;Movistar&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;10 Mbps&lt;/td&gt;
      &lt;td&gt;4,95 Mbps&lt;/td&gt;
      &lt;td&gt;0,54 Mbps&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;strong&gt;R Combo&lt;/strong&gt;&lt;/td&gt;
      &lt;td&gt;100 Mbps&lt;/td&gt;
      &lt;td&gt;103,63 Mbps&lt;/td&gt;
      &lt;td&gt;9,36 Mbps&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;En su web dicen que garantizan hasta un 80% de la velocidad contratada por cable, y la verdad es que sí que cumplen. Conectado por Ethernet todos los test de velocidad que he realizado han superado los 100 Mbps que tengo contratados. Bastante sorprendente comparado con Movistar, que de los “hasta 10 Mbps” anunciados me llegaban tan solo 5 Mbps.&lt;/p&gt;
</description>
      </item>
    
      <item>
        <title>Análisis de OS X 10.9 Mavericks por John Siracusa</title>
        <pubDate>Tue, 22 Oct 2013 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2013/10/mavericks-siracusa</link>
        <language>es</language>
        <guid isPermaLink="true">https://pvieito.com/2013/10/mavericks-siracusa</guid>
        
        
        <description>&lt;p&gt;Lo mejor de cada nueva versión de OS X es sin duda &lt;a href=&quot;http://arstechnica.com/apple/2013/10/os-x-10-9/&quot;&gt;el análisis de John Siracusa&lt;/a&gt;. Este año es cortita, solo 23.000 palabras.&lt;/p&gt;
</description>
      </item>
    
      <item>
        <title>El nuevo modelo de WhatsApp para iOS</title>
        <pubDate>Thu, 18 Jul 2013 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2013/07/whatsapp-ios</link>
        <language>es</language>
        <guid isPermaLink="true">https://pvieito.com/2013/07/whatsapp-ios</guid>
        
        
        <description>&lt;p&gt;Ayer WhatsApp lanzó su última actualización para iOS, entre las novedades incluía copias de seguridad en iCloud, la posibilidad de añadir múltiples fotos a una conversación al mismo tiempo, abrir archivos en WhatsApp y una esperada API que permitirá a otras aplicaciones interactuar con WhatsApp (por ejemplo enviar fotos o música que guardemos en Dropbox).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2013/07/whatsapp-ios-pago.jpg&quot; alt=&quot;WhatsApp iOS&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Pero quizás la novedad más interesante es que la aplicación pasó de costar 0,89 € a ser gratis. En realidad WhatsApp a cambiado el modelo de negocio a uno similar al que tenía en Android: el primer año gratis, los siguientes 0,89 €/año. Para los usuarios que ya habíamos descargado la aplicación hay una muy buena noticia, tendremos WhatsApp gratis de por vida. Es más, la nueva versión permite transferir nuestra cuenta en caso de que cambiemos nuestro número de teléfono.&lt;/p&gt;
</description>
      </item>
    
      <item>
        <title>Instacast para Mac Beta</title>
        <pubDate>Fri, 03 May 2013 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2013/05/instacast-mac-beta</link>
        <language>es</language>
        <guid isPermaLink="true">https://pvieito.com/2013/05/instacast-mac-beta</guid>
        
        
        <description>&lt;p&gt;Instacast para iOS ha sido mi &lt;em&gt;podcatcher&lt;/em&gt; favorito desde hace tiempo y el pasado miércoles &lt;strong&gt;Instacast para Mac&lt;/strong&gt; ha llegado a la fase de beta pública. Después de probarla durante unos pocos días he de decir que está muy bien conseguida para ser una beta.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/media/2013/05/instacast-mac.png&quot; alt=&quot;Instacast para Mac&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;La cuidada interfaz de Instacast para Mac.&lt;/figcaption&gt;

&lt;p&gt;La interfaz como en Instacast para iOS está muy cuidada, el equipo Vemedio ha conseguido crear una interfaz de usuario fácil de entender a la vez que bonita y con estilo &lt;em&gt;Mac&lt;/em&gt;. Las características son prácticamente las mismas que en iOS, los podcasts se pueden visualizar como subscripciones, listas o listas inteligentes. Incluye también pequeños detalles que se agradecen en una versión para Mac como un mini-reproductor muy parecido al de iTunes.&lt;/p&gt;

&lt;p&gt;Las preferencias de la aplicación incluyen todo lo importante —gestión de archivos, servición para compartir— y también la opción de sincronización en la nube. Y aquí está el mayor problema de la beta. Si ya tenías subscripciones en un dispositivo iOS, una vez actives Instacast Cloud probablemente veas que todas se han pasado al Mac, sin embargo muchos episodios se marcarán como no reproducidos, algunos favoritos no aparecerán, etcétera, etcétera. Después puede que como a mi, no te sincronice en las dos direcciones, en mi caso los cambios que realizaba en el iPhone no se pasaban al Mac pero sí al revés. Finalmente encontré una solución —quizás temporal—, borrar la app de iOS, quitar la cuenta de Instacast Cloud del Mac y comenzar desde el principio la sincronización. Por ahora parece estar funcionando correctamente.&lt;/p&gt;

&lt;p&gt;En general Instacast para Mac para ser una beta me ha sorprendido gratamente con excepción de esos problemas de sincronización. Animo a que probéis la beta pública, podéis descargarla gratis desde &lt;a href=&quot;http://vemedio.com/products/instacast-mac&quot;&gt;la web de Instacast&lt;/a&gt;. El precio final aún no se conoce pero Vemedio ofrece la opción “Early Bird” para comprarla más barata &lt;a href=&quot;http://vemedio.com/blog/posts/instacast-for-mac-public-beta-available&quot;&gt;antes de que termine el periodo de beta&lt;/a&gt;.&lt;/p&gt;
</description>
      </item>
    
      <item>
        <title>La vida después de Google Reader: historia y alternativas</title>
        <pubDate>Sun, 21 Apr 2013 00:00:00 +0200</pubDate>
        <link>https://pvieito.com/2013/04/alternativas-google-reader</link>
        <language>es</language>
        <guid isPermaLink="true">https://pvieito.com/2013/04/alternativas-google-reader</guid>
        
        
        <description>&lt;p&gt;Google Reader fue &lt;a href=&quot;http://arstechnica.com/uncategorized/2005/10/5402-2/&quot;&gt;presentado en el 2005&lt;/a&gt; y se ha convertido en el servicio más usado para leer feeds RSS. Tan usado, que es el lector de feeds por defecto. Pero esto se acabará, Google anunció que &lt;a href=&quot;http://www.theverge.com/2013/3/13/4101144/google-shuts-down-reader-rss-aggregation-service&quot;&gt;cerrará Reader el 1 de julio de este año&lt;/a&gt;. &lt;a href=&quot;https://twitter.com/wicho/status/311985850953117696&quot;&gt;En Twitter&lt;/a&gt; &lt;a href=&quot;https://twitter.com/reederapp/status/311995748482945025&quot;&gt;cundió&lt;/a&gt; &lt;a href=&quot;https://twitter.com/pvieito/status/311991885801603073&quot;&gt;el&lt;/a&gt; &lt;a href=&quot;https://twitter.com/Eurekablog/status/311986175193784320&quot;&gt;pánico&lt;/a&gt;, pero por suerte existen diversas alternativas:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.digg.com/reader&quot;&gt;&lt;strong&gt;Digg Reader&lt;/strong&gt;&lt;/a&gt;: Digg ha lanzado su propio lector de feeds en beta, tiene una interfaz simple y bonita además de aplicación propia para iOS.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.feedly.com&quot;&gt;&lt;strong&gt;Feedly&lt;/strong&gt;&lt;/a&gt;: el servicio web gratuito con apps nativas para iOS y Android. &lt;a href=&quot;http://blog.feedly.com/2013/06/04/feedly-is-listening-the-roadmap-you-helped-us-shape/&quot;&gt;Han anunciado&lt;/a&gt; una API pública, denominada &lt;em&gt;Normandy&lt;/em&gt;, similar a la de Google Reader y que &lt;strong&gt;aplicaciones como Reeder o Press serán compatibles antes del 1 de julio&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.feedafever.com&quot;&gt;&lt;strong&gt;Fever&lt;/strong&gt;&lt;/a&gt;: es un servicio un poco más complicado de usar, requiere disponer de un servidor propio pero tiene buena pinta y funciona con Reeder para iOS. Detalle importante, cuesta 30$. Emilcar ha escrito hace unas semanas una &lt;a href=&quot;http://emilcar.es/blog/2013/03/19/fever-rss-para-geeks-irredentos/&quot;&gt;entrada&lt;/a&gt; explicando como se instala y configura.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://feedbin.me&quot;&gt;&lt;strong&gt;Feedbin&lt;/strong&gt;&lt;/a&gt;: este servicio tiene una interfaz muy cuidada y una API para otras aplicaciones (&lt;a href=&quot;https://twitter.com/reederapp/status/324551612901228544&quot;&gt;es compatible con Reeder&lt;/a&gt;). Es un servicio de subscripción, 2$ al mes.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://feedwrangler.net/welcome.html&quot;&gt;&lt;strong&gt;Feed Wrangler&lt;/strong&gt;&lt;/a&gt;: otra alternativa de pago, con una interfaz un poco peor que Feedbin pero con aplicación propia para iOS.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://theoldreader.com&quot;&gt;&lt;strong&gt;The Old Reader&lt;/strong&gt;&lt;/a&gt;: está bien si solo quieres leer los feeds en un navegador. Sencillo y gratuito.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hay algunas más pero estas son las que me han parecido mas interesantes.&lt;/p&gt;

</description>
      </item>
    
      <item>
        <title>El Módulo de Servicio de la Orion será diseñado y fabricado por la ESA</title>
        <pubDate>Thu, 17 Jan 2013 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2013/01/esa-orion</link>
        <language>es</language>
        <guid isPermaLink="true">https://pvieito.com/2013/01/esa-orion</guid>
        
        
        <description>&lt;p&gt;&lt;img src=&quot;/media/2013/01/esa-orion.jpg&quot; alt=&quot;Módulo de Servicio de la Orion&quot; /&gt;&lt;/p&gt;
&lt;figcaption&gt;Módulo de Servicio de la Orion basado en los ATV de la ESA.&lt;/figcaption&gt;

&lt;p&gt;La futura &lt;strong&gt;nave tripulada Orion&lt;/strong&gt; de la NASA que nació como parte del &lt;em&gt;Programa Constellation&lt;/em&gt; para poner un hombre en la Luna antes de 2020 fue cancelada en 2010, sin embargo, acabó reapareciendo como MPCV (&lt;em&gt;Multi-Purpose Crew Vehicle&lt;/em&gt;) un año después. Ahora conocemos la noticia de que será la ESA la que construya el Módulo de Servicio de la nave que se basará en los ATV cuyo diseño ya ha sido probado en varias ocasiones llevando material a la ISS.&lt;/p&gt;
</description>
      </item>
    
      <item>
        <title>Hoy se cumplen 40 años desde la última vez que el hombre pisó la Luna y 50 de Exploración Interplanetaria</title>
        <pubDate>Fri, 14 Dec 2012 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2012/12/exploracion-interplanetaria</link>
        <language>es</language>
        <guid isPermaLink="true">https://pvieito.com/2012/12/exploracion-interplanetaria</guid>
        
        
        <description>&lt;p&gt;&lt;img src=&quot;/media/2012/12/40-anos-apollo-17.jpg&quot; alt=&quot;Foto durante la misión Apollo 17&quot; /&gt;&lt;/p&gt;

&lt;p&gt;El &lt;strong&gt;14 de diciembre de 1972&lt;/strong&gt;, el comandante Eugene Cernan, líder de la misión Apollo 17, pisó por última vez el suelo lunar, cerrando una de las eras más gloriosas de la investigación espacial. &lt;a href=&quot;https://twitter.com/Eurekablog&quot;&gt;Daniel Marín&lt;/a&gt; en su excelente blog &lt;a href=&quot;http://danielmarin.blogspot.com.es/2012/12/40-anos-del-apolo-17-los-ultimos.html&quot;&gt;Eureka&lt;/a&gt; ha escrito un detallado post sobre la última gran misión del Programa Apollo.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;¿Cómo sería vivir en la Luna? A lo largo de la historia, solamente doce seres humanos han sido capaces de contestar a esta pregunta, pero únicamente ocho siguen vivos para contarlo. Eugene Cernan y Harrison Schmitt son dos de los afortunados. Ellos fueron los últimos humanos en vivir en otro mundo. Literalmente. Durante tres días los dos astronautas recorrieron el valle de Taurus-Littrow, recogiendo rocas e instalando instrumentos científicos. ¡Tres días viviendo en la Luna! Parece un relato de ciencia ficción, pero por sorprendente que parezca ocurrió realmente. Hace cuarenta años, el Apolo 17 puso rumbo a la Luna.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Disfrutad del artículo completo en &lt;a href=&quot;http://danielmarin.blogspot.com.es/2012/12/40-anos-del-apolo-17-los-ultimos.html&quot;&gt;su blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Hoy también se conmemoran los 50 años de Exploración Interplanetaria. La sonda &lt;em&gt;Mariner 2&lt;/em&gt; fue la primera en entrar en órbita de otro planeta un día como hoy de 1962. El JPL de la NASA ha preparado una &lt;a href=&quot;http://www.jpl.nasa.gov/50years/&quot;&gt;web especial&lt;/a&gt; para la ocasión.&lt;/p&gt;

</description>
      </item>
    
      <item>
        <title>Apple anuncia interesantes cambios en su Dirección</title>
        <pubDate>Mon, 29 Oct 2012 00:00:00 +0100</pubDate>
        <link>https://pvieito.com/2012/10/apple-anuncia-cambios-direccion</link>
        <language>es</language>
        <guid isPermaLink="true">https://pvieito.com/2012/10/apple-anuncia-cambios-direccion</guid>
        
        
        <description>&lt;p&gt;Apple ha anunciado unos cuantos cambios en su Dirección:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Jony Ive&lt;/strong&gt;, que hasta ahora dirijía el diseño de los productos de Apple, también tomará control del diseño de las Interfaces de Usuario. Este será un giro importante en contra del &lt;a href=&quot;http://www.fastcodesign.com/1670760/will-apples-tacky-software-design-philosophy-cause-a-revolt&quot;&gt;&lt;em&gt;skeuformismo&lt;/em&gt;&lt;/a&gt; que se estaba comenzado a extender desde iOS defendido por Scott Forstall —quien dejará Apple, quizás por motivo de los problemas con Siri y los Mapas de iOS 6.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Craig Federighi&lt;/strong&gt;, seguirá dirigiendo OS X y además sustituirá a Scott Forstall como VP de iOS. Esto implica que los dos sistemas de Apple seguirán las mismas directrices y por lo tanto avanzarán de la mano.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Eddy Cue&lt;/strong&gt; a partir de ahora dirigirá todos los servicios &lt;em&gt;online&lt;/em&gt; de Apple. Por lo tanto al App Store, iCloud y iTunes se le unen los Mapas y Siri.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Bob Mansfield&lt;/strong&gt;, que era VP Ejecutivo de Hardware pasará a ser VP de Tecnologías, lo que incluye la dirección del diseño de los nuevos procesadores propios de Apple —el A6 o A6X.&lt;/li&gt;
&lt;/ul&gt;

</description>
      </item>
    
  </channel>
</rss>
