Event Location:
La Roche College, Zappala Center
9000 Babcock Boulevard
Pittsburgh , Pennsylvania
Abstract:
See those things around your ankles?  Whether you're an accidental DBA, a DBA who has just inherited a bunch of servers, or someone who works in a shop that won't buy monitoring tools, this session will help you get basic monitoring in place to make sure you know what's going on in your environment. You'll learn how to implement seven simple scripts that perk their ears up and start barking like a dog after a stranger walks in the house. They are the canary in your coal mine. You'll know when backups fail, when they run longer than usual, when data files are getting full, when transaction logs have excessive VLFs, and more.
Speaker(s): Mike Hillwig,
Abstract:
In this session, we'll cover the basics of setting up SQL Server Service Broker from the ground up with lots of demos. We'll discuss some pros and cons to using Service Broker, some common problems encountered when using it, and some example use cases. If you've ever been curious about Service Broker, need to send data between databases or instances, or are wondering if Service Broker is right for your organization, then you won't want to miss this session.
Speaker(s): Adam Belebczuk,
Abstract:
Mike Hillwig is known as the Cranky DBA. You probably have pain points in your environment that make you cranky, too. Mike has lots of horror stories to tell about bad SQL Server implementations and practices. More importantly, he has developed a list of 12 key tips for managing your SQL Server environment. By following these tips, you’ll make your DBAs, developers, and system administrators a little less cranky.
Speaker(s): Mike Hillwig,
Abstract:
Data center migrations are all the rage these days and the SQL Server DBA is one of the most important accessories. When an organization decides to change data centers, of all the very important servers that will be migrated, the ones with the company data will be the most watched. Like other projects, a good plan followed by good execution is required. In this session you’ll learn about the research, design, planning, process, and execution to migrate SQL Servers from one DC to another. I’ll go over lessons learned, whether to go it alone or brings in help, discuss pros and cons of migration techniques, big decisions like keeping the same server names, when to and not to virtualize, downtime considerations, data sync, and more.
Speaker(s): Tony Scotto di Carlo,
Abstract:
Topic will provide a more in depth look into query execution plans and is targeted for junior to senior DBA’s. You will learn how to identify what indexes are being used by the SQL optimizer, different type of index operations are performed by SQL server and what operations are generally considered as a preferred method of data retrieval. We will discuss how to determine if indexes used by the optimizer are the optimal ones and the exceptions to the rules. Finally we will discuss the relationship between different types of index operation and different types of join types within SQL Server including how the SQL Optimizer determines which join type it will use and pros and cons of each type.
Speaker(s): Konstatin Melamud,
Abstract:
In the SQL Server tool box there is a great tool called SQL Server Report Services. With five different interfaces, Report Services can be a bit challenging to setup and configure. Our focus will include setup, configuration, and deployment. When you walk away from this session, you will understand terms like BIDS, SSRS, Report Builder, and Crescent. Also, as part of this session we will cover the differences between SQL 2008 R2 and SQL 2012. If you are looking for steps to start developing your repertoire of SQL Server Report Services, this is definitely a session to attend!
Speaker(s): Cory Stevenson,
Abstract:
This is an expanded and updated version of the session I presented at the SQL Rally in Orlando. We will cover Tactical Data Governance and in detail specific code examples, using Stock and Custom SSIS Transforms ,Data Models, SSAS Cubes used to create and populate a Metadata Mart as defined by Michael Belcher(Gartner). We will demonstrate incorporating complete custom Data Profiling capabilities (SSIS Transform Scripting, TSQL) capable of Profiling any Source and Targeting any destination. In addition we will implement Data Quality(Address Correction, Fuzzy Matching) and Visualization via PowerPivot , Excel and QlikView. Last will will demonstrate code generation.
Speaker(s): Ira Warren,
Abstract:
If you follow baseball you will notice that the Pittsburgh Pirates (this speaker’s favorite team) has to do more with less to be successful. This trend can also exist within IT shops. If you need to improve the performance of your SQL Server instances and cannot purchase 3rd party tools this session is for you. Learn to improve your performance tuning process by using several free tools. This session will cover wait stats, dynamic management objects, perfmon, PAL, SQL Trace, ClearTrace, SQL Nexus and SQLDiag.
Speaker(s): John Sterrett,
Abstract:
With the release of SSAS 2012 Microsoft has introduced a new BI storage engine. In addition to the traditional OLAP engine you now have the option to build your BI models on top of the new Vertipaq engine (This is the same engine used by PowerPivot.) To use the new xVelocity engine you build a Tabular data model. A new query language DAX (Data Analysis Expressions) is used to create calculations, measures, and KPI’s. DAX is similar to the expression language used in excel and it should be easier to use than MDX and appeal to a broader audience. This session is designed to introduce you to the process of building a tabular model in SQL Server Data Tools (BIDS rebranded).
Speaker(s): Dan Clark,
Abstract:
Who altered this view and how? When was that index created? What happened to my stored procedure? From SQL Trace to SQL Audit and everything in between, we'll explore various methods of auditing events in SQL Server, how they work, and the inherent strengths and shortcomings of each in an epic quest to find the perfect DDL audit solution.
Speaker(s): Colleen Morrow,
Abstract:
We will review the upgrade process to SQL Server 2012. An upgrade is 75% project planning and 25% execution. Everyone knows that, right? Actually, no. A checklist of considerations a company would likely encounter coming from SQL Server 2005/2008 or R2. The pros and cons of in place upgrade vs. the build out new approach. There will be many real world lessons learned sprinkled in as the presenter has led many upgrades and migrations of SQL Server. Key takeaways include: when to upgrade in place compared to build new, usage of and how to gauge the usefulness of Upgrade Advisor, deprecated features and how to test for them
Speaker(s): Craig Purnell,
Abstract:
Many organizations never plan for disaster. Ken and Don will present a solution that can assist any shop to ensure mission critical SharePoint farms continue to operate throughout the course of an unplanned production downtime. The speakers will speak about topics that are pertinent to ensuring continuity of operations, how to plan for disaster, and how to use Log Shipping to ensure content is copied to a secondary farm to ensure accessibility and uptime.
Speaker(s): Donald Scott,
Abstract:
Installing SQL Server is easy, right?  At least that's what many of our non-DBA colleagues think. Not so fast, says veteran DBA Mike Hillwig. SQL Server has lots of default settings that can be potential performance killers, and we'll look at a bunch of them. These include things like where data files live, data file growth, basic security settings, and the services being installed. And while we're at it, we'll look at a bunch of the good defaults and talk about why they shouldn't be touched.
Speaker(s): Mike Hillwig,
Abstract:
Perfmon is a standard windows monitoring tool available on every windows deployment. It can provide a wealth of information about the activities within your system. We will cover the basics in this session which include how to setup/schedule perfmon to capture data as well as some basics around initial analysis. This session will have a strong component of demos.
Speaker(s): Rick Heiges,
Abstract:
Data Quality Services (DQS) has been introduced as part of the Microsoft SQL Server 2012 stack. In this session, we will take a first look at DQS and how it can transform the way we enable and set data quality standards to ensure clean data.
Speaker(s): Rushabh Mehta,
Abstract:
Many of our customers are either virtualizing databases or planning to do so soon. We hear from many groups that attempted running their database on VMware but went back to physical hardware because of performance issues. There are many reasons this may have happened, but quite often the decision to go back to physical was not based on hard facts. This presentation will explore the fundamentals of monitoring databases running in a VMware environment. If you are using classic O/S monitoring tools, you may be getting misleading data. Understand what metrics are important and how to get to that data.
Speaker(s): Dean Richards,
Abstract:
NoSQL is the buzzword of the moment, and MongoDB is the leader of the pack. Its probably running in your enterprise in production, and eventually its going to break. As a DBA its your job to fix it when it breaks, and back it up before it does.After all, there's not RELATIONAL in DBA. On the technical side, this talk will focus on what a DBA needs to know about running MongoDB on windows. This includes setting it up as a service, importing and querying data, and of course backing up and restoring the database. On the non-technical side, this talk will focus on when you would want to use MongoDB, and when you would not want to.
Speaker(s): Justin Dearing,
Abstract:
The 2012 release of SQL Server introduces 14 new functions for developers. This list includes functions for conversion, date/time calculation, enhanced logic, and string manipulation. In this session we’ll cover the ins and outs of these new functions, making you a better T-SQL developer.
Speaker(s): Sam Nasr,
Abstract:
You know what your query does, but do you know how it does it? Do you know what type of resources your query uses? Come to this session to find the answers to these questions and more as we walk through reading execution plans. We will see how SQL breaks down the execution of your query and what each step tells us about the overall query. If you are newer to Microsoft SQL or you just don’t feel totally comfortable with reading execution plans, this session is for you.
Speaker(s): Tim Corey,
Abstract:
Have you heard about all of the new Availability Group features in SQL 2012? Thinking about implementing a DR solution, but don't know where to start. In this presentation you'll learn all about the new DR features in SQL Server 2012 and see them in practice.
Speaker(s): Joseph D'Antoni,
Abstract:
There are many mistakes made repeadedly that are never caught in the database design and subsequent development efforts that affect performance, logic, and casue pain for the DBA. This session will point these issues out, and help you prevent and identify these issues.
Speaker(s): Michael John,
Abstract:
This presentation will offer a tutorial for using maps in SQL Server 2012 Reporting Services reports. Sample applications and use of ESRI shapefiles will be included in the demonstration.
Speaker(s): Nate Locklin,
Abstract:
Full-text search is an often overlooked feature of SQL Server that can be used for more than searching documents. This session will cover setting up and using full-text search to handle some of those dirty data situations we've all inherited without using the dreaded "LIKE '%text%'". As an example, we will demonstrate how full-text search can be used to find names in poorly formatted data like 'mailing address' or 'billing address' fields. It will also cover how to handle noise words that may match some names and synonyms for first names to create a really robust solution that goes beyond what could be done with plain old SQL.
Speaker(s): Jay Holliday,
Abstract:
Much like other recent installments of SQL Server, SQL 2012 provides a wealth of new capabilities in the arena of Business Intelligence. Come join A.J. Mee, a veteran Microsoft BI specialist, to review the key advances that SQL Server 2012 brings to enterprise BI scenarios, including: · Power View · BI Semantic Model (BISM) · Data Quality Services · Master Data Management · Columnstore Index
Speaker(s): A.J. Mee,
Abstract:
Ever thought about trying your hand at blogging? Or maybe you've started a blog but struggle with what to write about. We'll take a beginner's look at blogging and examine what makes a great blog, overcoming obstacles common to new (and even experienced) bloggers, building authority and credibility, and setting you on the road to blogging stardom.
Speaker(s): Colleen Morrow,
Abstract:
“No one knows what I do.” That’s a chief complaint of data professionals everywhere, and it’s a dangerous position to be in as well. Reviews may not be favorable, promotions more uncommon, and training dollars more rare. But by practicing written and verbal communication, new opportunities may present themselves. Blogging can land a book deal. In-house team lunch-and-learns can lead to community presentations. Most of all, good communication can be the skill that saves your job or opens the door to new horizons.
Speaker(s): Matt Velic,
Abstract:
I will share some stories, discuss the Power of PowerShell and provide some example scipts.
Speaker(s): Carlton Ramsey,
Abstract:
Developers like the reduced complexity and increased productivity that an ORM can bring while DBAs don't care for the data models that often result. Using an ORM with an existing data model is often a nightmare. But writing all of that data mapping code is such a pain! What if we could have a solution that gave us the best of both worlds and made the developers AND the DBAs happy? MicroORMs might be the answer. In this session, we’ll explore PetaPOCO, a MicroORM.
Speaker(s): Eric Kepes,
Abstract:
This session will provide an introduction to Master Data. We will discuss what Master Data is and discuss Master Data Management. Master Data Management is the process of migrating data into a single source so that the information to be shared by multiple systems and applications in the organization. Merging data into this single source we can remove duplicates and improve data quality.
Speaker(s): Carlton Ramsey,
Abstract:
The FileStream feature was introduced with SQL Server 2008 allowing BLOBs to be managed by the DB. In 2012, FileTable expands on this feature by using specific tables for storing these BLOBs. This allows Windows apps to access these items as if there were stored on the file system.
Speaker(s): Sam Nasr,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
Konstantin Melamud is a SQL Server Team Lead for Remote DBA Experts. He works with over 200 customers on solutions within the SQL Server environment and leads code tuning team within Remote DBA experts. He is passionate about educating users on SQL Server by speaking at user groups, conferences, and labs.
LinkedIn: http://www.linkedin.com/in/samsnasr
Contact: http://samnasr.blogspot.com/
Sam Nasr has been a software developer since 1995, focusing mostly on Microsoft technologies. He’s a Sr. Software Engineer with NIS Technologies where he consults and teaches clients about the latest .Net technologies. Sam has achieved multiple certifications from Microsoft (MCSA, MCAD, MCTS, MCT), and is the leader of the Cleveland C#/VB.Net User Group since 2003. In addition, he’s the leader of the .Net Study Group, an author for Visual Studio Magazine, and a Microsoft MVP since 2013. When not coding, Sam loves spending time with his family and friends or volunteering at his local church.
LinkedIn: http://www.linkedin.com/pub/colleen-morrow/2a/95a/651/
Contact: http://colleenmorrow.com
Colleen Morrow is a database professional living in Cleveland, OH who has been working with database systems since 1996. For more than 12 years, she was a Database Administrator at a large law firm where she developed an appreciation for auditing, automation, and performance tuning. Since that time she has worked with clients in the healthcare, manufacturing, software, and distribution/freight delivery industries. Colleen is currently a Senior Consultant at Fortified Data. She is an active member of the Ohio North SQL Server User Group and has presented at many SQLSaturday events as well as PASS Summit 2014 and 2015.
Over 35 years experiences in Software Sevelopemt, IT Management and BI Architecture.
LinkedIn: http://www.linkedin.com/profile/view?id=3997984amp;trk=hb_tab_pro_top
Contact: http://joeydantoni.com
Joseph D'Antoni is a Senior Consultant and Microsoft Data Platform MVP with over 20 years of experience working in both Fortune 500 and smaller firms. He is a Principal Consultant for Denny Cherry Associates and lives in Malvern, PA. He is a frequent speaker at major tech events like Microsoft Ignite, PASS Summit, and Enterprise Data World. He blogs about all topics technology at joeydantoni.com. He believes that no single platform is the answer to all technology problems. Joseph holds a BS in Computer Information Systems from Louisiana Tech University and an MBA from North Carolina State University, and is the co-author of the Microsoft book "Introducing SQL Server 2016”.
LinkedIn: http://www.linkedin.com/in/tonyscottodicarlo
Tony Scotto di Carlo has been in the IT biz for over 20 yrs with a bend towards the entrepreneurial.Over his tenure, Tony's career has taken him from consulting, cofounding 3 software companies, IT Mangager amp; Director of business systems, with several years working in Europe and the Middle East.Tony has been working with SQL Server since the mid 90’s with version 6.5ish /7. Today Tony is a Sr Consultant with Dell Services, architecting, planning and managing SQL Server data center migrations.
Contact: http://blogs.msdn.com/b/ajmee/
A.J. Mee is a Principal for Microsoft. He has dedicated his entire 20-year career to the field of BI and Database. He has served in varied roles from development to project management to people leadership to sales. He is a popular speaker who frequently presents on a wide variety of BI-related topics at numerous conferences and events. He came to Microsoft as part of its acquisition of ProClarity in 2006. A.J. holds a B.A. in Computer Science from LaSalle University.
LinkedIn: http://www.linkedin.com/in/mikehillwig
Contact: http://www.mikehillwig.com
Veteran DBA Mike Hillwig is a native Pittsburgher and resident of the Boston Suburbs. He’s a DBA Manager for a financial software company that’s owned by one of the world’s largest bank. Mike has been working with SQL Server since version 7 and has a background in infrastructure and network. Today, he manages a team of DBAs around the globe.
LinkedIn: https://www.linkedin.com/in/justindearingnyc
Contact: http://www.justaprogrammer.net
Justin Dearing has been working in IT in 2002. He started as a night shift AS/400 operator and rose through the ranks at a series of companies. He currently works as a developer in the capital markets industry. Justin has served in both the development and production side of the house on Windows, Unix and Midrange Platforms. His database experience includes MongoDB, MySQL, Postgres and Microsoft SQL server. These days he programs in C#, PowerShell and PHP.
LinkedIn: https://www.linkedin.com/in/natelocklin/
Contact: http://www.locklin.org
Nate Locklin is IT Manager at PPG Industries, leading the Business Intelligence and SQL Server Database Administration teams. He has been employed as a SQL Server DBA since 2000 and holds MCDBA and MCTS certifications. He has been a member of the Pittsburgh SQL Server User Group for almost 20 years, and has previously presented on SSIS best practices and using geospatial data in SSRS.
LinkedIn: http://linkedin.com/in/craigpurnell
Contact: http://www.craigpurnell.com/
Craig Purnell is a career database professional, trainer, and community activist. He has spent over 10 years as the Database Administrator at a large Midwestern law firm. He has been in IT for 15 years and has spent his entire career working with enterprise databases and ERP systems. Craig is an active member of the Ohio North SQL Server User Group and has presented at many user groups, SQLSaturdays, and the PASS Summit in 2012 and 2013
LinkedIn: http://www.linkedin.com/in/dxclark/
Contact: http://drclarkblog.wordpress.com/
Dan Clark is a senior data analytics consultant. He is focused on all things data analytics and training others how to get value from their data. Dan has published several books and numerous articles on .NET programming and data analytics. He is a regular speaker at various developer and database conferences and user group meetings and enjoys interacting with the Microsoft developer and database communities. His latest book Beginning Power BI published by Apress is a will get you up and running with self-service data analytics on the Power BI platform in no time.
Contact: http://www.itkegger.com
Team of Speakers: Donald Scott (donscott@microsoft.com), Kenneth Hausman (kennha@microsoft.com), Jon Tupitza (jtupitza@microsoft.com). We are all Microsoft employees. We support SQL and other Microsoft products for customers around the DC area. Together we bring over a decade of MS experience. Ken Hausman and Jon Tupitza are Microsoft Consultants and Donald Scott is a Microsoft Premier Field Engineer.
LinkedIn: http://www.linkedin.com/in/samsnasr
Contact: http://samnasr.blogspot.com/
Sam Nasr has been a software developer since 1995, focusing mostly on Microsoft technologies. He’s a Sr. Software Engineer with NIS Technologies where he consults and teaches clients about the latest .Net technologies. Sam has achieved multiple certifications from Microsoft (MCSA, MCAD, MCTS, MCT), and is the leader of the Cleveland C#/VB.Net User Group since 2003. In addition, he’s the leader of the .Net Study Group, an author for Visual Studio Magazine, and a Microsoft MVP since 2013. When not coding, Sam loves spending time with his family and friends or volunteering at his local church.
LinkedIn: http://www.linkedin.com/pub/colleen-morrow/2a/95a/651/
Contact: http://colleenmorrow.com
Colleen Morrow is a database professional living in Cleveland, OH who has been working with database systems since 1996. For more than 12 years, she was a Database Administrator at a large law firm where she developed an appreciation for auditing, automation, and performance tuning. Since that time she has worked with clients in the healthcare, manufacturing, software, and distribution/freight delivery industries. Colleen is currently a Senior Consultant at Fortified Data. She is an active member of the Ohio North SQL Server User Group and has presented at many SQLSaturday events as well as PASS Summit 2014 and 2015.
LinkedIn: http://www.linkedin.com/in/mikehillwig
Contact: http://www.mikehillwig.com
Veteran DBA Mike Hillwig is a native Pittsburgher and resident of the Boston Suburbs. He’s a DBA Manager for a financial software company that’s owned by one of the world’s largest bank. Mike has been working with SQL Server since version 7 and has a background in infrastructure and network. Today, he manages a team of DBAs around the globe.
?I've worked with many systems over the years from Geographic Information Systems to Document Imaging to Web Public Access Systems to Phone System Integrations and many things in between. The one thing they've all had in common is a relational database back-end allowing me to easily move around and up throughout my career.
LinkedIn: https://www.linkedin.com/in/rushabhbmehta
Contact: http://blogs.solidq.com/RushabhMehta
Rushabh Mehta is a Business Intelligence Mentor with SolidQ and the Managing Director for Solid Quality India Pvt. Ltd. He served as PASS President for 2010/2011 term. Rushabh has worked with MS Data Platform since 1998 and has designed and developed BI systems since 2001. He has been the lead architect for many large-scale and complex BI solutions for clients such as Publix, Raymond James, Jackson Hewitt, US Dept. of Defense, and Microsoft. He is an MVP with Microsoft, Damp;B amp; Melissa Data
LinkedIn: https://www.linkedin.com/in/carltonramsey/
Contact: http://www.eccentricDBA.com
Carlton B Ramsey has worked for Third Federal Savings and Loan in Cleveland Ohio for two decades as an Application Developer and Database Administrator. He is an active member of the North Ohio SQL Server User Group, frequent SQLSaturday Presenter and Past-President of the Akron-Canton Chapter of CompTIA AITP (Association of Information Technology Professionals). In addition, he has a MCSA SQL 2016 Database Development.
LinkedIn: https://www.linkedin.com/in/michael-john-3403b45/
With 20 years experience in all aspects of development and administration of SQL Server, from version 6.5 to 2016, I have seen, broken, and fixed just about everything in SQL Server!
LinkedIn: http://www.linkedin.com/in/itacb
Contact: http://www.sqldiablo.com/
Adam Belebczuk is the Owner amp; Principal Consultant at Belebczuk Consulting Services, LLC and has more than 10 years of experience in IT, ranging from customer service to server/network administration to software and database development and administration. Adam is the Chapter Leader for the Ohio North SQL Server Users Group, a frequent speaker and volunteer at PASS events, and specializes in SQL Server development, performance tuning, high availability, and disaster recovery.
LinkedIn: http://www.linkedin.com/in/mikehillwig
Contact: http://www.mikehillwig.com
Veteran DBA Mike Hillwig is a native Pittsburgher and resident of the Boston Suburbs. He’s a DBA Manager for a financial software company that’s owned by one of the world’s largest bank. Mike has been working with SQL Server since version 7 and has a background in infrastructure and network. Today, he manages a team of DBAs around the globe.
LinkedIn: http://www.linkedin.com/in/corygs/
Cory Stevenson, a Business Intelligence Consultant for BlueGranite, Inc., has worked with technology for over 10 years. He has specifically worked with SQL Server 2000 on up; in addition, his interests include SSIS, SSAS, SSRS, DQS, and MDS. Cory is an active member of the Ohio North SQL Server User Group. You can find him on Twitter at @CoryGStevenson.
LinkedIn: https://www.linkedin.com/in/iamtimcorey/
Contact: http://www.epicross.com
Tim is a Microsoft MVP whose goal is to make learning software development easier. If you are struggling with learning C#, SQL, or the related technologies, he wants to help.
LinkedIn: http://www.linkedin.com/in/johnsterrett
Contact: https://johnsterrett.com/community/
John Sterrett is a MCSE: Data Platform, Principal Consultant, and the Founder of Procure SQL LLC. John has experience presenting at community events, including Microsoft Ignite, PASS Member Summit, SQLRally, 24 Hours of PASS, SQLSaturdays, PASS Chapters, and Virtual Chapter meetings. John is a leader of the Austin SQL Server User Group and is the founder of the HADR Virtual Chapter. John's community activities can be found at https://johnsterrett.com/community/
LinkedIn: http://www.linkedin.com/pub/dean-richards/6/167/a90
Dean Richards is a Senior DBA for DBMS Insights and has helped hundreds of companies solve database and virtualization performance issues. Dean has over 20 years of experience in both development and database administration and has focused his entire career on performance tuning of Oracle and SQL Server environments. Most recently Dean has focused on the trend to virtualize and move databases to the cloud.
LinkedIn: https://www.linkedin.com/in/carltonramsey/
Contact: http://www.eccentricDBA.com
Carlton B Ramsey has worked for Third Federal Savings and Loan in Cleveland Ohio for two decades as an Application Developer and Database Administrator. He is an active member of the North Ohio SQL Server User Group, frequent SQLSaturday Presenter and Past-President of the Akron-Canton Chapter of CompTIA AITP (Association of Information Technology Professionals). In addition, he has a MCSA SQL 2016 Database Development.
Contact: http://erickepes.com
Eric Kepes is an in-the-trenches software architect specializing in developing distributed systems using agile methods. He enjoys sharing his experiences using technology with the developer community at user group meetings and Code Camps. He is Communications Director for PghDotNet and Speaker Coordinator for PghTechFest. Having spent 18 years in software development wearing many different hats, he currently works for McKesson Automation as a software architect.
LinkedIn: http://www.linkedin.com/in/mattvelic
Contact: http://mattvelic.com
Matt Velic is a database developer for Sanametrix in Washington, DC. When not jet setting between projects at work, you can find him at a board game, a video game, or playing a guitar.
LinkedIn: http://www.linkedin.com/pub/rick-heiges/1/b93/777/
Contact: http://sqlblog.com/blogs/rick_heiges/default.aspx
Rick is a Former Data Platfrom MVP and Sr. Consultant for Microsoft where he focuses on working with customers on their data estate. His career includes work as a DBA, University full-time faculty member, Systems Analyst, Project Leader, and Developer. He has found his passion in working with data and the community. Rick served nine years on the PASS Board of Directors and spearheaded the popular 24 Hours of PASS event. He also started his local User Group in 2002.
The following is a list of sponsors that helped fund the event.
Community Care Behavioral Health Organization
Friends Of Pittsburgh SQLSaturday


countrypicker is a jQuery plugin that utilizes Bootstrap's dropdown.js and bootstrap-select to provide country data and styling to standard select elements.
Download (v 1.0)Requires jQuery v1.8.0+, Bootstrap’s dropdown.js component, and Bootstrap's CSS. If you're not already using Bootstrap in your project, a precompiled version of the minimum requirements can be downloaded here.
Create your <select>
with the .selectpicker
and .countrypicker
class. The data-api from bootstrap-select will automatically apply a basic theme to these elements. Then the data-api from countrypicker will populate the select with countries.
<select class="selectpicker countrypicker"></select>
Set default country
data-default="United States"
Searchable with bootstrap-select.js
data-live-search="true"
Searchable, data default with flags
data-flag="true"


Biocides (like pesticides and herbicides) as well as fertiisers have come to be seen as the way to boost crop yields but this it comes at the cost of poisining our water and land, not to mention the degredation of our much needed agricultural land. These practices are indeed unsustainable, we will eventually poison all our water and degrade all our agricultural land. We have pushed aside our traditional organic agricultural practices for unsustainable western practices but with the advent of mechanisation of agriculture we can increase the productivity of our traditional organic agriculture to feed our continent and the world without poisoning our water or degrading our precious agricutural land. We are committed to the mechanisation of our traditional organic agriculture focusing on the production of fruits, vegetable, nuts and seeds listed above, while preserving indigeonous species.
{% include "Home/proverb/p21.html" %} {% endblock %}


Brian Keegan & Abram Handler
Week 15: April 19 - 23 2021
| Week | Topic | WA deadline |
| 14 | Customizing Vega plots | Apr 16 |
| 15 | Integrating data into Vega | Apr 23 |
| 16 | Advanced Vega visualizations | Apr 30 |
There is no final exam and no final project
Vega has a number of benefits!
pandas
for data transformationShow off in your capstone, final projects, portfolio!
The online editor has some nice functionality for developing and debugging your code
Great way to iteratively develop your visualizations outside of text editor to browser and back
It's less forgiving of stray punctuation, but has lots of nice autocomplete and instant feedback
Due tonight by midnight
Make two visualizations:
Include tutorial-style documentation with code blocks and interpret results of visualizations
Submit a URL to your GitHub Page on Canvas (link)
Peer reviews due Friday, April 23 by midnight
Due Monday, April 26 by midnight on Canvas
Historical DogeCoin price and volume data from Yahoo! Finance available on Canvas
Due Friday, April 30 by midnight on Canvas
Write a reflection on different ways of presenting quantitative and computational information to different audiences
At least three paragraphs describing how to present work to different audiences
No peer review, will help us design future versions of 3402
Short, free-form survey on Canvas asking for your reflections and input on how 3402 can be designed differently in the future
"Required" (we'll nag you a lot) but not graded
Complete the survey here
Vega includes many data transformation functions
Transformers do many powerful data operations within your Vega spec—no need for pandas
!
There are too many kinds of transforms to cover in a week, we will prioritize the most important ones
Transformations can be done at either the view-level within a transform
object or at the field-level within an encoding
object
We've already seen some examples of field-level transformations using the cars data
"encoding": {
"x": {"field":"Origin"},
"y": {"aggregate": "count"}
}
We could make the same plot at the view-level inside a transform
object
{
"data": {
"url": "https://vega.github.io/vega-datasets/data/cars.json"
},
"transform": [{
"aggregate": [{
"op": "count",
"as": "Origin_Count"
}],
"groupby": ["Origin"]
}],
"mark": "bar",
"encoding": {
"x": {
"field": "Origin",
"type": "nominal"
},
"y": {
"field": "Origin_Count",
"type": "quantitative"
}
}
};
View-level transformations require several fields, making them more verbose than field-level transformations
But view-level transforms can be saved as a variable to be passed to other operators
We'll see clearer examples of this moving forward
Aggregation is a ubiquitous data transformation operation used in combination with group-by
Aggregate summarizes all the values in each group
There are a few dozen supported aggregation operations
If you only learn one transformation, make it aggregate
Use the "disasters" dataset to make a bar plot of total "Deaths" by "Entity"
We're going to build up this visualization with more customization step-by-step
Use the "disasters" dataset to make a bar plot of total "Deaths" by "Entity"
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/disasters.csv"
},
"encoding": {
"x": {
"aggregate": "sum",
"field": "Deaths",
"type": "quantitative"
},
"y": {
"field": "Entity",
"type": "nominal"
}
},
"mark": "bar"
}
Use the "disasters" dataset to make a bar plot of total "Deaths" by "Entity"
Add some color to the bar chart
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/disasters.csv"
},
"encoding": {
"x": {
"aggregate": "sum",
"field": "Deaths",
"type": "quantitative"
},
"y": {
"field": "Entity",
"type": "nominal"
},
"color": {
"field": "Entity",
"type": "nominal"
}
},
"mark": "bar"
}
Sort the bars by their values so it's more meaningful
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/disasters.csv"
},
"encoding": {
"x": {
"aggregate": "sum",
"field": "Deaths",
"type": "quantitative"
},
"y": {
"field": "Entity",
"type": "nominal",
"sort": "-x"
},
"color": {
"field": "Entity",
"type": "nominal"
}
},
"mark": "bar"
}
Convert to a log-scale to see the variation in the small values
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/disasters.csv"
},
"encoding": {
"x": {
"aggregate": "sum",
"field": "Deaths",
"type": "quantitative",
"scale": {
"type": "log"
}
},
"y": {
"field": "Entity",
"type": "nominal",
"sort": "-x"
},
"color": {
"field": "Entity",
"type": "nominal"
}
},
"mark": "bar"
}
Add a layer
with text marks to annotate the total number of deaths
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/disasters.csv"
},
"encoding": {
"x": {
"aggregate": "sum",
"field": "Deaths",
"type": "quantitative",
"scale": {
"type": "log"
}
},
"y": {
"field": "Entity",
"type": "nominal",
"sort": "-x"
},
"color": {
"field": "Entity",
"type": "nominal"
}
},
"layer":[{
"mark": "bar"
},{
"mark": {
"type": "text",
"align": "left",
"baseline": "middle",
"dx": 5
},
"encoding": {
"text": {
"aggregate": "sum",
"field": "Deaths",
"type": "quantitative"
}
}
}]
}
This blog post suggests tickCount
to lower number of ticks for log-scaled axes
Use a registered number format pattern to get commas in big numbers
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/disasters.csv"
},
"encoding": {
"x": {
"aggregate": "sum",
"field": "Deaths",
"title": "Total Deaths",
"type": "quantitative",
"scale": {
"type": "log"
},
"axis": {
"tickCount":5
}
},
"y": {
"field": "Entity",
"type": "nominal",
"title": "Event Type",
"sort": "-x"
},
"color": {
"field": "Entity",
"type": "nominal"
}
},
"layer":[{
"mark": "bar"
},{
"mark": {
"type": "text",
"align": "left",
"baseline": "middle",
"dx": 5
},
"encoding": {
"text": {
"aggregate": "sum",
"field": "Deaths",
"type": "quantitative",
"format": ",.0f"
}
}
}]
}
Binning converts "quantitative" data into "ordinal" bins
The most common use case is making histograms
Like other transforms, this can be done at the encoding or view-level
Using the "movies" data, make a histogram of the "IMDB Rating" field
Set the bin
value in a channel to "true"
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/movies.json"
},
"mark": "bar",
"encoding": {
"x": {
"bin": true,
"field": "IMDB Rating"
},
"y": {
"aggregate": "count"
}
}
}
More verbose, but variable assignment can be powerful in more complicated visualizations
Need to encode bin start with x
and bin end with x2
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/movies.json"
},
"transform": [{
"bin": true,
"field": "IMDB Rating",
"as": "binned rating"
}],
"mark": "bar",
"encoding": {
"x": {
"field": "binned rating",
"title": "IMDB Rating (binned)",
"bin": {
"binned": true,
"step": 1
}
},
"x2": {
"field": "binned rating_end"
},
"y": {
"aggregate": "count"
}
}
}
Default bin count is 10, but this can be customized with the "maxbins" parameter
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/movies.json"
},
"mark": "bar",
"encoding": {
"x": {
"bin": {
"maxbins":50
},
"field": "IMDB Rating"
},
"y": {
"aggregate": "count"
}
}
}
Bin range is from min to max values, but sometimes you want a different range
Use the "extent" parameter and pass an array with [min,max]
Sometimes we don't need to visualize all the data
A filter transform removes data matching some criteria
The criteria can be defined with an "expression" string or with a "predicate" document
Make a histogram after filtering the "movies.json" data to only R-rated films
As an expression, we use "datum" as a variable referring to the data, brackets to invoke the field name, and quote the value as a string
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/movies.json"
},
"transform": [{
"filter":"datum['MPAA Rating'] == 'R'"
}],
"mark": "bar",
"encoding": {
"x": {
"bin": {"maxbins": 50,"extent":[0,10]},
"field": "IMDB Rating"
},
"y": {
"aggregate": "count"
}
}
}
Make a histogram after filtering the "movies.json" data to only R-rated films
As a predicate, we use nested statements to filter the data
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/movies.json"
},
"transform": [{
"filter": {
"field": "MPAA Rating",
"equal": "R"
}
}],
"mark": "bar",
"encoding": {
"x": {
"bin": {"maxbins": 50,"extent":[0,10]},
"field": "IMDB Rating"
},
"y": {
"aggregate": "count"
}
}
}
Multiple filters can be combined using either the expression or predicate notations
Filter the data to R-rated ("MPAA Rating") dramas ("Major Genre") and plot the distribution of scores
Use any of the JavaScript comparison operators like &
for "and"
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/movies.json"
},
"transform": [{
"filter": "datum['MPAA Rating'] == 'R' & datum['Major Genre'] == 'Drama'"
}],
"mark": "bar",
"encoding": {
"x": {
"bin": {"maxbins": 50,"extent":[0,10]},
"field": "IMDB Rating"
},
"y": {
"aggregate": "count"
}
}
}
Use logical composition operators to combine multiple predicates
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/movies.json"
},
"transform": [{
"filter": {
"and": [{
"field": "MPAA Rating",
"equal": "R"
},{
"field": "Major Genre",
"equal": "Drama"
}]
}
}],
"mark": "bar",
"encoding": {
"x": {
"bin": {"maxbins": 50,"extent":[0,10]},
"field": "IMDB Rating"
},
"y": {
"aggregate": "count"
}
}
}
Working with "Time unit" transformations
Hosting and loading data from beyond vega-datasets
Time unit converts timestamps into their component elements like year, month, week, day, hour, etc.
This can be helpful in combination with a variety of other transforms like aggregate
Filter the data to before 2011 and plot the number of releases per year
We're combining filter, aggregate, and timeUnit in different places
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/movies.json"
},
"transform": [{
"filter": {
"field": "Release Date",
"timeUnit": "year",
"lt": 2011
}
}],
"mark": "bar",
"encoding": {
"x": {
"timeUnit": "year",
"field": "Release Date"
},
"y": {
"aggregate": "count"
}
}
}
Time units can also be a string of consecutive time units for alternative time intervals
The number of movies released by date in the year
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 400,
"height": 400,
"data": {
"url": "https://vega.github.io/vega-datasets/data/movies.json"
},
"transform": [{
"filter": {
"field": "Release Date",
"timeUnit": "year",
"lt": 2011
}
}],
"mark": "line",
"encoding": {
"x": {
"timeUnit": "monthdate",
"field": "Release Date"
},
"y": {
"aggregate": "count"
}
}
}
Vega can load data from a variety of sources:
The most important thing is to point to the file itself
This URL won't work because it's not the data itself, but a HTML page visualizing the data
Click the "Raw data" link, which takes you to this githubusercontent" file with the data itself
The data does not have to be hosted on GitHub!
The CDC data on "Weekly Counts of Deaths by State" has a CSV file that can be accessed "Export > CSV"
Copy that link location and use it as a data source in a Vega visualization
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 600,
"height": 400,
"data": {
"url": "https://data.cdc.gov/api/views/muzy-jte6/rows.csv"
},
"transform": [{
"filter":"datum['Jurisdiction of Occurrence'] == 'United States'"
}],
"mark": "line",
"encoding": {
"x": {
"field": "Week Ending Date",
"timeUnit": "yearmonthdate"
},
"y": {
"field": "COVID-19 (U071, Multiple Cause of Death)",
"type": "quantitative"
}
}
}
Let's work with both the Time unit transformer and a new datasets that's not available from vega-datasets
The Texas power crisis in February 2021 caused more than 100 deaths and $200 billion in damages
Some politicians blamed wind and solar power
Texas's ERCOT publishes high-resolution data about the "fuel mix" of power generation for 2007–2021
Were wind and solar shortfalls responsible?
Historical 2007–2020 and February 2021 data downloaded from ERCOT
Data fields are (frustratingly!) irregular year-to-year
I published a notebook with my cleanup process
Data is in a 12.6MB CSV file ("ercot_feb_fuel_mix.csv") in Week 15 on class GitHub
How has the February fuel mix for ERCOT changed since 2007?
A line plot with years from "Datetime" on x-axis, total power from "Generated" on y-axis, and the "Fuel" sources as colors
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 600,
"height": 400,
"data": {
"url": "https://raw.githubusercontent.com/cuinfoscience/INFO3402-Spring2021/main/Week15/ercot_feb_fuel_mix.csv"
},
"mark": "line",
"encoding": {
"x": {
"field": "Datetime",
"timeUnit": "year",
"title": "February of Year"
},
"y": {
"aggregate": "sum",
"field": "Generation",
"title": "Total MW generated"
},
"color":{
"field":"Fuel",
"type": "nominal"
}
}
}
Simple gas was overtaken by combined cycle in 2009
Wind power is replacing coal since 2015
Solar is minor but rapidly growing
What did the February 2021 ERCOT fuel mix look like before, during, and after the blackouts?
solar generation in 2021 compare to 2020?A line plot with years from "Datetime" on x-axis, total power from "Generated" on y-axis, the "Fuel" sources as colors, and filtered to only include 2021 data
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 600,
"height": 400,
"data": {
"url": "https://raw.githubusercontent.com/cuinfoscience/INFO3402-Spring2021/main/Week15/ercot_feb_fuel_mix.csv"
},
"transform": [{
"filter":{
"field": "Datetime",
"timeUnit": "year",
"equal": 2021
}
},{
"filter":{
"field": "Fuel",
"oneOf": ["Coal","Gas-CC","Gas","Nuclear","Hydro","Solar","Wind"]
}
}],
"mark": "line",
"encoding": {
"x": {
"field": "Datetime",
"timeUnit": "monthdate",
"title": "February 2021"
},
"y": {
"aggregate": "mean",
"field": "Generation",
"title": "Average MW generated",
"scale":{
"type":"log",
"domain":[1e0,1e4]
},
"axis": {
"tickCount": 5
}
},
"color":{
"field":"Fuel",
"type": "nominal"
}
}
}
Solar and wind power fell substantially before and during blackouts
Troublingly, nuclear also fell during blackouts
Are the solar and wind shortfalls to blame?
How did daily wind and and solar generation in 2021 compare to 2020?
A line plot with years from "Datetime" on x-axis, an for pre-2021 "Generated" on y-axis for one layer, the average 2021 generation for the other layer, and the "Fuel" sources as colors
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": 600,
"height": 400,
"data": {
"url": "https://raw.githubusercontent.com/cuinfoscience/INFO3402-Spring2021/main/Week15/ercot_feb_fuel_mix.csv"
},
"transform": [{
"filter":{
"field": "Fuel",
"oneOf": ["Wind","Solar","Gas-CC"]
}
}],
"layer": [{
"transform": [{
"filter": {
"field": "Datetime",
"timeUnit": "year",
"lte": 2020
}
}],
"mark": {
"type": "errorband",
"extent": "ci"
},
"encoding": {
"x": {
"field": "Datetime",
"timeUnit": "monthdate",
"title": "February 2021"
},
"y": {
"field": "Generation",
"type": "quantitative",
"title": "Total MW generated"
},
"color":{
"field":"Fuel",
"type": "nominal"
}
}
},{
"transform": [{
"filter": {
"field": "Datetime",
"timeUnit": "year",
"equal": 2021
}
}],
"mark":{
"type":"line",
"strokeWidth":5
},
"encoding": {
"x": {
"field": "Datetime",
"timeUnit": "monthdate",
"title": "February 2021"
},
"y": {
"field": "Generation",
"aggregate": "mean",
"title": "Total MW generated",
"scale":{
"type":"log"
},
"axis": {
"tickCount": 5
}
},
"color":{
"field":"Fuel",
"type": "nominal"
}
}
}]
}
Significantly more gas use in 2021 than average, but major shortfalls starting February 13
Wind power declines back to normal historical ranges
Solar power significantly above average historical ranges
Friday: In-class exercises using transforms
Weekly Assignment 13 due Monday, April 26 by midnight
Reminders
Transforms and loading data beyond vega-datasets
In-class exercise template can be downloaded here
Upload whatever you complete to Canvas here


Jack Ross outlines Hibs transfer plans as new manager targets 'fine margins' of improvement
The former Sunderland boss faces Motherwell on Saturday in his first game.
by Gabriel McKayNew Hibs manager Jack Ross insists he's not planning to revolutionise the squad in January, as he looks to get the most from the players he currently has.
The former Sunderland manager has replaced Paul Heckingbottom in the dugout, and faces Motherwell on Saturday for his first game as Hibees boss.
Given Hibs have won just two games all season, many would expect there to be a raft of changes in January. But Ross is adamant he'd prefer to work with that he's got.
He said: "My assessment of the squad is only just beginning.
"Ideally, I'd like to not have to do much in January because that would mean between now and the winter break we would have picked up a lot of points. That's the perfect scenario.
"Everyone has different approaches but for me it's not about sitting here having that threat over the players that I'm going to bring players in in January.
"I want to start enjoying working with what I have here. The ideal scenario is that if they are that good I don't have to bring in anyone in come January.
"Speaking to people before I came here about this team this season, there was a lot of talk about fine margins and that the team should be more points better off.
"Those fine margins would mean there is not an awful lot wrong.
"For me it's not about looking back. I could only affect things as of Tuesday when I started to work with the players so that's what the focus is on.
"I've stressed to the players that any changes we make will be gradual.
"The biggest changes we make this week may be on the training pitch.
"But I've not asked what Paul did as I think he's a very good coach and manager but all coaches and managers work in their own way. Slowly but surely we'll drip in our ideas.
"This week has been more about me trying to learn as much about Motherwell in a short period of time as I haven't seen much of them for the last 18 months.
"But it will be a good test as right now Motherwell are in a position in the league that we are aspiring to."


Brushes
Hacksaw Brushes
Made of the highest quality oak, Hacksaw brushes are known for their weight and ability to hold paint in large amounts. Available in different sizes. Starting at $3.00 / brush.
Made of the highest quality oak, Hacksaw brushes are known for their weight and ability to hold paint in large amounts. Available in different sizes. Starting at $3.00 / brush.
Assorted frames made of different material, including MDF, birchwood, and PDE. Select frames can be sanded and painted according to your needs. Starting at $2.00 / frame.
Imported paint from Finland. Over 256 colors available in-store, varying in quantity (1 oz. to 8 oz.). Clean Finnish paint microbinds to canvas, increasing the finish and longevity of any artwork. Starting at $5.00 / tube.


Cookie Confectionary
Chocolate Cookie Count:
Add Chocolate Cookie
Remove Chocolate Cookie
Clear Chocolate Cookies


Total: $0.00
Basket: empty
Toggle navigation
All Products
Category I
Category II
iPhone 7 Plus, 128 GB
$859.99
Add to basket
iPad Pro 256 GB
$699.99
Add to basket
Macbook Pro 15'
$1959.99
Add to basket
iWatch Series 2
$859.99
Add to basket
Cojocaru Andreea - Cristina
2017


Node.JS doesn’t offer window…
root = window ? global
ensure the core namespace
root.ShareCoffee or = {}
This class is an internal class which is used for translating an instance of ShareCoffee.CrossDomain.SharePointRestProperties to the format that SP.RequestExecutor understands
root.ShareCoffee.CrossDomainRESTFactory = class
constructor: (@method, @updateQuery = false) ->
SPCrossDomainLib: (sharePointRestProperties) =>
if sharePointRestProperties? and sharePointRestProperties.getRequestProperties?
sharePointRestProperties = sharePointRestProperties.getRequestProperties()
options = new ShareCoffee.REST.RequestProperties()
options.extend sharePointRestProperties
throw 'Cross Domain Libraries not loaded, call ShareCoffee.CrossDomain.loadCrossDomainLibrary() before acting with the CrossDomain REST libraries' if ShareCoffee.CrossDomain.crossDomainLibrariesLoaded is false
options.eTag = '*' if @method is 'DELETE' or (@updateQuery is on and not options.eTag?)
result =
url: if options.hostWebUrl? then "#{ShareCoffee.Commons.getApiRootUrl()}SP.AppContextSite<EMAIL_ADDRESS>else "#{ShareCoffee.Commons.getApiRootUrl()}#{options.url}"
method: @method
success: options.onSuccess
error: options.onError
headers:
'Accept': ShareCoffee.REST.applicationType
'Content-Type': ShareCoffee.REST.applicationType
'X-HTTP-Method' : 'MERGE'
'If-Match' : options.eTag
body: if typeof options.payload is 'string' then options.payload else JSON.stringify(options.payload)
if @method is 'GET'
delete result.headers['X-RequestDigest']
delete result.headers['Content-Type']
delete result.headers['X-HTTP-Method'] unless @method is 'POST' and options.eTag?
delete result.headers['If-Match'] unless @method is 'DELETE' or (@method is 'POST' and options.eTag?)
delete result.success unless options.onSuccess?
delete result.error unless options.onError?
delete result.body unless @method is 'POST'
result
The CrossDomain namespace offers functionality which will be used when you’re building Cloud-Hosted Apps (AutoHosted-and ProviderHosted-Apps).
root.ShareCoffee.CrossDomain = class
flag which determines if CrossDomain libraries are loaded or not.
@crossDomainLibrariesLoaded = false
This method will load all required libraries from SharePoint/Office365 that are required when you’d like to use CSOM(JSOM) from your Cloud-Hosted-App
@loadCSOMCrossDomainLibraries = (onSuccess, onError) ->
onAnyError = () =>
ShareCoffee.CrossDomain.crossDomainLibrariesLoaded = false
onError() if onError
runtimeScriptUrl = "#{ShareCoffee.Commons.getHostWebUrl()}/_layouts/15/SP.Runtime.js"
spScriptUrl = "#{ShareCoffee.Commons.getHostWebUrl()}/_layouts/15/SP.js"
requestExecutorScriptUrl = "#{ShareCoffee.Commons.getHostWebUrl()}/_layouts/15/SP.RequestExecutor.js"
ShareCoffee.Core.loadScript runtimeScriptUrl, ()=>
ShareCoffee.Core.loadScript spScriptUrl, ()=>
ShareCoffee.Core.loadScript requestExecutorScriptUrl, ()=>
ShareCoffee.CrossDomain.crossDomainLibrariesLoaded = true
onSuccess() if onSuccess
, onAnyError
, onAnyError
, onAnyError
The loadCrossDomainLibrary should be used when you’d like to use SharePoint’s REST interface. The method will load SP.RequestExecutor.js from the associated SharePoint/SharePoint-Online
@loadCrossDomainLibrary = (onSuccess, onError) ->
onAnyError = () =>
ShareCoffee.CrossDomain.crossDomainLibrariesLoaded = false
onError() if onError
requestExecutorScriptUrl = "#{ShareCoffee.Commons.getHostWebUrl()}/_layouts/15/SP.RequestExecutor.js"
ShareCoffee.Core.loadScript requestExecutorScriptUrl, ()=>
ShareCoffee.CrossDomain.crossDomainLibrariesLoaded = true
onSuccess() if onSuccess
, onAnyError
build is the entry point for CRUD operations using the REST interface it supports create, read, update, delete
@build =
create:
for: new ShareCoffee.CrossDomainRESTFactory 'POST'
read:
for: new ShareCoffee.CrossDomainRESTFactory 'GET'
update:
for: new ShareCoffee.CrossDomainRESTFactory('POST', true)
delete:
for: new ShareCoffee.CrossDomainRESTFactory 'DELETE'
It checks if all required cross domain libraries are loaded for using CSOM from a Cloud-Hosted App, if so, it will return the preconfigured SP.ClientContext instance
Returns an instance of SP.ClientContext which is targeting the AppWeb as far as all required libraries are loeded
@getClientContext = () ->
throw 'Cross Domain Libraries not loaded, call ShareCoffee.CrossDomain.loadCrossDomainLibrary() before acting with the ClientCotext' if ShareCoffee.CrossDomain.crossDomainLibrariesLoaded is false
appWebUrl = ShareCoffee.Commons.getAppWebUrl()
ctx = new SP.ClientContext appWebUrl
factory = new SP.ProxyWebRequestExecutorFactory appWebUrl
ctx.set_webRequestExecutorFactory factory
ctx
The getHostWeb method will return an instance of SP.Web targeting the suggested Web
returns an instance of SP.Web targeting the suggested SharePoint Web
@getHostWeb = (ctx, hostWebUrl = ShareCoffee.Commons.getHostWebUrl()) ->
throw 'Cross Domain Libraries not loaded, call ShareCoffee.CrossDomain.loadCrossDomainLibrary() before acting with the ClientCotext' if ShareCoffee.CrossDomain.crossDomainLibrariesLoaded is false
throw 'ClientContext cant be null, call ShareCoffee.CrossDomain.getClientContext() first' if not ctx?
appContextSite = new SP.AppContextSite ctx, hostWebUrl
appContextSite.get_web()


Open Source by Gradleware (Apache 2.0 license)
Defaults to Maven conventions
Full integration with Ant
DSL in Groovy
Flexible dependency management
Automation as well as build
Projects
Tasks
Dependency Resolution
Lifecycle
"build.gradle" configures the project
Project provides the base DSL
Build steps are performed by Tasks
Plugins provide preconfigured tasks
Tasks perform an action
class GreetingTask extends DefaultTask {
@TaskAction
def greet() {
println 'Hello World!'
}
}
Adding the task to you build
task hello(type: GreetingTask)
Task output
$ gradle hello
:hello
Hello World!
BUILD SUCCESSFUL
Tasks dependencies control execution order
task helloAgain(type: GreetingTask, dependsOn: hello)
Task output
$ gradle helloAgain
:hello
Hello World!
:helloAgain
Hello World!
BUILD SUCCESSFUL
Add functions to "Do First"
task redundantGreeting(type: GreetingTask) {
doFirst {
println 'Hello Hello Hello'
}
}
Task output
$ gradle redundantGreeting
:redundantGreeting
Hello Hello Hello
Hello World!
BUILD SUCCESSFUL
Add functions to "Do Last"
task helloAndGoodBye(type: GreetingTask) {
doLast {
println 'Goodbye World'
}
}
Task output
$ gradle helloAndGoodbye
:helloAndGoodBye
Hello World!
Goodbye World
BUILD SUCCESSFUL
Tasks can be configurable
class ConfigurableGreetingTask extends DefaultTask {
def person = 'World'
@TaskAction
def greet() {
println "Hello ${person}!"
}
}
task helloDuke(type: ConfigurableGreetingTask) {
person = 'Duke'
}
Task output
$ gradle helloDuke
:helloDuke
Hello Duke!
BUILD SUCCESSFUL
The DSL is flexible
task version1(type: ConfigurableGreetingTask) {
person = 'Duke'
doFirst() {
println 'Hello Everyone!'
}
doLast() {
println "I hope you are having a good day ${person}"
}
}
Identical
task version2(type: ConfigurableGreetingTask)
version2.person = 'Duke'
version2.doFirst() {
println 'Hello Everyone!'
}
version2 << {
println "I hope you are having a good day ${person}"
}
A task can be "finalized By" another task (incubating)
task cleanUp {
doFirst() { println 'Cleanup executed' }
}
task fails {
finalizedBy cleanUp
doFirst() { throw new RuntimeException() }
}
Task output
$ gradle fails
:fails FAILED
:cleanUp
Cleanup executed
FAILURE: Build failed with an exception.
...
Configurations
configurations {
compile
runtime {
description = "Used at runtime but should not be inherited"
extendsFrom compile
}
}
configurations.compile {
description = 'You can access an already declared configuration'
}
Dependency Declarations
dependencies {
compile 'org.slf4j:slf4j-api:1.7.5'
runtime 'org.slf4j:slf4j-log4j12:1.7.5'
runtime group: 'org.apache', name: 'tomcat', version: '7.0.34', ext: 'zip'
compile files('libs/a.jar', 'libs/b.jar')
compile("com.sun.jersey:jersey-json:1.12") {
exclude group: 'stax', module: 'stax-api'
}
}
Repository Setup
repositories {
mavenCentral()
maven { url "http://repo.mycompany.com/maven2" }
ivy { url "http://repo.mycompany.com/repo" }
flatDir { dirs 'lib1', 'lib2' }
localRepository { dirs 'lib' }
}
To use a plugin:
apply plugin: 'example-plugin'
The plugin then:
configurations {
pluginConf
}
class PluginTask extends DefaultTask {
@TaskAction
def action() {
def deps = project.configurations.pluginConf.allDependencies
... do something ...
}
}
task pluginTask(type: PluginTask)
Source Sets
apply plugin: 'java'
sourceSets {
newCode
}
New Tasks
$ gradle tasks --all
:tasks
------------------------------------------------------------
All tasks runnable from root project
------------------------------------------------------------
...
newCodeClasses - Assembles binary 'newCode'.
...
compileNewCodeJava - Compiles source set 'newCode:java'.
processNewCodeResources - Processes source set 'newCode:resources'.
...
BUILD SUCCESSFUL
Manual Webapp Setup
jettyRun {
copy {
from 'src/bdd/resources/web.xml'
into "${buildDir}/webapp/WEB-INF"
}
}
Fixed
jettyRun {
doFirst {
copy {
from 'src/bdd/resources/web.xml'
into "${buildDir}/webapp/WEB-INF"
}
}
}


14.11 The sched Module
The sched module is a simple event scheduler for non-threaded environments. Example 14-14 demonstrates.
Example 14-14. Using the sched Module
File: sched-example-1.py
import sched
import time, sys
scheduler = sched.scheduler(time.time, time.sleep)
# add a few operations to the queue
scheduler.enter(0.5, 100, sys.stdout.write, ("one\n",))
scheduler.enter(1.0, 300, sys.stdout.write, ("three\n",))
scheduler.enter(1.0, 200, sys.stdout.write, ("two\n",))
scheduler.run()
one
two
three
|


Moving away from a harsh drug like Seroquel, Abilify sounded like a sure bet. It was weight neutral, less chance of developing TD and it was new. I ate the stuff right up along with my Seroquel and waited for the hypomania to kick in. In the first week of March 2008 I moved out of my apartment, drove around feeling great and impressed my girlfriend's family for the first time in months. I knew what was happening. I knew that I was experiencing drug-induced hypomania, but I rode it out. I knew it wouldn't last for long.
The idea here was to switch over from Seroquel to Abilify [5mg-20mg]. After a couple of weeks on Abilify we started back off the Seroquel with horrible results. I was taking 300mgs of Seroquel at night, which we dropped back to 250mg. The result were uncomfortable feelings of mania. I wouldn't be able to sit in a classroom, all of my senses were Lit and anything that passed was an agonizing distraction. We went back to the 300mgs of Seroquel and decided to up the Abilify as well. We continued this trend into the early summer, until I was tired literally of the time. I slept fourteen hours a day and lost my relationship with my girlfriend due to my psychological distance.
My doctor and I decided to quit the Abilify and run solo with the Seroquel. I felt a lot better being off the Abilify. The results were noticeable immediately. I had more energy, I felt more involved, I had a passion for literature again. All of this lasted about a week and half, until the nasty manic dragons returned. I ended up spending the rest of my summer on differing doses of Zyprexa.
Some people swear by Abilify but I seem to be in the minority that does not. Any of these drugs (the atypical antipsychotics) are worth a shot. There are about six of them and they are all very different. Shop around, if you're lucky you might find something that you can tolerate.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


MPs brother brutally murdered by Nephew
by Mumbi MutukoMP's brother killed in cold blood
Residents in Kanduyi Constituency were left shocked after the brother of area MP Athanas Misiko Wafula Wamunyinyi was murdered.
The deceased, Joseph Wamalwa Wekesa, is alleged to have been stabbed on the chest by his nephew.
Witnesses claimed that the two had a fought earlier during the preparation of a memorial of one of their kin.
Vandalized home
The nephew identified as Nicholas Simiyu Wafula is alleged to have stabbed his uncle who had earlier injured his nephew's thumb.
Bungoma South OCS George Odongo stated that Wamalwa had also injured his nephew on the head.
After the fight, Wafula took a kitchen knife and followed his uncle to his home where he stabbed him on the chest severally.
The nephew is also alleged to have vandalized Wamalwa's home and killed his dogs.


1000 E Hillsdale Blvd | Foster City, CA 94404 |<PHONE_NUMBER>
Find
nearby businesses!
These are the local eateries in your area that have signed up to be providers! All of these restaurants, bakeries, and more are conscious of their food waste and are willing to donate food they would normally toss out to local food banks and families in need.
Are you a business in the area aligned with our goal of reducing waste while helping the community? Join the movement with the Neighborhood Pantry app!
Find
your neighbors!
Say hello to your local pantry community! The pins on the map to the left are your neighbors who have signed up through our app to be local providers and receivers. They are more than happy to share their produce and food items amongst themselves.
To join your neighbors in the cycle of giving and receiving, download the Neighborhood Pantry app!


--- layout: post title: Manuscript in discussion ---
My manuscript On the numerical integration of the Lorenz-96 model, with scalar additive noise, for benchmark twin experiments is currently in discussion in Geoscientific Model Development, an interactive, open-access journal of the European Geosciences Union.


{% extends "layout.html" %} {% block page_title %} Example - Forms {% endblock %} {% block content %} {% include "includes/phase_banner_alpha.html" %} Questions wildlife what you building? habitat in the river {{formData | safe}} How long is the habitat you want to build in the river? How long is the habitat you want to build in the river? Under 20m Between 20m and 100m or More than 100m {% endblock %}
or


| Category: containers | Component type: type |
vector<int> V; V.insert(V.begin(), 3); assert(V.size() == 1 && V.capacity() >= 1 && V[0] == 3);
| Parameter | Description | Default |
|---|---|---|
| T | The vector's value type: the type of object that is stored in the vector. | |
| Alloc | The vector's allocator, used for all internal memory management. | alloc |
| Member | Where defined | Description |
|---|---|---|
| value_type | Container | The type of object, T, stored in the vector. |
| pointer | Container | Pointer to T. |
| reference | Container | Reference to T |
| const_reference | Container | Const reference to T |
| size_type | Container | An unsigned integral type. |
| difference_type | Container | A signed integral type. |
| iterator | Container | Iterator used to iterate through a vector. |
| const_iterator | Container | Const iterator used to iterate through a vector. |
| reverse_iterator | Reversible Container | Iterator used to iterate backwards through a vector. |
| const_reverse_iterator | Reversible Container | Const iterator used to iterate backwards through a vector. |
| iterator begin() | Container | Returns an iterator pointing to the beginning of the vector. |
| iterator end() | Container | Returns an iterator pointing to the end of the vector. |
| const_iterator begin() const | Container | Returns a const_iterator pointing to the beginning of the vector. |
| const_iterator end() const | Container | Returns a const_iterator pointing to the end of the vector. |
| reverse_iterator rbegin() | Reversible Container | Returns a reverse_iterator pointing to the beginning of the reversed vector. |
| reverse_iterator rend() | Reversible Container | Returns a reverse_iterator pointing to the end of the reversed vector. |
| const_reverse_iterator rbegin() const | Reversible Container | Returns a const_reverse_iterator pointing to the beginning of the reversed vector. |
| const_reverse_iterator rend() const | Reversible Container | Returns a const_reverse_iterator pointing to the end of the reversed vector. |
| size_type size() const | Container | Returns the size of the vector. |
| size_type max_size() const | Container | Returns the largest possible size of the vector. |
| size_type capacity() const | vector | See below. |
| bool empty() const | Container | true if the vector's size is 0. |
| reference operator[](size_type n) | Random Access Container | Returns the n'th element. |
| const_reference operator[](size_type n) const | Random Access Container | Returns the n'th element. |
| vector() | Container | Creates an empty vector. |
| vector(size_type n) | Sequence | Creates a vector with n elements. |
| vector(size_type n, const T& t) | Sequence | Creates a vector with n copies of t. |
| vector(const vector&) | Container | The copy constructor. |
template <class InputIterator> vector(InputIterator, InputIterator) [1] |
Sequence | Creates a vector with a copy of a range. |
| ~vector() | Container | The destructor. |
| vector& operator=(const vector&) | Container | The assignment operator |
| void reserve(size_t) | vector | See below. |
| reference front() | Sequence | Returns the first element. |
| const_reference front() const | Sequence | Returns the first element. |
| reference back() | Back Insertion Sequence | Returns the last element. |
| const_reference back() const | Back Insertion Sequence | Returns the last element. |
| void push_back(const T&) | Back Insertion Sequence | Inserts a new element at the end. |
| void pop_back() | Back Insertion Sequence | Removes the last element. |
| void swap(vector&) | Container | Swaps the contents of two vectors. |
iterator insert(iterator pos, const T& x) |
Sequence | Inserts x before pos. |
template <class InputIterator> void insert(iterator pos, InputIterator f, InputIterator l) [1] |
Sequence | Inserts the range [first, last) before pos. |
void insert(iterator pos, size_type n, const T& x) |
Sequence | Inserts n copies of x before pos. |
| iterator erase(iterator pos) | Sequence | Erases the element at position pos. |
| iterator erase(iterator first, iterator last) | Sequence | Erases the range [first, last) |
| void clear() | Sequence | Erases all of the elements. |
bool operator==(const vector&, const vector&) |
Forward Container | Tests two vectors for equality. This is a global function, not a member function. |
bool operator<(const vector&, const vector&) |
Forward Container | Lexicographical comparison. This is a global function, not a member function. |
| Member | Description |
|---|---|
| size_type capacity() const | Number of elements for which memory has been allocated. capacity() is always greater than or equal to size(). [2] [3] |
| void reserve(size_type n) | If n is less than or equal to capacity(), this call has no effect. Otherwise, it is a request for allocation of additional memory. If the request is successful, then capacity() is greater than or equal to n; otherwise, capacity() is unchanged. In either case, size() is unchanged. [2] [4] |
[1] This member function relies on member template functions, which at present (early 1998) are not supported by all compilers. If your compiler supports member templates, you can call this function with any type of input iterator. If your compiler does not yet support member templates, though, then the arguments must be of type const value_type*.
[2] Memory will be reallocated automatically if more than capacity() - size() elements are inserted into the vector. Reallocation does not change size(), nor does it change the values of any elements of the vector. It does, however, increase capacity(), and it invalidates [5] any iterators that point into the vector.
[3] When it is necessary to increase capacity(), vector usually increases it by a factor of two. It is crucial that the amount of growth is proportional to the current capacity(), rather than a fixed constant: in the former case inserting a series of elements into a vector is a linear time operation, and in the latter case it is quadratic.
[4] Reserve() causes a reallocation manually. The main reason for using reserve() is efficiency: if you know the capacity to which your vector must eventually grow, then it is usually more efficient to allocate that memory all at once rather than relying on the automatic reallocation scheme. The other reason for using reserve() is so that you can control the invalidation of iterators. [5]
[5] A vector's iterators are invalidated when its memory is reallocated. Additionally, inserting or deleting an element in the middle of a vector invalidates all iterators that point to elements following the insertion or deletion point. It follows that you can prevent a vector's iterators from being invalidated if you use reserve() to preallocate as much memory as the vector will ever use, and if all insertions and deletions are at the vector's end.


A JavaFX desktop application using WebView. The main logic is programmed in pure Java, but the user interface is based on state of the art web technologies: AngularJS (user controller) and Bootstrap (style and layout).
Result of Number1 + Number2 is: {{ sum() }}
computed via a synchronous Java call


In this scenario we demonstrate how to use the listview as the source for an HTML 5 standard drag and drop.
In this case, the drop target is the box on the left. You can drag a listview item into the box and drop it. In order to demonstrate the proper data transfer, information about the dropped item is displayed on drop.
HTML 5 Drop Target
Drop Items Here


Cars
Make a new car
{{ new_car.error }}
Manufacturer:
Model:
Year:
Color:
{{ color }}
Create car
{{ progress }}
Browse cars
Filters
{{ man }}
{{ mod }}
{{ year }}
(no filter)
{{ color }}
#
Manufacturer
Model
Year
Color
{{ car.id }}
{{ car.manufacturer }}
{{ car.model }}
{{ car.year }}
{{ car.color }}
Loading data...


Who Am I
I'm Hanin. I'm 25 years old. I come from Yemen. I studied English literature. I am really intrsedted in studying cultures and languages. I am passionate. I was told that Im a hard worker when I was working a year ago.Im good strong, unwavering character. Im really royal to where I belong.one of my strenghth points that I am mental flexable and think logically. on the other hand, I spend much time in doing something because I give attention to smallest details.
Education
-
In-process tech training- LTUC - Amman, Airport st
- Advanced Software Development in Full-Stack - Dec2021
-
English languages-Aden University
- Bachelore digree
Experence
-
MAF academy, Malysia, Head of Languages Dep, April 2021 – June 2021
- Regular monitoring of teachers' performance
- Hearing complaints from students and teachers
- Regular meetings with teachers
- Giving permanent advice
- Make the right decisions about the development of the online education
-
Helen institute, Zarqa, Esl Trainer, March2019 – March 2020
- Created and taught relevant English lessons focusing on building fluency.
- Assessed progress of students to ensure success of language program.
- Developed reading, writing, speaking and listening skills in students aged 10-18.
- Prepared students for exams and oral presentations in their English classes
Goals
- Proper Mindset and Balance
- Commitment to Improved Physical Health
- Career Passion and Personal Satisfaction
- Develop Empathy and Gentleness
- Financial Stability
- Service and Social Responsibility
Top Ten
- Teaching
- having a drive
- Watching tv
- Listening to stories
- Doing DIY
- Cooking
- Sleeping
- Scrolling past memories on phone
- Replying to messages
- Doing much exersices
Top 10 things to do in Free time


{{message}}
Hover your mouse over me for a few seconds to see my dynamically bound title!
{{message}}


Instead of free text that leaves room for miscommunication, Tasks give specific instructions, deadlines and deliverables.
Set the defer date of a task to when you intend to start work on it. Everyone involved will be notified. Forget e-mail that starts with, “When do you think you will…”
When you delegate some or much of your work, it’s easy to lose sight of who is doing what for you. Coordel provides effortless tracking of your delegated tasks in one overview.
Coordel automatically organizes all your tasks by deadline into one overview. The result: easy to do list management and transparent communication about deliverables.
With just one click, Coordel lets you raise an issue with a task assigned to you . Ownership transfers immediately to the Coord responsible to clear it. No miscommunication - no confusion.
Rather than thinking you're finished with a task and find out later you're not, Coordel provides a built-in agreement process so everyone is clear on completed work.
How much time do you spend looking for that one e-mail or file? Coordel gives you one Workspace where you plan, execute and deliver your work. From the briefing to the deliverables, it’s all there, neatly organized in one overview.
Sometimes, there are different steps required to complete even a simple task. Use Coordel to define the order in which the steps will be executed. How’s that for efficient?
Forget formal evaluations. We’re talking about improving as a team, one job at a time. Coordel allows you to give immediate feedback to the team when a Coord is finished.
Coordel helps you get the most out of your expertise. When you have captured a job well done in Tasks or Coords, Coordel lets you blueprint and re-use it with just one click.
 When a Task or Coord you are involved in changes, an audio and visual alert lets you know. Even when you’re not logged on, Coordel will track your alerts so they are waiting for you when you check in.
What's in a word? In the case of Coords, it is communication, agreements, productivity, transparency and accountability. Coords enable you to get work started and completed (with one or more other people) in just a few clicks. Don’t just take our word for it. Try it!
Coordel is about allowing you do the work you do best, with the people who complement you most. Coordel automatically keeps a list of past and present team members and the feedback they have received.
When your work is finished, or when time is available, you can search for new Opportunities from Coordel, or you can also search public Network Opportunities.


21.2.2
Summary of testimonies by watch A.B. Silver Linde
He is the only survivor of those having been on duty on the bridge. His main task was to go security rounds through out the vessel from deck 8 down to deck 0 via three check points on the car deck. One round, which he normally commenced 30 minutes after the full hour, took between 25 and 30 minutes. He carried a walkie-talkie with him.
Of Silver Linde the following statements are available:
- on 29.09.94 in Turku - Enclosure <IP_ADDRESS>
- on 03.10.94 in Tallinn - Enclosure <IP_ADDRESS>
- on 17.10.94 in Tallinn - Enclosure <IP_ADDRESS>
- on 17.11.94 in Tallinn - Enclosure <IP_ADDRESS>6
- on 03.12.94 in Tartu - Enclosure <IP_ADDRESS>7
- on 11.03.95 in Helsinki - Enclosure <IP_ADDRESS>8
- on 31.03.95 at Landvetter Airport - Enclosure <IP_ADDRESS>9
- on 25.01.96 in Tallinn - Enclosure <IP_ADDRESS>0It was initially the intention of this 'Group of Experts' to ignore the different statements made by Silver Linde completely because his "evidence" had obviously been influenced by his ESCO superiors, in particular by Enn Neidre, the head of the Navigation Department of ESCO and safety adviser of Estline and simultaneously member of the Estonian part of the JAIC until April 1996, whereafter he remained to be an expert to JAIC. An example of this is Silver Linde's interview by the JAIC at the so-called "Landvetter meeting" on 31 March 1995, which Enn Neidre, in spite of strong objections by the Swedes and Finns, had insisted on attending by pointing to his membership in the Estonian part of JAIC. He actually attended in a blue captain's uniform, which he had never done before and never did thereafter.
The questions/answers below stated are quoted from the protocol of the meeting.
Commission: "Please tell us about your last round."
Silver Linde: "I came down to the car deck in the middle, went aft at first, turned the key, walked forward towards the ramp, a couple of meters away from the bow ramp heard strong crashing noise, I told the bridge by walkie-talkie about the noise and got the order to remain and check what it is all about. I stayed there for 5 minutes and controlled in the vicinity, what I could see. After that I opened the doors in front of the panel and all lights were green. I asked for permission from the bridge to go on with my round, which was granted."
Note: According to normal procedure this should have been around 00.45-00.50 hours, i.e. at the time when Kadak was in the ECR and saw water penetrating the bow ramp. The communication between Silver Linde/bridge via walkie-talkie should have been overheard by the watch engineer Treu, who has not stated anything in this respect in any of his 12 known statements and interviews. What he stated, however, in all but two of these twelve statements/interviews is that he heard Silver Linde report to the bridge that there was water on car deck. Safety officer Ervin Roden also overheard the walkie-talkie communication between Silver Linde and the bridge. Ervin Roden had been sleeping in his cabin with the walkie-talkie on when he suddenly heard Silver Linde shouting to the bridge that there was quite a lot of water on the car deck and that they had to abandon the vessel. (See the memos made by Tuomo Karppinen attached as Enclosure 21.1.248 and the statement of Paula Liikamaa - Enclosure <IP_ADDRESS>2.) In the spring of 1997 Ervin Roden admitted to the Estonian journalist Heikki Tann that the above is correct.
Parts of the protocol of the "Landvetter" meeting on 31 March 1995 follow below:
Commission: "We are showing you a drawing of the control panel with the lamps. Do you know these lamps? Can you please tell us, what is what? Do you remember?"
Remark: Silver Linde suddenly becomes very irritated and refuses to look at the drawing.
Silver Linde: "I don't remember. Yes, there was some (någon) red. But this was a long time ago. I don't remember if the red one was in the lower or upper row. I have since been on 2 ships and it is hard to remember. The indicator lights of visor and bow ramp were green."
Commission: "Where was the red lamp?"
Silver Linde: (looking at Neidre) "If the lamp had been red, then something would have been wrong. So all the lamps were green."
Commission: (pointing to the protocol) "But you told us a minute before that the lamps ..... "
Neidre: "He just said that all lamps were green."
Commission: (pointing again to the protocol) "But he says here that he saw one red lamp?"
Silver Linde: "There was no red lamp."
Commission: "O.K."
Note: Actually there had to be one red lamp, because at sea the harbour securing of the visor is open, thus the indicator light is red. This would have been the proper reply by Silver Linde, but he had been instructed differently by the security adviser of Estline, Captain Enn Neidre, who obviously was not aware of this respectively not acquainted with the installation. After this 'Group of Experts' had explained in writing to the JAIC the different functions and meanings of the indicator lights, the consultant of the Estonian part of the JAIC, Professor Jaan Metsaveer, tried to correct the already existing impression that the Estonians did not know how their relevant safety installations functioned, by stating at a joint meeting of the JAIC and this 'Group of Experts' that the explanation for "all lights were green" was the fact that the careful boatswain always closed the harbour securing at sea to avoid any lights being red. After presentation of the video print below, from one of the underwater videos showing the harbour securing open, the professor remained silent for the rest of the meeting.
In spite of the above the JAIC obviously still considers Silver Linde to be a key witness and his (changing) testimony became an important element in their scenario. The readers of this report shall have the benefit of forming their own opinion on the different statements of Silver Linde which were made at different times and which are presented as follows:
1.) 29.09.94 - 10.20 hours - criminal police Turku:
- metal to metal noise ca. 00.45 hours;
- reported to watch officer and was instructed to wait some time and find out cause, which he was unable to do and so continued his round since nothing more happened;
- ca. 00.58 hours back on bridge - officers relieved each other and master came to the bridge;
- due to reports about strange noises from car deck he was sent down to investigate (no mention of boatswain);
- when on deck 7 the vessel heeled and people asked him for help, situation calmed down somewhat when the vessel came back to port;
- rushed to Information desk on deck 5 and asked for the car deck doors to be opened when the vessel heeled extremely to starboard and everything slid over to the deep side;
- went to deck 4 but lots of people were streaming against him;
- up to deck 7 and reported by walkie-talkie to the bridge that people were screaming in panic and that deck 1 was already flooded.
2.) 03.10.94 - Estonian security police:
- 00.45 hours on car deck - crash behind the ramp - informed officer who asked him to wait for 5 minutes - nothing - all lights were green - down to 1st deck and 0-deck;
- 01.00 hours back on the bridge - bow was still there - order to go down and check, master was on the bridge then;
- no time to see more, there was an immediate list of 10° - could not go down to 4th deck and rushed to deck 7;
- visor was gone, but ramp seemed to be in place.
3.) 17.10.94 - questioned by the JAIC:
- 00.35 hours on car deck - car deck doors were locked;
- he started at the stern: 3 check points -stern -garbage container -bow; - he heard a noise (a bit louder) after 00.30 hours, but nothing could be seen - noise sounded metallic;
- reported to the bridge and waited 5 minutes - nothing - all control lights were green;
- down to decks 1 and 0 - nothing;
- 01.00 hours back to bridge - 2nd officer Ainsalu/4th officer Kikas on watch, captain came a bit later;
- officer reported about strange noises from the bow (no talk about water) and sent Linde with boatswain to check;
- could not get down because people came streaming up - there was water on deck 1;
- the vessel heeled and righted itself up;
- on deck 7 people told him that there was water on deck 1;
- visor was gone, the ramp was in place but slightly open - saw flaps at the ramp;
- Linde went to the Information desk to report to them the order to send out the alarm;
- "Mr. Skylight to No. 1 and 2" is the fire alarm.
4.) 17.11.94 - questioned by the Transport Investigation Office in Tallinn:
- 00.35/40 hours on car deck - no water; - heard heavy bang - metal to metal;
- reported to bridge - Peeter Kannussaar;
- continued round since nothing happened and nothing could be seen;
- at 01.00 hours back to the bridge;
- was sent down again by Tormi Ainsalu to check the reported noises together with the boatswain;
- down to the Information desk and asked to have the car deck doors opened;
- sudden heel - continued nevertheless to deck 4 where he met panic stricken passengers;
- together with these people he went up to the 7th deck;
- he was the first one from the crew on deck 7 outside;
- reported by walkie-talkie to the bridge that there was water on deck 1 which was new to them;
then he lost his walkie-talkie;
- the starboard lifeboats were in the water, but could not be used;
- he heard about water in the cabins of deck 1 for the first time when he was already on deck 7.
Note: According to the available statements only passenger Jaan Stern noted water in his cabin which was the most forward cabin in the centreline on the 1st deck.
5.) 03.12.94 - security police Tallinn:
- ca. 00.40 hours car deck - when he was ca. 1.5 m away from the bow ramp - he heard a bang which he would not have heard had he been 10-20 m away;
it was metal on metal;- the control panel can only be opened by a special key which the boatswain has in his possession;
- he reported the bang by walkie-talkie to the officer and received the instruction to check and report;
- nothing was found and he was instructed to continue his round;
- time between leaving car deck and reaching the bridge could have been 15-20 minutes;
- at 01.00 hours the officers changed watched on the bridge and that had already taken place when he returned to the bridge;
- he was sent down again to check the ramp together with the boatswain;
- he walked down to the Information desk on deck 5 to ask for the opening of the car deck doors when the vessel heeled to starboard and did not right up again;
- went to deck 4, but could not go further because the alleyways were blocked with people coming up;
- he went up to deck 7 and reported to the bridge by walkie-talkie that there was water on deck 1 which he had heard from a passenger from deck 1, cabin 1064 or 1096 and which surprised the bridge.
6. 11.03.95 (Interview by Jutta Rabe)
- came to the bridge and officer instructed him to go down and check strange noises;
- when on deck 5 vessel heeled to 30°;
- went to deck 4 but could not go further;
- up to deck 7 and reported by walkie-talkie to the bridge that there was water on the decks.
7. 31.03.95 (Neidre present in captain's uniform)
- 00.45 hours heard beating noise on car deck, unusual noise, which he had never heard before or thereafter; - vessel was pitching and rolling;
- reported to watch officer: "Watch A.B. to watch officer: water penetrates through the ventilation grits", and then he explained the noise, was instructed to look around and check for 5 minutes;
- opened control panel and all lights were green; continued his round to decks 1 and 0;
- ca. 01.00 , or just after 01.00 hours, back on the bridge;
- put his walkie-talkie into the recharging station and saw the visor to be in position;
- watch officer told him about a phone call from downstairs that strange noises were heard and instructed him to go down with the boatswain and check - it was the new officer Ainsalu since the officers had changed watch;
- he was not told who had phoned the bridge, just that it had been somebody from downstairs; he did not know whether the speed was reduced and/or if rudder manoeuvres were carried out;
- upon being questioned from where wind and waves were came, he said from all directions, the vessel was rolling and it was impossible to feel a heel to one side;
- the master was on the bridge; the previous officers had already left the bridge;
- he called the boatswain but there was no reply, 2nd officer took over to phone him in the cabin and he went down;
- it was possibly 01.05 hours then;
- he never used the lift because the lift doors to the car deck were locked at night;
Note: This is wrong according to the statement of Anneli Konrad - see Enclosure <IP_ADDRESS>3.
- came down to information on deck 5 and asked that the car deck doors be unlocked, when suddenly the vessel heeled severely to starboard and everything moved to the deep side;
- he continued down to deck 4 where he met many passengers streaming up in panic shouting about water on deck 1;
- he rushed up to deck 7 inside the forward large stairway;
- he reported by walkie-talkie to the bridge about the water on deck 1 and was instructed to go down and check, whereafter he fell down and lost his walkie-talkie and subsequently commenced distributing lifevests; the heel was then over 30° to starboard;
- at 01.24 hours he looked at his watch when he was already in the liferaft.
(click for full page images)
Summary of the seven Statements of Silver Linde
a.) Noise heard on car deck:
ca. 00.45, 00.45, 00.35, 00.35/00.40, 00.40, ca. 00.45 and 00.50-00.55;
at first he spoke about an unusual metal/metal noise; then about a crash behind the ramp, then at the hearing by JAIC on 17.10.94 and on 17.11.94 he explained the noise to have been just slightly louder than the normal ones created by wave impact respectively that he could hear the noise only because he was just 1.5 m away from the ramp and he would not have heard it if he would have been 10-20 m away; at the Landvetter hearing on 31.03.95 it became a beating (not a scraping) noise and, finally, in his last testimony on 25.01.96 - the noise was remarkable and not typical for ship/wave contact and he had never heard it before or thereafter, which is actually in agreement with what 3rd engineer Margus Treu had said from the beginning, although had always mentioned at least 2 extraordinary bangs not caused by wave impact.
In summary it has to be concluded that
b.) Action thereafter:
c.) Back to bridge and persons met on the bridge:
The above variations cover practically all thinkable possibilities apart from one, viz. that there was nobody on the bridge. It has to be concluded that Linde is not telling the truth.
d.) After having left the bridge:
e.) At the Information desk
Since the car deck doors were never locked at sea according to purser Andres Vihmar and many truck drivers, although it was announced over the loudspeakers after departure that they were, it has to be assumed that he was actually sent down from the bridge to tell the Information girl to alarm the passengers (several minutes before the big heel !).
f.) Further action:
g.) The finale:
In summary of the above analysis the following conclusions have to be drawn:
(1) There had certainly been bangs/crashes on the car deck at about 00.45 hours, but definitely not just one.
(2) Silver Linde must have noted a lot of water on the car deck at about this time or earlier and certainly reported this to the bridge. It is possible that he looked into the control panel and thereby also looked at the control lights which were certainly not all green because definitely the bow ramp was not properly locked and the harbour securing was open. The control panel must have been open because the boatswain was working on the hydraulic cylinders of the visor and bow ramp. In this connection his remark made on 3 December 1994 has to be understood, that the controls for the bow ramp could only be operated by a special key which was in the possession of the boatswain.
(3) If Silver Linde really went back to the bridge it must have been at 01.00 hours or just before because the big heel occurred at 01.02 hours according to the clock of Mikael Öun, and less than 5 minutes later Per-Erik Ehrnsten already saw him coming out of the port inner alleyway on deck 7 walking into the forward central stairway (details later on). It is possible that Linde went down to the Information desk just after 01.00 hours - helped the elderly couple on deck 7, which took about a minute according to his own statement, continued to deck 5 and was at the Information desk when the big heel occurred, whereafter he pushed up to the crew accommodation on deck 7. According to Per-Erik Ehrnsten Linde was talking into his walkie-talkie all the time even when he fell and the other two crew members who were with him - presumably Aulis Lee and Aldo Metspalu - helped him back on to his feet and later out on to the deck. It is doubtful and also unimportant whether he ever went down to deck 4 since it is highly doubtful that he ever got an order from the bridge to go down to the car deck, because since 00.45 hours or earlier it was known to those on watch that there was water on the car deck and it is most probable that 2nd mate Peter Kannuussaar and the nautical advisor Juri Aavik were already on the car deck.
(4) This could be the confirmation for a remark made by Linde which he made only once, viz. that he was sent down to the Information desk to advise them to alarm the passengers. It is also amazing that he admitted to having looked at his watch at 01.24 hours when he was already in the liferaft and the vessel was on the side bearing in mind that the first "Mayday" was only picked-up at 01.22 hours and the 3rd mate Andres Tammes was telling SILJA EUROPA at 01.25 that the list was 20°/30° to the right side. Even if Silver Linde's watch had been wrong by 2-3 minutes the discrepancy is remarkable, i.e. just when the mates had finally decided to transmit the "Mayday" at least A.B. sailor Linde was already in the liferaft.
(5) This means also that some of the AB's had left the vessel already at a stage when more or less all the passengers and other crew members were still on board, because at 01.24 hours the heel was probably between 50°-60°. Also Einar Kukk - who was rather early outside on deck 7 - has testified that Silver Linde was already in the liferaft when he went forward.


BlockParty is an up-and-coming, exciting new company dedicated to meeting all your party needs and helping you host the party of your dreams by providing instant parties at the pull of a string. With our staff of 32 dedicated, well-trained employees, we have all the means necessary to execute the perfect party. We have an extensive array of options available to address your needs. We serve all regions of the United States and can ship our products nationally. We also offer customizable options such as themes, decorations, catering, and more. BlockParty is constantly improving our products by offering new themes originating from modern art forms, such as literature, movies, and music, as well as improving the design and execution of our products to increase efficiency and enjoyment for our customers.
Our solution to solving the issue of wasted hours and effort is allowing our customers to customize every aspect of their party online, then sending them a BlockParty which they set up in the middle of the room where the party will be held. The remote that comes along with the block will set up and clean up the party using Presto! technology. When they are customizing their party online, our customers pick who and what they want at their party, and we do the work. It's that simple.
To deliver the complete, celebratory experience through extensive personalization and innovative technology to make our customers' lives more efficient and enjoyable.
Front Row: Emily McDonald, Shelly Luong, Jackie Gonzalez, Denise Machitar || Second Row: Tham Sithole, Erica (Mia) Moore, Ryan Zeng, Diana Inguito
Alan Lu, Peter Yang, Bryan Vo, Aayush Patel
Ricky Laseria, Stephanie Tecaxco, Alyssa Nelson,Jenny Chung, Donna Pham, James Kim
Alexis Allen-Pok, Nicholas Kang,Brian Japari, Idalia Acevedo
Anh-Tu Lu, Audrey Kirwin, Ami Bhakta, Jeanavic Malaiba
Kristine Do-vu, Chris Ruiz, Ankur Somani, Rahul Setty, Jasmine Fanibanda