Skip to content

Instantly share code, notes, and snippets.

@mikeminutillo
Created August 30, 2012 04:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikeminutillo/3522487 to your computer and use it in GitHub Desktop.
Save mikeminutillo/3522487 to your computer and use it in GitHub Desktop.
LinqPad script to give a nice schedule for TechEd AU 2012
Tuesday
---------------
3:00 PM -> 3:30 PM
Arena 1A Stuff Developers will Want to See
Arena 2 Windows Server 2012 - Prepare to be Amazed
3:30 PM -> 4:45 PM
Arena 2 TechEd Keynote Presentation
6:30 PM -> 7:45 PM
AvePoint Theatre Ask an Expert: SharePoint 2013 Q&A Panel
Wednesday
---------------
8:15 AM -> 9:40 AM
Arena 1A What's New in Visual Studio 2012
Arena 1B Your Modern Office - Introducing the new Office, SharePoint, Lync, and Exchange
Arena 2 What's New in WS2012
Central A Exchange Server 2013 Architecture Deep Dive
Central C What's New in Windows Azure?
Meeting Room 9 Becoming a Windows Intune IT Administrator - A Real-World Perspective
Meeting Rooms 5&6 How to Architect the Private Cloud
Meeting Rooms 7&8 Comparing Core Virtualization Platforms
9:45 AM -> 11:00 AM
Arena 1A Introducing Office 365 for Enterprises
Arena 1B What’s New for Windows 8 Developers Part 1 aka The Square Cheese Has Moved. A Little
Arena 2 What's New in Active Directory in Windows Server 2012
Central A What's New in Windows Server 2012 Hyper-V, Part 1
Central C Introduction to Windows Azure Web Sites
Meeting Room 9 ITIL and the Private Cloud
Meeting Rooms 5&6 Microsoft Application Virtualization 5.0: Introduction
Meeting Rooms 7&8 Keeping the Lights On with SQLServer 2012 AlwaysOn
TLC Theatre 1 Windows Server 2012 - What’s New in Windows PowerShell 3.0
TLC Theatre 2 Installing and Managing SQL Server 2012 on Windows Server Core
TLC Theatre 3 Sideloading Applications in Windows 8
11:00 AM -> 11:30 AM
AvePoint Theatre Project Server 2013, a Landmark Release!
11:30 AM -> 12:45 PM
Arena 1A Hyper-V Performance, Scale & Architecture Changes
Arena 1B How I Became Authentically Digital - An Introduction to the Windows 8 UI Design Language
Arena 2 What's New in MDT 2012?
Central A Architecting Private Clouds Using Windows Server 2012
Central C Windows Azure Virtual Machines and Virtual Networks
Meeting Room 9 Turbocharging a Warehouse with Columnstore Indexes
Meeting Rooms 5&6 Best Practises for Orchestrator Runbook Authoring
Meeting Rooms 7&8 Office Beyond the Desktop
TLC Theatre 1 Windows Server 2012 - Managing Windows Server 2012 with Server Manager and Windows
TLC Theatre 2 Creating a Windows 8 Line of Business Application – XAML & C# - from Start to Finish
TLC Theatre 3 Implementing Endpoint Protection 2012 in System Center 2012 Configuration Manager
12:45 PM -> 1:45 PM
Foyer E Women in IT
12:45 PM 1:15 PM AvePoint Theatre SharePoint 2013 Authentication with Azure – Part I
1:15 PM 1:45 PM AvePoint Theatre SharePoint 2013 Authentication with Azure – Part II
1:45 PM -> 3:00 PM
Arena 1A WS2012 Hyper-V Live Migration and Live Storage Migration
Arena 1B Introducing the New SharePoint
Arena 2 Deploying Windows 8: What’s New
Central A What’s New for Windows 8 Devs Part 2
Central C Azure SQL, Tables, Blobs, Queues, Cache, Hadoop; What is the Best for Me?
Meeting Room 9 vFuture – Configuration Manager 2012 SP1 – BEHOLD THE AWESOME!!
Meeting Rooms 5&6 Lync 2013 Architecture
Meeting Rooms 7&8 The Faces of WS2012: Bare Metal, Server Core, Minimal Server Interface…
TLC Theatre 1 Introduction to Search in SharePoint 2013
3:00 PM -> 3:30 PM
AvePoint Theatre What SharePoint Admins Should Know About SQL Server
3:30 PM -> 4:45 PM
Arena 1A Enable “Bring Your Own Device” with SCCM 2012
Arena 1B .NET 4.5: Just the Good Stuff
Arena 2 Exchange Server 2013 High Availability and Site Resilience
Central A What's New in Windows Server 2012 Hyper-V, Part 2
Central C Video Streaming from the Cloud - An Overview of Windows Azure Media Service
Meeting Room 9 Automating Protection and Recovery with DPM and the System Center Suite
Meeting Rooms 5&6 Diving into SMB 3.0
Meeting Rooms 7&8 Developing an Optimized Analysis Services Tabular Project BI Semantic Model
TLC Theatre 1 Microsoft Application Virtualization (App-V) 5.0 Overview
TLC Theatre 2 Implementing SQL Server 2012 AlwaysOn Availability Groups
TLC Theatre 3 Getting Started with System Center 2012 – Service Manager
5:00 PM -> 6:15 PM
Arena 1A WS2012 File System Enhancements: ReFS and Storage Spaces
Arena 1B Lync 2013 Meeting Improvements
Arena 2 Comparing Private Cloud Capabilities
Central A What’s New for Windows 8 Devs Part 3
Central C Node.js and Windows Azure
Meeting Room 9 Microsoft Project Online Overview
Meeting Rooms 5&6 Data Protection and Monitoring in a Virtualized Datacentre
Meeting Rooms 7&8 Enable the Consumerization of IT
TLC Theatre 1 Windows Server 2012 - Getting Started Managing your Network with IP Address Management (IPAM)
TLC Theatre 2 Deploying & Managing Virtual Applications (App-V) using System Center 2012 Configuration Manager
TLC Theatre 3 Introduction to Windows Azure SQL Database
6:30 PM -> 7:45 PM
Arena 1A WS2012 Server Manager for Remote and Multi-Server Mgt
Arena 1B Windows Phone Session 1
Arena 2 Deploying Virtualization Infrastructure from Ground Zero
Central A Windows Runtime (WinRT) Deep Dive
Central C Authentication in the Cloud: Step by Step
Meeting Room 9 Data Quality Services in Enterprise Info Management
Meeting Rooms 5&6 Enabling Hosted IaaS Clouds for Service Providers
Meeting Rooms 7&8 Building Connected Windows Store apps with Windows Azure Mobile Services
TLC Theatre 1 Windows Server 2012 - Active Directory Deployment and Management Enhancements
TLC Theatre 2 Operating System Deployment in Configuration Manager 2012 – Let the End User Choose
TLC Theatre 3 Deploying and Managing Exchange Mailbox High Availability with Exchange Server 2013
Thursday
---------------
8:15 AM -> 9:40 AM
Arena 1A WS2012 NIC Teaming and Multichannel Solutions
Arena 1B Windows Phone Session 2
Arena 2 Enabling Disaster Recovery using Hyper-V Replica
Central A Enabling Mature Self Service with System Center 2012
Central C Windows Azure SQL Database and SQL Reporting for Developers
Meeting Room 7 Lync 2013 Deployment
Meeting Room 8 Introducing the New App Model for Office and SharePoint
Meeting Room 9 SQL Server Database Private Cloud Deep Dive
Meeting Rooms 5&6 Design and Layout for Windows 8 and Windows Phone Style Apps
TLC Theatre 1 Windows Server 2012 - Implementing DirectAccess in Windows Server 2012
TLC Theatre 2 Configuring Exchange Server 2013 Protection and Control
TLC Theatre 3 ASP.NET Web Apps with Windows Azure Websites and VS2012
9:45 AM -> 11:00 AM
Arena 1A Click-to-Run: The New Office Deployment and Update Management
Arena 1B Windows 8 Application Development with HTML/Java Script
Arena 2 Windows 8 Security Internals
Central A Enabling Next Gen Multi-Datacenter Resilience at Kennards Hire
Central C Azure; Security, Data Sovereignty: No Problem
Meeting Room 7 Windows Phone SDK - Be Productive Straight out of the Blocks
Meeting Room 8 FIM Best Practices - Architecting Identity Solutions that Really Work!
Meeting Room 9 Best Practices for deploying WS2012 on HP BladeSystem
Meeting Rooms 5&6 Advanced Automation Using Windows PowerShell 3.0
TLC Theatre 1 Exploring Power View in SQL Server 2012
TLC Theatre 2 Introduction to Microsoft System Center 2012 Configuration Manager
TLC Theatre 3 Getting Started with System Center 2012 – Virtual Machine Manager
11:00 AM -> 11:30 AM
AvePoint Theatre Power View - The Future of Visual Business Intelligence via SharePoint
11:30 AM -> 12:45 PM
Arena 1A Selling & Deploying Windows 8 Apps
Arena 1B From Start to Rest in 60 minutes.
Arena 2 WS2012 Capabilities to Enable Multi-Tenancy
Central A Build Smart: Developing for Windows Phone and Windows 8
Central C Building Robust Windows Azure Applications with P&P Guidance
Meeting Room 7 From Server to Service: How Microsoft Moved Team Foundation Server to Windows Azure
Meeting Room 8 FIM Best Practices - Technical Deep-Dive
Meeting Room 9 Presenting SharePoint as a Service to your Organisation
Meeting Rooms 5&6 Cluster Shared Volumes Reborn in Windows Server 2012: Deep Dive
TLC Theatre 1 Creating a PerformancePoint Services dashboard based on a SQL Server 2012 BI Semantic Model
TLC Theatre 2 Deploying Windows 8 Using System Center 2012 Configuration Manager
TLC Theatre 3 Microsoft Diagnostics and Recovery Toolset (DaRT)
12:45 PM -> 1:45 PM
Foyer E ZDNet Panel - Server war stories
12:45 PM 1:15 PM AvePoint Theatre Record Management in SharePoint 2013
1:45 PM -> 3:00 PM
Arena 1A Implementing Security Compliance Manager for Compliance in SCCM 2012
Arena 1B Office 365 Identity Federation Technology Deep-Dive
Arena 2 WS2012 IP Address Management (IPAM)
Central A Lync Customer Panel Q & A
Central C Mobile + Cloud: Building Mobile Applications with Windows Azure
Meeting Room 7 Enhancing User State Virtualization through MDOP
Meeting Room 8 Killer Real World PowerPivot Examples Part II
Meeting Room 9 Windows 8 with a View
Meeting Rooms 5&6 Guest Clustering and VM Monitoring in WS2012
TLC Theatre 1 Windows Server 2012 - Introduction to Windows PowerShell Fundamentals
TLC Theatre 2 Creating an Windows 8 Line of Business Application - HTML & JavaScript from Start to Finish
TLC Theatre 3 Migrating from Microsoft System Center Configuration Manager 2007 to Microsoft System Center 2012 Configuration Manager
3:00 PM -> 3:30 PM
AvePoint Theatre Rapid Application Development with Access 2013
3:30 PM -> 4:45 PM
Arena 1A App Compat for Nerds
Arena 1B Migrate from Configuration Manager 2007 to Configuration Manager 2012
Arena 2 WS2012 File and Storage Services Management
Central A All Aboard the Team Foundation Server Express
Central C Building Cross-Device Mobile Applications Powered by Windows Azure and SQL Azure
Meeting Room 7 Real World: SharePoint Customisation – Developer vs. IT Pro
Meeting Room 8 Big Data for Relational Practitioners
Meeting Room 9 Lync 2013 Voice Improvements
Meeting Rooms 5&6 Best Practices and Lessons Learned: VDI Deployment on WS2012
TLC Theatre 1 Designing a SharePoint 2013 site
5:00 PM -> 6:15 PM
Arena 1A The Path to Continuous Availability with WS2012
Arena 2 Inside the New Hyper-V Extensible Switch in WS2012
Central A Agile Planning Tools in Team Foundation Server 2012 – Make them your Own
Central C The Mass Mobile Experiment Powered by Windows Azure and Node.js
Meeting Room 7 The new Exchange - Data Loss Prevention
Meeting Room 8 Microsoft & Citrix: Better Together – A System Center Story
Meeting Room 9 Data Mining for Fun and Profit
Meeting Rooms 5&6 Building Hybrid Solutions with Windows Azure
TLC Theatre 1 Upgrading the database engine to SQL Server 2012
TLC Theatre 2 Building an Optimized Private Cloud using Windows Server 2012 Server Core and the Minimal Server Interface
TLC Theatre 3 Upgrading Microsoft System Center Operations Manager 2007 to Microsoft System Center Operations Manager 2012
Friday
---------------
8:15 AM -> 9:40 AM
Arena 1A Kick Starting your Migration to Windows Server 2012
Arena 1B VDI in Windows Server 2012
Arena 2 Lessons Learned: Deploying a Hybrid Cloud
Central A Voice of the Customer: Office 365
Central C Casablanca: C++ on Azure
Meeting Room 5 Cross Platform Development with Windows Phone and Mono
Meeting Room 6 Demystifying Integration of Lync to your Existing PABX
Meeting Room 7 A Modern Architecture Review: Using the New Code Review Tools
Meeting Room 8 Migrating Virtual Environments to Hyper-V: The Easy Way
Meeting Room 9 SQL Server Warehousing (Fast Track 4.0 & PDW)
9:45 AM -> 11:00 AM
Arena 1A Private Cloud Service Delivery and Automation with Microsoft System Center 2012
Arena 1B Exchange Server 2013 Deployment and Coexistence
Arena 2 Cluster-Aware Updating and the New Generation of WSUS
Central A Building Responsive Web Applications with MVC4, WebAPI and HTML5
Central C SQL Azure Federations Deep Dive
Meeting Room 5 Sounds like a Windows Phone Application
Meeting Room 6 Building Video Application on Windows 8 with Windows Azure Media Service
Meeting Room 7 Whats in Windows Server 2012 for SQL Server
Meeting Room 8 Maximise your Hyper-V Deployment with HP Reference Architecture
Meeting Room 9 Office 365 Compliance and DLP
TLC Theatre 1 Windows Server 2012 - Using Dynamic Access Control to Automatically and Centrally Secure Data in Windows
TLC Theatre 2 Designing Windows 8 HTML apps in Blend
TLC Theatre 3 Breakthrough Insights using Power View
11:30 AM -> 12:45 PM
Arena 1A WS2012 DirectAccess: Your Next Gen Remote Access Experience
Arena 1B Planning for Failure in Cloud Applications
Central A LightSwitch 2012 - Even Faster
Central C Windows 8: Windows To Go Overview
Meeting Room 5 Developing for Key Windows Phone Consumer Scenarios
Meeting Room 6 System Center 2012 Application Management
Meeting Room 7 Application Hosting Models in SharePoint 2013
Meeting Room 8 Scalable SQL Server Design with just a Credit Card
Meeting Room 9 The New Exchange - Archiving and Compliance
TLC Theatre 1 Getting Started with Microsoft Deployment Toolkit (MDT) 2012
TLC Theatre 2 Exploring Windows Azure Storage
TLC Theatre 3 Using Archiving and eDiscovery in Exchange Server 2013
1:45 PM -> 3:00 PM
Arena 1A WS2012 Dynamic Access Control Overview and Tips
Arena 1B Office 365 Deployment Lessons from the Field: The Good, the Bad and the Ugly
Central A SC2012 Infrastructure Components Management
Central C Porting the e5 solution to Azure IaaS roles
Meeting Room 5 Windows 8 Games and High Performance Development
Meeting Room 6 Windows Phone Marketplace - Satisfy More Customers and Make Money
Meeting Room 7 Tips & Tricks for Creating Custom Management Packs for System Center Operations Manager
Meeting Room 8 Lync 2013 and Enterprise Networking
3:00 PM -> 3:30 PM
Arena 2 TechEd Closing Presentation
<Query Kind="Program">
<Connection>
<ID>a4105d7e-13eb-49e8-b234-4efcf3e35f39</ID>
<Persist>true</Persist>
<Driver>AstoriaAuto</Driver>
<Server>http://odata.msteched.com/teau12/sessions.svc</Server>
</Connection>
</Query>
void Main()
{
var blocks = new [] {
new Block("12am", "8:15am"), // For Completeness
new Block("8:15am", "9:40am"),
new Block("9:45am", "11:00am"),
new Block("11:00am", "11:30am"),
new Block("11:30am", "12:45pm"),
new Block("12:45pm", "1:45pm"),
new Block("1:45pm", "3:00pm"),
new Block("3:00pm", "3:30pm"),
new Block("3:30pm", "4:45pm"),
new Block("5pm", "6:15pm"),
new Block("6:30pm", "7:45pm"),
new Block("7:45pm", "12am") // For completeness
};
var schedule = (from s in Sessions.Cache("Sessions").ToList()
group s by s.Date into g
orderby g.Key.Value.Date
select new {
Day = g.Key.Value.DayOfWeek,
Blocks = (
from bl in (from s in g
from b in blocks
where b.Contains(s.StartTime)
select new { s, b })
group bl by bl.b into cl
orderby cl.Key.Start
select new {
Block = cl.Key.ToString(),
Sessions = cl.Select(x => new {
Start = x.s.StartTime.Value,
End = x.s.EndTime.Value,
x.s.Room,
x.s.Title,
x.s.Abstract
}).OrderBy(x => x.Start)
.ThenByDescending(x => x.End)
.ThenBy (x => x.Room)
})
}).Dump(true);
foreach(var day in schedule)
{
Console.WriteLine ();
Console.WriteLine ();
Console.WriteLine ();
Console.WriteLine (day.Day);
Console.WriteLine ("---------------");
foreach(var block in day.Blocks)
{
Console.WriteLine (block.Block);
DateTime prevStart = block.Sessions.First().Start;
DateTime prevEnd = block.Sessions.First().End;
foreach(var session in block.Sessions)
{
if(prevStart == session.Start && prevEnd == session.End)
Console.WriteLine("{0,19} {2,-20} {1}", " ", session.Title, session.Room);
else
Console.WriteLine("{0,9} {1,9} {3,-20} {2}", session.Start.ToShortTimeString(), session.End.ToShortTimeString(), session.Title, session.Room);
prevStart = session.Start;
prevEnd = session.End;
}
Console.WriteLine ();
}
}
}
class Block
{
public Block(string start, string end)
{
Start = DateTime.Parse(start).TimeOfDay;
End = DateTime.Parse(end).TimeOfDay;
}
public TimeSpan Start { get; set; }
public TimeSpan End { get; set; }
public bool Contains(DateTime? dt)
{
if(dt.HasValue == false)
return false;
return dt.Value.TimeOfDay >= Start && dt.Value.TimeOfDay < End;
}
public override string ToString()
{
return DateTime.Today.Add(Start).ToShortTimeString() + " -> " + DateTime.Today.Add(End).ToShortTimeString();
}
}
@mikeminutillo
Copy link
Author

The Sample output will show up on the Results tab in the Results window but you'll also get a nice grid view that you can drill down in to. Now you can see which sessions are competing for your attention!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment