About
They say, “LTP is defining The New Global FinTech.”
We consider that compliment as the best validation of what we do. The emerging financial services industry is now embracing the new definition of FinTech, and we are honored to be able to define the contours of this rapidly evolving space through the content and research we publish every day.
Let’s Talk Payments (LTP) was launched in August 2013 as a high-quality content and research platform for the expanding FinTech industry. Since then, LTP has reported on FinTech industry news and provides original insights every single day. LTP continues to be the fastest-growing payments and digital commerce news destination globally.
LTP has built the most comprehensive and effective news and insights platform for professionals in the industry, bringing deep research expertise to news reporting and analysis. Our contributors and subscribers are spread across the world in various segments of FinTech, which includes payments, financial services, banking, shopping, commerce, lending, insurance, compliance, etc… LTP continues to grow in scope and depth to cater to the needs of its readers.
LTP provides industry insiders and enthusiasts with an essential knowledge platform for news and insights. Our highly credible and trusted media channel (or portal?) helps marketers and entrepreneurs reach out to a collaboratively engaged audience. We delight our growing and diverse set of subscribers every day with analytical depth and comprehensive coverage delivered simultaneously.
MEDICI, the new FinTech research and engagement platform powered by LTP, has all the tools and building blocks to enable collaboration amongst entrepreneurs, investors and strategic partners. We bring global expertise and scale to solve thematic challenges across the payments and commerce value chain. This subscription-based platform offers the perfect blend of insights, interactivity, and engagement to serve the diverse set of stakeholders in our innovation ecosystem: startups, investors, financial institutions, accelerators and incubators, advisors & consultants and all innovators in companies big and small around the world who are inspired by LTP to build The New Global FinTech.
LTP and MEDICI are truly shared resources, for and by the global FinTech community!
LTP is built, run and managed by a global team based in New York, San Francisco, Boston, Seattle, Bangalore and Charlotte. It was conceived and founded by Amit Goel and Aditya Khurjekar.
Aditya Khurjekar, CEO and co-founder
https://www.linkedin.com/in/khurjekar/
@khurjekar
Amit Goel, Co-founder and MD
https://www.linkedin.com/in/amitpayments
@amitTwitr


Crack the case by interviewing the three robot servants: the Butler, the Maid and the Chef.
Interview the robots and find out:
- Who stole the diamond?
- What room it is hidden in?
- What container it is in?
To solve the case, hit the [SOLVE] Button
To see a map of the house, hit the [MAP] button
To see the police notes, hit the [POLICE NOTES] button
Click the text box below the bot you want to question; then type your question.
Example Queries:
- What happened during dinner?
- Where were you during cocktails?
- What was for dinner?
Get on it, Detective!


|
DownloadDownload packages are available from the Files area at SourceForge. The most up-to-date Quesa source code is always available through our CVS server. If you are interested in developing with Quesa, we recommend that you use the CVS source rather than the latest snapshot to ensure you have the latest code. The following pre-configured CVS session files are available:
Note: StuffIt archives are compressed in StuffIt 5 format - if you are using an older version of StuffIt Expander, you will need to obtain a more recent version from Aladdin. Installation Notes (General)Quesa can be built as either a static or a shared library. Please see the Building Quesa page for more details of this process, include where to find any additional header files you may need to perform a build. The details of how to install shared libraries are platform specific, but typically you would place Quesa within your system's shared library search path and applications will bind to it automatically. Installation Notes (Mac OS 8/9)Since Mac OS includes Apple's QD3D libraries, you will need to replace some of these with their Quesa equivalents. The files which should be replaced are: QuickDraw 3D replaced by Quesa/Quesa Classic QuickDraw 3D Viewer replaced by Quesa Viewer/Quesa Classic Viewer QD3DCustomElements replaced by Quesa Elements N/A replaced by Quesa Gestalt QuickDraw 3D IR replaced by N/A QuickDraw 3D RAVE replaced by N/A The "QuickDraw 3D" library must be removed for Apple's Interactive Renderer to bind to Quesa correctly. Installation Notes (Mac OS X)To install Quesa on Mac OS X, you must copy the library into the /Library/CFMSupport directory. This will make it available to all applications on the system. Note that this directory may not exist on your Mac OS system, and may need to be created first. |


The com.jme.renderer
package provides classes responsible for
rendering.
The most critical classes are the {@link com.jme.renderer.Renderer},
which is the low-level rendering implementation and is abstract, and the
{@link com.jme.renderer.RenderManager} class, which provides the high-level
rendering logic on top of the Renderer
.
To accompany rendering, several helper classes are available.
- The {@link com.jme.renderer.Camera} is used to specify the point-of-view
from which scenes are rendered.
- The {@link com.jme.renderer.ViewPort} is the
aggregation of a Camera and a set of {@link com.jme.scene.Spatial scenes}
which are to be rendered, as well as additional info.
- The {@link com.jme.renderer.Caps} class contains renderer capabilities
which the user can query to find out what features are available in the
rendering implementation.
- The {@link com.jme.renderer.Statistics} class is updated in real time
by the Renderer, and is used to find out various statistics about
the rendering
- The {@link com.jme.util.NativeObjectManager} and {@link com.jme.util.NativeObject} classes
provide a link between the renderer's native objects and Java's garbage collected objects,
allowing the engine to track when the Java object counterpart is garbage collected
and then delete the native object counterpart from the renderer.


All modules for which code is available
flask_ogm.graph
flask_ogm.param_converter
Flask-OGM
Navigation
Contents:
Installation
Graph Connections
ParamConverter
Configuration
Index of Errors
Related Topics
Documentation overview
Quick search


Welcome to the City’s Department Publishing Plans portal. These plans and supporting data inventories are the result of many hours of hard work by departmental data coordinators and their colleagues. It is here we will not just report the plans but automatically track progress as data gets published over time.
Each plan includes a narrative indicating what the department is committing to through the end of 2015. Along the right hand side are metrics including:
These update to reflect the department you’re viewing. Right now, the metrics to the right reflect the rollup of activity across all departments that have completed their inventory. Also, at the bottom of each page is a table representing the inventory for the department you’re viewing.
You can track additional program-wide metrics about the City’s open data program through DataSF in Progress, our dashboard.
Start browsing the plans by clicking on the department menu at the top of this page and selecting a department. You can view past plans by selecting a planning period from the dropdown toward the top of this page.
| Inventory ID | Department or Division | Dataset Name | Dataset Description | Data Classification | Publishing Status |
|---|


◆ binarySearchTree()
◆ ~binarySearchTree()
◆ EmptyTree()
◆ find()
Accepts a value and finds it in the binary search tree. If found then returns pointer to that node, else return null pointer.
◆ Find()
Accepts and finds the value in the tree, if found then a pointer to the node is returned, else a null pointer is returned
- Parameters
-
◆ getAscendingOrder()
Gets the ascending order of Nodes in the tree and returns it as an array
◆ getDescendingOrder()
Gets the descedning order of Nodes in the tree and returns it as an array
◆ getHeight()
Returns the height of the tree
◆ getRoot()
Returns a constant pointer to the root of the tree
◆ insert()
Accepts in value and inserts in the tree if the value does not exist
◆ Insert()
Inserts a value in the tree
- Parameters
-
◆ Remove()
Removes a value from the tree
- Parameters
-
◆ Size()
Returns the size of the tree
The documentation for this class was generated from the following files:


Papers
Slides
Posters
- RECOMB 2018
and ISMB 2017
• Tigmint: Correcting Misassemblies Using Linked Reads From Large Molecules
- PAG 2017, AGBT 2017
• Organellar Genomes of Sitka Spruce (Picea sitchensis): Assembly and Annotation
- ISMB 2016 BOSC
• Linuxbrew and Homebrew for Cross-platform Package Management
- ISMB 2016 HiTSeq
• Organellar Genomes of White spruce (Picea glauca): Assembly and annotation
- RECOMB 2015
• Scaling ABySS to Longer Reads Using Spaced k-mers and Bloom Filters
- ISMB 2014
• ABySS-Konnector: Connecting Paired-end Reads by Navigating a bloom Filter de Bruijn Graph
- PAG 2014
• Assembling the Genomes of the Plastid and Mitochondrion of White Spruce (Picea glauca)
- APBC 2013
• Scaffolding Large Genomes Using Mate-pair Sequencing and ABySS
- BCCDC 2013
• Outbreak Investigation of Salmonella enteritidis Using Genomic Epidemiology
- STAT540 2013
• Analysis of Gene Expression Omnibus Leukaemia Data from the Illumina HumanMethylation450 Array


Sassafras
| accent
|
|
dark
|
#802a00
|
|
|
darker
|
#4d1900
|
|
|
light
|
#ffaa80
|
|
|
lightest
|
#ffeee6
|
|
|
lighter
|
#ffccb3
|
|
|
mid
|
#ff5500
|
|
|
darkest
|
#1a0800
|
|
| support
|
|
dark
|
#80002a
|
|
|
darker
|
#4d0019
|
|
|
light
|
#ff80aa
|
|
|
lightest
|
#ffe6ee
|
|
|
lighter
|
#ffb3cc
|
|
|
mid
|
#ff0055
|
|
|
darkest
|
#1a0008
|
|
| base
|
|
dark
|
#800000
|
|
|
darker
|
#4d0000
|
|
|
light
|
#ff8080
|
|
|
lightest
|
#ffe6e6
|
|
|
lighter
|
#ffb3b3
|
|
|
mid
|
#ff0000
|
|
|
darkest
|
#1a0000
|
|
# Generated by Sassafras
# accent
!accent_dark = #802a00
!accent_darker = #4d1900
!accent_light = #ffaa80
!accent_lightest = #ffeee6
!accent_lighter = #ffccb3
!accent_mid = #ff5500
!accent_darkest = #1a0800
# support
!support_dark = #80002a
!support_darker = #4d0019
!support_light = #ff80aa
!support_lightest = #ffe6ee
!support_lighter = #ffb3cc
!support_mid = #ff0055
!support_darkest = #1a0008
# base
!base_dark = #800000
!base_darker = #4d0000
!base_light = #ff8080
!base_lightest = #ffe6e6
!base_lighter = #ffb3b3
!base_mid = #ff0000
!base_darkest = #1a0000


TABLE OF INTERACTIONS WITH
SPERMICIDES
From the French ANSM drug interactions document of September 2016, p. 201
SPERMICIDES CLASS CODE: R02AA |
MEDICATIONS USED BY VAGINAL ROUTE |
All topical vaginal treatment is susceptible to disrupting the action of a topical spermicidal contraceptive |
Not recommended |


WORK EXPERIENCE:
Business Manager and Chief Copy Editor, Lewis & Clark Pioneer Log January 2016-Current Manage business operations and finances for college newspaper, with annual budget of $30k. Contributing writer and editor for opinion columns and local reviews. Teach students journalistic writing and am final authority for style, grammar and fact-checking.
- Tripled paper’s revenue stream in 1 year, turning a budget deficit into a $15k year-end surplus by obtaining new grants, developing a subscription program, and selling advertising space.
Auditor, Associated Students of Lewis & Clark College April 2015-January 2016, August 2017-Current Prepared financial analysis of student groups’ use of funds, including identification and reporting of financial misappropriations, to Student Senate and Presidential Cabinet. Provide impartial analysis to student government and transparency information for student body.
- Investigation and survey of campus issues led to reformed financial structures for student groups.
Resident Advisor/Teacher Assistant, Government Summer School at Stanford June-July 2017 Supervised and tutored 12 students, led study sessions, graded papers, assisted teachers and taught debating skills.
- Organized and facilitated presentations by executives in technology industry and political leaders.
Intern, 349th Air Mobility Wing Command Section, USAF Reserve, Travis AFB May-August 2016 Organized and audited document repositories. Wrote reports, historical summaries, and recruiting materials. Supported Wing Commander in administrative tasks. Improved contingency response efficiency.
- Embraced opportunity to study game theory and strategy with respect to air power and logistics.
Vice Chairman, Oregon Federation of College Republicans February 2015-June 2016 Organized statewide meetings and efforts supporting county political races and fundraising activities. Led multiple college student trips to the Conservative Political Action Conference in Washington, DC.
- My CPAC experiences are chronicled in the paper “Conservative Cathedral”.
Capitol Intern, California State Senator John M. W. Moorlach May 2015-August 2015 Researched policies, tracked legislation, prepared floor materials, and performed administrative duties.
- Proposed bill amendment, later passed by Legislature, extending drought-resistant plant subsidies.
- Prepared policy memos on various aspects of potential CalPERS reform.
Research Intern, Hudson Institute January 2015-June 2015 Prepared research summaries and collected source documents for Director of the Center for Political-Military Analysis. Reviewed and recommended edits for manuscript drafts.
OTHER EXPERIENCE:
Chairman, City of Fairfield Youth Commission 2010-2014 Represented city youth with Mayor and City Council. Designed, delivered, and reported on a survey of 1,500+ students assessing local youth issues. Survey provided evidence needed to open an after-hours youth center and re-start sports and other engagement activities for under-privileged students.
- Received Congressional Recognition of Community Service from Congressman John Garamendi, for work developing the Matt Garcia Interagency Youth Center.
- Recognized by Dr. Joseph E Marshall, awarded educator, on his national radio show for anti-violence leadership conference held for at-risk students – providing job skills, scholarship opportunities, and workshops with 50+ community group partners.
Director of Debate, Junior State of America 2012-2014 Organized programming for weekend-long conferences for 1,000+ students interested in public policy. Managed twenty students, led debate workshops, taught argumentation and public speaking.
- Awarded Statesman of the Year, Northern California Region, 2014.
Web Page Design and Blogs 2012-2014 Founder and Editor-in-Chief for two public policy-related blog sites, Athwart (www.athwart.org) and Reliable Bias. Have consulted on content management systems and design for other sites (piolog.com). Wrote and edited policy essays, opinions, book reviews and news commentary.
- Learned and employed skills in web development, graphic design, and social media marketing.
EDUCATION:
Lewis & Clark College, Portland, OR September 2014-June 2018 Political Science major, Middle East/North African Studies minor. Primary focus in political theory and the history of Western philosophy. Intermediate language skills in Arabic and Spanish, developing competency in Latin.
- Senior Thesis: Understanding Averroes’ Commentary on Plato’s Republic.
- Capstone Projects: Developing an Evolutionary Game Theory Approach to Nuclear Conflict, Beyond Images: Philosophy and the Dramatic Character of Republic Book I, Mountains and Zarathustra: Understanding Solitude for Nietzsche’s Philosopher
- Speaker, Middle East Studies Symposium: Islamic Hellenes—Plato Across Cultures.
- Spring 2017 Semester in Morocco – immersion program, studied history and social movements.
- Two-time host of International Affairs Symposium, helping to bring expert speakers Max Boot and Reuel Marc Gerecht to campus.
- Academic English Studies Tutor, speaking with students from Kuwait to help develop conversational language skills.
- Student Leadership and Service Award, Student Alumni Association Scholar, Trustee Scholar, Dean’s List.
- Hourglass Literary Journal, semi-finalist for international writing contest in creative non-fiction.
- Polyglot, translation of Medieval Arabic poetry.
- Competed in parliamentary debate and speech competitions, won best speaker in regional tournaments. Judged regional tournaments.
- Statistical analysis in Stata, R, and Excel.


Iran finds new oilfield with 53 billion barrels of crude: Hassan Rouhani
The field covers 2,400 square kilometres (926 square miles) and is located in Iran's southwestern province of Khuzestan, Rouhani said in a speech aired on state TV
by AFP | PTIIran has discovered a new oil field containing 53 billion barrels of crude, President Hassan Rouhani said Sunday, a find that would increase Iran's proven reserves by over a third.
The field covers 2,400 square kilometres (926 square miles) and is located in Iran's southwestern province of Khuzestan, Rouhani said in a speech aired on state TV.
"This is a small gift by the government to the people of Iran," he said.
The 80-metre deep field stretches nearly 200 kilometres from Khuzestan's border with Iraq to the city of Omidiyeh, Rouhani added.
The find would add around 34 percent to the OPEC member's current proven reserves, estimated by energy giant BP at 155.6 billion barrels of crude oil.
Iran is a founding member of the Organization of the Petroleum Exporting Countries and sits on what were already the world's fourth-biggest oil reserves and second-largest gas reserves.
But it has struggled to sell its oil since US President Donald Trump withdrew from a landmark 2015 nuclear deal and reimposed unilateral sanctions on Iran.
The remaining parties to the accord -- Britain, China, France, Germany and Russia -- have worked to save it by avoiding US sanctions, but their efforts have so far borne little fruit.


| Summary Information | |||
|---|---|---|---|
| NDC | {{viewModel.productServiceId}} | Label | {{dvm.label}} |
| Extended Label | {{dvm.extendedLabel}} | Manufacturer | {{dvm.manufacturer}} |
| Form | {{dvm.form}} | Generic | {{dvm.generic}} |
| GPI | {{dvm.gpi}} | AHFS | {{dvm.ahfs}} |
| Summary Information | |||||
|---|---|---|---|---|---|
| Class | {{dvm.class}} | Multi-Source Code | {{dvm.multiSourceCode}} | 3rd Party Code | {{dvm.thirdPartyCode}} |
| RxOtc | {{dvm.rxOtc}} | Route Of Administration | {{dvm.routeOfAdministration}} | Item Status | {{dvm.itemStatus}} |
| Unit Of Use | {{dvm.unitOfUse}} | Top 500 | {{dvm.top500}} | Maintenance Indicator | {{dvm.maintenanceIndicator}} |
| DEA Code | {{dvm.deaCode}} | DESI Code | {{dvm.desiCode}} | Repackaged Drugs | {{dvm.repackagedDrugs}} |
| Pricing Information | |||
|---|---|---|---|
| Package Price | Unit Price | Effective Date | |
| Current AWP | {{dvm.currentAwpPackagePrice}} | {{dvm.currentAwpUnitPrice}} | {{dvm.currentAwpEffectiveDate}} |
| Previous AWP | {{dvm.previousAwpPackagePrice}} | {{dvm.previousAwpUnitPrice}} | {{dvm.previousAwpEffectiveDate}} |
| AAWP | {{dvm.aawpUnitPrice}} | {{dvm.aawpEffectiveDate}} | |
| HCFA | {{dvm.hcfaUnitPrice}} | {{dvm.hcfaEffectiveDate}} | |
| WAC | {{dvm.wacUnitPrice}} | ||
| DP | {{dvm.dpUnitPrice}} | {{dvm.dpEffectiveDate}} | |
| Medispan Markup Rate | {{dvm.medispanMarkupRate}} |


My Profile
Name
Email address
DOB
Phone no
Degree
Designation
Date created
Date Updated
INSERT
DELETE
VIEW


|
QuantumLibrary
|
Implementation of a configuration class for Sequencer. More...
#include <quantum_sequencer_configuration.h>
Public Types | |
| using | ExceptionCallback = std::function< void(std::exception_ptr exception, void *opaque)> |
| Callback for unhandled exceptions in tasks posted to Sequencer. More... | |
Public Member Functions | |
| void | setControlQueueId (int controlQueueId) |
| Sets the id of the control queue. More... | |
| int | getControlQueueId () const |
| Gets the id of the control queue. More... | |
| void | setBucketCount (size_t bucketCount) |
| Sets the minimal number of buckets to be used for the context hash map. More... | |
| size_t | getBucketCount () const |
| gets the minimal number of buckets to be used for the context hash map More... | |
| void | setHash (const Hash &hash) |
| Sets the hash function to be used for the context hash map. More... | |
| const Hash & | getHash () const |
| Gets the hash function to be used for the context hash map. More... | |
| void | setKeyEqual (const KeyEqual &keyEqual) |
| Sets the comparison function to be used for all SequenceKey comparisons for the context hash map. More... | |
| const KeyEqual & | getKeyEqual () const |
| Gets the comparison function to be used for all SequenceKey comparisons for the context hash map. More... | |
| void | setAllocator (const Allocator &allocator) |
| Sets the allocator for all SequenceKey comparisons for the context hash map. More... | |
| const Allocator & | getAllocator () const |
| Gets the allocator for all SequenceKey comparisons for the context hash map. More... | |
| void | setExceptionCallback (const ExceptionCallback &exceptionCallback) |
| Sets the exception callback for Scheduler. More... | |
| const ExceptionCallback & | getExceptionCallback () const |
| Gets the exception callback for Scheduler. More... | |
Implementation of a configuration class for Sequencer.
| SequenceKey | Type of the key based that sequenced tasks are associated with in Sequencer |
| Hash | Hash-function used for storing instances of SequenceKey in hash maps in Sequencer |
| KeyEqual | The equal-function used for storing instances of SequenceKey in hash maps in Sequencer |
| Allocator | The allocator used for storing instances of SequenceKey in hash maps in Sequencer |
| using Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::ExceptionCallback = std::function<void(std::exception_ptr exception, void* opaque)> |
Callback for unhandled exceptions in tasks posted to Sequencer.
| exception | pointer to the thrown exception |
| opaque | opaque data passed when posting a task |
| const Allocator & Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::getAllocator | ( | ) | const |
Gets the allocator for all SequenceKey comparisons for the context hash map.
| size_t Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::getBucketCount | ( | ) | const |
gets the minimal number of buckets to be used for the context hash map
| int Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::getControlQueueId | ( | ) | const |
Gets the id of the control queue.
| const SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::ExceptionCallback & Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::getExceptionCallback | ( | ) | const |
Gets the exception callback for Scheduler.
| const Hash & Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::getHash | ( | ) | const |
Gets the hash function to be used for the context hash map.
| const KeyEqual & Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::getKeyEqual | ( | ) | const |
Gets the comparison function to be used for all SequenceKey comparisons for the context hash map.
| void Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::setAllocator | ( | const Allocator & | allocator | ) |
Sets the allocator for all SequenceKey comparisons for the context hash map.
| allocator | the allocator |
| void Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::setBucketCount | ( | size_t | bucketCount | ) |
Sets the minimal number of buckets to be used for the context hash map.
| bucketCount | the bucket number |
| void Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::setControlQueueId | ( | int | controlQueueId | ) |
Sets the id of the control queue.
| controlQueueId | the queue id |
| void Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::setExceptionCallback | ( | const ExceptionCallback & | exceptionCallback | ) |
Sets the exception callback for Scheduler.
| exceptionCallback | the callback to set |
| void Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::setHash | ( | const Hash & | hash | ) |
Sets the hash function to be used for the context hash map.
| hash | the hash function |
| void Bloomberg::quantum::SequencerConfiguration< SequenceKey, Hash, KeyEqual, Allocator >::setKeyEqual | ( | const KeyEqual & | keyEqual | ) |
Sets the comparison function to be used for all SequenceKey comparisons for the context hash map.
| keyEqual | the comparison function |


Komphela: Tough Pirates job will help Mokwena grow
Cape Town - Rhulani Mokwena has been thrown in at the deep end at Orlando Pirates but Steve Komphela believes the experience will be crucial for his development.
Mokwena is leading the Soweto giants in his very first job as a head coach on an interim basis and he is currently struggling to get the Buccaneers firing on all cylinders as they hover around mid-table.
Komphela is convinced that the high-intensity environment will help Mokwena become a better coach, in the same way, the Kaizer Chiefs job helped the current Golden Arrows boss grow.
"Rhulani is in an environment where it is not easy. I know very well what he is going through," Komphela said as quoted by IOL.
"It is not easy, but we always talk. We tell him to listen and focus. It is a great honour and a privilege to be there.
"So, enjoy it and do your job so that after two years, you can say 'I was at Pirates'. You don't sleep there (at Pirates). If you sleep, you are lucky."
Reflecting on his own experiences, Komphela added: "When I left the environment I was at (at Chiefs) I had grey hair. When I went there, I was pitch black... but by the time I left it wasn't the same. But that's growth.
"The greatest growth happens in discomfort. If you don't want to grow, be comfortable. But if you want to grow, get into a territory that is uncomfortable."
- TeamTalk Media


{{ title }}
Router IP:
Patches Connected:
{{patch.patchName}}
Handle To Check:
Scan
Connect
Services
Streaming Characteristics
Check Handle Value
Pair
Start Streaming
Stop Streaming
Unpair All
Disconnect All
Export
Devices Found: {{ connectNum }}
Devices Connected: {{connectedArray.length}}
Current Stage: {{CurrentStage}}
Paired Patches:
Name: {{ patch.patchName }}
MAC: {{ patch.patchAddr }}
Handle To Write To:
Value To Write:
Response?:
Write To Handle
Disconnect


Copyright © 2001, 2002, 2003, 2008 Thai Open Source Software Center Ltd
See the file copying.html for copying permission.
This version of Jing implements
Jing also has experimental support for schema languages other than RELAX NG; specifically
A separate document describes this support in more detail.
Jing has a command-line user interface. It has no graphical user interface.
Jing is available for download as the file jing-20181222.zip, which contains binaries, source code and documentation. It requires a Java runtime compatible with the Java 2 Platform, Standard Edition (J2SE) version 1.4 (or any later version), such as the Java Runtime Environment (JRE), which can be downloaded here.
The latest version of Jing will always be available in the Downloads section of the project site.
Once you have installed a suitable Java runtime, you can run Jing by using the command:
java -jar jing.jar options schema XMLfile...
where schema
is the name of the file
containing the schema, and XMLfile...
are the
names of one or more XML files to be validated against this schema,
and options
are zero or more
options. If schema
is correct, and
each XMLfile...
is valid with respect to
schema
, then Jing will generate no output.
Otherwise, it will generate one or more error messages.
The following options are available:
-c
-e enc
enc
to read the
schema.-f
data
, list
,
element
and attribute
element in an
optional
element and then validating against the
transformed schema. This option may be useful while a document is
still under construction. This option also disables checking that for
every IDREF there is a corresponding ID.-i
-t
When you use jing.jar
with the -jar
option, any jar files that have the same names as the jar files
included with the Jing download and are in the same directory
as jing.jar
will be used automatically (i.e. they will be
added to the classpath), specifically:
xercesImpl.jar
xml-apis.jar
saxon.jar
isorelax.jar
Note that, when using the -jar
option, the JRE will
ignore any additional class path entries specified by
the -cp
or -classpath
options or by
the CLASSPATH
environment variable.
If you do not want use the -jar
option (perhaps
because you want to use some other .jar
files not
included with with Jing), then you must explicitly include all the
needed
.jar
files with a -cp
or
-classpath
option or with the CLASSPATH
environment variable, and specify the main class name as
com.thaiopensource.relaxng.util.Driver
. For example,
on Linux you could do you could do:
java -classpath path-to-dist/jing-20181222/bin/jing.jar com.thaiopensource.relaxng.util.Driver file.rng file.xml
This would use just jing.jar
and the standard Java
classes.
Jing uses a vendor-independent pluggable datatypes API that allows datatype libraries to be added at runtime and be interoperable with Java-based RELAX NG implementation that supports the API.
Jing also includes an implementation of a datatype library for the W3C XML Schema Part 2 datatypes. There is a separate document describing this implementation and how to use it.
If you wish to use Jing in your programs, you have a choice.
There is a Jing task that allows Jing to be invoked by the Ant build tool.
Development of Jing, together with Trang, takes place in the jing-trang project, which is hosted on Google Code.
If you find a bug or would like to request an enhancement, please create a new issue in the Issues section of the project site. You can talk with other users of Jing on the rng-users mailing list.
If you want to make changes to Jing, you should check out the source code from the project's Subversion repository. (The source code included in the Jing download is for reference purposes, and doesn't contain the supporting files, such as build scripts and test cases, that are needed for working conveniently with the source code.)
James Clark


Footnotes
dactl uses Barefoot plugin to create nice looking inline footnotes from those generated by kramdown, daktl’s markdown processor. Read on for more information about how to add footnotes to your posts and how to enable/disable Barefoot plugin.
What is Barefoot.js
I really like the look of inline-footnotes created by Bigfoot.js but it requires jQuery and loading whole library just to have footnotes seems excessive.
I found Barefoot.js when looking for an alternative an it does exactly what it says:
Barefoot is a lightweight Bigfoot.js alternative written in vanilla Javascript to create beautiful inline footnotes.
Barefoot grabs the common markup used for footnotes on the web, mostly generated by Markdown processors, and transform it into beautiful and meaningful footnotes.
For dactl’s purposes I have modified Barefoot’s default stylesheet:
- Adjusted the visuals a bit
- Footnote buttons show an icon, not a number
- Necessary changes to make it work with theme switcher
How to add footnotes to your posts
Adding footnotes to your posts is really easy.1
First, you need to insert a numbered footnote mark in your post to define where it should show up - it looks like this:
1 | Adding footnotes to your posts is really easy.[^1] |
Then, to put some content in those those numbered footnotes, you need to define it at the bottom of your post, like this:
1 | [^1]: Here's one for example |
How to turn off Barefoot plugin
Open _config.yml
file and change value in blog.footnotes_inline from true
to false
.
Restart your jekyll server and see the change in this post.
-
Here’s one for example ↩


?
By clicking Sign Up, you agree tp our Terms, Data Policy and Cookie Policy. You may recieve SMS notifications from us and can opt out at any time.


[§339D-6] Department responsibility. Beginning January 1, 2010, the department shall maintain and update a website and a toll-free number with current information on where covered entities can return covered electronic devices for recycling. [L Sp 2008, c 13, pt of §2]
Revision Note
Subsection (a) designation omitted.


Loading data
I, {{ $ctrl.isLoggedIn.name }}, the copyright holder of this work, irrevocably grant anyone the right to use this work under the Creative Commons Attribution ShareAlike 4.0 license. Anyone may use, share or remix this work, as long as they credit me and share any derivative work under this license.


Conclusive Coda
Home
About
Weather
Contact Us
The Team
Tucker Sheram
HTML, CSS, JavaScript, API
DigitalCrafts
Contact Tucker
Matt Chaleski
HTML, CSS and JavaScript
DigitalCrafts
Contact Matt
Michael Moore
HTML, CSS and JavaScript
DigitalCrafts
Contact Michael
Chris Miller
HTML, CSS and JavaScript
DigitalCrafts
Contact Chris


Composi Without JSX
Although we love JSX because of its brevity and clarity, some people really dislike it.
You can use Composi without JSX. You have two options: the Composi h function or Hyperx-es6.
H
The h
function lets you use hyperscript syntax to designate the HTML you want to create. When working with Composi, you will always be importing the h
function into your files to enable Composi's virtual dom. A Composi project is automatically configured to let Babel know know to use it when dealing with JSX. So, whether you use JSX or h
, both will result in the creation of the same virtual node. Take the following for example:
See the Pen Composi Tuts - Hyperx-1 by Robert Biggs (@rbiggs) on CodePen.
Now we can create the same result using h
:
See the Pen Composi Tuts - Hyperx-2 by Robert Biggs (@rbiggs) on CodePen.
Both of these produce the same virtual node. As you can see, the h
code looks quite similar to the virtual node that it creates:
// The virtual node created is:
{
type: "h2",
props: {
class: "title",
title: "Hello, Ellen!"
},
children: ["Hello, ", "Ellen", "!"]
}
Subcomponents With H
You can also create subcomponents when using h
. You write a function that returns the required hyperscript. Then you enclude it as an interpolation in the parent. Because this is hyperscript syntax, you'll need to use ${}
for interpolation:
See the Pen Composi Tuts - Hyperx-3 by Robert Biggs (@rbiggs) on CodePen.
If you prefer functional over classes, you will probably likeusing the h
funtion.
taggers
Typing out tags with the h
function can get verbose. We have created a hyperscript compatible NPM module called h-html
. What this does is provide a more compact function named after each tag you want to create. You therefore only need to provide props and children.
Installing:
npm i -D taggers
Example usage:
import {h, mount} from 'composi'
import {taggers} from 'taggers'
const {nav, h1} = taggers(h)
// Define tags:
function title(message) {
return nav(
{},
h1(
{},
'Hello, ${message}!'
)
)
}
// Mount the component:
mount(title('World'), 'header')
And here's a Codepen example:
See the Pen Composi with taggers-1 by Robert Biggs (@rbiggs) on CodePen.
h-html
Like Taggers, there is also h-html
, a module that allows you to use tag shortcuts. It's nearly double the size of taggers
, but easier to use. No need to pass in the h
, function, etc.
Installing:
npm i -D h-html
After installing, you can import it into your project. There are two ways you can do so, importing indidual tags, or importing them all on a alias.
import {h, mount} from 'composi'
import {nav, h1} from 'h-html'
// Define tags:
function title(message) {
return nav(
{},
h1(
{},
'Hello, ${message}!'
)
)
}
// Mount the tags:
mount(title('World'), 'header')
And here's a Codepen example:
See the Pen Composi with h-html-1 by Robert Biggs (@rbiggs) on CodePen.
Here's an example importing all tags as an alias:
import {h, mount} from 'composi'
import * as t from 'h-html'
// Define tags:
function title(message) {
return t.nav(
{},
t.h1(
{},
'Hello, ${message}!'
)
)
}
// Mount the title:
mount(title('World'), 'header')
// Define list:
function list(data) {
// Define list Item:
function listItems(data) {
return data.map(item => t.li({}, `Item ${item}`))
}
return t.ul(
{class: 'list'},
listItems(data)
)
}
// Mount the list:
mount(list(['One', 'Two', 'Three']), 'section')
It's totally up to you which way you want to import h-html
. However, if you know you are going to use a lot of tags, it makes sense to import them on an alias.
And here's a Codepen example of tags being aliased:
See the Pen Composi with h-html-2 by Robert Biggs (@rbiggs) on CodePen.
Hyperx-es6
Another alternative to JSX is Hyperx. The original version is in CommonJS format and cannot be easily imported into a Composi project. Therefore we've create a clone called Hyperx-es6. The only difference is that Hyperx-es6 gets exported as an ES6 module. This means you can use normal ES6 module import syntax and Rollup and bundle it properly. Hyperx-es6 allows you to ES6 template literal instead of JSX. The results are the same. The biggest difference in use will be in the text editor. JSX with get proper syntax highlighting, whereas Hyperx-es6 template literals will be treated as strings.
Hyperx-es6 Converts Template Literals into Hyperscript
Hyperx-es6 converts template literals into the same format as JSX and h
. In this case, since we tell Hyperx-es6 to use the Composi h
function, the result will be a virtual node that Composi can use.
Installation and Use
You'll need to install Hyperx-es6 in your project and import it into any file where you want to use it. You'll have to make an update to your project's gulpfile.js
to know to include Hyperx-es6 when it bundles all the dependencies. And you'll also need to let Babel know to use Hyperx-es6 instead of Composi's h
function for creating virtual nodes.
# cd to your project and run:
npm i -D hyperx-es6
In your project's app.js
file add:
import {h, Component} from 'composi'
import {hyperx} from 'hyperx-es6'
// Tell Hyperx-es6 to use the Composi h function,
// by passing it to Hyperx-es6:
const html = hyperx(h)
]
With this in your file, you can start using Hyperx-es6. You could make functional components like with JSX, or use it inside of a class component. Below are some functional components with composition. We need to use ${}
for interpolation. Note that when using Hyperx, you'll be using the tagged template literal html
that you designated after importing Hyperx-es6. Note: in all the following Codepen examples, we're using the UMD version of Hyperx-es6 that we can load in the browser and access as a global variable.
See the Pen Composi Tuts - Hyperx-3 by Robert Biggs (@rbiggs) on CodePen.
Using Hyperx-es6 with a Class Component
You can also use Hyperx-es6 with class-based components. In the example below we have subcomponents using Hyperx-es6, listItem
and disclosure
. We integrate them into the parent component List
, which is an extension of Component. Because the subcomponents are functions, we need to invoke them with interpolation, so they get enclosed with ${}
. Our List
component also implements events. You can click on a list item to get an alert and you can add a new list item as well.
See the Pen Composi Tuts - Hyperx-4 by Robert Biggs (@rbiggs) on CodePen.
Load From a CDN
You can also load Hyperx-es6 from a CDN:
<script<EMAIL_ADDRESS><script<EMAIL_ADDRESS>When you load Hyperx-es6 from a CDN, you can access it like this:
const { h, render, Component } = composi
// When using CDN version, notice capitalized: Hyperx.
// ES6 import is lowercase: import {hyper} from 'hyper-es6'
const {hyperx} = Hyperx
// Tell Hyperx-es6 to use the Composi h function,
// by passing it to hyperx:
const html = hyperx(h)
// Start using html`` to define component markup.


Loading data asynchronously with MVC controllers and partials
We can convert MVC pages to load content asynchronously, using jQuery.load(…) and PartialView.
Parallelism options
Since jQuery.load is XHR via jQuery.Deferred(), we can run multiple calls. If you dont need to support browsers, you can also use promises or async/await pattern
Sync MVC example (w/ existing partial)
MyController.cs:
[HttpGet]
public async Task<ActionView> Index() {
return View("Index", await GetModel());
}
private async Task<MyModel> GetModel() {
await Task.Delay(1000);
return new MyModel() {
apple = 1,
taco = 2
};
}
Index.cshtml:
@{ Html.RenderAction("_MyPartial1"); }
@{ Html.RenderAction("_MyPartial2"); }
_MyPartial1.cshtml:
@Model.Apple
_MyPartial2.cshtml:
@Model.Taco
Conversion process
- Split GetModel code into PartialView routes
The View(…) overload we’ll use is string, object.
PartialView inherits from ActionView. Always use the most base return signature possible.
If you need state between form submits, you’ll also need an model param in Index route.
[HttpGet]
public async Task<ActionView> Index() {
return View("Index", await GetModel());
}
[HttpGet]
public async Task<ActionResult> GetAppleModel() {
await Task.Delay(1000);
return new AppleModel() {
Apple = 1
};
}
[HttpGet]
public async Task<ActionResult> GetTacoModel() {
await Task.Delay(1000);
return new TacoModel() {
Taco = 2
};
}
Lifecycle:
- initial page load
- index route
- ajax calls routes
- routes fetch data asynchronously in parallel
- jQuery.deferred done
- partial html rendered
- form submit, which may start process from beginning again (index route), or just a route if using partial update
- Call routes via jQuery.load
It’s important to note that $.ready cant be relied on as a hook for partials. Usually the document loads BEFORE partials load. This means we need to use inside partial (instead of @section scripts { }), where $.ready is still used (with the callback firing immediately) This applies to any JS that loads stuff at runtime
Example (pre ES6)
@section scripts {
<script>
$(document).ready(function() {
$('.content-apple').load('GetAppleModel', 'MyController');
$('.content-taco').load('GetTacoModel', 'MyController');
});
</script>
}
We can make this more strongly typed via razor engine + c# nameof:
@section scripts {
<script>
$(document).ready(function() {
$('.content-apple').load(@nameof(MyController.GetAppleModel), @nameof(MyController));
$('.content-taco').load(@nameof(MyController.GetTacoModel), @nameof(MyController));
});
</script>
}
This way, if we rename controller or method, razor is also updated.
Since code is always growing due to businesses forcing new requirements to out-compete other businesses for profit, code maintainability and productivity are important factors. We can improve those code-ilities with code like this.
How far can i take auto-properties after converting?
Once routes with parameters come into play, MVC cant auto-map URL parameters to route parameter objects, if the model property does not have private setter.
Model properties should always have getters AND setters where required. Otherwise remove property setters.
Should i make query params strongly typed too?
Consider:
$('.content').load(@nameof(MyController.GetModel)?Model.Apple=1, @nameof(MyController));
Assuming we’ve used a Model predirective in our cshtml.
Here, Apple is a property in a POCO
But models are usually POCO’s when content is loaded synchronously.
Once code is changed to load content asynchronously, we have more routes.
And this means those big monolithic models now become “complex” & nested models.
Example
public class IndexModel {
public int Apple {get;set;}
}
Now consider this:
public class AppleModel {
public int Apple {get;set;}
}
public class IndexModel {
public AppleModel AppleModel {get;set;}
}
MVC auto-maps complex model properties to URL params by using dot syntax. For a GET route, this would be:
/root/MyController/GetAppleModel?AppleModel.Apple=1
Making this strongly typed means making the $.load like:
$.load(@nameof(MyController.GetAppleModel)?@(nameof(IndexModel.AppleModel<EMAIL_ADDRESS>Here, strongly-typed code has actually degraded maintainability & productivity due to lower readability.
Sticking to non-strongly-typed strings are probably better for complex POCOs:
$.load<EMAIL_ADDRESS>And only use strongly typed JS URL parameters for POCO’s.


PerfView is an application designed to simplify the collection and analysis of performance data.
Pressing the F1 key will give you help for current view. Any blue hyperlinks in the UI also take you to help. For an overview of PerfView see the User's Guide. If you wish to ask a question that the documentation did not answer or if you have feedback or a bug report, see the feedback instructions in the documentation.
If you are new to PerfView, we strongly recommend reading the tutorial or watch the tutorial videos. It should only take 10-20 minutes to walk through. Also recommend is reading what perfView can do for you.
Optimizing Time, or Unmanaged Memory: Collecting ETW Profile Data
PerfView can collect a time based ETW trace for investigating CPU and Server Response Time, as well as Wall Clock / Blocked Time, Unmanaged memory or Managed memory. For these cases PerfView has two ways of collecting ETW trace data:
Optimizing Managed Memory: Collecting .NET Runtime Heap Data
PerfView can also collect data about the GC heap of a .NET Runtime process. See GC Heap Quick Start for more details.
Viewing Existing Profile Data
The result of data collection is data stored in data files of varying extensions. The left pane is a list of file names in the current directory that PerfView knows how to open. Simply double click on the file of interest to view the data. You can change the current directory by either double clicking on a subdirectory or typing the name in the textbox in the upper left.
If the file contains more than one view of the data then double clicking on the object populates children nodes in the treeview. Double clicking on one of the children will open the viewer for that view. Right clicking and selecting 'Help on Item' will take you to the help for that particular entry in the viewer. There are two main viewers of profile data:
Diffing Profile Data PerfView has the ability to determine the difference between two traces, which is very useful in doing regression analysis. To use the Diff functionality first view both traces in separate stack view windows and (if necessary) filter out all but the region that represents an equivalent amount of work in each view. Then use the Diff menu on the stack view window of the 'regressed' trace and to select the other window as its baseline. See Diff Help for more.


{{ page.title }} {{ page.date | date_to_string }} {{ content }} {% if page.tags contains 'raspberrypi' %} This is one of a series of posts I've written about the Raspberry Pi. Why not read some other Raspberry Pi related posts? {% endif %}


The Association for Computing Machinery is the largest international organization devoted to science and education related to computing.
It is a non-profit organization founded in 1947 that provides its members access to professional publications, conferences, and career resources.
The ACM also has student programming competitions.
| Position | Name | Slack |
|---|---|---|
| President | Oren Friedman | @orenwf |
| Vice President | Dan Kim | @dan_es_kim |
| Secretary | Yenyu Huang | @yenyu.huang |
| Treasurer | Charusmita Madan | @charusmita |
| Learning Committee Chair | Gib Bhojraj | @gib |
| Social Outreach Chair | Sumaiya Tabassum | @sumut93 |
| IT Committee Chair | Eric Kwon | @rnjsqudghk |
We are the CUNY Queens College student chapter of the Association for Computing Machinery.
We talk tech, make tech, provide informal CS tutoring during the week in addition to the existing CS tutors (if available), and we regularly bring guest speakers to give professional advice. We're always open to suggestions for other things we could do as a group.
Have an idea? Contact Us!
The following is a list of past officers of the ACM @ QC.
| Position | Name |
|---|---|
| President | Adolfas Lapsys |
| Treasurer | Henry He |


EXOSIMS package¶
Subpackages¶
- EXOSIMS.Prototypes package
- Submodules
- EXOSIMS.Prototypes.BackgroundSources module
- EXOSIMS.Prototypes.Completeness module
- EXOSIMS.Prototypes.Observatory module
- EXOSIMS.Prototypes.OpticalSystem module
- EXOSIMS.Prototypes.PlanetPhysicalModel module
- EXOSIMS.Prototypes.PlanetPopulation module
- EXOSIMS.Prototypes.PostProcessing module
- EXOSIMS.Prototypes.SimulatedUniverse module
- EXOSIMS.Prototypes.StarCatalog module
- EXOSIMS.Prototypes.SurveyEnsemble module
- EXOSIMS.Prototypes.SurveySimulation module
- EXOSIMS.Prototypes.TargetList module
- EXOSIMS.Prototypes.TimeKeeping module
- EXOSIMS.Prototypes.ZodiacalLight module
- Module contents
Submodules¶
EXOSIMS.MissionSim module¶
-
class
EXOSIMS.MissionSim.
MissionSim
(scriptfile=None, nopar=False, verbose=True, **specs)[source]¶ Bases:
object
Mission Simulation (backbone) class
This class is responsible for instantiating all objects required to carry out a mission simulation.
Parameters: - **specs – user specified values
- scriptfile (string) – JSON script file. If not set, assumes that dictionary has been passed through specs.
-
StarCatalog
¶ StarCatalog module – StarCatalog class object (only retained if keepStarCatalog is True)
-
PlanetPopulation
¶ PlanetPopulation module – PlanetPopulation class object
-
PlanetPhysicalModel
¶ PlanetPhysicalModel module – PlanetPhysicalModel class object
-
OpticalSystem
¶ OpticalSystem module – OpticalSystem class object
-
ZodiacalLight
¶ ZodiacalLight module – ZodiacalLight class object
-
BackgroundSources
¶ BackgroundSources module – Background Source class object
-
PostProcessing
¶ PostProcessing module – PostProcessing class object
-
Completeness
¶ Completeness module – Completeness class object
-
TargetList
¶ TargetList module – TargetList class object
-
SimulatedUniverse
¶ SimulatedUniverse module – SimulatedUniverse class object
-
Observatory
¶ Observatory module – Observatory class object
-
TimeKeeping
¶ TimeKeeping module – TimeKeeping class object
-
SurveySimulation
¶ SurveySimulation module – SurveySimulation class object
-
SurveyEnsemble
¶ SurveyEnsemble module – SurveyEnsemble class object
-
modules
¶ dict – Dictionary of all modules, except StarCatalog
-
verbose
¶ boolean – Boolean used to create the vprint function, equivalent to the python print function with an extra verbose toggle parameter (True by default). The vprint function can be accessed by all modules from EXOSIMS.util.vprint.
-
seed
¶ integer – Number used to seed the NumPy generator. Generated randomly by default.
-
logfile
¶ string – Path to the log file. If None, logging is turned off. If supplied but empty string (‘’), a temporary file is generated.
-
loglevel
¶ string – The level of log, defaults to ‘INFO’. Valid levels are: CRITICAL, ERROR, WARNING, INFO, DEBUG (case sensitive).
-
DRM2array
(key, DRM=None)[source]¶ Creates an array corresponding to one element of the DRM dictionary.
Parameters: - key (string) – Name of an element of the DRM dictionary
- DRM (list of dicts) – Design Reference Mission, contains the results of a survey simulation
Returns: Array containing all the DRM values of the selected element
Return type: elem (ndarray / astropy Quantity array)
-
checkScript
(scriptfile, prettyprint=False, tofile=None)[source]¶ Calls CheckScript and checks the script file against the mission outspec.
Parameters: - scriptfile (string) – The path to the scriptfile being used by the sim
- prettyprint (boolean) – Outputs the results of Checkscript in a readable format.
- tofile (string) – Name of the file containing all output specifications (outspecs). Default to None.
Returns: Output string containing the results of the check.
Return type: out (String)
-
filter_status
(key, status, DRM=None, obsMode=None)[source]¶ Finds the values of one DRM element, corresponding to a status value, for detection or characterization.
Parameters: - key (string) – Name of an element of the DRM dictionary
- status (integer) – Status value for detection or characterization
- DRM (list of dicts) – Design Reference Mission, contains the results of a survey simulation
- obsMode (string) – Observing mode type (‘det’ or ‘char’)
Returns: Array containing all the DRM values of the selected element, and filtered by the value of the corresponding status array
Return type: elemStat (ndarray / astropy Quantity array)
-
genOutSpec
(tofile=None)[source]¶ Join all _outspec dicts from all modules into one output dict and optionally write out to JSON file on disk.
Parameters: tofile (string) – Name of the file containing all output specifications (outspecs). Default to None. Returns: Dictionary containing additional user specification values and desired module names. Return type: out (dictionary)
-
genWaypoint
(duration=365, tofile=None)[source]¶ generates a ballpark estimate of the expected number of star visits and the total completeness of these visits for a given mission duration
Parameters: - duration (int) – The length of time allowed for the waypoint calculation, defaults to 365
- tofile (string) – Name of the file containing a plot of total completeness over mission time, by default genWaypoint does not create this plot
Returns: Output dictionary containing the number of stars visited, the total completness achieved, and the amount of time spent integrating.
Return type: out (dictionary)
-
get_logger
(logfile, loglevel)[source]¶ Set up logging object so other modules can use logging.info(), logging.warning, etc.
Parameters: - logfile (string) – Path to the log file. If None, logging is turned off. If supplied but empty string (‘’), a temporary file is generated.
- loglevel (string) – The level of log, defaults to ‘INFO’. Valid levels are: CRITICAL, ERROR, WARNING, INFO, DEBUG (case sensitive).
Returns: Mission Simulation logger.
Return type: logger (logging object)
-
reset_sim
(genNewPlanets=True, rewindPlanets=True)[source]¶ Convenience method that simply calls the SurveySimulation reset_sim method.
EXOSIMS.e2eTests module¶
End to End Test Suite for EXOSIMS
- Run as:
- >python e2eTests.py
This code will sequentially execute all script files found in: EXOSIMS_ROOT/EXOSIMS/Scripts/TestScripts and print a summary of the results. A script execution includes instantiating a MissionSim object using the script, running a simulation via MissionSim.run_sim(), and resetting the simulation using MissionSim.reset_sim(). Possible outcomes for each test are:
PASS FAIL - Instantiation FAIL - Execution FAIL - Reset


OF MICE AND MEN A film review by Ken Johnson Copyright 1993 Ken Johnson
1:59, PG-13, Drama, 1992 Director: Gary Sinise Cast: John Malkovich, Gary Sinise, Sherilyn Fenn, Ray Walston, Alexis Arquette, Joe Morton, Casey Siemaszko, John Terry, Noble Willingham
Gary Sinise and John Malkovich are migrant farm workers. John Malkovich isn't very bright and keeps getting the two in trouble. Sinise watches over Malkovich and tries to keep him out of trouble. They go to work on Noble Willingham's farm where Malkovich starts having problems with Willingham's son Casey Siemaszko.
OF MICE AND MEN is the third film version of John Steinbeck's novel. I haven't seen the 1939 version yet. I think that this version of OF MICE AND MEN is much better than the 1981 television film (which received a three). This film follows the novel very closely. I definitely recommend this film to everybody. On a scale of zero to five, I give OF MICE AND MEN a five. OF MICE AND MEN is rated PG-13 for explicit language and graphic violence.
The cast for this version is much better than the '81 version. I think that John Malkovich (SHADOWS AND FOG, EMPIRE OF THE SUN) does a much better Lenny than Randy Quaid did. Likewise Gary Sinise does a better George than Robert Blake did. Ray Walston (BLOOD RELATIONS, POPCORN, and for all of you who wrote back on my review of POPCORN, "My Favorite Martian") gave the best performance in this film. Walston plays the old man on the farm and I feel that he adds a lot to the film. Sherilyn Fenn (MERIDIAN: KISS OF THE BEAST, BACKSTREET DREAMS) gives her best performance since TWO MOON JUNCTION as Casey Siemaszko's flirtatious wife. Casey Siemaszko (BREAKING IN, THREE O'CLOCK HIGH) is great as the boss's cruel son.
This film is very well written, and gets extremely dramatic in places (I haven't seen so many wet eyes leaving the theater). I think that this film will have a better impact if you see it in the theater, so do so if you have the chance still. It has been released on video cassette. Both the settings and photography for this film are top notch.
-------- Ken Johnson<EMAIL_ADDRESS>.
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


copy/paste stopped working on my mac (Xquartz) between xterms and Chrome.
I'm still sudo updating port (grr mavericks) but I think I found the real culprit/solution
adding this to my .XDefaults
XTerm*selectToClipboard: true
and relaunching my xterms seemed to fix it.
yeah, I'm not totally sure this is the fix. it might just be that restarting my xterm was enough to get it working again. yay for gnu screen :)
the saga continues... I noticed that selecting text in emacs wasn't working either. I launch my emacs with emacsclient -n -c connecting to a Emacs I started with emacs --daemon
'(mouse-drag-copy-region t)
I also found this helpful when looking at this....
echo -n 'primary: '; xclip -select primary -o; echo ''; echo -n 'clip : '; xclip -select clipboard -o; echo ''


THE MIRROR HAS TWO FACES A film review by James Berardinelli Copyright 1996 James Berardinelli
RATING (0 TO 10): 6.0 Alternative Scale: **1/2 out of ****
United States, 1996 U.S. Release Date: 11/15/96 (wide) Running Length: 2:06 MPAA Classification: PG-13 (Profanity, mature themes) Theatrical Aspect Ratio: 1.85:1
Cast: Barbra Streisand, Jeff Bridges, Lauren Bacall, Pierce Brosnan, Mimi Rogers, George Segal, Brenda Vaccaro, Austin Pendleton Director: Barbra Streisand Producers: Barbra Streisand and Arnon Milchan Screenplay: Richard LaGravenese Cinematography: Dante Spinotti and Andrzej Bartkowiak Music: Marvin Hamlisch U.S. Distributor: TriStar Pictures
The most notable thing about THE MIRROR HAS TWO FACES, director Barbra Streisand's third effort behind the camera, is its long and strife-filled production history. The actual film that resulted is, at best, decent, and doesn't add anything new or interesting to the romantic comedy genre. In fact, what THE MIRROR HAS TWO FACES is in desperate need of is an editor. At over two hours, this film drags on for far too long. There comes a point in any romance when the characters must either be broken apart or brought together once and for all. By delaying that moment for about twenty unnecessary minutes, Streisand risks losing her audience to disinterest.
The basic storyline isn't all that complicated. Streisand plays Rose Morgan, a professor at Columbia University who teaches a course in Romantic Literature. Jeff Bridges is Gregory Larkin, a math professor. Neither has a particularly satisfying love life. Frumpy Rose, the proverbial ugly duckling in search of romance, is constantly disappointed by her dates.  So, when Rose's sister, Claire (Mimi Rogers), reads a companionship ad that Gregory places in the paper, she contrives a meeting between the two. Gregory and Rose strike up a fast friendship that leads to an unconventional marriage. However, even after the wedding, their relationship remains platonic, and when Rose expresses a desire to have sex, Gregory flees.
Roughly the first hour of THE MIRROR HAS TWO FACES is enjoyable. We are introduced to the characters, see them interact, investigate their hopes, dreams, and fantasies, and watch them slowly, tentatively, test their feelings for each other. There are some wonderful discourses on the nature of love that pose intriguing questions, a few of which the film goes on to explore at greater length.
Unfortunately, the second half of the movie isn't as strong. Gregory, who struggles mightily to attain believability early, devolves into a caricature struggling with an implausible problem (he's afraid to have sex with his wife). The film's delightful, romantic mood deflates quickly as Streisand starts to explore issues of insecurity and empowerment. Two dimensional figures like Rose's "dream man", Alex (Pierce Brosnan), and her best friend (Brenda Vaccaro) make brief, unsatisfactory appearances to illustrate different aspects of Rose's personality after a makeover gives her self-confidence.
In some ways, THE MIRROR HAS TWO FACES treads in similar territory to that which was explored earlier this year by the more successful THE TRUTH ABOUT CATS AND DOGS. Janeane Garafolo's character there, like Streisand's here, is insecure about her appearance and becomes convinced that because she's "unattractive", she can never have a romantic relationship. The principal difference between the two films is one of tone. CATS AND DOGS maintains a light-hearted, occasionally goofy air, while THE MIRROR HAS TWO FACES combines uneven comedy with the pretentiousness of trying to say something serious.
The cast is populated with good actors, which makes the lack of standout performances disappointing. Streisand is by far the best, doing an excellent job of mixing wry humor, pathos, and longing. Rose is the only character we ever really care about. Jeff Bridges plays Gregory a little too broadly. While his mingling of perkiness and naivete elicits a few laughs, it erodes Gregory's credibility as a living, breathing human being.  There are also moments, however, when she's in top form. In fact, Bacall and Streisand combine for one of the film's rare gems -- a scene where Rose asks her mother, "What did it feel like to be beautiful?" Supporting roles are filled by Pierce Brosnan, George Segal, Mimi Rogers, Brenda Vaccaro, and Austin Pendleton.
Streisand's direction is more sure here than it was in the overrated PRINCE OF TIDES, but the rambling script (based on that of a 1958 French film) ultimately lets her down. THE MIRROR HAS TWO FACES has a certain charm, but most of the enchantment wears off before the climax. Streisand has a reputation as a perfectionist who will drive people hard to attain the best results possible. (A number of cast and crew members, including Dudley Moore and cinematographer Dante Spinotti, left in mid-production, because of "creative differences" with her.) Nevertheless, if the director truly is satisfied with the final cut, then her idea of perfection differs somewhat from mine.
- James Berardinelli e-mail<EMAIL_ADDRESS>ReelViews web site: http://www.cybernex.net/~berardin
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


S.O.L.I.D
| SRP |
Single responsibility principle |
| OCP |
Open/closed principle |
| LSP |
Liskov substitution principle |
| ISP |
Interface segregation principle |
| DIP |
Dependency inversion principle |
Uncle Bob thoughts
Single Responsibility Principle
"A class should have one, and only one, reason to change."
Classes should be small, focused, and have a high cohesion
More explanations
Open/closed principle
"Software entities (classes, modules, functions, etc.) should be open for
extension, but closed for modification"
You should be able to extend a classes behavior, without modifying it.
Open For Extension / Closed for Modification
More explanations
Liskov substitution principle
"Objects in a program should be replaceable with instances of their subtypes without altering
the correctness of that program."
Derived classes must be substitutable for their base classes.
More explanations
Interface segregation principle
"Many client-specific interfaces are better than one general-purpose interface."
Keep interfaces small and focused
Want more ?
Dependency inversion principle
"Code should depend on abstractions, not on concretions."
Class shouldn’t instantiate its own collaborators but rather have their interfaces passed in
Yet again !


Note:Once the category is deleted, the associated products exist but in orphan state ie with no category as their parent, they can be associated to some other category so that the product can be seen on the site.
| Name |
View Category Details |
| {{category.name}} |
|


JavaOnTracks is a java based Framework It provides an MVC type framework,as well as many many other features. See
http://www.javaontracks.net/
for more infos. @author thibautc


var container = this.container,
layout = container.layout,
v1 = container.v1,
v2 = container.v2,
v3 = container.v3,
v4 = container.v4,
v5 = container.v5,
v6 = container.v6,
v7 = container.v7,
v8 = container.v8,
v9 = container.v9;
// Verify collapseparent works
assert.equal(74, container.innerheight, 'The innerheight of the container should be (row heights + linespacing + lineinset + lineoutset).');
// Verify all views are positioned correctly
assert.equal(2, v1.x, 'The first view has an x position of the inset.');
assert.equal(4, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(103, v2.x, 'The second view has an x position of the inset + first view width + spacing.');
assert.equal(4, v2.y, 'The second view has a y position of the lineinset.');
assert.equal(2, v9.x, 'The ninth view has an x position of the inset.');
assert.equal(48, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
// Change view width to be smaller but without changing wrap.
v1.setAttribute('width', 80);
assert.equal(2, v1.x, 'The first view has an x position of the inset.');
assert.equal(4, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(83, v2.x, 'The second view has an x position of the inset + first view width + spacing.');
assert.equal(4, v2.y, 'The second view has a y position of the lineinset.');
assert.equal(2, v9.x, 'The ninth view has an x position of the inset.');
assert.equal(48, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
// Change view width to be larger so that wrap will change
v1.setAttribute('width', 101);
assert.equal(2, v1.x, 'The first view has an x position of the inset.');
assert.equal(4, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(104, v2.x, 'The second view has an x position of the inset + first view width + spacing.');
assert.equal(4, v2.y, 'The second view has a y position of the lineinset.');
assert.equal(103, v9.x, 'The ninth view has an x position of the inset.');
assert.equal(48, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
// Make view height smaller such that row height won't change
v2.setAttribute('height', 15);
assert.equal(2, v1.x, 'The first view has an x position of the inset.');
assert.equal(4, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(104, v2.x, 'The second view has an x position of the inset + first view width + spacing.');
assert.equal(4, v2.y, 'The second view has a y position of the lineinset.');
assert.equal(103, v9.x, 'The ninth view has an x position of the inset.');
assert.equal(48, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
// Change view height such that row height will change
v2.setAttribute('height', 25);
assert.equal(2, v1.x, 'The first view has an x position of the inset.');
assert.equal(4, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(104, v2.x, 'The second view has an x position of the inset + first view width + spacing.');
assert.equal(4, v2.y, 'The second view has a y position of the lineinset.');
assert.equal(103, v9.x, 'The ninth view has an x position of the inset.');
assert.equal(53, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
assert.equal(79, container.innerheight, 'The innerheight of the container should be (row heights + linespacing + lineinset + lineoutset).');
// Make several view heights smaller such that row height will change
v1.setAttribute('height', 15);
v2.setAttribute('height', 15);
v3.setAttribute('height', 15);
assert.equal(2, v1.x, 'The first view has an x position of the inset.');
assert.equal(4, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(104, v2.x, 'The second view has an x position of the inset + first view width + spacing.');
assert.equal(4, v2.y, 'The second view has a y position of the lineinset.');
assert.equal(103, v9.x, 'The ninth view has an x position of the inset.');
assert.equal(43, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
assert.equal(69, container.innerheight, 'The innerheight of the container should be (row heights + linespacing + lineinset + lineoutset).');
// Change inset so that line will unwrap
layout.setAttribute('inset', 1);
assert.equal(1, v1.x, 'The first view has an x position of the inset.');
assert.equal(4, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(1, v9.x, 'The ninth view has an x position of the inset.');
assert.equal(48, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
assert.equal(74, container.innerheight, 'The innerheight of the container should be (row heights + linespacing + lineinset + lineoutset).');
// Change outset so that line will wrap
layout.setAttribute('outset', 4);
assert.equal(1, v1.x, 'The first view has an x position of the inset.');
assert.equal(4, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(103, v2.x, 'The second view has an x position of the inset + first view width + spacing.');
assert.equal(4, v2.y, 'The second view has a y position of the lineinset.');
assert.equal(102, v9.x, 'The ninth view has an x position of the inset.');
assert.equal(43, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
assert.equal(69, container.innerheight, 'The innerheight of the container should be (row heights + linespacing + lineinset + lineoutset).');
// Change spacing
layout.setAttribute('spacing', 2);
assert.equal(1, v1.x, 'The first view has an x position of the inset.');
assert.equal(4, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(104, v2.x, 'The second view has an x position of the inset + first view width + spacing.');
assert.equal(4, v2.y, 'The second view has a y position of the lineinset.');
assert.equal(205, v9.x, 'The ninth view has an x position of the inset.');
assert.equal(43, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
// Change line inset
layout.setAttribute('lineinset', 2);
assert.equal(1, v1.x, 'The first view has an x position of the inset.');
assert.equal(2, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(104, v2.x, 'The second view has an x position of the inset + first view width + spacing.');
assert.equal(2, v2.y, 'The second view has a y position of the lineinset.');
assert.equal(205, v9.x, 'The ninth view has an x position of the inset.');
assert.equal(41, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
// Change line outset
layout.setAttribute('lineoutset', 1);
assert.equal(62, container.innerheight, 'The innerheight of the container should be (row heights + linespacing + lineinset + lineoutset).');
// Change line spacing
layout.setAttribute('linespacing', 1);
assert.equal(2, v1.y, 'The first view has a y position of the lineinset.');
assert.equal(39, v9.y, 'The ninth view has a y position of the lineinset + first two row heights + spacing.');
assert.equal(60, container.innerheight, 'The innerheight of the container should be (row heights + linespacing + lineinset + lineoutset).');
// Reverse the layout
layout.setAttribute('reverse', true);
assert.equal(205, v1.x, 'The first view has an x position of 205.');
assert.equal(44, v1.y, 'The first view has a y position of 44.');
assert.equal(103, v2.x, 'The second view has an x position of 103.');
assert.equal(44, v2.y, 'The second view has a y position of 44.');
assert.equal(1, v9.x, 'The ninth view has an x position of 1.');
assert.equal(2, v9.y, 'The ninth view has a y position of 2.');
// Unreverse
layout.setAttribute('reverse', false);
// Change axis
layout.setAttribute('axis', 'y');
assert.equal(2, v1.x, 'The first view has an x position of 2.');
assert.equal(1, v1.y, 'The first view has a y position of 1.');
assert.equal(104, v4.x, 'The fourth view has an x position of 104.');
assert.equal(1, v4.y, 'The fourth view has a y position of 1.');
assert.equal(306, v9.x, 'The ninth view has an x position of 306.');
assert.equal(23, v9.y, 'The ninth view has a y position of 23.');
assert.equal(407, container.innerwidth, 'The innerwidth of the container should be 407.');
// Change height of the container so 1 row is removed
container.setAttribute('height', 100);
assert.equal(2, v1.x, 'The first view has an x position of 2.');
assert.equal(1, v1.y, 'The first view has a y position of 1.');
assert.equal(205, v9.x, 'The ninth view has an x position of 205.');
assert.equal(1, v9.y, 'The ninth view has a y position of 1.');
assert.equal(306, container.innerwidth, 'The innerwidth of the container should be 306.');
// Hide a view
v9.setAttribute('visible', false);
assert.equal(205, container.innerwidth, 'The innerwidth of the container should be 205.');
// Show a view
v9.setAttribute('visible', true);
assert.equal(306, container.innerwidth, 'The innerwidth of the container should be 306.');


| Adimoll BO General Information
-
| Synonyms: |
BOA; Benzyl octyl adipate; Benzyl 2-ethylhexyl adipate; 2-ethylhexyl phenylmethyl hexane-1,6-dioate |
| Molecular Formula: |
C21H32O4 |
| CAS Registry No.: |
58394-64-2 |
| Chemical Category: |
Adipates |
Usage and Performance Characteristics
-
| Outstanding Properties: |
Good light stability & low-temperature resistance |
| Used for Polymeric Materials: |
PVC, NBR, SBR, PVAc |
| Used for Products: |
Coatings, tubing, film, adhesive |
Physical Properties
-
| Aggregate State at 25°C: |
Liquid |
| Boiling Point, °C: |
220.0 @ 0.5 kPa |
| Density, kg/m3: |
1,016 (0°C ); 1,000 (20°C); 996 (25°C); 985 (40°C); 977 (50°C); 969 (60°C); 962 (100°C) |
| Dynamic Viscosity, cP: |
40 (0°C); 25 (10°C); 18 (20°C); 15 (25°C); 12 (30°C); 8 (40°C); 4 (70°C) |
| Vapor Pressure, kPa: |
0.008 (100°C); 0.018 (140°C); 0.06 (160°C); 5 (200°C) |
Chemical Properties
-
| Acid Number, mg KOH/g: |
0.1 |
| Hildebrand Solubility Parameter, MPa1/2: |
18.55 |
| Saponification Value, mg KOH/g: |
320 |
Optical Properties
-
| Color, Platinum-Cobalt Scale: |
80 |
| Refractive Index: |
1.481 (n20D) |
Hazard-Related Data
-
| Flash Point Temperature, °C: |
210 |
Environmental Parameters
-
| Theoretical Oxygen Demand, ThOD, g/g: |
2.48 |
Plasticizers Database (2nd Electronic Edition) Copyright © 2004 by ChemTec Publishing |


This is a take-home coding challenge from a top tech company. The spec is providied verbatim.
Suppose we have some input data describing a graph of relationships between parents and children over multiple generations. The data is formatted as a list of (parent, child) pairs, where each individual is assigned a unique integer identifier.
For example, in this diagram and the sample input, 3 is a child of 1 and 2, and 5 is a child of 4:
10
/
1 2 4 11
\ / / \ /
3 5 8
\ / \ \
6 7 9
Write a function that, given the dataset and the ID of an individual in the dataset, returns their earliest known ancestor – the one at the farthest distance from the input individual. If there is more than one ancestor tied for “earliest”, return the one with the lowest numeric ID. If the input individual has no parents, the function should return -1.
Example input
6
1 3
2 3
3 6
5 6
5 7
4 5
4 8
8 9
11 8
10 1
Example output
10
Clarifications: * The input will not be empty. * There are no cycles in the input. * There are no “repeated” ancestors – if two individuals are connected, it is by exactly one path. * IDs will always be positive integers. * A parent may have any number of children.


{{ current_target }}
{{#each title as |t|}}
| {{t}} |
{{/each}}
Last available |
{{#each packages_availability as |row|}}
| {{row.package_name}} |
{{#each row.availability_list as |status|}}
{{#if status}}
present |
{{else}}
missing |
{{/if}}
{{/each}}
{{#if row.last_available}}
{{row.last_available}} |
{{else}}
N/A |
{{/if}}
{{/each}}
Other targets
{{#each additional.tiers.tiers_and_targets as |tier_info|}}
{{tier_info.0}}
{{#each tier_info.1 as |target|}}
{{~#if target.1~}}
{{target.0}}
{{~else~}}
{{target.0~}}
{{/if~}}
{{/each}}
{{/each}}
{{#if additional.tiers.unknown_tier}}
Unknown tier targets
{{#each additional.tiers.unknown_tier as |target|}}
{{/each}}
{{/if}}


Welcome to the Hex Lighting Home Page!
Hex lighting is a company that sells high quality industrial lighting. Our lights are made from the best materials money can buy and our lightbulbs are the longest lasting.
Welcome to the Hex Lighting Home Page!
Hex lighting is a company that sells high quality industrial lighting. Our lights are made from the best materials money can buy and our lightbulbs are the longest lasting.
We sell all kinds of industrial lighting. You can choose a light from our catalog or design your own. Our team of artist and designers can help you make the perfect light for your home our buisness. You can even select the style and color of lightbulb
you put in your light.
We also offer a "Buy 2 Get 1 Free" deal on the lights in our catalog.
We get our colors from a hashtag called a hex color code. These codes are used by programmers to color aspects of a webpage or website. You can go to this link to choose the color you would like. All you have to do is type in a color in the search bar and write down the corresponding numbers or letters. This hashtag is the color you want your lightbulb to be not your actual light.


Nitpick employs Kodkod to find a finite model of the negated conjecture. The translation from HOL to Kodkod's first-order relational logic (FORL) is parameterized by the cardinalities of the atomic types occurring in it. Nitpick enumerates the possible cardinalities for each atomic type, exploiting monotonicity to prune the search space [BK11]. If a formula has a finite counterexample, the tool eventually finds it, unless it runs out of resources.
SAT solvers are particularly sensitive to the encoding of problems, so special care is needed when translating HOL formulas. As a rule, HOL scalars are mapped to FORL singletons and functions are mapped to FORL relations accompanied by a constraint. More specifically, an n-ary first-order function (curried or not) can be coded as an (n + 1)-ary relation accompanied by a constraint. However, if the return type is the type of Booleans, the function is more efficiently coded as an unconstrained n-ary relation. Higher-order quantification and functions bring complications of their own. A function from σ to τ cannot be directly passed as an argument in FORL; Nitpick's workaround is to pass |σ| arguments of type τ that encode a function table.
Nitpick, like most of Isabelle/HOL, is written in Standard ML. Unlike Isabelle itself, which adheres to the LCF small-kernel discipline, Nitpick does not certify its results and must be trusted.
Nitpick is available as part of Isabelle/HOL for all major platforms under a BSD-style license from
http://www.cl.cam.ac.uk/research/hvg/Isabelle
Thanks to Kodkod's amazing power, we expect that Nitpick will beat both Satallax and Refute with its hands tied behind its back.


Emacs Berlin Meetup: Using Threads in Emacs Lisp - the Tramp Case
Table of Contents
- 1. Emacs Lisp and Threads
- 2. Basic Thread Functions in Emacs Lisp
- 2.1. A thread is the concurrent invocation of a Lisp function.
- 2.2. If Emacs is compiled with thread support, there are some
- 2.3. Thread switching will occur upon explicit request via
- 2.4. The result of a thread evaluation is captured by
- 2.5. A thread could be signaled from another thread by
thread-signal
. - 2.6. There are further convenience variables and functions like
- 3. Thread Synchronization
- 4. I/O
- 5. Tramp Adaptions for Being thread-safe
- 6. Asynchronous File Operations
- 6.1. Shall be triggered by the user. In order to do this,
- 6.2. In the future, this prefix command is not restricted to
- 6.3. Implemented so far for the file visiting family of commands:
- 6.4. Visiting local files would profit only for veeeery large
- 6.5. An alternative approach to use asynchronous file operations
- 7. Outlook
- 7.1. Solve the I/O problem. First for input (keyboard), but
- 7.2. Improve performance. Apply more fine-tuned
thread-yield
- 7.3. Implement thread support for further file operations,
- 7.4. Make file operations for local files thread-aware.
- 7.5. Make
vc-refresh-state
thread-aware (callthried-yield
). - 7.6. Add indication for running asynchronous file operations
- 7.7. Add thread support to other packages, like
dired
.
- 8. The End
- 8.1. Local Variables:
- 8.2. org-confirm-babel-evaluate: nil
- 8.3. org-return-follows-link: t
- 8.4. org-hide-macro-markers: t
- 8.5. eval: (setq large-file-warning-threshold 100000000)
- 8.6. eval: (switch-to-buffer-other-frame (list-threads))
- 8.7. eval: (find-file "/nextcloud:albinus@ford#8081:20180825091134.jpg")
- 8.8. End:
1 Emacs Lisp and Threads
1.1 Treads have been added in Emacs 26.1. No major package
has used it there, 'tho.
1.2 During the current development of Emacs 27, Tramp has
started as first major package to apply threads. While
implementing this, thread support in Emacs has been
extended as needs arise. The following examples are based
on the Emacs git branch feature/tramp-thread-safe
; some
examples will work only there.
1.3 Other packages (Gnus, for example) plan also to use threads.
2 Basic Thread Functions in Emacs Lisp
2.1 A thread is the concurrent invocation of a Lisp function.
It runs until the execution of the function is finished, or it is interrupted by a signal. This is mostly cooperative, meaning that Emacs will only switch execution between threads at well-defined times.
(defun my-thread () (sleep-for 10)) (make-thread #'my-thread "my thread")
There is no real concurrency that two threads run in parallel on different CPUs. There is always only one active thread at any given time. Emacs threads are not intended for number crunching.
2.2 If Emacs is compiled with thread support, there are some
helper functions:
main-thread (current-thread) (all-threads)
2.3 Thread switching will occur upon explicit request via
thread-yield
, when waiting for keyboard input or for
process output (e.g., during accept-process-output
), or
during blocking operations relating to threads, such as
mutex locking or thread-join
.
(defvar wait t) (defun my-thread () (while wait (thread-yield)) (setq wait t)) (setq wait t) (make-thread #'my-thread "my thread 1") (make-thread #'my-thread "my thread 2") ;; (setq wait nil)
2.4 The result of a thread evaluation is captured by
thread-join
. It blocks the current thread until the requested
thread exits, or the current thread is signaled. This result could
be even retrieved by a thread-join
call after that thread has
finished, as many time as requested.
(defun my-thread1 () (sleep-for 10) ;; The result. 42) (defun my-thread2 () (message "Thread %s has returned %s" thread1 (thread-join thread1))) (setq thread1 (make-thread #'my-thread1 "my thread 1")) (setq thread2 (make-thread #'my-thread2 "my thread 2")) ;; (thread-join thread1)
2.5 A thread could be signaled from another thread by thread-signal
.
(defun my-thread1 () (sleep-for 10) (thread-signal thread2 'error '(data))) (defun my-thread2 () (condition-case err (while t (sleep-for 0.1)) (error (message "Thread %s signaled by `%s'" (current-thread) err)))) (setq thread1 (make-thread #'my-thread1 "my thread 1")) (setq thread2 (make-thread #'my-thread2 "my thread 2"))
Restriction: signaling the main thread does not work this way. The main thread just prints the error message.
(defun my-thread () (thread-signal main-thread 'error '(data))) (setq thread (make-thread #'my-thread "my thread"))
2.6 There are further convenience variables and functions like
(thread-name (make-thread #'ignore "my thread")) (thread-live-p (make-thread #'ignore "my thread"))
Read the Elisp manual at elisp#Basic Thread Functions
3 Thread Synchronization
3.1 A mutex is an exclusive lock. At any moment, zero or one
threads may own a mutex. If a thread attempts to acquire a mutex, and the mutex is already owned by some other thread, then the acquiring thread will block until the mutex becomes available. If the mutex is owned by the acquiring thread already, a counter is increased.
When done, a thread owning a mutex shall release it as soon as possible. It is an error not to release a mutex.
While there are basic functions like mutex-lock
and
mutex-unlock
, it is recommended to use the macro with-mutex
.
(defvar mutex (make-mutex "my mutex")) (defun my-thread () (with-mutex mutex (sleep-for 10))) (make-thread #'my-thread "my thread 1") (make-thread #'my-thread "my thread 2")
Read the Elisp manual at elisp#Mutexes
3.2 A condition variable is a way for a thread to block
until some event occurs. A thread can wait on a condition variable, to be woken up when some other thread notifies the condition.
A condition variable is associated with a mutex. For proper operation, the mutex must be acquired, and then a waiting thread must wait on the condition variable.
(defvar mutex (make-mutex "my mutex")) (defvar cond-var (make-condition-variable mutex "my condition variable")) (defun my-thread1 () (with-mutex mutex (condition-wait cond-var)) (sleep-for 10)) (defun my-thread2 () (sleep-for 10) (with-mutex mutex (condition-notify cond-var)) (sleep-for 5)) (make-thread #'my-thread1 "my thread 1") (make-thread #'my-thread2 "my thread 2")
Read the Elisp manual at elisp#Condition Variables
4 I/O
4.1 Read or write to a given file descriptor in Emacs can be
done to only one thread at any time.
4.2 For processes, there are the functions process-thread
and set-process-thread
, which assign process related
file descriptors to a given thread. If another thread
shall take over control, this must be requested
explicitly.
4.3 For all other file descriptors, there exists an
implementation to assign them to a given thread on-the-fly. This does not work well (see bug#25214 and bug#32426), as a consequence keyboard input shall be restricted to the main thread as-of-today.
We're working on this.
4.4 A further problem is how to make it obvious to a user
where keyboard input goes to. Imagine the possible scenario to copy a file, and to remove another file in parallel. Both operations require user confirmation ("Overwrite file a/b?" "Remove file c/d?"), and it must be obvious for which question the answer "y" is intended for. See discussion in the<EMAIL_ADDRESS>mailing list http://lists.gnu.org/archive/html/emacs-devel/2018-08/msg00456.html
5 Tramp Adaptions for Being thread-safe
5.1 Tramp is just a library of basic file operations,
replacing default file operations for files located on remote hosts.
It does not create any thread on its own. Whether concurrent operations do run, is decided by the user.
Changes to make Tramp thread-safe were surprisingly simple.
5.2 Tramp creates a mutex for every connection to a remote
host. That means, operations for a given connection are
run sequentially (see tramp-file-name-handler
).
5.3 Whenever a Tramp function is invoked, the connection
process is locked to the current thread. This gives a kind of dynamics in locking the process, but it is safe due to the mutex.
5.4 Superfluous save-excursion
calls have been removed.
They made concurrent editing impossible (flipping cursor).
5.5 Minor changes like compatibility functions and thread
information in the debug buffer.
6 Asynchronous File Operations
6.1 Shall be triggered by the user. In order to do this,
there is a new prefix command universal-async-argument
({{{C-x & …}}}), like the prefix argument universal-argument
({{{C-u …}}}) for interactive commands. This is not only
for remote files (Tramp).
6.2 In the future, this prefix command is not restricted to
asynchronous file operations. Any interactive command, which could run also asynchronously, shall use this as user indication.
It is up to the command to decide, what asynchronous
means. For example, gnus
would rather retrieve
articles from the respective servers, and not care about
file operations.
6.3 Implemented so far for the file visiting family of commands:
find-file
{{{C-x & C-x C-f}}}
find-file-other-window
{{{C-x & C-x 4 f}}}
find-file-other-frame
{{{C-x & C-x 5 f}}}
find-file-existing
{{{C-x & M-x find-file-existing}}}
find-file-read-only
{{{C-x & C-x C-r}}}
find-file-read-only-other-window
{{{C-x & C-x 4 r}}}
find-file-read-only-other-frame
{{{C-x & C-x 5 f}}}
find-alternate-file
{{{C-x & C-x C-v}}}
find-alternate-file-other-window
{{{C-x & M-x find-alternate-file-other-window}}}
find-file-literally
{{{C-x & M-x find-file-literally}}}
6.4 Visiting local files would profit only for veeeery large
files (some hundred of MB). Natural candidates are remote files to be visited, and local files to be visited with wildcard.
However, visiting local files has not been adapted yet to
throw sufficient thread-yield
calls. The main thread
keeps blocked. Therefore, remote file operations remain
best candidates as of today.
;; (find-file "/sftp::/var/log/ConsoleKit/history.1" nil t) ;; (find-file "/gdrive:michael.rd.albinus@gmail.com:20180825_091134.jpg" nil t) (find-file "/nextcloud:albinus@ford#8081:20180825_091134.jpg" nil t)
(find-file "/sftp::~/src/emacs/lisp/net/tramp*.el" t t)
(dolist (thread (all-threads)) (unless (eq thread main-thread) (thread-signal thread 'quit nil))) (dolist (buffer (buffer-list)) (when (string-match "^tramp" (buffer-name buffer)) (kill-buffer buffer)))
vc-refresh-state
recomputes the VC state of a file. In
the Tramp case, it often takes more time to compute it
for git, than just loading the file into a buffer.
Therefore, this function gets also an own thread. It
needs to be tuned to throw proper thread-yield
calls.
6.5 An alternative approach to use asynchronous file operations
is user option execute-file-commands-asynchronously
.
If this variable is non-nil, a file will be visited
asynchronously when called interactively. If it is a
regular expression, it must match the file name to be
visited.
It toggles the behavior of ({{{C-x & …}}}).
(setq execute-file-commands-asynchronously tramp-file-name-regexp) (find-file "/sftp::~/src/emacs/lisp/net/tramp*.el" t execute-file-commands-asynchronously)
7 Outlook
7.1 Solve the I/O problem. First for input (keyboard), but
also for arriving events (D-Bus, file notifications, …)
7.2 Improve performance. Apply more fine-tuned thread-yield
calls. Add thread priority, especially with high priority for the main thread.
7.3 Implement thread support for further file operations,
like save-buffer
, copy-file
, rename-file
, …
7.4 Make file operations for local files thread-aware.
7.5 Make vc-refresh-state
thread-aware (call thried-yield
).
7.6 Add indication for running asynchronous file operations
in the background (modeline?).


Every Luigi, Ranked
by Zack ZwiezenLike Spider-Man and Wonder Woman and The Doctor from Doctor Who, there have been many different versions of Luigi. There are the more classical takes on Luigi and then there are some stranger versions of everyone’s favourite brother. So in celebration of Luigi’s Mansion 3, I’m going to rank (almost) every version of Luigi that has appeared.
Now before we get started, I want to clarify who will and won’t be on this list. Just because Luigi is a different game doesn’t make him a different version. I’m not ranking every appearance of Luigi, instead, I’m ranking different Luigis. For example, the Luigi in Mario Kart and the Luigi in Super Mario Odyessy are, in my mind, the same. They are both appearances of the prime Luigi.
I will be ranking Luigis based on two criteria. Number one is how much they remind me of Luigi. Number two is the coolness factor of each iteration of Luigi.
Understood? Good. Let’s begin.
Waluigi
Luigi-ness: 3 | Coolness: 2
I hesitated to even put Waluigi on this list, but decided he should be included. After adding up all the numbers he ended up at the very bottom of the list. This makes sense. Some bonus points for his suit and mustache, but he barely reminds me of Luigi and he seems like an arsehole.
Gooigi
Luigi-ness: 7 | Coolness: 0
It’s a walking pile of snot that resembles Luigi. It shouldn’t exist and I’m firmly against Gooigi. I’m anti-Gooigi. I hate it.
Baby Luigi
Luigi-ness: 7 | Coolness: 2
Inherently, babies aren’t cool. The only reason this baby gets some cool points is because he can drive a go-kart and ride dinosaurs. Those are cool things to do and so this baby earns some cool points. But it’s still a baby.
Boo Luigi
Luigi-ness: 5 | Coolness: 5
He does have a green hat and moustache, so he is identifiable as Luigi, but it might take you a few seconds. But Luigi as a Boo is cool! Luigi hates ghosts, so becoming a ghost is like Luigi facing his greatest fear. That’s cool and impressive!
Live-Action Movie Luigi
Luigi-ness: 3 | Coolness: 8
On the one hand, this is a terrible movie that is mostly remembered today as being so bad it soured Nintendo on ever making another film with Hollywood again. On the other hand, John Leguizamo is cool. He was in John Wick. I guess he is also the voice of Sid the Sloth in the Ice Age series. Okay, let’s give him an 8 and move on.
Animated Luigi
Luigi-ness: 9 | Coolness: 3
It’s hard to deny this is Luigi. But looking the part is only one part of this list. On the other part, being cool, this Luigi loses some points. Though to be fair, I never really got the fondness for these animated episodes. So maybe I’m just wrong and dumb.
Rabbids Luigi
Luigi-ness: 6 | Coolness: 7
Here comes a hot take: The Rabbids are cool and fun and I like them. I really enjoy Mario + Rabbids: Battle Kingdom last year and hope we get a sequel. And I hope Rabbids Luigi shows up. Or just give him and Prime Luigi their own game. Luigi’s Mansion 4?
Metal Luigi
Luigi-ness: 6 | Coolness: 8
Metal Luigi shows up in Super Smash Bros. Melee as a boss enemy and hasn’t really appeared elsewhere in the Mario universe. Metal Luigi is similar to Gooigi, but instead of being made out of snot, this Luigi is made out of heavy metal. This is the heavy metal Luigi, which sounds pretty cool if you ask me.
Live-Action TV Show Luigi
Luigi-ness: 7 | Coolness: 8
The original live-action Luigi, played by the late Danny Wells, is a tough one to rank. Sure his costume isn’t the most Luigi looking on the list. But this was also early enough that it’s understandable that they were still figuring out this whole Luigi thing. But also, look at the moustache. Give this man some cool points!
Luigi
Luigi-ness: 10 | Coolness: 5
This is the man who started it all. The original Luigi. The prime Luigi. He appears in many different games, like the recently released Luigi’s Mansion 3. However, this Luigi isn’t that cool. He’s fine I guess, but there are better Luigis. The original isn’t always the best.
Paper Luigi
Luigi-ness: 10 | Coolness: 7
This is Luigi, but he’s all flat and cartoony. Cartoons are cool and so is good graphic design. So Taking the iconic Luigi look and creating a new paper version of it is a perfect way to improve on the original. If prime Luigi is A New Hope, then Paper Luigi is The Empire Strikes Back. Does that analogy work? I don’t know. Moving on.
Dr. Luigi
Luigi-ness: 10 | Coolness: 8
Luigi is great. We all like him. But you know what would make him better? If he wore a cool lab coat and was able to prescribe drugs. That is Dr. Luigi. He’s also a smart medical professional who helps fight diseases from outer space.  He sounds like a cool dude to me.


Saturn and Shark on OSX
I've been examining a... complicated program for work that is very event-based and contains nearly zero documentation. Thank god its really clean code. In any case it's a bit difficult disentangling the call paths when packets are setting off all kinds of different event handlers. (Did the FSM spring from the mind of a coder? This coder, maybe? It's not that bad, and given the networking it interacts with its not that surprising it looks pasta-ish).
Anyways, Shark, a sampling profiler on OSX has been pretty handy for understanding what's going on. It's pretty impressive that it can work on any binary. (Well, 'permitted binary' I guess - Apple is notorious for fux0ring tools that could be used to circumvent DRM). A sampling binary should interfere less with real performance since it is observing a system rather than changing it. (notwithstanding a Heisenbug)
However, as it is a sampling profiler, the choice of sampling period becomes important. This was immediately apparent as the default sampling rate was too low and there were call paths that were clearly missed. Nyquist would say that I should do that at twice the rate of the samples I wish to observe so 3.2GHz processor, assume 1 instruction/cycle?, 0.0000003125s/sampling rate and .... I'm not going to look at the assembly. I'm a bit busy to play with that right now. But looking at the fabulous results - once I increased the sampling rate to 20µs, the lowest permitted - its possible that I have two subsequent similar call paths, or it is the same call path... more certain results are likely to come from an instrumented profiler.
Given I'm not actually trying to optimize performance in this case an instrumented profiler should be sufficient. Saturn (a relative of gprof) will apparently do this, but does require compile-time instrumentation.
(Speaking of apples and saturn, much yummier, a saturn apple).
update Hunh - looks like Saturn is written in Java. Ironical that a tool which can be used to fix performance problems is slow. I suppose I'm not being fair - the data set I was using in Shark was much smaller.
About this entry
You"re currently reading "Saturn and Shark on OSX," an entry on a crick in the net
- Published:
- 05.12.09 / 3pm
- Category:
- Circular File