Starting with version 1.5, Postico has a built-in crash reporter. Whenever Postico crashes, an anonymous crash report is sent to crashes.eggerapps.at.
We use the popular PLCrashReporter library to generate crash reports, with one modification: Postico anonymizes paths in the crash report to avoid leaking your username. Therefore, our crash reports contain no personal data.
For privacy reasons, we do not use a third party service for crash reporting. Crash reports are sent directly to a server we own. We do not log IP addresses.
Automatic Crash Reporting can be disabled in Postico preferences. If you disable automatic crash reporting, Postico will inform you of a new crash report next time you start it. You can then review the crash report file on disk, and maybe send it to us via email. (We can only fix bugs that we know about!)
Crash reports from Postico are also stored locally, which is useful if automatic crash reporting fails, or if you want to review what data Postico transmits. You can find them in ~/Library/Containers/at.eggerapps.Postico/Data/Library/Application Support/Postico/Crash Reports


This is your headline. Shiny, shiny headline.
This is the main content/article, the perfect place for all the things you want to put on the page.
One
Eleven
Two
Ten
Three
Nine
Four
Eight
Five
Seven
Six
Six
Seven
Five
Eight
Four
Nine
Three
Ten
Two
Eleven
One


Identifiers are used to give names to several classes of language objects and refer to these objects by name later:
These eleven name spaces are distinguished both by the context and by the capitalization of the identifier: whether the first letter of the identifier is in lowercase (written lowercase-ident below) or in uppercase (written capitalized-ident). Underscore is considered a lowercase letter for this purpose.
|
See also the following language extension: extended indexing operators.
As shown above, prefix and infix symbols as well as some keywords can be used as value names, provided they are written between parentheses. The capitalization rules are summarized in the table below.
| Name space | Case of first letter |
| Values | lowercase |
| Constructors | uppercase |
| Labels | lowercase |
| Polymorphic variant tags | uppercase |
| Exceptions | uppercase |
| Type constructors | lowercase |
| Record fields | lowercase |
| Classes | lowercase |
| Instance variables | lowercase |
| Methods | lowercase |
| Modules | uppercase |
| Module types | any |
Note on polymorphic variant tags: the current implementation accepts lowercase variant tags in addition to capitalized variant tags, but we suggest you avoid lowercase variant tags for portability and compatibility with future OCaml versions.
|
A named object can be referred to either by its name (following the usual static scoping rules for names) or by an access path prefix . name, where prefix designates a module and name is the name of an object defined in that module. The first component of the path, prefix, is either a simple module name or an access path name1 . name2 …, in case the defining module is itself nested inside other modules. For referring to type constructors, module types, or class types, the prefix can also contain simple functor applications (as in the syntactic class extended-module-path above) in case the defining module is the result of a functor application.
Label names, tag names, method names and instance variable names need not be qualified: the former three are global labels, while the latter are local to a class.


Show axis Data range from: to: Reversed Axis stroke width: Scale mark width: Scale font size: Show scales Unit: Unit font size: Show Unit Label: Label font size: Show label Axis position: bottom top
Show axis Data range from: to: Reversed Axis stroke width: Scale mark width: Scale font size: Show scales Unit: Unit font size: Show Unit Label: Label font size: Show label Axis position: left right


information
resources available for your success
lab schedule
print shop
equipment
tech specs
ftp access
resources
blackboard
Lab Schedules
Labs available for student use:
| Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday | ||
| 8:30 - 12:30 |
Raven 212 |
Raven 107 |
Raven 212 |
Raven 107 |
Raven 212 |
Raven 107 Raven 212 |
Raven 107 Raven 212 |
9:00 - 12:30 |
| 1:00 - 5:00 |
Raven 107 |
Raven 107 |
Raven 107 |
Raven 212 |
Raven 107 Raven 212 |
Raven 107 Raven 212 |
12:30 - 5:00 | |
| 5:00 - 9:30 |
Raven 107 Raven 212 |
Raven 107 Raven 212 |
Raven 107 Raven 212 |
Raven 107 Raven 212 |
Fine Arts Print Shop
For Fine Art Digital Inkjet Printing, please contact the Print Shop Tech, Gordon Ross.
Raven 109
<EMAIL_ADDRESS>250.334.5000 ext. 4255
Print services
- Roll and sheet inkjet printing. Printed on archival papers, backlit media and canvas.
- 4-colour separations and black & white film stencils. Printed on transparent film.
- 4-colour laser printing.
File types accepted (preferred):
- Tiff (flattened-no layers) using LZW (lossless) compression.
- PSD (flattened-no layers)
Submission of print projects/files
There are two ways to submit your files for printing:
- Files can be delivered directly to the Print Shop on a USB stick
- Files can be digitally transferred to the Print Shop by accessing the Print Shot Drop Box located on the Fine Arts Server.
Download the Print Forms
Colour Laser Prints
Photo Quality Sheets (mid format)
Photo Quality Rolls (large format)
Black on Transparent Film
Four Colour Separation on Film
Printing and payment
You are required to come to the Print Shop and review your file with Gordon before filling out the Print Shop order forms. This is to ensure that your file is ready for printing and to go over paper options and pricing.
After reviewing the print order, the Print Shop form is filled out and taken to the Book Store in Tyee for payment. Your Print Shop form will be stamped “Paid”.
Stamped forms are returned to the Print Shop as proof of payment and your print job enters the print queue of jobs to be printed.
Print requests will not enter the print queue until proof of payment has been received by the Print Shop Technician.
Production time
Under normal workloads, most files are printed within 2 days of payment. However, there are times when volume is high such as midterm and during final critiques. It is strongly recommended that students anticipate project due dates and submit work as early as possible. During high volume times you will need to be prepared to give the Print Shop at least one week lead time for printing. Please check in with the Print Tech for print turn-around times.
Equipment
Equipment Loan Program - Fine Arts Department
Interactive Media students have access to the Fine Arts Equipment Loan Program. Video cameras, digital SLR's, projectors, microphones, audio gear and more can be signed out on a 24-48hr loan from the Digital Tech Office / Print Shop in Raven Hall.
Stop by or contact Gordon Ross at<EMAIL_ADDRESS>for more information.
Download the Borrower's Policy Agreement
Tech Specs for IMG Programs
IMPORTANT: As students you qualify for a number of discounts, both for software and hardware. Do not pay anything without researching educational pricing (which requires your student ID – see links below).
What computer should I buy?
While you can adapt most computers and operating systems to work for your IMG program, a Mac laptop (or desktop) is recommended. Both Mac and Windows will be used in the programs and as Mac has a dual booting option (which allows MS Windows to run on the same machine), we recommend students buy a Mac. If a student decides to purchase a Windows PC after all, that will work too. Research your choices well. Remember, you can run Windows software on a Mac.
Does the operating system matter?
It is important that your operating system and computer are relatively new. If purchasing a Mac you will have Mac OS X, then you can have a free copy of Window OS under the DreamSpark agreement. In the program you will also learn and use other Windows and open source software. The good news is, as a registered IMG student, most of these programs can be freely downloaded from the DreamSpark site or from the web.
How much ram/ storage/ size of screen - is there a minimum?
- 8Gb of RAM, 500Gb of storage on the hard drive is the minimum requirement.
- Eyes get tired when squinting at a tiny screen for any length of time. Think of your computer as an investment in your future.
What software is used in the program?
- Adobe Creative Cloud (CC) – see Adobe link for educational pricing
- You will also learn and use other Windows and open source software in the program. The good news is, for registered IMG students, Windows Operating Systems and most of other software programs (except for Adobe CC) can be downloaded for free from DreamSpark site or from the web.
Extras
- An external hard drive for backing up files would be useful, though not required (if you have a Mac, you might consider an AirPort Time Capsule).
- Memory stick (Flash Drive): 8 – 16 GB capacity
- For Mobile Development Certificate and 2nd year Web Development diploma students: an up-to-date Android device & Apple iOS device would be desirable, though not required.
Links:
Apple Educational Pricing
Adobe Educational Pricing
Microsoft Catalogue
Latest Reviews for Mac & PC Desktops
Consumer Report Computer Buying Guide
Mac Airport Time Capsule
FTP Access
FTP at NIC Interactive Media
FTP is short for File Transfer Protocol. A protocol is a set of rules that networked computers use to talk to one another. And FTP is the language that computers on a TCP/IP network (such as the internet) use to transfer files to and from each other.
You use an FTP client to log into an FTP server, navigate the server’s folder structure, and exchange files. That’s pretty much all FTP clients do — unlike Web browsers, FTP clients are tailor-made for such duties. The latest full-featured web editors like Dreamweaver have FTP fuctions built-in. As far as standalone FTP clients go, there are literally hundreds out there. Some are free, some are more expensive than a night on the town.
We recommend using Cyberduck or Fetch. Cyberduck can be used for PCs and Macs, and Fetch which is only good for Macs. Fetch generally costs money, but our NIC students can have it for free.
Download Cyberduck & Fetch Guidelines for FTP at IMG:
Web Hosting
Students enrolled in programming courses complete their coursework using the AWS web-hosting platform.
Each student is provided with a domain name and has access to unlimited bandwidth, databases and subdomains. Accounts will be set-up in class at the beginning of the semester.
Microsoft Imagine
Microsoft Imagine connects students with the tools, resources and experiences they need to elevate their skills for today's working world. Whether it's building a game, designing an app or launching a project, Microsoft Imagine helps students develop their ideas and boldly bring them to life.
Sign in or create an account to download these software & development tools at no cost.
Microsoft ImagineMicrosoft Office
It's not a trial! Students and teachers are eligible for Office 365 for Education, which includes Word, Excel, PowerPoint, OneNote, and now Microsoft Teams, plus additional classroom tools. All you need to get started is a valid school email address.
Get started.
Microsoft Office 365


---
layout: null
section-type: talks
title: Talks
---
Talks
---
Bitcoin / Blockchain
Partial list of public talks:
Storing Data, Inscriptions and Bitcoin Resiliency ([slides](/assets/Storing_Data_Inscriptions_and_Bitcoin_Resiliency.pdf))
Surviving a Phishing Attack in Cosmos-based chains ([slides](/assets/Surviving_a_Phishing_Attack_in_Cosmos.pdf))
Proof-of-Work vs Proof-of-Stake ([slides](/assets/PoW-vs-PoS.pdf))
An Overview of Schnorr/Taproot ([slides](/assets/An_overview_of_Schnorr_Taproot.pdf) / video)
Revoking Documents on a Public Blockchain (video)
Bitcoin Scripting ([slides](/assets/IntroductionToBitcoinScripting.pdf))
Basic Cryptography - Keys and Addresses in Bitcoin ([slides](/assets/BitcoinKeysAndAddresses.pdf))
e-Puzzles and Bitcoin ([slides](/assets/e-PuzzlesAndBitcoin.pdf))
Introduction to Blockchain Technology ([slides](/assets/ACT_CareerDay-Introduction_to_Blockchain_Technology.pdf))
What is Bitcoin and how it works ([slides](/assets/Bitcoin_Aristotle_University_Lecture.pdf) / Aristotle University, video in greek)
Introduction to DASH and Masternodes ([slides](/assets/Introduction_to_DASH.pdf))
Introduction to Bitcoin for new users ([slides](/assets/Introduction_to_Bitcoin_for_new_users.pdf) / [International Hellenic University](http://www.ihu.edu.gr/index.php/news-events/item/1057-demystifying-bitcoin-blockchain-game-changing-applications-in-ict,-economy,-government,-law.html))
The Ether, The DAO and the Hardfork ([slides](/assets/The_DAO_Event_9th.pdf) / video in greek)
How to accept bitcoins: for merchants ([slides](/assets/How_to_accept_bitcoins_7th.pdf))
Introduction to Mining ([slides](/assets/Introduction_to_mining_6th.pdf))
Introduction to Bitcoin and Blockchain Technology ([slides](/assets/Introduction_to_Bitcoin_and_Blockchain_Technology_City_College_13-05-2016.pdf) / [City College, University of Sheffield](http://www.city.academic.gr/frontend/index.php?chlang=GR_EN))
Introduction to new users ([slides](/assets/Introduction_to_new_users_5th.pdf))
Bitcoin and its Applications ([slides](/assets/Bitcoin_and_its_Applications_-_Innovathens_12-02-16.pdf) / video in greek)
Past Research
Many technical talks in companies on software development, distributed computing even bioinformatics. Some recent presentatons:
Pipelines in Bioinformatics ([slides](/assets/pipelinesDiscussion.pdf)) -
Workflows Accessibility ([slides](/assets/workflowsAccessibility.pdf)) -
Galaxy and Taverna ([slides](/assets/GalaxyTaverna.pdf)) -
Workflows Interoperability ([slides](/assets/GalaxyTavernaBOSC2011.pdf)) -
Opening New Gateways ([slides](/assets/OpeningNewGatewaysIWSG2012.pdf)) -
OGSA-DAI: Data Access and Integration ([slides](/assets/ogsadai.pdf))
Many research talks in conferences and workshops (list of [publications](/assets/publications.pdf))
---


public interface ResourceBundleHandler
| Modifier and Type | Method and Description |
|---|---|
String |
getBundleTextDirPath()
Returns the path of the directory containing the generated text bundles
|
Properties |
getJawrBundleMapping()
Returns the jawr bundle mapping from the working directory.
|
InputStream |
getResourceBundleAsStream(String bundleName)
Retrieves the input stream of a resource bundle.
|
ReadableByteChannel |
getResourceBundleChannel(String bundleName)
Retrieves ReadableByteChannel on a resource bundle.
|
Reader |
getResourceBundleReader(String bundleName)
Retrieves a reader for a bundle from the store.
|
String |
getResourceType()
Returns the resource type managed by the resource handler
|
boolean |
isExistingMappingFile()
Checks if the mapping file exists in the working directory
|
void |
storeBundle(String bundleName,
JoinableResourceBundleContent bundleResourcesContent)
Stores a collected group of resources with the specified name.
|
void |
storeJawrBundleMapping(Properties bundleMapping)
Store the bundle mapping.
|
String getResourceType()
void storeBundle(String bundleName, JoinableResourceBundleContent bundleResourcesContent)
bundleName
- the bundle name.bundleResources
- the bundle resourcesReader getResourceBundleReader(String bundleName) throws ResourceNotFoundException
bundleName
- the bundle name.ResourceNotFoundException
ReadableByteChannel getResourceBundleChannel(String bundleName) throws ResourceNotFoundException
bundleName
- the bundle nameResourceNotFoundException
InputStream getResourceBundleAsStream(String bundleName) throws ResourceNotFoundException
bundleName
- the bundle nameResourceNotFoundException
boolean isExistingMappingFile()
Properties getJawrBundleMapping()
void storeJawrBundleMapping(Properties bundleMapping)
bundleMapping
- the bundle mapping to storeString getBundleTextDirPath()
Copyright © 2014. All rights reserved.


Executes a system groovy script similarly to hudson_url/script. The script is always executed on master.
You need to be Administrator to set the groovy script to be executed. In other case, changes will be ignored.


Copyright Bruce Wilcox<EMAIL_ADDRESS>brilligunderstanding.com Revision 4/30/2016 cs6.4
ChatScript is fine for a chatbot that does not depend on the outer world. But if you need to control an avatar or grab information from sensors or the Internet, you need a way to communicate externally from ChatScript. There are three mechanisms: embedding ChatScript inside another main program which will do the machine-specific actions, calling programs on the OS from ChatScript where ChatScript remains in control, and getting services via the Interet from ChatScript.
ChatScript can actually run 2 distinct message channels at the same time, one with the user and one with the application. Communications with the application are called out-of-band (oob) communication and consists of placing such data inside of [ ] before the user’s input or output.
[category: legal source: ios] I have a problem. -- input oob + user
[video: thinking audio: humming] What kind of problem do you have? -- output oob + user
The format of things inside the leading [] in those messages is entirely up to you. The above examples show tagged pairs. They could equally be massive JSON data blobs.
The oob messaging conventions are directly supported by ChatScript. It will not apply NL processing (spell-correct, pos-tagging, parsing) to data within inbound oob. Additionally, normally inbound data is limited to 254 tokens per sentence (a volley may have any number of sentences). But if your oob data is a JSON structure, that is able to bypass the limitation (returning just a single token representing all the JSON).
While not required, many applications that embed ChatScript are well served by implementing the standard out-of-band (oob) communication mechanisms that CS supports on its webpage interface. The standard UI ones are:
[callback=1000]
[loopback=3000]
[alarm=10000]
Each message specifies a time in milliseconds. Callback says, if the user doesn’t start typing within the time limit, automatically call ChatScript back, passing in as input:
[callback]
This request only applies a single volley and gives the chatbot control to keep going if the user doesn’t start to reply. If the user starts a reply, the timer is cancelled and callback will not happen.
Loopback does the same thing, but automatically for every volley. So whenever CS sends output, a timer begins and if the user does not start replying within the time, the application calls CS with the message
[loopback]
If the user does start typing, it will not cause a loopback on the current output, but the next output starts the timer again.
Alarm says let the specified time elapse and then as soon as the application has control, call cs with the input
[alarm]
It is a one-shot alarm. Receiving a time of 0 cancels the corresponding timer, e.g., [loopback=0] or [alarm=0] or [callback=0]
Implementing these features require simple scripting in your bot. And then client-side creation of timers based on seeing the messages in outbound oob (eg in JavaScript webpage).
ChatScript has several routines for calling out synchronously to the operating system that are fully documented in the system functions manual. Here is just a brief survey of them.
^system
( any number
of arguments )the arguments, separated by spaces, are passed as a text string to the operating system for execution as a command.
^popen
( commandstring
'function
)The command string is a string to pass the os shell to execute. That will return output strings that will be sent to the declared function, which must be an output macro or system function name. The function can do whatever it wants.
^jsonopen
( kind
url postdata header )this function queries a website and returns a JSON datastructure as facts.
^jsontree
( name )It prints out a tree of elements, one per line, where depth is represented as more deeply indented.
^jsonparse
( string )this parses into facts exactly as ^JSONOPEN would do, just not retrieving the string from the web.
^jsonpath
( string id )retrieves a datum from json-mapped facts, given the path to walk to get it.
^tcpopen
( kind url
data 'function
)analogous in spirit to popen but you are requesting data from the web and processing the returned output via your function.
From must be a fact set to export. Name is the file to write them to.
^import
( name set
erase transient )Name is the file to read from. Set is where to put the read facts.
CS is not a websocket server. It can, however, connect to some existing websocket endpoint and be a client for it.
^websocketinit(url) - connect to the given url
^websocketclose() - disconnect from opened socket
^websocketsend(message) - send message to opened socket
^websocketreceive(timeout) - listen for response back. timeout value of -1 means block until message received. 0 means retrieve immediately if something is there, otherwise return with nothing. Other values are milliseconds will be willing to wait for response.
If you use the param websocket=url the system on startup will become a websocket client and use that as its input/output loop channel. If you also supply parameter websocketmessage=“send this first” then that message will be sent when the socket is opened.
By default the bot name used for websocket chatting is ‘websocketbot’. The param websocketbot=xxx will change that to xxx.
Normally ChatScript tracks user data in a topic file in USERS. If you want to maintain your own state and not use CS tracking, then set the startup command line paramater to
cache=0x0
Most users use the executable versions of ChatScript for LINUX or Windows that are provided with a ChatScript release. Sometimes users have to build their own executable for the Mac. These are all building a complete ChatScript engine that is the main program.
Why would you want to embed ChatScript within another program - meaning that ChatScript is NOT the main program but some other code you write is? Typically it’s to build a local application like a robot or a mobile chatting app.
In this context, the main program is controlling the app, and invoking ChatScript for conversation or control guidance. You add ChatScripts files to your project and compile it under a C++ compiler.
ChatScript is C++; it allows variables to be declared not at start, etc. So it won’t compile under a pure C compiler. If you are trying to something more esotheric (dynamic link library or invoking from some other language) you need to know how to compile and call C++ code from whatever you are doing.
The extra considerations in a stand-alone-based app are three-fold: memory size, logging, and upgrading.
Things like iOS devices may restrict your app to somewhere in the 20MB size, and if you go beyond that you risk having your app killed by the OS at any moment. In that context, you cannot afford a full ChatScript dictionary and need a “miniaturized” one that occupies maybe 1/3 the normal space.
A large ChatScript memory footprint including the script for the bot is around 15-18MB. The miniaturized dictionary is not something you can easily build yourself and must be created by me (normally for a fee of $1K for any number of recreations of a mini-dictionary when you give me the source to build it from).
Log files are generated locally in the device and must somehow migrate to a server if you want analytics. Typically this is done when the user launches the app and if an internet connection exists and it has been long enough since the last upload, the log files are uploaded to a server and cleared from the client.
Upgrade issues involve the desire to fix or augment ChatScript content without requiring the user download a new edition of the app. That is, on startup the app would check with the server and if specific files (eg the entire TOPIC folder) have changed, it downloads those changed files. It either then initializes ChatScript (the changes take place immediately) or if it has already initialized ChatScript the changes will take place starting with the next user startup of the app.
First, you will need to modify common.h and compile the system. You need to add all the CS .cpp files to your build list. Or if you are running Windows, you can just use the ChatScriptDLL in the BINARIES folder.
Otherwise, find the // #define NOMAIN 1 and uncomment it. This will allow you to compile your program as the main program and ChatScript merely as a collection of routines to accompany it. Since this is an embedded program, you can also disable a bunch of code you won’t need by uncommenting:
// #define DISCARDSERVER 1
// #define DISCARDCLIENT 1
// #define DISCARDSCRIPTCOMPILER 1
// #define DISCARDTESTING 1 - if your script will execute test functions then you must keep
To embed CS within a client, you need to perform three calls. To call these routines, your code will need a predeclaration of these routines. The first is
InitSystem(int argc, char * argv[],char* unchangedPath, char* readablePath, char* writeablePath, USERFILESYSTEM* userfiles)
where you pass in various command line parameters to control things like logging or memory usage. Only the first two parameters are required, the remainder being optional and defaulted to NULL.
The three paths will normally be NULL, unless you are under iOS where
their devices access files from different areas. All paths refer to
being in the ChatScript directory, but different folders are stored
under different paths based on expected use. The unchangedPath would be
the read-only folders DICT/ and src/ and LIVEDATA, which never get
changed. The readablePath would be the folder TOPIC and VERIFY and
authorizedIP.txt
, where the app doesn’t change it but you
might download replacement data. The writeablepath would be for USERS
and TMP, which CS changes with every volley (if TMP exists).
ChatScript assumes its own directory is the current working directory when trying to access folders. If that is not true, you could pass the full path to the CS directory as the arguments for each of the path arguments. The userfiles parameter allows you to pass a structure of routines that take over for all file reads and writes, so you can replace CS’s access to files with your own mechanisms.
Normally for an embedded system you would not have a VERIFY folder and probably not a TMP folder unless you were supporting :retry. Nor would you have authorizedIP because you wouldn’t be using debugging commands.
The second call is the actual workhorse…
int PerformChat(char* user, char* usee, char* incoming,char* ip,char* output);
or
int PerformChatGivenTopic(char* user, char* usee, char* incoming,char* ip,char* output,char* topic);
PerformChat is told the user name, the bot name (usee), the incoming message, the ip address, and where to put the output. The user string is the user’s id. Since this is an embedded app, there will likely be only one user ever, so this can be hardcoded to anything you want. It will show up in the log file, and if you upload logs for later analysis, you will prefer this be unique in some way - a phone id or whatever.
IP is like the user string, a form of identification that appears in the log. It may be null or the null string, since the user id will probably be sufficient. The usee is the name of the chatbot to talk with. This usually can be defaulted to the null string if you only have one bot in the system. Incoming is the message from the user. The first time you start up a session, this should be a null string to inform the system a conversation is starting. Thereafter, you would just pass across the user input. Output is the buffer where ChatScript puts out the response.
The GivenTopic form can be given an extra binary topic to add to the system, for dynamic topic generation (see below). Ip can be null. Usee can be the empty string “” which means use default bot. Incoming can be null string “” which means conversation is being initiated. Output is the buffer to put output into. Return value is the volleycount of this volley.
PerformChatGivenTopic takes data in the form output by :topicdump
into TMP/tmp.txt
. That can be read in by :extratopic as a
test, which merely reads in all lines, removing the cr/lf and
concatenating the data together into one long text string. This is
passed thereafter into PerformChatGivenTopic. The data output by
:topicdump includes topic flags and keywords, and new topics brought in
can use these just like normal topics. For
void PerformChatGivenTopic(char* user, char* usee, char* in,char* ip,char* out,char* topic)
The topic you give is presumed to be a block of memory into which you have written:
The system adds this one topic into the topic system as though it were part of the system, which it is, but only for the duration of the call. This is useful if you want to synthesize a topic out of rules you have lying around. You get rules in proper format by using :topicdump topicname to generate rules one per line. You will then be responsible for concatenating some number of these rules int this memory block later. If a topic of this name already exists, the resident topic will be disabled during the call and restored at completion of the call.
And you can, as always, pass in and out variable values using out-of-band [] communication. Furthermore, the actual tag of the rule that matched is actually available to you at the end of the out buffer, just after the null terminated output.
The third call is when you want to release CS and shutdown…
void CloseSystem();
Depending on what your platform is, you may need to reduce memory. The full dictionary, for example, may take 25MB and facts for it another chunk. For mobile apps for a price, I can build a mini-dictionary which is about 1/3 the size. Contact me if you need one.
The parameters I’d pass into most applications that are memory short,
is to see what the used dict count is and make your dict=nn
parameter be 1000 more. Same for fact=nn
.
Text=nn
should probably be 20. You might reduce the size of
buffers from 80kb to 20kb if your bot doesn’t say long stuff. And the
bucket hash size should probably be around 10K.


Downloading the data...
An error occurs! We cannot download the data for some reason.
The targeted area is 100 km around {{center.name}} ({{center.lat}}, {{center.lon}}).
Source file:
https://gist.github.com/brianw/19896c50afa89ad4dec3
Within 100 km
-
{{person.distance | number : 0}} km
{{person.name}} [{{person.user_id}}]
Too far away
-
{{person.distance | number : 0}} km
{{person.name}} [{{person.user_id}}]


Grab is powerful python site scraping framework which allows to build both simple scripts and complex multithreaded website spiders.


Clicking a tile will activate it, as well as it's adjacent tiles. Activate all the tiles at once to win.


Cluster ID
Base class for implementations of the DBSCAN algorithm
Represents results calculated by DBSCAN algorithm.
Represents parameters of the DBSCAN algorithm
Implementation of the DBSCAN algorithm which is capable of parallel processing of the input data.
Represents one record in a dataset
Represents a dataset which needs to be clustered
Serves as a factory for objects which implement the DBSCAN algorithm and provides a convenience method for starting the algorithm
A driver program which runs DBSCAN clustering algorithm
Contains constants which designate cluster ID
Provides default values for parameters of the DBSCAN algorithm
Contains implementation of distributed DBSCAN algorithm as well as tools for exploratory analysis.


JOHN CARPENTER'S VAMPIRES A film review by Matt Williams
RATING: * * out of * * * *
Hot on the heels of Blade, we are treated to another vampire-slayer tale, this time from director John Carpenter. While not one of his best directoral efforts, there are enough scares in John Carpenter's Vampires to please the casual moviegoer.
The hero of John Carpenter's Vampires is Jack Crow (James Woods), a "slayer", raised by the Catholic church, who leads a team of mercenaries to find and destroy vampiric infestations throughout the world. His current stomping grounds are in New Mexico, which also happens to be the current home of one Valek (Thomas Ian Griffith), a master vampire who may be the very first one.
The only link Crow, and his chief sidekick Montoya (Daniel Baldwin), have to find Valek is a prostitute named Katrina (Sheryl Lee). Katrina was bitten by Valek, and has a telepathic link to her new master. The trouble is, in just a few days, Katrina will become a vampire herself.
So, Crow and Montoya, teaming with a novice Vatican scholar, Father Giovanni (Gregory Sierra), have little time to track down their most powerful foe ever. Meanwhile, Valek has plans of his own, both for Jack Crow, and his own personal quest for invulnerability.
  Die! Die!", but at least there's a sense of accomplishment.
Carpenter is able to whip up a few good scares and a couple suspenseful sequences (most of which involve entering sleeping vampire nests). But, most of the time, there's a sense of overkill. By the time the film's implausible climax rolls around, you've definitely had your fill of flashing teeth, wooden stakes, and vampires bursting into flames.
The characters in John Carpenter's Vampires are predictably shallow. Still, James Woods is cast as the right type as the tough talking, tough acting hero.  At least Sheryl Lee gets to show a little range, displaying the gamut of emotions from ecstasy to rage to terror and back again.
The plot of the film holds little mystery. (If you can't figure out all the crucial plot questions by the end of the first reel, you haven't seen many movies.) Still, it gets you from site A to site B with a minimum of fuss. And, since the strength of this movie is in its "hunting" scenes, the less between them, the better.
For sheer entertainment, Blade still holds a considerable edge over John Carpenter's Vampires. However, if you're just looking for a few good thrills, this one is certainly better than many recent horror films out there.
Copyright 1998 Matt Williams
- Matt Williams<EMAIL_ADDRESS>Reviewer for Cinematter: http://www.cinematter.com Home of over 650 reviews, and information on nearly 700 upcoming releases
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


JDZ
Twitter GitHub LinkedInStatic, Relative, Absolute, and Fixed Positioning in CSS
What does it all mean?
01/23/15
If you are new to HTML and CSS, then you might be trying to figure out how exactly to position elements. The position: attribute is essential for placing elements on the page. There are several positions: static, relative, absolute, and fixed. In this blog, I will attempt to go through each attribute and give examples of situations in which they will be useful.
Static is the default position of all HTML elements. It essentially leaves your element subject to the rest of your HTML code as it is. In this case, the order in which the div boxes appear makes them stack on top of eachother in the top left corner of the page.
Since static is the default, you will rarely want to use it unless the position for your element is changed by some circumstance. For example, maybe you've defined all of your divs in CSS as having another position already, but you want to keep one static.
Relative positioning allows for an element to move relative to where it would normally be. It also leaves the other elements intact as if it had not been removed from its normal position. In this example, we will move div2 right 100px. As you can see, the positions of the other blocks remain unchanged. This is useful if you like everything about the layout of your page but just want to move that one element.
Absolute positioning on the other hand, does not leave the order of the elements intact when it is removed. If we change div2 back to it's original position, and then change div1's position to absolute and move it out 100px, then we will see that instead of leaving a blank space, div1's original spot is filled by div2. Another aspect of the absolute position is that instead of being moved in relation to its original position on the screen, it is moved in relation to its containing block (in this case, the html document itself). This is useful if you want to completely move an element and remove its effects on surrounding elements.
Fixed positioning, like absolute, also leaves no blank space behind it. However, unlike absolute, it moves in relation to the browser screen. This means that it will stay in the same place as you scroll left, right, up, or down. It's often used for side bars, and navigational bars and things like that. So, let's see what happens when we take a fixed div2 and stick it to the top of the browser window.
Here is div2 at the very top of the browser.
Here we scroll down and...
Suprise! It stays with us while we scroll through the page.
Hopefully this was somewhat helpful as an introduction to positioning in CSS. Remember: take your time, don't give up, and have fun!


Vernon Lee Evans was sentenced in May 1984 in Baltimore County for the contract killings of two witnesses scheduled to testify against Anthony Grandison in a federal drug trial. Grandison, who is also on Maryland’s death row, hired Evans and paid him $9,000. Both men were convicted for the shooting deaths of David S. Piechowicz and Susan Kennedy at a Pikesville motel. Evans used a MAC-11 pistol.
Anthony Grandison was sentenced in 1984 in Baltimore County for ordering the contract killings targeting witnesses who were going to testify in a 1983 federal narcotics case in which he was involved. Vernon Lee Evans, also on Maryland's death row, was the other man involved in the deaths of David S. Piechowicz and his sister-in-law Susan Kennedy, who was mistaken for his wife, Cheryl Piechowicz.
John Booth-El has been on death row for almost 30 years for robbing and fatally stabbing an elderly couple, Irvin and Rose Bronstein, in 1983. Booth-El's first death sentence was overturned by the U.S. Supreme Court in 1987 in a ruling that said testimony by the victims’ families had the potential to inflame jurors. The Maryland Court of Appeals struck down the second death sentence in 1989 because the judge refused to allow testimony related to parole eligibility. Booth-El was resentenced to death in 1990 and has been on death row since.
Heath William Burch was sentenced in 1996 in Prince George's County after a failed late-night robbery ended with Burch killing a neighbor, Robert F. Davis, and his wife, Cleo Davis, in Capitol Heights in March 1995. Burch entered the home unarmed but used a pair of scissors during the assault. He left with a pickup truck, four guns and $105.
Jody Lee Miles was sentenced in 1998 in Queen Anne's County, after he fatally shot Edward J. Atkinson in the woods in Mardela Springs while collecting a debt for a loan shark. Miles confessed to the murder and pleaded not guilty in Queen Anne’s County Circuit Court. His lawyer claimed the evidence, which included his admission, was invalid because it was obtained via an illegal wiretap. However, the Queen Anne’s court decided to throw everything out except the confession.


Spend an entire night at ClimbOn!
More Info »
This is in Iowa not to far from home.
Devils Lake and Pictured rocks?


Trade Requests Sent
Home
New Trade
View Trade Offers
View Unconfirmed Trades
{% for trade in pokes %}
Pokemon to be sent: {{trade.sent}}
Pokemon to be received : {{trade.rec}}
Trainer : {{trade.node}}
Status : {{trade.status}}
{% endfor %}


Overview
In this post I will discuss about
- Polymorphism
- Interface
- Abstract Class
Polymorphism
Polymorphism =Poly + morphism = Multiple + forms.
Polymorphism can be achieved by method overriding and also by virtual method
→ What is method overriding ?
Method overriding means changing the implementation of an Inherited method.
If a declare a method as virtual in the base class, we can override it in a derived class.
public class Shape
{
public virtual Draw()
{
// Default implementation for all derived classes
}
}
public class Circle : Shape
{
public override Draw()
{
// Changed implementation
}
}
public class Rectangle : Shape
{
public override Draw()
{
// change implementation
}
}
Interface
→ Interface is type of which is contain property, method that has no implementation. An interface is simply a declaration of the capabilities (or services) that a class should provide.
Naming convention of interface name starts with a Capital I
No implementation
An interface can only declare methods and properties, but not fields (because fields are about implementation detail).
No access modifier (private, public)
public interface ITaxCalculator
{
// int Tax;
int Tax {get; set;}
int calculate(); // no implementation and no access modifier
}
Why use Interface ?
→ Flexibility in implementation
→ Interfaces are better suited to situations in which your applications require many possibly unrelated object types to provide certain functionality.
→ you can use multiple implementation of a same Interface.
→ Interfaces help building loosely coupled applications. We reduce the coupling between two classes by putting an interface between them. This way, if one of these classes changes, it will have no impact on the class that is dependent on that (as long as the interface is kept the same)
Benefit of using Interface
→ we can use interface to change our application behaviour by extending its code, rather than changing existing code.
→ Different implementation of that interface at runtime (kind of polymorphism)
Interfaces and Inheritance
→ One of the common misconceptions about interfaces is that they are used to implement multiple inheritance in C#. This is fundamentally wrong, yet many books and videos make such a false claim.
→ With inheritance, we write code once and reuse it without the need to type all that code again.
→ With interfaces, we simply declare the methods and properties the implementing class should contain. Then we need to type all that declaration along with the actual implementation in that class. So, code is not inherited, even the declaration of the members!
Abstract Class
Abstract modifier states that a class or a member misses implementation. We use abstract members when it doesn’t make sense to implement them in a base class. When a class member is declared as abstract, that class needs to be declared as abstract as well. That means that class is not complete. In derived classes, we must need to override (implement) the abstract members in the base class.
public abstract class Shape
{
int area;
// define behavior, implement this for everybody
int GetArea()
{
return this.area;
}
// That can be very different, force them to provide their own implementation.
public abstract void Draw();
}
public class Circle : Shape
{
public override void Draw()
{
// implementation for circle
}
}
It is impossible to define Shape because the concept of shape is abstract (hide the essential details, shows only the features or in other word the outside view).
Difference Between Interface and Abstract Class
An Interface is a contract: The person writing the interface says, “hey, I accept things looking that way”, and the person using the interface says “OK, the class I write looks that way”.
An interface is an empty shell. There are only the signatures of the methods, which implies that the methods do not have a body. The interface can’t do anything. It’s just a pattern.
Abstract classes look a lot like interfaces, but they have something more, You can define a behavior for them. It’s more about a person saying, “these classes should look like that, and they have that in common, so fill in the blanks!”.
follow me on facebook
follow me on twitter
follow me on github


Reflections
What is your long term goal and or career pathway?
I would love to work in Web Development and potentially start up my own company offering assistance with web development and the like.
What skills (non-technical - human skills) would you like to see developed in yourself while at EDA?
More confidence in myself and in the work I do. I was so nervous for sprint 1 that I had got a lot of it wrong, but I didn't! I am sitting with the same feelings this week. Also, building a routine and continue to develop my problem solving skills throughout.
A description of your own strengths and limitations
I am quite organised and truly enjoy the hands-on elements and challenges throughout the course! Where I am struggling a bit is sayign 'no' and getting away from the distractions at home. I also feel I need to sit down and really make a plan over what I am wanting to do that day! So far I have been really bad at doing this, especially when dealing with the more 'just sit and listen content'.
Based on the above description, a commitment to how you will manage your workload in this programme. This should include - an explanation of how you will manage yourself to work productively and safely with other learners, facilitators and industry/community representatives.
I will: get a more quiet spot at home, trying to get away from distractions. I also need to plan my days a lot better and outline what NEEDS to be done on the day. This week I ended up with a migraine and got qwuite set back, because I wasn't focused the first couple of days of sprint 2. If I had it better planned, it would have given me more time to complete this sprint.
A commitment as to how and where you will seek help in a timely way.
I generally would prefer to find the answers myself, but realise that sometimes this is not going to be possible. I will try limit struggling to maybe half an hour at a time before I seek assistance from the group and facilitators.
A description of what you expect from the facilitation team
Having someone able to assist us when we need help, potentially in the foundation channel. I do think the facilitators have done a great job so far. Would also like clear quide in relation to what I did well and what I didn't do so well and what I might need to redo or research further.
Any scheduling information such as block-out times when you are committed to other things. For example, you might have whanau commitments such as school drop-offs. It’s important to plan these in.
No commitments at this stage where I would need to block off my time.


White to play 64
w0-b0/5
pips White=156 Black=157
(CorrectAnswer= 0/0, ErrorScore= 0)
1. Bar/21 8/2 eq: +0.096 51.16% (G:11.76% B:0.30%) 48.84% (G: 7.79% B:0.25%) 2. Bar/21 13/7 eq: +0.036 (-0.059) 49.09% (G:13.23% B:0.38%) 50.91% (G: 8.53% B:0.29%) 3. Bar/15 eq: -0.154 (-0.250) 47.18% (G:10.89% B:0.51%) 52.82% (G:15.13% B:0.51%)


Document Tree
Source Code
Session History - Updates at each successful commit
Project History (to do: get full repo history at load?)
Error Console
Terminal


flibs/m_vstrings - Processing strings
The module m_vstring provides OO services to manage strings of dynamic length. The goal of the current component is to provide higher-level services that the standard fortran currently provides. The component provides methods which mimic the services available in the Tcl language. It provides string comparison, string search and string matching methods. See in test_m_vstring to see a complete example of the services provided.
A vstring is an array of characters. The simplest way to create a vstring is with vstring_new from a "character(len=<something>)" string. The length of the vstring is computed dynamically, depending on the current number of characters, with vstring_length. In the following example, the length is 9.
use m_vstring, only : & vstring_new, & vstring_free, & t_vstring, & vstring_length type ( t_vstring,) :: string1 integer :: length call vstring_new ( string1 , "my string" ) length = vstring_length (string1) call vstring_free( string1 )
With vstring_new, one can also create a new vstring as a copy of an existing vstring. With vstring_new, one can also create a new vstring with an array of characters or with a repeated copy of an existing vstring. Destroy the vstring with vstring_free.
Two vstrings can be concatenated in two ways. The vstring_concat method returns a new vstring computed by the concatenation of the two strings. The vstring_append allows to add the characters of the 2nd vstring at the end of the current string. In the following example, the string3 is "my string is very interesting".
call vstring_new ( string1 , "my string" ) call vstring_new ( string2 , " is very interesting" ) string3 = vstring_concat ( string1 , string2 )
The user can modify the case of a vstring. The vstring_tolower creates a new vstring with lower case characters. The vstring_toupper creates a new vstring with upper case characters. The vstring_totitle creates a new vstring with the first letter in upper case and all the other characters to lower case. The user can know if two vstrings are equal with vstring_equals. Two vstrings can be compared with vstring_compare, which is based on the lexicographic order. One can transform one vstring into a new one using a map with vstring_map.
The vstring_match method provides string-matching services in the glob-style. It manages "*" pattern (which matches 0 or more characters), the "?" pattern (which matches exactly one character), escape sequences and character ranges. The following example show how to compare a file name against a pattern :
call vstring_new ( string1 , "m_vstring.f90" ) call vstring_new ( pattern , 'm_*.f90' ) match = vstring_match ( string1 , pattern )
The vstring_is method provides a way of validating data by computing whether the vstring is in a class of data, for example integer, real, digit, alphanumeric, etc... In the following example, the user can check whether the string read on standard input is an integer :
read ( 5 , * ) charstring call vstring_new ( string1 , charstring ) isinteger = call vstring_is ( string1 , "integer" ) if ( .NOT. isinteger ) then ! Generate an error endif
If the character set under use is not in one the pre-defined classes of vstring_is, the user can directly call vstring_isincharset or vstring_isinasciirange, which are the basic blocks of vstring_is. Second string argument may be character string The design choice has been made to design the subroutines/functions so that their dummy arguments are generally only of type t_vstring. Another choice would have been to allways take as dummy arguments both t_vstring and "character (len=*)" strings, with module procedure interfaces to make them generic. The last choice ease the work of the client of the current component, which can use directly standard fortran constant strings (for example,
equals = vstring_equals ( string1 , "toto" )
instead of
type ( t_vstring ) :: string2 call vstring_new ( string2 , "toto" ) equals = vstring_equals ( string1 , string2 ) call vstring_free ( string2 )
that is to say 5 lines instead of 1. The main drawback is that the number of interfaces is at least multiplied by 2, if not 4 or 8 when the number of string arguments is more than 2. This makes the unit tests multiplied by the same number, if one want to exercise all the possible interfaces. That way was chosen by the original iso_varying_string module and lead to a heavy component, with a large number of lines and a small number of features, because all the time was lost in the management of such an heavy module. The other drawback is that is breaks the object oriented design so that the "type bound" procedure of F2003 cannot be used. The current choice is to focus mainly on the services provided, not the ease of use. That allows to provide much more features than in the original component, but complicates a little more the use in the client code. The choice done here is that the first argument is allways of type vstring (and called "this"), while the second argument (if any), mays by either of type vstring or of type "character (len=*). That solution allows to keep both consistency and ease of use at the maximum possible level. Several methods are designed this way, for example, vstring_equals, vstring_compare, vstring_append, vstring_concat and others.
Two implementation of m_vstring are provided, depending on the compiler used :
the allocatable array of characters with the pre-processing macro _VSTRING_ALLOCATABLE,
the pointer array of characters with the pre-processing macro _VSTRING_POINTER
If none of the macros are defined, the default implementation is _VSTRING_ALLOCATABLE. The two implementations provide exactly the same services. But the "allocatable" implementation allows to manage the vstring which are going out of the current scope so that the use of vstring_free is not necessary and memory leaks do not occur. Instead, with the pointer implementation, the call to vstring_free is strictly necessary (if not, memory is lost each time a new vstring is created). The current version of m_vstring has been tested with the following compilers and versions:
Intel Visual Fortran 8 : tested with _VSTRING_ALLOCATABLE and _VSTRING_POINTER But the allocatable version allows to debug more easily.
gfortran 2007/04/16 : tested with _VSTRING_POINTER (works fine, except for vstring_match)
g95 May 3 2007 : tested with _VSTRING_POINTER, OK
The internal algorithms provided by m_vstrings are based on basic fortran character strings. In several situations, the dynamic vstring has to be converted into a basic fortran character buffer string, which size has to be given explicitely in the source code, with the len = <something> statement (in the character ( len = <something>) ). Two solutions are provided, and the user can define the pre-processing macro _VSTRING_STATIC_BUFFER to configure that :
the first solution is to set the size of the buffer statically, to a constant integer value VSTRING_BUFFER_SIZE.
the second solution is to compute the size of the buffer dynamicaly, with the fortran 90 len = vstring_length(this) statement,
If the _VSTRING_STATIC_BUFFER is defined, then character strings of constant size are used as buffers. If the _VSTRING_STATIC_BUFFER is not defined (which is the default), then character strings of dynamic size are used as buffers. The second solution is more efficient, because the strings are not oversized or undersized, depending on the real number of characters in the dynamic string. But the feature may not be provided by the compiler at hand. For example, problems with the dynamic length character string have been experienced with Intel Fortran 8.
This component has been designed with OO principles in mind. This is why the first argument of every method is named "this", which is the current object. If another string is required as a second argument, it may be either of type dynamic or as a character(len=*) type, to improve usability. This component is meant to evolve following the fortran 2003 standard and OO type-bound procedures.
No regular expression algorithm is provided. But vstring_match allows to do string matching in glob-style.
The vstring_match does not work with gfortran 2007/04/16 because of a limitation in gfortran for zero-size arrays
the vstring_adjustl, vstring_adjustr, vstring_scan, vstring_adjustl, vstring_adjustr, vstring_is methods does not work with IVF8 because strings declared like this : character (len = vstring_length(this) :: character are not consistent strings, probably because of a bug in the implementation of len = pure function value in IVF8.
Fortran does not allow to manage character encodings such as UTF8.
The following preprocessing macro must be considered :
_VSTRING_STATIC_BUFFER : see the section "Dynamic or static buffer"
_VSTRING_ALLOCATABLE or _VSTRING_POINTER : see the section "Allocatable or pointer"
This module was originally based on the iso_varying_string.f90 module by Rich Townsend.
In the following definitions, the this argument has, depending on the method, one of the the following definitions :
The "intent(in)" or "intent(inout)" declaration depends on the method and is what it is expected to be (if not, it is a bug).
Generic constructor. Creates the new vstring "this".
Creates a vstring with 0 characters and 0 length.
The new vstring is filled with the characters found in "char_string".
The new vstring is filled with the characters found in the dynamic string "vstring".
The new vstring is filled with the characters found in the array of characters "chararray".
Repeat the string ncount times and concatenate the result to create the new string. If not provided, the default string is the blank space. This can be considered as an implementation of "vstring_repeat".
Destructor.
The use of the destructor is OPTIONAL. See the thread " New ISO_VARYING_STRING implementation (without memory leaks)" on comp.lang.fortran : "On most systems, memory is memory :-). However, there is a difference between how ALLOCATABLE variables and POINTER variables are handled. ALLOCATABLE variables are always deallocated automatically when thay go out of scope (unless they have the SAVE attribute). POINTER variables usually are not. The reason is that the program may have associated additional pointers, that aren't going out of scope, with the same target as the one that is."
Returns .true. if the string is allocated.
Perform a character-by-character comparison of strings this and string2. Returns true if this and stringb are identical, or .false when not. If nocase is set to true, the case of the characters is not taken into account. The default behaviour is to take into account for case of characters. If length is specified, then only the first length characters are used in the comparison.
Same as previous but with string2 as a character string.
Convert a dynamic string into another fortran data type.
Convert a dynamic string into a character string with fixed length. If the number of characters in the target charstring is not large enough, the target charstring is truncated, that is, contains only the first characters of the current dynamic string.
Convert a dynamic string into a character string with automatic length. If the number of characters in the target charstring is not large enough, the target charstring is truncated, that is, contains only the first characters of the current dynamic string.
Returns the integer stored in the current string.
Returns the real stored in the current string.
Returns the double precision stored in the current string.
Returns the length of the current dynamic string.
Returns a new dynamic string made by the concatenation of two dynamic strings.
Returns a new string made by the concatenation of the current dynamic string and the given character(len=*) string.
Append the given string at the end of the current string. If the given string string2 is of length greater than zero, that means that the length of the current string will be greater after the call to vstring_append. Note : that method can be called as a convenient alternative to vstring_concat, when the concat is to be done "in place".
Same as previous, but with a character(len=*) string2.
Replaces substrings in string based on the mapping defined by the couple (map_old , map_new). map_old and map_new are arrays of vstrings and are of the same size so that if imap is an index no greater than the size of map_old, map_old ( imap ) is the old string and map_new ( imap ) is the new string. Each instance of a key in the string will be replaced with its corresponding value. Both old and new strings may be multiple characters. If nocase is set to .true., then matching is done without regard to case differences. Replacement is done in an ordered manner, so the old string appearing first in the list will be checked first, and so on. The current string is only iterated over once, so earlier replacements will have no affect for later matches. For example,
vstring_map 1abcaababcabababc [abc,ab,a,1] [1,2,3,0]
will return the string 01321221. Note that if an earlier key is a prefix of a later one, it will completely mask the later one. So if the previous example is reordered like this,
vstring_map 1abcaababcabababc [1,ab,a,abc] [0,2,3,1]
it will return the string 02c322c222c.
Removes a range of consecutive characters from string, starting with the character whose index is first and ending with the character whose index is last. An index of 1 refers to the first character of the string. If newstring is specified, then it is placed in the removed character range.
Perform a character-by-character comparison of strings this and string2. Returns -1, 0, or 1, depending on whether this is lexicographically less than, equal to, or greater than string2. If nocase is set to true, the case of the characters is not taken into account. The default behaviour is to take into account for case of characters. If length is specified, then only the first length characters are used in the comparison.
A value of 999 means that either string was not properly initialized.
Same as previous, but with a character(len=*) string2.
Returns a new string except that any leading or trailing characters from the set given by chars are removed. If chars is not specified then white space is removed (spaces, tabs, newlines, and carriage returns).
Same as previous, but with a character(len=*) string "chars".
Returns a new string except that any leading characters from the set given by chars are removed. If chars is not specified then white space is removed (spaces, tabs, newlines, and carriage returns).
Same as previous, but with a character(len=*) string "chars".
Returns a value equal to string except that any trailing characters from the set given by chars are removed. If chars is not specified then white space is removed (spaces, tabs, newlines, and carriage returns).
Same as previous, but with a character(len=*) string "chars".
Search in the current string for a sequence of characters that exactly match the characters in string2. If found, return the index of the first character in the first such match within the current string. If not found, return 0. If first is specified, then the search is constrained to start with the character in the current string specified by the index.
Same as previous, but with a character(len=*) string "string2".
Search in the current string for a sequence of characters that exactly match the characters in string2. If found, return the index of the last character in the first such match within the current string. If not found, return 0. If last is specified, then the search is constrained to start with the character in the current string specified by the index.
Same as previous, but with a character(len=*) string "string2".
Returns a range of consecutive characters from string, starting with the character whose index is first and ending with the character whose index is last. An index of 1 refers to the first character of the string. If first is less than 1 then an error is generated. If last is greater than or equal to the length of the string then an error is generated. If first is greater than last then an error is generated.
Returns the charIndex'th character of the string argument. A charIndex of 1 corresponds to the first character of the string. If charIndex is less than 1 or greater than or equal to the length of the string then an error is generated.
Returns a vstring except that all lower (or title) case letters have been converted to upper case. If first is specified, it refers to the first char index in the string to start modifying. If last is specified, it refers to the char index in the string to stop at (inclusive).
Returns a vstring except that all upper (or title) case letters have been converted to lower case. If first is specified, it refers to the first char index in the string to start modifying. If last is specified, it refers to the char index in the string to stop at (inclusive).
Returns a vstring except that the first character in string is converted to upper case, and the rest of the string is converted to lower case. If first is specified, it refers to the first char index in the string to start modifying. If last is specified, it refers to the char index in the string to stop at (inclusive).
Return a string that has all characters in reverse order.
Fill a string with required length and randomized characters.
See if pattern matches string; return 1 if it does, 0 if it doesn't. If nocase is specified and true, then the pattern attempts to match against the string in a case insensitive manner. For the two strings to match, their contents must be identical except that the following special sequences may appear in pattern:
* Matches any sequence of characters in string, including a null string.
? Matches any single character in string.
[chars] Matches any character in the set given by chars. If a sequence of the form x-y appears in chars, then any character between x and y, inclusive, will match. When used with -nocase, the characters of the range are converted to lower case first. Whereas {[A-z]} matches '_' when matching case-sensitively ('_' falls between the 'Z' and 'a'), with -nocase this is considered like {[A-Za-z]} (and probably what was meant in the first place).
\x Matches the single character x. This provides a way of avoiding the special interpretation of the characters *?[]\ in pattern.
The following example is extracted from the unit tests provided with flibs. In the following example, "match" is true.
type ( t_vstring ) :: string1 logical :: match call vstring_new ( string1 , "m_vstring.f90" ) match = vstring_match ( string1 , "m_*.f90" ) call vstring_free ( string1 )
Same as previous, with character(len=*) as pattern.
Returns .true. if string is a valid member of the specified character class, otherwise returns .false.. If strict is provided and .true., then an empty string returns .false.. If strict is provided and .false., or not provided, an empty string returns .true.. If failindex is provided, then if the function returns .false., the index in the string where the class was no longer valid will be stored in the variable failindex. The following character classes are recognized (the class name can be abbreviated):
alpha Any alphabet character, that is [a-zA-Z].
alnum Any alphabet or digit character, that is [a-zA-Z0-9].
ascii Any character with a value less than 128 (those that are in the 7-bit ascii range).
control Any control character. Control chars are in the ranges 00..1F and 7F..9F, that is from ascii #0 to #31 and from #127 to #159
digit Any digit character. Note that this includes characters outside of the [0-9] range.
false Any of the forms allowed where the logical is false.
graph Any printing character, except space that is from ascii #33 to #126.
integer Any of the valid forms for an ordinary integer in Fortran, with optional surrounding whitespace.
logical Any valid Fortran logical
lower Any lower case alphabet character, that is [a-z].
punct Any punctuation character, that is _,;:.?[](){}@"'
print Any printing character, including space that is from ascii #32 to #126.
real Any of the valid forms for a real in Fortran, with optional surrounding whitespace.
space Any space character, that is white space, tab, newline or carriage return.
true Any of the forms allowed where the logical is true.
upper Any upper case alphabet character, that is [A-Z].
xdigit Any hexadecimal digit character ([0-9A-Fa-f]).
wordchar Any word character. That is any alphanumeric character (upper case, lower case, or digit), or any connector punctuation characters (e.g. underscore).
These methods or routines are simply an interface of standard fortran string processing routines.
Returns the code for the ASCII character in the character position of C. Example : If this is "@", then iachar is 64.
Returns the code for the character in the first character position of in the systemâ€™s native character set. This is an interface to the standard fortran.
Returns the position of the start of the first occurrence of string substring as a sub-string in the current string, counting from one. If substring is not present in the current string, zero is returned. If the back argument is present and true, the return value is the start of the last occurrence rather than the first. Note: this is a simple interface to the standard fortran intrinsic "index".
Returns the position of a character of the current string that is in set, or zero if there is no such character. If the logical back is absent or present with value false, the position of the leftmost such character is returned. If back is present with value true, the position of the rightmost such character is returned. Note: this is a simple interface to the standard fortran intrinsic "index".
Returns the default integer value 0 if each character in the current string appears in set, or the position of a character of the current string that is not in set. If the logical back is absent or present with value false, the position of the left-most such character is returned. If back is present with value true, the position of the rightmost such character is returned. Note: this is a simple interface to the standard fortran intrinsic "verify".
Adjusts left to return a string of the same length by removing all leading blanks and inserting the same number of trailing blanks. Note : this is a simple interface to the standard fortran intrinsic "adjustl".
Adjusts right to return a string of the same length by removing all trailing blanks and inserting the same number of leading blanks. Note: this is a simple interface to the standard fortran intrinsic "adjustr".
Returns the character located at position I in the ASCII collating sequence. This is an interface to the standard fortran.
Returns the character represented by the integer I. This is an interface to the standard fortran. Example : If i is 64, then char is "@".
Refactor the component and use datastructures/vectors.f90
vstring_read Returns the vstring which is read on the given unit number, or on the standard input if no unit is given.
vstring_write Writes the current vstring on the given unit number, or on the standard output if no unit is given.
vstring_wordend Returns the index of the character just after the last one in the word containing character charIndex of string.
vstring_wordstart Returns the index of the first character in the word containing character charIndex of string.
Copyright © 2008 Michael Baudin<EMAIL_ADDRESS>Copyright © 2008 Arjen Markus arjenmarkus@sourceforge.net


The SXDB is stored on a separate stream that maintains information about each PivotTable cache. The SXDB record is followed by a single SXDBEX record and several FDB records, one for each field in the PivotTable, given by cfdbTot .
Record Data — BIFF8
|
Offset |
Name |
Size |
Contents |
|
4 |
crdbdb |
4 |
Number of records in database |
|
8 |
idstm |
2 |
Identifies the stream |
|
10 |
grbit |
2 |
=01h, fSaveData
— data is saved with table
layout. |
|
12 |
crdbDbb |
2 |
Number of records for each database block. |
|
14 |
cfdbdb |
2 |
Number of base fields in databases. |
|
16 |
cfdbTot |
2 |
Number of base fields, grouped fields, and calculated fields. |
|
18 |
crdbUsed |
2 |
This value is not used and can be set to zero. |
|
20 |
vsType |
2 |
Data source is one of: |
|
22 |
cchWho |
2 |
Number of characters in the string containing the name of the user who last refreshed the PivotTable. |
|
24 |
rgb |
var |
String, represents the number of the user who last refreshed the PivotTable. Length is in cchWho. |


Success!
Your quiz has uploaded.
Create Quiz form
Fill your quiz into this form
Quiz Tags:
Submit
Created by
Dang.ai


Aaron Berman
Cyber Security Analyst and Military Veteran leveraging knowledge and experience ensuring appropriate security controls are in place that will safeguard digital files and vital electronic infrastructure. Adept at diagnosing and resolving system hardware, software, connectivity, and security issues with a deep understanding of disaster recovery to implement backup procedures and techniques. Hands-on experience researching, developing, and implementing testing methods and procedures. Possess a comprehensive background in data security, continuous integration, and organizational strategy. Career supported by a Bachelor of Science in Computer Science with a concentration in Cyber Security.


{% load staticfiles %}
Upload
Log Out
Actuals upload
Analytics
All
Russia
Ukraine
Upload the SAP file
select


Brew day! RyePA, bottling habanero Amber, and moving baby porter to secondary. Gonna be a fun, full day.
2/27/2010, 9:34:24 AM
Favs: 0
Retweets: 0
link--- layout: tweet ---
Brew day! RyePA, bottling habanero Amber, and moving baby porter to secondary. Gonna be a fun, full day.
2/27/2010, 9:34:24 AM
Favs: 0
Retweets: 0
link


The setYear()
method sets the year for a specified date according to local time. Because setYear()
does not set full years ("year 2000 problem"), it is no longer used and has been replaced by the setFullYear() method.
dateObj.setYear(yearValue)
yearValue
If yearValue
is a number between 0 and 99 (inclusive), then the year for dateObj
is set to 1900 + yearValue
. Otherwise, the year for dateObj
is set to yearValue
.
setYear()
The first two lines set the year to 1996. The third sets the year to 2000.
var theBigDay = new Date(); theBigDay.setYear(96); theBigDay.setYear(1996); theBigDay.setYear(2000);
Created by Mozilla Contributors, license: CC-BY-SA 2.5


Governance Model
The vets.gov governance model is defined below. These roles pertain to the overall vets.gov project and the VA organization.
--- title: Governance body_class: page-playbook layout: page-playbook.html ---
The vets.gov governance model is defined below. These roles pertain to the overall vets.gov project and the VA organization.


SVOGV is a widget library for Angular.
The main idea is controlling the form with view models enhanced by decorators.
export class UserModel {{ '{' }} @Hidden() id: string = ''; @Display('Name') @Required() name: string = ''; {{ '}' }}


Best pizza hub in town. Order now!
Info!Click on a heading to expand that option...
This pizza is the best!


@inproceedings{BMVC2015_120,
title={Prototypical Priors: From Improving Classification to Zero-Shot Learning},
author={Saumya Jetley and Bernardino Romera-Paredes and Sadeep Jayasumana and Philip Torr},
year={2015},
month={September},
pages={120.1-120.12},
articleno={120},
numpages={12},
booktitle={Proceedings of the British Machine Vision Conference (BMVC)},
publisher={BMVA Press},
editor={Xianghua Xie, Mark W. Jones, and Gary K. L. Tam},
doi={10.5244/C.29.120},
isbn={1-901725-53-7},
url={https://dx.doi.org/10.5244/C.29.120}
}


Add Comment
If you click the "Submit" button, the comment will be sent to a page called "/new_comment.html".


Class 1 Homework
For this week's homework assignment, create a website to show off your new skills.
Core HTML5 skills you should be able to include on your page(s):
- A nav bar with a few links that either navigate to other pages or act as anchor tags.
- A heading to signal something important or declare a new section/paragraph.
- A couple paragraphs describing the amazing things you want to share. Remember to use emphasis on key words!
- A list of key things to know about something in your paragraph. Why not do an ordered list and unordered list?
- An image of something relevant and visually appealing. You can store your image as an asset in your project folder or link back to the source on the web. The link should be clickable, but the image doesn't need to be.
- A footer at the bottom of the page declaring your copyright on such a wonderful write-up, and make sure you use the copyright symbol!
- Your page should validate in the input field at this link: W3 Validator.
- Keep your code readable and maintanable for your future self and future contributors.
You can always check the Class 1 slides for help!
When you're done, make a zip file from your project folder and email (or send it via Slack) it to your instructor!


Parsec Advanced Settings Gen
All of these settings can be found
here
.
Generate All
Made by
this guy
.


About Us
the reason i created this website is
because i like the one piece movie, characters, the adventures,
which make the audience immersed and enjoy their adventures,
every new episode always makes the audience suprised
the reason i created this website is
because i like the one piece movie, characters, the adventures,
which make the audience immersed and enjoy their adventures,
every new episode always makes the audience suprised
Copyright © 2021 - Rekayasa Sistem Multimedia - One Piece
1861008


Share bioinformatics links from across the web.
{% extends "forum_list.html" %} {% load forum_tags %} {% load static %} {% load humanize %} {% load cache %} {% block title %} Biostar Herald {% endblock %} {% block headtitle %} Biostar Herald {% endblock %} {% block css %} {% endblock %} {% block body %}
Moderators will review each submission and may accept or reject them. Accepted submissions will be published in the next edition of the Biostar Herald.
Publish new Issue Toggle Email Subscription
Publishing will collate the accepted items and generates a post out of them
Publishing will happen automatically in the future, this button here is available during testing
{% endif %} {% include 'herald/herald_list.html' %} {% endblock %} {% block sidebar %}


VGIMPORTCLONE
Section: Maintenance Commands (8)Updated: LVM TOOLS 2.02.95(2)-RHEL6 (2012-10-16)
Index Return to Main Contents
NAME
vgimportclone - import and rename duplicated volume group (e.g. a hardware snapshot)SYNOPSIS
vgimportclone [-n|--basevgname VolumeGroupName] [-i|--import] PhysicalVolume [PhysicalVolume...]DESCRIPTION
vgimportclone is used to import a duplicated VG (e.g. hardware snapshot). Duplicate VG(s) and PV(s) are not able to be used until they are made to coexist with the origin VG(s) and PV(s). vgimportclone renames the VG associated with the specified PV(s) and changes the associated VG and PV UUIDs.OPTIONS
See lvm for common options.- -n|--basevgname VolumeGroupName
- By default the snapshot VG will be renamed to the original name plus a numeric suffix to avoid duplicate naming (e.g. 'test_vg' would be renamed to 'test_vg1'). This option will override the base VG name that is used for all VG renames. If a VG already exists with the specified name a numeric suffix will be added (like the previous example) to make it unique.
- -i|--import
- Import exported Volume Groups. Otherwise VGs that have been exported will not be changed (nor will their associated PVs).
ENVIRONMENT VARIABLES
- LVM_BINARY
- The LVM2 binary to use. Defaults to "lvm".
EXAMPLES
The origin VG vg00 has origin PVs /dev/sda and /dev/sdb and the respective snapshot PVs are /dev/sdc and /dev/sdd. To rename the VG associated with /dev/sdc and /dev/sdd from vg00 to vg00_snap (and to change associated VG and PV UUIDs) do:vgimportclone --basevgname vg00_snap /dev/sdc /dev/sdd
SEE ALSO
lvm(8)
Index
This document was created by man2html, using the manual pages.
Time: 05:34:31 GMT, December 24, 2015


If you only read text in English, and are happy with the common libre fonts listed on the next page, you may never need to worry about the details of how fontconfig works. But there are many things which can be altered if they do not suit your needs.
Although this page is long, it barely scratches the surface and you will be able to find many alternative views on the web (but please remember that some things have changed over the years, for example the autohinter is no longer the default). The aim here is to give you enough information to understand the changes you are making.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/Fontconfig
The Xft font protocol provides antialiased font rendering through
freetype, and fonts are controlled
from the client side using fontconfig (except for rxvt-unicode-9.22 which can use fonts
listed in ~/.Xresources
, and
AbiWord-3.0.4 which only uses the specified
font). The default search path is /usr/share/fonts
and ~/.local/share/fonts
although for the moment the
old and deprecated location ~/.fonts
still works. Fontconfig searches
directories in its path recursively and maintains a cache of the
font characteristics in each directory. If the cache appears to be
out of date, it is ignored, and information is fetched from the
fonts themselves (that can take a few seconds if you installed a
lot of fonts).
If you've installed Xorg in any
prefix other than /usr
, any
X fonts were not installed in a
location known to Fontconfig.
Symlinks were created from the OTF
and TTF
X font directories to /usr/share/fonts/X11-{OTF,TTF}
. This allows
Fontconfig to use the OpenType and
TrueType fonts provided by X,
although many people will prefer to use more modern fonts.
Fontconfig uses names to define fonts. Applications generally use generic font names such as "Monospace", "Sans" and "Serif". Fontconfig resolves these names to a font that has all characters that cover the orthography of the language indicated by the locale settings.
The following commands may be helpful when working with fontconfig:
fc-list | less : show a list of all available fonts (/path/to/filename: Font Name:style). If you installed a font more than 30 seconds ago but it does not show, then it or one of its directories is not readable by your user.
fc-match 'Font Name' : will tell you which font will be used if the named font is requested. Typically you would use this to see what happens if a font you have not installed is requested, but you can also use it if the system is giving you a different font from what you expected (perhaps because fontconfig does not agree that the font supports your language).
fc-match -a 'Type' | less : will provide a list of all fonts which can be used for that type (Monospace, Sans, Serif). Note that in-extremis fontconfig will take a glyph from any available font, even if it is not of the specified type, and unless it knows about the font's type it will assume it is Sans.
If you wish to know which font will be used for a string of text
(i.e. one or more glyphs, preceded by a space), paste the following
command and replace the xyz
by the
text you care about:
FC_DEBUG=4 pango-view --font=monospace -t xyz | grep family : this requires Pango-1.44.7 and ImageMagick-7.0.9-23 - it will invoke display to show the text in a tiny window, and after closing that the last line of the output will show which font was chosen. This is particularly useful for CJK languages, and you can also pass a language, e.g. PANGO_LANGUAGE=en;ja (English, then assume Japanese) or just zh-cn (or other variants - 'zh' on its own is not valid).
The main files are in /etc/fonts/conf.d/
, which was intended to be a
directory populated by symlinks to some of the files in
/usr/share/fontconfig/conf.avail/
.
But many people, and some packages, create the files directly. Each
file name must be in the form of two digits, a dash, somename.conf
and they are read in sequence.
By convention, the numbers are assigned as follows:
00-09 extra font directories
10-19 system rendering defaults (antialising etc)
20-29 font rendering options
30-39 family substitution
40-49 map family to generic type
50-59 load alternate config files
60-69 generic aliases, map generic to family
70-79 adjust which fonts are available
80-89 match target scan (modify scanned patterns)
90-99 font synthesis
You can also have a personal fonts.conf
in $XDG_CONFIG_HOME which is
~/.config/fontconfig/
.
If the requested font is installed, and provided it contains the
codepoints required for the
current language (in the source, see the .orth files in the
fc-lang/
directory), it will be used.
But if the document or page requested a font which is not installed
(or, occasionally, does not contain all the required codepoints)
the following rules come into play: First, 30-metric-aliases.conf
is used to map aliases for
some fonts with the same metrics (same size, etc). After that, an
unknown font will be searched for in 45-latin.conf
- if it is found it will be mapped
as Serif or Monospace or Sans, otherwise it will be assumed to be
Sans. Then 50-latin.conf
provides
ordered lists of the fallbacks - Dejavu
fonts will be used if you installed them. Cyrillic and Greek
appear to be treated in the same way. There are similar files with
a 65- prefix for Persian and other non-latin writing systems. All
of these files prefer commercial fonts if they are present,
although modern libre fonts are often at least their equals.
Since fontconfig-2.12.5 there is also generic family matching for some emoji and math fonts, see {45,60}-generic.conf.
In the rare cases where a font does not contain all the expected codepoints, see 'Trial the First:' at I stared into the fontconfig for the long details.
It is possible to change how, or if, fonts are hinted. The
following example file contains the default settings, but with
comments. The settings are very much down to the user's preferences
and to the choice of fonts, so a change which improves some pages
may worsen others. The preferred location for this file is:
~/.config/fontconfig/fonts.conf
To try out different settings, you may need to exit from Xorg and then rerun startx so that all applications use the new settings. And if you use Gnome or KDE their desktops can override these changes. To explore the possibilities, create a file for your user:
mkdir -pv ~/.config/fontconfig &&
cat > ~/.config/fontconfig/fonts.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font" >
<!-- autohint was the old automatic hinter when hinting was patent
protected, so turn it off to ensure any hinting information in the font
itself is used, this is the default -->
<edit mode="assign" name="autohint"> <bool>false</bool></edit>
<!-- hinting is enabled by default -->
<edit mode="assign" name="hinting"> <bool>true</bool></edit>
<!-- for the lcdfilter see http://www.spasche.net/files/lcdfiltering/ -->
<edit mode="assign" name="lcdfilter"> <const>lcddefault</const></edit>
<!-- options for hintstyle:
hintfull: is supposed to give a crisp font that aligns well to the
character-cell grid but at the cost of its proper shape.
hintmedium: poorly documented, maybe a synonym for hintfull.
hintslight is the default: - supposed to be more fuzzy but retains shape.
hintnone: seems to turn hinting off.
The variations are marginal and results vary with different fonts -->
<edit mode="assign" name="hintstyle"> <const>hintslight</const></edit>
<!-- antialiasing is on by default and really helps for faint characters
and also for 'xft:' fonts used in rxvt-unicode -->
<edit mode="assign" name="antialias"> <bool>true</bool></edit>
<!-- subpixels are usually rgb, see
http://www.lagom.nl/lcd-test/subpixel.php -->
<edit mode="assign" name="rgba"> <const>rgb</const></edit>
<!-- thanks to the Arch wiki for the lcd and subpixel links -->
</match>
</fontconfig>
EOF
You will now need to edit the file in your preferred editor.
For more examples see the blfs-support thread which started at /2016-September/078422, particularly 2016-September/078425, and the original poster's preferred solution at 2016-November/078658. There are other examples in Fontconfig in the Arch wiki and Fontconfig in the Gentoo wiki.
In previous versions of BLFS, the ugly old Xorg bitmap fonts were
installed. Now, many people will not need to install any of them.
But if for some reason you have installed one or more bitmap fonts,
you can prevent them being used by fontconfig by creating the following file as
the root
user :
cat > /etc/fonts/conf.d/70-no-bitmaps.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- Reject bitmap fonts -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="scalable"><bool>false</bool></patelt>
</pattern>
</rejectfont>
</selectfont>
</fontconfig>
EOF
Normally, system fonts and user fonts are installed in directories
beneath the locations specified in The Xft Font Protocol and there is no
obvious reason to put them elsewhere. However, a full BLFS install
of texlive-20190410 puts many fonts in
/opt/texlive/2019/texmf-dist/fonts/
in the opentype/
and truetype/
subdirectories. Although pulling in all
of these files may appear useful (it allows you to use them in non
TeX programs), there are several
problems with such an approach:
There are hundreds of files, which makes selecting the font hard.
Some of the files do odd things, such as displaying semaphore flags instead of ASCII letters, or mapping cyrillic codepoints to character forms appropriate to Old Church Slavonic instead of the expected current shapes: fine if that is what you need, but painful for normal use.
Several fonts have multiple sizes and impenetrable short names, which both make selecting the correct font even harder.
When a font is added to CTAN, it is accompanied by TeX packages to use it in the old engines (xelatex does not normally need this), and then the version is often frozen whilst the font is separately maintained. Some of these fonts such as Dejavu fonts are probably already installed on your BLFS system in a newer version, and if you have multiple versions of a font it is unclear which one will be used by fontconfig.
However, it is sometimes useful to look at these fonts in non-TeX
applications, if only to see whether you wish to install a current
version. If you have installed all of texlive, the following example will make one
of the Arkandis Open Type fonts available to other applications,
and all three of the ParaType TrueType fonts. Adjust or repeat the
lines as desired, to either make all the opentype/
or truetype
fonts available, or to select different
font directories. As the root
user:
cat > /etc/fonts/conf.d/09-texlive.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<dir>/opt/texlive/2019/texmf-dist/fonts/opentype/arkandis/berenisadf</dir>
<dir>/opt/texlive/2019/texmf-dist/fonts/truetype/paratype</dir>
</fontconfig>
EOF
If you do this, remember to change all instances of the year in that file when you upgrade texlive to a later release.
There are many reasons why people may wish to have pages which specify a particular font use a different font, or prefer specific fonts in Monospace or Sans or Serif. As you will expect, there a number of different ways of achieving this.
Fontconfig installs user
documentation that includes an example 'User configuration file'
which among other things prefers WenQuanYi ZenHei (a Sans font) if a
Serif font is requested for
Chinese (this part might be anachronistic unless you have non-free
Chinese fonts, because in 65-nonlatin.conf
this font is already among the
preferred fonts when Serif is specified for Chinese) and to prefer
the modern VL Gothic font if a Sans font is specified on
a Japanese page (otherwise a couple of other fonts would be
preferred if they have been installed).
If you have installed the current version, the user documentation
is available in html, PDF and text versions at /usr/share/doc/fontconfig-2.13.1/
: change the
version if you installed a different one.
As an example, if for some reason you wished to use the Nimbus Roman No9 L font wherever Times New Roman is referenced (it is metrically similar, and preferred for Times Roman, but the Serif font from Liberation fonts will be preferred for the Times New Roman font if installed), as an individual user you could install the font and then create the following file:
mkdir -pv ~/.config/fontconfig/conf.d &&
cat > ~/.config/fontconfig/conf.d/35-prefer-nimbus-for-timesnew.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<!-- prefer Nimbus Roman No9 L for Times New Roman as well as for Times,
without this Tinos and Liberation Serif take precedence for Times New Roman
before fontconfig falls back to whatever matches Times -->
<alias binding="same">
<family>Times New Roman</family>
<accept>
<family>Nimbus Roman No9 L</family>
</accept>
</alias>
</fontconfig>
EOF
This is something you would normally do in an individual user's
settings, but the file in this case has been prefixed '35-' so that
it could, if desired, be used system-wide in /etc/fonts/conf.d/
.
The following example of a local configuration (i.e. one that applies for all users of the machine) does several things:
If a Serif font is specified, it will prefer the UMing variants, so that in the zh-cn, zh-hk and zh-tw languages things should look good (also zh-sg which actually uses the same settings as zh-cn) without affecting Japanese.
It prefers the Japanese IPAex fonts if they have been installed (although VL Gothic will take precedence for (Japanese) Sans if it has also been installed.
Because WenQuanYi ZenHei covers Korean Hangul
glyphs and is also preferred for Serif in 65-nonlatin.conf
, if installed it will be
used by default for Korean Serif. To get a proper Serif font,
the UnBatang font is specified here - change that line if you
installed a different Serif font from the choice of Korean fonts.
The Monospace fonts are forced to the preferred Sans fonts. If the text is in Korean then WenQuanYi ZenHei will be used.
In a non-CJK locale, the result is that suitable fonts will be used
for all variants of Chinese, Japanese and Hangul Korean. All other
languages should already work if a font is present. As the
root
user:
cat > /etc/fonts/local.conf << "EOF"
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>AR PL UMing</family>
<family>IPAexMincho</family>
<!-- WenQuanYi is preferred as Serif in 65-nonlatin.conf,
override that so a real Korean font can be used for Serif -->
<family>UnBatang</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>WenQuanYi Zen Hei</family>
<family>VL Gothic</family>
<family>IPAexGothic</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>VL Gothic</family>
<family>IPAexGothic</family>
<family>WenQuanYi Zen Hei</family>
</prefer>
</alias>
</fontconfig>
EOF
Some fonts, particularly Chinese fonts, ship with conf files which
can be installed in /etc/fonts/conf.d
. However, if you do that and
then use a terminal to run any command which uses fontconfig you may see error messages such as
:
Fontconfig warning:
"/etc/fonts/conf.d/69-odofonts.conf", line 14: Having multiple
<family> in <alias> isn't supported and may not work as
expected
.
In practice, these old rules do not work. For non-CJK users, fontconfig will usually do a good job without these rules. Their origin dates back to when CJK users needed handcrafted bitmaps to be legible at small sizes, and those looked ugly next to antialiased Latin glyphs - they preferred to use the same CJK font for the Latin glyphs. There is a side-effect of doing this : the (Serif) font is often also used for Sans, and in such a situation the (English) text in Gtk menus will use this font - compared to system fonts, as well as being serif it is both faint and rather small. That can make it uncomfortable to read.
Nevertheless, these old conf files can be fixed if you wish to use
them. The following example is the first part of 64-arphic-uming.conf
from UMing - there are
a lot more similar items which also need changing :
<match target="pattern">
<test qual="any" name="lang" compare="contains">
<string>zh-cn</string>
<string>zh-sg</string>
</test>
<test qual="any" name="family">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>AR PL UMing CN</string>
</edit>
</match>
The process to correct this is straightforward but tedious - for
every item which produces an error message, using your editor (as
the root
user) edit the installed
file to repeat the whole block as many times as there are multiple
variables, then reduce each example to have only one of them. You
may wish to work on one error at a time, save the file after each
fix, and from a separate term run a command such as fc-list 2>&1 | less to see
that the fix worked. For the block above, the fixed version will be
:
<match target="pattern">
<test qual="any" name="lang" compare="contains">
<string>zh-cn</string>
</test>
<test qual="any" name="family">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>AR PL UMing CN</string>
</edit>
</match>
<match target="pattern">
<test qual="any" name="lang" compare="contains">
<string>zh-sg</string>
</test>
<test qual="any" name="family">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="strong">
<string>AR PL UMing CN</string>
</edit>
</match>
The blog entries by Eevee are particularly useful if fontconfig does not think your chosen font supports your language, and for preferring some non-MS Japanese fonts when an ugly MS font is already installed.
Arch has a lot of information in its wiki at font_configuration.
Gentoo has some information in its wiki at Fontconfig although a lot of the details (what to enable, and Infinality) are specific to Gentoo.
Last updated on 2020-03-21 06:02:56 -0500


{% extends "Home/header.html" %} {% block content %} {% load staticfiles %} {% include "Home/includes/active2_bt.html" %} {% include "Home/includes/active3_constitution.html" %} {% include "Home/constitutive_act.html" %} {% endblock %}


A deployment is any resource, such a WAR or EAR application, that can be deployed to a server.
In a managed domain, deployments are assigned to server groups. All server instances within a server group will have the same deployment content.


Used with commands like browsing a repository's issues.
Used with branch-specific commands, like the file finder.
Override for GitHub Enterprise installations at a custom domain.
For a milestone, specify the user login and repository name.
The number of the milestone in its URL.
A name to help you identify this milestone.
For a repository project, specify the user login and repository name.
The number of the project in its URL.
A name to help you identify this project.
For an organization project, specify the organization's login.
For a user project, specify the user's login.
Enter the user's login from their GitHub profile URL.
(optional)
Limit issues and pull requests from this user to those in a particular organization or repository.
Enter the name of the team as it appears in their URL.
Enter the organization's login from its GitHub profile URL.
Save up to ten different shortcuts for GitHub repositories, organizations, users, and projects. You can switch quickly between them.
Choose which commands are displayed in the popup. Commands are still available when hidden.