Amy Lee Brown
Mistreatment or misunderstanding?
Upon visiting the mosque at the University of al Azhar, Mr. Sheldon Amos, judge of the Native Court, claims that he was met with “considerable rudeness” on behalf of the students there. This incident caused the chancellor of the university to face repercussions from the government, being required to implement a new system for visitors at the institution.
Parts of Mr. Amos’ story do not add up. He claims that the students were rude to him, but at the time he visited the mosque, there was a commotion among the students due to a sudden rain shower. The chancellor of the school claims the visitors were probably sent in the direction of disorder, and that any claims of rudeness are simply a misunderstanding.
The writer of this June 13, 1906 article in the Egyptian Gazette seems to believe Mr. Amos. They claim that his job as judge of the Native Court means that he has thorough knowledge of Arabic and could not possibly mistake jostling for rudeness. They even go so far as to question if the chancellor of the school was there at the time of the incident. The writer of the article seems to have some preconceived notions about this university. They claim that an Indian student was recently made fun of for his political views.
According to outside sources, Amos was born in 1872 in London. His full name was Percy Maurice Maclardie Sheldon Amos. He was appointed to the Cairo Native Court in 1903. He was educated at Cambridge and came from a very wealthy and well-known family. When considering the reasons for the unrest in the article, it is worth noting that Amos was a European man with a position of power in Egypt. European presence in Egypt was agitating to many Egyptians, and as a result caused unrest.
The article is not in any particular section of the paper, but is its own section. The writers of the article input their own opinions on the topic, which is something I have seen in many other articles in the newspaper.
Sources: - https://www.laits.utexas.edu/cairo/history/modern/modern.html - https://www.vqronline.org/essay/mixed-courts-egypt - Dictionary of National Biography
CURIOSITIES
Azhar Amos


🦾 Name
Hey there :wave: !
📍 Email
🏬 Product Name
🥼Review the Product
📢 Will you recommend it to others?
🏆 Rate the product on scale(1-5)
Press Tab
🌟 Submit 🌟
Click here to start your review! 😇


WatchersNET.SiteMap is released under the License, see below
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.


This is a compliance test suite for PubSubHubbub hubs support version 0.4 of the specification. Type the url of the hub you want to test below.
{{result.suites}} suites, {{result.tests}} tests, {{result.passes}} passes, {{result.failures}} failures, {{result.pending}} pending.
| {{line.fullTitle}} | {{line.duration || 0}}ms |
This test suite can only run once at a time as both stubs for the publisher and the subscriber need to be the only listeners on TCP ports. If you see a PubSubHubbub "before all" hook error, it's probably that someone else is already running the test suite.


Applications
Linux
SSH Scan
VIM
Conquer of Completion
- another (the best!) intellisense/autocompletion thingy
NeoSnippet
- various snippets for various languages
Windows
CalDav Synchronizer
- Outlook plugin to synchronize items with CalDav/CardDav server
OGCS
- Outlook/Google Calendar Sync
Windows 10 ISO
- official Microsoft download
X-Platform
Xiaomi ADB Fastboot Tools
- bloatware removal
Zeal
- offline documentation browser


Event Location:
Pensacola State College, Main Campus
1000 College Blvd
Pensacola, Florida
Abstract:
R is the most popular statistics language used today. It is one of the most useful tools in the data scientist's tool belt. It is also integrated into the MS stack in tools like Azure ML, SQL Server and Power BI and can be used to take your data analytics to the next level. Come to this session to get an introduction to the R language including: - installing and Configuring R and RStudio - RStudio Overview and Debugging - how to Access and Manipulate Data - install and Manage Packages - create and Use Variables - control Flows - functions - basic Graphing and Statistical Analysis. We will finish with a brief introductions of how R integrates in Azure ML, Power BI, and SQL Server 2016 using real demos. The focus of the session will be primarily on the introduction to the R language and getting attendees comfortable with using R to start the journey into Data Science!
Speaker(s): Jamey Johnston,
Abstract:
For many new Power BI implementations, initial self-service and team objectives are soon met, and the natural evolution of Power BI turns to an organizational focus. In other scenarios, the enterprise seeks to preserve its investments in "classic BI" by integrating Power BI with Analysis Services and the underlying data warehouse. In this session, Data Platform (SQL Server / BI) MVP and SSAS Maestro Bill Pearson explores the construction of organizational BI solutions, wedding the "traditional" solutions with the reporting and analysis power of Power BI. We'll focus upon the components of a "traditional" solution, up to the semantic model (with SQL Server Analysis Services as an example), and then explore paths to the implementation of an end-to-end enterprise solution that uses Power BI as the presentation layer. This session applies, in most respects, to Analysis Services 2012 and above.
Speaker(s): William E Pearson III,
Abstract:
Next time you attend a meeting, watch what happens when women at the table offer ideas. If your office is like most in America, you’ll notice women are interrupted almost three times as often as men. Some interruptions are to assert dominance but sometimes people do it to be helpful offer affirmation. Regardless of the intent, the results are the same. Women are being left out of the conversation. The consequences are real. Male executives that speak more frequently in meetings are rewarded with 10% higher competence ratings from peers better performance reviews from bosses. This translates into $ when raises and bonuses are handed out. This discussion will cover positive solutions that help women’s voices be heard. Women need to be more assertive. We need to learn to say “Stop interrupting me.” and “I just said that.” However, men can be, no HAVE to be, part of the solution. They can help women become part of the conversation.
Speaker(s): Rie Irish,
Abstract:
Indexes can be a boon or decrement for query performance. This presentation will present what they are (in layman’s terms) and how they may affect query performance – both from a read (SELECT) viewpoint as well as a data modification aspect (INSERT, UPDATE, DELETE). This session will concentrate with a deep dive into clustered indexes and nonclustered indexes, their syntax and utilization, and their effect on performance in transaction and data warehouse databases. Covering nonclustered indexes will also be examined in detail and the scenarios they should be applied. There will be many query demos illustrating index utilization using statistics and query plans. Attendee should have some TSQL and Management Studio experience.
Speaker(s): Mike Byrd,
Abstract:
Regular expressions can help you perform incredible tasks with very little effort. Need to create 1700 logins from an email request? Developers give you a single script with 300 stored procedures filled with table variables instead of temp tables? Need to move 500 databases to a different drive? Any of these tasks can take a long time to code, but regular expressions cuts that work from hours to seconds. I use regular expressions all the time and I have taken many tasks down from several days to just a few minutes. Stop writing code manually and let regular expressions do it for you. Here you’ll learn: • the most useful regular expression commands • the appropriate times to use regular expressions • how to use regular expressions to write code for you • how to incorporate regular expressions into large tasks and combine them with other methods.
Speaker(s): Sean McCown,
Abstract:
For beginning database professionals, execution plans can be intimidating. This 1-hour session takes you through the basics of reading graphical execution plans and drills into key operators, warnings, and properties. Learn how, why, and when an execution plan is created and saved to plan cache. Reading execution plans becomes much less intimidating as we walk through the flow and process of a graphical execution plan. After looking at the key operators, you will be able to analyze the operators of your execution plans, view the operator properties, and identify common performance-tuning opportunities. Finally, you will be able to capture the execution plan and save it for analysis and comparison after modifications.
Speaker(s): Mike Lawell,
Abstract:
Are you looking for a high availability solution for your business critical application? You're heard about AlwaysOn Availability Groups and they seem like a good solution, but you don't know where to start. It all starts with a solid design. In this session we introduce the core concepts needed to design a Availability Group based system. Covering topics such as recovery objectives, replica placement, failover requirements, synchronization models, quorum, backup and recovery and monitoring. This session is modeled after real world client engagements conducted by Centino Systems that have lead to many successful Availability Groups based systems supporting tier 1 business critical applications.
Speaker(s): Anthony Nocentino,
Abstract:
The most effective T-SQL support feature comes installed with every edition of SQL Server, is enabled by default, and costs no overhead. Yet, the vast majority of database administrator underutilize or completely neglect it. That feature's name is "comments". #160; In this session, Microsoft Certified Master Jennifer McCown will demonstrate the various commenting methods that make code supportable. Attendees will#160;learn what’s important in a header comment, use code blocking to edit code, build a comprehensive help system, and explore alternative comment methods in stored procedures, SSIS packages, SSRS reports, and beyond.#160; These methods help prevent errors and reduce troubleshooting.
Speaker(s): Jennifer McCown,
Abstract:
In this talk, we will explore two powerful technologies from the Microsoft Azure Stack: DocumentDB and Azure Search. DocumentDB is Microsoft's NoSQL service for building globally scalable schema-free applications. Azure Search allows you to integrate the power of Microsoft's search and natural language processing abilities to explore your complex data stores. During this talk we will cover the benefits of implementing a schema-free database, we will learn how to replicate your data at a global scale with the ease of a simple configuration and we will cover various techniques of querying that data using SQL and the DocumentDB API. Once we have a large datastore in place (we will use 200k+ Jeopardy questions), we will apply the powerful natural language querying capabilities and faceted search features of Azure Search to quickly create an searchable data repository. All of this will be built and exposed using a cross-platform application built in Angular on the Electron framework.
Speaker(s): Christopher Sims,
Abstract:
Senior developer: “How do you test your code?” Junior developer: “I compile it.” It’s an old joke, but too often this reflects the reality of testing. If the code compiles, it has passed its test. Sadly, this principle is sometimes applied to Extract-Transform-Load (ETL) processes as well: “When the SSIS package runs without error, testing is complete.” As in software development, testing of SQL Server Integration Services (SSIS) packages should not end at when the package executes successfully. You must also confirm that the package does what it was intended to do without placing an undue performance burden on the system. This session walks through design patterns for testing SSIS packages during and after the development process. The session covers topics such as these: * Performance testing * Patterns for validating execution results at runtime * Validating package metadata before execution * Design time versus runtime testing * Making a graceful exit: testing for error handling
Speaker(s): Tim Mitchell,
Abstract:
SSIS package can be run in Parallel and Optimized .In this session we will learn how to improve SSIS Package performance using parallel processing and Optimization. This knowledge will encourage development of better performing packages and optimize package performance.When creating an efficient and robust solution for Extract, Transform and Load Process, Lot of things do matter especially when you are working with huge size of databases. Challenge is not only to meet functional requirements Also to look at the performance requirements. This session will also cover best practices to enhance and boost performance of a SSIS package.
Speaker(s): Vishal Pawar,
Abstract:
Every developer wants to be productive and get more things accomplished during their day to day work. Given a choice between working harder and working smarter, you will most likely choose the latter. But the big question is – How do you boost your productivity? How do you reduce your development time? How do you increase your coding speed? Be it a T-SQL developer or DBA, we spend most of our time working in SQL Server Management Studio. In this session, we will learn a number of tips and tricks to increase productivity and efficiency in SSMS IDE. We will also look at the new and improved features of SSMS 2016. We will learn how adding few free third party tools to the SSMS IDE will enhance your coding speed. This will be a content rich session with plenty of live demonstrations. By the end of this session, you will learn some useful techniques to take back with you and apply in your day to day work.
 As technology professionals, our tech skills need to be at their peak. However, we often lack the communication skills to describe technical concepts to others, including business users, executives, or even other technology professionals. In this session, veteran IT professional Mike Hillwig, will show you a handful of skills that are essential in communicating with people outside of the database world. You will learn Mike's keys to good storytelling, making analogies, listening, writing, and putting technology concepts into things that give you a common language with business users. You'll leave this session with the ability to influence technology decisions based on your skills explaining why the DBA is usually right.
Speaker(s): Mike Hillwig,
Abstract:
Have you been wondering what Azure SQL Database is and what it means for you as a production DBA? Azure SQL Database has become an Enterprise-worthy database platform that provides relational database-as-a-service. In this session you’ll get a grounding in the fundamentals of Azure SQL Database from a DBA perspective. First we’ll cover how to create an Azure SQL Database using the Azure Portal and an approach for sizing a new Azure SQL Database. Then we’ll cover some of the similarities and differences between on premises SQL Server and Azure SQL Database. Finally we will cover how monitoring and performance tuning Azure SQL Database differs from on premises SQL Server. If you’ve been considering Azure SQL Database for your organization, this session is for you!
Speaker(s): Tim Radney,
Abstract:
The demos in this session have been developed to illustrate a few key capabilities of VMware vSphere and VMware NSX that can be used to enhance the overall SQL Server implementation. As a true platform of virtualized hardware, vSphere should be considered the premier platform on which to implement SQL Server. Features such as vSphere vMotion, vSphere HA, Distributed Resource Scheduler and Fault Tolerance are complimentary to all the features and capabilities of SQL Server and create an unparalleled combination of the world’s top RDBMS and the world’s most complete and effective virtualization proposition. With network virtualization NSX can provide security enhancements unachievable with any other technology and can streamline SQL server deployment automation processes. Please join us for this demonstration of advanced vSphere and NSX feature functionality and an explanation as to how this enhances your SQL Server environment.
Speaker(s): Rodney Landrum,
Abstract:
One of the most exciting new features of SQL Server 2016 is the integration of the R statistical programming language into the platform with the brand-new SQL Server R Services. In this introductory session we'll briefly introduce the R language and then look at how to install and administer SQL Server R Services. We'll start to demonstrate the power of R by showing you how to create and run simple R scripts from within T-SQL. We'll then discuss some of the powerful open source packages that are available to aid your data analyses. Finally, we'll go through some examples of how to use R to integrate data analytical methods in real-world situations, and wow your customers with the power of statistics!
Speaker(s): Chris Hyde,
Abstract:
In this session, we'll cover the basics of Disaster Planning and key operational items to consider when establishing software systems. We'll cover terms and their importance as well as commonly used software and hardware techniques for disaster planning purposes.
Speaker(s): Michael Viron,
Abstract:
Using indexing to improve performance
Speaker(s): Arvin Meyer,
Abstract:
Are you the only database person at your company? Are you both the DBA and the Developer? Being the only data professional in an environment can seem overwhelming, daunting, and darn near impossible sometimes. However, it can also be extremely rewarding and empowering. This session will cover how you can keep your sanity, get stuff done, and still love your job. We’ll cover how I have survived and thrived being a Lone DBA for 15 years and how you can too. When you finish this session, you’ll know what you can do to make your job easier, where to find help, and how to still be able to advance and enrich your career.
Speaker(s): Monica Rathbun,
Abstract:
Autonomous/nested transactions are available in other database products, but are not natively supported in SQL Server. Fortunately there are several methods available to provide this functionality. We'll cover the standard table variable techniques to preserve data outside of transaction scope, and how the new in-memory table type can improve their performance. Other techniques like user-defined events, CLR procedures, linked servers will also be demonstrated, and how they can enhance functionality. We'll review minimal techniques like RAISERROR and the new SESSION_CONTEXT() feature in SQL Server 2016, to provide different levels of logging and transaction management.
Speaker(s): Rob Volk,
Abstract:
A ground-floor introduction to SQL Server permissions starting with the basics and moving into the security implications behinds stored procedures, views, database ownership, application connections, consolidated databases, application roles and more. This class is perfect for DBA's, developers and system admins, and has been recently updated for Azure SQL!
Speaker(s): William Assaf,
Abstract:
SentryOne helps DBAs elevate performance across the Microsoft Data Platform. In this session, SentryOne’s Director of Product Management, Jason Hall, will lead the audience through the SentryOne platform, including our popular FREE query tuning solution Plan Explorer, on a mission to monitor, diagnose, and optimize performance on a live SQL Server instance. The session is composed of mostly demonstrations, and heavy audience participation should be expected.
Speaker(s): Jason Hall,
Abstract:
Inherited SharePoint or being tasked to implement it? In this session we will start with the fundamentals of SharePoint and work our way to understanding what it looks like to be a successful SharePoint administrator. We will cover common SharePoint misconceptions use live demos to show frequently performed tasks - all to set you up for success day one. Lastly we will cover the training options and other resources available to make your job easier and more automated.
Speaker(s): Daniel Glenn,
Abstract:
Embedding Power BI In your Web Application Power BI is growing by leaps and volumes and there is need to host the portal in your web application. This session goes through different ways you can embed Power BI (Portal Reports) and Embedded Power BI Service Reports in your Web Application.
Speaker(s): Pritesh Ostwal,
Abstract:
Are you struggling with database performance issues and your current tools are not providing answers? This presentation outlines a method for determining the best approach for quickly finding and fixing inefficient queries by utilizing wait-time analytics. Janis Griffin, database performance evangelist, SolarWinds, will use real-life case studies to show how quickly you can identify and fix the problems that are affecting your end user applications while saving countless of hours of investigation.
Speaker(s): Janis Griffin,
Abstract:
Unless you happen to be Chuck Norris, your SQL Server instances only have one tempdb. That makes tempdb a single point of contention for an instance. What’s worse is that there are a lot of things going on in tempdb that you may not be aware of. Let’s look at some things that can use tempdb while we’re not looking. Learn about operations that happen in tempdb View demonstrations of performance hampering implicit activities in tempdb Learn about little known performance optimization techniques for tempdb
Speaker(s): Jason Hall,
Abstract:
Do you want to know what all the fuss (or excitement) is about concerning PowerBI? Then, this session is for you. We will walk through the process and marketing of what now is Power BI. Reports will be developed and displayed as well as the history of development of Power BI and what to look out for in this ever changing application. You will also learn that this tool is not replacing the Data Warehouse and Architect positions. Actually, it will produce more work for us (DBAs, Architects, etc.) It is another reporting option Microsoft that is positioning itself in the changing world of Business Intelligence.
Speaker(s): Thomas LeBlanc,
Abstract:
Integrating databases schema changes into a Software Development Lifecycle Management (SDLC) process can be a daunting and often tedious proposition. Adding the complexity of version control to the mix complicates this scenario. Fortunately, beginning with Visual Studio 2012, Database Projects add an "easy" button to this process. In this session, you will learn about the features and capabilities of VS Database Projects and how to use them to improve the lifecycle of your database structures, even if your organization does no code management.
Speaker(s): Kerry Tyler,
Abstract:
Want to know the position Master Data Management and MDS play in an organization's overall data strategy? We'll review the key concepts and the different roles and responsibilities to help you get your organization moving forward with MDM. We'll then take a look at the features of SQL Server 2016 MDS that make it an excellent tool for MDM. This demo-packed presentation will cover architecture and installation, different ways of processing data, hierarchies, security and many other features that will get you up and running with MDS.
Speaker(s): Neal Waterstreet,
Abstract:
Isolation Levels in SQL Server can benefit your application and help control data integrity by managing concurrency effects but can also hurt your application if you are unaware of what they are and how they are used. A review of SQL Concurrency issues and how SQL Isolation Levels can help eliminate them and keep the integrity of your data. This presentation will demonstrate with queries what causes concurrency issues and what isolation levels will prevent them.
Speaker(s): Robert Bishop,
Abstract:
A legacy code base can be a frightening thing. Between strict deadlines, ever-evolving requirements, differing skill levels of contributors over time, and historical circumstances, keeping database code clean and concise is difficult at best. This example- and demo-driven talk will help you build out a mental framework to prune those gnarled code bases. Much of this talk will be familiar to software developers who know of the "clean code" philosophy, but no knowledge of the topic is necessary. If you shudder whenever you look at your SQL code base, this talk may be for you.
Speaker(s): Kevin Feasel,
Abstract:
In this session we will take a look at the basics of execution plans. We will discuss what they are, how they are made, and how they are used. We will explore some of the common operators seen in execution plans and their functions. Next we will look at the differences between estimated and actual execution plans. Throughout, you will be getting insight on how to read execution plans to help tune your queries.
Speaker(s): Lance Tidwell,
Abstract:
SQL Development is a broad subject with many roads to choose from. Often times SQL Developers feel overwhelmed and unsure which areas they need to focus on. The purpose of this session is to give a high-level overview and present paths for further study and growth. Subjects reviewed in this session will include coding patterns, error handling, and execution plans. Demonstrations of free tools will also help developers find ways of simplifying their daily tasks. Attendees will leave this session empowered with knowledge and directions for further growth.
Speaker(s): Vladimir Oselsky,
Abstract:
Have you ever taken apart a toaster or an alarm clock just to see how it worked? Ever wondered how that database actually functions at the record level, behind the scenes? SQL Server Databaseology is the study of SQL Server databases and their structures down to the very core of the records themselves. In this session, we will explore some of the deep inner workings of a SQL Server database at the record and page level. You will walk away with a better understanding of how SQL Server stores data and that knowledge will allow you to build better, faster databases.
Speaker(s): John Morehouse,
Abstract:
Do you spend your days slinging T-SQL code? Want to improve your T-SQL game? If you answered yes, then this session is for you. This demo-intensive session will showcase a collection of my favorite beginner and intermediate level tips and tricks. We will explore how to identify and fix some common T-SQL anti-patterns, my favorite SSMS productivity tricks, and clever solutions to some common but not easily-coded challenges. This session targets both developers and DBAs; the only prerequisites are the desire to write better T-SQL code and aim of living an easier life!
Speaker(s): Andy Yun,
Abstract:
Looking for a job? Learn trade secrets from a Recruiter! Resume blunders and interview tips, this session will focus on ten most important things you can do to get hired.
Speaker(s): Christine Assaf,
Abstract:
While blocking and deadlocks are part of the territory for a DBA, dealing with them can be another story. In this session we will break down locking types, capturing and identifying deadlocks and the code behind them, and things you can do to resolve and prevent blocking and deadlocks. If you are frequently dealing with deadlocks in your databases this session is for you.
Speaker(s): Amy Herold,
Abstract:
Performance tuning can be complex.It's often hard to know which knob to turn or button to press to get the biggest performance boost. In this presentation, Janis Griffin, Database Performance Evangelist, SolarWinds, will detail 12 steps to quickly identify performance issues and resolve them. Attendees at this session will learn how to: 1. Quickly fine tune a SQL statement 2. Identify performance inhibitors to help avoid future performance issues 3. Recognize and understand how new SQL Server features can help improve query performance
Speaker(s): Janis Griffin,
This is a list of speakers from the XML Guidebook records. The details and URLs were valid at the time of the event.
LinkedIn: http://linkedin.com/in/tradney
Contact: http://www.timradney.com
Tim is a Data Platform MVP and has a whole collection of Microsoft and other industry certifications. His experience includes HA/DR, virtualization, SSIS, SSRS, and performance tuning, among everything else SQL Server-related. Tim is very active and passionate in the SQL Community. He runs the Columbus GA SQL Users Group, has been a PASS Regional Mentor for a number of years, was named a PASS Outstanding Volunteer in 2012, and is a frequent speaker at user groups, SQL Saturdays and PASS Summits. Tim is one of the top ranked in karma on ask.sqlservercentral.com, answers questions as @tradney on Twitter, and blogs at http://timradney.com and SQLskills blog at http://www.SQLskills.com/blogs/tim.
LinkedIn: http://www.linkedin.com/pub/rie-irish/2/34a/78/
Rie lives with her family just north of Atlanta, Georgia. She worked as a SQL Server DBA, manager director for over 20 years. She's worked in many industries including the non-profit sector, education, big pharma, and e-commerce. She was awarded the MVP in the Data Platform 3 times beginning in 2017 and gave that up to accept her role as a Senior Program Manager with Microsoft in 2019. She is very involved with the Atlanta MDF User Group, SQL Saturday Atlanta and is co-leader of the PASS Women in Tech virtual group.
LinkedIn: http://www.linkedin.com/pub/janis-griffin/0/914/aba
Janis Griffin has over 30 years of DBA/database experience including design, development and implementation of many critical database applications. Before coming to Quest Software, Janis primarily worked in the Telecom/Network Industry, working with both real-time network routing databases and OLTP business to business applications. Janis also held positions as a Principal Architect and Senior Manager, mentoring other DBAs on best practices in database performance tuning.
LinkedIn: http://www.linkedin.com/in/jasonryonhall
Contact: http://blogs.sqlsentry.com/jasonhall
Jason Hall (@SQLSaurus) leads SentryOne's Product Management team, which is responsible for managing product design, development and delivery. Jason has worked in varied technology roles for over 20 years and holds industry certifications including MCSE (legacy), MCSD, MCTS, MCPD, and PMC-III.
LinkedIn: https://www.linkedin.com/in/voselsky
Vladimir Oselsky (Vlady) is an IT Professional with over 15 years of experience in various IT Jobs. Born and raised in Siberia, moved to United States in late 90s. Passion for computer and programming started with DOS games and learning Borland Paschal in 8th grade as a hobby. IT career consisted of everything from hardware and software support to server administration. Current focus on SQL Server Database Development and .NET programming
LinkedIn: https://www.linkedin.com/in/rob-volk-134ba81
Contact: http://weblogs.sqlteam.com/robv/
Rob Volk is a SQL Server DBA in the Metro Atlanta area since 2001. He also moderates and answers the forums on SQLTeam.com. While an old-time cranky DBA, he no longer considers quot;business intelligencequot; an oxymoron or quot;the cloudquot; as merely atmospheric moisture, and is delightedly dipping his toes into both of these new oceans, and loves to do things in new and and unusual ways.
LinkedIn: https://www.linkedin.com/pub/arvin-meyer-mvp/24/882/376
Having 16 consecutive MVP awards, Arvin maintains the Access Web http://www.mvps.org/access, an Access download site on his domain (http://www.datastrat.com), owns and is webmaster of http://www.accessmvp.com, and several client websites. A Microsoft Certified Professional and Microsoft MVP, Arvin writes freelance technology articles, is an author of a book on Access, leads the Access, Office, and Security Special Interest Groups at the Central Florida Computer Society.
LinkedIn: http://www.linkedin.com/in/jameyj
Contact: http://STATCowboy.com
Jamey Johnston is a Senior Data Scientist/Engineer for a large independent OG company. For over 25 years, he has worked for Fortune 500 companies architecting successful platforms in the cloud, on the edge, and on-premises for BI reporting, statistical analysis, ML, and AI. Lately, he spends his time in Azure, Python, R, Power BI, MS SQL, and SAS JMP. He holds a BS in Spatial Analysis from LSU and a Masters of Science in Analytics from Texas AM. He is a professor at the Mays Business School at Texas AM in the MS Analytics program. He is active in his PASS Local Group in Houston, co-leader of the local Power BI users group and data analytics group. He regularly speaks and volunteers at PASS events. He is also a Microsoft Data Platform MVP.
LinkedIn: http://www.linkedin.com/in/sqlbek
Contact: http://sqlbek.wordpress.com
Andy Yun is a SentryOne Principal Solutions Engineer and a former Microsoft MVP. He has been working with SQL Server for nearly 20 years as both a Database Developer and Administrator. Leveraging knowledge of SQL Server Internals and extensive experience in highly transactional environments, he strives to make T-SQL leaner and meaner. Andy is extremely passionate about passing knowledge onto others, regularly speaking at User Groups, SQL Saturdays, and PASS Summit. Andy is a co-founder of the Chicago SQL Association, co-Chapter Leader of the Chicago Suburban User Group, and part of the Chicago SQL Saturday Organizing Committee.
LinkedIn: https://www.linkedin.com/in/michaelviron
Michael Viron has a wide range of experience as a senior IT manager amp; business owner. As Director of IT amp; Software Engineering at KAMedData, Inc, he has been heavily involved in coordinating numerous product launches amp; both company amp; division startups. A key team member, his main responsibilities include technical operations, project management, security, short and long range technical planning, and development. As owner of General Education Online, he handles both IT and business operations.
Contact: http://lancetidwell.com
Lance Tidwell, from the Austin, TX, area, has worked as a SQL Server DBA for the last 11 years. During his time as a DBA he has found his passion for all things SQL, but specifically for performance tuning. He has a life-long quest to always be learning new things; currently this quest has lead him to explore more about the Data Analytics/ Data Science areas.
LinkedIn: http://www.linkedin.com/pub/mike-byrd/1/aa0/bbb
Contact: http://logicalread.solarwinds.com/?s=byrd, www.TSQLMentoring.com and SQLServerCentral.com
Former rocket scientist and USAF Fighter Pilot -- now a SQL Server geek (24 years)! Past opportunities include free-lance technical writer for PC Magazine, Senior Software Manager for government sponsored munitions effectiveness committee, and insurance company CTO. Currently senior database engineer consultant for several Austin companies. Presenter at many SQL Saturdays over last 6 years in United States, Europe, and Australia. Specialize in SQL Server performance tuning; database (OLTP OLAP) architecture; trouble-shooting; teaching TSQL (Basic through Advanced). Video presentations (for local SQL Server user groups or SQL Saturdays) can be found at http://usergroup.tv/videos/category/speaker/mike-byrd
LinkedIn: http://www.linkedin.com/profile/view?id=29648544amp;trk=hb_tab_pro_top
Contact: http://Thomas-LeBlanc.com
Thomas LeBlanc (Microsoft Data Platform MVP) is a Data Warehouse Architect in Baton Rouge, and uses his 30+ years in IT to develop OLTP systems with normalized databases for high-performing T-SQL and dimensional data marts. Development is done in SSIS, SSAS, SSRS, Power BI, and Excel. As a PASS volunteer, he is past chair of Excel BI and Data Arch VCs and is active in the Baton Rouge Analytics and SQL Server User groups, as well as SQLSaturday in Baton Rouge. You can find his blog at TheSmilingDBA.BlogSpot.com and website at Thomas-LeBlanc.com
LinkedIn: https://www.linkedin.com/in/christineassaf
Contact: https://www.hrtact.com
Christine Assaf is an experienced HR pro who is passionate about the mental health of employees, leadership, and organizations. She is a leadership development professional with over 15 years experience in human resources and 20 years in business management. She holds a BS in Business Management, received her HRM certification at LSU, and is finishing up her master's degree at Colorado State University in Industrial and Organizational Psychology. She is a certified DDI Trainer, experienced public speaker, and is dedicated to teaching others about ways to support a culture of "expressiveness" in the workplace that creates connectivity.
LinkedIn: https://www.linkedin.com/in/sqlrus
Contact: http://www.sqlrus.com
John Morehouse is currently a Consultant with Denny Cherry Associates living in Louisville, Kentucky. With over 2 decades of technical experience in various industries, John now focuses on the Microsoft Data platform and specializes in Microsoft SQL Server. He is honored to be a Microsoft Data Platform MVP, VMWare vExpert, Friend of Red Gate, Sentry One PAC member Community Ambassador, and 2016 Idera Ace. John has a passion around speaking, teaching technical topics, and giving back to the technical community as much as possible. He is a user group leader, SQL Saturday organizer, and former PASS regional mentor. He is also a blogger, avid tweeter, and a frequent speaker at SQL Saturday’s as well as other conferences.
LinkedIn: https://www.linkedin.com/in/williamdassaf/
Contact: http://www.sqltact.com
William Assaf, Data Platform MVP, is a principal consultant in Baton Rouge, LA. Initially a .NET developer, and later into database administration and architecture, William currently works with clients on SQL Server and Azure SQL platform optimization, management, disaster recovery and high availability, and leads a crack multi-city team of consulting SQL DBA's. William has written for Microsoft SQL certification exams since 2011 and was the lead author of the 2017 and 2019 editions of "SQL Server Administration Inside Out" by Microsoft Press. William is a member of the Baton Rouge User Groups board, a regional mentor for PASS, and past lead of the annual SQLSaturday Baton Rouge Planning Committee, having run one of the largest SQLSaturdays.
LinkedIn: https://www.linkedin.com/in/sqlespresso
Contact: http://www.sqlespresso.com
Monica Rathbun lives in Virginia, is a Microsoft MVP for Data Platform and Microsoft Certified Solutions Expert. She has nearly two decades of experience working with a wide variety of database platforms with a focus on SQL Server and the Microsoft Data Platform. She is a frequent speaker at IT industry conferences on topics including performance tuning and configuration management. She is the Leader of the Hampton Roads SQL Server User Group and a Mid‐Atlantic PASS Regional Mentor. She is passionate about SQL Server and the SQL Server community, doing anything she can to give back. Monica can always be found on Twitter (@sqlespresso) handing out helpful tips. You can find Monica blogging at sqlespresso.com
LinkedIn: https://www.linkedin.com/in/mikelawell
Contact: http://sqlserverassociates.com/Blog
Mike Lawell is an 19 year veteran of SQL Server, working with all versions since 6.5. He specializes in performance tuning and high availability as an independent consultant. He is a Linchpin People Teammate, he also consults with SolidQ, Intellinet and Microsoft Consulting Services. He is also a certified Scuba instructor with a long bucket list of dive sites. He resides in Atlanta, GA and you can catch him at many of the SQLSaturdays in the SE region of the United States.
LinkedIn: https://www.linkedin.com/in/kerrytyler
Contact: http://airbornegeek.com
Kerry Tyler is a SQL Server, Business Intelligence, and Azure consultant. His initial IT experience was in network engineering and Windows system administration before moving into the data realm. This infrastructure background builds a firm foundation for performance tuning and cloud infrastructure design and implementation. Kerry has full-time DBA experience in SQL Server since version 2000 and business intelligence architecture since SQL Server 2005. In addition to consulting work, he delivers presentations and training on SQL Server administration, business intelligence, and Azure data and infrastructure components.
Sr. Software Consultant with broader experience on Business Intelligence solutions, Solution Architecture, Architecture Governance, Application Database optimization, Processes Optimization, Technology Selection, Agile Adoption and Niche Technologies Evaluation, Data Modeling, Framework Development, Product Development, Technology Migration and Software Services Program Management, Project Team leadership, Client Services Maintenance, Pre-Sales Business Engagement, Technical Migration Planning, Process Improvement Governance, Global Software development, Critical thinking, Future solutions / Innovation, Comprehensive problem solver, Stakeholder management, Asset Management, Executing Agile Ceremonies
LinkedIn: https://www.linkedin.com/in/christopherpsims/
Contact: http://www.sigaostudios.com/blog
Chris is a software engineer and program manager with over 18 years of programming and 14 years of project management experience. Chris continually pushes his personal and professional boundaries by actively seeking out complex projects and applying innovative, sophisticated and elegant solutions to real-world problems. Chris is the technical principal of agile consulting firm, Sigao Studios. Sigao Studios specializes in offering modern responsive web solutions based on technologies that include Azure, CosmosDB and Azure Search. In addition to his technical pursuits, Chris enjoys stage acting and wood working in his free time.
LinkedIn: https://www.linkedin.com/in/timmitchell/
Contact: http://www.TimMitchell.net
Tim Mitchell is a business intelligence architect, author, and trainer. He has worked with SQL Server for over a decade, specializing in data warehousing, ETL/SSIS, and reporting. He holds a Bachelor’s Degree in Computer Science from Texas AM at Commerce, and is recognized as a Microsoft Data Platform MVP. Tim is a business intelligence consultant and principal at Tyleris Data Solutions. Tim is an active community speaker and volunteer, having spoken at over 100 events including the PASS Summit, SQLBits, Dev Connections, SQL Intersection, and scores of SQL Saturdays. He blogs at TimMitchell.net, and tweets at @Tim_Mitchell.
LinkedIn: http://www.linkedin.com/pub/janis-griffin/0/914/aba
Janis Griffin has over 30 years of DBA/database experience including design, development and implementation of many critical database applications. Before coming to Quest Software, Janis primarily worked in the Telecom/Network Industry, working with both real-time network routing databases and OLTP business to business applications. Janis also held positions as a Principal Architect and Senior Manager, mentoring other DBAs on best practices in database performance tuning.
LinkedIn: http://www.linkedin.com/in/aherold
Contact: http://www.sqlkitten.com/
Amy Herold is currently a Premier Field Engineer with Microsoft, specializing in APS. Prior to this, she was a Sr. Database Administrator, focusing on PowerShell and automation. She is also currently the Director of Programs for the North Texas SQL Server User Group (NTSSUG). She frequently speaks at SQL Saturday and user group events across the United States and has also participated in numerous Women in Technology sessions as a panelist. Amy currently blogs at sqlkitten.com.
LinkedIn: https://www.linkedin.com/in/chris-hyde-3803706
Chris Hyde is a Microsoft Data Platform MVP and Microsoft Certified Trainer based in Albuquerque, New Mexico. He works as an independent SQL Server BI and DBA consultant, and is the leader of the Albuquerque PASS local user group. He is also part of the Friends of Redgate program and was a member of the Idera ACE class of 2018. He loves loud music and cricket, but usually not at the same time.
LinkedIn: http://www.linkedin.com/in/nealwaterstreet
Contact: http://www.nealwaterstreet.com
Neal is a BI Architect/Consultant with more than 20 years of industry experience. Neal is skilled in the entire BI spectrum, including dimensional modeling, ETL design and development using Integration Services (SSIS), designing and developing multidimensional cubes and Tabular models using Analysis Services (SSAS) and Master Data Management using Microsoft Data Services (MDS). He's also involved with the database community and is the co-founder and co-leader of the PASS Healthcare Virtual Chapter and the Atlanta Modern Excel User Group.
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.
Contact: http://www.midnightdba.com/dbarant
Sean McCown is a Certified Master with 23 years of experience in databases. He is also founder and co-owner of the MidnightDBA.com website, where he records free SQL Server training videos. He also writes the popular Minion Maintenance suite, the most configurable maintenance solution on the planet.
LinkedIn: https://www.linkedin.com/pub/kevin-feasel/7/716/504
Contact: http://www.catallaxyservices.com
Kevin Feasel is a Microsoft Data Platform MVP and CTO at Envizage, where he specializes in data analytics with T-SQL and R, forcing Spark clusters to do his bidding, fighting with Kafka, and pulling rabbits out of hats on demand. He is the lead contributor to Curated SQL (https://curatedsql.com), president of the Triangle Area SQL Server Users Group (https://www.meetup.com/tripass), and author of PolyBase Revealed (https://www.apress.com/us/book/9781484254608). A resident of Durham, North Carolina, he can be found cycling the trails along the triangle whenever the weather's nice enough.
LinkedIn: http://www.linkedin.com/in/jasonryonhall
Contact: http://blogs.sqlsentry.com/jasonhall
Jason Hall (@SQLSaurus) leads SentryOne's Product Management team, which is responsible for managing product design, development and delivery. Jason has worked in varied technology roles for over 20 years and holds industry certifications including MCSE (legacy), MCSD, MCTS, MCPD, and PMC-III.
Contact: http://sqlpadre.wordpress.com
Robert has been working with databases since SQL Server 2005. After 4 years as a .NET developer using SQL Server, Robert became a DBA out of necessity, a true "Accidental" DBA! Robert has presented at his local SQL Server User group, SQL Saturdays and PASS Virtual Chapters. As a Microsoft MSCA and an Idera ACE, Robert enjoys administrative tasks, configuring SQL Server for optimal performance, troubleshooting problematic SQL queries and making those query run faster than the speed of light. In the event of "free time", Robert enjoys camping, playing his guitars and spending time with his family.
LinkedIn: https://www.linkedin.com/e/fpf/252170891
Contact: https://mvp.support.microsoft.com/profile=02C5CD07-7511-4151-A678-3A4A3451F85E
Bill Pearson created Island Technologies Inc. in 1997, and has developed a large and diverse customer base since. Bill#39;s background as a CPA, Internal Auditor, Management Accountant, and SQL Server MVP (BI) enables him to provide value to clients as a liaison between Accounting / Finance and Information Services. Bill has implemented enterprise business intelligence systems over the years for many Fortune 500 companies and focuses his practice upon the integrated Microsoft Business Intelligence
LinkedIn: https://www.linkedin.com/in/samir-behara-78953870
Contact: https://dotnetvibes.com/
Samir Behara is a Solution Architect with EBSCO Industries and builds software solutions using cutting edge technologies. He is a Microsoft Data Platform MVP with over 13 years of IT experience working on large-scale enterprise applications involving complex business functions, web integration, and data management in various domains like Insurance, Manufacturing and Publishing. Samir is a frequent speaker at conferences such as PASS Summit, IT/Dec Connections, CodeStock, SQL Saturdays and CodeCamps. He is the Co-Chapter Lead of the Steel City SQL Server UserGroup, Birmingham, AL. He is the author of www.dotnetvibes.com
Contact: https://www.simple-talk.com/blogs/author/2133-rodney-landrum/
Rodney Landrum has been architecting solutions for SQL Server for over 12 years. He has worked with and written about many SQL Server technologies, including DTS, Integration Services, Analysis Services, and Reporting Services. He has co-authored 4 books on Reporting Services. He is been a regular contributor to SQL Server magazine, sqlservercentral.com and Simple-talk.com. Rodney is also SQL Server MVP
LinkedIn: https://www.linkedin.com/in/nocentino
Contact: http://www.centinosystems.com/blog/
Anthony Nocentino is the founder and President of Centino Systems as well as a Pluralsight author, Microsoft Data Platform MVP, Linux expert, and corporate problem solver. Anthony designs solutions, deploys the technology, and provides expertise on business system performance, architecture, and security. Anthony has a Bachelors and Masters in Computer Science with research publications in high performance/low latency data access algorithms and spatial database systems.
LinkedIn: http://www.linkedin.com/in/jennifermccown
Contact: http://www.MidnightDBA.com/Jen
Jen McCown is CEO of MinionWare, LLC; a Microsoft Certified Master for SQL Server; and an independent consultant. She is Senior Editor at MidnightDBA.com, where she creates training videos, the DBAs at Midnight webshow, blogs, reviews, and podcasts. Jen is a member, volunteer, and speaker in PASS, and the PASS Women in Technology Virtual Group.
LinkedIn: https://www.linkedin.com/in/pawarvishal
Contact: http://bimentalist.com/
Vishal Pawar is a Microsoft Data Platform MVP, Microsoft Certified Trainer (MCT), founder of the Global Power BI User Group and co-leader of the PASS Business Analytics Virtual Group. He is a Principal BI Architect in Green House Data, with decades of experience in BI solution architecture and best practices. He has published more than 1000 articles since 2011 in SQL and BI. Vishal teaches a free Power BI course through Udemy, which has more than 65K students from the glob. Vishal is an exceptional technology community of leaders worldwide who actively share their high quality, real-world expertise with the technical communities.
LinkedIn: https://www.linkedin.com/in/danielglenn
Contact: https://DanielGlenn.com
Daniel is a Microsoft MVP with 15 years' experience building technology solutions, intranets and extranets. As Practice Leader for the Nashville-based InfoWorks Inc., Daniel helps organizations of all sizes solve complex data challenges by implementing Office 365 and SharePoint without the need of customization and costly investments. Daniel is passionate about giving back and building the Microsoft technical community. Daniel holds leadership roles in various local user groups, serves as an organizer for Microsoft 365 Nashville, and is a co-host for the popular podcast 365 Message Center Show on https://MessageCenter.Show. You can follow Daniel online at https://DanielGlenn.com and @DanielGlenn on Twitter.
The following is a list of sponsors that helped fund the event.


I've used pomodoro technique in the past and found it extremely useful. I'm one to get lost down rabit-holes to be honest so I think timeboxing set amounts of times for tasks, setting myself however many pomodoros that will take, then reviewing where I'm at and how I'm going towards the goal at the end will be really important to build good habits and discipline.
To kick things off, the waffle task for this assignment says write a 'quick' blog. So I've set myself max 25 minutes, or one tomato, to get it done, as that's the max time I want to take.
The talk about building habits, about taking small actions to prove to yourself you can do it, and having the confidence come from there.
I liked the stuff about flow state too, as people generally see anxiety as a purely negative thing but those readings were talking about flow being when you find the perfect balance between boredom and anxiety, and that both are needed. I'm looking forweard to noticing when I get into a flow, and starting to reflect on what environment, mindset and actions led me there. I can't stress enough how much a related to the difference they were defining in one of the resources between flow state and hyperfocus: I think I fall into hyperfocus a lot, which is to just become hyper immersed in some aspect of a project for a long period of time, often to the detriment of the project as a whole.
Setting goals before beginning study on concepts, timeboxing, using the pomodoro timer while working for a sustainable approach and reflecting on those moments when I get on a role.
Reuben Harcourt.


{% extends 'registry/base.html' %} {% block title %}Flagged Entries{% endblock %} {% block head %} {% endblock %} {% block content %}
These registry entries have been flagged for review and should be looked at by a moderator.


{% include post_header.html %}
{{ content }}
{% assign member = author %}
{% include member_board.html %}
--- layout: default --- {% assign author = site.data.members | where: "username", page.author | first %} {% assign post = page %}


Once you become fearless, life becomes limiteless
Some quick example text to build on the card title and make up the bulk of the card's content.
Lorem ipsum dolor sit amet consectetur, adipisicing elit. Explicabo fuga architecto, incidunt recusandae necessitatibus nostrum quos, debitis magnam cupiditate temporibus animi sunt illum dolores doloribus adipisci veritatis eveniet libero quod. Voluptate vero sequi, ex minus nisi aut quos quibusdam beatae ab, ut odio provident laboriosam tempora quis quae velit facere, suscipit nostrum similique eveniet! Repellendus voluptates minus sit laboriosam autem?
Look inside my soul
Some quick example text.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Pariatur, tenetur impedit. Blanditiis itaque aut cumque autem odit, maiores earum ut.
@lover
John Kerry knows this. We coach Little League in the Blue States and yes, we've got some gay friends in the Red States. I believe we can provide jobs to the jobless, homes to the homeless, and reclaim young people in cities across America from violence and despair. This is not to say that race has not been an issue in the campaign. We may not agree on abortion, but surely we can agree on reducing the number of unwanted pregnancies in this country.
13/10/2258 1:28 pm :)
Look inside my soul
Some quick example text to build on the card title and make up the bulk of the card's content.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Magni quasi, itaque nemo perspiciatis voluptas voluptates cum laboriosam possimus cumque consequuntur impedit inventore numquam autem ex et voluptatibus fuga debitis. Deleniti animi officia reiciendis pariatur ipsum!
Go somewhereAnother Title.
Lorem ipsum dolor sit amet consectetur adipisicing elit. Debitis commodi inventore delectus similique ipsum quasi quis dignissimos aspernatur, aliquam iusto possimus veniam, nisi accusamus perspiciatis asperiores dolores error. Perferendis maxime vel quasi nam? Minima, possimus.

Look inside my soul
Some quick example text to build on the card title and make up the bulk of the card's content.


--- layout: post title: "Fashion designers" permalink: /:title.html categories: - Fashion published: true ---
Fashion designers / Work process school exercise 16mm / Dir: Lubos Vacke / Dop: David Hofmann / Prod: Famu


{% include data_capsule.html
label="shows booked"
value="thirty"
info="Our goal is to visit everyone! Learn about how you can help us here." %}
{% include graphics/mountains.svg %}
{% include data_capsule.html
label="shows booked"
value="thirty"
info="Our goal is to visit everyone! Learn about how you can help us here." %}
{% include graphics/urban.svg %}
{% include data_capsule.html
label="shows booked"
value="thirty"
info="Our goal is to visit everyone! Learn about how you can help us here." %}
{% include graphics/suburbia.svg %}
{% include data_capsule.html
label="shows booked"
value="thirty"
info="Our goal is to visit everyone! Learn about how you can help us here." %}
{% include graphics/farm.svg %}
{% include data_capsule.html
label="shows booked"
value="thirty"
info="Our goal is to visit everyone! Learn about how you can help us here." %}
{% include graphics/mobile-home.svg %}
{% include data_capsule.html
label="shows booked"
value="thirty"
info="Our goal is to visit everyone! Learn about how you can help us here." %}
{% include graphics/foreground.svg %}


Tea of the Month
What's Steeping at Tea Cozy?
Fall Berry Blitz Tea
Spiced Rum Tea
Seasonal Donuts
Myrtle Tea
Bizarre Tea
Locations
Downtown
384 West 4th St
Suite 108
Portland, Maine
East Bayside
3433 Phisherman's Avenue
(Northwest Corner)
Portland, Maine
Oakdale
515 Crescent Avenue
Second Floor
Portland, Maine


All Classes
| Class | Description |
|---|---|
| AlertSceneController |
This class implements the controller of a generic Alert Scene.
|
| Board |
This class represents the board used to play the game.
|
| BoardMessage |
Message which contains the board.
|
| BoardSceneController |
This class implements the controller of the scene of the board.
|
| BoardTest |
This class tests the
Board methods. |
| BuildAgainDecorator |
Decorator to add an extra build to the simple effect.
|
| BuildAgainDecoratorTest |
This class tests the
BuildAgainDecorator methods. |
| BuildDomeDecorator |
Decorator to add a custom build to the simple effect.
|
| BuildDomeDecoratorTest |
This class tests the
BuildDomeDecorator methods. |
| BuildMessage |
Message which contains the positions available for the building phase.
|
| Cli |
This class offers a User Interface to the user via terminal.
|
| Client |
Abstract class to communicate with the server.
|
| ClientApp |
Main of the client app.
|
| ClientController |
This class is part of the client side.
|
| ClientControllerTest |
This class tests the static methods of the
ClientController which checks the server info. |
| ClientHandler |
Interface to handle clients.
|
| Color |
This enum contains all possible Colors that can be picked by Players for their workers on the game board.
|
| ColorCli |
This class contains all colors used in Cli.
|
| ColorSceneController |
This class implements the controller of the scene where users pick their own color.
|
| ColorsMessage |
Message which contains the colors available or the color picked from a user.
|
| ConnectSceneController |
This class implements the scene where users connect to the server.
|
| DisconnectionMessage |
Message to notify a disconnection to the other players.
|
| Effect |
Abstract class used to implement the Decorator Pattern for the effects.
|
| EffectDecorator |
Parent decorator for the Effect class.
|
| ErrorMessage |
Message to notify an error to the user.
|
| FirstPlayerSceneController |
This class implements the controller of the scene where the first player choose the first user.
|
| Game |
This Class represents the whole Game.
|
| GameController |
This class controls the evolution of the
Game . |
| GameControllerTest |
This class tests the
GameController behaviour by simulating more matches with different status. |
| GameState |
This enum contains all possible States of the Game.
|
| GameTest |
This class tests the
Game methods. |
| GenericMessage |
Message to notify generic information to the user.
|
| GenericSceneController |
Marker interface used to define all the scene controllers.
|
| God |
This Class represents a god of the game.
|
| God.Builder |
Builder class used to create new gods.
|
| GodInfoSceneController |
This class implements the scene which shows information about a given god.
|
| GodListMessage |
Message which contains the gods available or the god picked from a user.
|
| GodParser |
Provides the methods for processing the XML document with the gods configuration.
|
| GodParserTest |
This class tests the
GodParser method. |
| GodsSceneController |
This class implements the scene where players choose their gods.
|
| GodTest |
This class tests the
God methods. |
| Gui |
This class implements all methods of View.
|
| History |
This class keeps the history of the last move and the last build operation
committed by the worker.
|
| HistoryTest |
This class tests the
History methods. |
| InputController |
This Class verifies that all messages sent by client contain valid information.
|
| InputReadTask |
This class is used to read the input stream and making the input kind of interruptible.
|
| JavaFXGui |
Main JavaFX class which starts the main stage and scene.
|
| LobbyMessage |
Message which contains the current players and the maximum size of the lobby .
|
| LobbySceneController |
This class implements the scene where players wait for other players to join the game.
|
| LoginReply |
Message used to confirm or discard a login request of a client.
|
| LoginRequest |
Message used by the client to request a login to the server.
|
| LoginSceneController |
This class implements the scene where users choose their nicknames.
|
| MatchInfoMessage |
Message which contains information about the current status of the match.
|
| MenuSceneController |
This class implements the main menu scene.
|
| Message |
Abstract message class which must be extended by each message type.
|
| MessageType |
This enum contains all the message type available and used by the server and clients.
|
| MoveAgainDecorator |
Decorator to add an extra move to the simple effect.
|
| MoveAgainDecoratorTest |
This class tests the
MoveAgainDecorator methods. |
| MoveLockDecorator |
Decorator to add a move lock to the simple effect.
|
| MoveLockDecoratorTest |
This class tests the
MoveLockDecorator methods. |
| MoveOverDecorator |
Decorator to add a custom move to the simple effect.
|
| MoveOverDecoratorTest |
This class tests the
MoveOverDecorator methods. |
| MoveType |
This enum contains all type of move that a worker can perform.
|
| MoveWinDecorator |
Decorator to add a move win condition to the simple effect.
|
| MoveWinDecoratorTest |
This class tests the
MoveWinDecorator methods. |
| Observable |
Observable class that can be observed by implementing the
Observer interface and registering as listener. |
| Observer |
Observer interface.
|
| Persistence |
This class is used to support the storing and restoring of a game.
|
| PhaseType |
This enum contains all type of all phases inside every turn of the Game.
|
| PingMessage |
Message used to keep the connection alive.
|
| Player |
The Player is the main character of the Game.
|
| PlayerNumberReply |
Message used to send to the server the number of players picked by the client.
|
| PlayerNumberRequest |
Message used to ask the client the maximum number of players of the game.
|
| PlayersNumberSceneController |
This class implements the scene where the game host chooses the number of players who are going to play.
|
| PlayerState |
This enum contains all possible States of a Player.
|
| PlayerTest |
This class tests the
Player methods. |
| Position |
This class uses a Two-Dimensional Coordinate System to identify positions inside the
Board . |
| PositionMessage |
Message which contains a list of positions.
|
| PositionTest |
This class tests the
Position methods. |
| PrepareEffectMessage |
Message used to notify the preparation phase of a god's effect.
|
| ReducedGod |
This class identifies a reduced version of the class
God . |
| ReducedSpace |
This class identifies a reduced version of the class
Space . |
| ReducedWorker |
This class identifies a reduced version of the class
Worker . |
| SceneController |
This class implements the controller of a generic scene.
|
| Server |
Main server class that starts a socket server.
|
| ServerApp |
Main of the server app.
|
| SimpleEffect |
Base effect class that can be decorated with any
EffectDecorator . |
| SimpleEffectTest |
This class tests the
SimpleEffect methods. |
| SocketClient |
This class represents a socket client implementation.
|
| SocketClientHandler |
Socket implementation of the
ClientHandler interface. |
| SocketServer |
Socket server that handles all the new socket connection.
|
| Space |
This class identifies a single space inside a
Board . |
| SpaceTest |
This class tests the
Space methods. |
| StorageData |
This class is used to store and restore the status of the game.
|
| TargetType |
This enum contains all type of target of every Effect.
|
| TurnController |
This Class contains all methods used to manage every single turn of the match.
|
| View |
Defines a generic view to be implemented by each view type (e.g.
|
| ViewObservable |
Custom observable class that can be observed by implementing the
ViewObserver interface and registering as listener. |
| ViewObserver |
Custom observer interface for views.
|
| VirtualView |
Hides the network implementation from the controller.
|
| WinMessage |
Message to notify that a player has won the game.
|
| WinSceneController |
This class implements the scene which shows that a player has won the game.
|
| Worker |
This class represents the single Worker object which contains the main info and methods.
|
| WorkerTest |
This class tests the
Worker methods. |
| XMLName |
This enum contains all name associated to XML tag of the XML database of Gods.
|


λ CAD
CAD
Mesh
Slicer
ToolPath
GCode
Settings
Compile
Upload
Download
Compile
Upload
Download
Viz
Synth
Compile
Upload
Download
Click to enable viewer
(W, A, S, D, Q, Z = Move, MOUSE = Look around)
Compile
Upload
Download
Compile
Upload
Download
Upload
Download
Download Log
Edit Mode :
Default
Emacs
Vim
Random Seed :
Set
Display Digits :
Set
Log Tags :
Set
Reset Log


--- layout: default title: About ---
I study Computer Science at Cornell University. This summer, I am interning at LLNL as part of their HPC Academy.


The first new chord we will talk about is the iii chord. iii has a sound that feels further away from home base compared to the other basic chords we’ve studied and isn’t used as often. iii also doesn’t have the flexibility of the chords we have learned so far; you will need to use it with care. This is especially true in songs with shorter chord progressions. We will see that the iii has significantly more utility in songs that use longer progressions where there is more time to play around harmonically.
First, let’s listen to an example of a song that uses iii so you can hear how it sounds.
iii is less common than the other basic chords so when it appears directly after a I chord like this, it definitely gets the listener’s attention.
Here are two common ways that the iii chord is used in a four-chord progression.
Notice that in “If We Hold On Together” by Diana Ross, the progression goes I → iii → IV, and in “So What” by P!nk, the progression goes I → iii → vi. In general, when you use a iii chord, it should nearly always be followed with a IV or a vi. It is uncommon to follow the iii with any other chord.
To illustrate this point, we’ve examined every song in our TheoryTab library and looked at what chord came after a iii whenever it occurred. The data reinforces the idea that either IV or vi follow the iii in most cases in real songs.
In practical terms, this means that there isn’t much room for harmonic creativity when using the iii chord in songs with short repeating chord progressions. The reason for this is that a four-chord progression starting on I has only two chords before it cadences with a IV or a V (iii is not a cadence chord and does not usually work well at the end of a progression). Since the iii needs to be followed by a IV or a vi, the progression essentially must look like: I → iii → (IV or vi) → (V or IV). This constraint is rather limiting, however it’s worth mentioning that tons of Billboard hits use chord progressions of this form with great success. “Because of You” by Kelly Clarkson (above) is a good example. “The One That Got Away” by Katy Perry (I → iii → vi → IV) is another, shown below.
In songs with longer chord progressions, iii has more flexibility. vi or IV will still come after the iii, but you can also take your time both getting to the iii and maneuvering toward your cadence. The verse of “Night Minds” by Missy Higgins gives a good example of a iii used in a longer progression.
The first half of this example uses a standard I → V → IV, but the second half uses iii to change the pattern of the progression. After iii goes to IV the first time, we expect the progression to end with a V. Instead the song prolongs the progression by going back to the iii again before building to the strong IV → V to end the progression. Part of the reason that the final V sounds so nice here is that the songwriter has built up anticipation for it. Now that you know more chords, it’s easier incorporate tricks like this into a larger more interesting progression.
What chord makes the most sense in this context?
IV doesn’t work because scale degree 2 and 3 are unstable over IV. V, vi, and I are all harmonically compatible with the melody (no unresolved unstable scale degrees on strong beats); however I and V are generally used at the beginning and end of a progression and not as an expansion of iii so vi makes the most sense.
Another common function of iii is to link IV and vi as is done in “Basketcase” by Green Day
You may recognize this progression as the progression of the famous classical piece, “Canon in D” by Pachelbel, which has been used countless times in many genres of popular music:
In which of the following places below would a iii chord be appropriate?
d. The iii chord is harmonically compatible with the melody at all three positions (all unstable scale degrees on strong beats get resolved); however, position C should be a cadence chord so iii is not appropriate there. Below you can listen to the song with a iii chord at positions A and B and a V chord at position C.
Using your knowledge of how each chord functions in a chord progression (and with the notes in the melody), try to figure out which chords belong in the question marks below. The I chord at the end is the beginning of a new musical phrase.
c. All of the options we listed are compatible with the melody, i.e., unstable scale degrees on strong beats are resolved; however, option c is the only one with a proper cadence leading into the following I chord. Below you can listen to the song with the missing chords filled in. Does it sound familiar?


Name:
Age:
Job:
Soldier
Gentleman
Plebeian
Male
Female
Ready
Tired
Comfort
Friends:
Name:
Age:
Job:
Soldier
Gentleman
Plebeian
Friends:
Name:
Age:
Job:
Soldier
Gentleman
Plebeian
Friends:
View the complex structure
Add other friend
This is the value that will be sent to the server


Little Goblin Plugin - Reference Documentation
Authors:
Version: 0.3.2
Table of Contents
1 Introduction
Little Goblin is an open source browser game framework that is intended to help you to create browser games. The goal is to have all the infrastructure in place allowing you to implement your idea as fast as possible, because the quickest way to bring (hobby) game development to a halt is (in my experience) to get bogged down in a quagmire of administrative tasks and configuration details. The Little Goblin framework strives to speed up your development without having to handle all the fundamental stuff, like user accounts, security, administration features and so on.Of course, as it is in Grails, so should be in this framework: just because the framework makes it easy to ignore the underlying complexity at first, you can always dig deeper and hack and improve the system.License
Little Goblin is licensed under the Apache License 2.0 - in short this means you can use it for commercial and non-commercial purposes and it comes without any warranties.Contact / Links
- Project Admin: Ingo Wiarda /<EMAIL_ADDRESS>- Demo Website: http://schedim.de
- Blog for LittleGoblin: http://dewarim.com
- Documentation: http://littlegoblin.de
- Sourceforge page: http://sourceforge.net/projects/littlegoblin
- GitHub page: https://github.com/dewarim/LittleGoblin
1.1 Change Log
Version 0.3.2 "Tick-Tock"- Fixed #3: add gameName config parameter as default title to pages.
- Changed: Run game ticks in a background thread (no more need for a cron job to run ticks).
- Fixed #14: Version link in footer was broken.
- Fixed: admin can edit ItemTypes again.
- New: admin can assign categories to item types.
- Fixed: inputValidationService no longer croaks on 'null'-String.
- Cleanup code.
- Added more documentation (items, guilds)
- Project is now language level Java 7
- Grails 2.2.0
- Updated to Grails 2.1.1.
- Fixed session handling.
- Fixed HTML error in /goblinOrder/_order_list
- Refactoring pages to use sitemesh layout instead of using homebrew solution.
- Fixed item filter: remove unnecessary conversion of list to array. (ItemService).
- Removed old prototyps JS-library files since we have been using jQuery for some time.
- Fixed message id in highscore.gsp.
- Added more documentation.
- Added custom equals & hashCode to many domain classes.
- Fixed: do not double-encode chatterbox messages.
- Fixed: textarea in chatterbox.
- Removed redundant "def inputValidationService", which is inherited from BaseController.
- Fixed cronGoblin and CronController for recurring events (would previously go into an infinite loop).
- Added configurable registration with confirmation mail.
- Added testMode parameter to config file.
- Updated spring-security-core plugin
- Added FeatureAdminController.
- Upgraded to Grails 2.1.1
2 Installation
2.1 Installing the binary package
Please install / configure the following software packages to get started with the Little Goblin binary package:Download the binary package
Download the binary package Little Goblin BinaryJava
Download and install the Java 7 runtime from http://java.com/On Ubuntu: sudo apt-get install openjdk-7-jreTomcat 7
Download and install Tomcat 7 from http://tomcat.apache.orgOn Ubuntu, use: sudo apt-get install tomcat7Install an RDBMS (Database)
Download a database and configure it, either: MySQL or Postgresql (the latter is recommended).Create a database user "goblin" with password "goblin" (for testing)If you want to use mysql, please download the database driver and place it into your Tomcat's lib folder. (It is not included in the goblin.war for license reasons.)Configure your version
Create in you home directory a folder .grails and inside a file goblin-config.groovy. You can download an example version from GitHub- Set the serverUrl to your machine's or server's name (http://localhost or your domain name)
- Edit the database settings for the production database.
- Ask on the project mailing list
- Add a question to the issue tracker on GitHub
- Write me a mail<EMAIL_ADDRESS>2.2 Installing the source code
Checkout the source code
You can get the source code from the Little Goblin GitHub repositoryIt is available as a zip or tar archive or (recommended) as a git repository which you can clone via bq. git clone git://github.com/dewarim/LittleGoblin.gitPrerequisites to running from source
- you need Java, a database and the configuration file - see Binary install instructions.
- Grails - which you will find on Grails.org
grails
and start the application with run-app
Use as a plugin
Add the following line to your Grails application's BuildConfig.groovy (in the plugins section):compile ':little-goblin:0.3.2'
3 Features
Little Goblin already has a lot of features, and more will come. This part of the documentation gives an overview over the current project status. A more detailed description of the inner workings will follow in the more technical sections later on.3.1 Infrastructure
The main goal of the Little Goblin framework is to enable you to quickly turn your ideas into a working software project. To this end, the following is provided:User registration
User registration works via sending a confirmation link to the user's email address. If the user clicks on the link therein, his account will be activated.License management
Depending on the system's configuration, it's possible to let users create their own content. In this case, you really need to get the licensing done right - as well as in the case where you use media assets from the public domain (for example, Wikimedia). Often, the artist requires his name to appear in the context of the artwork - and even when there is no such request, it is the right and polite thing to do. And you never know when a lawyer comes a-knocking because someone mistakenly thinks you did use one of their images without permission.Little Goblin allows you to create license objects which can be assigned to images (and perhaps later on other assets). Currently this is implemented for monster images, which can be tagged with a license. TODO: display licenses, not just store them - but at least the artist credit works.Artist management
As with licenses, you can also manage artists in Little Goblin. Currently, when a monster is displayed, a link is shown which leads to the artist's web site. An artist may own any number of images associated with him. TODO: public display of artist galleryImage management
With the artist and licenses defined, you can assign them to images and those to one or more game assets (at the moment: to monsters). This way, a image can be re-used for more than one creature. While in an ideal game, you would use images only exactly once, it may be a way for budget games to re-use them until better and more artwork is available.More than one image can be assigned to a creature and they will be used randomly, so you can add some visual spice for the users. Also, in the case of unique creatures / mobs of a certain type, it is possible to assign the generic image (for example: when you generate an encounter with a special named mob, it could show up with the image for "Boss mob orc", the only difference being the mob's combat values, like in many action RPGs).In-Game messaging
Simple messages
Little Goblin offers in-game messaging via a simple inbox model. Users can write messages to other characters, and reply to them. The messages can be archived or deleted. TODO: implement sent-as-email featureGuild's chatterbox
Guilds offer a special feature: a chatterbox were all guild members can exchange messages in life chat. This is intended for non-persistent communication, as older messages will be deleted once the box fills up with new chatter.3.2 The Game
When started with an empty database, Little Goblin can create a ready-to run fantasy game with a test account and a few quests, items, monsters and so on, allowing you to test the basic game features.The reference implementation is a game that tries to use all the features offered by the framework.3.3 Combat
Combat in Little Goblin currently is the fight between a player character and a monster or, in the case of the Grand Melee (see below) between all willing player characters. A fight is started by meeting a monster during a quest encounter. The fight will go on until the player wins, flees or is defeated.Combat is round-based. At the moment, the player has the option to- use items from his or her inventory
- to attack the opponent
- run away
A closeup of a fight
A round of combat consists of the following steps:- determine initiative (rolling a d20 at the moment, add bonuses)
- attacker rolls to strike
- defender rolls to parry
- in case of a hit, compute damage from all items that contribute to damage dealt.
- check if both combatants are alive
- counter attack of the defender (strike, parry, deal damage, check result)
- either finish the combat sequence or start a new round
Special damage and mitigation
Items or a creature's natural abilities may deal special damage (for example, a dragon breathing fire). This is included via a damage multiplier, so a dragon may deal fire damage which increases its base damage by a factor of 1.2. If this dragon is also for some reason a creature of chaos, it may increase the damage further by another factor of 1.3. Likewise, the abilities or items of a fighter may reduce the damage dealt by a certain factor. A ring of protection from chaos may reduce damage with chaotic influence by a factor of 0.5 (so chaos damage is reduced by 50%).Note that in this simple combat model an armor of protection from fire will reduce the total damage, not the percentage of the damage that is actually dealt be heat. So, attacking a creature that is virtually immune to fire with a +20 burning sword of fire,death,chaos,poison is not the best strategy.The Grand Melee
The Grand Melee is Highlander-style combat szenario where all participants will fight each other until only the winner is left standing. It is round based with a fixed timeout to prevent players from waiting too long before committing to an action. (If a player does not submit an action, his character will attack a random opponent).3.4 Reputation
Reputation is the sum off what a group of people have come to expect of you.In Little Goblin, you can define factions, which may align on race (Elves, Dwarves) or other distinguishing characteristics. If a player character makes a decision during a quest, his or her reputation in respect to the affected factions should change.If at a later state of the game the character interacts again with factions he has now a positive or negative reputation with, the options offered and behaviour displayed should be influenced by this.Reputation is not presented as a number to the player, because such a score is not very meaningful. For display, a reputation map is used, which contains descriptions for negative and positive reputation states. Note that reputation at this point is either positive, neutral or negative - the code does not define ambivalent feelings or track the reputation history, so the sentiment "She was once a heroine and a force of good reputation:1000, but she has fallen a long way reputation:0, still we should give her a chance." can currently not be expressed.  Skills can be learned at academies. Access to academies requires membership in a guild. In Little Goblin, guilds are organizations for all those pursuing a specific trade, like in the middle ages. They are not created by the players. Players may create "orders" (in the sense of a military and / or religious organization, for example the Knights Templar).Academies like the fighter's guild will offer skills, or more precisely, skill sets. A "skill set" is a course which confers a specific skill like "fighting 101" to a player character - for a price and requiring a certain amount of time. It is possible to have multiple academies teaching the same skill via differently prices skill sets (courses). Skill sets have a required level relevant to the academy that teaches them - so a player character may only learn them in a specific order.Skills are scriptable: you can associate a class with a skill which will be run when a player character learns this skill. The class will receive the PC, the CreatureSkill instance which connects the character with this skill instance and the skill's configuration field as parameters. The configuration field is an XML string and may hold initialization values.Combat Skills
Combat skills extend the basic skill class with combat specific fields. Currently, those are Dice objects which offer bonuses for:- strike
- parry
- initiative
- damage
Production Skills
Production skills extend the basic skill class and allow a player use create new products (items). When a PC learns a new production skill, a range of new products may become available for crafting.3.6 Guilds
Guilds in Little Goblin represent trade associations, much like the medieval guilds which were created by craftsmen seeking to build communities of like-minded professionals. They jealously guard the secrets of their trades and seek to create a monopolistic power structure where the only people who are allowed to practice (and capable, due to the control of information) the trade, are those who belong to the guild.In game terms, a player character who wishes to learn a craft should become a member of the respective guild. This will grant him or her access to the guild's academy and possibly other resources. Some skills may be transferred outside of the regular guild curriculum, either as quest rewards or through other events.Note: player guilds are called orders in Little Goblin.Ideas for guilds
While currently not implemented, guilds may become controlled or influenced by players. Also guild membership may later on depend on reputation or quests.3.7 Items
Items are among the most complex features of Little Goblin. A player character may own any number of them, and they may have special uses and effects which can be activated when the time is right.Item types
All items have a specific item type which defines:Required slots
To equip an item (so it can be used), one or more free equipment slots are necessary. An equipment slot may be a body part (an iron helmet requires a free head slot) or, in a later version of the framework, a space ship (a photon torpedo needs a weapons bay).Current equipment slot types (in the reference implementation - you are free to change them in your game):- head
- neck
- body
- hand
- finger
- legs
- feet
Attributes
An item may have any number of item attributes. A sword of flames will have a weapon attribute of type "fire" and a corresponding damage modified. Combat attributes are used to calculate damage - a sword of fire will do more damage against an ice monster.Current combat attributes include:- fire
- acid
- water
- cold
- electricity
- death
- light
- chaos
- sound
- poision
- shards
- normal
Item categories
Categories are used group items according to their basic aspects, you can think of them as tags for item properties. For example, a magic potion of healing will belong to the categories 'potion' and 'magic'- and perhaps 'healing', if you expect to have a lot of healing items. Shops will not always carry
- potion
- magic
- mushroom
- metal
- armor
- weapon
Combat damage
A weapon is simply defined as an item which has a combat dice value set. Dice determine the base damage an item will do via the formula ( number of sides * number of dice) + bonus value. You can name your dice and reuse them for different items, for example "Dice: short swords" or "Dice: Phasers".h3 Stackable and package sizeItems may be combined to stacks. The package size determines the amount of this items you will receive from a shop keeper. For example, buying "a dozen arrows" will add a stack of 12 arrows to your quiver.Usable and rechargeable items
Some items can be used (activated) to create special effects, which may consume the item or reduce its life expectancy by one. A potion will have only one use, while a laster blaster may have a 100 shots before it can be recharged.Value and availability
Availability is currently defined in 0.1% steps - so it's a number from 0 to 1000. Items with an availability of zero will never be found in a shop, while others will be on sale some or all the time. The base value of an item is used to calculate the price a shop keeper will pay for it.Item properties
An item has other properties besides its type. Those are:- an owner: a Creature (may be a mob, but most likely it's a player character)
- a location: currently, two location types are defined: ON_PERSON and AT_HOME
- a gold value: game events may change the value of an item.
- amount: for stacked items, default is 1
- equipped flag: true if the item is currently in use.
- number of uses left
- resources: an item may be designed to be used as a production resource in crafting.
3.8 Crafting
Crafting in games can be defined as the controlled and repeatable creation of items by player characters, based on their personal resources (materials, skills, time).The Little Goblin crafting system allows for production of all kinds of items that a character might want to use. To create an item, a PC should have a corresponding crafting skill, the material components and the proper tools. As with many other online games, crafting takes time - you can define how long it will take a player to create an item.Tools
Many crafting systems require the presence of components, but few consider the use of multiple tools for crafting. Little Goblin offers the chance to create recipes for items that define what other non-consumable items the player (or, later on, his order) has to own to craft a new item.At the moment, the quality of tools is not mapped to the crafted item's quality, but that could be an interesting idea for further extensions.Production lines
Currently, a player can start the production of create several items of a each kind, as long as he has the required components to create at least one item of this type. When the required time is up, the code checks if the resources are available and then generates the item. So it is possible to start a "create 99 gold-tipped arrows, which requires 10 hours" production task while owning only one gold nugget, and then start another process to "create 98 gold nuggets from gold ore in 9 hours"Note: Work in progress: The crafting and the skill learning system currently rely on external "ticks", that is http calls to the API made by a cron job, which causes specific service classes to check if items are to be generated or skills will be learned by characters etc. This is sub-optimal and will be replaced by background-threads in the future.Design considerations
A more "realistic" way would be to subtract the required resources each time an item is generated, but on the other hand it is a better system than requiring all resources up front, which would mean that in our example the player has to login after 9 hours, when the 99 gold nuggets are ready, and then create the next 10 hour job of crafting the arrows. This leads to unhealthy gaming patterns where players will stay up late or rise early, just to submit a task to an online game on time.3.9 Orders
Players may create orders (which are called guilds in some games). An order offers a means to communicate with friends by using the Chatterbox (private chat channel on the order page).Each player may create his or her own order and wait for other players to send application messages for their characters, which can be accepted or denied. The founder of a guild is also its master. A player character may only be the member of one order.Roadmap for orders
Orders are currently very simple. They will probably be extended to include:- A treasure chest for exchanging items for free.
- A production / crafting facility to share tools / machines.
- An organization chart for large orders.
- The option to add a logo and a more detailed description.
3.10 Quests
Quests are multi-step events that a player character experiences and whose outcome is more or less dependent on the player's choices and possible random factors.Quests are granted by a QuestGiver, a non-player-character, which may have a short description and an introductory text. The player decides whether to take on a quest or leave it. If the player character dies or runs away from a quest, it is counted as failed and cannot be repeated.Each quest consists of several steps, which are QuestStep objects chained together by the game designer. You can create extremely long quests, with random encounters and scripted outcomes depending on special circumstances. It is even possible to have looping quests. For example, if the player returns repeatedly to a series of quest steps, until he makes the correct (or final) decision which ends the quest successfully or causes it to fail.At the end of quest (or, by script, during a quest step), rewards can be given to a character. Those may take the form of items or non-material bonuses like reputation changes. The reference implementation has an example quest where the player decides if he wants to rescue an elven girl and reunite her with her family or give her to the dwarves. The decision results in a change to reputation with both factions (elves and dwarves).Entry criteria for quests are planned, but not implemented yet. For example, I would like to implement reputation dependent quests - if a player character is known as a friend of the gnomes, he may get some quests from them…4 Plugin Usage
So, you want to create your own game. That's great.This chapter describes how to create a new game by using the Little Goblin plugin. As an example I will use the reference implementation, which is currently (as of version 0.3.2) a part of the main plugin, but should really be put into a separate application to keep framework and individual game mechanics apart.So follow along for a tour … you can find the source code at GitHub: Schedim source code4.1 How to create a new game
A new app
Create a new grails application. On the command line type:grails create-app schedim
compile ':goblin:0.3.2'
grails // waiting some time grails run-app // waiting some more
Landing page configuration
As you can see, the default page of the new game leaves something to be desired. But we can redirect visitors from the base URL to a page of our own choosing.In the file grails-app/conf/UrlMappings.groovy, modify the static mappings definition:class UrlMappings { static mappings = { "/$controller/$action?/$id?"{ constraints { } } "/"(view:"/portal/landing") "500"(view:'/error') } }
Database installation
You may run your game entirely from RAM without any persistent database installed. But while this is great for testing (you get a new database with every start), for a production setting it will probably be less than ideal, because you loose your entire game state once the server shuts down.If you want to go beyond an in-memory setup, you should install a proper database like Postgresql - this is easy to setup. On Windows, you can use PgAdmin which comes with the database executable to setup a first database called schedim, with a user goblin and password goblin.If you decide to go with Postgresql (you could also use MySQL or MS-SQLserver etc), please add the following postgresql driver to you dependencies closure in BuildConfig.groovy:dependencies{ // automatically download and install the Postgresql driver: runtime 'postgresql:postgresql:9.1-901.jdbc4' // or use the MySQL one: // runtime 'mysql:mysql-connector-java:5.1.20' }
--- in pg_hba.conf: add a separate line: host schedim all <IP_ADDRESS>/32 trust
Database configuration
Next you will need to configure the connection to the database. This is stored in /grails-app/conf/DataSource.groovyThere are three distinct environments under which your game will be running -- development, which means you run it via run-app from the Grails console.
- test, during testing the game will be running with the in-memory H2 database (leave settings as-are).
- production, which is activated when the schedim.war is deployed into a Tomcat (or other) server.
environments{ development { dataSource { dbCreate = "update" pooling = true logSql = false driverClassName = "org.postgresql.Driver" dialect = "org.hibernate.dialect.PostgreSQLDialect" url = "jdbc:postgresql://<IP_ADDRESS>:5432/schedim" username = 'goblin' password = 'goblin' } } production { dataSource { dbCreate = "update" pooling = true logSql = false driverClassName = "org.postgresql.Driver" dialect = "org.hibernate.dialect.PostgreSQLDialect" url = "jdbc:postgresql://<IP_ADDRESS>:5432/schedim" username = 'goblin' password = 'goblin' autoReconnect = true properties { maxActive = -1 minEvictableIdleTimeMillis=1800000 timeBetweenEvictionRunsMillis=1800000 numTestsPerEvictionRun=3 testOnBorrow=true testWhileIdle=true testOnReturn=true validationQuery="SELECT 1" } } } }
driverClassName = "com.mysql.jdbc.Driver" dialect = 'org.hibernate.dialect.MySQL5InnoDBDialect' url = "jdbc:mysql://localhost:3306/schedim"
Security configuration
Little Goblin uses the Grails Spring Security Plugin to enable authentication and authorization of users. You may of course decide to use another security mechanism (or write a game that does not require a login...) but I recommend you just use the following settings in your Config.groovy - after all, Little Goblin is about reducing the time for setup.grails.plugins.springsecurity.userLookup.userDomainClassName = 'de.dewarim.goblin.UserAccount' grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'de.dewarim.goblin.UserRole' grails.plugins.springsecurity.authority.className = 'de.dewarim.goblin.Role' grails.plugins.springsecurity.userLookup.passwordPropertyName = 'passwd' grails.plugins.springsecurity.authority.nameField = 'name' grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/portal/start' grails.plugins.springsecurity.dao.reflectionSaltSourceProperty = 'username'
Adding data
At the moment, your database is completely empty - it should contain just the tables for the Little Goblin domain classes, but not a single row of data. That is about to change...// TODO4.2 The landing page
A browsergame starts with a landing page, where the visitor gets a first impression on what the site is all about.The landing page is mostly static. It can be found in grails-app/views/portal/landing.gspIt contains the following parts:- The links to the login and registration pages
- The optional Facebook like button
- A language chooser (currently supported: French and English)
- Some information about Little Goblin
- grails-app/views/portal/landing.gsp
- grails-app/views/layouts/main.gsp
- web-app/css/main.css
facebook { // this enables Facebook-JavaScript snippets on your landing page: enabled=true // show the like button: enableLikeButton = true // if set to true, allow login via Facebook - not implemented yet. enableFacebookLogin = false // your server's URL and Facebook appId myUrl = 'http://schedim.de/' appId = '217240194988212' }