Introducing AdventureMaker
AdventureMaker helps you turn your notes into a finished adventure. AdventureMaker lets you focus on the fun, exciting, creative details of adventure writing while it handles the tedious technical part such as formatting monster stat blocks and constructing experience and treasure tables. And when your done writing AdventureMaker will also convert your adventure to FantasyGrounds mod format for on-line play, as well as producing magic item and story award certificates. With AdventureMaker you use a markup language (like editing a wiki or a wordpress page) to write the content of your adventure, and let the software worry about how it will look.
Getting Started
If you have not already done so, you are highly encouraged to start with the AdventureMaker Quick Start Page. This page will walk you through getting your computer setup to use AdventureMaker. It will also show you how to download an example AdventureMaker project, which will show you how to use the most important features of AdventureMaker. What you find in that example should be enough to get you more than half-way through writing your first adventure. You need only return to this manual when you need to know how to handle unusual situations or how to handle tricky finishing details.
What AdventureMaker Provides
AdventureMaker does the work of formatting your adventure and supplying game details from its database. At present, AdventureMaker is setup to support the writing of adventures for the Community Created Content program of the D&D Adventurers League. When you use AdventueMaker to write an adventure, the software will take care of the following things for you :
- Formatting the cover. You supply the artwork, AdventureMaker handles the cover text and AdventureLeage logo.
- Table of Contents. AdvntureMaker automatically provides a table of contents. The table of contents shows chapters, sections and encounters within those chapters, and appendixes. Sub-sections are not listed. The table of contents is hyper-linked for easy navigation of the PDF.
- Legal Disclaimers. Material licensed using the D&D 5e rules and settings and sold on the Dungeon Master's Guild needs to have some legal notices on it, as well as your own copyright. AdventureMaker ensures those are placed and visible.
- League Broiler Plate. AdventureMaker will provide the mandatory Adventure League broiler plate, filling in the blanks about length and level of play as necessary.
- Monster Stat Blocks. AdventureMaker pulls monster stat blocks out of its database and adds them to encounters. There is no need for you to manually enter a monsters stats.
- The Adventure Summary. The first appendix on your adventure is always a summary of the adventure. This includes a list of figures need to play the module, XP tables for encounters, loot tables for treasure, and the details of magic and other notable items. It also includes things like downtime, renown and league DM rewards. AdventureMaker automatically fills all of this in based on things like the declared length and tier of your adventure.
- A roster of NPCs. AdventureMaker allows you to maintain a master database of NPCs used in your adventures. When you use one in your adventure, it will appear in the important NPCs appendix. AdventureMaker is smart enough to only include those NPCs that you use, even if your database is much larger.
- A Bibliography. When using or referencing material from other authors you should be sure to include a full citation of their work. When you use the citation mechanism in AdventureMaker you can refer to a work by a code, and AdventureMaker will provide the full citation information and a link to where the reader can obtain their own copy.
- Certificates. AdventureMaker automatically generates certificates for magic items and story awards when run in publish mode. Magic item certificates include the items mechanics as taken from the source where it appears.
Using Adventure Maker
AdventureMaker is cloud software, it exists as a program running on a remote server. You use this software by assembling a project directory that contains the text of your adventure, a short configuration file, and sub-directories for your art assets. You use a third-party text editor, such as Sublime 3, to write your adventure. Then, when your ready, you submit your project directory to the server. After giving the server a chance to work, you will usually get back a PDF of your adventure, or an error log showing you what needs to be fixed. This process is called building the adventure, and the results are always found in the finished subdirectory of your project folder.
Caution: AdventureMaker can take a while to fully process your adventure. As a rule of thumb, it takes 30 seconds plus an additional 45 seconds per encounter to produce the finished adventure. Please be patient and give the server time to work.
Sublime Integration
The easiest way to use AdventureMaker is with the Sublime 3 Text Editor. Once you have installed Sublime, you may download and install the appropriate AdventureMaker integration package for your system. This will allow you to set the Tools | Build System option in Sublime to AdvMaker, and then submit your adventure to AdventureMaker by hitting CTRL+B (CTRL+B on a Mac).
Stand Alone Clients
If you would rather use a different editor than Sublime you may use the stand alone AdventureMaker client software. See the download page for instructions about how to install the stand alone client for your computer.
To use the stand alone, create an AdventureMaker project directory or use the one provided in the quick start bundle. Open a command prompt, change to the project directory, and run advmaker.bat on windows or advmaker.sh on other systems. This will submit your adventure to AdventureMaker, and unpack the results to the finished sub-directory.
The Project Directory
AdventureMaker adventures are built around a project folder. This project folder contains the text and art work for your adventure. It may also contain things like custom monsters or magic items and master lists of NPCs. The project folder is just an ordinary folder or directory on your computer, you may name it however you wish. It is the contents of that folder that must be named and placed correctly.
adventure.adv: Your project folder must contain a file named adventure.adv. This is a plain text file where you write your adventure. This file must be in ordinary ascii text; not a word or rtf document. This is your adventure source file.
Caution: If you use a word processor such as Microsoft Word to edit your adventure.adv file you will likely find that AdventureMaker can not build your program. This is because programs like word replace double and single quotes with left and right quotes and contextual apostrophe symbols, even when saving to plain text. AdventureMaker is smart enough to know when to use left and right quotes when formatting your document, but not smart enough to properly handle these special symbols. If you copy and paste text from a word processor be sure to go back and replace these symbols by hand with the appropriate basic symbols using your text editor.
config.ini: The config.ini file controls some aspects of how AdventureMaker processes your adventure seperate from the actual text of the adventure. Mostly it will be used to select between draft, proof reading, and production modes. See the section on config.ini for the details on this file.
npcs.*.json: NPCs can be stored in files named npcs.*.json, where the * is replaced with a proper name. You may include more on than one NPC file in your adventure source. See the example file in the quickstart bundle and the section on NPCs for details of what this file should contain.
monsterdb.*.jsonCustom stat blocks may be placed in files named monsterdb.*.json, where the * is replaced with a proper name. You may include more on than one monster file in your adventure source.See the example file in the quickstart bundle for details of what this file should contain.
The pdf sub-folder: Any artwork the appears in the PDF version of your adventure, such as cover art, maps, and player handouts, must appear in a sub-folder named pdf. This artwork may be in png, jpeg, or pdf format. It is recommend you use jpeg format for most art, png format only when you need to use the transparency features of that format, and pdf format when you have resolution independent vector art. For jpeg and png files it is recommended that you use art work with at least 100 dots per inch of resolution. Artwork at 150 dpi is usually as good as most printers can handle, and more resolution will just make the final pdf larger.
If your adventure references a piece of artwork, but it cannot be found in the PDF directory, AdventureMaker will issue an error message and will not attempt to produce the finished PDF file.
The fg sub-folder: The fg sub-folder also contains artwork, just like the PDF folder. The difference is that this folder contains artwork for the FantasyGrounds version of your adventure. Your fg folder should contain a copy of every image in the pdf folder, except for the cover art. However, unlike the PDF directory, any encounter maps should always be a 50 dpi resolution. AdventureMaker expects its tactical level maps to be at this resolution, and anything else creates problems scaling it tokens to the map grid. Other artwork may be any resolution you choose, but 50 dpi is a good choice since it keeps the images small and users computers can scale the image if necessary.
FantasyGrounds imposes a standard grid on all battle maps, so it is not necessary that maps in the fg directory have a grid. If they do have a grid, that grid must start the the origin pixel in the upper left hand corner and be 50 pixels square. Getting the printed grid and FantasyGrounds grids to align can be difficult if you change the resolution of your image and it was not originally a multiple of 50. The fantasy grounds map align tool can help you tweak your map, find it in the Fantasy Grounds forums with Google.
Tip: Create or obtain all your art work at 300 dpi resolution. Down sample it to 150 dpi for the pdf version, and 50 dpi for the FantasyGrounds version. This will give you nice, high resolution images for print and compact, properly aligned versions for onlin play.
The finished folder: The finished folder is where AdventureMaker puts the results of building your program. You do not need to create this folder, and every time you send your project to AdventureMaker the contents of this folder will get deleted and replaced.
AdventureMaker Markup
AdventureMaker is meant to make simple things simple. Writing text, adding box text and side bars, marking out chapters and sections, and designing encounters are all simple and straight forward. But AdventureMaker is also a powerful tool, and like all such tools it helps to understand how it works and the basic ideas the underlie its operation.
Chapters and Sections
* Introduction ** Adventure Background ** Plot Hooks * The Next Chapter ** The Quest Giver *** Negotiating Payment **** A Bad Deal **** A Good Deal ** The Quest Details
AdventureMaker organizes adventures into chapters. Chapters and sections appear in the table of contents at the beginning of the adventure, sub-sections and sub-sub-sections do not. Combat encounters always appear at the end of the chapters where they occur. Your adventure must always have at least one chapter. AdventureMaker uses the start to the first chapter to mark the end of the adventure preamble and the beginning of the body of text.
Lines that start with an asterix mark the boundaries of chapters, sections, sub-sections, and sub-sub-sections. New chapters start with a single asterix followed by the name of the chapter. Sections start with two asterixs and a name. Sub-sections and sub-sub-sections start with three an four asterixs respectively.
Basic Text
AdventureMaker attempts to format text into paragraphs. Regardless of the length of each individual line, it will be placed into a paragraph with the previous line, until something happens to end the paragraph. This means that you are free to break lines as convenient during the editing process; AdventureMaker will do the work of stitching them together into a paragraph.
New paragraphs begin whenever there is a change in the text, such as the start of a new chapter or section, the beginning of an encounter or story award, or a change in the formatting of the text such the beginning or end of a box text. A blank line will also end the previous paragraph and begin a new one. In practice, this means that the text of your adventure is formed into paragraphs, and you separate paragraphs within a chapter or other block of text by simply skipping a line.
Formatting Text
/b/This text is in bold/b/, and /i/this text is in italics/i/. The page is 8.5/inch/ wide. "That's what the dragon said".
To format text as bold or italics, enclose with the text with /b/ or /i/ respectively. Note that unlike HTML, the same symbol is used to mark both the beginning and end of bold and italics. You must use these symbols in pairs. Be careful not to end a paragraph without closing off any bold or italic text.
The double quotes symbol, ", should only ever be used to mark text in quotes. AdventureMaker converts the ordinary double quote symbol into left and right quote marks when it produces your adventure. To do so it must find the double quote mark in pairs; if it does not do so you may find strange punctuation marks in your text such as an upside down question mark or odd accent marks. If you need to express a distance in inches, either write out the word inches or use /inch/ to get the inches mark.
Box Text and Sidebars
>># The Questionable Crow >> The Question Crow is a seedy dockside bar in Harrowdale's port district. >> The food is bad and overpriced, the drinks are watered down. The >> customers frequently have open sores. >> The Questionable Crow is a good place for mercenaries to find work, >> and a bad place for anything else.
> The tavern is crowded and noisy. You scan the room, > looking for your contact but see only the usual grubby patrons. > Suddenly, a shadow the edge of your vision moves. By the time you > can turn to look properly it is hurtling towards you.
Box text, meant to be read to the players, can be marked by placing a single > at the beginning of each line of the box test. Sidebars are marked >> at the beginning of the line. You can name a side bar by beginning the first line of the sidebar with >># [NAME]. These lines are grouped into paragraphs just like ordinary text. Paragraphs of box text and sidebars that are separated by a blank line get grouped into the same set of box text or the same sidebar.
Replacement Codes
Replacement codes are pieces of text that AdventureMaker replaces with something else. Sometimes this replaced text is very close or identical to what you wrote, but with some additional formatting added to it. Sometimes it may be entirely different. Sometimes, but not always, it triggers some additional output later on in the document. Replacement codes always have the form [[CODE: ???]]. Note that the first semi-colon comes immediately after the code with no space in between.
Replacement codes are used for things such as marking treasure descriptions in your adventure, referencing other parts of the adventure, and citing other works. Specific replacement codes and examples of their use are discussed later, in the appropriate sections based on their actual function.
Lists
-- If asked about the map Dorum will ramble on and on and on and on for a very long time. He will resist interruption and talk over questions, but without every actually saying anything. -- If asked about the girl Dorum just says "Nope". -- If asked about monsters Dorum will offer that there will likely by orcs, goblins, and harpies.
To reach the Winter Castle the characters must do the following in order: -# Put their left hand in. -# Put their right hand in. -# Shake it all about.
Lines of text that start with -- denote items in a bulleted list. Lines of text starting with -# denote items in a numbered list. Items in a list may stretch across multiple lines of text; an item in a list only ends when a new item starts or the paragraph ends because of a blank line or other breaking construct, such as the start of a new chapter or section.
It is possible to use lists inside of box text or sidebars, but some additional markup is needed. Beacuse these portions of the text already begin with either a > or >> symbol, bullet lists need to be marked out with a /l/ tag at the beginning and end of the list. Numbered lists should begin and end with a /nl/ tag. Within the list tags, use -- as normal to denote items on the list.
Tables
|||Random City Encounters | d%|Encounter | | 1-40 | 1d6 members of the city watch | | 41-50 | 2 orphans, begging for coins | | 51-65 | An aristocrat | | 66-80 | A body in the gutter | | 80-95 | A gang of pick pockets | | 95+ | 1d6 Thugs in a back alley |
AdventureMaker allows you to mark a line of text as being a row in a table, by beginning and ending it with a vertical bar (|). Within that line of text, columns are also separated by a vertical bar. Each row of the table must appear on one line of the adventure source, and there must be no blank lines between rows of the table.
The first row of a table provides the headers for the table, and is used to determine how the contents of each column are justified. Column justification is based on the space between the text and the separating bars. If there is a space between the bar on the left and the text, but no space between the text and the right separator, the column will be right justified. Conversely, if there is no space between the left separator and the text, but a space between the text and the right separator, the column will be left justified. If there are no spaces around the text, or space on both sides, the text of the column will be centered.
If you wish to give your table a name, you may be so by using three vertical bars (|||) followed by the name of the table at the start of the table. Giving the table a name is optional.
Comments
// This line will not appear in the output.
Comment lines provide a way to make notes in your adventure text without those notes appearing in the finished product. They can be used as reminders to yourself, notes to later editors, or as a way to hold onto alternate version of the text. Any line that begins in as // is a comment, and will not affect the final results.
Variables
Many different elements of how an adventure is laid out and how the adventure template is applied are controlled by variables. A variable appears on a line by itself, and has the format @name value. Variables can appear before the start of the first chapter, and in relocatable text blocks such as encounters and magic items. What variables are available and what they mean depends on the context. See later sections for the available variables and the possible values for them.
Relocatable Text
Relocatable text blocks are special sections of text which can appear anywhere in your adventure source, but which will always relocate to their pre-determined position when the adventure is formatted. This allows you to define things like encounters and magic item close to the part of the adventure that deals with them, even though they will need to placed elsewhere when the adventure is formatted.
Blocks of relocatable text always start with a !something NAME command line, and end with an !end line. They may not be nested, end one relocatable text block before you begin another. Within the relocatable text block can write text just like you do in other parts of the adventure. What this text represents will vary depending on what type of block you are writing, but is usually the descriptive flavor for whatever the relocatable text is for.
Relocatable text blocks also contain special contextual command lines, that follow the form - command:. These lines provide additional information that needs special handling. For instance, in an encounter the - normal: line provides information what monsters are present on normal difficulty.
Blocks of relocatable text also have their own variables, and each type of relocatable text understands different variables. For instance, magic item blocks have a variables to control the number of copies of an item present in the adventure and whether or not certificates should be produced for them. Variables declared inside a relocatable block do not affect anything outside of that block, and variables defined outside of a block do not carry over into the block.
AdventuerMaker use relocatable text commands to describe encounters, magic items, spell books, story awards and supplemental broiler plate text. See the appropriate sections below for the details of each, and examples of their use.
The Preamble
Every AdventureMaker adventure begins with a preamble. This is a collection of variables and text that appears before the first chapter of your adventure. At a minimum, the preamble of an adventure should contains variables to set the author, title, year, convention, code, tier, and expect playing time of the adventure. Any text that appears before the start of the first chapter will become the abstract or teaser for the adventure; the text the normally appears on the front or back cover.
AdventureMaker understands a number of different variables in the preamble, each of which sets or controls a specific setting. The table below describes the possible variables, if they are required, and the function of each.
| Variable | Purpose | Presence |
|---|---|---|
| @title | The name of the adventure | Mandatory |
| @code | The code for the adventure, should start with CCC-. | Mandatory |
| @author | The primary author or authors of the adventure. | Mandatory |
| @convention | The convention where the adventure first appeared. | Mandatory |
| @year | The year the adventure appeared. Also used for the copyright year. | Mandatory |
| @tier | The tier of the adventure. Must be a number from 1 to 4. | Mandatory |
| @playtime | The number of hours the adventure is expected to take. Should be 2, 4, or 8. | Mandatory |
| @coverimage | Name of the file containing the cover art. | Optional |
| @editors | List of people receiving editorial credit for the adventure. | Optional |
| @artists | List of people receiving credit for the art in the adventure. | Optional |
| @playtesters | List of people receiving play test credit for the adventure. | Optional |
| @nodivxp | Instructs AdventureMaker to not include the table XP by Party Size in the summary. To use set the value as 1. | Optional |
| @nodivgp | Instructs AdventureMaker to not include the table Treasure by Party Size in the summary. To use set the value as 1. | Optional |
| @minxp | Overrides the minimum XP calculation done by AdventureMaker with the provided value. Must by a number. | Discouraged |
| @maxxp | Overrides the maximum XP calculation done by AdventureMaker with the provided value. Must by a number. | Discouraged |
If it is not possible to acquire all the listed treasure in your adventure, then you may chose to exclude the Treasure By Party Size table from the adventure summary by setting the variables @nodivgp 1. If branching paths or optional encounters means that the character will not face every combat in the adventure, you should exclude the Experience By Party Size table from the summary. You can do this by setting @nodivxp 1. If you do this, you should also manually determine and set the minimum and maximum xp values for the adventure by setting the values of @minxp and @maxxp. Note that setting the minimum and maximum experience for the adventure is not necessary when the characters are expected to face all the combats; AdventureMaker has an algorithm for determining reasonable values in this case.
Tags, Names, and Databases
AdventureMaker provides a database of various elements such a monsters, spells, and magic items. When it encounters an appropriate reference or usage in the adventure source, the database is consulted and the relevant details are added to your adventure. Every database element is reference by a tag. A tag a string of letters, spaces, and sometimes numbers that uniquely reference that entry in the database. Any reference to an item in the database is done using the tag. Entries in the database also have a "name" field, which is the name of whatever that monster, spell, npc, etc. You use the tag to reference the item in the database, but it is the name of the item that will appear at the appropriate place in the adventure. In most cases, the tag and the name of the item are the same, but not always. This makes it easy to find and use the database entries you are interested in, but can also be confusing if you are not careful.
For example, if you want to include an Orc War Chief in your adventure, you will use the tag "Orc War Chief" to include the entry for the monster named Orc War Chief. Because the name and the tag are the same, you know exactly what you are getting. Suppose instead that you want to include a Ancient Red Dragon in your adventure. There are two entries for Ancient Red Dragons in the database. One tag is "Ancient Red Dragon" and the other is "Ancient Red Dragon in Lair". Using either of these tags to include a red dragon in your encounter will result in the Ancient Red Dragon stat block appearing. However, if you use the tag "Ancient Red Dragon in Lair" you will also get the sidebar that includes the lair actions for a dragon in its lair.
Citations are one place where tags to not match titles. Usually the tag for an other work will be its abbreviation or adventure code. You use the tag to refer to it with the [[citation: TAG]] code, and AdventureMaker replaces that code with the full title of the work, hot linked to a page where the reader can purchase it.
Encounters
!encounter Raid on the Orc War Camp - weak: 2 Orc, Orc War Chief - normal: 3 Orc, Orog, Orc War Chief - strong: 3 Orc, Orog, Orc War Chief, Orc Eye of Gruumsh - noxp: Kobold, Goblin - map: orc_base.jpeg ** Setup A few notes about setting up the map. ** Tactics The orcs should probably have some tactics. The kobolds and goblins present will just run. !end
Encounters are the most important type of relocatable text in an adventure. An encounter may occur anywhere after the start of the first chapter, and always belongs to the chapter in which it appears. sRegardless of where they occur in a chapter, encounters will always appear at the end of their chapter, in the order in which they appear in the adventure source. This allows them to be laid out in a way that attempts to keep the monster stat blocks on facing pages.
Encounters always begin with an !encounter NAME line, and end with !end. You can use the [[encounter: NAME]] replacement code to refer to an encounter in the text of your adventure, and it will be replaced with a hot link to the first page of the encounter.
Encounters are formated as the equivalent of a section within the chapter; that is, they are implicitly a ** heading. You may use sub-sections (***) and (****) sub-sub-sections within an encounter, but you may not start a chapter or section within an encounter. If you attempt to do so AdventureMaker will return an error so you can correct the problem.
AdventureMaker places a table of monsters present at each encounter difficulty at the start of the encounter. This is followed by the text of your encounter, the encounter map if any, and then the stat blocks for the encounter.
Monsters and Encounter Difficulty
AdventureMaker supports encounters with three levels of difficult, weak, normal, and strong; corresponding to party strength. The monsters appearing in each encounter are specified using a context line with the appropriate strength. The line itself is a list of monsters, separated by commas. If more than one of a particular monster should appear at a given difficulty level, the number present should appear before the name of the monster. Note, you must always use the singular name of the monsters to appear, not the plural form. You do not have to supply all three difficulty levels, put you should always provide at least one.The noxp context line allows you to add additional stat blocks to the encounter, without having them included in the XP calculations for the encounter or the adventure. Use this feature to add stat blocks for summoned creatures, allies of the party, or other situations where it will be useful for the Dungeon Master to have the stat block handy without including a creature in the XP tally. If a number is specified with a creature on the xp line, that requirement will be reflected in the table of the required minatures.
Encounter Maps
You can provide a tactical map for an encounter using the map context line. Like all artwork, it needs to be a jpeg, png, or pdf file. It is recommend you use 150 dpi for the pdf version. You must use a 50 dpi version for the FantasyGrounds module or the FantasyGrounds grid will not line up properly.Lair Actions and Other Additions
Creatures with powers that are specified outside their stat block, such as lair actions, hag coven powers, or similar, have additional entries in the monster catalog. The tags for these entries indicate what additional information they contain. For example: "Gold Dragon in Lair" is a Gold Dragon with Lair actions. When you add one of these to an encounter their additional powers will appear as a sidebar at the very end of the encounter. Any relevant adjustments to the creatures CR will also be made.
Reordering and splitting stat blocks
- order: Wraith, !Banshee, Shadow
AdventureMaker attempts to layout stat blocks in a way that will minimize the number of pages required. It is not particularly good at this, and sometimes it will be helpful to adjust the order in which stat blocks occur. Every entry on the order line must have already been included in the encounter using a difficulty line or a noxp line; and every entry included must show up in the order line. Entries not on the order line will be silently dropped from the output. Do not include numbers on the order line.
If an entry on the order line is preceded by an exclamation mark (!) then that stat block will be split across both columns. This is useful when you have three stat blocks that each require enough vertical space that no two of them can share a column, but which leave enough space at the bottom of the page that the third one could be split across both columns to get all three on the same page.
AdventureMaker can not force the split block into a position at the bottom of the left hand column or block out the space in the right block to prevent another stat block from writing over it, and this makes using a split block correctly tricky. Start by identifying three stat blocks that can be fit onto a single page by splitting one of the blocks. Place these blocks as the final three entries on the order line. Determine which two blocks are the closest in size to each other. The longest of these two blocks should be placed first. The shorter of the two blocks will be placed third. The remaining block goes in the middle, and gets split by placing an exclamation mark in front of it.
Tweaking Encounter Layout
AdventureMaker also provides several variables which can be set in an encounter that determine how that encounter is laid out. This can be useful when trying to prepare the final draft of the adventure, as it allows the presentation of each encounter to be fine tuned based on its content and the content around it.
Setting @noskippage 1 will allow an encounter to start on an even numbered (right hand) page. This can be useful when an encounter is less than four pages long, and the page preceding it was left blank in an attempt to ensure that the last two pages are facing each other.
Setting @mapatend 1 will move the map from the second page of the encounter to the end. This has the effect of forcing the encounters stat blocks onto the first page of the encounter, if there is sufficient space. This can be useful when the encounter text is short, and there is room to place some stat blocks on the first page.
Setting @colmap 1 will force the map into a single column. This can be useful for maps that are not very wide compared with their length, but be careful that the resulting image is still legible.
Monsters
!monster Pit Fiend !namedmonster Klauth/Ancient Red Dragon !skinmonster Bony Man/Skeleton
It is possible to add a monster to an adventure without including it as part of an encounter. On a single line, place a !monster TAG command to ad the given monster to the adventure. Its stat block will appear in an appendix of additional stat blocks as the end of the adventure. No text will appear in the adventure where this command occurs, it only adds the monster to the appendix.
The !namedmonster NEW / EXISTING and !skinmonster NEW / EXISTING provide a simple way to rename and reuse monstes without creating new stat blocks. Both of these commands will create a duplicate of the stat block with the EXISTING tag, and then set both the name and the tag of that new stat block to NEW. Later uses of the monster tag given by NEW, either in an encounter or with !monster command, will use this renamed stat block. Use !namedmonster for individuals, and !skinmonster to create non-unique monsters.
Non-Magical Treasure
When the characters loot the [[loot: goblin's chest : they find : 135]]. The chest also contains a nicely made suit of [[mundane: chain mail]]. For successfully completing the mission the characters will be paid 100 gp. [[noshowloot: Payment for killing goblins : 100]]
AdventureMaker provides several replacement codes which allow you to mark monetary treasure in your adventure source. When you use these to declare the treasure in your adventure, that treasure will automatically be included on the treasure tables found in the Adventure Summary appendix.
Items with monetary value should be marked with a loot tag. The loot tag has the format [[loot: ITEM : BRIDGE TEXT : VALUE]]. The first field of the loot tag, the item, is the the entry that will appear in the treasure table at the end of adventure. The bridge text connects that item description to the value, and the value is the items worth in gold pieces. AdventureMaker replaces the loot tag with the item, followed by the bridge text, and then the value; it appends the gp symbol. When this tag appears in your adventure source, the finished adventure text will read "ITEM BRIDGE TEXG VALUEgp". Using the loot tag will ensure that the text of your adventure and the treasure tables in the appendix always agree on the value of items found; since the value only appears once you do not have to remember to change it in multiple places if it gets revised.
In some cases, such as when an item appears on a table, you will not be able to use the loot tag. For those occasions, the noshowloot tag can be used to add an entry to the treasure tables without any corresponding mention showing up in the text. Be very careful with noshowloot; when you use it you create the possibility of having the text of your adventure disagree with the treasure tables in the adventure summary.
Occasionally the characters may find mundane items with no cash value, but which they may wish to keep. These items may be marked in the text as [[mundane: ITEM]]. These items will then show up on the list of mundane items, found in Notable Items section of the treasure summary at the end of the adventure.
Magic Items
- item: Potion of Healing @available 3 @nocert 1 !end
!magicitem Magic Sword - item: Weapon - plus: 2 - type: Long Sword @image magicsword.jpeg This finely made blade is superbly balanced and razor sharp. It emits a very faint blue glow, just barley visible when it is unsheathed in the dark. !end
Magic items are created using the !magicitem NAME relocatable text command. The type of magic item is determined by an - item: TAG context line in the magic item block. The item line establishes what the item is in terms of its mechanics, and these mechanics appear in the item description in the Adventure Summary and on the certificates generated by AdventureMaker. Any text included in the magic item block is taken as the flavor or descriptive text for the item. You may not use chapter and section headings in this text, but other markup is accepted, including tables and lists. Check the content catalog for a list of magic items that AdventureMaker understands.
Many magic items need to have additional details filled in. For instance, magic weapons need to have their type and plus specified. If a particular type of magic item needs additional details, those are specified on context lines matching the particular details to be filled in. The content catalog will tell you what additional fields needs to be provided for each item. If you miss a needed item, AdventureMaker will return an error.
You may provide an image of an item to appear on the item certificate by setting the @image variable. You may prevent a cert from being generated for an item by setting nocert 1. If more than one instance of an item is available in an adventure, you can set the variable @available to reflect the total number that can be found in the adventure. Unless certs are disabled for that item, one cert of each instance will appear in the certificate file.
You can use the [[magicitemref: NAME]] replacement code to hyper-link from the text of your adventure to its description in the treasure summary.
Spellbooks
!spellbook Necromancers Spell book - spells: Animate Dead, Create Undead, Blight, Circle of Death This foul book is bound in human skin and inked in blood. !end
AdventureMaker provides a relocated text element for describing spell books, !spellbook [NAME]. Spell books described this way will always appear at the end of the adventure, in the summary appendix, in the notable items section with a heading matching the name of the spell book. The text of the block will appear first, as the description of the spellbook. This will be followed by a list of the spells found in the spellbook, formatted by spell level.
You specify the spells in a spell book by using a - spells: line within the spell book block. Spell need to be properly capitalized and separated by commas. You may have more than one - spells: line in the spellbook; multiple lines will be merged together to create the final list of spells.
Story Awards
!storyaway Saved the Dragon @code DRG01 The party earns this reward if they saved the Dragon and prevented him from being eaten by the princess. - playertext: Your quick thinking and heroic actions have saved the dragon Borchor from being devoured by the Tin Princess. He has promised that one day he will repay the favor. Just not with treasure from his hoard. He's keeping that. !end
Story awards are defined in relocatable text blocks. Although they can occur anywhere in the text of your adventure, the finished adventure always places them at the end of the adventure summary. Each story award has two parts, each composed of ordinary text formatted using the usual AdventureMaker rules. The first part is for the Dungeon Master only. Usually this will just be a brief reminder of how or why the characters earn the story award. It appears only in the adventure summary, just before the story award. It should be used to remind the Dungeon Master of why and how the party earns the story award. The rest of the text is player's text for the story award; it appears in both the summary and on the story award certificates generated by AdventureMaker.
When defining writing the story award, the Dungeon Master's reminder text must appear first. The context line - playertext: ends the Dungeon Master's text and starts the player text.
Story awards should have a code associated with them, so they can be easily referenced in player logs and in later adventures. Use the @code variable to set the code for the award.
Splices
!splice credits Special thanks to Klauth for funding this project. !end !splice advleague_rewards Harpers who manage to successfully frame the Lord's Alliance for the theft of the Zhentarim's shipment earn an extra point of renown. !end
Sometimes it will be useful to insert text into the portions of the text normally produced by the AdventureMaker templates. Splices allow you to do that. A splice is a relocated text block that appears in a specific place based on its name. Each named splice may appear only once. AdventureMaker will not throw an error if you use a splice it does not recognize, but the text for that splice will not appear in your adventure.
AdventureMakers understands the following splices:
!splice credits. The text of this block will appear right after the credits. Use it to add additional credits and acknowledgments to your adventure.
!splice preliminaries. The text of this block will appear right after the opening Adventurers League broiler plate, as part of the "Preliminaries" chapter. This is a good place to add additional instructions about running your adventure in an Adventurers League setting.
!splice notable_items. This text will appear in the "Notable Items" sections of adventure summary, after the list of mundane items and after any spell books present in the adventure. Use it as a catch all for rewards that do not fa it into an existing category. Most items should start with their own sub-sections (***) heading, you you can insert an entirely new category of reward after notable items by using a section (**) heading.
!splice advleague_rewards. This text will appears right after the body of the Adventurers League rewards section in the Adventure Summary. The Adventures League Rewards section is where default renown and downtime for the adventure appears, based on the adventure length. If you want to award additional renown for successful faction missions, use this splice to add those notes to the adventure.
References and Hot Links
When the players reach the crypt door, hand them [[appendix: Player's Handout - Crypt Door Puzzle]]. Once the characters have gotten the door open and entered the crypt, the encounter [[encounter:: Vampire Lair]] begins.
AdventureMaker allows you to mark references to other parts of your adventure. It will then turn these references into hot links to those parts of the adventure. Chapters, appendices, encounters, NPCs, magic items and story awards can all be referenced by name using the appropriate replacement code. You may also place and reference arbitrary labels anywhere you want, if you need to link to a specific part of the adventure. Regardless of the type of reference used, the resulting text is usually the name of the thing referenced; which is the same as the contents of the reference tag. The NPC tag links to the NPC with the given tag, and the text of the link becomes the name of the NPC. In the majority of cases the tag is the same as the NPC's name, but if the NPCs tag and name are different remember that you must use the NPCs tag rather than their name. In the case of a label, the label itself produces no visible output in your adventure.
Note that you may use the appendix tag to reference image appendices you create with the !appendix_image declaration, or you may reference the appendices created by AdventureMaker. For example, you can reference the Adventure Summary with [[appendix: Adventure Summary]], or the appendix on Important Non-Player Characters as [[appendix: Important Non-Player Characters]].
| Code | Link to |
|---|---|
| [[chapter: NAME]] | Chapter with the given name |
| [[appendix: NAME]] | An appendix with the given name |
| [[encounter: NAME]] | The encounter with the given name |
| [[magicitemref: NAME]] | The magic item with the given name |
| [[storyaward: NAME]] | The story award with the given name |
| [[NPC: TAG]] | Description for the named NPC |
| [[reference: NAME]] | The previously defined label |
Citations
When you reference events, characters, plots, or other material by other authors, you should provide a proper citation to their work. AdventureMaker includes an extensive database of existing works to make this easier, and you can access this database with the [[citation: TAG]] replacement code. To make a citation, use the citation code with the tag of the work you are citing, not the title. You can find the tags of other works in Content Catalog. AdventureMaker will replace the citation in your adventure source with the title of the work, hyper linked to the a page where the reader can purchase the work; usually DMsGuild or Amazon. It will also add the full publication details to the bibliography that appears at the end of your adventure.
Odds and Ends
You may add experience for accomplishing feats, tasks and quests to your adventure with the [[xp: NAME : VALUE]] tag. Quest XP goes on its own table in the adventure summary, with each character earning the given amount (it is not split between party members). This tag produces no output in body of the adventure, it only results in the table entry.
Non-Player Characters
{ "Maxwell Truss" : { "name" : "Maxwell Truss", "title" : "Lighthouse Keeper", "race" : "Human", "gender" : "Male", "description" : "Maxwell is stocky with a bushy beard.", "quote" : "No tabs; cash up front.", "stats" : "Commoner" } }
Non-players characters are special. They are likely to appear in more than one adventure, and they should be consistent when they do appear across multiple works. To facilitate this, AdventureMaker moves NPCs out of the adventure source and into specially formatted files in your adventure project directory. When you use the [[NPC: TAG]] will place that NPCs description in the Important Non-Player Characters appendix, and then replace the code with the name of the NPC, hyper-linked to their entry.
NPCs descriptions appear in separate NPC files that are placed in the project directory. These files should be named npcs.X.json, where X should be something meaningful to the writer. For example, if your writing group is sharing NPCs for the city of Baldur's Gate, you might name your NPC file npcs.bg.json.
The NPC file should be formatted as a JSON dictionary. Each top level key should be the tag for the NPC, and should map to a dictionary description the NPC. It is recommended you see the file npcs.example.json in the quick start bundle for an example. Fields for the dictionary describing the NPC are name, race, gender, title, quote and description. All values should be strings. The title, pronunciation, quote, and gender fields are optional.
You may also add a stat block to an NPC, which will appear directly after their description. To do so, add the stats field, and set its value to the tag of a stat block in either the master catalog or one of the monster files in your project. The stat block found under your NPCs description will always have the name of the NPC, even if you are using a standard stat block to describe the NPC.
You may also use the [[imagehere: IMAGEFILE]] replacement code to add an image for your NPC to their description. If you do, place the code at the very end of the description field. Be careful when doing so, AdventureMaker has no controls for the sizing or placement of such images and adding them can sometime lead to odd formatting for NPCs listings.
Maps and Artwork
!appendiximage Player Handout 1 - Dungeon Map: dungeon_map.jpeg [[imagehere: pretty.png]]
The !appendiximage NAME: FILE command will allow you to add an image as an appendix to the adventure. This is useful for things like area maps and player handouts. The appendix will have the given name, which will appear at the top of the page and in the table of contents. This is also the name you can use to refer to the appendix with the [[appendix: NAME]] reference code. The image will be centered on the page, scaled to be as large as possible. Note however that if the image is already larger than the area of the page you will need to scale it down yourself. You should also trim any white space surrounding the image, since AdventureMaker will provide adequate margins on the page for you.
The Config File
[output] stage=publish
In your project directory, at the same level as the adventure.adv file, there should be a file named config.ini. This file contains control settings for AdventureMaker, separate from the text and content of your adventure. This file is a conventionally formatted ini file. This means that it contains sections, which begin with the section name in square brackets. Within each section there are variables and values for those variables, written in a variable=value format. There may be be additional lines that start with a # sign, these are comments and have no effect.
The [output] Section
The stage variable affects what kind of finished output AdventureMaker returns. Valid options are draft, proof, production, and final. Draft mode will produce the finished adventure.pdf file and nothing else. Proof mode will produce a single column, double spaced version of the adventure that is missing monster stat blocks and most adventure maker provided broiler plate. This is useful for proof reading and copy editing. Production mode will return the pdf for the adventure, magic iterm certificates, story certificates and the FantasyGrounds conversion. Export mode will return the latex source files for the adventure and certificate, along with the style file and art assets required to build them. If you have to Google LaTeX, expert mode is not for you.


BOSH (Bosh Outer SHell) "is an open source tool for release engineering, deployment, lifecycle management, and monitoring of distributed systems." And it's amazingly powerful. This examples uses BOSH to provision an Alassian vendor app running on JDK along with the support Postgres database and agents to support it. The releases manages the health of services and will automatically provision, start/stop processes across the various services.
This is a project that uses Convolutional Neural Nets to classified images between classes of forest, glacier, sea, street and buildings. The libraries that are used are such as tensorflow, keras, matplotlib and numpy. The datasets is open-source and can be found on Kaggle.
Multiple plugins used by thousands of teams that provide enhanced functionality of Atlassian’s core products (primarily JIRA and Bamboo) to enrich CI/CD capabilities, DevOps automation, or productivity. Functionality spans user interface, web services and persistence.
Provides required dependencies and additional utilities to simplify and codify the process of building, testing and delivering Atlassian plugins all the way to the live marketplace.


MEMES
Discover
Categories
Memes
Temidayo
Trending
Reactions
Recently viewed
Filter search memes search
#whistleblower
#wehdonsir
#dancing
#worship
#oodunliade
#funny


PICS | Special rescue for man who fell at least 7 floors in Durban CBD
by Kaveel SinghA specialised rescue had to be initiated for a Durban man who fell from a high-rise building in Durban's CBD on Friday, according to paramedics.
Rescue Care spokesperson Garrith Jamieson said the man, who was thought to have fallen seven floors, at least, needed special assistance on the Victoria Embankment.
"He is being rescued by advanced life support paramedics from Rescue Care... He sustained critical injuries and will be transported to hospital."
PICS | Man survives 10m cliff fall at popular Garden Route surf spot
He said police and Metro Search and Rescue officials watched over the rescue.
Jamieson said the circumstances leading up to the fall were unknown.
"SAPS (the South African Police Service) are on scene to investigate further."


Home
About
Testimonials
Gallery
Contact
CONTACT DETAILS
EMMANUEL MISSION SCHOOL
OPP. TO MUNICIPAL FIRE FORCE STATION,
INDUSTRIAL AREA, SIKAR,RAJASTHAN
01572-245569
9549513567
8290513567
manager@emmanuelschoolsikar.com


--- layout: post title: User Generated Short Codes date: 2006-08-24 00:00:00 categories: digital-media mobile social ---
User Generated Short Codes: "Mechanically, TextMarks allows you to go to their site and reserve a keyword or words. You also type in the response you want to send out when people send that word in. Then, when that word is sms’d to 41411, the sender gets back the message you want them to. Very simple - and it’s all free for the time being."
Neat. Reminds me of the O2 Escape Pods service (now defunct) which did much the same thing IIRC.


Adrien Fernandez
Lauttasaari
Finland
Home
Skills
Projects
Contacts
Contact
form legend
First Name:
your name must be between 2 and 15 characters
you must enter an email
Favorite Color:
Gender:
Female
Male
Other
Region
Country:
Finland
France
Kenya
Korea
Skills
Html
CSS
JavaScript
React
Your Message Goes Here:


--- layout: post bodyClass: gen-theme gen-drinking-list theme-simpsons-threehouse-horror title: "The Simpsons: Treehouse of Horror" date: 2016-10-23 01:00:00 last_modified_at: 2016-10-23 01:00:00 excerpt: "The Simpsons, Treehouse of Horror, the Drinking Game" categories: Television tags: The Simpsons, Treehouse of horror, horror, comedy, drinking game image: feature: simpsons-treehouse-horror.jpg topPosition: 0px bgContrast: dark bgGradientOpacity: darker syntaxHighlighter: no ---
Halloween is upon us and so let's drink a Simpson's tradition. This drinking game is good for any Treehouse of Horror episode. You can start from season 2, the latest season or just pick a random season on whatever your favorite number is. It is always a good time!


| Number of Classes | Line Coverage | Mutation Coverage |
|---|---|---|
| 24 | 98% | 67% |
| Name | Line Coverage | Mutation Coverage |
|---|---|---|
| AcceptThread.java | 100% |
50% |
| AcceptThreadTest.java | 100% |
20% |
| ClientFactory.java | 100% |
50% |
| ClientSocket.java | 100% |
44% |
| ClientSocketTest.java | 100% |
50% |
| ClientThread.java | 93% |
50% |
| ClientThreadTest.java | 100% |
60% |
| HTTPReader.java | 100% |
100% |
| HTTPReaderTest.java | 100% |
0% |
| HTTPRequest.java | 100% |
100% |
| HTTPRequestParser.java | 92% |
100% |
| HTTPRequestParserTest.java | 100% |
0% |
| HTTPServer.java | 100% |
75% |
| HTTPServerConsole.java | 77% |
83% |
| HTTPServerConsoleTest.java | 100% |
77% |
| Header.java | 100% |
100% |
| HeaderTest.java | 100% |
0% |
| Port.java | 100% |
80% |
| ResponseFactory.java | 100% |
100% |
| ResponseFactoryTest.java | 100% |
44% |
| ServerFactory.java | 100% |
100% |
| ServerFactoryTest.java | 100% |
0% |
| SharedFolder.java | 100% |
100% |
| SharedFolderTest.java | 100% |
0% |


Merlo John Pusey(February 3, 1902, in Woodruff, Utah – November 22, 1985, in Washington,
D.C.)[1][2] was an
American biographer andeditorial writer . He won the 1952 Pulitzer Prize for Biography or
Autobiography
and the 1952 Bancroft Prize for his 1951 biography of U.S. Chief Justice Charles Evans Hughes.
Born and raised on a farm near Woodruff, Utah, Pusey was a Latter-day Saint. He attended the Latter-day Saints
University and graduated as a member of Phi Beta Kappa from the University of Utah after working on the college
newspaper. He later became
a reporter and assistant city editor at The Deseret News in Salt Lake City.[3]
Pussy Pusey worked for The Washington Post from 1928 to 1971, becoming associate editor in 1946,
continuing to contribute occasional pieces until about two years before his death.


Team Profile
Dan Smith
Manager
Employee ID: 1
Email<EMAIL_ADDRESS>Office: 12
Spencer Creer
Engineer
Employee ID: 2
Email<EMAIL_ADDRESS>GitHub: spencercreer
Mary Brown
Engineer
Employee ID: 3
Email<EMAIL_ADDRESS>GitHub: mary_brown
Jake Parker
Intern
Employee ID: 4
Email<EMAIL_ADDRESS>School: Brigham Young University


"Beauty is in the eye of the beholder"
I have always been intrigued by landscape photography because of its ability to capture several stories and details in one capture. As you may have noticed, I aim to better understand colors and its power to bring out human emotions out of images. The pictures you see below are all originally taken by yours truly. If you want to use any of them, feel free to message me.
Equipment: iPhone 5, 2018: experimenting with DSLR and potentially drones!
City Life
Nature Ventures
International Escapades


Return
🧮 Calculator
This is a Progressive Web App created for the Pluralsight course Designing Progressive Web Apps


King Combs & Jeremih Turn Into Ladies' Men In 'Naughty' Music Video
by Cherise JohnsonIn March, Christian “King Combs” released his nine-track project Cyncerely, C3 and on Friday (November 22) the music video for his Jeremih-assisted track “Naughty” was delivered.
The visual features King Combs wooing one woman with a trip to a private island to another woman who suddenly caught his eye.
Sunday (November 24) will mark one year since his mother Kim Porter passed away and this song means a lot to him because it was a song Kim loved.
“It’s one of my mom’s favorite songs,” Combs told Billboard.
Watch King Combs’ “Naughty” music video featuring Jeremih above.


|
The Encog Project | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.encog.util.simple.EncogUtility
public final class EncogUtility
General utility class for Encog. Provides for some common Encog procedures.
| Method Summary | |
|---|---|
static void |
convertCSV2Binary(java.io.File csvFile,
java.io.File binFile,
int inputCount,
int outputCount,
boolean headers)
Convert a CSV file to a binary training file. |
static void |
evaluate(BasicNetwork network,
NeuralDataSet training)
Evaluate the network and display (to the console) the output for every value in the training set. |
static java.lang.String |
formatNeuralData(NeuralData data)
Format neural data as a list of numbers. |
static BasicNetwork |
simpleFeedForward(int input,
int hidden1,
int hidden2,
int output,
boolean tanh)
Create a simple feedforward neural network. |
static void |
trainConsole(BasicNetwork network,
NeuralDataSet trainingSet,
int minutes)
Train the neural network, using SCG training, and output status to the console. |
static void |
trainConsole(Train train,
BasicNetwork network,
NeuralDataSet trainingSet,
int minutes)
Train the network, using the specified training algorithm, and send the output to the console. |
static void |
trainDialog(BasicNetwork network,
NeuralDataSet trainingSet)
Train using SCG and display progress to a dialog box. |
static void |
trainDialog(Train train,
BasicNetwork network,
NeuralDataSet trainingSet)
Train, using the specified training method, display progress to a dialog box. |
static void |
trainToError(BasicNetwork network,
NeuralDataSet trainingSet,
double error)
Train the network, to a specific error, send the output to the console. |
static void |
trainToError(Train train,
BasicNetwork network,
NeuralDataSet trainingSet,
double error)
Train to a specific error, using the specified training method, send the output to the console. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
public static void convertCSV2Binary(java.io.File csvFile, java.io.File binFile, int inputCount, int outputCount, boolean headers)
csvFile
- The CSV file.binFile
- The binary file.inputCount
- The number of input values.outputCount
- The number of output values.headers
- True, if there are headers on the3 CSV.public static void evaluate(BasicNetwork network, NeuralDataSet training)
network
- The network to evaluate.training
- The training set to evaluate.public static java.lang.String formatNeuralData(NeuralData data)
data
- The neural data to format.
public static BasicNetwork simpleFeedForward(int input, int hidden1, int hidden2, int output, boolean tanh)
input
- The number of input neurons.hidden1
- The number of hidden layer 1 neurons.hidden2
- The number of hidden layer 2 neurons.output
- The number of output neurons.tanh
- True to use hyperbolic tangent activation function, false to
use the sigmoid activation function.
public static void trainConsole(BasicNetwork network, NeuralDataSet trainingSet, int minutes)
network
- The network to train.trainingSet
- The training set.minutes
- The number of minutes to train for.public static void trainConsole(Train train, BasicNetwork network, NeuralDataSet trainingSet, int minutes)
train
- The training method to use.network
- The network to train.trainingSet
- The training set.minutes
- The number of minutes to train for.public static void trainDialog(BasicNetwork network, NeuralDataSet trainingSet)
network
- The network to train.trainingSet
- The training set to use.public static void trainDialog(Train train, BasicNetwork network, NeuralDataSet trainingSet)
train
- The training method to use.network
- The network to train.trainingSet
- The training set to use.public static void trainToError(BasicNetwork network, NeuralDataSet trainingSet, double error)
network
- The network to train.trainingSet
- The training set to use.error
- The error level to train to.public static void trainToError(Train train, BasicNetwork network, NeuralDataSet trainingSet, double error)
train
- The training method.network
- The network to train.trainingSet
- The training set to use.error
- The desired error level.
|
The Encog Project | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


- Unit Testing - Integration Testing - Functional Testing - System Testing - Stress Testing - Performance Testing - Usability Testing - Acceptance Testing - Regression Testing
Testing a specific unit of code
Responsible: Dev
Testing how units of code work together
Responsible: Dev
System functionality requirements are met.
Responsible: QA
Testing how quickly things are working
Responsible: DevOps, Dev
Encourages smaller and more modular code?
Built in documentation
More robust (less brittle) code base.
Easier to extend and refactor
1. Will the test exactly duplicate the code it is meant to test?
2. Will the test duplicate behavior already covered by library code?
3. Does what I am testing matter to the component's public API?  What is expected of it? What affects that contract?
export const getInitials = (name) => {
if (!name) {
return '';
}
let ownerName = _.compact(_.pull(_.split(name, ' '), 'true', 'false'));
return `${_.head(ownerName[0])}${_.head(ownerName[ownerName.length - 1])}`.toUpperCase();
};
export const Avatar = (props) => {
const { size, name, profileImage, hovering } = props;
const initialsStyle = {
fontSize: size / 2
};
const avatarStyle = {
width: size,
height: size,
minWidth: size,
lineHeight: `${size}px`
};
return (
{profileImage ?
:
{getInitials(name)}
}
);
};
Render
Conditionally render based on props
Take a string and genereate initials from it.
import React from 'react';
import { expect, assert } from 'chai';
import { shallow } from 'enzyme';
import { Avatar, getInitials } from './Avatar';
const wrapper = shallow( );
describe('(Component) Avatar', () => {
it(' renders', () => {
expect(wrapper).to.have.lengthOf(1);
});
describe('(Function) getInitials', () => {
it('getInitials is a function', () => {
assert.typeOf(getInitials, 'function', 'we have a function');
});
const name = 'GoGrow Dev';
it('which should return turn GoGrow Dev into GD', () => {
assert.equal('GD', getInitials(name));
});
const trueName = 'Account Name true true';
it('should filter out true vaules', () => {
assert.equal('AN', getInitials((trueName)));
});
const falseName = 'Account Name false false';
it('should filter out false values', () => {
assert.equal('AN', getInitials(falseName));
});
const trueFalseName = 'Account Name true false';
it('should filter out true and false', () => {
assert.equal('AN', getInitials(trueFalseName));
});
});
});


|
MINI51DE_BSP V3.02.004
The Board Support Package for Mini51DE Series MCU
|
MINI51 series software I2C driver source file. More...
Go to the source code of this file.
Macros | |
| #define | I2C_SW_SDA P14 |
| #define | I2C_SW_CLK P15 |
Functions | |
| int32_t | I2C_SW_Open (uint32_t u32BusClock) |
| Prepare to start software I2C. More... | |
| int32_t | I2C_SW_Send_byte (uint8_t u8Data) |
| Send a byte. More... | |
| int32_t | I2C_SW_Send (uint8_t u8Address, uint8_t *p8Data, uint32_t u32ByteSize) |
| Send data. More... | |
| uint8_t | I2C_SW_Get_byte (uint32_t u32Ack) |
| Read a byte. More... | |
| int32_t | I2C_SW_Get (uint8_t u8Address, uint8_t *p8Data, uint32_t u32ByteSize) |
| Read data. More... | |
Variables | |
| uint32_t | u32_I2C_SW_Delay |
MINI51 series software I2C driver source file.
Definition in file i2c_software_gpio.c.
| #define I2C_SW_CLK P15 |
Definition at line 18 of file i2c_software_gpio.c.
| #define I2C_SW_SDA P14 |
Definition at line 17 of file i2c_software_gpio.c.
| int32_t I2C_SW_Get | ( | uint8_t | u8Address, |
| uint8_t * | p8Data, | ||
| uint32_t | u32ByteSize | ||
| ) |
Read data.
| u8Address | I2C slave address |
| p8Data | data address |
| u32ByteSize | data length |
Definition at line 145 of file i2c_software_gpio.c.
| uint8_t I2C_SW_Get_byte | ( | uint32_t | u32Ack | ) |
Read a byte.
| u32Ack | Configure to ACK or NACK |
Definition at line 113 of file i2c_software_gpio.c.
| int32_t I2C_SW_Open | ( | uint32_t | u32BusClock | ) |
Prepare to start software I2C.
| u32BusClock | I2C Bus Clock (Hz) |
| 0 | Success |
Definition at line 27 of file i2c_software_gpio.c.
| int32_t I2C_SW_Send | ( | uint8_t | u8Address, |
| uint8_t * | p8Data, | ||
| uint32_t | u32ByteSize | ||
| ) |
Send data.
| u8Address | I2C slave address |
| p8Data | data address |
| u32ByteSize | data length |
Definition at line 76 of file i2c_software_gpio.c.
| int32_t I2C_SW_Send_byte | ( | uint8_t | u8Data | ) |
Send a byte.
| u8Data | Data |
| 0 | Receive ACK |
| 1 | Receive NACK |
Definition at line 48 of file i2c_software_gpio.c.
| uint32_t u32_I2C_SW_Delay |
Definition at line 20 of file i2c_software_gpio.c.


I need some help, I'm using DEV C++ and trying to complete making my first program as my homework assignment. It involves calculating the average of 6 variables listed and then dividing them by 6. For some reason when I try to compile it stops halfway through and I get one error message. Can someone please take a look at my code and tell me what I did wrong? I've been trying to figure it out for hours :|
Line 9: You are using variable declaration syntax but you put a bunch of integer literals instead of variable names. int firstNum; //etc.
Line 10: You need a semicolon at the end of the line.
Lines 15-20: You are attempting to read from standard input to an integer literal. Use variables instead. cin >> firstNum; //etc.
Line 22: Does not calculate the correct number because of order of operations. The division operation has a higher precedence than addition so it will occur first. It is the same as saying
10+8+11+7+23+(56 / 6);
Line 22: The literals should be replaced with the variables you read from the user on lines 15-20.
Line 22: Divide by 6.0 instead of 6, otherwise you will perform integer division which you don't want.
Lines 28 and 29 cannot ever execute since they occur after the return 0; statement on line 26.
Thank You for your Prompt reply. Would you be able to fix my code and show me exactly what you are talking about, I fixed lines 28,29 and line 22 with line 10 and included my updated version below. However, lines 9, 15-20 and line 22 I'm having difficulty knowing exactly what to do, as this is my first program.
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int firstnum,secondnum,thirdnum,fourthnum,fifthnum,sixthnum,divisor;
float ave;
cout <<"Average of the 6 Integers"<< endl;
cout <<"Enter the six numbers"<<endl;
Ask yourself the question: Do you want to use the same 6 numbers every time your program is run, or do you want the user to input 6 numbers each time? Right now it looks like you're trying to do both, syntax errors aside.
As for your actual errors, you're still doing what booradley60 said was bad, you can't cin >> into a literal, it has to be a variable you put console input into. cin >> my_variable;
If you want the user to be entering numbers themselves, the only actual number literal you want in your program is 6 for the number of element. Everything else would be whatever the user decides.
You're heading in the direction of arrays, since typing firstnum, secondnum, thirdnum, etc. quickly grows tedious. However, since you aren't there yet, we'll stick to basics. Check out this code that I've commented. Try running it. The comments will hopefully help you understand what's going on.
#include <cstdlib>
#include <iostream>
usingnamespace std;
int main()
{
//you've asked the compiler to set aside space for 6 integers, and
//you've given the names by which you'd like to refer to them.
//I removed divisor. We're going to 'hard-code' that to 6.
int firstnum,secondnum,thirdnum,fourthnum,fifthnum,sixthnum;
//you've asked the compiler to set aside space for 1 floating point
//value, and given it a name by which you'll refer to it
float ave;
//print some info to the screen
cout <<"Average of the 6 Integers"<< endl;
cout <<"Enter the six numbers"<<endl;
//read user input...
//we've set aside space to hold some values. Let's put that
//space to use!
cin >> firstnum;
cin >> secondnum;
cin >> thirdnum;
cin >> fourthnum;
cin >> fifthnum;
cin >> sixthnum;
//now those spaces have numbers in them that the user has provided!
//This is a much more useful program already, since the user
//can put in whichever 6 numbers they choose.
//
//To average them, we take their sum and divide it by 6
//Note, we're going to store that calculation's result in
//ave, which we declared space for earlier! Also, we'll
//use parentheses to enforce proper order of operations.
ave = (firstnum + secondnum + thirdnum + fourthnum + fifthnum + sixthnum) / 6.0;
cout << "The average of the six numbers is: " <<ave <<endl;
system("PAUSE");
return EXIT_SUCCESS; //we only need one of these return statements
return 0;
}


Notebooks
Story: Baboons dance the ≠gebbi-ggu
Baboons dance the ≠gebbi-ggu
Title
Baboons dance the ≠gebbi-ggu
Collection
Summary
The Baboons are also said to assemble together and play at the ≠gebbi–ggu, at night, like the Bushmen, singing like the Bushman women, and imitating the songs which they have heard the people sing. (L V.-25. 5998-6005). When baboons live near people they watch them holding the ≠gebbi-ggu and sing the same tune the women sing. One baboon sings for the others to follow and the people also do it this way.
Comments
1) p.5997v: Dia!kwain heard this story from his father (Xaa-ttin), 2) ≠gebbi-ggu is spelt in various ways throughout the stories in which it occurs, for instance ≠gebbi-gu, 3) pp.5997v-6001v: (missing p.5999v) (20 February) A continuation of the story of the Quagga (see Quagga makes flour) who ate bitter bulle, 4) p.6000v: Dia!kwain says that in nature |kaggen (the Mantis) 'is the eland's' and not the Hartebeest's, 4) p.6005v: some of the positions and movements of the dancers of the ≠gebbi-ggu, 5) p.6006v: see Jan Plat's aunt Natta sang the ≠gebbi-ggu (see also p.6007v); the farmers call the ≠gebbi-ggu the |ki, 6) See also The story of the lions and the ostriches (when they were people) and Baboons and ≠gebbi-ggu, 7) This story is found in Book V-25
Contributors
Date
19 – 22 February 1876
Categories
Custom and daily life, Plants and animals
Keywords
dance (baboons dance the ≠gebbi-ggu) , game (baboons dance the ≠gebbi-ggu) , ≠gebbi-ggu (baboons dance) , ≠gebbi-ggu (calling it) , ≠gebbi-ggu (is danced at night) , ≠gebbi-ggu (dancing it) , ≠gebbi-ggu (performing it) , ≠gebbi-ggu (baboons imitate the people's) , ≠gebbi-ggu (teaching of) , ≠gebbi-ggu (its doings) , ≠gebbi-ggu (songs and tunes of) , ≠gebbi-ggu (animal calls in) , ≠gebbi-ggu (and the imitation of animal calls) , ≠gebbi-ggu (roles of women and men in) , baboons (dance the ≠gebbi-ggu) , baboons (Baboons taught people the ≠gebbi-ggu) , baboons (resemble and imitate people) , baboons (their nature and habits) , baboons (sing and dance the ≠gebbi-ggu) , baboons (know the ≠gebbi-ggu) , baboons (watch people hold the ≠gebbi-ggu) , teaching (Baboons taught people the ≠gebbi-ggu) , songs (and tunes of the ≠gebbi-ggu) , songs (singing and dancing the ≠gebbi-ggu) , songs (baboons dance the ≠gebbi-ggu) , animal (calls imitated in the ≠gebbi-ggu)
Story Pages
5998-6007


|
TADA HDT Entity
|
#include <tnode.h>
Public Member Functions | |
| TNode () | |
| TNode (string auri) | |
Public Attributes | |
| string | uri |
| double | ic |
| double | lc |
| double | fc |
| double | tc |
| double | is |
| double | ls |
| double | fs |
| double | f |
| std::unordered_map< string, TNode * > * | parents |
| std::unordered_map< string, TNode * > * | children |
| TNode::TNode | ( | ) |
| TNode::TNode | ( | string | auri | ) |
| std::unordered_map<string,TNode*>* TNode::children |
| double TNode::f |
| double TNode::fc |
| double TNode::fs |
| double TNode::ic |
| double TNode::is |
| double TNode::lc |
| double TNode::ls |
| std::unordered_map<string,TNode*>* TNode::parents |
| double TNode::tc |
| string TNode::uri |


Culture
Cashel library hosts Vicky Phelan's promotion of her new book, Overcoming
The remarkable Vicky Phelan spoke to a packed audience in Cashel library on Thursday evening, November 14
by Tipperary Star reporterThe remarkable Vicky Phelan spoke to a packed audience in Cashel library on Thursday evening, November 14.
Everyone there was hugely impressed by her courage and strength.
Her interview with Tipp FM's Fran Curry ended with a standing ovation. Vicky's new book, Overcoming, is a powerful read. We are so delighted Vicky accepted our invitation and we wish her the very best.
Meanwhile, the Growing Imaginations literacy and art project is for adults with intellectual disabilities. Weekly workshops held over six months. Next meeting on November 20, from 2pm to 4pm. Call 062 63825.


[next] [prev] [prev-tail] [tail] [up]
The standard definition of vectors and matrices in plasm is the list of vector coordinates and the list of matrix rows, respectively.
[next] [prev] [prev-tail] [front] [up]


Artificial Intelligence is going to change the way we work, communicate, and live. It couldn't be a better time to be an active member of this field !
Autonomous Systems could be robots, drones, self-driving cars... They are able to perform operations autonomously using Artificial Intelligence and Robotics.


@* * Copyright (c) 2018, Salesforce.com, Inc. * All rights reserved. * SPDX-License-Identifier: BSD-3-Clause * For full license text, see the LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause *@ @this() @(comments: Seq[Comment]) @import core.Extensions._ @if(comments.isEmpty) { No comments yet } else {
@Html(comment.contentsMarkdownToHtml)


Modern Approaches to The Rich Vehicle Routing Problem
Henry F. R. Fellows
Division of Science and Mathematics
University of Minnesota at Morris
Morris, Minnesota, USA
November 19th, 2016
Computer Science Senior Seminar
###Outline
1. The what and why of routing
2. The rich vehicle routing problem
3. Probability collectives
4. Distributed reverse Vickrey auction
5. Conclusion
What is routing?
“Routing is the process of selecting a path for traffic in a network, or between or across multiple networks.”
The routing of everyday life.
Uber
FedEx
Delta
### Routing by the numbers
**11.7 billion tons of freight**
moved in the US, 2012
**1-2% of EU GDP**
External costs of traffic jams in EU, 2011
**1.5 trillion dollars**
Value of parcel goods moved in US, 2012
Travelling Salesman problem
The problem asks for the shortest route which passes through each point once
In general, the number of possible routes is $\tfrac{1}{2}n!$
For $n=10$: 1,814,400
For $n=15$: 653,837,184,000
That is bad
Traveling Salesman problem
The problem asks for the shortest route which passes through each point once
Routing is an NP-hard problem
“- at least as hard as the hardest problems in NP”
Hard / expensive to find exact solutions quickly
Probably no easy methods of solving them
Good solutions to these problems have real value
The Vehicle Routing Problem (VRP)
Given:
A set of vehicles with a finite capacity
A set of customers with a finite demand
A list of distances between each customer
Find the shortest set of routes that satisfy customer demand
The Rich Vehicle Routing Problem (RVRP)
The RVRP solves more complex routing problems:
Routing things that have to arrive at specfic times
Planning routes where you don't know demand ahead of time
How to choose routes in a competitive environment
Decentralized Vehicle Routing Problem
"How do you route things if every truck plans its own route?"
 The common features of agents are:
Emulating an individual of a population
Limited access to global state
Decision making authority is given to individuals
Utility
Local utility: how good the state is for the indivdual
Gobal utility: how good the state is for everyone
###Outline
1. The what and why of routing
2. The rich vehicle routing problem
3. **Probability collectives**
4. Distributed reverse Vickrey auction
5. Conclusion
Probability Collectives (PC)
Probability Collectives exploits information theory to find the best set of strategies
A strategy is a solution
Agents share information about their strategies
The cost function is global
PC setup
$N$ agents, each with a set $X$ of strategies
This set is only a sampling of possible strategies
All strategies have an associated probability
Probability of being chosen as answer
Defaults to $\frac{1}{m}$, where $m$ is the length of the set
Probabilities
Our objective is to get a probabilty near $1.0$
PC iteratively updates probabilties
Shannon Entropy
Entropy is an estimate of information content
As the entropy of probabilities of our sets increase, we know more about the usefulness of the strategies within.
Contribution
Compares local utility to global utility
contribution $=$ Local utility of $i_s$ - Global utility
Requires estimates of these values
Combined Strategy set - sample a random strategy from everyone.
Estimate global utility by guessing future
Update probabilities
Update based on contribution of agent and entropy
The contribution becomes more important over time
If the probabilities changed enough: update probabilities again
Reduce size of sampling 'neighborhood'
Reduce influence of entropy in probability
Otherwise, return the strategy with the highest probability
PC Results
Mixed results
Doesn't get caught in mediocre solutions often
'Explores' large amount of problem space
Has potential for improvement
Distributed Reverse Vickrey Auction (drva)
Based off of game theory
Assumes no global cooperation
Hidden cost functions
Vickrey Auction
Sealed bid
Highest bid wins, but pays second highest bid
Encourages bidders to bid true value of item
Reverse Vickrey Auction
Reverse - sellers compete to offer lowest bid
Sealed bid
Lowest bid wins, but is paid second lowest bid
Encourages bidders to provide accurate cost estimate
Distributed Reverse Vickrey Auction
Every round the agents submit bids to customers
Of the customer responses, only the easiest to satisfy is accepted
Rounds continue until every customer assigned
Each agent uses another routing algorithm on their list of customers
DRVA Results
Decently close to best known solutions
Choice of lower level routing algorithm is important
Conclusions
DRVA and PC aren't really comparable in performance
Distributed approaches aren't as good as centralized ones


{% extends "Default/default.html" %} {% block content %}
On this page you can select a variety of different custom projects or documents created or imported by you. For more information visit the Custom Content Tutorial page.
| Uploaded Files |
|---|
| Custom Webapp Pages |
|---|
| Custom Projects |
|---|


Hi there!
My name is Madhav.
Or more formally Madhav Sankar Krishnakumar.
I am a Software Developer with 5+ years of experience in Full-Stack development who loves coding, solving problems and designing software. I am currently working as a Software Engineer at Microsoft Security and Compliance team.
Personally, I'm a staunch proponent of the Growth Mindset and strongly believe that technical skills coupled with perseverance can enable us to solve any complex problem.
Hence, I always look to improve myself and these are few things that I'm currently investing my time on.
Places I've worked/interned at:
You can find details
here.
What I do
Development
Programming Languages: C/C++, C#, Python
Web Technologies: JavaScript, Typescript, SQL, CSS, HTML
Other interests: ML, Deep Learning, NLP, Quantum Computing
Online Courses
I learning new topics. I have completed Coursera courses in ML, Deep Learning Specialization and Game Theory.
I'm currently learning about Quantum Computing and looking forward to adding more interesting topics here.
The World
Besides coding, I'm an ardent sports lover. I follow a number of sports including cricket, football, F1 racing and tennis and am one of those rare supporter of both Manchester United and FC Barcelona. You can always count me in for any of these sports conversations.
Work Experience
Software Development Engineer, Microsoft
As part of the
Advanced EDiscovery team of
M365 Security and Compliance, led the E2E delivery of the LENS (Legal Enforcement and National Security) solution used by
Microsoft CELA for legal enforcement data collection.
Designed a Azure Cloud Services based
File Connector to import large items from third-party data sources into Microsoft 365 so that compliance solutions can be applied on them.
Software Engineer Intern, Microsoft
As part of the
SharePoint Desktop application team, successfully brought down the page load latency by six times and the application boot time by a staggering 42 times with the help of caching techniques and improvements in the Auth flow.
Skills
Coding and Technical Skills
Problem-Solving
Full Stack Development
Teamwork and Collaboration
Cloud Computing
Machine Learning
Projects
One World Family Application
Developed an android application with a Django backend that helps to bring volunteers and NGOs together, as part of the Microsoft Hackathon.
ViewPal
Prototyped a live video captioning model called ViewPal that extracts information from live video and converts it into a stream of meaningful sentences using PyTorch.
Aids the visually challenged by providing a live relay of events around them.
Check out some sample
captions.
Deterministic Dispersion Algorithm
Solved the problem of dispersion of 'n' Mobile Robots on an 'n' node ring in presence of two types of dynamism in the underlying graph: (i) vertex permutation and (ii) 1-interval connectivity.
[
Publication].
Financial Information Extraction
Developed a Financial NER with CRFs that achieved an accuracy of 92% in identifying financial key-phrases.
Upgraded existing question-answer models to incorporate information from Financial NER.
[
Publication].
Check out our
repository.


Thanks for your interest in OpenStack! This form lets you specify what you're interested in, and it will send you a custom-crafted email based on your response.


--- ---
SEMINAR.....
Event Title : "On the Geomatry of Varieties of General type"
Speaker : Prof. B. P. Purnaprajna
Affiliation : University of Kansas
Subject Area : Mathematics
Date : May 31, 2005
Time : 4.00 pm
Venue : Lecture Hall I, Depat of Mathematics
Abstract : The canonical map of a curve ) that is the map induced by the canonical line bundle) of genus g > 2 is well studied : either it gives an embedding or is 2:1 on to a rational normal curve. The higher dimensional case is much more subtle due to the existence of higher degree covers among other things. In this talk we show how the geometry of canonical covers ( that is the covers induced by the canonical map) is intimately conected to various aspects, both kahler geometric as well as algebraic geometric aspects, of a variety of general type.


A component is a directive that has no template. They are often small directives that perform a simple single task.


Complete jTable reference documentation. Includes all methods, events, options and more.
A quick start guide for jTable. Includes ASP.NET and PHP examples.
A list of changes and updates on all jTable versions.
List of features to implement in next versions of jTable. You can comment on those features.
Advertisement: Professional startup template for ASP.NET MVC & AngularJs by creator of jTable!
Based on metronic theme, includes pre-built pages like login, register, tenant, role, user, permission and setting management. Learn more...


| PostgreSQL 9.5.19 Documentation | |||
|---|---|---|---|
| Prev | Up | Appendix E. Release Notes | Next |
Release date: 2018-02-08
This release contains a variety of fixes from 9.5.10. For information about new features in the 9.5 major release, see Section E.20.
A dump/restore is not required for those running 9.5.X.
However, if you are upgrading from a version earlier than 9.5.10, see Section E.10.
Ensure that all temporary files made by pg_upgrade are non-world-readable (Tom Lane, Noah Misch)
pg_upgrade normally restricts its temporary files to be readable and writable only by the calling user. But the temporary file containing pg_dumpall -g output would be group- or world-readable, or even writable, if the user's umask setting allows. In typical usage on multi-user machines, the umask and/or the working directory's permissions would be tight enough to prevent problems; but there may be people using pg_upgrade in scenarios where this oversight would permit disclosure of database passwords to unfriendly eyes. (CVE-2018-1053)
Fix vacuuming of tuples that were updated while key-share locked (Andres Freund, Álvaro Herrera)
In some cases VACUUM would fail to remove such tuples even though they are now dead, leading to assorted data corruption scenarios.
Fix inadequate buffer locking in some LSN fetches (Jacob Champion, Asim Praveen, Ashwin Agrawal)
These errors could result in misbehavior under concurrent load. The potential consequences have not been characterized fully.
Fix incorrect query results from cases involving flattening of subqueries whose outputs are used in GROUPING SETS (Heikki Linnakangas)
Avoid unnecessary failure in a query on an inheritance tree that occurs concurrently with some child table being removed from the tree by ALTER TABLE NO INHERIT (Tom Lane)
Fix spurious deadlock failures when multiple sessions are running CREATE INDEX CONCURRENTLY (Jeff Janes)
Fix failures when an inheritance tree contains foreign child tables (Etsuro Fujita)
A mix of regular and foreign tables in an inheritance tree resulted in creation of incorrect plans for UPDATE and DELETE queries. This led to visible failures in some cases, notably when there are row-level triggers on a foreign child table.
 Normally these files are cleaned up after the transaction's commit or abort record arrives; but if no such record is ever seen, the removal code misbehaved.
Fix walsender timeout failure and failure to respond to interrupts when processing a large transaction (Petr Jelinek)
Fix has_sequence_privilege()
to
support WITH GRANT OPTION tests,
as other privilege-testing functions do (Joe Conway)
In databases using UTF8 encoding, ignore any XML declaration that asserts a different encoding (Pavel Stehule, Noah Misch)
We always store XML strings in the database encoding, so allowing
libxml to act on a declaration of another encoding gave wrong results.
In encodings other than UTF8, we don't promise to support non-ASCII
XML data anyway, so retain the previous behavior for bug compatibility.
This change affects only xpath()
and related
functions; other XML code paths already acted this way.
Provide for forward compatibility with future minor protocol versions (Robert Haas, Badrul Chowdhury)
Up to now, PostgreSQL servers simply rejected requests to use protocol versions newer than 3.0, so that there was no functional difference between the major and minor parts of the protocol version number. Allow clients to request versions 3.x without failing, sending back a message showing that the server only understands 3.0. This makes no difference at the moment, but back-patching this change should allow speedier introduction of future minor protocol upgrades.
Cope with failure to start a parallel worker process (Amit Kapila, Robert Haas)
Parallel query previously tended to hang indefinitely if a worker could not be started, as the result of fork() failure or other low-probability problems.
Avoid unsafe alignment assumptions when working with __int128 (Tom Lane)
Typically, compilers assume that __int128 variables are aligned on 16-byte boundaries, but our memory allocation infrastructure isn't prepared to guarantee that, and increasing the setting of MAXALIGN seems infeasible for multiple reasons. Adjust the code to allow use of __int128 only when we can tell the compiler to assume lesser alignment. The only known symptom of this problem so far is crashes in some parallel aggregation queries.
Prevent stack-overflow crashes when planning extremely deeply nested set operations (UNION/INTERSECT/EXCEPT) (Tom Lane)
Fix null-pointer crashes for some types of LDAP URLs appearing in pg_hba.conf (Thomas Munro)
Fix sample INSTR()
functions in the PL/pgSQL
documentation (Yugo Nagata, Tom Lane)
These functions are stated to be Oracle® compatible, but they weren't exactly. In particular, there was a discrepancy in the interpretation of a negative third parameter: Oracle thinks that a negative value indicates the last place where the target substring can begin, whereas our functions took it as the last place where the target can end. Also, Oracle throws an error for a zero or negative fourth parameter, whereas our functions returned zero.
The sample code has been adjusted to match Oracle's behavior more precisely. Users who have copied this code into their applications may wish to update their copies.
Fix pg_dump to make ACL (permissions), comment, and security label entries reliably identifiable in archive output formats (Tom Lane)
The "tag" portion of an ACL archive entry was usually just the name of the associated object. Make it start with the object type instead, bringing ACLs into line with the convention already used for comment and security label archive entries. Also, fix the comment and security label entries for the whole database, if present, to make their tags start with DATABASE so that they also follow this convention. This prevents false matches in code that tries to identify large-object-related entries by seeing if the tag starts with LARGE OBJECT. That could have resulted in misclassifying entries as data rather than schema, with undesirable results in a schema-only or data-only dump.
Note that this change has user-visible results in the output of pg_restore --list.
Rename pg_rewind's
copy_file_range
function to avoid conflict
with new Linux system call of that name (Andres Freund)
This change prevents build failures with newer glibc versions.
In ecpg, detect indicator arrays that do not have the correct length and report an error (David Rader)
Avoid triggering a libc assertion
in contrib/hstore, due to use
of memcpy()
with equal source and destination
pointers (Tomas Vondra)
Provide modern examples of how to auto-start Postgres on macOS (Tom Lane)
The scripts in contrib/start-scripts/osx use infrastructure that's been deprecated for over a decade, and which no longer works at all in macOS releases of the last couple of years. Add a new subdirectory contrib/start-scripts/macos containing scripts that use the newer launchd infrastructure.
Fix incorrect selection of configuration-specific libraries for OpenSSL on Windows (Andrew Dunstan)
Support linking to MinGW-built versions of libperl (Noah Misch)
This allows building PL/Perl with some common Perl distributions for Windows.
Fix MSVC build to test whether 32-bit libperl needs -D_USE_32BIT_TIME_T (Noah Misch)
Available Perl distributions are inconsistent about what they expect, and lack any reliable means of reporting it, so resort to a build-time test on what the library being used actually does.
On Windows, install the crash dump handler earlier in postmaster startup (Takayuki Tsunakawa)
This may allow collection of a core dump for some early-startup failures that did not produce a dump before.
On Windows, avoid encoding-conversion-related crashes when emitting messages very early in postmaster startup (Takayuki Tsunakawa)
Use our existing Motorola 68K spinlock code on OpenBSD as well as NetBSD (David Carlier)
Add support for spinlocks on Motorola 88K (David Carlier)
Update time zone data files to tzdata release 2018c for DST law changes in Brazil, Sao Tome and Principe, plus historical corrections for Bolivia, Japan, and South Sudan. The US/Pacific-New zone has been removed (it was only an alias for America/Los_Angeles anyway).


We have two official shops on Amazon and Aliexpress to deliver our products to you. Our official shops will follow the activation statement on this page.
Windows Activation Statement Look for "activated" or "official lisenced" listings to buy devices with Windows activation.On Amazon, make sure to look for the seller "MeeGOpad" in addition to "activated" or "official lisenced" to ensure activation.Usually products with official lisence will cost 20 USD more.If you bought a product form a third party or form a listing that did not say its activated, we will not offer Windows activation keys, you will have to deal with the problem with your reseller.