diff --git a/BeyondResponsiveDesign.Menus/.idea/scopes/scope_settings.xml b/BeyondResponsiveDesign.Menus/.idea/scopes/scope_settings.xml new file mode 100644 index 0000000..922003b --- /dev/null +++ b/BeyondResponsiveDesign.Menus/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/BeyondResponsiveDesign.Menus.csproj b/BeyondResponsiveDesign.Menus/BeyondResponsiveDesign.Menus.csproj deleted file mode 100644 index 330684a..0000000 --- a/BeyondResponsiveDesign.Menus/BeyondResponsiveDesign.Menus.csproj +++ /dev/null @@ -1,326 +0,0 @@ - - - - - Debug - AnyCPU - - - 2.0 - {54C61F9C-7B4B-4071-A7FB-5A9FE4D9777D} - {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} - Library - Properties - BeyondResponsiveDesign.Menus - BeyondResponsiveDesign.Menus - v4.5 - true - - - - - - - true - full - false - bin\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\ - TRACE - prompt - 4 - - - - - ..\packages\Microsoft.Owin.3.0.0-rc2\lib\net45\Microsoft.Owin.dll - - - ..\packages\Microsoft.Owin.FileSystems.3.0.0-rc2\lib\net45\Microsoft.Owin.FileSystems.dll - - - ..\packages\Microsoft.Owin.Host.SystemWeb.3.0.0-rc2\lib\net45\Microsoft.Owin.Host.SystemWeb.dll - - - ..\packages\Microsoft.Owin.StaticFiles.3.0.0-rc2\lib\net45\Microsoft.Owin.StaticFiles.dll - - - ..\packages\Owin.1.0\lib\net40\Owin.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - theme.less - - - theme.css - - - - styles.css - - - - theme.css - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - transforms.less - - - - transforms.css - - - - Web.config - - - Web.config - - - - - - - - - styles.less - - - styles.css - - - transforms.css - - - - - - - - - - 10.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - - - - - - True - True - 64566 - / - http://localhost:64566/ - False - False - - - False - - - - - - \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/Index.html b/BeyondResponsiveDesign.Menus/Index.html deleted file mode 100644 index b59d1c7..0000000 --- a/BeyondResponsiveDesign.Menus/Index.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - Beyond responsive design - UI for the modern web application - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - -
-
- - - diff --git a/BeyondResponsiveDesign.Menus/Properties/AssemblyInfo.cs b/BeyondResponsiveDesign.Menus/Properties/AssemblyInfo.cs deleted file mode 100644 index 0030e5e..0000000 --- a/BeyondResponsiveDesign.Menus/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("BeyondResponsiveDesign.Menus")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("BeyondResponsiveDesign.Menus")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("8c64d4fb-bc21-4195-bd4b-20a31fdb48f1")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/BeyondResponsiveDesign.Menus/Settings.StyleCop b/BeyondResponsiveDesign.Menus/Settings.StyleCop deleted file mode 100644 index b49c38e..0000000 --- a/BeyondResponsiveDesign.Menus/Settings.StyleCop +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - False - - - - - - - \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/Startup.cs b/BeyondResponsiveDesign.Menus/Startup.cs deleted file mode 100644 index e727bb3..0000000 --- a/BeyondResponsiveDesign.Menus/Startup.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace BeyondResponsiveDesign.Menus -{ - using Owin; - - public class Startup - { - public void Configuration(IAppBuilder app) - { - app.UseStaticFiles(); - } - } -} \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/Web.Debug.config b/BeyondResponsiveDesign.Menus/Web.Debug.config deleted file mode 100644 index 2e302f9..0000000 --- a/BeyondResponsiveDesign.Menus/Web.Debug.config +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/Web.Release.config b/BeyondResponsiveDesign.Menus/Web.Release.config deleted file mode 100644 index c358444..0000000 --- a/BeyondResponsiveDesign.Menus/Web.Release.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/Web.config b/BeyondResponsiveDesign.Menus/Web.config deleted file mode 100644 index b5191c7..0000000 --- a/BeyondResponsiveDesign.Menus/Web.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/agenda.html.modern b/BeyondResponsiveDesign.Menus/agenda.html.modern deleted file mode 100644 index 472e5ba..0000000 --- a/BeyondResponsiveDesign.Menus/agenda.html.modern +++ /dev/null @@ -1,86 +0,0 @@ - -
- -
-
-
-

- - -

-
-
- - - - - - - - -
- - -
-
-
-
- -
- \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/content/accommodation.html b/BeyondResponsiveDesign.Menus/content/accommodation.html deleted file mode 100644 index de574ac..0000000 --- a/BeyondResponsiveDesign.Menus/content/accommodation.html +++ /dev/null @@ -1,141 +0,0 @@ -
-
-
-

- - Recommended -

-
-
-

We would like to encourage attendees and speakers to use the Travelodge on Newmarket Road.

- - - - - - - -
- - -

- Travelodge - Newmarket Road
- 180-190 Newmarket Road
- CB5 8HF -

- -

Tel:0871 984 8484

-
-
-
-
-
-

- - Alternatives -

-
-
-

- If the Newmarket Road Travelodge is full, alternatives include (map): -

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -

- Travelodge - Orchard Park
- Chieftain Way
- Orchard Park
- Kings Hedges Road
- Cambridge
- CB4 2WR -

- -

Tel:0871 984 6481

-
- - -

- Travelodge - Cambridge Central
- Cambridge Leisure Park
- Clifton Way
- Cambridge
- CB1 7DY -

- -

Tel:0871 984 6101

-
- - -

- Premier Inn - Cambridge (A14, J32)
- Ring Fort Road
- Cambridge
- CB4 2GR -

- -

Tel:0871 527 8186

-
- - -

- De Vere University Arms Hotel
- Regent Street
- CB2 1AD -

- -

Tel:01223 273000

-
- - -

- Doubletree by Hilton
- Granta Place
- Mill Lane
- Cambridge
- CB2 1RT -

- -

Tel:01223 259988

-
- - -

- The Varsity Hotel & Spa
- Thompson's Lane (Off Bridge Street)
- Cambridge
- CB5 8AQ -

- -

Tel:01223 306030

-
-
-
-
\ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/content/agenda.json b/BeyondResponsiveDesign.Menus/content/agenda.json deleted file mode 100644 index 08aacc9..0000000 --- a/BeyondResponsiveDesign.Menus/content/agenda.json +++ /dev/null @@ -1,397 +0,0 @@ -{ - "Tracks": [ - { - "Id": 1, - "Identifier": "one", - "Name": "Track 1", - "RoomName": "Room 1" - }, - { - "Id": 2, - "Identifier": "two", - "Name": "Track 2", - "RoomName": "Room 2" - }, - { - "Id": 3, - "Identifier": "three", - "Name": "Track 3", - "RoomName": "Room 3" - }, - { - "Id": 4, - "Identifier": "four", - "Name": "Track 4", - "RoomName": "Room 4" - }, - { - "Id": 5, - "Identifier": "five", - "Name": "Track 5", - "RoomName": "Room 5" - } - ], - "TimeSlots": [ - { - "Id": 1, - "From": "2014-09-13T08:30:00", - "To": "2014-09-13T09:00:00", - "Info": "Registration, Refreshments (sponsored by Compare the Market)" - }, - { - "Id": 2, - "From": "2014-09-13T09:00:00", - "To": "2014-09-13T09:30:00", - "Info": "Welcome & Housekeeping" - }, - { - "Id": 3, - "From": "2014-09-13T09:15:00", - "To": "2014-09-13T10:15:00", - "Info": null - }, - { - "Id": 4, - "From": "2014-09-13T10:15:00", - "To": "2014-09-13T10:35:00", - "Info": "Break" - }, - { - "Id": 5, - "From": "2014-09-13T10:35:00", - "To": "2014-09-13T11:35:00", - "Info": null - }, - { - "Id": 6, - "From": "2014-09-13T11:35:00", - "To": "2014-09-13T11:55:00", - "Info": "Break" - }, - { - "Id": 7, - "From": "2014-09-13T11:55:00", - "To": "2014-09-13T12:55:00", - "Info": null - }, - { - "Id": 8, - "From": "2014-09-13T12:55:00", - "To": "2014-09-13T14:00:00", - "Info": "Lunch, Grok Talks (sponsored by Huddle)" - }, - { - "Id": 9, - "From": "2014-09-13T14:00:00", - "To": "2014-09-13T15:00:00", - "Info": null - }, - { - "Id": 10, - "From": "2014-09-13T15:00:00", - "To": "2014-09-13T15:20:00", - "Info": "Break" - }, - { - "Id": 11, - "From": "2014-09-13T15:20:00", - "To": "2014-09-13T16:20:00", - "Info": null - }, - { - "Id": 12, - "From": "2014-09-13T16:20:00", - "To": "2014-09-13T16:30:00", - "Info": "Break" - }, - { - "Id": 13, - "From": "2014-09-13T16:30:00", - "To": "2014-09-13T17:00:00", - "Info": "Wrap-up" - }, - { - "Id": 14, - "From": "2014-09-13T17:00:00", - "To": "2014-09-13T17:00:00", - "Info": "Close" - } - ], - "Sessions": [ - { - "Id": 1, - "DDDEventId": 1, - "TrackId": 1, - "TimeSlotId": 3, - "Title": "OWIN, Katana and ASP.NET vNext: eliminating the pain of IIS", - "Speaker": "David Simner", - "SpeakerId": 11, - "ShortDescription": "I first encountered OWIN when I added SignalR to a legacy ASP.NET MVC app, and had to write a piece of OWIN middleware to get SignalR to play nicely with our legacy authentication.\r\n\r\nIt was a thoroughly impressive experience, so I built my next greenfield project on OWIN & Katana as a single-page app using static files & Web API, finally ditching IIS for good. The glad tidings continue for Microsoft web developers, with ASP.NET vNext promising even more goodness on the horizon.\r\n\r\nTheres a lot of changes coming for those of us working on the .NET web stack, so this talk will show you what things look like today:\r\n\r\n - What are OWIN & Katana, and why you should care\r\n - What middleware is, as well as why and how you write it\r\n - The advantages this brings for testing\r\n - How Helios lets you host on IIS (if you really *really really* want to)\r\n\r\nAs well as what's changing in ASP.NET vNext:\r\n\r\n - How Roslyn comes into play\r\n - The what and the why of the K runtime\r\n - Why you should care about the Core CLR\r\n - Whats shiny about ASP.NET MVC 6\r\n\r\nTheres a lot to cover, so well move fast. You'll come away knowing why and how you should start using this on your own projects.", - "FullDescription": "I first encountered OWIN when I added SignalR to a legacy ASP.NET MVC app, and had to write a piece of OWIN middleware to get SignalR to play nicely with our legacy authentication.\r\n\r\nIt was a thoroughly impressive experience, so I built my next greenfield project on OWIN & Katana as a single-page app using static files & Web API, finally ditching IIS for good. The glad tidings continue for Microsoft web developers, with ASP.NET vNext promising even more goodness on the horizon.\r\n\r\nTheres a lot of changes coming for those of us working on the .NET web stack, so this talk will show you what things look like today:\r\n\r\n - What are OWIN & Katana, and why you should care\r\n - What middleware is, as well as why and how you write it\r\n - The advantages this brings for testing\r\n - How Helios lets you host on IIS (if you really *really really* want to)\r\n\r\nAs well as what's changing in ASP.NET vNext:\r\n\r\n - How Roslyn comes into play\r\n - The what and the why of the K runtime\r\n - Why you should care about the Core CLR\r\n - Whats shiny about ASP.NET MVC 6\r\n\r\nTheres a lot to cover, so well move fast. You'll come away knowing why and how you should start using this on your own projects." - }, - { - "Id": 2, - "DDDEventId": 1, - "TrackId": 2, - "TimeSlotId": 3, - "Title": "GitHub Automation", - "Speaker": "Forbes Lindesay", - "SpeakerId": 303, - "ShortDescription": "GitHub has one of the best REST APIs you'll ever see. Pretty much any task in GitHub can be automated. Tired of updating code after a feature gets deprecated? Write a bot for that. Need to add the repository field to all your package.json files? Script it. You can even use GitHub as the backend for an entire application to take advantage of its built in collaboration features. This talk will take you through how to write you own GitHub automation code in JavaScript and give you some ideas on how to use your new-found powers for good.", - "FullDescription": "GitHub has one of the best REST APIs you'll ever see. Pretty much any task in GitHub can be automated. Tired of updating code after a feature gets deprecated? Write a bot for that. Need to add the repository field to all your package.json files? Script it. You can even use GitHub as the backend for an entire application to take advantage of its built in collaboration features. This talk will take you through how to write you own GitHub automation code in JavaScript and give you some ideas on how to use your new-found powers for good." - }, - { - "Id": 3, - "DDDEventId": 1, - "TrackId": 3, - "TimeSlotId": 3, - "Title": "An Actor's Life for Me - An introduction to the TPL Dataflow Library and asynchronous programming blocks", - "Speaker": "Liam Westley", - "SpeakerId": 62, - "ShortDescription": "Every version of the .NET Framework has brought improvements to asynchronous and concurrent programming. While .NET 4.0 brought the async/await model which is useful for improving UI responses and server applications, it can sometimes still be tricky to marshal multiple threads within longer processing pipelines.\r\n\r\nThe Dataflow Library consists of a Nuget package built on top of the Task Parallel Library (TPL). It harnesses the actor-based programming model to provide a set of dataflow blocks data structures that buffer and process data, which you can connect together to form custom pipelines with messages passed between the blocks.\r\n\r\nBy using the Dataflow Library you can concentrate on the messages and actions being performed, while the blocks marshal the messages, provide concurrent message processing and buffering as well as supporting cancellation and exception handling.", - "FullDescription": "Every version of the .NET Framework has brought improvements to asynchronous and concurrent programming. While .NET 4.0 brought the async/await model which is useful for improving UI responses and server applications, it can sometimes still be tricky to marshal multiple threads within longer processing pipelines.\r\n\r\nThe Dataflow Library consists of a Nuget package built on top of the Task Parallel Library (TPL). It harnesses the actor-based programming model to provide a set of dataflow blocks data structures that buffer and process data, which you can connect together to form custom pipelines with messages passed between the blocks.\r\n\r\nBy using the Dataflow Library you can concentrate on the messages and actions being performed, while the blocks marshal the messages, provide concurrent message processing and buffering as well as supporting cancellation and exception handling." - }, - { - "Id": 4, - "DDDEventId": 1, - "TrackId": 4, - "TimeSlotId": 3, - "Title": "A Unit Testing Swiss Army Knife", - "Speaker": "Adam Kosinski", - "SpeakerId": 3324, - "ShortDescription": "Putting all of *#IsTddDeadOrNotQuiteYet* discussion aside, there are a lot of things to be said about more technical side of writing tests. Instead of big important questions like \"How\" or \"Why\", I would like to present you a couple of tricks, patterns and libraries that help in what is usually of secondary interest - readability, maintainability.\r\n\r\nThe leading motive for this talk will be approaching our tests like living documentation - and what we can possibly do to make it better.\r\n\r\nSo, have you ever wondered what is Bulider Pattern about? What is all the fuss in being \"fluent\"? Or maybe you wondered if you can effectively integration test you MVC app? I hope you will find useful learning this, and some more. \r\n", - "FullDescription": "Putting all of *#IsTddDeadOrNotQuiteYet* discussion aside, there are a lot of things to be said about more technical side of writing tests. Instead of big important questions like \"How\" or \"Why\", I would like to present you a couple of tricks, patterns and libraries that help in what is usually of secondary interest - readability, maintainability.\r\n\r\nThe leading motive for this talk will be approaching our tests like living documentation - and what we can possibly do to make it better.\r\n\r\nSo, have you ever wondered what is Bulider Pattern about? What is all the fuss in being \"fluent\"? Or maybe you wondered if you can effectively integration test you MVC app? I hope you will find useful learning this, and some more. \r\n" - }, - { - "Id": 5, - "DDDEventId": 1, - "TrackId": 5, - "TimeSlotId": 3, - "Title": "Taking your craft seriously with F#", - "Speaker": "Tomas Petricek", - "SpeakerId": 4332, - "ShortDescription": "Many standard F# libraries and tools, including the compiler itself, are developed as open-source and have a large number of contributors. To successfully build such projects, you need to be serious about your craft. This includes comprehensive testing, using automated build tools, continuous integration, as well as creating great documentation and tutorials. In this talk, I'll talk about what I learned as an open-source F# contributor.\r\n\r\nAlong the way, we'll look a number of risk-free ways of introducing F# into your workflow:\r\n\r\n * How to use F# Interactive for explorative programming and writing code that works on the first try\r\n * Using FAKE - an F# build tool - to automate everything in your build process\r\n * Writing readable unit tests with F# and using FsCheck for property-based testing\r\n * Generating great documentation using F# Formatting tools\r\n\r\nIn summary, this talk is a walkthrough covering some of the software engineering aspects of programming that have been working extremely well for the F# open-source ecosystem. After the talk, you'll have a good idea how to use some of the techniques in your daily job - but you may as well become an F# contributor! \r\n", - "FullDescription": "Many standard F# libraries and tools, including the compiler itself, are developed as open-source and have a large number of contributors. To successfully build such projects, you need to be serious about your craft. This includes comprehensive testing, using automated build tools, continuous integration, as well as creating great documentation and tutorials. In this talk, I'll talk about what I learned as an open-source F# contributor.\r\n\r\nAlong the way, we'll look a number of risk-free ways of introducing F# into your workflow:\r\n\r\n * How to use F# Interactive for explorative programming and writing code that works on the first try\r\n * Using FAKE - an F# build tool - to automate everything in your build process\r\n * Writing readable unit tests with F# and using FsCheck for property-based testing\r\n * Generating great documentation using F# Formatting tools\r\n\r\nIn summary, this talk is a walkthrough covering some of the software engineering aspects of programming that have been working extremely well for the F# open-source ecosystem. After the talk, you'll have a good idea how to use some of the techniques in your daily job - but you may as well become an F# contributor! \r\n" - }, - { - "Id": 6, - "DDDEventId": 1, - "TrackId": 1, - "TimeSlotId": 5, - "Title": "Functional DDD", - "Speaker": "Alessandro Melchiori", - "SpeakerId": 2312, - "ShortDescription": "Very often we approach, more or less unconsciously, DDD's principles only with object-oriented paradigm, without exploring if other \"style\" can live better with aggregates, value objects, commands and domain events. Well, yes: there is 'other' out there... \r\nIn this session we will see how a functional language as F# can lead to a more intuitive and compact implementation of our domains.", - "FullDescription": "Very often we approach, more or less unconsciously, DDD's principles only with object-oriented paradigm, without exploring if other \"style\" can live better with aggregates, value objects, commands and domain events. Well, yes: there is 'other' out there... \r\nIn this session we will see how a functional language as F# can lead to a more intuitive and compact implementation of our domains." - }, - { - "Id": 7, - "DDDEventId": 1, - "TrackId": 2, - "TimeSlotId": 5, - "Title": "Building Skynet: Machine learning for software developers", - "Speaker": "Anthony Brown", - "SpeakerId": 293, - "ShortDescription": "How does Netflix know that I'd like that new movie which just released? How does Google know which ads to serve to me? How do games like Halo and Titanfall put me in game lobbies to create even matches? All these questions are answered with machine learning algorithms. Machine learning can sometimes look difficult. This session aims to break down the barrier to entry for machine learning and show how powerful even the most simple algorithms can be. Expect plenty of sample code to show just how quick and easy these basic algorithms can be.", - "FullDescription": "How does Netflix know that I'd like that new movie which just released? How does Google know which ads to serve to me? How do games like Halo and Titanfall put me in game lobbies to create even matches? All these questions are answered with machine learning algorithms. Machine learning can sometimes look difficult. This session aims to break down the barrier to entry for machine learning and show how powerful even the most simple algorithms can be. Expect plenty of sample code to show just how quick and easy these basic algorithms can be." - }, - { - "Id": 8, - "DDDEventId": 1, - "TrackId": 3, - "TimeSlotId": 5, - "Title": "Embracing DevOps at JUST EAT, within a Microsoft platform", - "Speaker": "Peter Mounce", - "SpeakerId": 3323, - "ShortDescription": "JUST EAT changed its culture towards embracing DevOps principles, and heavily leveraged AWS to achieve it.\r\n\r\nWe're a successful online takeaway ecommerce website running on a Microsoft-based platform.\r\n\r\nCome learn how we:\r\n\r\n - re-organised our teams and our platform to loosely couple them\r\n - re-organised our architecture to be more modular\r\n - made it possible for developers to operate their code in production directly, starting with shoot-it-in-the-head debugging\r\n - made it possible for developers to continuously ship changes\r\n - eliminated most differences between production and qa environments\r\n - became more resilient as a happy by-product", - "FullDescription": "JUST EAT changed its culture towards embracing DevOps principles, and heavily leveraged AWS to achieve it.\r\n\r\nWe're a successful online takeaway ecommerce website running on a Microsoft-based platform.\r\n\r\nCome learn how we:\r\n\r\n - re-organised our teams and our platform to loosely couple them\r\n - re-organised our architecture to be more modular\r\n - made it possible for developers to operate their code in production directly, starting with shoot-it-in-the-head debugging\r\n - made it possible for developers to continuously ship changes\r\n - eliminated most differences between production and qa environments\r\n - became more resilient as a happy by-product" - }, - { - "Id": 9, - "DDDEventId": 1, - "TrackId": 4, - "TimeSlotId": 5, - "Title": "Super charging your JavaScript development experience", - "Speaker": "Chris Canal", - "SpeakerId": 302, - "ShortDescription": "With the release of V8 and subsequently NodeJs, JavaScript has started to grow up. In this session we will look at how you can super charge your JavaScript development lifecycle and deliver better written, cleaner and more coherent JavaScript with and without VisualStudio\r\n\r\nWe will look at the many awesome frameworks for infrastructural support when developing JavaScript applications like Yeoman, Gulp, grunt, Browserfy and a few other handy libraries", - "FullDescription": "With the release of V8 and subsequently NodeJs, JavaScript has started to grow up. In this session we will look at how you can super charge your JavaScript development lifecycle and deliver better written, cleaner and more coherent JavaScript with and without VisualStudio\r\n\r\nWe will look at the many awesome frameworks for infrastructural support when developing JavaScript applications like Yeoman, Gulp, grunt, Browserfy and a few other handy libraries" - }, - { - "Id": 10, - "DDDEventId": 1, - "TrackId": 5, - "TimeSlotId": 5, - "Title": "Beyond responsive design - UI for the modern web application", - "Speaker": "Pete Smith", - "SpeakerId": 1313, - "ShortDescription": "Applications written for the modern web are being consumed not just on desktop browsers, but also on a myriad of other devices... even watches and glasses. If you design your application with a pc screen in mind, at worst you're either cutting your userbase in half or setting yourself up for an expensive redesign.\r\n\r\nIn this talk I'll introduce you to some modern web design constructs, and the technologies that bring them to life. Learn how to create apps that work just as well on phone, mobile and desktop with no extra effort, and without restrictive layout frameworks. Who knows... you may even even see things that begin to rival native apps!", - "FullDescription": "Applications written for the modern web are being consumed not just on desktop browsers, but also on a myriad of other devices... even watches and glasses. If you design your application with a pc screen in mind, at worst you're either cutting your userbase in half or setting yourself up for an expensive redesign.\r\n\r\nIn this talk I'll introduce you to some modern web design constructs, and the technologies that bring them to life. Learn how to create apps that work just as well on phone, mobile and desktop with no extra effort, and without restrictive layout frameworks. Who knows... you may even even see things that begin to rival native apps!" - }, - { - "Id": 11, - "DDDEventId": 1, - "TrackId": 1, - "TimeSlotId": 7, - "Title": "So you want to be a Tech Lead? 10 things you need to do to succeed.", - "Speaker": "Joel Hammond-Turner", - "SpeakerId": 23, - "ShortDescription": "\"Tech Lead\" is an amorphous job title - is it all about the technology, or all about leadership? What should the balance really be?\r\n\r\nAnd it can also be a complex and thankless role too - particularly if you find yourself becoming the go-to guy (or gal) for everyone from the intern to the product manager.\r\n\r\nIn this talk I'll cover (at least) 10 things that I think are essential to success in both areas, including how to address technical debt, herd your PMs and make sure your development team has a steady flow of work (and beer, pizza or other \"motivationals\").\r\n", - "FullDescription": "\"Tech Lead\" is an amorphous job title - is it all about the technology, or all about leadership? What should the balance really be?\r\n\r\nAnd it can also be a complex and thankless role too - particularly if you find yourself becoming the go-to guy (or gal) for everyone from the intern to the product manager.\r\n\r\nIn this talk I'll cover (at least) 10 things that I think are essential to success in both areas, including how to address technical debt, herd your PMs and make sure your development team has a steady flow of work (and beer, pizza or other \"motivationals\").\r\n" - }, - { - "Id": 12, - "DDDEventId": 1, - "TrackId": 2, - "TimeSlotId": 7, - "Title": "Decoupling from ASP.NET - Hexagonal Architectures in .NET", - "Speaker": "Ian Cooper", - "SpeakerId": 2311, - "ShortDescription": "The term 'hexagonal architecture' has come back and forth in popularity since Alistair Cockburn first mooted it, with the Rails community's recent soul searching over its importance or threat just the latest. So what is a hexagonal architecture, why might you want to use one, and why is the 'Rails just falls away' (https://www.youtube.com/watch?v=tg5RFeSfBM4) threat so discomforting to web framework builders. How can we make 'ASP.NET just fall away'.\r\n\r\nIn this presentation we will look at the Layered Architectural style - when we would want to use one (as opposed to the alternatives) and when it is appropriate how to implement one. We will look at how to implement the Ports & Adapters (Hexagonal's 'proper' name) style, explaining what the different layers are. \r\n\r\nWe will look at the value the command pattern for implementing our ports , explain why Netflix uses it in Hystrix for reliability. On the way we will discuss Retry, Timeout and Circuit Breaker and explain how we can do better than Hystrix with a Command Dispatcher and Command Processor.\r\n\r\nWe'll show code throughout, including a look at the Paramore. Brighter framework, an OSS version of the platform we use at Huddle to build this kind of architecture.\r\n\r\nAs a bonus we will round off showing you how easy it is go from sync to async with this approach.\r\n", - "FullDescription": "The term 'hexagonal architecture' has come back and forth in popularity since Alistair Cockburn first mooted it, with the Rails community's recent soul searching over its importance or threat just the latest. So what is a hexagonal architecture, why might you want to use one, and why is the 'Rails just falls away' (https://www.youtube.com/watch?v=tg5RFeSfBM4) threat so discomforting to web framework builders. How can we make 'ASP.NET just fall away'.\r\n\r\nIn this presentation we will look at the Layered Architectural style - when we would want to use one (as opposed to the alternatives) and when it is appropriate how to implement one. We will look at how to implement the Ports & Adapters (Hexagonal's 'proper' name) style, explaining what the different layers are. \r\n\r\nWe will look at the value the command pattern for implementing our ports , explain why Netflix uses it in Hystrix for reliability. On the way we will discuss Retry, Timeout and Circuit Breaker and explain how we can do better than Hystrix with a Command Dispatcher and Command Processor.\r\n\r\nWe'll show code throughout, including a look at the Paramore. Brighter framework, an OSS version of the platform we use at Huddle to build this kind of architecture.\r\n\r\nAs a bonus we will round off showing you how easy it is go from sync to async with this approach.\r\n" - }, - { - "Id": 13, - "DDDEventId": 1, - "TrackId": 3, - "TimeSlotId": 7, - "Title": "Performance is a Feature!", - "Speaker": "Matt Warren", - "SpeakerId": 2316, - "ShortDescription": "Starting with the premise that *\"Performance is a Feature\"*, this session will look at how to measure, what to measure and how get the best performance from your .NET code. We will look at real-world examples from the Roslyn code-base, StackOverflow and my personal experience of trying (but ultimately failing) to break a world record.", - "FullDescription": "Starting with the premise that *\"Performance is a Feature\"*, this session will look at how to measure, what to measure and how get the best performance from your .NET code. We will look at real-world examples from the Roslyn code-base, StackOverflow and my personal experience of trying (but ultimately failing) to break a world record." - }, - { - "Id": 14, - "DDDEventId": 1, - "TrackId": 4, - "TimeSlotId": 7, - "Title": "All your types are belong to us!", - "Speaker": "Phillip Trelford", - "SpeakerId": 34, - "ShortDescription": "Big Data tasks typically require acquiring and analysing data from a wide variety of data sources, visualizing the data and applying a barrage of statistical algorithms. This talk will show how this can be accomplished in Visual Studio on Windows or Xamarin Studio on Mac and Linux using F#'s REPL and Type Providers. \r\nType Providers give typed access to a wide range of data sources from CSV, JSON and XML to SQL, OData and Web Services, instantly without a code generation step. The Type Provider mechanism can also be used to analyse data with direct access to statistical packages like R and MATLAB as well as all the existing .Net libraries.\r\nFinally visualizations can be generated using F#'s desktop charting libraries, or with ASP.Net and even JavaScript libraries like HighCharts.\r\nExpect a sprinkling of anecdotes drawn from experiences working on large machine learning systems at Microsoft, and plenty of live demos.", - "FullDescription": "Big Data tasks typically require acquiring and analysing data from a wide variety of data sources, visualizing the data and applying a barrage of statistical algorithms. This talk will show how this can be accomplished in Visual Studio on Windows or Xamarin Studio on Mac and Linux using F#'s REPL and Type Providers. \r\nType Providers give typed access to a wide range of data sources from CSV, JSON and XML to SQL, OData and Web Services, instantly without a code generation step. The Type Provider mechanism can also be used to analyse data with direct access to statistical packages like R and MATLAB as well as all the existing .Net libraries.\r\nFinally visualizations can be generated using F#'s desktop charting libraries, or with ASP.Net and even JavaScript libraries like HighCharts.\r\nExpect a sprinkling of anecdotes drawn from experiences working on large machine learning systems at Microsoft, and plenty of live demos." - }, - { - "Id": 15, - "DDDEventId": 1, - "TrackId": 5, - "TimeSlotId": 7, - "Title": "DDD: Disney Driven Development", - "Speaker": "Melinda Seckington", - "SpeakerId": 3320, - "ShortDescription": "Disney parks are built using their Four Keys of The Kingdom: Safety, Courtesy, Show and Efficiency. This talk will show examples of how Disney have applied these four keys everywhere in their parks and how we can extend those principles to our work as web developers.", - "FullDescription": "Disney parks are built using their Four Keys of The Kingdom: Safety, Courtesy, Show and Efficiency. This talk will show examples of how Disney have applied these four keys everywhere in their parks and how we can extend those principles to our work as web developers." - }, - { - "Id": 16, - "DDDEventId": 1, - "TrackId": 1, - "TimeSlotId": 9, - "Title": "The vNext Big Thing", - "Speaker": "Mark Rendle", - "SpeakerId": 48, - "ShortDescription": "At TechEd this year, various Scotts and a David announced ASP.NET vNext, the biggest thing to happen to the Microsoft web developers story since ASP.NET 1.0.\r\n\r\nIt's a moving target, so I can't say exactly what the talk will include, but I can guarantee it will cover:\r\n\r\n- The Core CLR, the K Runtime, and the project.json file\r\n- How Roslyn fits into the story\r\n- What (and why) OWIN is, and how to write middleware for it\r\n- The merging of MVC and Web API into a single, streamlined, uber-framework\r\n- Why I'm never going to finish Simple.Web\r\n\r\nLook, it's all awesome. Just come and see.", - "FullDescription": "At TechEd this year, various Scotts and a David announced ASP.NET vNext, the biggest thing to happen to the Microsoft web developers story since ASP.NET 1.0.\r\n\r\nIt's a moving target, so I can't say exactly what the talk will include, but I can guarantee it will cover:\r\n\r\n- The Core CLR, the K Runtime, and the project.json file\r\n- How Roslyn fits into the story\r\n- What (and why) OWIN is, and how to write middleware for it\r\n- The merging of MVC and Web API into a single, streamlined, uber-framework\r\n- Why I'm never going to finish Simple.Web\r\n\r\nLook, it's all awesome. Just come and see." - }, - { - "Id": 17, - "DDDEventId": 1, - "TrackId": 2, - "TimeSlotId": 9, - "Title": "NServiceBus: introduction to a message based distributed architecture", - "Speaker": "Mauro Servienti", - "SpeakerId": 309, - "ShortDescription": "SOA and distributed had been buzzwords for a long time, a message based architecture that embrace the SOA principles is the real solution to a scalable and distributed environment where HA or/and temporal decoupling are a must.\r\nIn this session we will introduce messaging concepts and see how NServiceBus, a powerfull toolkit to rule all the aspects of a messaging transport, can dramatically simplify the development process.", - "FullDescription": "SOA and distributed had been buzzwords for a long time, a message based architecture that embrace the SOA principles is the real solution to a scalable and distributed environment where HA or/and temporal decoupling are a must.\r\nIn this session we will introduce messaging concepts and see how NServiceBus, a powerfull toolkit to rule all the aspects of a messaging transport, can dramatically simplify the development process." - }, - { - "Id": 18, - "DDDEventId": 1, - "TrackId": 3, - "TimeSlotId": 9, - "Title": "Keeping it responsive - cross-platform MVVM with ReactiveUI", - "Speaker": "Sam Hogarth", - "SpeakerId": 2314, - "ShortDescription": "Building an awesome user interface is hard work. You've got the complexities of real life to deal with - handling user inputs, dealing with slow network connections and managing background workers. There's also this testing thing that people keep going on about!\r\n\r\nWe need a way of handling the real world, whilst behaving in a predictable and responsive manner. Enter ReactiveUI, a fusion of MVVM and the Reactive Extensions (Rx) for .NET applications.\r\n\r\nIn this session I'll introduce ReactiveUI, show you some tips and tricks, discuss the benefits and tradeoffs of the framework and show how it can be used as a solid foundation for building cross-platform .NET applications.\r\n\r\n", - "FullDescription": "Building an awesome user interface is hard work. You've got the complexities of real life to deal with - handling user inputs, dealing with slow network connections and managing background workers. There's also this testing thing that people keep going on about!\r\n\r\nWe need a way of handling the real world, whilst behaving in a predictable and responsive manner. Enter ReactiveUI, a fusion of MVVM and the Reactive Extensions (Rx) for .NET applications.\r\n\r\nIn this session I'll introduce ReactiveUI, show you some tips and tricks, discuss the benefits and tradeoffs of the framework and show how it can be used as a solid foundation for building cross-platform .NET applications.\r\n\r\n" - }, - { - "Id": 19, - "DDDEventId": 1, - "TrackId": 4, - "TimeSlotId": 9, - "Title": "A Brief Introduction to Making your own (Internet of Things) Thing.", - "Speaker": "Stephen Harrison", - "SpeakerId": 4328, - "ShortDescription": "The Internet of Things is exploding and it's a great time to join in: more and more devices like the Arduino, Netduino and Gadgeteer are becoming available. The question is, how do I get started?\r\n\r\nWe will look at what is available in terms of popular hardware for building your Thing, and a demo of how to develop for the Arduino, followed by an introduction to the Gadgeteer and .Net Micro Framework, hopefully finishing up with a fairly simple but connected Gadgeteer based Thing (Wifi Allowing!).\r\n", - "FullDescription": "The Internet of Things is exploding and it's a great time to join in: more and more devices like the Arduino, Netduino and Gadgeteer are becoming available. The question is, how do I get started?\r\n\r\nWe will look at what is available in terms of popular hardware for building your Thing, and a demo of how to develop for the Arduino, followed by an introduction to the Gadgeteer and .Net Micro Framework, hopefully finishing up with a fairly simple but connected Gadgeteer based Thing (Wifi Allowing!).\r\n" - }, - { - "Id": 20, - "DDDEventId": 1, - "TrackId": 5, - "TimeSlotId": 9, - "Title": "Data Science for Fun and Profit", - "Speaker": "Gary Short", - "SpeakerId": 30, - "ShortDescription": "Make no mistake, data science can be hard, but it can also be fun. In this session I'll introduce you to Classic and Bayesian Statistics and Machine Learning, all through the medium of predicting horse racing results. We'll explore a number of techniques for making such predictions and we'll finish by combining them into a powerful \"mixed model\" prediction engine, that's sure to pick the next big winner. This session won't only improve your knowledge, it'll improve your bank balance too! Note: probably won't do the latter though. :-)", - "FullDescription": "Make no mistake, data science can be hard, but it can also be fun. In this session I'll introduce you to Classic and Bayesian Statistics and Machine Learning, all through the medium of predicting horse racing results. We'll explore a number of techniques for making such predictions and we'll finish by combining them into a powerful \"mixed model\" prediction engine, that's sure to pick the next big winner. This session won't only improve your knowledge, it'll improve your bank balance too! Note: probably won't do the latter though. :-)" - }, - { - "Id": 21, - "DDDEventId": 1, - "TrackId": 1, - "TimeSlotId": 11, - "Title": "Architecture - why so serious?", - "Speaker": "Barbara Fusinska", - "SpeakerId": 3322, - "ShortDescription": "What comes to developer's mind when he hears the phrase 'software architecture'? Is it clean design or rather heavy and unusable overhead? Nowadays there are many approaches to follow while building the software, but they often sound to pompous and lead to overcomplicating things. Programmers refuse to consider them, when all they need is making some simple functionalities work. They hear the word architecture and they get uptight in seconds. And that's not how it's supposed to be. Good practices should help, not introduce unnecessary problems and disturbance.\r\n\r\nWhat if thinking about architecture doesn't make the software too heavy and introduces actual value? What if some of its concepts could be used easily, even in non complex projects, simplifying the process of creation at the same time?\r\n\r\nThe talk is to illustrate how architecture is not about ivory towers, but actual coding, and on what those coding architects should do. It will center on showing some habits developed through years of building different kinds of software systems. Using them can help reducing work, while focusing on what's most important - getting the job done that brings concrete value to the client. It will be demonstrated by real (but simple in the same time) code and fully functional web application. One that can be used as an outline for further usage, as patterns to apply. Presented examples will highlight power of more abstract approach, but in the same time will consider hands on code.", - "FullDescription": "What comes to developer's mind when he hears the phrase 'software architecture'? Is it clean design or rather heavy and unusable overhead? Nowadays there are many approaches to follow while building the software, but they often sound to pompous and lead to overcomplicating things. Programmers refuse to consider them, when all they need is making some simple functionalities work. They hear the word architecture and they get uptight in seconds. And that's not how it's supposed to be. Good practices should help, not introduce unnecessary problems and disturbance.\r\n\r\nWhat if thinking about architecture doesn't make the software too heavy and introduces actual value? What if some of its concepts could be used easily, even in non complex projects, simplifying the process of creation at the same time?\r\n\r\nThe talk is to illustrate how architecture is not about ivory towers, but actual coding, and on what those coding architects should do. It will center on showing some habits developed through years of building different kinds of software systems. Using them can help reducing work, while focusing on what's most important - getting the job done that brings concrete value to the client. It will be demonstrated by real (but simple in the same time) code and fully functional web application. One that can be used as an outline for further usage, as patterns to apply. Presented examples will highlight power of more abstract approach, but in the same time will consider hands on code." - }, - { - "Id": 22, - "DDDEventId": 1, - "TrackId": 2, - "TimeSlotId": 11, - "Title": "What Developers Need To Know About Visual Design ", - "Speaker": "Ben Hall", - "SpeakerId": 3319, - "ShortDescription": "The world has become a very design sensitive meaning its now even more critical that developers build products that look amazing. Sadly frameworks like twitters bootstrap can only take us so far and even with designers on the team developers need to understand the key principals of good design to make effective decisions.\r\n\r\nIn this session Ben will explore the five key topics around design that can make or break an application and website. The key topics are Layout and the golden ratio, Typography, Imaginary, Colours and User Feedback. With these topics attendees will come away with a deeper understanding about why certain elements look good while others dont and what developers really should know about design. It will explore the cognitive science and research to move beyond personal options about design to data and research driven insights.\r\n", - "FullDescription": "The world has become a very design sensitive meaning its now even more critical that developers build products that look amazing. Sadly frameworks like twitters bootstrap can only take us so far and even with designers on the team developers need to understand the key principals of good design to make effective decisions.\r\n\r\nIn this session Ben will explore the five key topics around design that can make or break an application and website. The key topics are Layout and the golden ratio, Typography, Imaginary, Colours and User Feedback. With these topics attendees will come away with a deeper understanding about why certain elements look good while others dont and what developers really should know about design. It will explore the cognitive science and research to move beyond personal options about design to data and research driven insights.\r\n" - }, - { - "Id": 23, - "DDDEventId": 1, - "TrackId": 3, - "TimeSlotId": 11, - "Title": "Using F# for Line of Business Applications", - "Speaker": "Ian Russell", - "SpeakerId": 53, - "ShortDescription": "C# is a great language for developing Line of Business applications but F# is even better! If you want to write code that expresses your requirements clearly, ensures correctness and supports rapid, and fun, development then guess what, F# does all that and more!\r\n\r\nNo prior experience of F# is necessary for this session but be warned, once you've seen what F# can do, you won't want to go back to C#!", - "FullDescription": "C# is a great language for developing Line of Business applications but F# is even better! If you want to write code that expresses your requirements clearly, ensures correctness and supports rapid, and fun, development then guess what, F# does all that and more!\r\n\r\nNo prior experience of F# is necessary for this session but be warned, once you've seen what F# can do, you won't want to go back to C#!" - }, - { - "Id": 24, - "DDDEventId": 1, - "TrackId": 4, - "TimeSlotId": 11, - "Title": "Scream if you want to go faster: speed up .NET and SQL Server web apps", - "Speaker": "Bart Read", - "SpeakerId": 5553, - "ShortDescription": "We all know that websites need to be fast. But how do you juice up creaking web apps that have been around for a while without deploying the thermonuclear option (i.e., the costly and much-maligned ground-up rewrite)?\r\n\r\nUnfortunately this can still prove tricky, especially when the issues lie in the database layer. Help is at hand though: Ill show you the techniques that will help you hunt down performance problems in your database, and relate them back to your .NET code. But that's only half the story: we'll also talk about the strategies you can use to fix them from the relatively simple, to the much more involved.\r\n\r\nYou should leave with an arsenal of optimisation tricks for every occasion!", - "FullDescription": "We all know that websites need to be fast. But how do you juice up creaking web apps that have been around for a while without deploying the thermonuclear option (i.e., the costly and much-maligned ground-up rewrite)?\r\n\r\nUnfortunately this can still prove tricky, especially when the issues lie in the database layer. Help is at hand though: Ill show you the techniques that will help you hunt down performance problems in your database, and relate them back to your .NET code. But that's only half the story: we'll also talk about the strategies you can use to fix them from the relatively simple, to the much more involved.\r\n\r\nYou should leave with an arsenal of optimisation tricks for every occasion!" - }, - { - "Id": 25, - "DDDEventId": 1, - "TrackId": 5, - "TimeSlotId": 11, - "Title": "Build Great Software for the Enterprise and Love it", - "Speaker": "Kendall Miller", - "SpeakerId": 4331, - "ShortDescription": "You want to write great code - taking the time to create an application that is cleanly written, easy to test, performs well, and delights users. Your company wants it done yesterday. **How do you get the time and budget you need to build it right instead of just pounding out the next feature**?\r\n\r\nIn this talk, we'll cover how to:\r\n\r\n 1. Never skip coded tests again.\r\n 2. Communicate security risks effectively so your business isn't the next Target.\r\n 3. Pay down technical debt while delivering the features your users are waiting for.\r\n\r\nSound incredible? Come to the talk to find out how you can go home happy with the work you've done each day, even in an enterprise.", - "FullDescription": "You want to write great code - taking the time to create an application that is cleanly written, easy to test, performs well, and delights users. Your company wants it done yesterday. **How do you get the time and budget you need to build it right instead of just pounding out the next feature**?\r\n\r\nIn this talk, we'll cover how to:\r\n\r\n 1. Never skip coded tests again.\r\n 2. Communicate security risks effectively so your business isn't the next Target.\r\n 3. Pay down technical debt while delivering the features your users are waiting for.\r\n\r\nSound incredible? Come to the talk to find out how you can go home happy with the work you've done each day, even in an enterprise." - } - ] -} diff --git a/BeyondResponsiveDesign.Menus/content/contact.html b/BeyondResponsiveDesign.Menus/content/contact.html deleted file mode 100644 index 0bfdede..0000000 --- a/BeyondResponsiveDesign.Menus/content/contact.html +++ /dev/null @@ -1,20 +0,0 @@ -
-
-
-

- - Contacting DDD East Anglia -

-
-
-

- You can follow DDD East Anglia on Twitter. -

-

- You can email us at organisers@dddeastanglia.com. -

- You can follow us on Lanyrd. -

-
-
-
diff --git a/BeyondResponsiveDesign.Menus/content/home.html b/BeyondResponsiveDesign.Menus/content/home.html deleted file mode 100644 index ecf4810..0000000 --- a/BeyondResponsiveDesign.Menus/content/home.html +++ /dev/null @@ -1,74 +0,0 @@ -
-
-
-

- - Welcome to DDD East Anglia! -

-
-
-

- DDD East Anglia will be returning to Cambridge on Saturday 13 September 2014 at Cambridge University's West Road Concert Hall. - Like all DDD community events, DDD East Anglia is free - to attend, funded entirely through the generosity of our sponsors. -

-

- Take a look around the site to whet your appetite for what will be a fantastic event! - Why not follow us on Twitter to get all the latest news and updates? -

-
-
-
-
-

- - About DDD East Anglia -

-
-
-

- Developer! Developer! Developer! (DDD) East Anglia is the newest event in the popular series of - Developer Days events for the UK .NET Community that have run since May 2005. Although each DDD - event has its own particular "flavour", they remain immensely popular and enjoyable, regularly - attracting 200-300 attendees and often selling out within minutes. -

-

- DDD events were started on the following five principles, which we intend to adhere to in their spirit: -

-
    -
  1. For the community by the community
  2. -
  3. Free to attend
  4. -
  5. Held on a Saturday or non-work day
  6. -
  7. No Microsoft speakers (with some exceptions)
  8. -
  9. Grow the local speaker community
  10. -
-

- Sessions are submitted by members of the community and selected by attendees. Microsoft speakers are generally not permitted - to speak at DDD events, but the exceptions to this rule are Microsoft employees who are active members - of the UK .NET community. In short, these are sessions crafted by developers for - developers, with no sales pitches allowed! -

-
-
-
-
-

- - How is the agenda decided? -

-
-
-

- DDD events are unique in that the conference is made by its attendees. - Sessions are submitted by members of the UK .NET developer community (i.e. you can submit a session - if you want to), and are voted on by prospective attendees (i.e. you) before registration opens. The - organisers of DDD events use the results of the voting to determine which sessions are most popular, - and so which will make for the best event for attendees. -

-

- The results of voting are weighted to uphold the five principles of DDD events, so we will favour new - and local speakers over established speakers or speakers from a more remote geographical location. -

-
-
-
\ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/content/sessions.html b/BeyondResponsiveDesign.Menus/content/sessions.html deleted file mode 100644 index 3c68a21..0000000 --- a/BeyondResponsiveDesign.Menus/content/sessions.html +++ /dev/null @@ -1,13 +0,0 @@ -
-
-
-
-

- - Welcome to DDD East Anglia! -

-
-
-
-
-
\ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/content/speakers.json b/BeyondResponsiveDesign.Menus/content/speakers.json deleted file mode 100644 index e4183e8..0000000 --- a/BeyondResponsiveDesign.Menus/content/speakers.json +++ /dev/null @@ -1,497 +0,0 @@ -[ - { - "Id":3324, - "Name":" Adam Kosinski", - "Bio":"

Journeyman, developer, craftsman, currently coding C# in London. Interested in just about anything, excelling at discussions over code, beer and pizza.

\n", - "Links":[ - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/adk0s" - } - ], - "Sessions":[ - { - "Id":2117, - "Title":"A Unit Testing Swiss Army Knife", - "Abstract":"\r\n

Putting all of #IsTddDeadOrNotQuiteYet discussion aside, there are a lot of things to be said about more technical side of writing tests. Instead of big important questions like \"How\" or \"Why\", I would like to present you a couple of tricks, patterns and libraries that help in what is usually of secondary interest - readability, maintainability.

\n\n

The leading motive for this talk will be approaching our tests like living documentation - and what we can possibly do to make it better.

\n\n

So, have you ever wondered what is Bulider Pattern about? What is all the fuss in being \"fluent\"? Or maybe you wondered if you can effectively integration test you MVC app? I hope you will find useful learning this, and some more.

\n\r\n" - } - ] - }, - { - "Id":2312, - "Name":" Alessandro Melchiori", - "Bio":"

Software craftsman, husband, father, ex-sportsman and inquiring reader. Since I was young I have loved taking apart and reassembling things to understand how they work. Now, this passion has become my job: the step from Lego to software development was small.

\n\n

Finding the best possible solution so that a complex system can work at its best and making it run smoothly are the goals of my work. C#, WCF, ESB, MongoDb and Azure make up my survival toolkit and help me cruise through distributed systems and enterprise solutions, with ease.

\n\n

Be it a command or an event, I try to do my best in contributing to the life of the communities that have adopted me (ugidotnet and webdebs), trying to “give back” at least a part of what I have received over these years.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://codiceplastico.com" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/amelchiori" - } - ], - "Sessions":[ - { - "Id":1108, - "Title":"Functional DDD", - "Abstract":"\r\n

Very often we approach, more or less unconsciously, DDD's principles only with object-oriented paradigm, without exploring if other \"style\" can live better with aggregates, value objects, commands and domain events. Well, yes: there is 'other' out there... \nIn this session we will see how a functional language as F# can lead to a more intuitive and compact implementation of our domains.

\n\r\n" - } - ] - }, - { - "Id":293, - "Name":" Anthony Brown", - "Bio":"", - "Links":[ - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/bruinbrown93" - } - ], - "Sessions":[ - { - "Id":2107, - "Title":"Building Skynet: Machine learning for software developers", - "Abstract":"\r\n

How does Netflix know that I'd like that new movie which just released? How does Google know which ads to serve to me? How do games like Halo and Titanfall put me in game lobbies to create even matches? All these questions are answered with machine learning algorithms. Machine learning can sometimes look difficult. This session aims to break down the barrier to entry for machine learning and show how powerful even the most simple algorithms can be. Expect plenty of sample code to show just how quick and easy these basic algorithms can be.

\n\r\n" - } - ] - }, - { - "Id":3322, - "Name":" Barbara Fusinska", - "Bio":"

Developer, architect, problem solver. \nStrongly believes in team work and providing the best environment to help people reach their potential to the fullest.\nEnjoys designing beautiful system architectures using good practices, patterns and a great deal of common sense.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://barbarafusinska.com/" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/basiafusinska" - } - ], - "Sessions":[ - { - "Id":4133, - "Title":"Architecture - why so serious?", - "Abstract":"\r\n

What comes to developer's mind when he hears the phrase 'software architecture'? Is it clean design or rather heavy and unusable overhead? Nowadays there are many approaches to follow while building the software, but they often sound to pompous and lead to overcomplicating things. Programmers refuse to consider them, when all they need is making some simple functionalities work. They hear the word architecture and they get uptight in seconds. And that's not how it's supposed to be. Good practices should help, not introduce unnecessary problems and disturbance.

\n\n

What if thinking about architecture doesn't make the software too heavy and introduces actual value? What if some of its concepts could be used easily, even in non complex projects, simplifying the process of creation at the same time?

\n\n

The talk is to illustrate how architecture is not about ivory towers, but actual coding, and on what those coding architects should do. It will center on showing some habits developed through years of building different kinds of software systems. Using them can help reducing work, while focusing on what's most important - getting the job done that brings concrete value to the client. It will be demonstrated by real (but simple in the same time) code and fully functional web application. One that can be used as an outline for further usage, as patterns to apply. Presented examples will highlight power of more abstract approach, but in the same time will consider hands on code.

\n\r\n" - } - ] - }, - { - "Id":5333, - "Name":" Bart Read", - "Bio":"", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://www.bartread.com" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/bart_read" - } - ], - "Sessions":[ - { - "Id":4135, - "Title":"Scream if you want to go faster: speed up .NET and SQL Server web apps", - "Abstract":"\r\n

We all know that websites need to be fast. But how do you juice up creaking web apps that have been around for a while without deploying the thermonuclear option (i.e., the costly and much-maligned ground-up rewrite)?

\n\n

Unfortunately this can still prove tricky, especially when the issues lie in the database layer. Help is at hand though: I’ll show you the techniques that will help you hunt down performance problems in your database, and relate them back to your .NET code. But that's only half the story: we'll also talk about the strategies you can use to fix them from the relatively simple, to the much more involved.

\n\n

You should leave with an arsenal of optimisation tricks for every occasion!

\n\r\n" - } - ] - }, - { - "Id":3319, - "Name":" Ben Hall", - "Bio":"

Performed the rounds as a tester, developer, speaker, freelancer & startup entrepreneur. Currently working on the next venture

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://www.ocelotuproar.com" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/ben_hall" - } - ], - "Sessions":[ - { - "Id":2111, - "Title":"What Developers Need To Know About Visual Design ", - "Abstract":"\r\n

The world has become a very design sensitive meaning it’s now even more critical that developers build products that look amazing. Sadly frameworks like twitter’s bootstrap can only take us so far and even with designers on the team developers need to understand the key principals of good design to make effective decisions.

\n\n

In this session Ben will explore the five key topics around design that can make or break an application and website. The key topics are Layout and the golden ratio, Typography, Imaginary, Colours and User Feedback. With these topics attendees will come away with a deeper understanding about why certain elements look good while others don’t and what developers really should know about design. It will explore the cognitive science and research to move beyond personal options about design to data and research driven insights.

\n\r\n" - } - ] - }, - { - "Id":302, - "Name":" Chris Canal", - "Bio":"", - "Links":[ - - ], - "Sessions":[ - { - "Id":102, - "Title":"Super charging your JavaScript development experience", - "Abstract":"\r\n

With the release of V8 and subsequently NodeJs, JavaScript has started to grow up. In this session we will look at how you can super charge your JavaScript development lifecycle and deliver better written, cleaner and more coherent JavaScript with and without VisualStudio

\n\n

We will look at the many awesome frameworks for infrastructural support when developing JavaScript applications like Yeoman, Gulp, grunt, Browserfy and a few other handy libraries

\n\r\n" - } - ] - }, - { - "Id":11, - "Name":" David Simner", - "Bio":"

I started playing with computers when I stuffed sweets into my parents' floppy disk drive when I was 5. They weren't happy. When I was 10, I progressed onto something much more fun: coding!

\n\n

After a brief stint pretending to be an academic, I returned to what I love. For the past 5 years I've been a software developer at Red Gate.

\n\n

There have been lots of mistakes and learning along the way, but that’s what makes it fun: I now know that “Minimally Viable” includes writing the clean-up code, because otherwise you’ll spend nearly a grand on Amazon S3 before anybody notices; luckily my boss was forgiving.

\n\n

In my spare time I try to convince my train-obsessed friends to give up their obsession, and despite claiming not to be able to cook, I “product manage” my partner's Fair Trade Cook Book website.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://www.davidsimner.me.uk/" - } - ], - "Sessions":[ - { - "Id":4124, - "Title":"OWIN, Katana and ASP.NET vNext: eliminating the pain of IIS", - "Abstract":"\r\n

I first encountered OWIN when I added SignalR to a legacy ASP.NET MVC app, and had to write a piece of OWIN middleware to get SignalR to play nicely with our legacy authentication.

\n\n

It was a thoroughly impressive experience, so I built my next greenfield project on OWIN & Katana as a single-page app using static files & Web API, finally ditching IIS for good. The glad tidings continue for Microsoft web developers, with ASP.NET vNext promising even more goodness on the horizon.

\n\n

There’s a lot of changes coming for those of us working on the .NET web stack, so this talk will show you what things look like today:

\n\n\n\n

As well as what's changing in ASP.NET vNext:

\n\n\n\n

There’s a lot to cover, so we’ll move fast. You'll come away knowing why and how you should start using this on your own projects.

\n\r\n" - } - ] - }, - { - "Id":303, - "Name":" Forbes Lindesay", - "Bio":"

Node.js enthusiast, open source contributor and maintainer of the Jade templating language..

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://www.forbeslindesay.co.uk/" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/ForbesLindesay" - } - ], - "Sessions":[ - { - "Id":104, - "Title":"GitHub Automation", - "Abstract":"\r\n

GitHub has one of the best REST APIs you'll ever see. Pretty much any task in GitHub can be automated. Tired of updating code after a feature gets deprecated? Write a bot for that. Need to add the repository field to all your package.json files? Script it. You can even use GitHub as the backend for an entire application to take advantage of its built in collaboration features. This talk will take you through how to write you own GitHub automation code in JavaScript and give you some ideas on how to use your new-found powers for good.

\n\r\n" - } - ] - }, - { - "Id":30, - "Name":" Gary Short", - "Bio":"

Gary Short is the Head of Gibraltar Labs, a skunk works division of Gibraltar software. He is a Microsoft MVP in C# as well as being a Node.js and Python hacker. Gary is a popular speaker giving presentations at conferences and user groups throughout the UK, Europe and the US, mainly on his pet subjects of Social Network Analysis, Big Data and Data Science

\n", - "Links":[ - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/garyshort" - } - ], - "Sessions":[ - { - "Id":3127, - "Title":"Data Science for Fun and Profit", - "Abstract":"\r\n

Make no mistake, data science can be hard, but it can also be fun. In this session I'll introduce you to Classic and Bayesian Statistics and Machine Learning, all through the medium of predicting horse racing results. We'll explore a number of techniques for making such predictions and we'll finish by combining them into a powerful \"mixed model\" prediction engine, that's sure to pick the next big winner. This session won't only improve your knowledge, it'll improve your bank balance too! Note: probably won't do the latter though. :-)

\n\r\n" - } - ] - }, - { - "Id":2311, - "Name":" Ian Cooper", - "Bio":"

Ian Cooper has over 20 years of experience delivering Microsoft platform solutions in government, healthcare, and finance. During that time he has worked for the DTI, Reuters, Sungard, Misys, Beazley, and Huddle delivering everything from bespoke enterprise solutions, 'shrink-wrapped' products, and cloud services to thousands of customers. Ian is a passionate exponent of Software Craftsmanship and Agile Architecture. When he is not writing code he is also the and founder of the London .NET user group and speaks at events throughout the UK.

\n", - "Links":[ - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/ICooper" - } - ], - "Sessions":[ - { - "Id":1107, - "Title":"Decoupling from ASP.NET - Hexagonal Architectures in .NET", - "Abstract":"\r\n

The term 'hexagonal architecture' has come back and forth in popularity since Alistair Cockburn first mooted it, with the Rails community's recent soul searching over its importance or threat just the latest. So what is a hexagonal architecture, why might you want to use one, and why is the 'Rails just falls away' (https://www.youtube.com/watch?v=tg5RFeSfBM4) threat so discomforting to web framework builders. How can we make 'ASP.NET just fall away'.

\n\n

In this presentation we will look at the Layered Architectural style - when we would want to use one (as opposed to the alternatives) and when it is appropriate how to implement one. We will look at how to implement the Ports & Adapters (Hexagonal's 'proper' name) style, explaining what the different layers are.

\n\n

We will look at the value the command pattern for implementing our ports , explain why Netflix uses it in Hystrix for reliability. On the way we will discuss Retry, Timeout and Circuit Breaker and explain how we can do better than Hystrix with a Command Dispatcher and Command Processor.

\n\n

We'll show code throughout, including a look at the Paramore. Brighter framework, an OSS version of the platform we use at Huddle to build this kind of architecture.

\n\n

As a bonus we will round off showing you how easy it is go from sync to async with this approach.

\n\r\n" - } - ] - }, - { - "Id":53, - "Name":" Ian Russell", - "Bio":"

Experienced provider of simplicity, order and common-sense to complex OLTP solutions. Passionate about learning from others and giving back to the community. Paid to write C# and SQL, lover of F#, node.js and NoSql.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://ijrussell.tumblr.com" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/ijrussell" - } - ], - "Sessions":[ - { - "Id":108, - "Title":"Using F# for Line of Business Applications", - "Abstract":"\r\n

C# is a great language for developing Line of Business applications but F# is even better! If you want to write code that expresses your requirements clearly, ensures correctness and supports rapid, and fun, development then guess what, F# does all that and more!

\n\n

No prior experience of F# is necessary for this session but be warned, once you've seen what F# can do, you won't want to go back to C#!

\n\r\n" - } - ] - }, - { - "Id":23, - "Name":" Joel Hammond-Turner", - "Bio":"

Joel works as a Technical Lead for Landmark, and is currently bringing his 20 years of experience of software development and a passion for both technology and elegance to designing a world-class applications for the property information and risk management sectors.

\n\n

He has presented sessions on using NuGet for enterprise software development at DDDSW 4.0 and DDDNorth 2, and is responsible for the the open source NuGet.PackageNPublish tooling project.

\n\n

Outside of work he referees life with his wife and three young children in a home with more computers than is probably wise, but is really looking forward to teaching his boys Python now they've mastered Scratch on their Raspberry Pi.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://www.hammond-turner.org.uk" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/Rammesses" - } - ], - "Sessions":[ - { - "Id":3139, - "Title":"So you want to be a Tech Lead? 10 things you need to do to succeed.", - "Abstract":"\r\n

\"Tech Lead\" is an amorphous job title - is it all about the technology, or all about leadership? What should the balance really be?

\n\n

And it can also be a complex and thankless role too - particularly if you find yourself becoming the go-to guy (or gal) for everyone from the intern to the product manager.

\n\n

In this talk I'll cover (at least) 10 things that I think are essential to success in both areas, including how to address technical debt, herd your PMs and make sure your development team has a steady flow of work (and beer, pizza or other \"motivationals\").

\n\r\n" - } - ] - }, - { - "Id":4331, - "Name":" Kendall Miller", - "Bio":"

Kendall Miller is one of the founding partners of Gibraltar Software, an Independent Software Vendor (ISV) that develops & markets commercial applications for .NET developers. Introduced commercially in 2009, Loupe is an application logging & monitoring platform that is currently used by customers around the world from individual consultants through Fortune 100 companies and governments.

\n\n

Before starting Gibraltar Software, Kendall worked for multiple startups leading their technology development from beginning through profitability. In each case he's focused on translating enterprise-level performance and capabilities down to smaller companies. Kendall has a B.S in Computer Engineering from the University of Illinois, Urbana-Champaign.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://rocksolid.gibraltarsoftware.com" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/kendallmiller" - } - ], - "Sessions":[ - { - "Id":3129, - "Title":"Build Great Software for the Enterprise and Love it", - "Abstract":"\r\n

You want to write great code - taking the time to create an application that is cleanly written, easy to test, performs well, and delights users. Your company wants it done yesterday. How do you get the time and budget you need to build it right instead of just pounding out the next feature?

\n\n

In this talk, we'll cover how to:

\n\n
    \n
  1. Never skip coded tests again.
  2. \n
  3. Communicate security risks effectively so your business isn't the next Target.
  4. \n
  5. Pay down technical debt while delivering the features your users are waiting for.
  6. \n
\n\n

Sound incredible? Come to the talk to find out how you can go home happy with the work you've done each day, even in an enterprise.

\n\r\n" - } - ] - }, - { - "Id":62, - "Name":" Liam Westley", - "Bio":"

Liam Westley is an Application Architect at Huddle where he works with some of the best .Net developers and UX designers to deliver world class collaboration software. He quite likes working just off Old Street as there is some fantastic food and coffee to be had within a few minutes walk.

\n\n

Previous to Huddle Liam worked at Criteria MX, a digital media startup and has worked as a consultant via his own company Tiger Computer Services Ltd, specialising in software for Broadcast Television. His Niagara SMS moderation system was used by QVC UK for eight years to display SMS messages from viewers, live, on screen. Liam is also responsible for the ticketing system for Hat Trick Productions which provides e-tickets to shows such as Have I Got New For You and Room 101.

\n\n

Liam has worked for chellomedia, GMTV, BSkyB, SmashedAtom and Original Thinking Group. In his time he created the first in house weather system for Sky News using Visual Basic 1.0, acted as architect for two general election systems, project managed the launch of the GMTV web site, was key to delivering the first interactive television chat service in the UK for BSkyB and helped launch the first live shopping channels in the Netherlands.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://geekswithblogs.net/twickers" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/westleyl" - } - ], - "Sessions":[ - { - "Id":1109, - "Title":"An Actor's Life for Me – An introduction to the TPL Dataflow Library and asynchronous programming blocks", - "Abstract":"\r\n

Every version of the .NET Framework has brought improvements to asynchronous and concurrent programming. While .NET 4.0 brought the async/await model which is useful for improving UI responses and server applications, it can sometimes still be tricky to marshal multiple threads within longer processing pipelines.

\n\n

The Dataflow Library consists of a Nuget package built on top of the Task Parallel Library (TPL). It harnesses the actor-based programming model to provide a set of dataflow blocks data structures that buffer and process data, which you can connect together to form custom pipelines with messages passed between the blocks.

\n\n

By using the Dataflow Library you can concentrate on the messages and actions being performed, while the blocks marshal the messages, provide concurrent message processing and buffering as well as supporting cancellation and exception handling.

\n\r\n" - } - ] - }, - { - "Id":48, - "Name":" Mark Rendle", - "Bio":"", - "Links":[ - - ], - "Sessions":[ - { - "Id":3125, - "Title":"The vNext Big Thing", - "Abstract":"\r\n

At TechEd this year, various Scotts and a David announced ASP.NET vNext, the biggest thing to happen to the Microsoft web developers story since ASP.NET 1.0.

\n\n

It's a moving target, so I can't say exactly what the talk will include, but I can guarantee it will cover:

\n\n\n\n

Look, it's all awesome. Just come and see.

\n\r\n" - } - ] - }, - { - "Id":2316, - "Name":" Matt Warren", - "Bio":"

I'm a C# dev who loves nothing better than finding and fixing performance issues. I also contribute to RavenDB and wrote the .NET port of HdrHistogram.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://www.mattwarren.org" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/matthewwarren" - } - ], - "Sessions":[ - { - "Id":3140, - "Title":"Performance is a Feature!", - "Abstract":"\r\n

Starting with the premise that \"Performance is a Feature\", this session will look at how to measure, what to measure and how get the best performance from your .NET code. We will look at real-world examples from the Roslyn code-base, StackOverflow and my personal experience of trying (but ultimately failing) to break a world record.

\n\r\n" - } - ] - }, - { - "Id":309, - "Name":" Mauro Servienti", - "Bio":"

CTO and Architect @ Mastreeno Ltd, Dublin, Long time Microsoft MVP for Visual C#, really passionated about DDD, CQRS and Event Sourcing. NServiceBus Champ and official trainer, RavendDB trainer.

\n\n

Has been working with the .net platform since the first Alpha in 1999.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://milestone.topics.it" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/mauroservienti" - } - ], - "Sessions":[ - { - "Id":107, - "Title":"NServiceBus: introduction to a message based distributed architecture", - "Abstract":"\r\n

SOA and distributed had been buzzwords for a long time, a message based architecture that embrace the SOA principles is the real solution to a scalable and distributed environment where HA or/and temporal decoupling are a must.\nIn this session we will introduce messaging concepts and see how NServiceBus, a powerfull toolkit to rule all the aspects of a messaging transport, can dramatically simplify the development process.

\n\r\n" - } - ] - }, - { - "Id":3320, - "Name":" Melinda Seckington", - "Bio":"

Melinda Seckington is a developer at FutureLearn, a social learning platform, backed by the Open University, offering free courses from a wide range of university partners, and cultural institutions like the British Council, British Library and British Museum.

\n\n

She loves attending and hacking at Hackdays, BarCamps and other tech meet ups, and since 2009 has been organising them at Geeks of London, including HACKED at the O2 last year. She also runs MissGeeky.com, a blog about all things geeky and girly.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://missgeeky.com" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/mseckington" - } - ], - "Sessions":[ - { - "Id":2113, - "Title":"DDD: Disney Driven Development", - "Abstract":"\r\n

Disney parks are built using their Four Keys of The Kingdom: Safety, Courtesy, Show and Efficiency. This talk will show examples of how Disney have applied these four keys everywhere in their parks and how we can extend those principles to our work as web developers.

\n\r\n" - } - ] - }, - { - "Id":1313, - "Name":" Pete Smith", - "Bio":"

Pete is a software consultant based in London with almost 10 years of experience making web applications with Asp.Net, specialising in API design and Javascript browser-based applications. He is the author of Superscribe - a graph based routing framework, and the OData library Linq to Querystring.

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://roysvork.wordpress.com" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/roysvork" - } - ], - "Sessions":[ - { - "Id":1106, - "Title":"Beyond responsive design - UI for the modern web application", - "Abstract":"\r\n

Applications written for the modern web are being consumed not just on desktop browsers, but also on a myriad of other devices... even watches and glasses. If you design your application with a pc screen in mind, at worst you're either cutting your userbase in half or setting yourself up for an expensive redesign.

\n\n

In this talk I'll introduce you to some modern web design constructs, and the technologies that bring them to life. Learn how to create apps that work just as well on phone, mobile and desktop with no extra effort, and without restrictive layout frameworks. Who knows... you may even even see things that begin to rival native apps!

\n\r\n" - } - ] - }, - { - "Id":3323, - "Name":" Peter Mounce", - "Bio":"", - "Links":[ - - ], - "Sessions":[ - { - "Id":2115, - "Title":"Embracing DevOps at JUST EAT, within a Microsoft platform", - "Abstract":"\r\n

JUST EAT changed its culture towards embracing DevOps principles, and heavily leveraged AWS to achieve it.

\n\n

We're a successful online takeaway ecommerce website running on a Microsoft-based platform.

\n\n

Come learn how we:

\n\n\n\r\n" - } - ] - }, - { - "Id":34, - "Name":" Phillip Trelford", - "Bio":"", - "Links":[ - - ], - "Sessions":[ - { - "Id":1114, - "Title":"All your types are belong to us!", - "Abstract":"\r\n

Big Data tasks typically require acquiring and analysing data from a wide variety of data sources, visualizing the data and applying a barrage of statistical algorithms. This talk will show how this can be accomplished in Visual Studio on Windows or Xamarin Studio on Mac and Linux using F#'s REPL and Type Providers. \nType Providers give typed access to a wide range of data sources from CSV, JSON and XML to SQL, OData and Web Services, instantly without a code generation step. The Type Provider mechanism can also be used to analyse data with direct access to statistical packages like R and MATLAB as well as all the existing .Net libraries.\nFinally visualizations can be generated using F#'s desktop charting libraries, or with ASP.Net and even JavaScript libraries like HighCharts.\nExpect a sprinkling of anecdotes drawn from experiences working on large machine learning systems at Microsoft, and plenty of live demos.

\n\r\n" - } - ] - }, - { - "Id":2314, - "Name":" Sam Hogarth", - "Bio":"

Sam works with .NET at Nonlinear Dynamics, creating software to analyse proteomics and metabolomics experiments. Previously he has built desktop and web-based trading applications for some of the world's largest financial institutions, developed for two charting products (Visiblox and ShinobiControls) and contributed to the PropertyCross open-source project.

\n\n

In his spare time he runs, plays a ridiculous amount of board games, co-organises Newcastle Skeptics in the Pub and builds Android apps - including a scheduling app for DDD East Anglia! ;)

\n", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://samhogy.co.uk" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/samhogy" - } - ], - "Sessions":[ - { - "Id":2109, - "Title":"Keeping it responsive - cross-platform MVVM with ReactiveUI", - "Abstract":"\r\n

Building an awesome user interface is hard work. You've got the complexities of real life to deal with - handling user inputs, dealing with slow network connections and managing background workers. There's also this testing thing that people keep going on about!

\n\n

We need a way of handling the real world, whilst behaving in a predictable and responsive manner. Enter ReactiveUI, a fusion of MVVM and the Reactive Extensions (Rx) for .NET applications.

\n\n

In this session I'll introduce ReactiveUI, show you some tips and tricks, discuss the benefits and tradeoffs of the framework and show how it can be used as a solid foundation for building cross-platform .NET applications.

\n\r\n" - } - ] - }, - { - "Id":4328, - "Name":" Stephen Harrison", - "Bio":"", - "Links":[ - { - "Icon":"fa-globe", - "Url":"http://Tinamous.com" - }, - { - "Icon":"fa-twitter", - "Url":"http://twitter.com/TinamousSteve" - } - ], - "Sessions":[ - { - "Id":3119, - "Title":"A Brief Introduction to Making your own (Internet of Things) Thing.", - "Abstract":"\r\n

The Internet of Things is exploding and it's a great time to join in: more and more devices like the Arduino, Netduino and Gadgeteer are becoming available. The question is, how do I get started?

\n\n

We will look at what is available in terms of popular hardware for building your Thing, and a demo of how to develop for the Arduino, followed by an introduction to the Gadgeteer and .Net Micro Framework, hopefully finishing up with a fairly simple but connected Gadgeteer based Thing (Wifi Allowing!).

\n\r\n" - } - ] - }, - { - "Id":4332, - "Name":" Tomas Petricek", - "Bio":"", - "Links":[ - - ], - "Sessions":[ - { - "Id":3132, - "Title":"Taking your craft seriously with F#", - "Abstract":"\r\n

Many standard F# libraries and tools, including the compiler itself, are developed as open-source and have a large number of contributors. To successfully build such projects, you need to be serious about your craft. This includes comprehensive testing, using automated build tools, continuous integration, as well as creating great documentation and tutorials. In this talk, I'll talk about what I learned as an open-source F# contributor.

\n\n

Along the way, we'll look a number of risk-free ways of introducing F# into your workflow:

\n\n\n\n

In summary, this talk is a walkthrough covering some of the software engineering aspects of programming that have been working extremely well for the F# open-source ecosystem. After the talk, you'll have a good idea how to use some of the techniques in your daily job - but you may as well become an F# contributor!

\n\r\n" - } - ] - } -] \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/content/sponsors.html b/BeyondResponsiveDesign.Menus/content/sponsors.html deleted file mode 100644 index 1d862b9..0000000 --- a/BeyondResponsiveDesign.Menus/content/sponsors.html +++ /dev/null @@ -1,12 +0,0 @@ -
-
-
-

- - Welcome to DDD East Anglia! -

-
-
-
-
-
\ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/icon-large.png b/BeyondResponsiveDesign.Menus/icon-large.png deleted file mode 100644 index 23fda3a..0000000 Binary files a/BeyondResponsiveDesign.Menus/icon-large.png and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/accommodation/doubletree-hilton.jpg b/BeyondResponsiveDesign.Menus/images/accommodation/doubletree-hilton.jpg deleted file mode 100644 index d5bfffa..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/accommodation/doubletree-hilton.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/accommodation/premierinn-a14-j32.jpg b/BeyondResponsiveDesign.Menus/images/accommodation/premierinn-a14-j32.jpg deleted file mode 100644 index 5e6e5c9..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/accommodation/premierinn-a14-j32.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/accommodation/travelodge-cambridge-central.jpg b/BeyondResponsiveDesign.Menus/images/accommodation/travelodge-cambridge-central.jpg deleted file mode 100644 index 62ab790..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/accommodation/travelodge-cambridge-central.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/accommodation/travelodge-newmarket-road.jpg b/BeyondResponsiveDesign.Menus/images/accommodation/travelodge-newmarket-road.jpg deleted file mode 100644 index 714d719..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/accommodation/travelodge-newmarket-road.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/accommodation/travelodge-orchard-park.jpg b/BeyondResponsiveDesign.Menus/images/accommodation/travelodge-orchard-park.jpg deleted file mode 100644 index 88d75ba..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/accommodation/travelodge-orchard-park.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/accommodation/university-arms.jpg b/BeyondResponsiveDesign.Menus/images/accommodation/university-arms.jpg deleted file mode 100644 index 1d02674..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/accommodation/university-arms.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/accommodation/varsity.jpg b/BeyondResponsiveDesign.Menus/images/accommodation/varsity.jpg deleted file mode 100644 index 67f31dc..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/accommodation/varsity.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/favicon.ico b/BeyondResponsiveDesign.Menus/images/favicon.ico deleted file mode 100644 index 9f29f27..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/favicon.ico and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/googleplaystore.gif b/BeyondResponsiveDesign.Menus/images/googleplaystore.gif deleted file mode 100644 index a5c49f5..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/googleplaystore.gif and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/icon-128.png b/BeyondResponsiveDesign.Menus/images/icon-128.png deleted file mode 100644 index 24005a9..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/icon-128.png and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/icon-196.png b/BeyondResponsiveDesign.Menus/images/icon-196.png deleted file mode 100644 index 2bd91c2..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/icon-196.png and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/itunesappstore.gif b/BeyondResponsiveDesign.Menus/images/itunesappstore.gif deleted file mode 100644 index 2aa8405..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/itunesappstore.gif and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/logo-notext-green.png b/BeyondResponsiveDesign.Menus/images/logo-notext-green.png deleted file mode 100644 index 7f2b678..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/logo-notext-green.png and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/logo-small-green.png b/BeyondResponsiveDesign.Menus/images/logo-small-green.png deleted file mode 100644 index 28c69b8..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/logo-small-green.png and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/logo-small.png b/BeyondResponsiveDesign.Menus/images/logo-small.png deleted file mode 100644 index e6a8fe5..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/logo-small.png and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/11.jpg b/BeyondResponsiveDesign.Menus/images/speakers/11.jpg deleted file mode 100644 index 25483ec..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/11.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/1313.jpg b/BeyondResponsiveDesign.Menus/images/speakers/1313.jpg deleted file mode 100644 index de0a05d..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/1313.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/23.jpg b/BeyondResponsiveDesign.Menus/images/speakers/23.jpg deleted file mode 100644 index 235935a..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/23.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/2311.jpg b/BeyondResponsiveDesign.Menus/images/speakers/2311.jpg deleted file mode 100644 index 6721ee5..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/2311.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/2312.jpg b/BeyondResponsiveDesign.Menus/images/speakers/2312.jpg deleted file mode 100644 index cba63be..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/2312.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/2314.jpg b/BeyondResponsiveDesign.Menus/images/speakers/2314.jpg deleted file mode 100644 index 9af9413..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/2314.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/2316.jpg b/BeyondResponsiveDesign.Menus/images/speakers/2316.jpg deleted file mode 100644 index 63483d4..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/2316.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/293.jpg b/BeyondResponsiveDesign.Menus/images/speakers/293.jpg deleted file mode 100644 index 2642a7b..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/293.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/30.jpg b/BeyondResponsiveDesign.Menus/images/speakers/30.jpg deleted file mode 100644 index 6721ee5..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/30.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/302.jpg b/BeyondResponsiveDesign.Menus/images/speakers/302.jpg deleted file mode 100644 index 1eb1bef..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/302.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/303.jpg b/BeyondResponsiveDesign.Menus/images/speakers/303.jpg deleted file mode 100644 index c6bbdbc..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/303.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/309.jpg b/BeyondResponsiveDesign.Menus/images/speakers/309.jpg deleted file mode 100644 index c32fd1d..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/309.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/3319.jpg b/BeyondResponsiveDesign.Menus/images/speakers/3319.jpg deleted file mode 100644 index 9f8a3cd..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/3319.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/3320.jpg b/BeyondResponsiveDesign.Menus/images/speakers/3320.jpg deleted file mode 100644 index 7ca13ea..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/3320.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/3322.jpg b/BeyondResponsiveDesign.Menus/images/speakers/3322.jpg deleted file mode 100644 index bcf82d2..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/3322.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/3323.jpg b/BeyondResponsiveDesign.Menus/images/speakers/3323.jpg deleted file mode 100644 index 7e2831f..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/3323.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/3324.jpg b/BeyondResponsiveDesign.Menus/images/speakers/3324.jpg deleted file mode 100644 index 218dcea..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/3324.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/34.jpg b/BeyondResponsiveDesign.Menus/images/speakers/34.jpg deleted file mode 100644 index 7e71be1..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/34.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/4328.jpg b/BeyondResponsiveDesign.Menus/images/speakers/4328.jpg deleted file mode 100644 index 6721ee5..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/4328.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/4331.jpg b/BeyondResponsiveDesign.Menus/images/speakers/4331.jpg deleted file mode 100644 index a3efade..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/4331.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/4332.jpg b/BeyondResponsiveDesign.Menus/images/speakers/4332.jpg deleted file mode 100644 index cd43c18..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/4332.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/48.jpg b/BeyondResponsiveDesign.Menus/images/speakers/48.jpg deleted file mode 100644 index 460d6e3..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/48.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/53.jpg b/BeyondResponsiveDesign.Menus/images/speakers/53.jpg deleted file mode 100644 index 6721ee5..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/53.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/5333.jpg b/BeyondResponsiveDesign.Menus/images/speakers/5333.jpg deleted file mode 100644 index 80bfc75..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/5333.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/62.jpg b/BeyondResponsiveDesign.Menus/images/speakers/62.jpg deleted file mode 100644 index 35a3f61..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/speakers/62.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/images/speakers/speakers.json b/BeyondResponsiveDesign.Menus/images/speakers/speakers.json deleted file mode 100644 index 37ab5a4..0000000 --- a/BeyondResponsiveDesign.Menus/images/speakers/speakers.json +++ /dev/null @@ -1 +0,0 @@ -[{"Id":3324,"Name":" Adam Kosinski","Bio":"

Journeyman, developer, craftsman, currently coding C# in London. Interested in just about anything, excelling at discussions over code, beer and pizza.

\n","Links":[{"Icon":"icon-twitter","Url":"http://twitter.com/adk0s"}],"Sessions":[{"Id":2117,"Title":"A Unit Testing Swiss Army Knife","Abstract":"\r\n

Putting all of #IsTddDeadOrNotQuiteYet discussion aside, there are a lot of things to be said about more technical side of writing tests. Instead of big important questions like \"How\" or \"Why\", I would like to present you a couple of tricks, patterns and libraries that help in what is usually of secondary interest - readability, maintainability.

\n\n

The leading motive for this talk will be approaching our tests like living documentation - and what we can possibly do to make it better.

\n\n

So, have you ever wondered what is Bulider Pattern about? What is all the fuss in being \"fluent\"? Or maybe you wondered if you can effectively integration test you MVC app? I hope you will find useful learning this, and some more.

\n\r\n"}]},{"Id":2312,"Name":" Alessandro Melchiori","Bio":"

Software craftsman, husband, father, ex-sportsman and inquiring reader. Since I was young I have loved taking apart and reassembling things to understand how they work. Now, this passion has become my job: the step from Lego to software development was small.

\n\n

Finding the best possible solution so that a complex system can work at its best and making it run smoothly are the goals of my work. C#, WCF, ESB, MongoDb and Azure make up my survival toolkit and help me cruise through distributed systems and enterprise solutions, with ease.

\n\n

Be it a command or an event, I try to do my best in contributing to the life of the communities that have adopted me (ugidotnet and webdebs), trying to “give back” at least a part of what I have received over these years.

\n","Links":[{"Icon":"icon-globe","Url":"http://codiceplastico.com"},{"Icon":"icon-twitter","Url":"http://twitter.com/amelchiori"}],"Sessions":[{"Id":1108,"Title":"Functional DDD","Abstract":"\r\n

Very often we approach, more or less unconsciously, DDD's principles only with object-oriented paradigm, without exploring if other \"style\" can live better with aggregates, value objects, commands and domain events. Well, yes: there is 'other' out there... \nIn this session we will see how a functional language as F# can lead to a more intuitive and compact implementation of our domains.

\n\r\n"}]},{"Id":293,"Name":" Anthony Brown","Bio":"","Links":[{"Icon":"icon-twitter","Url":"http://twitter.com/bruinbrown93"}],"Sessions":[{"Id":2107,"Title":"Building Skynet: Machine learning for software developers","Abstract":"\r\n

How does Netflix know that I'd like that new movie which just released? How does Google know which ads to serve to me? How do games like Halo and Titanfall put me in game lobbies to create even matches? All these questions are answered with machine learning algorithms. Machine learning can sometimes look difficult. This session aims to break down the barrier to entry for machine learning and show how powerful even the most simple algorithms can be. Expect plenty of sample code to show just how quick and easy these basic algorithms can be.

\n\r\n"}]},{"Id":3322,"Name":" Barbara Fusinska","Bio":"

Developer, architect, problem solver. \nStrongly believes in team work and providing the best environment to help people reach their potential to the fullest.\nEnjoys designing beautiful system architectures using good practices, patterns and a great deal of common sense.

\n","Links":[{"Icon":"icon-globe","Url":"http://barbarafusinska.com/"},{"Icon":"icon-twitter","Url":"http://twitter.com/basiafusinska"}],"Sessions":[{"Id":4133,"Title":"Architecture - why so serious?","Abstract":"\r\n

What comes to developer's mind when he hears the phrase 'software architecture'? Is it clean design or rather heavy and unusable overhead? Nowadays there are many approaches to follow while building the software, but they often sound to pompous and lead to overcomplicating things. Programmers refuse to consider them, when all they need is making some simple functionalities work. They hear the word architecture and they get uptight in seconds. And that's not how it's supposed to be. Good practices should help, not introduce unnecessary problems and disturbance.

\n\n

What if thinking about architecture doesn't make the software too heavy and introduces actual value? What if some of its concepts could be used easily, even in non complex projects, simplifying the process of creation at the same time?

\n\n

The talk is to illustrate how architecture is not about ivory towers, but actual coding, and on what those coding architects should do. It will center on showing some habits developed through years of building different kinds of software systems. Using them can help reducing work, while focusing on what's most important - getting the job done that brings concrete value to the client. It will be demonstrated by real (but simple in the same time) code and fully functional web application. One that can be used as an outline for further usage, as patterns to apply. Presented examples will highlight power of more abstract approach, but in the same time will consider hands on code.

\n\r\n"}]},{"Id":5333,"Name":" Bart Read","Bio":"","Links":[{"Icon":"icon-globe","Url":"http://www.bartread.com"},{"Icon":"icon-twitter","Url":"http://twitter.com/bart_read"}],"Sessions":[{"Id":4135,"Title":"Scream if you want to go faster: speed up .NET and SQL Server web apps","Abstract":"\r\n

We all know that websites need to be fast. But how do you juice up creaking web apps that have been around for a while without deploying the thermonuclear option (i.e., the costly and much-maligned ground-up rewrite)?

\n\n

Unfortunately this can still prove tricky, especially when the issues lie in the database layer. Help is at hand though: I’ll show you the techniques that will help you hunt down performance problems in your database, and relate them back to your .NET code. But that's only half the story: we'll also talk about the strategies you can use to fix them from the relatively simple, to the much more involved.

\n\n

You should leave with an arsenal of optimisation tricks for every occasion!

\n\r\n"}]},{"Id":3319,"Name":" Ben Hall","Bio":"

Performed the rounds as a tester, developer, speaker, freelancer & startup entrepreneur. Currently working on the next venture

\n","Links":[{"Icon":"icon-globe","Url":"http://www.ocelotuproar.com"},{"Icon":"icon-twitter","Url":"http://twitter.com/ben_hall"}],"Sessions":[{"Id":2111,"Title":"What Developers Need To Know About Visual Design ","Abstract":"\r\n

The world has become a very design sensitive meaning it’s now even more critical that developers build products that look amazing. Sadly frameworks like twitter’s bootstrap can only take us so far and even with designers on the team developers need to understand the key principals of good design to make effective decisions.

\n\n

In this session Ben will explore the five key topics around design that can make or break an application and website. The key topics are Layout and the golden ratio, Typography, Imaginary, Colours and User Feedback. With these topics attendees will come away with a deeper understanding about why certain elements look good while others don’t and what developers really should know about design. It will explore the cognitive science and research to move beyond personal options about design to data and research driven insights.

\n\r\n"}]},{"Id":302,"Name":" Chris Canal","Bio":"","Links":[],"Sessions":[{"Id":102,"Title":"Super charging your JavaScript development experience","Abstract":"\r\n

With the release of V8 and subsequently NodeJs, JavaScript has started to grow up. In this session we will look at how you can super charge your JavaScript development lifecycle and deliver better written, cleaner and more coherent JavaScript with and without VisualStudio

\n\n

We will look at the many awesome frameworks for infrastructural support when developing JavaScript applications like Yeoman, Gulp, grunt, Browserfy and a few other handy libraries

\n\r\n"}]},{"Id":11,"Name":" David Simner","Bio":"

I started playing with computers when I stuffed sweets into my parents' floppy disk drive when I was 5. They weren't happy. When I was 10, I progressed onto something much more fun: coding!

\n\n

After a brief stint pretending to be an academic, I returned to what I love. For the past 5 years I've been a software developer at Red Gate.

\n\n

There have been lots of mistakes and learning along the way, but that’s what makes it fun: I now know that “Minimally Viable” includes writing the clean-up code, because otherwise you’ll spend nearly a grand on Amazon S3 before anybody notices; luckily my boss was forgiving.

\n\n

In my spare time I try to convince my train-obsessed friends to give up their obsession, and despite claiming not to be able to cook, I “product manage” my partner's Fair Trade Cook Book website.

\n","Links":[{"Icon":"icon-globe","Url":"http://www.davidsimner.me.uk/"}],"Sessions":[{"Id":4124,"Title":"OWIN, Katana and ASP.NET vNext: eliminating the pain of IIS","Abstract":"\r\n

I first encountered OWIN when I added SignalR to a legacy ASP.NET MVC app, and had to write a piece of OWIN middleware to get SignalR to play nicely with our legacy authentication.

\n\n

It was a thoroughly impressive experience, so I built my next greenfield project on OWIN & Katana as a single-page app using static files & Web API, finally ditching IIS for good. The glad tidings continue for Microsoft web developers, with ASP.NET vNext promising even more goodness on the horizon.

\n\n

There’s a lot of changes coming for those of us working on the .NET web stack, so this talk will show you what things look like today:

\n\n\n\n

As well as what's changing in ASP.NET vNext:

\n\n\n\n

There’s a lot to cover, so we’ll move fast. You'll come away knowing why and how you should start using this on your own projects.

\n\r\n"}]},{"Id":303,"Name":" Forbes Lindesay","Bio":"

Node.js enthusiast, open source contributor and maintainer of the Jade templating language..

\n","Links":[{"Icon":"icon-globe","Url":"http://www.forbeslindesay.co.uk/"},{"Icon":"icon-twitter","Url":"http://twitter.com/ForbesLindesay"}],"Sessions":[{"Id":104,"Title":"GitHub Automation","Abstract":"\r\n

GitHub has one of the best REST APIs you'll ever see. Pretty much any task in GitHub can be automated. Tired of updating code after a feature gets deprecated? Write a bot for that. Need to add the repository field to all your package.json files? Script it. You can even use GitHub as the backend for an entire application to take advantage of its built in collaboration features. This talk will take you through how to write you own GitHub automation code in JavaScript and give you some ideas on how to use your new-found powers for good.

\n\r\n"}]},{"Id":30,"Name":" Gary Short","Bio":"

Gary Short is the Head of Gibraltar Labs, a skunk works division of Gibraltar software. He is a Microsoft MVP in C# as well as being a Node.js and Python hacker. Gary is a popular speaker giving presentations at conferences and user groups throughout the UK, Europe and the US, mainly on his pet subjects of Social Network Analysis, Big Data and Data Science

\n","Links":[{"Icon":"icon-twitter","Url":"http://twitter.com/garyshort"}],"Sessions":[{"Id":3127,"Title":"Data Science for Fun and Profit","Abstract":"\r\n

Make no mistake, data science can be hard, but it can also be fun. In this session I'll introduce you to Classic and Bayesian Statistics and Machine Learning, all through the medium of predicting horse racing results. We'll explore a number of techniques for making such predictions and we'll finish by combining them into a powerful \"mixed model\" prediction engine, that's sure to pick the next big winner. This session won't only improve your knowledge, it'll improve your bank balance too! Note: probably won't do the latter though. :-)

\n\r\n"}]},{"Id":2311,"Name":" Ian Cooper","Bio":"

Ian Cooper has over 20 years of experience delivering Microsoft platform solutions in government, healthcare, and finance. During that time he has worked for the DTI, Reuters, Sungard, Misys, Beazley, and Huddle delivering everything from bespoke enterprise solutions, 'shrink-wrapped' products, and cloud services to thousands of customers. Ian is a passionate exponent of Software Craftsmanship and Agile Architecture. When he is not writing code he is also the and founder of the London .NET user group and speaks at events throughout the UK.

\n","Links":[{"Icon":"icon-twitter","Url":"http://twitter.com/ICooper"}],"Sessions":[{"Id":1107,"Title":"Decoupling from ASP.NET - Hexagonal Architectures in .NET","Abstract":"\r\n

The term 'hexagonal architecture' has come back and forth in popularity since Alistair Cockburn first mooted it, with the Rails community's recent soul searching over its importance or threat just the latest. So what is a hexagonal architecture, why might you want to use one, and why is the 'Rails just falls away' (https://www.youtube.com/watch?v=tg5RFeSfBM4) threat so discomforting to web framework builders. How can we make 'ASP.NET just fall away'.

\n\n

In this presentation we will look at the Layered Architectural style - when we would want to use one (as opposed to the alternatives) and when it is appropriate how to implement one. We will look at how to implement the Ports & Adapters (Hexagonal's 'proper' name) style, explaining what the different layers are.

\n\n

We will look at the value the command pattern for implementing our ports , explain why Netflix uses it in Hystrix for reliability. On the way we will discuss Retry, Timeout and Circuit Breaker and explain how we can do better than Hystrix with a Command Dispatcher and Command Processor.

\n\n

We'll show code throughout, including a look at the Paramore. Brighter framework, an OSS version of the platform we use at Huddle to build this kind of architecture.

\n\n

As a bonus we will round off showing you how easy it is go from sync to async with this approach.

\n\r\n"}]},{"Id":53,"Name":" Ian Russell","Bio":"

Experienced provider of simplicity, order and common-sense to complex OLTP solutions. Passionate about learning from others and giving back to the community. Paid to write C# and SQL, lover of F#, node.js and NoSql.

\n","Links":[{"Icon":"icon-globe","Url":"http://ijrussell.tumblr.com"},{"Icon":"icon-twitter","Url":"http://twitter.com/ijrussell"}],"Sessions":[{"Id":108,"Title":"Using F# for Line of Business Applications","Abstract":"\r\n

C# is a great language for developing Line of Business applications but F# is even better! If you want to write code that expresses your requirements clearly, ensures correctness and supports rapid, and fun, development then guess what, F# does all that and more!

\n\n

No prior experience of F# is necessary for this session but be warned, once you've seen what F# can do, you won't want to go back to C#!

\n\r\n"}]},{"Id":23,"Name":" Joel Hammond-Turner","Bio":"

Joel works as a Technical Lead for Landmark, and is currently bringing his 20 years of experience of software development and a passion for both technology and elegance to designing a world-class applications for the property information and risk management sectors.

\n\n

He has presented sessions on using NuGet for enterprise software development at DDDSW 4.0 and DDDNorth 2, and is responsible for the the open source NuGet.PackageNPublish tooling project.

\n\n

Outside of work he referees life with his wife and three young children in a home with more computers than is probably wise, but is really looking forward to teaching his boys Python now they've mastered Scratch on their Raspberry Pi.

\n","Links":[{"Icon":"icon-globe","Url":"http://www.hammond-turner.org.uk"},{"Icon":"icon-twitter","Url":"http://twitter.com/Rammesses"}],"Sessions":[{"Id":3139,"Title":"So you want to be a Tech Lead? 10 things you need to do to succeed.","Abstract":"\r\n

\"Tech Lead\" is an amorphous job title - is it all about the technology, or all about leadership? What should the balance really be?

\n\n

And it can also be a complex and thankless role too - particularly if you find yourself becoming the go-to guy (or gal) for everyone from the intern to the product manager.

\n\n

In this talk I'll cover (at least) 10 things that I think are essential to success in both areas, including how to address technical debt, herd your PMs and make sure your development team has a steady flow of work (and beer, pizza or other \"motivationals\").

\n\r\n"}]},{"Id":4331,"Name":" Kendall Miller","Bio":"

Kendall Miller is one of the founding partners of Gibraltar Software, an Independent Software Vendor (ISV) that develops & markets commercial applications for .NET developers. Introduced commercially in 2009, Loupe is an application logging & monitoring platform that is currently used by customers around the world from individual consultants through Fortune 100 companies and governments.

\n\n

Before starting Gibraltar Software, Kendall worked for multiple startups leading their technology development from beginning through profitability. In each case he's focused on translating enterprise-level performance and capabilities down to smaller companies. Kendall has a B.S in Computer Engineering from the University of Illinois, Urbana-Champaign.

\n","Links":[{"Icon":"icon-globe","Url":"http://rocksolid.gibraltarsoftware.com"},{"Icon":"icon-twitter","Url":"http://twitter.com/kendallmiller"}],"Sessions":[{"Id":3129,"Title":"Build Great Software for the Enterprise and Love it","Abstract":"\r\n

You want to write great code - taking the time to create an application that is cleanly written, easy to test, performs well, and delights users. Your company wants it done yesterday. How do you get the time and budget you need to build it right instead of just pounding out the next feature?

\n\n

In this talk, we'll cover how to:

\n\n
    \n
  1. Never skip coded tests again.
  2. \n
  3. Communicate security risks effectively so your business isn't the next Target.
  4. \n
  5. Pay down technical debt while delivering the features your users are waiting for.
  6. \n
\n\n

Sound incredible? Come to the talk to find out how you can go home happy with the work you've done each day, even in an enterprise.

\n\r\n"}]},{"Id":62,"Name":" Liam Westley","Bio":"

Liam Westley is an Application Architect at Huddle where he works with some of the best .Net developers and UX designers to deliver world class collaboration software. He quite likes working just off Old Street as there is some fantastic food and coffee to be had within a few minutes walk.

\n\n

Previous to Huddle Liam worked at Criteria MX, a digital media startup and has worked as a consultant via his own company Tiger Computer Services Ltd, specialising in software for Broadcast Television. His Niagara SMS moderation system was used by QVC UK for eight years to display SMS messages from viewers, live, on screen. Liam is also responsible for the ticketing system for Hat Trick Productions which provides e-tickets to shows such as Have I Got New For You and Room 101.

\n\n

Liam has worked for chellomedia, GMTV, BSkyB, SmashedAtom and Original Thinking Group. In his time he created the first in house weather system for Sky News using Visual Basic 1.0, acted as architect for two general election systems, project managed the launch of the GMTV web site, was key to delivering the first interactive television chat service in the UK for BSkyB and helped launch the first live shopping channels in the Netherlands.

\n","Links":[{"Icon":"icon-globe","Url":"http://geekswithblogs.net/twickers"},{"Icon":"icon-twitter","Url":"http://twitter.com/westleyl"}],"Sessions":[{"Id":1109,"Title":"An Actor's Life for Me – An introduction to the TPL Dataflow Library and asynchronous programming blocks","Abstract":"\r\n

Every version of the .NET Framework has brought improvements to asynchronous and concurrent programming. While .NET 4.0 brought the async/await model which is useful for improving UI responses and server applications, it can sometimes still be tricky to marshal multiple threads within longer processing pipelines.

\n\n

The Dataflow Library consists of a Nuget package built on top of the Task Parallel Library (TPL). It harnesses the actor-based programming model to provide a set of dataflow blocks data structures that buffer and process data, which you can connect together to form custom pipelines with messages passed between the blocks.

\n\n

By using the Dataflow Library you can concentrate on the messages and actions being performed, while the blocks marshal the messages, provide concurrent message processing and buffering as well as supporting cancellation and exception handling.

\n\r\n"}]},{"Id":48,"Name":" Mark Rendle","Bio":"","Links":[],"Sessions":[{"Id":3125,"Title":"The vNext Big Thing","Abstract":"\r\n

At TechEd this year, various Scotts and a David announced ASP.NET vNext, the biggest thing to happen to the Microsoft web developers story since ASP.NET 1.0.

\n\n

It's a moving target, so I can't say exactly what the talk will include, but I can guarantee it will cover:

\n\n\n\n

Look, it's all awesome. Just come and see.

\n\r\n"}]},{"Id":2316,"Name":" Matt Warren","Bio":"

I'm a C# dev who loves nothing better than finding and fixing performance issues. I also contribute to RavenDB and wrote the .NET port of HdrHistogram.

\n","Links":[{"Icon":"icon-globe","Url":"http://www.mattwarren.org"},{"Icon":"icon-twitter","Url":"http://twitter.com/matthewwarren"}],"Sessions":[{"Id":3140,"Title":"Performance is a Feature!","Abstract":"\r\n

Starting with the premise that \"Performance is a Feature\", this session will look at how to measure, what to measure and how get the best performance from your .NET code. We will look at real-world examples from the Roslyn code-base, StackOverflow and my personal experience of trying (but ultimately failing) to break a world record.

\n\r\n"}]},{"Id":309,"Name":" Mauro Servienti","Bio":"

CTO and Architect @ Mastreeno Ltd, Dublin, Long time Microsoft MVP for Visual C#, really passionated about DDD, CQRS and Event Sourcing. NServiceBus Champ and official trainer, RavendDB trainer.

\n\n

Has been working with the .net platform since the first Alpha in 1999.

\n","Links":[{"Icon":"icon-globe","Url":"http://milestone.topics.it"},{"Icon":"icon-twitter","Url":"http://twitter.com/mauroservienti"}],"Sessions":[{"Id":107,"Title":"NServiceBus: introduction to a message based distributed architecture","Abstract":"\r\n

SOA and distributed had been buzzwords for a long time, a message based architecture that embrace the SOA principles is the real solution to a scalable and distributed environment where HA or/and temporal decoupling are a must.\nIn this session we will introduce messaging concepts and see how NServiceBus, a powerfull toolkit to rule all the aspects of a messaging transport, can dramatically simplify the development process.

\n\r\n"}]},{"Id":3320,"Name":" Melinda Seckington","Bio":"

Melinda Seckington is a developer at FutureLearn, a social learning platform, backed by the Open University, offering free courses from a wide range of university partners, and cultural institutions like the British Council, British Library and British Museum.

\n\n

She loves attending and hacking at Hackdays, BarCamps and other tech meet ups, and since 2009 has been organising them at Geeks of London, including HACKED at the O2 last year. She also runs MissGeeky.com, a blog about all things geeky and girly.

\n","Links":[{"Icon":"icon-globe","Url":"http://missgeeky.com"},{"Icon":"icon-twitter","Url":"http://twitter.com/mseckington"}],"Sessions":[{"Id":2113,"Title":"DDD: Disney Driven Development","Abstract":"\r\n

Disney parks are built using their Four Keys of The Kingdom: Safety, Courtesy, Show and Efficiency. This talk will show examples of how Disney have applied these four keys everywhere in their parks and how we can extend those principles to our work as web developers.

\n\r\n"}]},{"Id":1313,"Name":" Pete Smith","Bio":"

Pete is a software consultant based in London with almost 10 years of experience making web applications with Asp.Net, specialising in API design and Javascript browser-based applications. He is the author of Superscribe - a graph based routing framework, and the OData library Linq to Querystring.

\n","Links":[{"Icon":"icon-globe","Url":"http://roysvork.wordpress.com"},{"Icon":"icon-twitter","Url":"http://twitter.com/roysvork"}],"Sessions":[{"Id":1106,"Title":"Beyond responsive design - UI for the modern web application","Abstract":"\r\n

Applications written for the modern web are being consumed not just on desktop browsers, but also on a myriad of other devices... even watches and glasses. If you design your application with a pc screen in mind, at worst you're either cutting your userbase in half or setting yourself up for an expensive redesign.

\n\n

In this talk I'll introduce you to some modern web design constructs, and the technologies that bring them to life. Learn how to create apps that work just as well on phone, mobile and desktop with no extra effort, and without restrictive layout frameworks. Who knows... you may even even see things that begin to rival native apps!

\n\r\n"}]},{"Id":3323,"Name":" Peter Mounce","Bio":"","Links":[],"Sessions":[{"Id":2115,"Title":"Embracing DevOps at JUST EAT, within a Microsoft platform","Abstract":"\r\n

JUST EAT changed its culture towards embracing DevOps principles, and heavily leveraged AWS to achieve it.

\n\n

We're a successful online takeaway ecommerce website running on a Microsoft-based platform.

\n\n

Come learn how we:

\n\n\n\r\n"}]},{"Id":34,"Name":" Phillip Trelford","Bio":"","Links":[],"Sessions":[{"Id":1114,"Title":"All your types are belong to us!","Abstract":"\r\n

Big Data tasks typically require acquiring and analysing data from a wide variety of data sources, visualizing the data and applying a barrage of statistical algorithms. This talk will show how this can be accomplished in Visual Studio on Windows or Xamarin Studio on Mac and Linux using F#'s REPL and Type Providers. \nType Providers give typed access to a wide range of data sources from CSV, JSON and XML to SQL, OData and Web Services, instantly without a code generation step. The Type Provider mechanism can also be used to analyse data with direct access to statistical packages like R and MATLAB as well as all the existing .Net libraries.\nFinally visualizations can be generated using F#'s desktop charting libraries, or with ASP.Net and even JavaScript libraries like HighCharts.\nExpect a sprinkling of anecdotes drawn from experiences working on large machine learning systems at Microsoft, and plenty of live demos.

\n\r\n"}]},{"Id":2314,"Name":" Sam Hogarth","Bio":"

Sam works with .NET at Nonlinear Dynamics, creating software to analyse proteomics and metabolomics experiments. Previously he has built desktop and web-based trading applications for some of the world's largest financial institutions, developed for two charting products (Visiblox and ShinobiControls) and contributed to the PropertyCross open-source project.

\n\n

In his spare time he runs, plays a ridiculous amount of board games, co-organises Newcastle Skeptics in the Pub and builds Android apps - including a scheduling app for DDD East Anglia! ;)

\n","Links":[{"Icon":"icon-globe","Url":"http://samhogy.co.uk"},{"Icon":"icon-twitter","Url":"http://twitter.com/samhogy"}],"Sessions":[{"Id":2109,"Title":"Keeping it responsive - cross-platform MVVM with ReactiveUI","Abstract":"\r\n

Building an awesome user interface is hard work. You've got the complexities of real life to deal with - handling user inputs, dealing with slow network connections and managing background workers. There's also this testing thing that people keep going on about!

\n\n

We need a way of handling the real world, whilst behaving in a predictable and responsive manner. Enter ReactiveUI, a fusion of MVVM and the Reactive Extensions (Rx) for .NET applications.

\n\n

In this session I'll introduce ReactiveUI, show you some tips and tricks, discuss the benefits and tradeoffs of the framework and show how it can be used as a solid foundation for building cross-platform .NET applications.

\n\r\n"}]},{"Id":4328,"Name":" Stephen Harrison","Bio":"","Links":[{"Icon":"icon-globe","Url":"http://Tinamous.com"},{"Icon":"icon-twitter","Url":"http://twitter.com/TinamousSteve"}],"Sessions":[{"Id":3119,"Title":"A Brief Introduction to Making your own (Internet of Things) Thing.","Abstract":"\r\n

The Internet of Things is exploding and it's a great time to join in: more and more devices like the Arduino, Netduino and Gadgeteer are becoming available. The question is, how do I get started?

\n\n

We will look at what is available in terms of popular hardware for building your Thing, and a demo of how to develop for the Arduino, followed by an introduction to the Gadgeteer and .Net Micro Framework, hopefully finishing up with a fairly simple but connected Gadgeteer based Thing (Wifi Allowing!).

\n\r\n"}]},{"Id":4332,"Name":" Tomas Petricek","Bio":"","Links":[],"Sessions":[{"Id":3132,"Title":"Taking your craft seriously with F#","Abstract":"\r\n

Many standard F# libraries and tools, including the compiler itself, are developed as open-source and have a large number of contributors. To successfully build such projects, you need to be serious about your craft. This includes comprehensive testing, using automated build tools, continuous integration, as well as creating great documentation and tutorials. In this talk, I'll talk about what I learned as an open-source F# contributor.

\n\n

Along the way, we'll look a number of risk-free ways of introducing F# into your workflow:

\n\n\n\n

In summary, this talk is a walkthrough covering some of the software engineering aspects of programming that have been working extremely well for the F# open-source ecosystem. After the talk, you'll have a good idea how to use some of the techniques in your daily job - but you may as well become an F# contributor!

\n\r\n"}]}] \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/images/venue.jpg b/BeyondResponsiveDesign.Menus/images/venue.jpg deleted file mode 100644 index f04b902..0000000 Binary files a/BeyondResponsiveDesign.Menus/images/venue.jpg and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/logo-large.png b/BeyondResponsiveDesign.Menus/logo-large.png deleted file mode 100644 index 9e98711..0000000 Binary files a/BeyondResponsiveDesign.Menus/logo-large.png and /dev/null differ diff --git a/BeyondResponsiveDesign.Menus/logo.svg b/BeyondResponsiveDesign.Menus/logo.svg deleted file mode 100644 index fb92405..0000000 --- a/BeyondResponsiveDesign.Menus/logo.svg +++ /dev/null @@ -1,148 +0,0 @@ - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - DeveloperDeveloper - Developer - ! - - East Anglia - - - diff --git a/BeyondResponsiveDesign.Menus/packages.config b/BeyondResponsiveDesign.Menus/packages.config deleted file mode 100644 index 504a8fb..0000000 --- a/BeyondResponsiveDesign.Menus/packages.config +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/styles/styles.css.map b/BeyondResponsiveDesign.Menus/styles/styles.css.map deleted file mode 100644 index a28f221..0000000 --- a/BeyondResponsiveDesign.Menus/styles/styles.css.map +++ /dev/null @@ -1,9 +0,0 @@ -{ - "version": 3, - "file": "styles.css", - "sources": [ - "styles.less" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/styles/theme.css.map b/BeyondResponsiveDesign.Menus/styles/theme.css.map deleted file mode 100644 index 357415f..0000000 --- a/BeyondResponsiveDesign.Menus/styles/theme.css.map +++ /dev/null @@ -1,9 +0,0 @@ -{ - "version": 3, - "file": "theme.css", - "sources": [ - "theme.less" - ], - "names": [], - "mappings": "AAmCA;EACI,aAAa,UAAb;EACA,SAAS,+DAAT;EACA,SAAS,sEAAsE,OAAO,YAAY,iEAAiE,OAAO,aAAa,gEAAgE,OAAO,iBAAiB,wEAAwE,OAAO,MAA9V;;AAGJ;EACI,2BAAA;EACA,wBAAA;EACA,uBAAA;EACA,sBAAA;EACA,mBAAA;;AAGJ;EACI,aArCQ,YAAW,kBAAiB,aAAY,SAAQ,YAqCxD;EACA,cAAA;EACA,gBAAA;EACA,gBAAA;EACA,SAAA;;AAGJ;EACI,cAAA;EACA,gBAAA;EACA,qBAAA;EACA,6CAAA;;AAGJ;EACI,mBAAA;EACA,UAAA;EACA,oBAAA;;AAGJ;AAAI;AAAI;EACJ,aA1DQ,YAAW,kBAAiB,aAAY,SAAQ,YA0DxD;EACA,kBAAA;EACA,uBAAA;EACA,UAAA;EACA,cAAA;EACA,cAAA;;AAGJ,CAAC;EACG,cAAA;;AAGJ;EACI,WAAA;EACA,yBAAA;EACA,iBAAA;EACA,UAAA;EACA,SAAA;EACA,iBAAA;EACA,kBAAA;;AAEA,KAAC,OAAQ,QAAQ,KAAI,IAAI;EACrB,YAAA;EACA,cAAA;;AAGJ,KAAC,cAAe,QAAQ,KAAK;EACzB,cAAA;EACA,WAAA;;AAGJ,KAAC,cAAe,QAAQ,KAAK,KAAK;EA5DlC,2BAAA;EACA,wBAAA;EACA,uBAAA;EACA,sBAAA;EACA,mBAAA;;AAqCJ,KAuBI,QAAQ;EACJ,gCAAA;EACA,eAAA;;AAzBR,KAuBI,QAAQ,KAIJ;EACI,mBAAA;EACA,gCAAA;EACA,gBAAA;EACA,gBAAA;;AA/BZ,KAuBI,QAAQ,KAIJ,KAMI;EACI,gBAAA;EACA,WAAA;;AAMhB,GAAG;EACC,mBAAA;EACA,gBAAA;EACA,2BAAA;EACA,8CAAA;EACA,sCAAA;EACA,kBAAA;EACA,cAAA;EACA,UAAA;;AARJ,GAAG,MAUC;EACI,qBAAA;EACA,cAAA;EACA,UAAA;EACA,SAAA;;AAdR,GAAG,MAUC,KAMI;EACI,WAAA;EACA,cAAA;EACA,SAAA;EACA,UAAA;EACA,sBAAA;EACA,cAAA;EACA,eAAA;EACA,cAAA;EACA,WAAA;EACA,gBAAA;EACA,2BAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;;AAEA,GAhCT,MAUC,KAMI,KAgBK,IAAI;EACD,8BAAA;;AAjChB,GAAG,MAUC,KAMI,KAoBI;EACI,mBAAA;EACA,cAAA;EACA,qBAAA;EACA,cAAA;EACA,4BAAA;EACA,oBAAA;EACA,2BAAA;EACA,0BAAA;EACA,uBAAA;;AAMhB,IAAK;EACD,mBAAA;EACA,4CAAA;EACA,MAAM,+BAAN;;AAHJ,IAAK,SAKD;EACI,gBAAA;EACA,gBAAA;EACA,gBAAA;EACA,cAAA;EACA,kBAAA;EACA,cAAA;;AAXR,IAAK,SAcD;EACI,WAAA;EACA,cAAA;EACA,SAAA;EACA,UAAA;EACA,qBAAA;EACA,mBAAA;;AAEA,IAtBH,SAcD,KAQK;EACG,YAAA;;AAvBZ,IAAK,SAcD,KAYI;EACI,kBAAA;EACA,WAAA;EACA,SAAA;EACA,mBAAA;EACA,gBAAA;EACA,cAAA;EACA,aAAA;EACA,UAAA;EACA,gBAAA;EACA,cAAA;;AApCZ,IAAK,SAcD,KAYI,KAYI;EACI,cAAA;EACA,gBAAA;;AAxChB,IAAK,SAcD,KAYI,KAiBI;EACI,cAAA;EACA,WAAA;EACA,0BAAA;EACA,cAAA;EACA,aAAA;EACA,6CAAA;EACA,SAAA;;AAEA,IApDX,SAcD,KAYI,KAiBI,IASK;EACG,cAAA;;AArDpB,IAAK,SAcD,KAYI,KAiBI,IAaI;EACI,SAAA;EACA,UAAA;;AA1DpB,IAAK,SAcD,KAYI,KAiBI,IAaI,IAII;EACI,mBAAA;;AAIR,IAjEX,SAcD,KAYI,KAiBI,IAsBK;EACG,cAAA;EACA,eAAA;EACA,qBAAA;;AAIR,IAxEP,SAcD,KAYI,KA8CK;EACG,cAAA;EACA,eAAA;EACA,mBAAA;;AAMhB,IAAK;EACD,yBAAA;EACA,6CAAA;EACA,UAAA;EACA,SAAA;;AAJJ,IAAK,MAMD,MAAM,MAAM;EACR,qBAAA;EACA,cAAA;EACA,SAAA;EACA,UAAA;EACA,WAAA;;AAXR,IAAK,MAMD,MAAM,MAAM,KAOR;EACI,cAAA;EACA,cAAA;EACA,UAAA;EACA,SAAA;EACA,sBAAA;EACA,kBAAA;;AAnBZ,IAAK,MAMD,MAAM,MAAM,KAOR,KAQI;EACI,sBAAA;;AAtBhB,IAAK,MAMD,MAAM,MAAM,KAOR,KAYI;EACI,kBAAA;EACA,UAAA;;AA3BhB,IAAK,MAMD,MAAM,MAAM,KAOR,KAYI,IAII;EACI,cAAA;EACA,gBAAA;EACA,sBAAA;EACA,cAAA;EACA,gBAAA;EACA,SAAA;EACA,0BAAA;EACA,0BAAA;EACA,2BAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;;AA3CpB,IAAK,MAMD,MAAM,MAAM,KAOR,KAYI,IAII,KAgBI;EACI,mBAAA;EACA,gBAAA;EACA,2BAAA;EACA,0BAAA;EACA,uBAAA;;AAlDxB,IAAK,MAMD,MAAM,MAAM,KAOR,KAYI,IAII,KAwBI,IAAG;EACC,WAAA;EACA,aAAA;EACA,iBAAA;EACA,oBAAA;EACA,aAAA;;AA1DxB,IAAK,MAMD,MAAM,MAAM,KAOR,KAkDI;EACI,gBAAA;;EAEA,YAAA;;AAlEhB,IAAK,MAMD,MAAM,MAAM,KAOR,KAkDI,MAKI;EACI,qBAAA;EACA,cAAA;EACA,SAAA;EACA,UAAA;;AAxEpB,IAAK,MAMD,MAAM,MAAM,KAOR,KAkDI,MAKI,KAMI;EACI,kBAAA;EACA,iBAAA;EACA,cAAA;EACA,SAAA;EACA,UAAA;EACA,sBAAA;EACA,cAAA;EACA,kBAAA;;AAlFxB,IAAK,MAMD,MAAM,MAAM,KAOR,KAkDI,MAKI,KAMI,KAUI;EACI,cAAA;EACA,SAAA;EACA,2BAAA;EACA,cAAA;EACA,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,2BAAA;EACA,0BAAA;EACA,uBAAA;;AA9F5B,IAAK,MAMD,MAAM,MAAM,KAOR,KAkDI,MAKI,KAMI,KAUI,IAYI,IAAG;EACC,WAAA;EACA,aAAA;EACA,iBAAA;EACA,cAAA;EACA,kBAAA;;AAGJ,IAxGvB,MAMD,MAAM,MAAM,KAOR,KAkDI,MAKI,KAMI,KAUI,IAoBK;EACG,cAAA;;AAIR,IA7GnB,MAMD,MAAM,MAAM,KAOR,KAkDI,MAKI,KAMI,KAmCK,OACG;EACI,cAAA;;AAOpB,IAtHP,MAMD,MAAM,MAAM,KAOR,KAyGK,OACG;EACI,gBAAA;EACA,YAAA;;AAIQ,IA7HvB,MAMD,MAAM,MAAM,KAOR,KAyGK,OACG,MAII,KACI,KACK;EACG,yBAAA;EACA,cAAA;;AAFJ,IA7HvB,MAMD,MAAM,MAAM,KAOR,KAyGK,OACG,MAII,KACI,KACK,OAIG;EACI,cAAA;;AAZxB,IAtHP,MAMD,MAAM,MAAM,KAOR,KAyGK,OAmBG;EACI,cAAA;EACA,qBAAA;EACA,yBAAA;;AAtBR,IAtHP,MAMD,MAAM,MAAM,KAOR,KAyGK,OAmBG,IAKI;EACI,cAAA;EACA,qBAAA;EACA,yBAAA;;AA3BZ,IAtHP,MAMD,MAAM,MAAM,KAOR,KAyGK,OAmBG,IAKI,KAKI,IAAG;EACC,sBAAsB,2BAAtB;;AAS5B,IAAK;EACD,mBAAA;;AAGI,IAJH,OAGD,QACK,aAAc;EACX,+BAAA;;AALZ,IAAK,OAGD,QAKI,SACI;EACI,gBAAA;EACA,cAAA;EACA,WAAA;EACA,sBAAA;EACA,gCAAA;EACA,SAAA;EACA,mBAAA;EACA,gBAAA;EACA,2BAAA;EACA,0BAAA;EACA,uBAAA;;AApBhB,IAAK,OAGD,QAKI,SACI,KAaI,IAAG;EACC,kBAAA;EACA,cAAA;EACA,cAAA;EACA,gBAAA;EACA,iBAAA;;AA3BpB,IAAK,OAGD,QAKI,SACI,KAqBI;EACI,yBAAA;EACA,gBAAA;EACA,mBAAA;EACA,cAAA;;AAOpB,IAAK,OAAO,QAAO;EACf,qDAAA;EACA,6CAAA;;AAFJ,IAAK,OAAO,QAAO,cAIf,UAAS;EACL,mBAAA;;AAIR,IAAK,OAAO,UAAU,MAAK,QACvB;EACI,sBAAA;EACA,gBAAA;;AAHR,IAAK,OAAO,UAAU,MAAK,QAMvB;EACI,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,SAAA;;AAEA,IAZH,OAAO,UAAU,MAAK,QAMvB,KAMK;EACG,kBAAA;EACA,SAAA;EACA,OAAA;EACA,QAAA;EACA,SAAS,GAAT;EACA,WAAA;EACA,gCAAA;;AAnBZ,IAAK,OAAO,UAAU,MAAK,QAMvB,KAgBI;EACI,UAAA;EACA,mBAAA;EACA,cAAA;EACA,SAAA;EACA,eAAA;EACA,gBAAA;;AA5BZ,IAAK,OAAO,UAAU,MAAK,QAMvB,KAgBI,KAQI;EACI,kBAAA;EACA,kBAAA;EACA,WAAA;EACA,WAAA;EACA,gCAAA;;AAGJ,IAtCP,OAAO,UAAU,MAAK,QAMvB,KAgBI,KAgBK,OACG;EACI,mBAAA;;AAFR,IAtCP,OAAO,UAAU,MAAK,QAMvB,KAgBI,KAgBK,OAKG;EACI,cAAA;;AA5CpB,IAAK,OAAO,UAAU,MAAK,QAMvB,KAgBI,KA0BI;EACI,gBAAA;EACA,kBAAA;EACA,qBAAA;EACA,cAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;EACA,wBAAA;;AAxDhB,IAAK,OAAO,UAAU,MAAK,QAMvB,KAgBI,KA0BI,IAUI;EACI,gBAAA;EACA,2BAAA;;AAGJ,IA/DX,OAAO,UAAU,MAAK,QAMvB,KAgBI,KA0BI,IAeK;EACG,cAAA" -} \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/styles/transforms.css.map b/BeyondResponsiveDesign.Menus/styles/transforms.css.map deleted file mode 100644 index 4629610..0000000 --- a/BeyondResponsiveDesign.Menus/styles/transforms.css.map +++ /dev/null @@ -1,9 +0,0 @@ -{ - "version": 3, - "file": "transforms.css", - "sources": [ - "transforms.less" - ], - "names": [], - "mappings": "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" -} \ No newline at end of file diff --git a/BeyondResponsiveDesign.sln b/BeyondResponsiveDesign.sln index 5322992..086a68e 100644 --- a/BeyondResponsiveDesign.sln +++ b/BeyondResponsiveDesign.sln @@ -1,10 +1,8 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 +VisualStudioVersion = 12.0.31101.0 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeyondResponsiveDesign.Menus", "BeyondResponsiveDesign.Menus\BeyondResponsiveDesign.Menus.csproj", "{54C61F9C-7B4B-4071-A7FB-5A9FE4D9777D}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataScraper", "DataScraper\DataScraper.csproj", "{F9BA2DCB-6095-481E-B1A8-1BC44FC075CC}" EndProject Global @@ -13,10 +11,6 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {54C61F9C-7B4B-4071-A7FB-5A9FE4D9777D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {54C61F9C-7B4B-4071-A7FB-5A9FE4D9777D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {54C61F9C-7B4B-4071-A7FB-5A9FE4D9777D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {54C61F9C-7B4B-4071-A7FB-5A9FE4D9777D}.Release|Any CPU.Build.0 = Release|Any CPU {F9BA2DCB-6095-481E-B1A8-1BC44FC075CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F9BA2DCB-6095-481E-B1A8-1BC44FC075CC}.Debug|Any CPU.Build.0 = Debug|Any CPU {F9BA2DCB-6095-481E-B1A8-1BC44FC075CC}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/BeyondResponsiveDesign/.idea/.name b/BeyondResponsiveDesign/.idea/.name new file mode 100644 index 0000000..aa40113 --- /dev/null +++ b/BeyondResponsiveDesign/.idea/.name @@ -0,0 +1 @@ +BeyondResponsiveDesign \ No newline at end of file diff --git a/BeyondResponsiveDesign/.idea/BeyondResponsiveDesign.iml b/BeyondResponsiveDesign/.idea/BeyondResponsiveDesign.iml new file mode 100644 index 0000000..c956989 --- /dev/null +++ b/BeyondResponsiveDesign/.idea/BeyondResponsiveDesign.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/BeyondResponsiveDesign/.idea/deployment.xml b/BeyondResponsiveDesign/.idea/deployment.xml new file mode 100644 index 0000000..994c4bd --- /dev/null +++ b/BeyondResponsiveDesign/.idea/deployment.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/BeyondResponsiveDesign/.idea/encodings.xml b/BeyondResponsiveDesign/.idea/encodings.xml new file mode 100644 index 0000000..d821048 --- /dev/null +++ b/BeyondResponsiveDesign/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/BeyondResponsiveDesign/.idea/misc.xml b/BeyondResponsiveDesign/.idea/misc.xml new file mode 100644 index 0000000..8662aa9 --- /dev/null +++ b/BeyondResponsiveDesign/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/BeyondResponsiveDesign/.idea/modules.xml b/BeyondResponsiveDesign/.idea/modules.xml new file mode 100644 index 0000000..470553a --- /dev/null +++ b/BeyondResponsiveDesign/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/BeyondResponsiveDesign/.idea/scopes/scope_settings.xml b/BeyondResponsiveDesign/.idea/scopes/scope_settings.xml new file mode 100644 index 0000000..922003b --- /dev/null +++ b/BeyondResponsiveDesign/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/BeyondResponsiveDesign/.idea/vcs.xml b/BeyondResponsiveDesign/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/BeyondResponsiveDesign/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/BeyondResponsiveDesign/.idea/watcherTasks.xml b/BeyondResponsiveDesign/.idea/watcherTasks.xml new file mode 100644 index 0000000..b0c425c --- /dev/null +++ b/BeyondResponsiveDesign/.idea/watcherTasks.xml @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file diff --git a/BeyondResponsiveDesign/.idea/workspace.xml b/BeyondResponsiveDesign/.idea/workspace.xml new file mode 100644 index 0000000..826e03a --- /dev/null +++ b/BeyondResponsiveDesign/.idea/workspace.xml @@ -0,0 +1,981 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + 1422990778861 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/cache.manifest b/BeyondResponsiveDesign/cache.manifest similarity index 52% rename from BeyondResponsiveDesign.Menus/cache.manifest rename to BeyondResponsiveDesign/cache.manifest index c741696..d5bd043 100644 --- a/BeyondResponsiveDesign.Menus/cache.manifest +++ b/BeyondResponsiveDesign/cache.manifest @@ -3,47 +3,64 @@ # Explicitly cached 'master entries'. CACHE: +content/agenda.html +content/agenda.json +content/cfp.html +content/contact.html +content/home.html +content/presentation.html +content/sessions.html +content/speakerdetail.html +content/speakers.html +content/speakers.json +content/sponsors.html +content/team.html +content/venue.html +images/speakers/adam.warski.5.jpg +images/speakers/alberto.lopez.jpg +images/speakers/david.delabassee.jpg +images/speakers/greg.young.7106.jpg +images/speakers/juergenhoeller.jpg +images/speakers/kensipe1.jpg +images/speakers/lukaseder1.jpg +images/speakers/mario.fusco.jpg +images/speakers/mariozechner.jpg +images/speakers/michaelnitschinger.jpg +images/speakers/norberto1.jpg +images/speakers/ogierke.jpg +images/speakers/paul.szulc.jpg +images/speakers/radcortez.jpg +images/speakers/rafaelwinterhalter.jpg +images/speakers/roman8.jpg +images/speakers/roysvork.jpg +images/speakers/sergey.kuksenko.jpg +images/speakers/simonmaple.jpg +images/speakers/simonritter.jpg +images/speakers/svenpeters.jpg +images/sponsors/ejug.png +images/sponsors/gdg-vienna.png +images/sponsors/jsug.png +images/sponsors/pluralsight.png +images/sponsors/Typesafe.png +images/sponsors/vienna-scala-user-group-logo.png +images/Devoxx_Unknown.png +images/facebook.png images/favicon.ico images/icon-128.png images/icon-196.png -images/logo-small-green.png -images/logo-small.png -images/logo-notext-green.png -images/googleplaystore.gif -images/itunesappstore.gif -images/venue.jpg -images/speakers/11.jpg -images/speakers/1313.jpg -images/speakers/23.jpg -images/speakers/2311.jpg -images/speakers/2312.jpg -images/speakers/2314.jpg -images/speakers/2316.jpg -images/speakers/293.jpg -images/speakers/30.jpg -images/speakers/302.jpg -images/speakers/303.jpg -images/speakers/309.jpg -images/speakers/3319.jpg -images/speakers/3320.jpg -images/speakers/3322.jpg -images/speakers/3323.jpg -images/speakers/3324.jpg -images/speakers/34.jpg -images/speakers/4328.jpg -images/speakers/4331.jpg -images/speakers/4332.jpg -images/speakers/48.jpg -images/speakers/53.jpg -images/speakers/5333.jpg -images/speakers/62.jpg -images/accommodation/doubletree-hilton.jpg -images/accommodation/premierinn-a14-j32.jpg -images/accommodation/travelodge-cambridge-central.jpg -images/accommodation/travelodge-newmarket-road.jpg -images/accommodation/travelodge-orchard-park.jpg -images/accommodation/university-arms.jpg -images/accommodation/varsity.jpg +images/linkedin.png +images/logo-notext.png +images/twitter.png +scripts/fastclick.js +scripts/interactions.js +scripts/jquery.detect_swipe.js +scripts/jquery-2.1.1.intellisense.js +scripts/jquery-2.1.1.js +scripts/jquery-2.1.1.min.js +scripts/jquery-2.1.1.min.map +scripts/knockout-3.1.0.debug.js +scripts/knockout-3.1.0.js +scripts/touchscrollfix.js styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot?iefix styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.svg#webfont @@ -59,23 +76,4 @@ styles/styles.css styles/theme.css styles/transforms.css styles/font-awesome.min.css -scripts/fastclick.js -scripts/interactions.js -scripts/jquery-2.1.1.min.js -scripts/jquery.detect_swipe.js -scripts/knockout-3.1.0.js -scripts/touchscrollfix.js -Index.html -content/accommodation.html -content/agenda.json -content/agenda.html -content/cfp.html -content/contact.html -content/home.html -content/presentation.html -content/sessions.html -content/speakers.json -content/speakers.html -content/speakerdetail.html -content/sponsors.html -content/venue.html \ No newline at end of file +Index.html \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/content/agenda.html b/BeyondResponsiveDesign/content/agenda.html similarity index 69% rename from BeyondResponsiveDesign.Menus/content/agenda.html rename to BeyondResponsiveDesign/content/agenda.html index 33f3e8d..c5a325e 100644 --- a/BeyondResponsiveDesign.Menus/content/agenda.html +++ b/BeyondResponsiveDesign/content/agenda.html @@ -1,26 +1,21 @@ 
@@ -30,13 +25,13 @@

- +

- - + +
@@ -56,13 +51,12 @@

+ + + + + + + + + + + + +
+ + + + +
+ + + + + +
+
+ + + diff --git a/BeyondResponsiveDesign.Menus/Scripts/fastclick.js b/BeyondResponsiveDesign/scripts/fastclick.js similarity index 100% rename from BeyondResponsiveDesign.Menus/Scripts/fastclick.js rename to BeyondResponsiveDesign/scripts/fastclick.js diff --git a/BeyondResponsiveDesign.Menus/Scripts/interactions.js b/BeyondResponsiveDesign/scripts/interactions.js similarity index 98% rename from BeyondResponsiveDesign.Menus/Scripts/interactions.js rename to BeyondResponsiveDesign/scripts/interactions.js index 12cfd12..ef99451 100644 --- a/BeyondResponsiveDesign.Menus/Scripts/interactions.js +++ b/BeyondResponsiveDesign/scripts/interactions.js @@ -229,8 +229,8 @@ target.empty(); target.html(html); - $("nav > div > div > ul li").removeClass("active"); - var menuitem = $("nav > div > div > ul li#menu-" + location); + $("nav > div > ul li").removeClass("active"); + var menuitem = $("nav > div > ul li#menu-" + location); menuitem.addClass("active"); var title = menuitem.find("a span").first().text(); diff --git a/BeyondResponsiveDesign.Menus/Scripts/jquery-2.1.1.intellisense.js b/BeyondResponsiveDesign/scripts/jquery-2.1.1.intellisense.js similarity index 100% rename from BeyondResponsiveDesign.Menus/Scripts/jquery-2.1.1.intellisense.js rename to BeyondResponsiveDesign/scripts/jquery-2.1.1.intellisense.js diff --git a/BeyondResponsiveDesign.Menus/Scripts/jquery-2.1.1.js b/BeyondResponsiveDesign/scripts/jquery-2.1.1.js similarity index 100% rename from BeyondResponsiveDesign.Menus/Scripts/jquery-2.1.1.js rename to BeyondResponsiveDesign/scripts/jquery-2.1.1.js diff --git a/BeyondResponsiveDesign.Menus/Scripts/jquery-2.1.1.min.js b/BeyondResponsiveDesign/scripts/jquery-2.1.1.min.js similarity index 100% rename from BeyondResponsiveDesign.Menus/Scripts/jquery-2.1.1.min.js rename to BeyondResponsiveDesign/scripts/jquery-2.1.1.min.js diff --git a/BeyondResponsiveDesign.Menus/Scripts/jquery-2.1.1.min.map b/BeyondResponsiveDesign/scripts/jquery-2.1.1.min.map similarity index 100% rename from BeyondResponsiveDesign.Menus/Scripts/jquery-2.1.1.min.map rename to BeyondResponsiveDesign/scripts/jquery-2.1.1.min.map diff --git a/BeyondResponsiveDesign.Menus/Scripts/jquery.detect_swipe.js b/BeyondResponsiveDesign/scripts/jquery.detect_swipe.js similarity index 100% rename from BeyondResponsiveDesign.Menus/Scripts/jquery.detect_swipe.js rename to BeyondResponsiveDesign/scripts/jquery.detect_swipe.js diff --git a/BeyondResponsiveDesign.Menus/Scripts/knockout-3.1.0.debug.js b/BeyondResponsiveDesign/scripts/knockout-3.1.0.debug.js similarity index 100% rename from BeyondResponsiveDesign.Menus/Scripts/knockout-3.1.0.debug.js rename to BeyondResponsiveDesign/scripts/knockout-3.1.0.debug.js diff --git a/BeyondResponsiveDesign.Menus/Scripts/knockout-3.1.0.js b/BeyondResponsiveDesign/scripts/knockout-3.1.0.js similarity index 100% rename from BeyondResponsiveDesign.Menus/Scripts/knockout-3.1.0.js rename to BeyondResponsiveDesign/scripts/knockout-3.1.0.js diff --git a/BeyondResponsiveDesign.Menus/Scripts/touchscrollfix.js b/BeyondResponsiveDesign/scripts/touchscrollfix.js similarity index 100% rename from BeyondResponsiveDesign.Menus/Scripts/touchscrollfix.js rename to BeyondResponsiveDesign/scripts/touchscrollfix.js diff --git a/BeyondResponsiveDesign.Menus/styles/font-awesome.css b/BeyondResponsiveDesign/styles/font-awesome.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/font-awesome.css rename to BeyondResponsiveDesign/styles/font-awesome.css diff --git a/BeyondResponsiveDesign.Menus/styles/font-awesome.min.css b/BeyondResponsiveDesign/styles/font-awesome.min.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/font-awesome.min.css rename to BeyondResponsiveDesign/styles/font-awesome.min.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/FontAwesome.otf b/BeyondResponsiveDesign/styles/fonts/FontAwesome.otf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/FontAwesome.otf rename to BeyondResponsiveDesign/styles/fonts/FontAwesome.otf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/fontawesome-webfont.eot b/BeyondResponsiveDesign/styles/fonts/fontawesome-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/fontawesome-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/fontawesome-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/fontawesome-webfont.svg b/BeyondResponsiveDesign/styles/fonts/fontawesome-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/fontawesome-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/fontawesome-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/fontawesome-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/fontawesome-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/fontawesome-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/fontawesome-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/fontawesome-webfont.woff b/BeyondResponsiveDesign/styles/fonts/fontawesome-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/fontawesome-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/fontawesome-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/OpenSans-Bold-demo.html b/BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/OpenSans-Bold-demo.html similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/OpenSans-Bold-demo.html rename to BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/OpenSans-Bold-demo.html diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.eot b/BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.svg b/BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.woff b/BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/OpenSans-Bold-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/specimen_files/OpenSans-Bold-cleartype.png b/BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/specimen_files/OpenSans-Bold-cleartype.png similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/specimen_files/OpenSans-Bold-cleartype.png rename to BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/specimen_files/OpenSans-Bold-cleartype.png diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/specimen_files/easytabs.js b/BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/specimen_files/easytabs.js similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/specimen_files/easytabs.js rename to BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/specimen_files/easytabs.js diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/specimen_files/grid_12-825-55-15.css b/BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/specimen_files/grid_12-825-55-15.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/specimen_files/grid_12-825-55-15.css rename to BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/specimen_files/grid_12-825-55-15.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/specimen_files/specimen_stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/specimen_files/specimen_stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/specimen_files/specimen_stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/specimen_files/specimen_stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bold_macroman/stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_bold_macroman/stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-demo.html b/BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-demo.html similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-demo.html rename to BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-demo.html diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.eot b/BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.svg b/BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.woff b/BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/OpenSans-BoldItalic-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/specimen_files/OpenSans-BoldItalic-cleartype.png b/BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/specimen_files/OpenSans-BoldItalic-cleartype.png similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/specimen_files/OpenSans-BoldItalic-cleartype.png rename to BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/specimen_files/OpenSans-BoldItalic-cleartype.png diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/specimen_files/easytabs.js b/BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/specimen_files/easytabs.js similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/specimen_files/easytabs.js rename to BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/specimen_files/easytabs.js diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/specimen_files/grid_12-825-55-15.css b/BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/specimen_files/grid_12-825-55-15.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/specimen_files/grid_12-825-55-15.css rename to BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/specimen_files/grid_12-825-55-15.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/specimen_files/specimen_stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/specimen_files/specimen_stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/specimen_files/specimen_stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/specimen_files/specimen_stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_bolditalic_macroman/stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_bolditalic_macroman/stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-demo.html b/BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-demo.html similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-demo.html rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-demo.html diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.eot b/BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.svg b/BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.woff b/BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/OpenSans-ExtraBold-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/specimen_files/OpenSans-ExtraBold-cleartype.png b/BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/specimen_files/OpenSans-ExtraBold-cleartype.png similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/specimen_files/OpenSans-ExtraBold-cleartype.png rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/specimen_files/OpenSans-ExtraBold-cleartype.png diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/specimen_files/easytabs.js b/BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/specimen_files/easytabs.js similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/specimen_files/easytabs.js rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/specimen_files/easytabs.js diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/specimen_files/grid_12-825-55-15.css b/BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/specimen_files/grid_12-825-55-15.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/specimen_files/grid_12-825-55-15.css rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/specimen_files/grid_12-825-55-15.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/specimen_files/specimen_stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/specimen_files/specimen_stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/specimen_files/specimen_stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/specimen_files/specimen_stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabold_macroman/stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabold_macroman/stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-demo.html b/BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-demo.html similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-demo.html rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-demo.html diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.eot b/BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.svg b/BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.woff b/BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/OpenSans-ExtraBoldItalic-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/OpenSans-ExtraBoldItalic-cleartype.png b/BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/OpenSans-ExtraBoldItalic-cleartype.png similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/OpenSans-ExtraBoldItalic-cleartype.png rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/OpenSans-ExtraBoldItalic-cleartype.png diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/easytabs.js b/BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/easytabs.js similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/easytabs.js rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/easytabs.js diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/grid_12-825-55-15.css b/BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/grid_12-825-55-15.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/grid_12-825-55-15.css rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/grid_12-825-55-15.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/specimen_stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/specimen_stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/specimen_stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/specimen_files/specimen_stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_extrabolditalic_macroman/stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_extrabolditalic_macroman/stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/OpenSans-Italic-demo.html b/BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/OpenSans-Italic-demo.html similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/OpenSans-Italic-demo.html rename to BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/OpenSans-Italic-demo.html diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.eot b/BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.svg b/BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.woff b/BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/OpenSans-Italic-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/specimen_files/OpenSans-Italic-cleartype.png b/BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/specimen_files/OpenSans-Italic-cleartype.png similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/specimen_files/OpenSans-Italic-cleartype.png rename to BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/specimen_files/OpenSans-Italic-cleartype.png diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/specimen_files/easytabs.js b/BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/specimen_files/easytabs.js similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/specimen_files/easytabs.js rename to BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/specimen_files/easytabs.js diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/specimen_files/grid_12-825-55-15.css b/BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/specimen_files/grid_12-825-55-15.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/specimen_files/grid_12-825-55-15.css rename to BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/specimen_files/grid_12-825-55-15.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/specimen_files/specimen_stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/specimen_files/specimen_stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/specimen_files/specimen_stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/specimen_files/specimen_stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_italic_macroman/stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_italic_macroman/stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/OpenSans-Light-demo.html b/BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/OpenSans-Light-demo.html similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/OpenSans-Light-demo.html rename to BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/OpenSans-Light-demo.html diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.eot b/BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.svg b/BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.woff b/BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/OpenSans-Light-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/specimen_files/OpenSans-Light-cleartype.png b/BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/specimen_files/OpenSans-Light-cleartype.png similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/specimen_files/OpenSans-Light-cleartype.png rename to BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/specimen_files/OpenSans-Light-cleartype.png diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/specimen_files/easytabs.js b/BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/specimen_files/easytabs.js similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/specimen_files/easytabs.js rename to BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/specimen_files/easytabs.js diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/specimen_files/grid_12-825-55-15.css b/BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/specimen_files/grid_12-825-55-15.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/specimen_files/grid_12-825-55-15.css rename to BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/specimen_files/grid_12-825-55-15.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/specimen_files/specimen_stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/specimen_files/specimen_stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/specimen_files/specimen_stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/specimen_files/specimen_stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_light_macroman/stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_light_macroman/stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-demo.html b/BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-demo.html similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-demo.html rename to BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-demo.html diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.eot b/BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.svg b/BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.woff b/BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/OpenSans-LightItalic-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/specimen_files/OpenSans-LightItalic-cleartype.png b/BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/specimen_files/OpenSans-LightItalic-cleartype.png similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/specimen_files/OpenSans-LightItalic-cleartype.png rename to BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/specimen_files/OpenSans-LightItalic-cleartype.png diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/specimen_files/easytabs.js b/BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/specimen_files/easytabs.js similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/specimen_files/easytabs.js rename to BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/specimen_files/easytabs.js diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/specimen_files/grid_12-825-55-15.css b/BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/specimen_files/grid_12-825-55-15.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/specimen_files/grid_12-825-55-15.css rename to BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/specimen_files/grid_12-825-55-15.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/specimen_files/specimen_stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/specimen_files/specimen_stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/specimen_files/specimen_stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/specimen_files/specimen_stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_lightitalic_macroman/stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_lightitalic_macroman/stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/OpenSans-Regular-demo.html b/BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/OpenSans-Regular-demo.html similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/OpenSans-Regular-demo.html rename to BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/OpenSans-Regular-demo.html diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot b/BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.svg b/BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.woff b/BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/OpenSans-Regular-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/specimen_files/OpenSans-Regular-cleartype.png b/BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/specimen_files/OpenSans-Regular-cleartype.png similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/specimen_files/OpenSans-Regular-cleartype.png rename to BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/specimen_files/OpenSans-Regular-cleartype.png diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/specimen_files/easytabs.js b/BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/specimen_files/easytabs.js similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/specimen_files/easytabs.js rename to BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/specimen_files/easytabs.js diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/specimen_files/grid_12-825-55-15.css b/BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/specimen_files/grid_12-825-55-15.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/specimen_files/grid_12-825-55-15.css rename to BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/specimen_files/grid_12-825-55-15.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/specimen_files/specimen_stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/specimen_files/specimen_stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/specimen_files/specimen_stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/specimen_files/specimen_stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_regular_macroman/stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_regular_macroman/stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-demo.html b/BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-demo.html similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-demo.html rename to BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-demo.html diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.eot b/BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.svg b/BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.woff b/BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/OpenSans-Semibold-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/specimen_files/OpenSans-Semibold-cleartype.png b/BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/specimen_files/OpenSans-Semibold-cleartype.png similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/specimen_files/OpenSans-Semibold-cleartype.png rename to BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/specimen_files/OpenSans-Semibold-cleartype.png diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/specimen_files/easytabs.js b/BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/specimen_files/easytabs.js similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/specimen_files/easytabs.js rename to BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/specimen_files/easytabs.js diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/specimen_files/grid_12-825-55-15.css b/BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/specimen_files/grid_12-825-55-15.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/specimen_files/grid_12-825-55-15.css rename to BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/specimen_files/grid_12-825-55-15.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/specimen_files/specimen_stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/specimen_files/specimen_stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/specimen_files/specimen_stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/specimen_files/specimen_stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibold_macroman/stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_semibold_macroman/stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-demo.html b/BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-demo.html similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-demo.html rename to BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-demo.html diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.eot b/BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.eot similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.eot rename to BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.eot diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.svg b/BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.svg similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.svg rename to BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.svg diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.ttf b/BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.ttf similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.ttf rename to BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.ttf diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.woff b/BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.woff similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.woff rename to BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/OpenSans-SemiboldItalic-webfont.woff diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/specimen_files/OpenSans-SemiboldItalic-cleartype.png b/BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/specimen_files/OpenSans-SemiboldItalic-cleartype.png similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/specimen_files/OpenSans-SemiboldItalic-cleartype.png rename to BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/specimen_files/OpenSans-SemiboldItalic-cleartype.png diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/specimen_files/easytabs.js b/BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/specimen_files/easytabs.js similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/specimen_files/easytabs.js rename to BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/specimen_files/easytabs.js diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/specimen_files/grid_12-825-55-15.css b/BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/specimen_files/grid_12-825-55-15.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/specimen_files/grid_12-825-55-15.css rename to BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/specimen_files/grid_12-825-55-15.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/specimen_files/specimen_stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/specimen_files/specimen_stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/specimen_files/specimen_stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/specimen_files/specimen_stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/stylesheet.css b/BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/stylesheet.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/fonts/opensans_semibolditalic_macroman/stylesheet.css rename to BeyondResponsiveDesign/styles/fonts/opensans_semibolditalic_macroman/stylesheet.css diff --git a/BeyondResponsiveDesign.Menus/styles/styles.css b/BeyondResponsiveDesign/styles/styles.css similarity index 89% rename from BeyondResponsiveDesign.Menus/styles/styles.css rename to BeyondResponsiveDesign/styles/styles.css index 169f260..c00e525 100644 --- a/BeyondResponsiveDesign.Menus/styles/styles.css +++ b/BeyondResponsiveDesign/styles/styles.css @@ -1,4 +1,4 @@ -html { +html { position: fixed; width: 100%; height: 100%; @@ -14,12 +14,6 @@ body { .scrollcontainer { overflow: hidden; } -.scrollcontainer > .scrollcontainer { - height: 100%; -} -.scrollcontainer > .scrollcontainer > .wrapper { - xmin-height: 100%; -} .vscroll { overflow-y: auto; -webkit-overflow-scrolling: touch; @@ -36,35 +30,6 @@ body { display: inline-block; min-width: 100%; } -.modalbackground, -.popupbackground { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: #000000; - opacity: 0.4; - z-index: 100000; -} -.popupbackground { - top: 3em; -} -div.popup { - z-index: 9999999; - background: white; - position: absolute; - visibility: hidden; - display: none; - max-width: 37.5rem; - min-width: 12.5rem; -} -div.popup.active { - visibility: visible; -} -div.popup > ul > li { - float: none; -} body > header { position: absolute; top: 0; @@ -85,6 +50,7 @@ body > header > h1 { body > header > ul { float: left; height: 3em; + margin: 0; } body > header > ul > li { line-height: 3em; @@ -104,6 +70,9 @@ body > header > ul > li.navigator { min-width: 5em; left: -0.5em; } +body > header > ul > li > h2 { + margin: 0; +} body > header > ul > li > a { line-height: 3em; } @@ -118,9 +87,9 @@ body > header > ul > li.logo > a { body > header > ul > li.logo > a > img { border: 0 none; height: 2rem; - max-height: 2rem; + max-height: 1.8rem; max-width: 15rem; - padding: 0.5rem 0 0 0.3rem; + padding: 0.6rem 0 0 0.3rem; } body > nav { position: absolute; @@ -148,12 +117,6 @@ body > main > article { bottom: 0; overflow: hidden; } -body > main > article > .scrollcontainer { - height: 100%; -} -body > main > article > .scrollcontainer > .wrapper { - xmin-height: 100%; -} body > main > article > .slideTabContainer > .slideTab { display: none; } @@ -201,4 +164,32 @@ body > main > article > nav.toolbar > ul > li { display: block; float: left; } -/*# sourceMappingURL=styles.css.map */ \ No newline at end of file +.modalbackground, +.popupbackground { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #000000; + opacity: 0.4; + z-index: 100000; +} +.popupbackground { + top: 3em; +} +div.popup { + z-index: 9999999; + background: white; + position: absolute; + visibility: hidden; + display: none; + max-width: 37.5rem; + min-width: 12.5rem; +} +div.popup.active { + visibility: visible; +} +div.popup > ul > li { + float: none; +} diff --git a/BeyondResponsiveDesign/styles/styles.css.map b/BeyondResponsiveDesign/styles/styles.css.map new file mode 100644 index 0000000..4560cbb --- /dev/null +++ b/BeyondResponsiveDesign/styles/styles.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["styles.less"],"names":[],"mappings":"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","file":"styles.css"} \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/styles/styles.less b/BeyondResponsiveDesign/styles/styles.less similarity index 84% rename from BeyondResponsiveDesign.Menus/styles/styles.less rename to BeyondResponsiveDesign/styles/styles.less index 16ab530..21c1433 100644 --- a/BeyondResponsiveDesign.Menus/styles/styles.less +++ b/BeyondResponsiveDesign/styles/styles.less @@ -23,14 +23,6 @@ body { .scrollcontainer { overflow: hidden; - - > .scrollcontainer { - height: 100%; - - > .wrapper { - xmin-height: 100%; - } - } } .vscroll { @@ -53,35 +45,6 @@ body { } } -.modalbackground, .popupbackground { - .originFixed; - background-color: #000000; - opacity: 0.4; - z-index: 100000; -} - -.popupbackground { - top: @header-height; -} - -div.popup { - z-index: 9999999; - background: white; - position: absolute; - visibility: hidden; - display: none; - max-width: 37.5rem; - min-width: 12.5rem; - - &.active { - visibility: visible; - } - - > ul > li { - float: none; - } -} - body > header { .originFixed; z-index: 4; @@ -99,6 +62,7 @@ body > header { > ul { float: left; height: @header-height; + margin: 0; > li { line-height: @header-height; @@ -120,6 +84,10 @@ body > header { left: -0.5em; } + > h2 { + margin: 0; + } + > a { line-height: @header-height; } @@ -136,9 +104,9 @@ body > header { > img { border: 0 none; height: 2rem; - max-height: 2rem; + max-height: 1.8rem; max-width: 15rem; - padding: 0.5rem 0 0 0.3rem; + padding: 0.6rem 0 0 0.3rem; } } } @@ -167,7 +135,6 @@ body > main { } } } - } body > main > aside.propertySheet { @@ -214,3 +181,32 @@ body > main > article > nav.toolbar { } } } + +.modalbackground, .popupbackground { + .originFixed; + background-color: #000000; + opacity: 0.4; + z-index: 100000; +} + +.popupbackground { + top: @header-height; +} + +div.popup { + z-index: 9999999; + background: white; + position: absolute; + visibility: hidden; + display: none; + max-width: 37.5rem; + min-width: 12.5rem; + + &.active { + visibility: visible; + } + + > ul > li { + float: none; + } +} \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/styles/styles.min.css b/BeyondResponsiveDesign/styles/styles.min.css similarity index 54% rename from BeyondResponsiveDesign.Menus/styles/styles.min.css rename to BeyondResponsiveDesign/styles/styles.min.css index 84c5969..083749d 100644 --- a/BeyondResponsiveDesign.Menus/styles/styles.min.css +++ b/BeyondResponsiveDesign/styles/styles.min.css @@ -1 +1 @@ -html{position:fixed;width:100%;height:100%}body{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden}.scrollcontainer{overflow:hidden}.scrollcontainer>.scrollcontainer{height:100%}.scrollcontainer>.scrollcontainer>.wrapper{xmin-height:100%}.vscroll{overflow-y:auto;-webkit-overflow-scrolling:touch}.vscroll-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}.hscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.hscroll>.wrapper{display:inline-block;min-width:100%}.modalbackground,.popupbackground{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#000;opacity:.4;z-index:100000}.popupbackground{top:3em}div.popup{z-index:9999999;background:#fff;position:absolute;visibility:hidden;display:none;max-width:37.5rem;min-width:12.5rem}div.popup.active{visibility:visible}div.popup>ul>li{float:none}body>header{position:absolute;top:0;left:0;right:0;bottom:0;z-index:4;height:3em;float:left;width:100%}body>header>h1{position:absolute;top:0;left:0;width:100%}body>header>ul{float:left;height:3em}body>header>ul>li{line-height:3em;height:3em;display:inline-block}body>header>ul>li.menuToggle{display:none;position:absolute;z-index:2;min-width:5em}body>header>ul>li.navigator{display:none;position:absolute;z-index:2;min-width:5em;left:-.5em}body>header>ul>li>a{line-height:3em}body>header>ul>li.logo>a{position:relative;top:0;left:0;display:block;height:3em;z-index:1}body>header>ul>li.logo>a>img{border:0 none;height:2rem;max-height:2rem;max-width:15rem;padding:.5rem 0 0 .3rem}body>nav{position:absolute;top:3em;left:0;right:0;bottom:0;width:16.5em;max-width:16.5em;z-index:2;background-color:#fff}body>main{position:absolute;top:3em;left:0;right:0;bottom:0}body>main>article{position:absolute;top:0;left:16.5em;right:0;bottom:0;overflow:hidden}body>main>article>.scrollcontainer{height:100%}body>main>article>.scrollcontainer>.wrapper{xmin-height:100%}body>main>article>.slideTabContainer>.slideTab{display:none}body>main>article>.slideTabContainer>.slideTab.active{display:block}body>main>aside.propertySheet{position:absolute;top:0;right:0;width:50%;bottom:0;min-width:480px;z-index:100001;display:none}body>main>aside.propertySheet.active{display:block}body>main>aside.propertySheet.wide{width:75%}body>main>aside.propertySheet>div{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#fff}body>main>article>nav.toolbar{position:relative;min-height:3em}body>main>article>nav.toolbar>header{float:left;min-height:3em;height:3em}body>main>article>nav.toolbar>ul{min-height:3em;height:3em}body>main>article>nav.toolbar>ul>li{display:block;float:left} \ No newline at end of file +html{position:fixed;width:100%;height:100%}body{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden}.scrollcontainer{overflow:hidden}.scrollcontainer>.scrollcontainer{height:100%}.scrollcontainer>.scrollcontainer>.wrapper{xmin-height:100%}.vscroll{overflow-y:auto;-webkit-overflow-scrolling:touch}.vscroll-scroll{overflow-y:scroll;-webkit-overflow-scrolling:touch}.hscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.hscroll>.wrapper{display:inline-block;min-width:100%}.modalbackground,.popupbackground{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#000;opacity:.4;z-index:100000}.popupbackground{top:3em}div.popup{z-index:9999999;background:#fff;position:absolute;visibility:hidden;display:none;max-width:37.5rem;min-width:12.5rem}div.popup.active{visibility:visible}div.popup>ul>li{float:none}body>header{position:absolute;top:0;left:0;right:0;bottom:0;z-index:4;height:3em;float:left;width:100%}body>header>h1{position:absolute;top:0;left:0;width:100%}body>header>ul{float:left;height:3em}body>header>ul>li{line-height:3em;height:3em;display:inline-block}body>header>ul>li.menuToggle{display:none;position:absolute;z-index:2;min-width:5em}body>header>ul>li.navigator{display:none;position:absolute;z-index:2;min-width:5em;left:-.5em}body>header>ul>li>a{line-height:3em}body>header>ul>li.logo>a{position:relative;top:0;left:0;display:block;height:3em;z-index:1}body>header>ul>li.logo>a>img{border:0 none;height:2rem;max-height:1.8rem;max-width:15rem;padding:.6rem 0 0 .3rem}body>nav{position:absolute;top:3em;left:0;right:0;bottom:0;width:16.5em;max-width:16.5em;z-index:2;background-color:#fff}body>main{position:absolute;top:3em;left:0;right:0;bottom:0}body>main>article{position:absolute;top:0;left:16.5em;right:0;bottom:0;overflow:hidden}body>main>article>.scrollcontainer{height:100%}body>main>article>.scrollcontainer>.wrapper{xmin-height:100%}body>main>article>.slideTabContainer>.slideTab{display:none}body>main>article>.slideTabContainer>.slideTab.active{display:block}body>main>aside.propertySheet{position:absolute;top:0;right:0;width:50%;bottom:0;min-width:480px;z-index:100001;display:none}body>main>aside.propertySheet.active{display:block}body>main>aside.propertySheet.wide{width:75%}body>main>aside.propertySheet>div{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#fff}body>main>article>nav.toolbar{position:relative;min-height:3em}body>main>article>nav.toolbar>header{float:left;min-height:3em;height:3em}body>main>article>nav.toolbar>ul{min-height:3em;height:3em}body>main>article>nav.toolbar>ul>li{display:block;float:left} \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/styles/theme.css b/BeyondResponsiveDesign/styles/theme.css similarity index 83% rename from BeyondResponsiveDesign.Menus/styles/theme.css rename to BeyondResponsiveDesign/styles/theme.css index e11e98f..c1f6398 100644 --- a/BeyondResponsiveDesign.Menus/styles/theme.css +++ b/BeyondResponsiveDesign/styles/theme.css @@ -1,4 +1,4 @@ -@font-face { +@font-face { font-family: 'OpenSans'; src: url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot'); src: url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot?iefix') format('eot'), url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.woff') format('woff'), url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.ttf') format('truetype'), url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.svg#webfont') format('svg'); @@ -18,7 +18,7 @@ body { margin: 0; } a { - color: #005800; + color: #56c2f0; font-weight: 350; text-decoration: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); @@ -39,7 +39,7 @@ h3 { display: block; } a:hover { - color: #31a431; + color: #00b1ee; } table { width: 100%; @@ -54,17 +54,6 @@ table.agenda > tbody > tr:not(.session) { cursor: auto; color: #999999; } -table.accommodation > tbody > tr > td { - display: block; - float: left; -} -table.accommodation > tbody > tr > td > img { - -webkit-border-radius: 10px; - -moz-border-radius: 10px; - -ms-border-radius: 10px; - -o-border-radius: 10px; - border-radius: 10px; -} table > tbody > tr { border-bottom: 1px solid #f2f2f2; cursor: pointer; @@ -126,7 +115,7 @@ div.popup > ul > li > a { text-overflow: ellipsis; } body > header { - background: #005800; + background: #56c2f0; box-shadow: rgba(0, 0, 0, 0.4) 0 1px 0.25rem; clip: rect(auto, auto, 3.375em, auto); } @@ -192,7 +181,7 @@ body > header > ul > li > a:hover { body > header > ul > li.active { color: #607d8b; cursor: pointer; - background: #227122; + background: #a8e5ff; } body > nav { background-color: #f2f2f2; @@ -200,14 +189,14 @@ body > nav { padding: 0; margin: 0; } -body > nav > div > div > ul { +body > nav > div > ul { list-style-type: none; text-indent: 0; margin: 0; padding: 0; width: 100%; } -body > nav > div > div > ul > li { +body > nav > div > ul > li { color: #666666; text-indent: 0; padding: 0; @@ -215,14 +204,14 @@ body > nav > div > div > ul > li { vertical-align: middle; position: relative; } -body > nav > div > div > ul > li img { +body > nav > div > ul > li img { vertical-align: middle; } -body > nav > div > div > ul > li > a { +body > nav > div > ul > li > a { position: relative; z-index: 2; } -body > nav > div > div > ul > li > a > h2 { +body > nav > div > ul > li > a > h2 { font-size: 1em; font-weight: 400; vertical-align: middle; @@ -238,32 +227,32 @@ body > nav > div > div > ul > li > a > h2 { overflow: hidden; position: relative; } -body > nav > div > div > ul > li > a > h2 > span { +body > nav > div > ul > li > a > h2 > span { white-space: nowrap; overflow: hidden; -ms-text-overflow: ellipsis; -o-text-overflow: ellipsis; text-overflow: ellipsis; } -body > nav > div > div > ul > li > a > h2 > i.fa { +body > nav > div > ul > li > a > h2 > i.fa { float: left; outline: none; line-height: 3rem; font-size: 1.1875rem; width: 1.5rem; } -body > nav > div > div > ul > li > div { +body > nav > div > ul > li > div { overflow: hidden; /*height: 0;*/ height: auto; } -body > nav > div > div > ul > li > div > ul { +body > nav > div > ul > li > div > ul { list-style-type: none; text-indent: 0; margin: 0; padding: 0; } -body > nav > div > div > ul > li > div > ul > li { +body > nav > div > ul > li > div > ul > li { font-size: 0.875em; line-height: 2rem; text-indent: 0; @@ -273,7 +262,7 @@ body > nav > div > div > ul > li > div > ul > li { color: #666666; position: relative; } -body > nav > div > div > ul > li > div > ul > li > a { +body > nav > div > ul > li > div > ul > li > a { display: block; margin: 0; padding: 0 0.75rem 0 1.5rem; @@ -285,41 +274,41 @@ body > nav > div > div > ul > li > div > ul > li > a { -o-text-overflow: ellipsis; text-overflow: ellipsis; } -body > nav > div > div > ul > li > div > ul > li > a > i.fa { +body > nav > div > ul > li > div > ul > li > a > i.fa { float: left; outline: none; line-height: 2rem; width: 1.25rem; max-width: 1.25rem; } -body > nav > div > div > ul > li > div > ul > li > a:hover { +body > nav > div > ul > li > div > ul > li > a:hover { color: #999999; } -body > nav > div > div > ul > li > div > ul > li.active > a { +body > nav > div > ul > li > div > ul > li.active > a { color: #ffffff; } -body > nav > div > div > ul > li.active > div { +body > nav > div > ul > li.active > div { overflow: hidden; height: auto; } -body > nav > div > div > ul > li.active > div > ul > li.active { - background-color: #31a431; +body > nav > div > ul > li.active > div > ul > li.active { + background-color: #00b1ee; color: #ffffff; } -body > nav > div > div > ul > li.active > div > ul > li.active > a { +body > nav > div > ul > li.active > div > ul > li.active > a { color: #ffffff; } -body > nav > div > div > ul > li.active > a { +body > nav > div > ul > li.active > a { color: #ffffff; text-decoration: none; - background-color: #227122; + background-color: #008dbd; } -body > nav > div > div > ul > li.active > a > h2 { +body > nav > div > ul > li.active > a > h2 { color: #ffffff; text-decoration: none; - background-color: #227122; + background-color: #008dbd; } -body > nav > div > div > ul > li.active > a > h2 > i[data-icon="add"] { +body > nav > div > ul > li.active > a > h2 > i[data-icon="add"] { background-image: url('../images/plus_white.svg'); } body > main { @@ -367,7 +356,7 @@ body > main > article > nav.toolbar > header { } body > main > article > nav.toolbar > ul { list-style-type: none; - padding: 0 1em 0 1em; + padding: 0 1em 0 0.7em; background: #f2f2f2; margin: 0; } @@ -393,7 +382,7 @@ body > main > article > nav.toolbar > ul > li > .highlight { position: relative; top: 2.70em; height: 1px; - border-bottom: 5px solid #227122; + border-bottom: 5px solid #008dbd; } body > main > article > nav.toolbar > ul > li.active > .highlight { visibility: visible; @@ -413,9 +402,8 @@ body > main > article > nav.toolbar > ul > li > a { } body > main > article > nav.toolbar > ul > li > a > i { font-weight: 300; - padding-right: 0.28571429em; + padding-right: 0.28571429; } body > main > article > nav.toolbar > ul > li > a:hover { color: #b3b3b3; } -/*# sourceMappingURL=theme.css.map */ \ No newline at end of file diff --git a/BeyondResponsiveDesign/styles/theme.css.map b/BeyondResponsiveDesign/styles/theme.css.map new file mode 100644 index 0000000..8ade16b --- /dev/null +++ b/BeyondResponsiveDesign/styles/theme.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["theme.less"],"names":[],"mappings":"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","file":"theme.css"} \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/styles/theme.less b/BeyondResponsiveDesign/styles/theme.less similarity index 91% rename from BeyondResponsiveDesign.Menus/styles/theme.less rename to BeyondResponsiveDesign/styles/theme.less index 96bd9d3..f3a4485 100644 --- a/BeyondResponsiveDesign.Menus/styles/theme.less +++ b/BeyondResponsiveDesign/styles/theme.less @@ -16,9 +16,9 @@ @body-text-light-color: lighten(@body-text-color, 20%); @body-highlight-color: lighten(@body-text-color, 30%); -@header-color: #005800; +@header-color: #56c2f0; @header-height: 3em; -@header-color-light: #227122; +@header-color-light: #A8E5FF; @header-text-color: #ffffff; @header-active-text-color: @base-color; @@ -30,8 +30,8 @@ @sidebar-text-color: @body-text-color; @sidebar-text-active-color: @base-invert-color; @sidebar-child-active-color: @sidebar-text-active-color; -@sidebar-active-color: #227122; -@sidebar-child-accent-background-color: #31A431; +@sidebar-active-color: #008dbd; +@sidebar-child-accent-background-color: #00b1ee; @font-face { font-family: 'OpenSans'; @@ -95,15 +95,6 @@ table { color: @body-text-light-color; } - &.accommodation > tbody > tr > td { - display: block; - float: left; - } - - &.accommodation > tbody > tr > td > img { - .rounded; - } - > tbody > tr { border-bottom: 1px solid @border-line-color; cursor: pointer; @@ -260,7 +251,7 @@ body > nav { padding: 0; margin: 0; - > div > div > ul { + > div > ul { list-style-type: none; text-indent: 0; margin: 0; @@ -419,34 +410,32 @@ body > main { padding: .75rem .75rem 0 .75rem; } - > header { - > h2 { - background: #fff; - display: block; - width: 100%; - line-height: 2.9375rem; - border-bottom: 1px solid #b2b2b2; - margin: 0; - white-space: nowrap; - overflow: hidden; - -ms-text-overflow: ellipsis; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; + > header > h2 { + background: #fff; + display: block; + width: 100%; + line-height: 2.9375rem; + border-bottom: 1px solid #b2b2b2; + margin: 0; + white-space: nowrap; + overflow: hidden; + -ms-text-overflow: ellipsis; + -o-text-overflow: ellipsis; + text-overflow: ellipsis; - > i.fa { - position: relative; - top: 0.0625rem; - left: .5625rem; - font-weight: 300; - font-size: 1.5rem; - } + > i.fa { + position: relative; + top: 0.0625rem; + left: .5625rem; + font-weight: 300; + font-size: 1.5rem; + } - > span { - padding: 0 3.75rem 0 1rem; - font-weight: 400; - font-size: 1.125rem; - text-indent: 0; - } + > span { + padding: 0 3.75rem 0 1rem; + font-weight: 400; + font-size: 1.125rem; + text-indent: 0; } } } @@ -469,7 +458,7 @@ body > main > article > nav.toolbar { > ul { list-style-type: none; - padding: 0 1em 0 1em; + padding: 0 1em 0 0.7em; background: @toolbar-color; margin: 0; diff --git a/BeyondResponsiveDesign.Menus/styles/theme.min.css b/BeyondResponsiveDesign/styles/theme.min.css similarity index 81% rename from BeyondResponsiveDesign.Menus/styles/theme.min.css rename to BeyondResponsiveDesign/styles/theme.min.css index 1e68b90..597bac6 100644 --- a/BeyondResponsiveDesign.Menus/styles/theme.min.css +++ b/BeyondResponsiveDesign/styles/theme.min.css @@ -1 +1 @@ -@font-face{font-family:'OpenSans';src:url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot');src:url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot?iefix') format('eot'),url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.woff') format('woff'),url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.ttf') format('truetype'),url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.svg#webfont') format('svg')}.rounded{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}body{font-family:"OpenSans","Helvetica Neue","Helvetica","Arial","sans-serif";color:#666;text-align:left;line-height:1.5;margin:0}a{color:#005800;font-weight:350;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}p{line-height:1.5rem;padding:0;margin:0 0 .5rem 0}h1,h2,h3{font-family:"OpenSans","Helvetica Neue","Helvetica","Arial","sans-serif";font-size:1.125em;margin:0 0 .375em 0;padding:0;color:#666;display:block}a:hover{color:#31a431}table{width:100%;border-collapse:collapse;border-spacing:0;padding:0;margin:0;empty-cells:show;table-layout:auto}table.agenda>tbody>tr:not(.session){cursor:auto;color:#999}table.accommodation>tbody>tr>td{display:block;float:left}table.accommodation>tbody>tr>td>img{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}table>tbody>tr{border-bottom:1px solid #f2f2f2;cursor:pointer}table>tbody>tr>td{vertical-align:top;padding:.5em .5em .5em .5em;overflow:hidden;min-height:3rem}table>tbody>tr>td>h2{font-weight:400;color:#222}div.popup{background:#fff;font-weight:300;backface-visibility:hidden;-webkit-box-shadow:0 0 4px rgba(0,0,0,.4);box-shadow:0 0 4px rgba(0,0,0,.4);margin:-1px 0 0 0;text-indent:0;padding:0}div.popup>ul{list-style-type:none;text-indent:0;padding:0;margin:0}div.popup>ul>li{width:100%;text-indent:0;margin:0;padding:0;vertical-align:middle;display:block;cursor:default;border:0 none;float:none;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}div.popup>ul>li:not(:first-child){border-top:1px dotted #f2f2f2}div.popup>ul>li>a{font-size:1.125rem;display:block;text-decoration:none;color:#666;padding:0 .75rem 0 .75rem;line-height:2.75rem;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}body>header{background:#005800;box-shadow:rgba(0,0,0,.4) 0 1px .25rem;clip:rect(auto,auto,3.375em,auto)}body>header>h1{font-size:1.5em;line-height:2em;font-weight:400;color:#fff;text-align:center;margin:0 auto}body>header>ul{float:left;color:#fff;margin:0;padding:0;list-style-type:none;white-space:nowrap}body>header>ul.headerIcons{float:right}body>header>ul>li{position:relative;float:left;margin:0;white-space:nowrap;text-align:left;color:#fff;outline:none;padding:0;font-weight:400;font-size:1em}body>header>ul>li>h2{color:#fff;font-weight:400}body>header>ul>li>a{display:block;float:left;padding:0 .75em 0 .75em;color:#fff;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:0}body>header>ul>li>a:visited{color:#fff}body>header>ul>li>a>i{margin:0;padding:0}body>header>ul>li>a>i+span{padding-left:.5em}body>header>ul>li>a:hover{color:#fff;cursor:pointer;text-decoration:none}body>header>ul>li.active{color:#607d8b;cursor:pointer;background:#227122}body>nav{background-color:#f2f2f2;box-shadow:rgba(0,0,0,.3) 1px 0 .125rem;padding:0;margin:0}body>nav>div>div>ul{list-style-type:none;text-indent:0;margin:0;padding:0;width:100%}body>nav>div>div>ul>li{color:#666;text-indent:0;padding:0;margin:0;vertical-align:middle;position:relative}body>nav>div>div>ul>li img{vertical-align:middle}body>nav>div>div>ul>li>a{position:relative;z-index:2}body>nav>div>div>ul>li>a>h2{font-size:1em;font-weight:400;vertical-align:middle;color:#666;line-height:3em;margin:0;padding:0 .75em 0 .75em;text-transform:capitalize;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}body>nav>div>div>ul>li>a>h2>span{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}body>nav>div>div>ul>li>a>h2>i.fa{float:left;outline:none;line-height:3rem;font-size:1.1875rem;width:1.5rem}body>nav>div>div>ul>li>div{overflow:hidden;height:auto}body>nav>div>div>ul>li>div>ul{list-style-type:none;text-indent:0;margin:0;padding:0}body>nav>div>div>ul>li>div>ul>li{font-size:.875em;line-height:2rem;text-indent:0;margin:0;padding:0;vertical-align:middle;color:#666;position:relative}body>nav>div>div>ul>li>div>ul>li>a{display:block;margin:0;padding:0 .75rem 0 1.5rem;color:#666;outline:none;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}body>nav>div>div>ul>li>div>ul>li>a>i.fa{float:left;outline:none;line-height:2rem;width:1.25rem;max-width:1.25rem}body>nav>div>div>ul>li>div>ul>li>a:hover{color:#999}body>nav>div>div>ul>li>div>ul>li.active>a{color:#fff}body>nav>div>div>ul>li.active>div{overflow:hidden;height:auto}body>nav>div>div>ul>li.active>div>ul>li.active{background-color:#31a431;color:#fff}body>nav>div>div>ul>li.active>div>ul>li.active>a{color:#fff}body>nav>div>div>ul>li.active>a{color:#fff;text-decoration:none;background-color:#227122}body>nav>div>div>ul>li.active>a>h2{color:#fff;text-decoration:none;background-color:#227122}body>nav>div>div>ul>li.active>a>h2>i[data-icon="add"]{background-image:url('../images/plus_white.svg')}body>main{background:#fff}body>main section.presentation>div{padding:.75rem .75rem 0 .75rem}body>main section>header>h2{background:#fff;display:block;width:100%;line-height:2.9375rem;border-bottom:1px solid #b2b2b2;margin:0;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}body>main section>header>h2>i.fa{position:relative;top:.0625rem;left:.5625rem;font-weight:300;font-size:1.5rem}body>main section>header>h2>span{padding:0 3.75rem 0 1rem;font-weight:400;font-size:1.125rem;text-indent:0}body>main>aside.propertySheet{-webkit-box-shadow:-1px 0 .25rem rgba(0,0,0,.4);box-shadow:-1px 0 .25rem rgba(0,0,0,.4)}body>main>aside.propertySheet>section.content{background:#fff}body>main>article>nav.toolbar>header{padding:0 .1em 0 1em;line-height:3em}body>main>article>nav.toolbar>ul{list-style-type:none;padding:0 1em 0 1em;background:#f2f2f2;margin:0}body>main>article>nav.toolbar>ul::after{position:absolute;bottom:0;left:0;right:0;content:' ';height:1px;border-bottom:1px solid #b2b2b2}body>main>article>nav.toolbar>ul>li{padding:0;line-height:2.25em;text-indent:0;margin:0;min-height:3em;overflow:hidden}body>main>article>nav.toolbar>ul>li>.highlight{visibility:hidden;position:relative;top:2.7em;height:1px;border-bottom:5px solid #227122}body>main>article>nav.toolbar>ul>li.active>.highlight{visibility:visible}body>main>article>nav.toolbar>ul>li.active>a{color:#666}body>main>article>nav.toolbar>ul>li>a{font-weight:400;font-size:.875em;text-decoration:none;color:#999;cursor:pointer;text-transform:capitalize;white-space:nowrap;padding:0 .5em 0 .5em}body>main>article>nav.toolbar>ul>li>a>i{font-weight:300;padding-right:.28571429em}body>main>article>nav.toolbar>ul>li>a:hover{color:#b3b3b3} \ No newline at end of file +@font-face{font-family:'OpenSans';src:url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot');src:url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.eot?iefix') format('eot'),url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.woff') format('woff'),url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.ttf') format('truetype'),url('fonts/opensans_regular_macroman/OpenSans-Regular-webfont.svg#webfont') format('svg')}.rounded{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}body{font-family:"OpenSans","Helvetica Neue","Helvetica","Arial","sans-serif";color:#666;text-align:left;line-height:1.5;margin:0}a{color:#56c2f0;font-weight:350;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}p{line-height:1.5rem;padding:0;margin:0 0 .5rem 0}h1,h2,h3{font-family:"OpenSans","Helvetica Neue","Helvetica","Arial","sans-serif";font-size:1.125em;margin:0 0 .375em 0;padding:0;color:#666;display:block}a:hover{color:#00b1ee}table{width:100%;border-collapse:collapse;border-spacing:0;padding:0;margin:0;empty-cells:show;table-layout:auto}table.agenda>tbody>tr:not(.session){cursor:auto;color:#999}table.accommodation>tbody>tr>td{display:block;float:left}table.accommodation>tbody>tr>td>img{-webkit-border-radius:10px;-moz-border-radius:10px;-ms-border-radius:10px;-o-border-radius:10px;border-radius:10px}table>tbody>tr{border-bottom:1px solid #f2f2f2;cursor:pointer}table>tbody>tr>td{vertical-align:top;padding:.5em .5em .5em .5em;overflow:hidden;min-height:3rem}table>tbody>tr>td>h2{font-weight:400;color:#222}div.popup{background:#fff;font-weight:300;backface-visibility:hidden;-webkit-box-shadow:0 0 4px rgba(0,0,0,.4);box-shadow:0 0 4px rgba(0,0,0,.4);margin:-1px 0 0 0;text-indent:0;padding:0}div.popup>ul{list-style-type:none;text-indent:0;padding:0;margin:0}div.popup>ul>li{width:100%;text-indent:0;margin:0;padding:0;vertical-align:middle;display:block;cursor:default;border:0 none;float:none;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}div.popup>ul>li:not(:first-child){border-top:1px dotted #f2f2f2}div.popup>ul>li>a{font-size:1.125rem;display:block;text-decoration:none;color:#666;padding:0 .75rem 0 .75rem;line-height:2.75rem;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}body>header{background:#56c2f0;box-shadow:rgba(0,0,0,.4) 0 1px .25rem;clip:rect(auto,auto,3.375em,auto)}body>header>h1{font-size:1.5em;line-height:2em;font-weight:400;color:#fff;text-align:center;margin:0 auto}body>header>ul{float:left;color:#fff;margin:0;padding:0;list-style-type:none;white-space:nowrap}body>header>ul.headerIcons{float:right}body>header>ul>li{position:relative;float:left;margin:0;white-space:nowrap;text-align:left;color:#fff;outline:none;padding:0;font-weight:400;font-size:1em}body>header>ul>li>h2{color:#fff;font-weight:400}body>header>ul>li>a{display:block;float:left;padding:0 .75em 0 .75em;color:#fff;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:0}body>header>ul>li>a:visited{color:#fff}body>header>ul>li>a>i{margin:0;padding:0}body>header>ul>li>a>i+span{padding-left:.5em}body>header>ul>li>a:hover{color:#fff;cursor:pointer;text-decoration:none}body>header>ul>li.active{color:#607d8b;cursor:pointer;background:#a8e5ff}body>nav{background-color:#f2f2f2;box-shadow:rgba(0,0,0,.3) 1px 0 .125rem;padding:0;margin:0}body>nav>div>div>ul{list-style-type:none;text-indent:0;margin:0;padding:0;width:100%}body>nav>div>div>ul>li{color:#666;text-indent:0;padding:0;margin:0;vertical-align:middle;position:relative}body>nav>div>div>ul>li img{vertical-align:middle}body>nav>div>div>ul>li>a{position:relative;z-index:2}body>nav>div>div>ul>li>a>h2{font-size:1em;font-weight:400;vertical-align:middle;color:#666;line-height:3em;margin:0;padding:0 .75em 0 .75em;text-transform:capitalize;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}body>nav>div>div>ul>li>a>h2>span{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}body>nav>div>div>ul>li>a>h2>i.fa{float:left;outline:none;line-height:3rem;font-size:1.1875rem;width:1.5rem}body>nav>div>div>ul>li>div{overflow:hidden;height:auto}body>nav>div>div>ul>li>div>ul{list-style-type:none;text-indent:0;margin:0;padding:0}body>nav>div>div>ul>li>div>ul>li{font-size:.875em;line-height:2rem;text-indent:0;margin:0;padding:0;vertical-align:middle;color:#666;position:relative}body>nav>div>div>ul>li>div>ul>li>a{display:block;margin:0;padding:0 .75rem 0 1.5rem;color:#666;outline:none;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}body>nav>div>div>ul>li>div>ul>li>a>i.fa{float:left;outline:none;line-height:2rem;width:1.25rem;max-width:1.25rem}body>nav>div>div>ul>li>div>ul>li>a:hover{color:#999}body>nav>div>div>ul>li>div>ul>li.active>a{color:#fff}body>nav>div>div>ul>li.active>div{overflow:hidden;height:auto}body>nav>div>div>ul>li.active>div>ul>li.active{background-color:#00b1ee;color:#fff}body>nav>div>div>ul>li.active>div>ul>li.active>a{color:#fff}body>nav>div>div>ul>li.active>a{color:#fff;text-decoration:none;background-color:#008dbd}body>nav>div>div>ul>li.active>a>h2{color:#fff;text-decoration:none;background-color:#008dbd}body>nav>div>div>ul>li.active>a>h2>i[data-icon="add"]{background-image:url('../images/plus_white.svg')}body>main{background:#fff}body>main section.presentation>div{padding:.75rem .75rem 0 .75rem}body>main section>header>h2{background:#fff;display:block;width:100%;line-height:2.9375rem;border-bottom:1px solid #b2b2b2;margin:0;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis}body>main section>header>h2>i.fa{position:relative;top:.0625rem;left:.5625rem;font-weight:300;font-size:1.5rem}body>main section>header>h2>span{padding:0 3.75rem 0 1rem;font-weight:400;font-size:1.125rem;text-indent:0}body>main>aside.propertySheet{-webkit-box-shadow:-1px 0 .25rem rgba(0,0,0,.4);box-shadow:-1px 0 .25rem rgba(0,0,0,.4)}body>main>aside.propertySheet>section.content{background:#fff}body>main>article>nav.toolbar>header{padding:0 .1em 0 1em;line-height:3em}body>main>article>nav.toolbar>ul{list-style-type:none;padding:0 1em 0 .7em;background:#f2f2f2;margin:0}body>main>article>nav.toolbar>ul::after{position:absolute;bottom:0;left:0;right:0;content:' ';height:1px;border-bottom:1px solid #b2b2b2}body>main>article>nav.toolbar>ul>li{padding:0;line-height:2.25em;text-indent:0;margin:0;min-height:3em;overflow:hidden}body>main>article>nav.toolbar>ul>li>.highlight{visibility:hidden;position:relative;top:2.7em;height:1px;border-bottom:5px solid #008dbd}body>main>article>nav.toolbar>ul>li.active>.highlight{visibility:visible}body>main>article>nav.toolbar>ul>li.active>a{color:#666}body>main>article>nav.toolbar>ul>li>a{font-weight:400;font-size:.875em;text-decoration:none;color:#999;cursor:pointer;text-transform:capitalize;white-space:nowrap;padding:0 .5em 0 .5em}body>main>article>nav.toolbar>ul>li>a>i{font-weight:300;padding-right:.28571429em}body>main>article>nav.toolbar>ul>li>a:hover{color:#b3b3b3} \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/styles/transforms.css b/BeyondResponsiveDesign/styles/transforms.css similarity index 90% rename from BeyondResponsiveDesign.Menus/styles/transforms.css rename to BeyondResponsiveDesign/styles/transforms.css index 58269d3..d19f8cc 100644 --- a/BeyondResponsiveDesign.Menus/styles/transforms.css +++ b/BeyondResponsiveDesign/styles/transforms.css @@ -1,4 +1,4 @@ -.animateFast { +.animateFast { -webkit-transition: all 0.1s ease-in-out; -moz-transition: all 0.1s ease-in-out; -o-transition: all 0.1s ease-in-out; @@ -17,18 +17,20 @@ body.propertySheet > header > ul > li.menuToggle { body:not(.propertySheet) > header > ul > li.navigator { display: none; } -body > nav > div > div > ul > li:not(.active) > div { +body > nav > div > ul > li:not(.active) > div { overflow: hidden; height: 0; + /* Hide the submenu when main item is not active */ } -body > nav > div > div > ul > li:not(.active) > div > ul { +body > nav > div > ul > li:not(.active) > div > ul { -webkit-transform: translate3d(0, -100%, 0); -ms-transform: translate3d(0, -100%, 0); -moz-transform: translate3d(0, -100%, 0); -o-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } -body > nav > div > div > ul > li.active > div > ul { +body > nav > div > ul > li.active > div > ul { + /* Return submenu to normal position when main item is active */ -webkit-transform: translate3d(0, 0, 0); -ms-transform: translate3d(0, 0, 0); -moz-transform: translate3d(0, 0, 0); @@ -71,6 +73,9 @@ body > main > article > div.slideTabContainer > section.offLeft { -o-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } +body > main > article > nav.toolbar > ul > li { + /* Transforms controlling the tab selection underline */ +} body > main > article > nav.toolbar > ul > li > .highlight { display: block; } @@ -129,14 +134,13 @@ body > main > aside.propertySheet.offRight { -o-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } + /* Wide property sheets are 50% width on large screens */ body > main > aside.propertySheet.wide { width: 50%; } } @media only screen and (max-width: 800px) { - table.accommodation > tbody > tr > td > p { - max-width: 14em; - } + /* Auto hide sidebar and enable toggle button on smaller screens */ body > header > ul > li.menuToggle { display: block; left: -1.2em; @@ -182,6 +186,7 @@ body > main > aside.propertySheet.offRight { } } @media only screen and (max-width: 600px) { + /* Drop down menu becomes pop-up on horizontal mobile screens */ div.popup { position: fixed; bottom: 0; @@ -207,9 +212,11 @@ body > main > aside.propertySheet.offRight { } } @media only screen and (max-width: 480px) { + /* Hide bio on smaller screens - positive use of reactive design */ table > tbody > tr > td.bio { display: none; } + /* Property sheets are 100% width on portrait mobile screens */ body > main > aside.propertySheet { width: 100%; min-width: 100%; @@ -218,4 +225,3 @@ body > main > aside.propertySheet.offRight { border-left: 0 none; } } -/*# sourceMappingURL=transforms.css.map */ \ No newline at end of file diff --git a/BeyondResponsiveDesign/styles/transforms.css.map b/BeyondResponsiveDesign/styles/transforms.css.map new file mode 100644 index 0000000..8c6c936 --- /dev/null +++ b/BeyondResponsiveDesign/styles/transforms.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["transforms.less"],"names":[],"mappings":"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","file":"transforms.css"} \ No newline at end of file diff --git a/BeyondResponsiveDesign.Menus/styles/transforms.less b/BeyondResponsiveDesign/styles/transforms.less similarity index 90% rename from BeyondResponsiveDesign.Menus/styles/transforms.less rename to BeyondResponsiveDesign/styles/transforms.less index 9dda615..500034b 100644 --- a/BeyondResponsiveDesign.Menus/styles/transforms.less +++ b/BeyondResponsiveDesign/styles/transforms.less @@ -34,10 +34,11 @@ body:not(.propertySheet) > header > ul > li { } } -body > nav > div > div > ul > li:not(.active) > div { +body > nav > div > ul > li:not(.active) > div { overflow: hidden; height: 0; + /* Hide the submenu when main item is not active */ > ul { -webkit-transform: translate3d(0,-100%,0); -ms-transform: translate3d(0,-100%,0); @@ -47,7 +48,8 @@ body > nav > div > div > ul > li:not(.active) > div { } } -body > nav > div > div > ul > li.active > div > ul { +body > nav > div > ul > li.active > div > ul { + /* Return submenu to normal position when main item is active */ -webkit-transform: translate3d(0,0,0); -ms-transform: translate3d(0,0,0); -moz-transform: translate3d(0,0,0); @@ -91,6 +93,7 @@ body > main > article > div.slideTabContainer { } body > main > article > nav.toolbar > ul > li { + /* Transforms controlling the tab selection underline */ > .highlight { display: block; } @@ -141,16 +144,15 @@ body > main > aside.propertySheet { body > main > article { .animate; } + + /* Wide property sheets are 50% width on large screens */ body > main > aside.propertySheet.wide { width: 50%; } } @media only screen and (max-width: 800px) { - table.accommodation > tbody > tr > td > p { - max-width: 14em; - } - + /* Auto hide sidebar and enable toggle button on smaller screens */ body { > header > ul > li.menuToggle { display: block; @@ -195,6 +197,7 @@ body > main > aside.propertySheet { } @media only screen and (max-width: 600px) { + /* Drop down menu becomes pop-up on horizontal mobile screens */ div.popup { position: fixed; bottom: 0; @@ -219,12 +222,14 @@ body > main > aside.propertySheet { } @media only screen and (max-width: 480px) { + /* Hide bio on smaller screens - positive use of reactive design */ table > tbody > tr > td { &.bio { display: none; } } + /* Property sheets are 100% width on portrait mobile screens */ body > main > aside.propertySheet { width: 100%; min-width: 100%; diff --git a/BeyondResponsiveDesign.Menus/styles/transforms.min.css b/BeyondResponsiveDesign/styles/transforms.min.css similarity index 100% rename from BeyondResponsiveDesign.Menus/styles/transforms.min.css rename to BeyondResponsiveDesign/styles/transforms.min.css diff --git a/DataScraper/Program.cs b/DataScraper/Program.cs index 5b6ef7f..95d7b17 100644 --- a/DataScraper/Program.cs +++ b/DataScraper/Program.cs @@ -21,16 +21,24 @@ public class Link public class Session { - public int Id { get; set; } + public string Id { get; set; } public string Title { get; set; } + public string TimeSlotId { get; set; } + + public string TrackId { get; set; } + public string Abstract { get; set; } + + public string Speaker { get; set; } + + public string SpeakerId { get; set; } } public class Speaker { - public int Id { get; set; } + public string Id { get; set; } public string Name { get; set; } @@ -45,82 +53,174 @@ public class Program { public static void Main(string[] args) { - const string AgendaUrl = "/Agenda"; - const string OutputDir = - "D:\\Code\\BeyondResponsiveDesign\\BeyondResponsiveDesign.Menus\\images\\speakers"; - var imageClient = new HttpClient(); - var htmlClient = new HttpClient { BaseAddress = new Uri("http://www.dddeastanglia.com") }; + imageClient.DefaultRequestHeaders.Add( + "User-Agent", + "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36"); + + var htmlClient = new HttpClient { BaseAddress = new Uri("http://voxxeddaysvienna2015.sched.org/") }; + htmlClient.DefaultRequestHeaders.Add("Accept", "text/html"); + htmlClient.DefaultRequestHeaders.Add( + "User-Agent", + "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36"); + + ScrapeSpeakers(htmlClient, imageClient); + + Console.WriteLine("Process completed, press any key to exit"); + Console.ReadKey(); + } + + private static void ScrapeSpeakers(HttpClient htmlClient, HttpClient imageClient) + { + const string SpeakersUrl = "directory/speakers"; + const string OutputDir = "D:\\Code\\BeyondResponsiveDesign\\BeyondResponsiveDesign.Menus\\images\\speakers"; var htmlDoc = new HtmlDocument(); - htmlDoc.LoadHtml(htmlClient.GetStringAsync(AgendaUrl).Result); + htmlDoc.LoadHtml(htmlClient.GetStringAsync(SpeakersUrl).Result); - var speakerLinks = - htmlDoc.DocumentNode.Descendants("a") - .Where(o => o.Attributes.Contains("class") && o.Attributes["class"].Value == "speakerName"); + var speakerContainers = htmlDoc.DocumentNode.Descendants("div").Where(o => o.HasClass("sched-person")); var speakers = new ConcurrentQueue(); - Task.WaitAll(speakerLinks.Select(link => Task.Run(async () => - { - var href = link.Attributes["href"].Value; - var speakerPage = new HtmlDocument(); - speakerPage.LoadHtml(await htmlClient.GetStringAsync(href)); - - var container = - speakerPage.DocumentNode.Descendants("div") - .First( - o => o.Attributes.Contains("class") && o.Attributes["class"].Value.Contains("speaker")); - - var titleElement = container.Descendants("h3").First(); - var linkElements = container.Descendants("section").First().Descendants("p"); - var paragraphElements = container.Elements("p"); - var sessionLinkElements = container.Element("ul").Descendants("a"); - - var id = int.Parse(href.Split('/').Last()); - var name = titleElement.Element("#text").InnerHtml; - var bio = string.Join(string.Empty, paragraphElements.Select(o => o.InnerHtml)); - var links = (from linkElement in linkElements - let icon = linkElement.Descendants("i").First().Attributes["class"].Value - let url = linkElement.Descendants("a").First().Attributes["href"].Value - select new Link { Icon = icon, Url = url }).ToList(); - - var sessions = new List(); - foreach (var sessionLinkElement in sessionLinkElements) - { - var sessionHref = sessionLinkElement.Attributes["href"].Value; - var sessionId = int.Parse(sessionHref.Split('/').Last()); - var title = sessionLinkElement.InnerText; - - var sessionPage = new HtmlDocument(); - sessionPage.LoadHtml(await htmlClient.GetStringAsync(sessionHref)); - - var abstractElement = - sessionPage.DocumentNode.Descendants("div") - .First(o => o.Attributes.Contains("class") && o.Attributes["class"].Value == "abstract"); - - var @abstract = abstractElement.InnerHtml; - sessions.Add(new Session { Id = sessionId, Title = title, Abstract = @abstract}); - } - - speakers.Enqueue( - new Speaker { Id = id, Name = name, Links = links, Bio = bio, Sessions = sessions }); - - var imageTag = titleElement.Descendants("img").First(); - var imageUrl = imageTag.Attributes["src"].Value.Replace("s=50", "s=300"); - - var stream = await imageClient.GetStreamAsync(imageUrl); - var file = File.OpenWrite(string.Format("{0}\\{1}.jpg", OutputDir, id)); - await stream.CopyToAsync(file); - - file.Close(); - })).ToArray()); + var allSessions = new ConcurrentQueue(); + + //foreach (var container in speakerContainers) + //{ + + Task.WaitAll( + speakerContainers.Skip(4).Select( + container => Task.Run( + async () => + { + var link = container.Descendants("h2").First().Descendants("a").First(); + var href = link.Attributes["href"].Value; + var speakerPage = new HtmlDocument(); + speakerPage.LoadHtml(await htmlClient.GetStringAsync(href)); + + var speakerContainer = + speakerPage.DocumentNode.Descendants("div").First(o => o.Id == "sched-page-me-profile"); + + var titleElement = speakerContainer.Descendants("h1").First(o => o.Id == "sched-page-me-name"); + var linkContainer = + speakerContainer.Descendants("div").FirstOrDefault(o => o.Id == "sched-page-me-networks"); + + IEnumerable linkElements = new List(); + if (linkContainer != null) + { + linkElements = + linkContainer.Descendants("div") + .Where(o => o.HasClass("sched-network-link")) + .Select(o => o.Element("a")); + } + + var roleCountryContainer = speakerContainer.Descendants("div") + .FirstOrDefault(o => o.Id == "sched-page-me-profile-data"); + + HtmlNode roleCountryElement; + if (roleCountryContainer != null) + { + roleCountryElement = roleCountryContainer.Element("strong"); + } + + var bioContainer = speakerContainer.Elements("div").FirstOrDefault(o => o.Id == "sched-page-me-profile-about"); + var sessionContainer = + speakerPage.DocumentNode.Descendants("div").FirstOrDefault(o => o.Id == "sched-page-me-schedule"); + + var id = href.Split('/').Last(); + var name = titleElement.Element("#text").InnerHtml.Trim(); + var links = linkElements.Select(o => new Link { Url = o.Attributes["href"].Value, Icon = o.Element("img").Attributes["alt"].Value }); + var bio = bioContainer == null ? string.Empty : bioContainer.InnerHtml.Trim(); + + var sessions = new List(); + foreach ( + var sessionLinkContainer in + sessionContainer.Descendants("div").Where(o => o.HasClass("sched-container-inner"))) + { + var sessionLinkElement = sessionLinkContainer.Descendants("a").First(); + var sessionHref = sessionLinkElement.Attributes["href"].Value; + var sessionId = sessionHref.Split('/').Last(); + var title = sessionLinkElement.Element("#text").InnerText.Trim(); + + var sessionPage = new HtmlDocument(); + sessionPage.LoadHtml(await htmlClient.GetStringAsync(sessionHref)); + + var abstractElement = + sessionPage.DocumentNode.Descendants("div").FirstOrDefault(o => o.HasClass("tip-description")); + + var @abstract = string.Empty; + if (abstractElement != null) + { + @abstract = abstractElement.InnerText.Trim(); + } + + var slotElement = + sessionPage.DocumentNode.Descendants("div") + .First(o => o.HasClass("sched-container-dates")); + + var roomElement = + sessionPage.DocumentNode.Descendants("div") + .First(o => o.HasClass("sched-event-details-timeandplace")).Element("a"); + + var slot = + slotElement.Elements("#text") + .Last() + .InnerText.Split("•".ToCharArray()) + .Last() + .Trim(); + + var room = roomElement.InnerText.Trim(); + + var session = new Session + { + Id = sessionId, + Title = title, + TimeSlotId = slot, + TrackId = room, + Abstract = @abstract, + Speaker = name, + SpeakerId = id + }; + + allSessions.Enqueue(session); + sessions.Add(session); + } + + speakers.Enqueue(new Speaker { Id = id, Name = name, Links = links, Bio = bio, Sessions = sessions }); + + var avatarContainer = + speakerContainer.Descendants("span").FirstOrDefault(o => o.Id == "sched-page-me-profile-avatar"); + + if (avatarContainer != null) + { + var imageTag = avatarContainer.Descendants("img").FirstOrDefault(); + if (imageTag != null) + { + var rawUrl = imageTag.Attributes["src"].Value; + var imageUrl = rawUrl.StartsWith("//") ? rawUrl.Replace("//", "http://") : rawUrl; + + var stream = await imageClient.GetStreamAsync(imageUrl); + var file = File.OpenWrite(string.Format("{0}\\{1}.jpg", OutputDir, id)); + + await stream.CopyToAsync(file); + file.Close(); + } + } + })).ToArray()); var streamWriter = new StreamWriter(string.Format("{0}\\speakers.json", OutputDir)); streamWriter.Write(JsonConvert.SerializeObject(speakers.OrderBy(o => o.Name))); streamWriter.Close(); - Console.WriteLine("Process completed, press any key to exit"); - Console.ReadKey(); + var agendaWriter = new StreamWriter(string.Format("{0}\\agenda.json", OutputDir)); + agendaWriter.Write(JsonConvert.SerializeObject(allSessions.OrderBy(o => o.TrackId).ThenBy(o => o.TimeSlotId))); + agendaWriter.Close(); + } + } + + public static class Extensions + { + public static bool HasClass(this HtmlNode o, string className) + { + return o.Attributes.Contains("class") && o.Attributes["class"].Value == className; } } }