Publications (2004-2016)
My recent publications are available here.
Journal papers
2016
Sharing brain mapping statistical results with
the neuroimaging data model
Camille Maumet, Tibor Auer, Alexander Bowring,
Gang Chen, Samir Das, Guillaume Flandin, Satrajit Ghosh,
Tristan Glatard, Krzysztof J. Gorgolewski, Karl G. Helmer,
Mark Jenkinson, David B. Keator, B. Nolan Nichols,
Jean-Baptiste Poline, Richard Reynolds, Vanessa Sochat,
Jessica Turner & Thomas E. Nichols
Scientific Data 3,
Nature Publishing Group, Article number: 160102 (2016).
The brain imaging data structure, a format
for organizing and describing outputs of neuroimaging
experiments
K. J. Gorgolewski, T. Auer, V.
D. Calhoun, R. C. Craddock, S. Das, E.
P. Duff, G. Flandin, S. S. Ghosh, T.
Glatard, Y. O. Halchenko, D. A. Handwerker,
M. Hanke, D. Keator, X. Li, Z.
Michael, C. Maumet, B. N. Nichols, T.
E. Nichols, J. Pellman, J.-B. Poline, A.
Rokem, G. Schaefer, V. Sochat, W.
Triplett, J. A. Turner, G. & R.
A. Poldrack,
Scientific Data 3, Nature Publishing Group, June
2016.
Combining Analytical Modeling, Realistic Simulation and
Real Experimentation for the Optimization of Monte-Carlo
Applications on the European Grid Infrastructure
S. Camarasu-Pop, T. Glatard, and H. Benoit-Cattin,
Future
Generation Computer Systems, vol. 57, April 2016.
The MNI data-sharing and processing
ecosystem,
S. Das, T. Glatard,
L. C. MacIntyre, C. Madjar, C. Rogers, M. Rousseau,
P. Rioux, D. MacFarlane, Z. Mohaddes, R. Gnanasekaran,
C. Makowski, P. Kostopoulos, R. Adalat,
N. Khalili-Mahani, G. Niso, J. T. Moreau,
A. C. Evans,
Neuroimage, vol. 124-B, pp. 1188–1195, January 2016.
2015
Reproducibility of neuroimaging analyses across
operating systems
T. Glatard, L. B. Lewis,
R. Ferreira da Silva, R. Adalat, N. Beck, C. Lepage,
P. Rioux, M. Rousseau, T. Sherif, E. Deelman, Najmeh Khalili-Mahani, Alan C. Evans
Frontiers in Neuroinformatics, vol. 9, no. 12, 2015.
($)
A stateful storage availability and entropy
model to control storage distribution on
grids
J. Ma, W. Liu, and T. Glatard,
Concurrency and Computation: Practice and Experience, vol. 27, no. 1, pp. 164--171, 01/2015.
Head-to-Head Comparison of Two Popular
Cortical Thickness Extraction Algorithms: A
Cross-Sectional and Longitudinal Study.
A. Redolfi, D. Manset, F. Barkhof, L. O. Wahlund,
T. Glatard, J. F. Mangin, and G. B. Frisoni,
PloS one, vol. 10, no. 3: Public Library of Science,
pp. e0117692, 2015.
2014
($)
Controlling fairness and task granularity in
distributed, online, non-clairvoyant workflow
executions
R. Ferreira da Silva,
T. Glatard, and F. Desprez,
Concurrency and Computation: Practice and Experience,
vol. 26, no. 14, pp. 2347-2366, 2014.
($)
Domain-specific summarisation
of Life-Science e-experiments from provenance
traces,
A. Gaignard, J. Montagnat, B. Gibaud, G. Forestier,
and T. Glatard,
Journal of Web Semantics,
vol. 29, pp. 19--30, 12/2014.
OntoVIP: an ontology for the annotation of
object models used for medical image
simulation,
B. Gibaud, G. Forestier,
H. Benoit-Cattin, F. Cervenansky, P. Clarysse,
D. Friboliet, A. Gaignard, P. Hugonnard, C. Lartizien,
H. Liebgott, J. Montagnat, J. Tabary,
T. Glatard,
Journal of Biomedical Informatics,
vol. 52, pp. 279-292, 2014.
CBRAIN: A web-based, distributed computing
platform for collaborative neuroimaging
research,
T. Sherif, P. Rioux, M. Rousseau,
N. Kassis, N. Beck, R. Adalat, S. Das, T. Glatard, and
A. C. Evans,
Frontiers in Neuroinformatics,
vol. 8, no. 54, 2014.
2013
Monte-Carlo Simulation on Heterogeneous
Distributed Systems: a Computing Framework with Parallel
Merging and Checkpointing Strategies,
S. Camarasu-Pop, T. Glatard, R. Ferreira da Silva,
P. Gueth, D. Sarrut, and H. Benoit-Cattin,
Future Generation Computer Systems, vol. 29, no. 3,
pp. 728--738, 03/2013.
Efficient Distributed Monitoring with Active
Collaborative Prediction,
D. Feng,
C. Germain-Renaud, and T. Glatard,
Future Generation Computer Systems, vol. 29, no. 8,
pp. 2272–2283, 2013.
Self-healing of workflow activity incidents on
distributed computing
infrastructures,
R. Ferreira da Silva,
T. Glatard, and F. Desprez,
Future Generation
Computer Systems, vol. 29, no. 8, pp. 2284-2294,
10/2013.
A Virtual Imaging Platform for multi-modality
medical image simulation,
T. Glatard,
C. Lartizien, B. Gibaud, R. Ferreira da Silva,
G. Forestier, F. Cervenansky, M. Alessandrini,
H. Benoit-Cattin, O. Bernard, S. Camarasu-Pop, N. Cerezo,
P. Clarysse, A. Gaignard, P. Hugonnard, H. Liebgott,
S. Marache, A. Marion, J. Montagnat, J. Tabary,
D. Friboulet,
IEEE Transactions on Medical Imaging,
vol. 32, no. 1, pp. 110-118, 2013.
A classification of file placement and
replication methods on grids,
J. Ma,
W. Y. Liu, and T. Glatard,
Future Generation Computer Systems, vol. 29, no. 6,
pp. 1395–1406, 2013.
Bundle and Pool Architecture for
Multi-Language, Robust, Scalable Workflow
Executions,
D. Rogers, I. Harvey, T. T. Huu,
K. Evans, T. Glatard, I. Kallel, I. Taylor, J. Montagnat,
A. Jones, and A. Harrison,
Journal of Grid Computing,
vol. 11, no. 3, pp. 457-480, September 2013.
2011
A model
of pilot-job resource provisioning on production
grids,
T. Glatard, and S. Camarasu-Pop,
Parallel Computing, vol. 37,
pp. 684-692, 2011.
2010
Dynamic partitioning of GATE Monte-Carlo
simulations on EGEE,
S. Camarasu-Pop,
T. Glatard, J. T. Moscicki, H. Benoit-Cattin, and
D. Sarrut,
Journal of Grid
Computing, vol. 8, no. 2, pp. 241-259, mar, 2010.
Large scale functional MRI study on a
production grid,
T. Glatard, S. Soleman,
J. Veltman, A. Nederveen, and S. Olabarriaga,
Future Generation
Computer Systems, vol. 26, no. 4, pp. 685-692,
2010.
A Virtual Laboratory for Medical Image
Analysis,
S. Olabarriaga, T. Glatard,
and P. T. de Boer,
IEEE Transactions on Information Technology in
Biomedicine, vol. 14, no. 4, pp. 979-985, 2010.
2009
Modeling the latency on production grids with
respect to the execution context,
D. Lingrand, T. Glatard, and J. Montagnat,
Parallel
Computing, vol. 35, no. 10-11, pp. 493-511, oct,
2009.
2008
Flexible and efficient workflow deployment of
data-intensive applications on grids with
MOTEUR,
T. Glatard, J. Montagnat,
D. Lingrand, and X. Pennec,
Journal of High
Performance Computing and Applications, vol. 22, no. 3,
pp. 347–360, 2008.
A Service-Oriented Architecture enabling
dynamic services grouping for optimizing distributed
workflows execution,
T. Glatard,
J. Montagnat, D. Emsellem, and D. Lingrand,
Future
Generation Computer Systems, vol. 24, no. 7, pp. 720–730,
jul, 2008.
Workflow-based data parallel applications on
the EGEE production grid
infrastructure,
J. Montagnat, T. Glatard,
I. Campos, F. Castejon, X. Pennec, T. Giuliano,
V. Voznesensky, and C. Vuerli,
Journal of Grid
Computing, vol. 6, no. 4, pp. 369–383, dec, 2008.
2007
Texture-based Medical Image Indexing and
Retrieval on Grids,
J. Montagnat, T. Glatard,
and D. Lingrand,
Medical Imaging Technology,
vol. 25, no. 5, nov, 2007.
2005
Grid-enabling medical image
analysis,
C. Germain, V. Breton, P. Clarysse,
Y. Gaudeau, T. Glatard, E. Jeannot, Y. Legre, C. Loomis,
I. E. Magnin, J. Montagnat, J. -M. Moureaux, A. Osorio,
X. Pennec, R. Texier,
J Clin Monit Comput,
vol. 19, no. 4-5, pp. 339-349, 2005.
Conference papers
- T. Glatard, and A. C. Evans, “Classifications of computing sites to handle numerical variability”,
Workshop on Clusters, Clouds and Grids for Life Sciences, In conjunction with CCGrid, Shenzen,
China, pp. 863–870, 2015.
- N. Boujelben, and T. Glatard, “Importing neuGRID workflows in VIP”, 7th International Workshop
on Science Gateways, Budapest, Hungary, pp. 85–90, 06/2015.
- T. Glatard, M. - E. Rousseau, P. Rioux, R. Adalat, and A. C. Evans, ”Controlling the deployment of
virtual machines on clusters and clouds for scientific computing in CBRAIN”, 14th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, Chicago, USA, pp. 384-393, 05/2014.
- S. Cipière, G. Ereteo, A. Gaignard, N. Boujelben, S. Gaspard, V. Breton, F. Cervenansky, D. R.
C. Hill, T. Glatard, D. Manset, et al., ”Global Initiative for Sentinel e-Health Network on Grid
(GINSENG) Medical data integration and semantic developments for epidemiology”, Workshop on
Clusters, Clouds and Grids for Health, In conjunction with CCGrid 2014, 2014.
- R. Ferreira da Silva, T. Glatard, and F. Desprez, “On-line, non-clairvoyant optimization of workflow
activity granularity on grids”, Euro-Par, Aachen, Germany, pp. 255-266, 2013.
- S. Camarasu-Pop, T. Glatard, and H. Benoit-Cattin, “Simulating Application Workflows and Services Deployed on the European Grid Infrastructure”, CCGrid, Delft, The Netherlands, pp. 18–25, 2013.
- R. Ferreira da Silva, T. Glatard, and F. Desprez, “Workflow fairness control on online and non-
clairvoyant distributed computing platforms”, Euro-Par, Aachen, Germany, pp. 102-113, 2013.
- R. Ferreira da Silva, G. Juve, E. Deelman, T. Glatard, F. Desprez, D. Thain, B. Tovar, and M.
Livny, ”Toward Fine-Grained Online Task Characteristics Estimation in Scientific Workflows”, 8th
Workshop On Workflows in Support of Large-Scale Science (WORKS), Denver, United States, ACM,
pp. 58-67, 11/2013.
- B. Gibaud, G. Forestier, H. Benoit-Cattin, F. Cervenansky, P. Clarysse, D. Friboulet, A. Gaignard,
P. Hugonnard, C. Lartizien, H. Liebgott, J. Montagnat, J. Tabary and T. Glatard, “OntoVIP: an
ontology for the annotation of object models used for medical image simulation”, IEEE International
Conference on Healthcare Informatics, Imaging and Systems Biology (HISB), La Jolla, California,
USA, 2012. Best paper award.
- R. Ferreira da Silva, T. Glatard, and F. Desprez, “Self-healing of operational workflow incidents
on distributed computing infrastructures”, 12th IEEE/ACM International Symposium on Cluster,
Cloud and Grid Computing (CCGrid), Ottawa, Canada, pp. 318-325, 05/2012.
- D. Feng, C. Germain-Renaud, and T. Glatard, “Distributed Monitoring with Collaborative Prediction”, 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, Ottawa,
Canada, pp 376–383, may, 2012.
- F. Michel, J. Montagnat, and T. Glatard, “Technical support for Life Sciences communities on a
production grid infrastructure”, HealthGrid 2012, Amsterdam, The Netherlands, pp 81-90, IOS Press,
2012.
- T. Glatard, A. Marion, H. Benoit-Cattin, S. Camarasu-Pop, P. Clarysse, R. Ferreira da Silva,
G. Forestier, B. Gibaud, C. Lartizien, H. Liebgott, et al., “Multi-modality image simulation with
the virtual imaging platform: Illustration on cardiac MRI and echography”, IEEE International
Symposium on Biomedical Imaging (ISBI), Barcelona, Spain, pp. 98-101, 2012.
- R. Ferreira da Silva, and T. Glatard, “A science-gateway workload archive to study pilot jobs, user
activity, bag of tasks, task sub-steps, and workflow executions”, CoreGRID/ERCIM Workshop on
Grids, Clouds and P2P Computing - CGWS 2012, Rhodes Island, Greece, 08/2012.
- S. Ben-Fredj, T. Glatard, C. Casta, and P. Clarysse, “An exploration framework for segmentation
parameter spaces”, IEEE International Conference on Image Processing (ICIP), Brussels, Belgium,
pp 2257 – 2260, 2011.
- A. Marion, G. Forestier, H. Benoit-Cattin, S. Camarasu-Pop, P. Clarysse, R. Ferreira da Silva, B.
Gibaud, T. Glatard, P. Hugonnard, C. Lartizien, et al., “Multi-modality medical image simulation of
biological models with the Virtual Imaging Platform (VIP)”, The 24th International Symposium on
Computer-Based Medical Systems (CBMS 2011), Bristol, UK, pp. 1-6, 2011.
- G. Forestier, A. Marion, H. Benoit-Cattin, P. Clarysse, D. Friboulet, T. Glatard, P. Hugonnard, C.
Lartizien, et al., “Sharing object models for multi-modality medical image simulation: a semantic
approach”, The 24th International Symposium on Computer-Based Medical Systems (CBMS 2011),
Bristol, UK, pp. 1-6, 2011.
- T. Li, S. Camarasu-Pop, T. Glatard, T. Grenier, and H. Benoit-Cattin, “Optimization of Mean-
Shift scale parameters on the EGEE grid”, Studies in health technology and informatics, Proc. of
Healthgrid 2010, vol. 159, pp. 203-214, 2010.
- W.- J. Tan, C. T. M. Ching, S. Camarasu-Pop, P. Calvat, and T. Glatard, “Two experiments
with application-level quality of service on the EGEE grid”, Proceeding of the 2nd workshop on
Grids meets autonomic computing, Washington DC, USA, ACM, pp. 11–20, 2010.
- J. Montagnat, T. Glatard, D. Reimert, K. Maheshwari, E. Caron, and F. Desprez, “Workflow-based comparison of two Distributed Computing Infrastructures”, 5th Workshop on Workflows in Support
of Large-Scale Science (WORKS10), New-Orleans, LA, pp 1–10, 10/2010.
- S. Olabarriaga, T. Glatard, A. Hoheisel, A. Nederveen, and D. Krefting, “Crossing HealthGrid Bor-
ders: Early Results in Medical Imaging”, HealthGrid’09, Berlin, pp 62–71, jun, 2009.
- D. Lingrand, J. Montagnat, and T. Glatard, “Modeling user submission strategies on production
grids”, International Symposium on High Performance Distributed Computing (HPDC’09), Munchen,
Germany, pp 121–130, jun, 2009.
- K. Maheshwari, T. Glatard, J. Schaerer, B. Delhay, S. Camarasu-Pop, P. Clarysse, and J. Montagnat,
“Towards Production-level Cardiac Image Analysis with Grids”, HealthGrid’09, Berlin, pp 31–40, jun,
2009.
- T. Glatard, X. Zhou, S. Camarasu-Pop, O. Smirnova, and H. Muller, “A comparison between ARC
and gLite for medical image processing on Grids”, 2nd workshop on Medical imaging on GRID, HPC
and GPU infrastructures: achievements and perspectives (MICCAI-Grid), London, UK, pp 64–73,
sep, 2009.
- J. Montagnat, B. Isnard, T. Glatard, K. Maheshwari, and M. Blay-Fornarino, “A data-driven work-
flow language for grids based on array programming principles”, Workshop on Workflows in Support
of Large-Scale Science (WORKS’09), pp 1–10, nov, 2009.
- T. Glatard, and S. Camarasu-Pop, “Modelling pilot-job applications on production grids”, 7th in-
ternational workshop on Algorithms, Models and Tools for Parallel Computing on Heterogeneous
Platforms (Heteropar 09), Delft, The Netherlands, aug, 2009.
- T. Glatard, J. Montagnat, and X. Pennec, “A framework for evaluating the impact of compression
on registration algorithms without gold standard”, International Conference on Image Processing
(ICIP’08), San Diego, USA, pp. 2912-2915, 2008.
- T. Glatard, and S. Olabarriaga, “User friendly management of workflow results: from provenance
information to grid logical file names”, 4th IEEE International Conference on e-Science, Indianapolis,
USA, pp 103–110, 2008.
- T. Glatard, J. Montagnat, and X. Pennec, “A probabilistic model to analyse workflow performance
on production grids”, IEEE International Symposium on Cluster Computing and the Grid, Lyon,
France, pp. 510–517, may, 2008.
- S. Olabarriaga, T. Glatard, K. Boulebiar, and P. T. de Boer, “From ’low-hanging’ to ’user-ready’:
initial steps into a healthgrid”, HealthGrid’08, Chicago, USA, pp. 70-79, jun, 2008. Best paper
award.
- T. Glatard, K. Boulebiar, and S. Olabarriaga, “Workflow integration in VL-e medical”, 21st IEEE
International Symposium on Computer-Based Medical Systems (CBMS’08), Jyväskylä, Finland, pp.
144-146, jun, 2008.
- T. Glatard, and S. Olabarriaga, “From gridified scripts to workflows: the FSL Feat case”, MICCAI-
Grid Workshop (MICCAI-Grid), New York, NY, USA, pp. 33–42, sep, 2008.
- D. Lingrand, J. Montagnat, and T. Glatard, “Estimating the execution context for refining submission
strategies on production grids”, Assessing Models of Networks and Distributed Computing Platforms
(ASSESS / ModernBio) (CCGrid’08), Lyon, France, IEEE, pp. 753–758, may, 2008.
- T. Glatard, and J. Montagnat, “Implementation of Turing machines with the Scufl data-flow lan-
guage”, 3rd International Workshop on Workflow Systems in e-Science (WSES’08), Lyon, France,
may, 2008.
- R. S. Soleman, T. Glatard, D. J. Veltman, A. Nederveen, and S. Olabarriaga, “Large scale fMRI
parameter study on a production grid”, MICCAI-Grid Workshop (MICCAI-Grid), New York, NY,
USA, pp. 65–74, sep, 2008.
- C. Nemo, T. Glatard, M. Blay-Fornarino, and J. Montagnat, “Merging overlapping orchestrations:
an application to the Bronze Standard medical application”, International Conference on Services
Computing (SCC 2007), Salt Lake City, Utah, USA, IEEE Computer Engineering, pp. 364–371, jul,
2007.
- T. Glatard, J. Montagnat, and X. Pennec, “Optimizing jobs timeouts on clusters and production
grids”, International Symposium on Cluster Computing and the Grid (CCGrid’07), Rio de Janeiro,
Brazil, IEEE, pp. 100-107, may, 2007.
- T. Glatard, D. Lingrand, J. Montagnat, and M. Riveill, “Impact of the execution context on Grid
job performances”, International Workshop on Context-Awareness and Mobility in Grid Computing
(WCAMG’07) (CCGrid’07), Rio de Janeiro, Brazil, IEEE, pp. 713–718, may, 2007.
- T. Glatard, J. Montagnat, and X. Pennec, “Efficient services composition for grid-enabled data-
intensive applications”, IEEE International Symposium on High Performance Distributed Computing
(HPDC’06), Paris, France, pp. 333–334, jun, 2006.
- T. Glatard, J. Montagnat, and X. Pennec, “Medical image registration algorithms assessment: Bronze
Standard application enactment on grids using the MOTEUR workflow engine”, HealthGrid’06, Va-
lencia, Spain, IOS Press, pp. 93–103, jun, 2006.
- T. Glatard, X. Pennec, and J. Montagnat, “Performance evaluation of grid-enabled registration al-
gorithms using bronze-standards”, Medical Image Computing and Computer-Assisted Intervention
(MICCAI’06), Copenhagen, Denmark, Springer, pp. 152–160, oct, 2006.
- T. Glatard, J. Montagnat, and X. Pennec, “Probabilistic and dynamic optimization of job partitioning
on a grid infrastructure”, 14th euromicro conference on Parallel, Distributed and network-based
Processing (PDP06), Montbéliard-Sochaux, France, pp. 231–238, feb, 2006.
- T. Glatard, J. Montagnat, and X. Pennec, “An experimental comparison of Grid5000 clusters and the
EGEE grid”, Workshop on Experimental Grid testbeds for the assessment of large-scale distributed
applications and tools (EXPGRID’06), Paris, France, jun, 2006.
- T. Glatard, D. Emsellem, and J. Montagnat, “Generic web service wrapper for efficient embedding
of legacy codes in service-based workflows”, Grid-Enabling Legacy Applications and Supporting End
Users Workshop (GELA’06), Paris, France, pp. 44–53, jun, 2006.
- J. Montagnat, T. Glatard, and D. Lingrand, “Data composition patterns in service-based workflows”,
Workshop on Workflows in Support of Large-Scale Science (WORKS’06), Paris, France, jun, 2006.
- T. Glatard, J. Montagnat, and X. Pennec, “Grid-enabled workflows for data intensive medical appli-
cations”, 18th IEEE International Symposium on Computer-Based Medical Systems (CBMS), Dublin,
Ireland, pp. 537-542, jun, 2005.
- C. Germain, V. Breton, P. Clarysse, Y. Gaudeau, T. Glatard, E. Jeannot, Y. Legré, C. Loomis, J.
Montagnat, J. M. Moureaux, et al., “Grid-enabling medical image analysis”, Biogrid’05, proceedings
of the IEEE/ACM International Symposium on Cluster Computing and the Grid, Cardiff, UK, 2005.
- T. Glatard, J. Montagnat, and I. E. Magnin, “Texture based medical image indexing and retrieval:
application to cardiac imaging”, Proceedings of ACM Multimedia 2004, workshop on Multimedia
Information Retrieval (MIR), New York, NY, USA, pp. 135–142, 2004.
Book chapters
- R. Silva, T. Glatard, and F. Desprez, "Self-management of operational issues for grid computing: the case of the virtual imaging platform", Emerging research in cloud distributed computing systems: IGI Global, 2015.
- A. Frangi, D. Friboulet, N. Ayache, H. Delingette, T. Glatard, C. Hoogendoorn, L. Humbert, K. Lekadir, I. Larrabide, Y. Martelli, et al., "Image Based Modelling", Computational Biomedicine: Oxford University Press, pp. 59-83, 2014.
- S. Camarasu-Pop, T. Glatard, H. Benoit-Cattin, and D. Sarrut, "Enabling Grids for GATE Monte-Carlo Radiation Therapy Simulations with the GATE-Lab", Applications of Monte Carlo Method in Science and Engineering, 2011.
- C. Germain-Renaud, V. Breton, P. Clarysse, B. Delhay, Y. Gaudeau, T. Glatard, E. Jeannot, Y. Legré, J. Montagnat, J. M. Moureaux, et al., "Grid Analysis of Radiological Data", Handbook of Research on Computational Grid Technologies for Life Sciences, Biomedicine and Healthcare: IGI, 2009.
- T. Glatard, G. Sipos, J. Montagnat, Z. Farkas, and P. Kacsuk, "Workflow Level Parametric Study Support by MOTEUR and the P-GRADE Portal", Workflows for e-Science: Springer, pp. 279–299, 2007.
Theses
- T. Glatard, Description, deployment and optimization of medical image analysis workflows on production grids, Sophia-Antipolis, Université de Nice Sophia-Antipolis, Nov, 2007.
- Tristan Glatard. "Indexation d'images médicales basée sur le contenu : application à la recherche et à la segmentation d'images", Master's Thesis (DEA), Ecole Doctorale EEA, Lyon, France, September 2004.
Abstracts
- T. Glatard, Pierre-Olivier Quirion, Reza Adalat, Natacha Beck, Remi Bernard, Bryan L. Caron, Quan Nguyen, Pierre Rioux, Marc-Étienne Rousseau, Alan C. Evans, Pierre Bellec, Integration between PSOM and CBRAIN for distributed execution of neuroimaging pipelines, Meeting of the Organization for Human Brain Mapping, Geneva, Switzerland, 2016.
- T. Glatard, R. Ferreira da Silva, N. Boujelben, R. Adalat, N. Beck, P. Rioux, M. Rousseau, E. Deelman, and A. C. Evans, Boutiques: an application-sharing system based on Linux containers, Neuroinformatics 2015, Cairns, Australia., 2015.
- T. Glatard, Y. Cointepas, O. Commowick, M. Kain, B. Laurent, F. Leray, and C. Barillot, CARMIN: a common web API for remote pipeline execution, Neuroinformatics 2015, Cairns, Australia, 2015.
- T. Glatard, R. Adalat, N. Beck, P. Rioux, M. Rousseau, and A. C. Evans, High-Throughput neuroimaging on the Amazon cloud with CBRAIN, Meeting of the Organization for Human Brain Mapping, Hawaii, USA, 2015.
- T. Glatard, M. Rousseau, S. Camarasu-Pop, P. Rioux, T. Sherif, N. Beck, R. Adalat, and A. C. Evans, Interoperability between the CBRAIN and VIP web platforms for neuroimage analysis, Neuroinformatics 2014, Leiden, Netherlands, 2014.
- T. Glatard, L. B. Lewis, R. Ferreira da Silva, M. Rousseau, C. Lepage, P. Rioux, N. Khalili-Mahani, E. Deelman, and A. C. Evans, Extending provenance information in CBRAIN to address reproducibility issues across computing platforms, Neuroinformatics 2014, Leiden, Netherlands, 2014.
- L. Arrabito, D. Bouvet, S. Camarasu-Pop, Y. Cardenas, N. Clémentin, H. Cordier, S. Gallina, J. Garnier, P. Gay, T. Glatard, et al., "Instance nationale et multi-communauté de DIRAC pour France Grilles", Journées scientifiques mésocentres et France Grilles 2012, Paris, France, 2012.
- R. Ferreira da Silva, T. Glatard, and F. Desprez, "A science-gateway workload archive: application to the self-healing of workflow incidents", Journées scientifiques mésocentres et France Grilles 2012, Paris, France, 2012.
- B. Gibaud, G. Forestier, H. Benoit-Cattin, F. Cervenansky, P. Clarysse, D. Friboulet, A. Gaignard, P. Hugonnard, C. Lartizien, H. Liebgott, et al., Design of an ontology for the annotation of object models used for medical image simulation, Journées Imagerie du Vivant, Lyon, 2012.
- L. Wang, S. Camarasu-Pop, T. Glatard, Y. M. Zhu, and I. E. Magnin, "Diffusion MRI Simulation with the Virtual Imaging Platform", Journées scientifiques mésocentres et France Grilles 2012, Paris, France, 2012.
- P. Gueth, S. Camarasu-Pop, T. Glatard, L. Grevillot, and D. Sarrut, “PBS proton treatment plan
simulation with the GATE-Lab”, 50th International PTCOG meeting (Particle Therapy Co-Operative
Group), Philadelphia, US, 2011.
- S. Camarasu-Pop, H. Benoit-Cattin, J. Moscicki, D. Sarrut, and T. Glatard, Results and evaluation of ThIS on grid, EGEE user Forum, Catania, Italie, Mar, 2009.
- S. Camarasu-Pop, D. Sarrut, H. Benoit-Cattin, and T. Glatard, GATE-Lab, EGEE User Forum, Barcelona, Espagne, Sept, 2009.
- T. Glatard, S. Camarasu-Pop, H. Benoit-Cattin, P. Clarysse, J. Montagnat, J. Moscicki, S. Olabarriaga, and D. Sarrut, Integrating pilot-jobs, workflows and virtual resource browser to foster medical image analysis on EGEE, EGEE User Forum, Catania, Italie, Mar, 2009.


| 003:067 Khan | : |
Ibrahim (Abraham) was neither a Jew nor a Christian, but he was a true Muslim Hanifa (Islamic Monotheism - to worship none but Allah Alone) and he was not of Al-Mushrikun (See V.2:105). |
| 003:067 Maulana | : |
Abraham was not a Jew nor a Christian, but he was (an) upright (man), a Muslim; and he was not one of the polytheists. |
| 003:067 Pickthal | : |
Abraham was not a Jew, nor yet a Christian; but he was an upright man who had surrendered (to Allah), and he was not of the idolaters. |
| 003:067 Rashad | : |
Abraham was neither Jewish, nor Christian; he was a monotheist submitter. He never was an idol worshiper. |
| 003:067 Sarwar | : |
Abraham was not a Jew or a Christian. He was an upright person who had submitted himself to the will of God. Abraham was not a pagan. |
| 003:067 Shakir | : |
Ibrahim was not a Jew nor a Christian but he was (an) upright (man), a Muslim, and he was not one of the polytheists. |
| 003:067 Sherali | : |
Abraham was neither a Jew nor a Christian but he was ever inclined to God and obedient to HIM, and he was not of those who associate gods with ALLAH. |
| 003:067 Yusufali | : |
Abraham was not a Jew nor yet a Christian; but he was true in Faith, and bowed his will to Allah's (Which is Islam), and he joined not gods with Allah. |
Concepts/Themes Covered: أركان الإسلام > الدين > حقيقة الإسلام Pillars of Islam> Religion> The Reality of Islam القرآن الكريم > محاججة المنكرين والجاحدين The Holy Quran> Arguing the Denyers and the Unbelievers
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Email
Mobile No.
Url
DOB
Accept terms and conditions
Accept another terms and conditions
Select your age
Select
1
2
3
Submit


About
Post
Contact
Home
Name
Post Title
Description
Zone
Farmgate
Tejgaon
Kochukhet
Mirpur
ECB
Image
Contact No
Submit
File upload progress


Characteristic
It is no different from a regular Poké Ball, except for the color. Used in pokestores as a gift for wholesale customers. Bonus when buying 10 or more Pokeballs of the same type.


Once a filter is set (such as a filename mask or a file attribute match/mismatch filter), you may wish to delete the filter. To remove a filter designated by a flag in an instance field, simply clear the flag with the appropriate message.
If the filter is applied via a variable data field, however, you will have to use
MSG_META_DELETE_VARDATA
. This message is detailed in
MetaClass
and must be passed the name of the variable data field to be removed. Removal of the field equates to removal of the filter.


{% extends "layout.html" %} {% block item %}
PepperJack is a place where you can find out information about differnt types of foods!
To find information about a specific food, click the button below to begin.


Here is the time-averaged (60 days) 900 mb v-component from the RUC and six RCMs that participated in PIRCS1a and PIRCS1b.
The wind field is computed by exactly the same method for each of the RCMs. The wind component is interpolated vertically by a log-linear function. Grid points for which 900 mb lies below the surface are flagged as missing. Horizontal interpolation onto a standard half degree lat-lon grid is accomplished by a variant of the Barnes scheme, although I haven't masked the terrain that is above 900 mb the wind values at those grid points are not included in the horizontal interpolation.
What I notice is that the RUC wind fields are smoother and contain smaller local maxima. This is also true for the u-component. And, this is consistent with previous diagnostics of the vertically integrated meridional moisture flux in ruc_orig.html and ruc.html. It looks like to me that the problem is in the wind field, in particular the low-level wind field, since the 500 mb geostrophic height field is not that abnormal (bias is less than 1% of the actual and not any larger than any of the other RCMs).


Prerequisites
You should install:
- NodeJS v.4.7.0, v.5.12.0, v.6.9.2
- MongoDB v.3.2.11+
Installing with npm:
npm install ---save merest
merest doesn't install Mongoose or Express in production environment. It is crucial to embed API into your project correctly. You should to install these components by yourself.
Recommended components:
npm install --save mongoose express body-parser method-override
Development
git clone https://github.com/DScheglov/merest
cd merest
npm install
npm test
< Previous (merest) | Next (Cook-book) >


{% extends "base.html" %} {% block headpagetitle %}{% trans %}Welcome{% endtrans %}{% endblock %} {% block announcement %} {% if announcement %}
{% trans %}This is BrewLog, brewing log app written by homebrewer for homebrewers. Have a look to the site and start logging your brews.{% endtrans %}


Anthony: Trail Blazers move the perfect opportunity
by Sports DeskCarmelo Anthony says joining the Portland Trail Blazers feels like the "perfect opportunity" to resurrect his NBA career.
The veteran forward is expected to join the Trail Blazers ahead of their road match-up with the New Orleans Pelicans on Tuesday.
Anthony, 35, has been out of the league since he was waived by the Chicago Bulls back in February and last played a game in November 2018 for the Houston Rockets.
The 10-time All-Star is determined to grasp his opportunity now he has secured his return.
The veteran forward said in a YouTube clip: "I always kept my eye on Portland. It just didn't work out at other times. But now it seems like a perfect opportunity.
"I just look at that team and say, 'This is what I can bring, this is where I can help'. It can only work if all parties see it the same way.
"What happened before is the past; I can't dwell on that. I learned from that.
"This happened at a point of time in my life where I do have a lot of clarity and understanding of different situations, just life. My approach is totally different."Portland made the Western
Conference Finals last season but are struggling at 5-9 this time around and lost 132-108 to the Rockets on Monday.


print("Evaluation took", t2 - t1, "seconds")
correctness, confidence = packed
report[name] = {
"correctness": correctness,
"confidence": confidence
}
print_stats(correctness, confidence, name)
save(report_path, report)
print("Evaluation took", t2 - t1, "seconds")
correctness, confidence = packed
report[name] = ConfidenceReportEntry(correctness=correctness,
confidence=confidence)
print_stats(correctness, confidence, name)
save(report_path, report)


Sleep apnea detection using physiological signals with neural networks(Conv Net and Recurrent Net).
Check it outDesign and Development of physiologic signal acquisition and analysis system with Machine Learning backend to predict events
Check it out


Functions & Basic blocks¶
BipFunction
are created by passing them an address. They are
container for basic block (BipBlock
accessible using
the blocks()
property) and instruction (BipInstr
accessible using the instr()
property). BipBlock
them self contain instructions, a link back to the function
(property func()
) and a way to navigate them using the
property succ()
and BipBlock.pred()
.
BipFunction
can also allow to recuperate the hexrays decompile
version of their code when available, this is done using the
hxcfunc()
property which return a
HxCFunc
object when available.
For example of how to use functions and blocks see the Overview .
BipFunction API¶
-
class
bip.base.
BipFunction
(ea=None)¶ Class for representing and manipulating function in IDA.
Todo
provide interface for flowgraph and allow to get all basicblocks and not only the one included in the function (external block: without FC_NOEXT flag)
Todo
Interface with stack
Todo
color
Todo
frame ?
Todo
setter for start ea (
BipFunction.ea()
) and end ea (BipFunction.end()
)-
__init__
(ea=None)¶ Constructor for a
BipFunction
object.This function will raise a
ValueError
if the addressea
is not in the function.Parameters: ea – An address included in the function, it does not need to be the first one. If None
the screen address is used.
-
_funct
= None¶ Internal func_t object from IDA
-
ea
¶ Property which return the start address of the function.
Return int: The address of the function.
-
end
¶ Property which return the address at the end of the function. This address is not included in the function.
Return int: The stop address of the function. This address is not included in the function.
-
size
¶ Property which allow to get the size of the function in bytes.
Return int: The number of bytes in the function.
-
name
¶ Property which return the name of the function as display in the IDA window.
This function does not handle mangling, see
demangle_name()
.Return str: The name of the function.
-
demangle_name
¶ Property which return the demangle name of the function.
Return str: The demangle name of the function.
-
is_dummy_name
¶ Property for checking if the current name of this function is a “dummy” name (a name set by default by IDA when it does not know how to call an element) with a special prefix. This function will not recognize the
aSTRING
naming, seeis_auto_name()
, andis_ida_name()
.Returns: True
if the function has a dummy name,False
otherwise.
-
is_auto_name
¶ Property for checking if the current name of this function is an “auto-generated” name, those are the default name generated by IDA but without a special prefix (see
is_dummy_name()
) such as the one for the string. See alsois_ida_name()
.Returns: True
if the function has an auto-generated name,False
otherwise.
-
is_ida_name
¶ Property for checking if the current name is a default name as generated by IDA. This is an OR condition of
is_auto_name()
andis_dummy_name()
.Returns: True
if the function has a name provided by IDA,False
otherwise.
-
is_user_name
¶ Property for checking if the current name is a “user name”. In practice this check a flag that the API can avoid setting, so there is no garantee it is an actual user name. See
is_ida_name()
for checking if a name was generated by IDA.Returns: True
if the name is marked as set by a user,False
otherwise.
-
truename
¶ Property which return the true name of the function.
Return str: The true name of the function.
-
ordinal
¶ Property which return the ordinal of this function.
Return int: The number corresponding to the ordinal of this function.
-
__str__
() <==> str(x)¶
-
__eq__
(other)¶ Equality comparator with another
BipFunction
. ReturnNotImplemented
if the argument is not aBipFunction
.
-
__ne__
(other)¶ Inequality comparator with another
BipFunction
. ReturnNotImplemented
if the argument is not aBipFunction
.
-
__lt__
(other)¶ Lesser than comparator with another
BipFunction
. ReturnNotImplemented
if the argument is not aBipFunction
.
-
__le__
(other)¶ Lesser or equal comparator with another
BipFunction
. ReturnNotImplemented
if the argument is not aBipFunction
.
-
__gt__
(other)¶ Greater than comparator with another
BipFunction
. ReturnNotImplemented
if the argument is not aBipFunction
.
-
__ge__
(other)¶ Gretter or equal comparator with another
BipFunction
. ReturnNotImplemented
if the argument is not aBipFunction
.
-
__hash__
()¶ Compute a unique hash for this ida function. The produce hash is dependant of the type of the object (
BipFunction
) and of its address. This allow to create container using the hash of the object for matching an object of a defined type and with a particular address.Calculation made is:
hash(type(self)) ^ self.ea
, in particular it means than child classes will not have the same hash as a parrent classes even if the compare works.Returns: An integer corresponding to the hash for this object.
-
__contains__
(value)¶ Allow to check if an element is included inside this function. It accepts the following in arguments:
In all those case the address of the element is used for testing if it is present in the function.
-
hxcfunc
¶ Property which return the hexrays C function (
HxCFunc
) for this function.If if it not possible to import the hexrays API an NotImplementedError error will be raised.
This may raise a
BipDecompileError
if the decompilation failed.Returns: A HxCFunc
object equivalent to this function.
-
can_decompile
¶ Property which test if it is possible to get the hexrays C function (
HxCFunc
) for this function.Internally this will just try to call
BipFunction.hxcfunc()
and catch the error, this means calling this function will actually perform the decompilation.Returns: True if its possible to get the HxCFunc
object for thisBipFunction
, False otherwise.
-
flags
¶ Property which return the function flags as returned by
idc.GetFunctionFlags
(old) oridc.get_func_attr(ea, FUNCATTR_FLAGS)
(new).Return int: The flags for this function.
-
is_inside
(o)¶ Allow to check if an address or an
BipElt
object (or inherited) is included in this function. In particular it allow to check if anBipInstr
is included in a function.This function is based on the
func_t.contains
function of IDA, this function seems to check only the address compare to the start and end address of a function and will return False for function chunk.Parameters: o ( int
coresponding to an address or an object inherited fromBipElt
.) – The address or object to test for inclusion.Raises: TypeError – if the parameter o
is not from a valid type.
-
does_return
¶ Property which indicate if the function is expected to return.
Return boolean: True if the function is expected to return.
-
is_far
¶ Check flags of this function for knowing if this is a far function.
-
is_lib
¶ Check flags of this function for knowing if this is a library function.
-
is_static
¶ Check flags of this function for knowing if this is a static function.
-
use_frame
¶ Check flags of this function for knowing if it is using the frame pointer.
-
is_userfar
¶ Check flags of this function for knowing if the user as define the function as change the marking of the function being far or not.
Check flags of this function for knowing if its a hidden function.
-
is_thunk
¶ Check flags of this function for knowing if its a thunk function.
-
comment
¶ Property which allow access to the comment.
-
rcomment
¶ Property which allow access to the repeatable comment.
-
_flowchart
¶ Return a
FlowChart
object as defined by IDA inida_gdl.py
. This is used for getting the basic block and should not be used directly.Note
Internally this is compute with the flags
_BipFlowChartFlag.FC_PREDS
and_BipFlowChartFlag.FC_NOEXT
.Returns: An idaapi.FlowChart
object.
-
nb_blocks
¶ Return the number of blocks present in this function.
-
blocks
¶ Return a list of
BipBlock
corresponding to the BasicBlocks in this function.Returns: A list of object BipBlock
-
blocks_iter
¶ Return a generator of
BipBlock
corresponding to the BasicBlocks in this function. This implementation will be just a little more performant than theblocks()
property.Returns: A generator of object BipBlock
-
items
¶ Return a list of
BipElt
corresponding to the items of the functions.Note
This should mainly be
BipInstr
but possible in theory to be other kind of data.Returns: A list of object BipElt
.
-
instr
¶ Return a list of
BipInstr
corresponding to the instructions of the functions.Returns: A list of object BipInstr
-
instr_iter
¶ Return a generator of
BipInstr
corresponding to the instructions of the functions. This implementation will be just a little more performant than theinstr()
property.Returns: A generator of object BipInstr
-
bytes
¶ Property returning the value of the bytes contain in the function.
Returns: A list of the bytes forming the element. Return type: list(int)
-
_ida_tinfo
¶ Internal property which allow to get the
tinfo_t
swig proxy from IDA associated with this function. Internally this use theidaapi.get_type
method with the third argument (type_source_t
) asidaapi.GUESSED_FUNC
.This property can raise a
BipError
in case it was not possible to determine (guess ?) the type, meaning theidaapi.get_type
returned false. It should be possible to try with a less agressive type source, but except problem with this way it is probably better to be more restrective than less.Note
When a function is decompiled using hexrays IDA will have a usually way better guess on the type of the function so it may be a good idea to decompile the function before getting the type.
Returns: The ida_typeinf.tinfo_t
object (swig proxy) provided by IDA for this function.
-
str_type
¶ Property which return the type (prototype) of the function.
Return str: String representing the type of the function.
-
guess_strtype
¶ Property which allow to return the prototype of the function guessed by IDA.
Return str: The guess prototype of the function.
-
xTo
¶ Property which allow to get all xrefs pointing to (to) this function. This is the equivalent to
XrefsTo
from idapython on the first instruction.Returns: A list of BipXref
with thedst
being this element.
-
xEaTo
¶ Property which allow to get all addresses which referenced this function (xref to).
Returns: A list of address.
-
xEltTo
¶ Property which allow to get all elements which referenced this element (xref to).
Returns: A list of BipBaseElt
(or subclasses ofBipBaseElt
).
-
__weakref__
¶ list of weak references to the object (if defined)
-
xCodeTo
¶ Property which return all instructions which referenced this element. This will take into account jmp, call, ordinary flow and “data” references.
Returns: A list of BipInstr
referenced by this element.
-
callers
¶ Property which return a list of all the functions which call this function.
This function will not take into account jmp or ordinary flow to this function, see
jcallers()
property for also getting the jmp and ordinary flow.Returns: A list of BipFunction
which call this function.
-
jcallers
¶ Property which return a list of all the functions which call, jump or have an ordinary flow to this function.
Returns: A list of BipFunction
which call this function.
-
callees
¶ Property which return a list of the functions which are called by this one.
Internally this function will iterate on all instruction for getting the call xref. This can be quite time consuming.
Returns: A list of BipFunction
which are called by this function.
-
classmethod
by_ordinal
(ordinal)¶ Get an
BipFunction
from its ordinal, there is between0
andBipFunction.count()
function in an IDB.
-
classmethod
iter_all
()¶ Class method allowing to iter on all the functions define in the IDB.
Returns: A generator of BipFunction
allowing to iter on all the functions define in the idb.
-
classmethod
entries
()¶ Get the functions which are entry points of the binary.
Returns: A list of BipFunction
which are entry points of the binary currently analyzed.
-
classmethod
entries_iter
()¶ Get an generator on the functions which are entry points of the binary. This should be faster than
entries()
.Returns: A generator on BipFunction
which are entry points of the binary currently analyzed.
-
classmethod
get_by_name
(name)¶ Class method allowing to get a function from its name.
Returns: A BipFunction
with the correct name or None if the function was not found.
-
classmethod
get_by_prefix
(prefix)¶ Class method allowing to get all the functions which are named with a particular prefix.
Internally this iterate on all functions.
Parameters: prefix (str) – The prefix for which to get the function. Returns: A list of BipFunction
where their names start with the prefix.
-
classmethod
get_by_regex
(regex)¶ Class method allowing to get all functions matching a regex.
Internally this iterate on all functions and use the
re.match
function (it compiles the regex first) and return the function if the match did not return None.Parameters: regex (str) – The regex used for finding the function. Returns: A list of BipFunction
where their names match the regex.
-
classmethod
create
(start, end=None)¶ Class method allowing to create a new function.
Parameters: - start (int) – Start address for the function to create.
- end (int) – Facultative argument which indicate the end address of the function. If is is not provided (None, default value) it will try to create a function using the auto-analysis of IDA.
Returns: A new
BipFunction
object corresponding to the function create. If this function was not able to create the new function aBipError
will be raised.
-
static
count
()¶ Return the number of functions which are present in the idb.
-
BipBlock API¶
-
class
bip.base.
BipBlock
(val=None)¶ Class for representing and manipulating basic blocks in IDA.
Warning
This class is an abstraction on top of IDA BadicBlock. In particular IDA does not create basic block if not in a defined function. Change to the flowgraph can be not directly repercuted on this object.
Todo
equality and inclusion operator
Todo
more functions for testing type (abstraction on .type property), property function starting with
is_
-
__init__
(val=None)¶ Constructor for an
BipBlock
object.This function may raise a
TypeError
if the argument is not of a type supported or aValueError
if the address pass in parameter is not inside a function.Parameters: val – A value used for creating a basic block. This can be an address (int or long) or a ida_gdl.BasicBlock
object. IfNone
the screen address is used.
-
_bb
= None¶ Internal ida_gdl.BasicBlock object representing this block in IDA
-
ea
¶ Property which return the start address of the function.
Return int: The address of the basicblock.
-
end
¶ Property which return the end address of the function. This address is not included in the basicblock.
Return int: The first address at the end of the basicblock.
-
__str__
() <==> str(x)¶
-
_id
¶ Property returning the ID of the basic block. This is use in particular for manipulating the block using the graph functions.
Return int: The ID of this basic block.
-
type
¶ Property which allow access to the type of basic block.
Returns: One of the BipBlockType
enum.
-
is_ret
¶ Property which return True if the block can return.
Internally this test the type for
BipBlockType.FCB_RET
andBipBlockType.FCB_CNDRET
. It is the equivalent ofida_gdl.is_ret_block
in the standard idapython.Returns: True if the block return, False otherwise.
-
is_noret
¶ Property for testing if the block never return. For example this will be True if the block terminate by a call to a function which will never return (
abort
, …)Internally this test the type for
BipBlockType.FCB_NORET
andBipBlockType.FCB_ENORET
. It is the equivalent ofida_gdl.is_noret_block
in the standard idapython.Returns: True if the block never return, False otherwise.
-
is_external
¶ Property for testing if the block is external to the function from which it came.
Internally this test the type for
FCB_ENORET
andFCB_EXTERN
.Note
This should never be True if this
BipBlock
was provided by aBipFunction
, it can be True if the block provided at the initialization was recuperated from an other source.Returns: True if the block is not included in the function from which the flowgraph was created, False otherwise.
-
succ
¶ Return a list of
BipBlock
which are successor of this block. This follow the potential execution pass.Returns: A list of BipBlock
successor of this block.
-
succ_iter
¶ Return a generator of the
BipBlock
following this one. This is equivalent tosucc()
and will probably be a little faster.Returns: A generator of BipBlock
successor of this block.
-
pred
¶ Return a list of
BipBlock
which are predecessor of this block. This provide the basicblock which can lead to this block followin the execution pass.Returns: A list of BipBlock
predecessor of this block.
-
pred_iter
¶ Return a generator of the
BipBlock
predecessor of this one. This is equivalent topred()
and will probably be a little faster.Returns: A generator of BipBlock
predecessor of this block.
-
func
¶ Return the
BipFunction
object corresponding to this block.Note
Internally this will return the
BipFunction
which is present at the start address of the block. In particular in case of external blocks this will return the function in which the block are included and not the one from which they came from.Returns: The BipFunction
in which this block is included.
-
items
¶ Return a list of
BipElt
corresponding to the items included in the basic block (betweenea
andend
).Returns: A list of object BipElt
.
-
instr
¶ Return a list of
BipInstr
corresponding to the instructions of the basicblock.Returns: A list of object BipInstr
.
-
instr_iter
¶ Return a generator of
BipInstr
corresponding to the instructions of the basicblock. This implementation will be just a little more performant than theinstr()
property.Returns: A generator of object BipInstr
.
-
__weakref__
¶ list of weak references to the object (if defined)
-
bytes
¶ Property returning the value of the bytes contain in the basicblock.
Returns: A list of the bytes forming the element. Return type: list(int)
-
color
¶ Property for accessing the color of this basic block.
Raises: RuntimeError – If this function was not able to get the information about the graph node. Return int: The integer representing the color of this block in the BGR format.
-
-
class
bip.base.
BipBlockType
¶ Enum for the type of basic block. This come from the
fc_block_type_t
enum (gdl.hpp
) not exposed to the python API.-
FCB_NORMAL
= 0¶ normal block
-
FCB_INDJUMP
= 1¶ block ends with indirect jump
-
FCB_RET
= 2¶ return block
-
FCB_CNDRET
= 3¶ conditional return block
-
FCB_NORET
= 4¶ noreturn block
-
FCB_ENORET
= 5¶ external noreturn block (does not belong to the function)
-
FCB_EXTERN
= 6¶ external normal block
-
FCB_ERROR
= 7¶ block passes execution past the function end
-


{% if site.disqus %} {% if page.comments %}
Must affirm third-party consent for Disqus comments to appear.
Must affirm third-party consent for Disqus comments to appear.


The Best Weekend Printables Coupons and Sales from RetailMeNot!
Get Up to 40% Off at the jcpenney Home Sale Online and in Store + an Extra 10% Off! Valid Through 6/9.
More top offers include:
Best Buy: 2 Days Only! Up to 25% Off + Free Gifts + Free Shipping
Hallmark: 20% Off Any Item
Chili’s: Free Chips & Salsa, Guacamole, or Queso
& many more at www.retailmenot.com
Copyright 2013 RetailMeNot, Inc. 301 Congress Avenue, Suite 700, Austin, Texas 78701
To opt-out please reply to this email with UNSUBSCRIBE in the subject line.


Connections among subsystems are shown in the block diagram systems.pdf.
J2 connections to C2 box. Document was written for a Kelly motor controller, which has been replaced by a PedalGreen Controller.
|
1- PWR: Controller power supply |
Red |
Battery |
|
2- RTN: Signal return, or power supply ground |
Black |
Battery |
|
3- RTN: Signal return |
Black |
Throttle |
|
4- Motor temperature input or 12V brake input. |
Orange |
Traction Motor |
|
5- Throttle analog input, 0-5V |
Brown |
Throttle |
|
6- Brake analog input, 0-5V |
Dark Green |
Recombinant Brake |
|
7- 5V: 5V supply output, <40mA |
Purple |
Throttle |
|
8- Micro_SW: Throttle switch input. |
Gray |
Throttle |
|
9- Reverse switch input |
Blue |
Recombinant Brake |
|
10-Brake switch input |
White |
Recombinant Brake |
|
11-Hall phase C |
Blue |
Traction Motor |
|
12-Hall phase B |
Green |
Traction Motor |
|
13-Hall phase A |
Yellow |
Traction Motor |
|
14-RTN: Signal return |
Black |
Motor |
Kelly to Motor
|
Motor Phase |
Wire |
|
A |
Green |
|
B |
Blue |
|
C |
Olive |
Kelly to Battery
B+ Red Red connector
B- Red Black connector
25 pin D socket. Female plug on Arduino box. Male end on cable from actuators and sensors.
Pin numbering (Male):
1 2 3 4 5 6 7 8 9 10 11 12 13
14 15 16 17 18 19 20 21 22 23 24 25
(Female)
13 12 11 10 9 8 7 6 5 4 3 2 1
25 24 23 22 21 20 19 18 17 16 15 14
J3 Digital J1 Digital
_________________ _________________
| | | |
| 8 7 6 5 4 3 2 1 | | 8 7 6 5 4 3 2 1 |
|_________________| |_________________|
___________________________________
| |
| ATmega168 Microcontroler |
|___________________________________|
Power J2 Analog in
______________ _____________
| | | |
| 1 2 3 4 5 6 | | 1 2 3 4 5 6 |
|______________| |_____________|
Box wiring tables are in Wiring.xls.
|
|
|
|
J6:4 cyclometer ground ---------------------- J6:6 Ground
J6:7 Cyclometer input ---------------------- J6:3 Cyclometer input
|
1 KΩ
|
J6:5 Vcc
J6:9 C1 LED-------- 330 Ω ----- LED ------------ J6:6 Ground
J6:1 C3 LED-------- 330 Ω ----- LED ------------ J6:6 Ground
J6:8 Halt ----------- 74HCT OR ---------- J6:2 Stop
J6:10 Reset ---------
Elcano
Wiring, Rev B


Again, I’m still trying to figure out how to run my class. The mastery method is great, but it is very hard to assess student work effectively. So, day to day, a student may be doing well, but when it comes to test time, they really struggle putting ideas together. Students expressed frustration to me at the end of last semester, saying they didn’t feel like they were getting enough written practice and they felt cheated when tests came around.
So, I changed my class…again. I think this is my third model this year. We’ve done a lot of shifting, but I feel like its all been for the better so far. I’ve outlined my changes below.
Already, grades have been more reflective of their actual achievement. The real struggle with this one is that I feel like I’m moving back to the traditional classroom, so I’m struggling to find a good medium. Here’s a link to my homework assignments if you want to look at them or use them.
Written on February 1st , 2011 by Brian Bennett Categorized in: All Mastery
Leave a comment


---
layout: default
title: Learn.
Automate.
Share.
subtitle: building and operating high velocity organizations.
---
We meet once a month to share our knowledge and experiences to learn and discuss how to improve collaboration between teams and leverage automation to build better businesses. Typically our meetings last 1-2 hours, and are centered around talks that show off new tool, techniques and companies journeys. Topics generally flow into open discussion at the end.
This is a group targeted to engineers (both dev and ops), tech professionals, managers, leads, architects and entrepreneurs coming together to learn about and share information on DevOps processes, tools, practices and benefits.
We maintain a welcoming and friendly group for everyone. Please read our Code of Conduct
A cultural and professional movement, focused on how we build and operate high velocity organizations, born from the experiences of its practitioners.
Do you have professional experience you want to share? Insight on a great tool that helped you?
Reach out to us about the topic you would like to present by filling out our talk submission form. You can also give feedback on a topic you'd like to see on our Session Ideas wiki.
Learning and collaborating around DevOps in San Diego will be what makes our community grow. Some ways you and your company can help:
Thanks to everyone who attends & contributes to making SDDevOps a strong group.


Install Jenkins and Set Up Jenkins CI for Rails Projects
Travis CI is a great solution for OpenSource project, however, what if you want to setup an internal CI server for private projects? Believe or not, Jenkins CI is the choice. This post will guide you through the Jenkins installation and configuration on VPS (e.g. EC2 instance in this post)
OS Assumption
Assume that you are running an EC2 instance with a Ubuntu system as below:
Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-40-virtual x86_64)
BTW, there is an Amazon free tier that is recommended if you don’t have any VPS to use yet.
Install Rails Environment
As we mainly use this Jenkins CI server for Rails projects, so necessary Ruby/Rails libs and tools are needed as following:
- Install RVM and Ruby
We need to have git core and curl for RVM installation, so install them like this:
sudo apt-get install build-essential git-core
sudo apt-get install curl
And install RVM with ruby as user jenkins
:
#remember to switch to user `jenkins` first
sudo su jenkins
curl -L https://get.rvm.io | bash -s stable --ruby
sudo apt-get install libmysqlclient-dev ruby-dev
- Install Possible Databases
MySQL
sudo apt-get install mysql-client mysql-server libmysql-ruby libmysqlclient-dev
Postgres
sudo aptitude install libpq-dev
sudo apt-get install postgresql
sudo apt-get install postgresql-client
If you had a problem with UTF-8 take a look at http://wiki.gentoo.org/wiki/PostgreSQL
MongoDB
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/10gen.list
sudo apt-get update
sudo apt-get install mongodb-10gen
Install Jenkins
Installation:
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo aptitude update
sudo aptitude install jenkins
Uninstall Jenkins is easy too, just:
sudo apt-get remove jenkins
There is also detailed guide for installing Jenkins on Ubuntu. FYI.
Run Jenkins on Port 80
Default Jenkins runs on port 8080, you need to reverse proxy port 80 to port 8080 for Jenkins, it makes the CI server public to the world. To install nginx, open terminal and type in:
sudo apt-get install nginx
sudo /etc/init.d/nginx start
In order to Open up the config file in vim, and update it.
sudo vim /etc/nginx/nginx.conf
http {
# ...Omitted Parts…
include /etc/nginx/conf.d/*.conf; # This line not modified.
include /etc/nginx/sites-enabled/*; # This line not modified.
##
# Reverse proxy port 80 to port 8080 for Jenkins
##
server {
listen 80 default;
server_name your.domain.com;
location /{
proxy_pass http://<IP_ADDRESS>:8080;
}
}
}
Notice: Jenkins shows build histories and other information, to keep the whole CI server private, you’d better use this guide to add basic auth for your Jenkins CI, it is strongly recommended.
Install valuable plugins for Jenkins
Well, after above installations are done, you are able to visit your Jenkins CI server with your domain. Now it’s time to install below plugins from JenkinsPlugin > Manager
section:
- Github Authentication plugin is used for github OAuth. (This plugin has a bug that you can not logout some times.)
- GitHub Plugin integrates Jenkins with Github projects.
- Jenkins Gravatar plugin is used for showing Gravatar avatar images for Jenkins users.
- RVM Plugin runs your jobs in the RVM managed ruby+gemset of your choice.
- Rake plugin allows Jenkins to invoke Rake tasks as build steps.
- All Changes Plugin shows all changes which influenced the builds of a project.
For more plugins, you should check out the Jenkins Plugins Document.
References & Resources
https://wiki.jenkins-ci.org/display/JENKINS/Configuring+a+Rails+build
http://aptobits.com/2012/09/setting-up-jenkins-ci-on-an-amazon-ec2-linux-instance/
http://watirmelon.com/2011/08/29/running-your-watir-webdriver-tests-in-the-cloud-for-free/
http://gistflow.com/posts/492-jenkins-ci-setup-for-rails-application-from-scratch
http://blogs.burnsidedigital.com/2013/01/setting-jenkins-ci-server-for-rails-project-on-a-vagrant-box/
NOTICE: This is a blog I wrote for Intridea, I also post it here for my own reference. You are able to check out the original post.


Turkey, Russia begin joint patrols in northern Syria - source
SEVIMLI, Turkey (Reuters) - Turkish and Russian troops began conducting their first joint ground patrols in northeast Syria on Friday, a Turkish military source told Reuters.
Ankara and Moscow had agreed to conduct joint patrols in the region under a deal struck by President Tayyip Erdogan and his Russian counterpart Vladimir Putin. Erdogan said on Wednesday the patrols would be at a depth of 7 km (4 miles) in Syrian territory.


Welcome
Welcome to my online portfolio of work! I try to keep this updated, but much of my new work gets posted to JacobHobbie.com. I'd recommend checking that out as well!
The Projects page showcases what I've worked and am working on.
The Goals page showcases the work I did at Newman University related to Software Development.
The About Me page tells you a little more about... well, me!


Jessé Lopes
Work
Contact
Logo Design
Logo Design 1
2020
Logo Design 2
2020
Logo Design 3
2020
Logo Design 4
2020
Logo Design 5
2020
Logo Design 6
2020


Hi! My name is Joseph Adediji. I am a Web Developer, and I'm very passionate and dedicated to my work. I have a first degree in Physics (with electronics), I also have knowledge in digital marketing and computer networking.
I have always been a lover of computers and technology; I previously build websites using WordPress and templates but now I am learning to code and build websites from scratch.
I have the skills and knowledge neccessary to make your website project a success. I enjoy every step of the design process from discussion to concept and execution, but I derive the most satisfaction in seeing the finished product meet your needs.
My Hobbies:
My Interests are:
Happy Trails Travel agency is one of the leading travel agency in the world. They provide Travel, Meetings, Trade Delegations and other logistical support needs.
Languages Used:


The location of Zion or the New Jerusalem, is certainly a subject of
importance, and well worth a candid investigation: for it is one that
interested the prophets, and much the more it ought to interest every true
believer of this remote age of the world; for according to the prophets it
will be a place of refuge, and deliverance for the people of God when
destruction comes upon the nations. Again, the Lord not only intends to gather
all his people together in the last days, but he intends to prepare places for
them to gather to. The city of Zion is said to be one of these places of
gathering; therefore, it is of all importance that we should know where it
will be located or established.
That there will be a city called Zion or the New Jerusalem, built, beautified,
and prepared for the millennium is evident from all the prophets that have
mentioned the work of God of the last days. We have in a brief manner touched
upon this subject before; but the magnitude and importance of it is such, that
we think that justice to it, requires us to give it a more extensive
investigation.
That there was a Zion established at Jerusalem we do not wish to deny; but
that has nothing to do with the one for the millennium. However, because some
are unable to separate, or distinguish it from the one for the Millennium, we
will first show the difference between the two, and then proceed to examine
the prophets with respect to the place of the location of the latter.
This Zion at Jerusalem was sometimes called the upper city, and it was
detached from Jerusalem proper by a wall. Historians say that Jerusalem was
founded by Melchizedeck, then called Salem. Paul says Melchizedek was king of
Salem. (See Heb. vii. 2.) Subsequently it was called Jerusalem; but whether or
not Zion was founded by Melchizedek is not easy for us to determine; but one
thing is certain, it was in existence in the days of David; for when he took
Jerusalem from the Jebusites, it is said that he "..."—2 Sam. v. 7. Many places in the
inspired writings where Zion is mentioned, refer to this Zion at Jerusalem.
Isaiah speaking of this Zion says: "..."—Isa. xxx. 19. Now if Isaiah had no idea of any other Zion;
than the one at Jerusalem, why did he use the preposition at, as though there
was another city called by the same name? Indeed, he knew that the Lord would
cause to be built another city of Zion, which should be a place of deliverance
in the last days, which he saw in the vision established upon this land
[America]; therefore, he used the preposition, "..." to
designate the difference between it and the one of the last days upon another
land. But says one, if the ancients knew that God would establish another Zion
for the Millennium, [213] why did they call the one at Jerusalem by that name?
This is a thing that the scriptures in a measure leave in the dark; however,
there is a foundation for an opinion, which we will give whether it is correct
or not. Zion is a very ancient name, and signifies the pure in heart, or the
place where the pure in heart dwell; and according to recent revelations which
the Lord has given to his people, there was a Zion established in the days of
Enoch wherein the church of the first-born dwelt: and perhaps, Paul alludes to
this Zion of Enoch when he says: "..."—Heb. xii. 22, 23. The
saints of the Antediluvian world, are the only ones that we can with propriety
call the church of the first-born; but they and their Zion are in heaven; and
Paul calls their Zion the city of God, and them the church of the first-born.
Now it is possible that when Melchizedek, or whoever founded Zion; when
arranging the various districts, and suburbs of Jerusalem, called that
district, or the upper city, which was so beautiful and elevated, "..." out of respect to a former Zion, and because of the pureness of the
name; the same as many name their children after eminent men, and those whom
they in a particular manner respect. After David it was called "..."
When Jerusalem is rebuilt, it is probable that this city of David, will also
be built again; but not in fulfillment of the predictions of the prophets
concerning the establishment of the latter-day Zion or the New Jerusalem; but
in fulfillment of prophecy relating to the rebuilding of Jerusalem: for when
it is built of course all its districts and suburbs will also be built. But we
have said enough upon this part of the subject, and we hope that the reader
will be able to designate the difference between the Zion which was at
Jerusalem, and the one that the Lord shall cause to be built for the saints to
gather to, and be a place of refuge and deliverance at the time that God will
trouble the nations with his wrath.
This Zion of the last days, we believe will be located on the land of America;
and indeed, the prophets have said enough to establish this idea. David says:
"..." "..."—Ps.
xlviii. 2–8. David evidently saw the situation of Zion, which he says is
beautiful, at some other place besides Jerusalem, or he would not have said
that it was on the sides of the North. Match this saying with what Isaiah says
in the xviii,∗ of his prophecy, concerning a land [America] beyond the
rivers of Ethiopia, and we learn: first, as Isaiah says, that this is the land
where [214] the Lord’s ensign of the last days was to be reared, and from
whence the ambassadors of the Lord are to be sent to all nations, and where
"..." shall be
established, to which the servants of God, or swift messengers to the nations
shall bring a present unto the Lord of a people terrible from their beginning.
This proves that Zion is to be located in America. Second, that, according to
David, it is to be on the sides of the North; consequently, on North America.
David says in another place: "..." "..."—Ps. cxxxii. 4–13. It cannot be said in truth that Jerusalem
was in the fields of the wood in David’s time; therefore, we conclude that
he had reference to some other place besides Jerusalem. Indeed, the interior
of North America is interspersed with the fields of the woods, or in other
words fields in the midst of the wilderness. Isaiah says: "..."
∗ We have before entered into a full investigation of this chapter;
therefore, we do not deem it necessary to make any more comment upon it. (See
page 182.)
We have before proved the Book of Mormon to be true; therefore, whatever it
says upon this subject we consider as valid testimony. Moroni writing the
words of Ether says, page 550. "..."
As we have before mentioned the prophets have declared that there shall be
deliverance for the saints in Mount Zion, and in Jerusalem; therefore, when we
take all things into consideration, we discover that it is perfectly
consistent with reason and the scriptures, for Zion to be built upon this
continent: for this is a promised land to the tribe of Joseph, as much so as
Canaan to the House of Israel. For instance, the Lord will establish a place
of gathering upon this land, near the [215] centre of the North division of
the continent, which will be convenient for the House of Joseph that is upon
this land to gather to, and also, for many of the saints that are now
scattered among the Gentile nations. And also he will cause the old city of
Jerusalem to be rebuilt, and the Jews to gather there. Thus there will be two
central places of gathering, and deliverance. Zion, and Jerusalem, when spoken
of as being the two great places of deliverance, are not synonymous: for
Jerusalem and its suburbs when spoken of at a distance are all ranked under
the one head; but the prophets speak of Zion as being established, and having
stakes, or auxiliary cities. The city of David or Zion at Jerusalem was merely
an auxiliary and not the principal. Isaiah places this matter beyond doubt,
that Zion and Jerusalem are not synonymous; but on two separate lands. "..." It is said, Gen. x.
25, that in the days of Peleg the earth (not nations) was divided; it is also
said, Gen. i. 9, that the waters were gathered together unto one place at the
time of the creation; and of course the land was in one place; but it is
manifest that there has been a great division, so much so that the earth has
been divided into continents, which the bible says was done in the days of
Peleg; but according to the prophet Isaiah, when the time of restoration
comes, then this continent upon which Zion shall be built,
shall re-unite with the eastern, and thus fulfill the saying, "..." or Joined. But says the objector, how can there be two
places of gathering if Ezekiel’s words are true? "..." We have before proved that the land of America is a promised land to
the House of Joseph;∗ therefore, the "..." are here as
much so as in the land of Canaan. The idea is that the whole earth will be
subjected to one form of government, and to one code of laws, and one king
shall rule over them whether in America or in Asia. But the two continents are
to be united, and then it will be an easy thing for them to become one nation
upon the mountains (not mountain) of Israel, and at the same time the tribe of
Joseph and others dwell in Zion, and its vicinity upon this land, and the Jews
in the land of Canaan, and one king rule over them all. [216]
Having dropped the foregoing hints upon the location of the Zion for the
Millennium, to aid the reader to designate the difference between the Zion at
Jerusalem, and the one of the Latter-days:—we will now quote a few of the
sayings of the prophets concerning the utility of this Zion, the materials of
which it shall be built, its glory, and magnificence, &c., &c., and let that
suffice for the present.


Followers{{profile.followers}} Following {{profile.following}} Public Gists{{profile.public_gists}} Public Repos{{profile.public_repos}}
Profile View
{{repo.name}} Repo View
{{repo.description}}


Deprecated: The packaged version and the `packageJS` are deprecated as of Scala.js 0.5.0. Please use the fast-optimized version instead.
After having compiled and packaged properly the code for the application (using `sbt packageJS`), you should see "It works" herebelow. See README.md for detailed explanations.


Please, select the pictures you want to upload to the selected product. The allowed formats are: .jpg, .gif, .png.
Upload a Youtube video to the selected product.E.g: http://www.youtube.com/watch?v=df-eLzao63I.


Fact from Wikipedia
| Lisbon Lisboa |
|||
|---|---|---|---|
|
|||
| Location of Lisbon in Portugal | |||
| Coordinates: 38°42′N 9°11′W / 38.7°N 9.183°W | |||
| Country | Portugal | ||
| Region | Lisboa Region | ||
| District | Lisbon District | ||
| Government | |||
| - Mayor | António Costa (elected) PS | ||
| Area | |||
| - City | 84.8 km2 (32.7 sq mi) | ||
| - Metro | 2,957.4 km2 (1,141.9 sq mi) | ||
| Population | |||
| - City | 564,657 | ||
| - Density | 6,368/km2 (16,493/sq mi) | ||
| - Metro | 2,641,006 | ||
| Time zone | GMT (UTC+0) | ||
| Website | www.cm-lisboa.pt |
Lisboa
Lisboa
Lisboa


3. Navigating¶
3.1. How to find data within a reactionSuite
¶
The Fudge reactionSuite and covarianceSuite classes are meant to reflect the GNDS data hierarchy. Finding data within them is often just a matter of using the same name as appears in GNDS. For example,
>>> from fudge.gnd import reactionSuite
>>> RS = reactionSuite.readXML("path_to_GND_file.xml")
>>> elastic = RS.getReaction("elastic")
>>> elastic
<fudge.gnd.reactions.reaction.reaction object at 0x1020dc590>
>>> elastic.crossSection
<fudge.gnd.reactionData.crossSection.component object at 0x10220dcd0>
>>> elastic.outputChannel.Q
<fudge.gnd.channelData.Q.component object at 0x10212a0d0>
>>> elastic.outputChannel.products
<fudge.gnd.product.products object at 0x102608e10>
>>> elastic.outputChannel.products[0].multiplicity
<fudge.gnd.productData.multiplicity.component object at 0x102610310>
>>> elastic.outputChannel.products[0].distribution
<fudge.gnd.productData.distributions.distribution.component object at 0x1026103d0>
The ‘getReaction’ method of reactionSuite provides a simple way to search for a desired reaction. In addition to strings like “elastic”, “fission” or “n + Fe56_e3” (to search for a reaction that emits a neutron plus an Fe56 atom with the nucleus in its third excited state), getReaction also accepts ENDF MT numbers.
Within a reaction, data like the cross section, list of products, product multiplicity and distribution information
can all be accessed by using (hopefully) intuitive names. Note, however, that the results are not lists of actual data,
instead they are instances of Fudge classes like crossSection.component
, Q.component
, distribution.component
,
etc. This reflects the basic design of GND: each physical quantity can potentially contain more than one form of data
including the original ‘evaluated’ data as well as other types that may be processed by heating, grouping, etc.
Each component
class contains a list of one or more form
instances containing the actual data.
The components behave like Python dictionaries:
>>> elastic.crossSection.keys()
['eval', 'recon']
Each of the keys corresponds to a style
of data.
3.2. The concept of styles¶
Evaluated nuclear data is sometimes stored in a form that is not easily plotted or used by application codes. For example, cross section data may be given as a combination of resonance parameters and a piecewise ‘background’, but for plotting it must be converted to pointwise, linearly-interpolable data.
GND permits storing both of these data types (or ‘styles’ of data) together in the same hierarchy, so that the user has easy access to the original style used by the evaluator as well as to the reconstructed style that was derived from it for easy plotting. Since multiple styles of data can appear in an evaluation, GND needs to be able to keep them straight. A GND file contains a ‘styles’ section near the top, where each style is defined and given a unique label. Those same labels are used throughout the file to indicate what style each data form is associated with.
In the example above, the cross section component contains two keys, each corresponding to a style
:
the ‘eval’ key corresponds to the original evaluated data, and ‘recon’
corresponding to the data with resonances reconstructed. More detail about different styles is available in the
styles
section of the reactionSuite
.
The reconstructed data are most useful for viewing and plotting:
>>> print( elastic.crossSection['recon'] )
1.00000000e-05 2.09675600e+00
6.19409249e+00 2.17147300e+00
1.23695253e+01 2.25184300e+00
1.89503588e+01 2.34447500e+00
...
4.50000000e+07 1.43070000e+00
5.00000000e+07 1.45270000e+00
5.50000000e+07 1.44300000e+00
6.00000000e+07 1.40960000e+00
(By the way, the example here is the n-025_Mn_055 candidate evaluation in ENDF-VIII-beta4). The data has two columns: incident energy in eV, and cross section in b. We can double-check the units by printing out the axes information:
>>> print( elastic.crossSection['recon'].axes.toXML() )
<axes>
<axis index="1" label="energy_in" unit="eV"/>
<axis index="0" label="crossSection" unit="b"/></axes>
The data are stored in another Fudge class called crossSection.XYs1d
(the name indicates that this is a 1-dimensional
function stored as a list of X-Y pairs). This is a useful class, with methods for integrating, changing interpolations,
performing mathematical operations on two or more XYs1d instances, etc. For more information on the capabilities of
XYs1d see the documentation (FIXME need link to xData here).
If desired you can also extract the data into a simple Python list of X-Y pairs:
>>> xyPairs = elastic.crossSection['recon'].copyDataToXYs()
TO-DO expand discussion to show how to extract data from multiplicities, Q-values, etc.


Overview
The MVC, model-view-controller, pattern is a very traditional popular design in the UI, user-interface, and application development.
MOAT IoT provides the ways to enhance the M and the C in your IoT application so that your application can be lightweight, easily developed, and quickly delivered.
Fig. Mapping MOAT IoT to MVC
Models
Regarding Models, under the MOAT IoT concept, each MOAT IoT API allows you to handle the same models even if its underlying architecture is different.
In other words, you have to find and elaborate carefully such the common models through your class design modeling process because the modeling affects all application stacks from the web tier to the device tier.
Fig. Each API spec provides the way to access to essentially identical models
Note that unlike Value Objects (VO), the models should have functions associated with their domain if any.
Models in MOAT REST
Web applications are usually familiar with the JSON representation of models. They are able to marshal and unmarshal objects and JSON texts on invoking MOAT REST APIs. There are much more models in the applications to render web pages. Some of these models are the universal models mentioned here. In addition, the URI of the REST APIs are reflected by the structure design of the models. For example, if your app 'my-app' has a model named 'MyModel' and suppose the model is a singleton, the URI to fetch shall be 'http://host/path/to/moat/v1/my-app/1.0/MyModel'.
Models in MOAT js
Javascript is, of course, good at tweaking JSON representation strings as the name says. Therefore, MOAT js allows you to send/receive JSON texts to the web applications.
With MOAT js, you can get a plain javascript object as the model representation, which is much easier to operate in the javascript code.
MOAT js enables you to invoke a remote method of a model object in a device as well.
Models in MOAT Android and MOAT OSGi Gateway
In your Android/Java application, your Plain Old Java Objects (POJO) are the representations of the models. You can store them to SQLite databases, files or other databases with SQL, O-R mappers
, or whatever.You can even implement operations to the POJO if you design so.
MOAT Android and MOAT OSGi Gateway certainly propagate the commands of the remote method call from MOAT js implicitly to the POJO with the secured, reliable and proven way.
Model Example
Suppose there is a model, the Photovoltaic Panel (PVP), it will be represented in each component like this:
OMA-DM Capability
If your device is capable of OMA-DM, it is quite easy to integrate it with MOAT IoT applications.
This is because MOAT IoT specifies the conventions to map OMA-DM management objects to MOAT IoT models.
The conventions are easy to learn if you are familiar with recent OMA-DM enabler specifications since they are based upon the design trends of the management objects.
Controllers
MOAT IoT never provides Controllers themselves but APIs to create them, the language to describe them, and conventions to form MOAT IoT applications.
The following picture illustrates each controller module with the corresponding API set interacts with models.
The arrows mean each module manipulates or handles the represented models.


Working with text files
Open the file as readonly mode
f = open('filename','r') # open the file as readonly
print(f) # print the whole content of a file
f.close() # close the file
print(f.closed) # check if the file is closed
A more "standardized way"
with open('filename','r') as file:
#do something with your text
print(file.read())
# you don't have to close the file, it'll automatically close the file for you
Real examples
a.txt
first line
second line
code
with open ('a.txt','r') as file:
print(file.read())
result
C:\Users\ADMIN\PycharmProjects\my_python_project\venv\Scripts\python.exe C:/Users/ADMIN/PycharmProjects/my_python_project/Read_File_In_A_Standardize_Way.py
first line
second line
Process finished with exit code 0
read # of letters
with open('a.txt', 'r') as file:
print(file.read(5))
result
C:\Users\ADMIN\PycharmProjects\my_python_project\venv\Scripts\python.exe C:/Users/ADMIN/PycharmProjects/my_python_project/Read_File_In_A_Standardize_Way.py
first
Process finished with exit code 0
read file as position X
with open('a.txt', 'r') as file:
file.seek(5)
print(file.read())
result
C:\Users\ADMIN\PycharmProjects\my_python_project\venv\Scripts\python.exe C:/Users/ADMIN/PycharmProjects/my_python_project/Read_File_In_A_Standardize_Way.py
line
second line
Process finished with exit code 0
read, tell, seek
with open('a.txt','r') as file:
print(file.seek(15))
print(file.tell())
print(file.read(1))
print(file.tell())
print(file.seek(22))
print(file.read())
print(file.tell())
print(file.read(25))
result
C:\Users\ADMIN\PycharmProjects\my_python_project\venv\Scripts\python.exe C:/Users/ADMIN/PycharmProjects/my_python_project/TempEditor.py
15
15
o
16
22
e
23
Process finished with exit code 0
explanation
note: sp = space, default new line for window is \r\n, for unix,linux is \n
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
f i r s t sp l i n e \r \n s e c o n d l i n e
read the file into a list
code
with open('a.txt','r') as file:
mylist = file.read().splitlines()
print(mylist)
result
C:\Users\ADMIN\PycharmProjects\my_python_project\venv\Scripts\python.exe C:/Users/ADMIN/PycharmProjects/my_python_project/TempEditor.py
['first line', 'second line']
Process finished with exit code 0
code
with open('a.txt','r') as file:
mylist = file.readlines()
print(mylist)
result
C:\Users\ADMIN\PycharmProjects\my_python_project\venv\Scripts\python.exe C:/Users/ADMIN/PycharmProjects/my_python_project/TempEditor.py
['first line\n', 'second line']
Process finished with exit code 0
code
mylist = []
with open('a.txt','r') as file:
for line in file:
mylist.append(line)
print(mylist)
result
C:\Users\ADMIN\PycharmProjects\my_python_project\venv\Scripts\python.exe C:/Users/ADMIN/PycharmProjects/my_python_project/TempEditor.py
['first line\n', 'second line']
Process finished with exit code 0
code
with open('a.txt','r') as file:
for line in file:
print (line,end='')
result
C:\Users\ADMIN\PycharmProjects\my_python_project\venv\Scripts\python.exe C:/Users/ADMIN/PycharmProjects/my_python_project/TempEditor.py
first line
second line
Process finished with exit code 0
Writing to a file
code
with open('a.txt','w') as f:
f.write('MyFirstLine\n')
f.write('MySecondLine')
# Please keep in mind that 'w' mode will overwrite the whole file, if a file doesn't exist, it'll create a new file.
# Allow write only
with open('a.txt','a') as f:
f.write('\nMyLastLine')
# Please keep in mind that 'a' mode will continue to write at the end of file(EOF)
# Allow write only
with open('a.txt','r+') as f:
f.write('This is a line added by r+')
# Read & Write
# Write at the beginning of file, overwrite the beginning content. Can use seek()
# Does not create a file if it doesn't exist.
Textfile content: 'my text file'
with open('mytextfile.txt','r+') as f:
f.write('r+')
#result:
'my r+xt file'
with open('mytextfile.txt','a+') as f:
f.write('a+')
f.seek(0) # read from beginning of the file, you have to specify the reading position
print(f.read())
Textfile content: 'my text file'
#result:
'my text filea+'
# Can not use seek() for write, create a file if it doesn't exist


Validator High-Availability¶
Tendermint is a globally consistent, byzantine-fault tolerant consensus-based replicated state machine - the gold standard in distributed systems.
A single validator, however, is not highly available. It doesn’t need to be - the network tolerates single validator failures just fine.
However, as the validator operator, things look different and your tolerance for single validator failures is pretty low. Sooner or later, every validator operator is confronted with the question of making their validator fault-tolerant. Unfortunately, there’s no established procedure for this and each team is forced to build their own high availability solution.
This article portrays some possible HA topologies and their pros and cons.
Running a Tendermint validator is - like any distributed system - a delicate balance between ensuring availability and consistency/correctness (availability as in “up and signing blocks”, and consistency as in “no byzantine behavior”).
As is well known, the CAP theorem states that you can only pick two of partition tolerance, consistency and availability. Since network partitions are inevitable in any distributed system, you can’t pick CA, and the only choices are AP and CP.
 This means that the only reasonable choice is a CP system - if there’s even the slightest possibility that more than one node is active at the same time, it needs to sacrifice availability (i.e. stop signing).
Single Node Validator¶
Since inconsistency is so dangerous, running a single-node validator is a very reasonable choice. Modern datacenter hardware, in a modern datacenter, with redundant networking, designed by an experienced systems architect, has a very low failure rate sufficient for many low-stakes validators.
As any sysadmin will tell you, badly designed high availability setups tend to fail at a much higher frequency than reliable single-node ones.
By never running two nodes at the same time, the risk of double signing is very low - one would have to trick your replacement validator into signing an earlier block while it recovers or exploit a vulnerability in Tendermint.
However, if the hardware or datacenter does fail in a catastropic way, you will be down for an extended period of time until you have got replacement hardware in place and re-synced. While acceptable for low-stakes validators, most commercial validator operations won’t be able to accept this risk. Even redundant power and networking setups have a non-zero chance of failure, in fact, most systems aren’t fully isolated and failures often tend to be correlated.
(True story: your router has redundant PSUs? Oops, both fans just simultaneously ingested a packaging foil that someone left in the rack).
Active-Standby Validator¶
The next obvious step following a single-node validator is an active-standby setup with manually promoted slaves. If the active node dies, a sysadmin gets paged, ensures the active node is actually dead, and then manually promotes the standby node. You would be surprised how many large SaaS businesses rely on a single beefy MySQL or Postgres server with manual failover!
Both nodes would be identically configured, with the same validator key, mnode key and moniker.
This requires an on-call rotation with very low response times, which is expensive - you’re basically paying someone to sit at home all week, ready to react within minutes (most companies which do this do a follow-the-sun rotation with offices on three continents). It’s also susceptible to human error in determining node states.
Fortunately, active-standby setups are very common and there’s a lot of tooling for automated failover. The state-of-the art solution is Pacemaker/Corosync, superseding heartbeat. Both were initially designed for VM clusters, which have very similar requirements to validators: no VM may ever run twice on the cluster, since it would result in immediate data corruption with both running from the same storage.
While Pacemaker/Corosync supports running with only two nodes, this is essentially a CA setup and will not survive a network partition. This is common (and reasonable) for router/firewall clusters, with devices close to each other and redundant network interfaces and cabling, but we do not recommend a two-node cluster for validators due to the obvious risks e.g. of reaching a split-brain scenario where both nodes go active at the same time.
Best practice for Pacemaker is a three node deployment - one active node, one standby node and a third quorum-only/witness node. Pacemaker will only enable a resource (i.e. start the validator service) if it can establish a quorum, and will self-fence (i.e. kill the validator service; the act of reliably excluding a broken node from the cluster is called fencing) if it loses quorum.
However, even with a quorum, self-fencing can fail. There are many edge cases around the interaction between pacemaker and the resources it protects. For instance, if pacemaker crashes, the node might be considered dead, but the validator service is still running, or your system’s service manager reporting the validator service as down when it’s actually still running.
To prevent these cases, a so-called fencing device like a mechanical relay or out-of-band management interface (IPMI, iLO, …) is necessary which interrupts power for the other node to ensure that it’s really really down (also called STONITH - “shoot the other node in the head”).
A Pacemaker/Corosync is a good option for validator high availability, but involves risks and drawbacks:
- Pacemaker/Corosync is complicated to operate and has many edge cases. We recommend reading the Red Hat guide linked above which details common Pacemaker setups, and hiring someone who has experience with Pacemaker in critical production environments.
- Fencing is failure-prone - it’s actually really hard to ensure a node is down and won’t ever switch back on, either by resetting spontaneously or by operator mistake, and the fencing mechanisms needs to be tested extensively to reduce chance of failure.
- Fencing and failover based on network load balancers or IP failover are unlikely to work as expected due to stateful connections and the P2P nature of the Tendermint network. You need to ensure that the actual processes (and ideally the physical hosts) are stopped.
- You need to synchronize block height/round/step of the last signature to your standby node or risk double signing due to a race condition during failover or someone tricking your node. Do not use shared or replicated storage - it’s hard to reason about and introduces an additional point of failure (see our response in this forum thread).
- Pacemaker/Corosync aren’t designed to work across high latency networks, so this setup won’t scale beyond a single data center or even metro network (the corosync protocol expects latencies <2ms).
Active-Active Validator¶
Certus One has settled for an active-active validator setup. We run multiple validators, with the same key, at the same time, in multiple geographically distributed data centers. We built our own Raft-based consensus layer on top of the Tendermint core by implementing our own PrivValidator wrapper, which forces all signatures through a full Raft consensus.
While we’ve seen some proposals [1] [2] to use the Tendermint protocol itself to provide consensus, we decided it would introduce unnecessary complexity where a (comparably) simple protocol like Raft would suffice - we fortunately don’t need byzantine fault tolerance here.
This removes the brittleness of active-passive setups and the synchrony requirements of the corosync protocol. All of our validators are synchronized with the network at the current block height, ready to sign, while reliably preventing double signing through the Raft log.
This provides guaranteed consistency as well as very high availability (the CAP theorem still wins, though - there’s a small window of time where a node can crash just before submitting a signature to the network, where we cannot reliably retry the operation since we can’t know for sure whether it succeeded; this is deliberate and cannot be fixed without risking consistency).
While our active-active technology - called JANUS - currently isn’t an open source project, we open-sourced all of its dependencies and the testing framework [3] we use. We’re closely following upstream discussions and may decide to open source JANUS later.
We believe that active-active validator setups are the best way going forward, and look forward to contribute to the community discussions regarding active-active setups.
| [1] | https://github.com/tendermint/tendermint/issues/1758 |
| [2] | https://github.com/tendermint/kms/issues/29 |
| [3] | Testing your tooling |
Network topology¶
Raft is usually deployed within a single data center, however, the protocol does not require low latencies and works just fine with higher latencies (at the expense of elections and consensus read/writes taking a multiple of the worst latency in the cluster), assuming proper tuning and timeouts. The acceptable latency depends on the block times in the Tendermint network. We’re running all nodes within central Europe with no node being farther away than 50ms to ensure that a consensus read completes within <1s.
We run at most one validator per data center, with no more than n validators per autonomous system, where n is the number of nodes that the cluster can lose without losing consensus. All nodes are BGP multi-homed with multiple transit providers.
We mapped out all routes between the data centers and ensured - through either private peering agreements or BGP traffic engineering - that even failure of critical transit networks or internet exchanges will not result in loss of consensus.
This allows us to survive the failure of multiple data centers, whole autonomous systems, as well as internet exchanges while at most losing one block.


*label start *comment SETS AMOUNT OF MINI SCENES UTILIZED IN SYSTEM *comment(must not EXCEED number of mini scene labels/booleans) *temp total_scenes *set total_scenes 9 *temp max_scenes There are nine potential random scenes in this game, how many do you wish to use? (2-9) *input_number max_scenes 2 9 *comment THESE SHOULD NOT BE CHANGED *temp current_check *temp current_scene *comment DEFINES THE PREFIX FOR MINI-SCENE LABELS - CAN BE CHANGED *comment BUT IT IS NOT RECOMMENDED *temp labelprefix *set labelprefix "miniscene_" *comment A BOOLEAN VAR IS REQUIRED FOR EACH SCENE.  IF THE MINI-SCENE HAS NOT BEEN READ, MARK IT READ AND GOTO IT; *comment IF THE MINI-SCENE HAS BEEN READ, RE-RANDOMIZE ANOTHER *label nextscene *gosub checkend *rand current_scene 1 total_scenes *set current_check "seen"¤t_scene *if ({current_check} = false) *setref current_check true *set current_scene labelprefix¤t_scene *gotoref current_scene *goto nextscene *label miniscene_1 Scene 1 *page_break *goto nextscene *label miniscene_2 Scene 2 *page_break *goto nextscene *label miniscene_3 Scene 3 *page_break *goto nextscene *label miniscene_4 Scene 4 *page_break *goto nextscene *label miniscene_5 Scene 5 *page_break *goto nextscene *label miniscene_6 Scene 6 *page_break *goto nextscene *label miniscene_7 Scene 7 *page_break *goto nextscene *label miniscene_8 Scene 8 *page_break *goto nextscene *label miniscene_9 Scene 9 *page_break *goto nextscene *label miniscene_10 Scene 10 *page_break *goto nextscene *comment THIS SUB ROUTINE CHECKS IF ALL MINI-SCENES HAVE BEEN READ, IF YES, THE MAIN SCENE IS ENDED; *comment IF NOT, RETURN TO MINI-SCENE RANDOMIZATION *label checkend *temp n *temp current *temp total_read *set total_read 0 *set n 0 *label checkend_loop *set n (n + 1) *set current "seen"&n *if ({current} = true) *set total_read (total_read + 1) *if (total_read = max_scenes) You're done! ${max_scenes} scenes were shown in a random order! *page_break play again *goto start *comment GOTO IS IN PLACE FOR DEMO PURPOSES, *FINISH WOULD PROBABLY BE MORE PRUDENT *finish *if (n = total_scenes) *return *goto checkend_loop # Literals 1234 0.0e101 .123 0b01010011100 0o01234567 0x0987654321abcdef 7<PHONE_NUMBER> 3L<PHONE_NUMBER>4264337593543950336L 0x100000000L<PHONE_NUMBER>4264337593543950336 0xdeadbeef 3.14j 10.j 10j .001j 1e100j 3.14e-10j # String Literals 'For\'' "God\"" """so loved the world""" '''that he gave his only begotten\' ''' 'that whosoever believeth \ in him' '' # Identifiers __a__ a.b a.b.c # Operators + - * / % & | ^ ~ < > == != <= >= <> << >> // ** and or not in is # Delimiters () [] {} , : ` = ; @ . # Note that @ and . require the proper context. += -= *= /= %= &= |= ^= //= >>= <<= **= # Keywords as assert break class continue def del elif else except finally for from global if import lambda pass raise return try while with yield # Python 2 Keywords (otherwise Identifiers) exec print # Python 3 Keywords (otherwise Identifiers) nonlocal # Types bool classmethod complex dict enumerate float frozenset int list object property reversed set slice staticmethod str super tuple type # Python 2 Types (otherwise Identifiers) basestring buffer file long unicode xrange # Python 3 Types (otherwise Identifiers) bytearray bytes filter map memoryview open range zip # Some Example code import os from package import ParentClass @nonsenseDecorator def doesNothing(): pass class ExampleClass(ParentClass): @staticmethod def example(inputStr): a = list(inputStr) a.reverse() return ''.join(a) def __init__(self, mixin = 'Hello'): self.mixin = mixin


Lookbook Women
Etiam aliquam risus ante, quis ultrices enim porta a. Integer et dolor sit amet enim feugiat faucibus. Donec sit amet egestas orci. Proin facilisis mi ornare turpis sollicitudin; vel rutrum est viverra. Vestibulum hendrerit egestas semper.
Design is a funny word. Some people think design means how it looks. But of course, if you dig deeper, it’s really how it works.
They may forget what you said, but they will never forget how you made them feel.