+++ title = "Protontypes" linkTitle = "Protontypes" +++ {{< blocks/cover image_anchor="top" height="full" color="blue" class="test" >}}
Stand on the shoulders of giants
{{< blocks/link-down color="info" >}} {{< /blocks/cover >}} {{% blocks/lead color="white" %}} The principle of open scientific proof as in physics enables us to conquer the world. Open data, technology, evidence and software allow facts to be described and easily reproduced by others. It creates vendor-independent ecosystems and standards to advance technology and stop reinventing the wheel. Today, about 70% of source code analyses for security and risk assessment are already open source. Find out more about this [**success story**](/about_open_innovation/). {{% /blocks/lead %}} {{% blocks/lead color="blue" %}} We are [**supporting**](services/) your organization in the adaptation of methods and open technologies from interdisciplinary areas such as autonomous driving to accelerate your development. Benefit from our professional experience in development environments for areas such as logistics, autonomous driving or robotics. Our services in the areas of maintenance, consulting, DevOps, software management and training will enable your organization to develop powerful applications based on open technologies and development methods. {{% /blocks/lead %}} {{% blocks/lead color="dark" %}} Our training and consulting in [**InnerSource**](https://en.wikipedia.org/wiki/InnerSource) methods maximizes the success of innovation and development strategies through knowledge transfer within your teams. Methods like Gitflow, Continuous Integration or Issue Triage create a transparent and traceable workflow across distributed teams. By an organization wide integrating of version control, template development, and automatic testing for all your product-related documentation, the quality of the individual release steps becomes measurable and transparent for each team member. {{% /blocks/lead %}} {{% blocks/lead color="white" %}} Protontypes provides an open [**accelerator**](https://discourse.protontypes.eu) platform to bring together open source developers, investors and entrepreneurs. It is a place for interdisciplinary engineers and users to exchange knowledge and ideas on how to create business and innovation with the support of the community. Using the open accelerator is optional. For business customers we also offer commercial services without involving the open accelerator. Find more information in our [**white paper**](/protontypes_white_paper.pdf). {{% /blocks/lead %}} {{< blocks/section color="dark" >}} {{% blocks/feature icon="fa fa-tools" title="Liberate Your Organization" url="/services/open-tooling-and-development-environment" %}} Benefit from professional experience in automotive, logistics and robotics. The success of your sustainable company development is our goal. {{% /blocks/feature %}} {{% blocks/feature icon="fa fa-book-open" title="Transparent for Customers, Developers and Investors" url="https://github.com/protontypes/openselery" %}} Protontypes is transparent and open in its financing, roadmap, technology and communication. {{% /blocks/feature %}} {{% blocks/feature icon="fa fa-leaf" title="Non-Profit Support for New Sustainable Projects" url="/services/#how-can-my-organization-apply-for-non-profit-support-in-the-application-of-open-technology" %}} Protontypes offers free training and support for start-ups and new open source projects in the field of sustainable technologies. {{% /blocks/feature %}} {{< /blocks/section >}}


British Airways says flights disrupted by 'technical issue'
by The Associated Press, StaffLONDON -- British Airways says flights are being disrupted by a "technical issue."
Information from Heathrow, Britain's busiest airport, shows some trans-Atlantic flights delayed Thursday by several hours.
The airline said in a statement that "our teams are working hard to resolve a technical issue which is affecting some of our flights." It didn't disclose the nature of the issue.
It is the latest in a series of systems failures suffered by the airline in recent years.
In August, an IT glitch caused the cancellation of more than 100 flights and disrupted the travel plans of tens of thousands of passengers. Travelers around the world also were stranded in May 2017 when a global computer failure grounded hundreds of British Airways flights over three days.
British Airways meanwhile suffered strikes this summer that led to the cancellation of almost all its flights for days.


Jessica Moreno
Hi! My name is Jessica Moreno, and I am an undergraduate student at Lewis University in Romeoville, Illinois. I am currently pursuing my Bachelor of Elementary Education and expect to obtain my teaching license for the state of Illinois by December 2020. For part of my undergraduate degree, I received a Learning Behavior Specialist endorsement. Also as part of my undergraduate degree I received my Associate of Arts from the College of DuPage in Glen Ellyn, Illinois. I am currently student teaching 3rd grade at Kendall Elementary School in Naperville, Illinois and am enjoying every moment of it!


Gecode::Space Class Reference
Inherited by Example.Detailed Description
Computation spaces.
Definition at line 613 of file core.icc.
Public Member Functions | |
| Space (void) | |
| Default constructor. | |
| virtual | ~Space (void) |
| Destructor. | |
| Space (bool share, Space &s) | |
| Constructor for cloning. | |
| virtual Space * | copy (bool share)=0 |
| Copying member function. | |
| SpaceStatus | status (unsigned long int &pn=unused_uli) |
| Query space status. | |
| const BranchingDesc * | description (void) const |
| Create new branching description for current branching. | |
| Space * | clone (bool share=true, unsigned long int &pn=unused_uli) |
| Clone space. | |
| void | commit (const BranchingDesc *d, unsigned int a) |
| Commit branching description d and for alternative a. | |
| void | flush (void) |
| Flush cache datastructures in actors. | |
| void | fail (void) |
| Fail space. | |
| bool | failed (void) const |
| Check whether space is failed. | |
| unsigned int | propagators (void) const |
| Return number of propagators. | |
| unsigned int | branchings (void) const |
| Return number of branchings. | |
| void * | alloc (size_t) |
| Allocate memory on space heap. | |
| void | reuse (void *, size_t) |
| Attempt to reuse memory previously allocated with alloc. | |
| template<size_t > | |
| void * | fl_alloc (void) |
| Allocate from freelist-managed memory. | |
| template<size_t > | |
| void | fl_dispose (FreeList *f, FreeList *l) |
| Return freelist-managed memory to freelist. | |
| size_t | allocated (void) const |
| Return how much heap memory is allocated by this space. | |
| size_t | cached (void) const |
| Return how much memory is used by caches for actors. | |
| template<VarTypeId VTI> | |
| VarBase * | varsDisposeList (void) |
| Return list of variables that need deletion. | |
| template<VarTypeId VTI> | |
| void | varsDisposeList (VarBase *v) |
| Set list of variables that need deletion. | |
Static Public Member Functions | |
| static void * | operator new (size_t) |
| Allocate memory from heap for new space. | |
| static void | operator delete (void *) |
| Free memory allocated from heap. |
Member Function Documentation
|
|
Return number of propagators. Note that this function takes linear time in the number of propagators. The number is only accurate when the space is stable (that is, at fixpoint and all propagation is done). Throws an exception of type SpaceFailed, if the space is failed. |
|
|
Return number of branchings. Note that this function takes linear time in the number of branchings. Throws an exception of type SpaceFailed, if the space is failed. |
The documentation for this class was generated from the following files:
- gecode/kernel/core.icc (Revision: 3787)
- gecode/kernel/core.cc (Revision: 3550)


Local Amenities map displays some essential information required to get a good idea about the locality! All the information is free and easily accessible!
Get Started!To report any issue or technical difficulty! Please give us a call or send us an email and we will get back to you as soon as possible!
123-456-6789


meteor-contest description
(Never included)
Background
The Meteor Puzzle board is made up of 10 rows of 5 hexagonal Cells. There are 10 puzzle pieces to be placed on the board, we'll number them 0 to 9. Each puzzle piece is made up of 5 hexagonal Cells. As different algorithms may be used to generate the puzzle solutions, we require that the solutions be printed in a standard order and format. Here's one approach - working along each row left to right, and down the board from top to bottom, take the number of the piece placed in each cell on the board, and create a string from all 50 numbers, for example the smallest puzzle solution would be represented by
00001222012661126155865558633348893448934747977799
Print the smallest and largest Meteor Puzzle 50 character solution string in this format to mimic the hexagonal puzzle board:
0 0 0 0 1 2 2 2 0 1 2 6 6 1 1 2 6 1 5 5 8 6 5 5 5 8 6 3 3 3 4 8 8 9 3 4 4 8 9 3 4 7 4 7 9 7 7 7 9 9
The command line parameter N should limit how many solutions will be found before the program halts, so that you can work with just a few solutions to debug and optimize your program.
The puzzle board
cell NW NE W E SW SE 0 -- -- -- 01 -- 05 1 -- -- 00 02 05 06 2 -- -- 01 03 06 07 3 -- -- 02 04 07 08 4 -- -- 03 -- 08 09 5 00 01 -- 06 10 11 6 01 02 05 07 11 12 7 02 03 06 08 12 13 8 03 04 07 09 13 14 9 04 -- 08 -- 14 -- 10 -- 05 -- 11 -- 15 11 05 06 10 12 15 16 12 06 07 11 13 16 17 13 07 08 12 14 17 18 14 08 09 13 -- 18 19 15 10 11 -- 16 20 21 16 11 12 15 17 21 22 17 12 13 16 18 22 23 18 13 14 17 19 23 24 19 14 -- 18 -- 24 -- 20 -- 15 -- 21 -- 25 21 15 16 20 22 25 26 22 16 17 21 23 26 27 23 17 18 22 24 27 28 24 18 19 23 -- 28 29 25 20 21 -- 26 30 31 26 21 22 25 27 31 32 27 22 23 26 28 32 33 28 23 24 27 29 33 34 29 24 -- 28 -- 34 -- 30 -- 25 -- 31 -- 35 31 25 26 30 32 35 36 32 26 27 31 33 36 37 33 27 28 32 34 37 38 34 28 29 33 -- 38 39 35 30 31 -- 36 40 41 36 31 32 35 37 41 42 37 32 33 36 38 42 43 38 33 34 37 39 43 44 39 34 -- 38 -- 44 -- 40 -- 35 -- 41 -- 45 41 35 36 40 42 45 46 42 36 37 41 43 46 47 43 37 38 42 44 47 48 44 38 39 43 -- 48 49 45 40 41 -- 46 -- -- 46 41 42 45 47 -- -- 47 42 43 46 48 -- -- 48 43 44 47 49 -- -- 49 44 -- 48 -- -- --
How to implement
The Meteor Puzzle and 3 Java puzzle solvers are described in [pdf 111KB] "Optimize your Java application's performance".
You are expected to diff the output from your program N = 2098 against this output file to check your program is correct, before you contribute your program.


Key events in the COVID-19 pandemic, December 2019–May 2020
Clusters of pneumonia of unknown origin in Wuhan, China.
Human infection probably began sometime between 9 October and 20 December 2019. 69
WHO alerted of a novel coronavirus on 31 December 2019.
Several cases in Hubei Province, China, and probably already spread to surrounding areas.
The virus may have already been spreading in France late December 2019. 70
First case outside China reported in Thailand on 13 January 2020.
Cases reported in at least 24 countries, mostly in South and Southeast Asia; also in Europe, the USA, Canada and the United Arab Emirates. 71
The ‘new disease’ declared a ‘Public Health Emergency of International Concern’ on 30 January 2020.
Mostly ‘imported cases only’, mainly travellers from China. Soon ‘export’ of virus from other countries started.
The Wuhan lockdown, 72 which later inspired a series of lockdowns across the world.
The new disease named COVID-19 on 11 February 2020.
Cruise ship Princess Diamond quarantined near Japan, sparking media attention.
Epidemic in China peaked with ~80 000 cases and 2900 deaths (80% of cases restricted to the Hubei Province). 73
Local epidemics of varying attack rates and case fatality rates in 58 countries with imported cases causing ‘local transmission’ reported from 20 countries.
South Korea, Italy and Iran emerged as new epicentres.
Europe engulfed with local epidemics.
Over 170 countries were affected worldwide.
The epidemic in China seemed to have plateaued.
WHO declared the epidemic a pandemic.
China partially lifted lockdown while India instituted the world’s biggest complete lockdown affecting ~1.4 billion people. 74
COVID-19 cases crossed 1 million with more than 50 000 deaths.
The US emerged as the most affected country with epicentre in New York.
Aerosols implicated in the transmission (prompting ‘mass masking’ of the general public).
WHO warned that Africa will be the future epicentre of COVID-19.
South America became the new epicentre of COVID-19.
More than 325 000 deaths globally with ~5 million cases in 216 countries/territories/areas.
At the time of writing (end of May 2020), no effective medication and/or vaccine exist.
The pandemic appeared to have slowed down in countries such as South Korea, Italy, Spain, France and the rest of Europe.
In Africa, the number of cases seemed to fall short of forecasts.
Tremendous socioeconomic fallouts after an estimated 4.5 billion persons (more than half of humanity) subjected to social distancing norms and/or lockdowns. 75


{{reply.user.firstName}} {{reply.user.lastName}} replied to: {{reply.to.firstName}} {{reply.to.lastName}}
{{reply.likes.length}}


XCDLogLevel
Objective-C
enum XCDLogLevel {}
Swift
enum XCDLogLevel : UInt
The log levels, closely mirroring the log levels of CocoaLumberjack.
-
Used when an error is produced, e.g. when a
<XCDYouTubeVideoOperation>
finishes with an error.Declaration
Objective-C
XCDLogLevelError = 0
Swift
case error = 0
-
Used on unusual conditions that may eventually lead to an error.
Declaration
Objective-C
XCDLogLevelWarning = 1
Swift
case warning = 1
-
Used when logging normal operational information, e.g. when a
<XCDYouTubeVideoOperation>
starts, is cancelled or finishes.Declaration
Objective-C
XCDLogLevelInfo = 2
Swift
case info = 2
-
Used throughout a
<XCDYouTubeVideoOperation>
for debugging purpose, e.g. for HTTP requests.Declaration
Objective-C
XCDLogLevelDebug = 3
Swift
case debug = 3
-
Used to report large amount of information, e.g. full HTTP responses.
Declaration
Objective-C
XCDLogLevelVerbose = 4
Swift
case verbose = 4


Markov Babbler
Markov What?
~ Babblers ~
Huckleberry Finn!
Shakespeare Sonnets
Rap Generator
Input Your Own Text
Contact Me!
Huckleberry Finn
Sentences:
Paragraphs:
Ready, Set, Babble!


{% extends "silpa.html" %} {% block modulescript %} {% endblock %} {% block content %}
This is a Fuzzy string search application. This application illustrates the combined use of Edit distance and Indic Soundex algorithm.
By mixing both written like(edit distance) and sounds like(soundex), we achieve an efficient aproximate string searching. This application is capable of cross language string search too. That means, you can search Hindi words in Malayalam text. If there is any Malayalam word, which is approximate transliteration of hindi word, or sounds alike the hindi words, it will be returned as an approximate match. The "written like" algorithm used here is a bigram average algorithm. The ratio of common bigrams in two strings and average number of bigrams will give a factor which is greater than zero and less than 1. Similarly the soundex algorithm also gives a weight. By selecting words which has comparison weight more than the threshold weight(which 0.6), we get the search results.
In the search result. move your mouse over the words to get the comparison weight.
{% endblock %}


public class NetCDFUtil
extends java.lang.Object
| Constructor and Description |
|---|
NetCDFUtil() |
| Modifier and Type | Method and Description |
|---|---|
static void |
close(ucar.nc2.NetcdfFile ncfile)
Static function to close a NetcdfFile.
|
static ucar.ma2.Array |
getData(ucar.nc2.NetcdfFile ncfile,
java.lang.String varName)
Static function to get specific data from a netcdf dataset file.
|
static ucar.ma2.Array |
getDataSubset(ucar.nc2.NetcdfFile ncfile,
java.lang.String varName,
java.lang.String subsections)
Experimental method to get a subset of the data, denoted by the variable
name and a subsection according to the Netcdf format for specifying these
subsections.
|
static int[] |
getDimensions(ucar.nc2.NetcdfFile ncfile,
java.lang.String varName)
Static method to extract the shape of a variable's dimensions.
|
static java.lang.String |
getFancyVarName(ucar.nc2.NetcdfFile ncfile,
java.lang.String varName)
Static method to extract the full name of a Netcdf variable.
|
static java.lang.String |
getFancyVarUnits(ucar.nc2.NetcdfFile ncfile,
java.lang.String varName)
Static method to extract the full name of a variable's units.
|
static int |
getFrameNumber(java.io.File file)
Get the frame (sequence) number from a file.
|
static int |
getNumFiles(java.io.File file,
java.lang.String ext)
Static function to count the number of files matching a certain
extension.
|
static int |
getNumFiles(java.lang.String pathName,
java.lang.String ext)
Static function to count the number of files matching a certain
extension.
|
static java.lang.String |
getPath(java.io.File file)
Static function to get the path of a file.
|
static java.lang.String |
getPostfix(java.io.File file)
Static function to get the part of a filename that comes after the
sequence number.
|
static java.lang.String |
getPrefix(java.io.File file)
Static function to get the part of a filename that comes before the
sequence number.
|
static ucar.nc2.Variable[] |
getQualifyingVariables(ucar.nc2.NetcdfFile ncfile,
ucar.nc2.Dimension[] latCandidates,
ucar.nc2.Dimension[] lonCandidates)
Experimental method to extract the used variable names from a NetcdfFile
by candidate dimensions.
|
static java.io.File |
getSeqFile(java.io.File initialFile,
int value)
Getter for a file in a sequence of files, that corresponds to a certain
sequence number.
|
static java.io.File |
getSeqLowestFile(java.io.File initialFile)
Get the lowest file in a sequence of files.
|
static java.io.File |
getSeqNextFile(java.io.File initialFile)
Getter for the next file in the sequence denoted by the file given.
|
static java.io.File |
getSeqPreviousFile(java.io.File initialFile)
Get the file that is the previous one in a sequence of files.
|
static java.lang.String |
getUsedDimensionName(ucar.nc2.NetcdfFile ncfile,
java.lang.String... permutations)
Experimental function to retrieve a used dimension name out of a list of
possible permutations.
|
static java.lang.String[] |
getUsedDimensionNames(ucar.nc2.NetcdfFile ncfile,
java.lang.String... permutations)
Experimental method to extract the used dimensions from a NetcdfFile
based on permutations of dimension names.
|
static java.util.ArrayList<java.lang.String> |
getUsedDimensionNamesBySubstring(ucar.nc2.NetcdfFile ncfile,
java.lang.String subString)
Experimental method to extract the used dimension names from a NetcdfFile
by a substring in that dimension's name.
|
static ucar.nc2.Dimension[] |
getUsedDimensionsBySubstring(ucar.nc2.NetcdfFile ncfile,
java.lang.String subString)
Experimental method to extract the used dimensions from a NetcdfFile by a
substring in that dimension's name.
|
static java.util.ArrayList<java.lang.String> |
getVarNames(ucar.nc2.NetcdfFile ncfile,
java.util.ArrayList<java.lang.String> latCandidates,
java.util.ArrayList<java.lang.String> lonCandidates)
Experimental method to extract the used variable names from a NetcdfFile
by candidate dimension names.
|
static java.lang.String[] |
getVarNames(ucar.nc2.NetcdfFile ncfile,
java.lang.String... mandatoryDims)
Experimental method to extract the used variable names from a NetcdfFile
by mandatory dimension names.
|
static java.lang.String[] |
getVarNames(ucar.nc2.NetcdfFile ncfile,
java.lang.String[] latCandidates,
java.lang.String[] lonCandidates)
Experimental method to extract the used variable names from a NetcdfFile
by candidate dimension names.
|
static boolean |
isAcceptableFile(java.io.File file,
java.lang.String[] accExts)
Check whether the file's extension is acceptable.
|
static ucar.nc2.NetcdfFile |
open(java.io.File file)
Static function to open a file with the netcdf library.
|
static ucar.nc2.NetcdfFile |
open(java.lang.String filename)
Static function to open a file with the netcdf library.
|
static void |
printInfo(ucar.nc2.NetcdfFile ncfile)
Debug method that prints some info about a NetcdfFile.
|
public static java.lang.String getPrefix(java.io.File file)
file
- A file in the sequence for which the prefix is requested.public static java.lang.String getPostfix(java.io.File file)
file
- A file in the sequence for which the postfix is requested.public static java.lang.String getPath(java.io.File file)
file
- The file for which the path is requested.public static ucar.nc2.NetcdfFile open(java.lang.String filename)
filename
- The file's full name.public static ucar.nc2.NetcdfFile open(java.io.File file)
filename
- The file to open.public static void close(ucar.nc2.NetcdfFile ncfile)
ncfile
- The file to close.public static int getNumFiles(java.io.File file, java.lang.String ext)
file
- An example file in the directory to search in.ext
- The extension to filer on.public static int getNumFiles(java.lang.String pathName, java.lang.String ext)
pathName
- The pathname of the directory to search in.ext
- The extension to filer on.public static void printInfo(ucar.nc2.NetcdfFile ncfile)
ncfile
- the file to print info on.public static ucar.ma2.Array getData(ucar.nc2.NetcdfFile ncfile, java.lang.String varName) throws NetCDFNoSuchVariableException
ncfile
- The file to get data from.varName
- The Netcdf variable to read from the data file.NetCDFNoSuchVariableException
- if the variable was not found.public static java.lang.String getUsedDimensionName(ucar.nc2.NetcdfFile ncfile, java.lang.String... permutations) throws NetCDFNoSuchVariableException
ncfile
- The file to check for used dimensions.permutations
- The list of name permutations to check.NetCDFNoSuchVariableException
- If all permutations ended up not being used.public static java.util.ArrayList<java.lang.String> getUsedDimensionNamesBySubstring(ucar.nc2.NetcdfFile ncfile, java.lang.String subString) throws NetCDFNoSuchVariableException
ncfile
- The NetcdfFile to check.subString
- The substring to check for.NetCDFNoSuchVariableException
- If no dimension name was found with the given substring.public static java.util.ArrayList<java.lang.String> getVarNames(ucar.nc2.NetcdfFile ncfile, java.util.ArrayList<java.lang.String> latCandidates, java.util.ArrayList<java.lang.String> lonCandidates)
ncfile
- The file to extract the variables from.latCandidates
- The list of candidates for the first dimension.lonCandidates
- The list of candidates for the second dimension.public static java.lang.String getFancyVarName(ucar.nc2.NetcdfFile ncfile, java.lang.String varName)
ncfile
- The NetcdfFile to extract the information from.varName
- The shorthand variable name.public static java.lang.String getFancyVarUnits(ucar.nc2.NetcdfFile ncfile, java.lang.String varName)
ncfile
- The NetcdfFile to extract the information from.varName
- The shorthand variable name.public static int[] getDimensions(ucar.nc2.NetcdfFile ncfile, java.lang.String varName)
ncfile
- The NetcdfFile to extract the information from.varName
- The shorthand variable name.public static ucar.nc2.Dimension[] getUsedDimensionsBySubstring(ucar.nc2.NetcdfFile ncfile, java.lang.String subString) throws NetCDFNoSuchVariableException
ncfile
- The NetcdfFile to check.subString
- The substring to check for.NetCDFNoSuchVariableException
- If no dimension name was found with the given substring.public static ucar.nc2.Variable[] getQualifyingVariables(ucar.nc2.NetcdfFile ncfile, ucar.nc2.Dimension[] latCandidates, ucar.nc2.Dimension[] lonCandidates)
ncfile
- The file to extract the variables from.latCandidates
- The list of candidates for the first dimension.lonCandidates
- The list of candidates for the second dimension.public static java.lang.String[] getUsedDimensionNames(ucar.nc2.NetcdfFile ncfile, java.lang.String... permutations) throws NetCDFNoSuchVariableException
ncfile
- The NetcdfFile to check.permutations
- The permutations to check for.NetCDFNoSuchVariableException
- If no dimension name was found among the permutations.public static java.lang.String[] getVarNames(ucar.nc2.NetcdfFile ncfile, java.lang.String... mandatoryDims)
ncfile
- The file to extract the variables from.mandatoryDims
- The list of mandatory dimension names for the variables to
have.public static java.lang.String[] getVarNames(ucar.nc2.NetcdfFile ncfile, java.lang.String[] latCandidates, java.lang.String[] lonCandidates)
ncfile
- The file to extract the variables from.latCandidates
- The list of candidates for the first dimension.lonCandidates
- The list of candidates for the second dimension.public static ucar.ma2.Array getDataSubset(ucar.nc2.NetcdfFile ncfile, java.lang.String varName, java.lang.String subsections) throws NetCDFNoSuchVariableException
ncfile
- The NetcdfFile to extract the data from.varName
- The name of the variable to extract.subsections
- The netcdf format string for specification of subsections.NetCDFNoSuchVariableException
public static int getFrameNumber(java.io.File file)
file
- The file to check for the presence of a sequence number.public static java.io.File getSeqLowestFile(java.io.File initialFile)
initialFile
- Any file in the sequence.public static boolean isAcceptableFile(java.io.File file, java.lang.String[] accExts)
file
- The file to check.accExts
- The list of acceptable extensions.public static java.io.File getSeqPreviousFile(java.io.File initialFile)
initialFile
- The file to get the predecessor of.public static java.io.File getSeqFile(java.io.File initialFile, int value) throws java.io.IOException
initialFile
- Any file in the sequence.value
- The sequence number of the file to get.java.io.IOException
- If there was no file in the sequence with the given sequence
number.public static java.io.File getSeqNextFile(java.io.File initialFile)
initialFile
- Any file in the sequence.


Toggle navigation
Carl Zimmerman's Portfolio
Our Mission
(current)
Websites
Showfuse Video
>
Carl Zimmerman
Welcome to my Portfolio
Here you will find cool things I have made
Good Coffee Co
Social Media Login
More to Come!


freeCodeCamp Survey Form
Thank you for taking the time to help us improve the platform
Name
Email
Age
(Optional)
Which option best describes your current role?
Select current role
Student
Full Time Job
Full Time Learner
Prefer not to say
others
Would you recommend freeCodeCamp to a friend?
Definitely
Maybe
Not sure
What is your favorite feature of freeCodeCamp?
Select an option
Challenges
Projects
Community
Open Source


June 6, 2014
Web Design is a process that begins with user experience and ends with the actual writing of code. Check out the beginning stage of sketching a websites design with these wireframes of my favorite sites.
Smitten Kitchen
The Smitten Kitchen website is a Wordpress site that uses a blog format. The website provides recipes accompanied by photography of the food through each step in the preparation. The challenge on this site is to balance content with images, which it does beautifully.
Pinterest focuses on providing visual content but is challenged to do so in a way that does not appear blocky or cumbersome. They prevent this by presenting each post in individual containers that vary in size. Each container is presented using a random layout for each container so as to give a continuous and asymetrical appearance.
TED
The TED website gives access to recorded speeches given at TED conferences by inspirational thinkers and experts. The challenge is to present the range of video content available so that a diverse viewership will find at least one video of interest to them on the homepage. An additional challenge is to present the options in a way that does not appear blocky or heavy. They succeed in having the videos maintain an agile feel by presenting them asymetrically and having them expand an the screen as you hover over them.


The keyword cracker continuously tries to find the most valuable results and lists them below sorted by their englishness-score. Click on a result to accept it.
{{ result.getMessage() }}
No results recorded so far.


preprocessing.Rmd
library(eyer)
## Loading required package: ggplot2
## Registered S3 methods overwritten by 'ggplot2': ## method from ## [.quosures rlang ## c.quosures rlang ## print.quosures rlang
obj <- eyer_data
obj_down <- downsample(obj, n = 100) plot_gaze(obj, color="red")
plot_gaze(obj_down)
obj_flipped <- flip_axis(obj, "y", 1080) plot_gaze(obj, downsample = 50, color="red") + geom_eyer_monitor(obj)
plot_gaze(obj_flipped, downsample = 50) + geom_eyer_monitor(obj)
Let’s say the eyetracking needs to be shifted a bit from time 0 till 10 seconds is a bit shifted as the participant moved their head. We can use the recalibration functionality to shift gaze and fixations data.
obj_prep <- filter_times(obj, c(0, 10000)) new_zero <- c(100, 100) obj_prep_shifted <- recalibrate_eye_data(obj_prep, new_zero) plot_gaze(obj_prep, downsample = 0) + geom_point(data=obj_prep_shifted$data$gaze, aes(x, y), color="blue") + geom_eyer_monitor(obj_prep)


class: center, middle # Introduction to the Java Virtual Machine kaiwang.chen at gmail.com Oct 25, 2013 --- ## Agenda - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - HotspotVM support techniques --- - **Java Virtual Machine compared to real machine** - Computer system abstraction levels - Java Virtual Machine compared to real machine - Say hello - Typical transformation flow - Hello sources - What's inside? - Inside the Java Virtual Machine - HotspotVM support techniques --- ## Computer system abstraction levels _All problems in computer science can be solved by another level of indirection... Except for the problem of too many layers of indirection. (David Wheeler)_ +------------------------+ | Java application | +----------------+------------------------+ | Application | Java Virtual Machine | +----------------+------------------------+ ( Operating System Kernel ) +-----------------------------------------+ | hardware: CPU, memory, I/O devices, ... | +-----------------------------------------+ - Operating System Kernel ensures integrity and isolation - A Java Virtual Machine instance runs only one Java application - Java Virtual Machines are regular OS applications --- ## Java Virtual Machine compared to real machine | | Real machine(e.g.) | Java Virtual Machine | |:------------------|:---------- --------|:------------------------------| | instruction set | x86 | the JVM instruction set | | assembly | Intel, AT&T | javap, Jasmin | | assembler | nasm, gcc | jasmin.jar | | executable format | ELF | class | | dynamic linker | ld-linux.so.2 | class loader | | register | pc and many others | pc | | memory allocation | stack, heap | JVM stack, heap, native stack, ... | | stack frame | registers, locals | locals, operand stack, ... | | exceptions | interrupt vectors | exception tables | | isolation | process, jail | classloader, multi-tenant JVM | | symbol table | symbol table | constant pools | | endianess | little-endian | big-endian | --- ## Say hello ``` $ ./hello Hello $ file hello hello: ELF 64-bit LSB executable, ... dynamically linked ... $ ldd hello linux-vdso.so.1 => (0x00007fff23926000) libc.so.6 => /lib64/libc.so.6 (0x0000003460000000) /lib64/ld-linux-x86-64.so.2 (0x000000345fc00000) ``` When hello is loaded, the OS passes control to _ld-linux.so.2_ instead of normal entry point of the application. ld-linux.so.2 searches for and loads the unresolved libraries, and then it passes control to the application starting point. ``` $ java Hello Hello $ file Hello.class Hello.class: compiled Java class data, version 50.0 ``` Same mechanism; the java launcher is started, which intializes JVM to interpret Hello.class. --- ## Typical transformation flow high-level code assembly code | | +----------+ +-----------+ | compiler | | assembler | +---------- +-----------+ | ________/ V V executable (instructions) runtime libraries \_____________ _____________/ \ / +----------------+ | dynamic linker | +----------------+ | V (complete program to run on execution engine) --- - Java Virtual Machine compared to real machine - Computer system abstraction levels - Java Virtual Machine compared to real machine - Say hello - Typical transformation flow - **Hello sources** - Hello in the C way - Hello in the assembly way - Hello in the Java way - Hello in the Java assembly way - What's inside? - Inside the Java Virtual Machine - HotspotVM support techniques --- ## Hello in the C way ```c // hello.c -- gcc hello.c -o hello #include <stdio.h> int main (void) { printf("Hello\n"); return 0; } ``` --- ## Hello in the assembly way ```att // hello.s -- gcc hello.s -o hello .section .rodata .LC0: .string "Hello" .text .globl main .type main, @function main: pushq %rbp movq %rsp, %rbp movl $.LC0, %edi call puts movl $0, %eax leave ret ``` --- ## Hello in the Java way ```java // Hello.java -- javac Hello.java public class Hello { public static void main (String[] args) { System.out.println("Hello"); } } ``` --- ## Hello in the Java assembly way ``` ; Hello.j -- java -jar jasmin-2.4/jasmin.jar Hello.j .class public Hello .super java/lang/Object .method public static main([Ljava/lang/String;)V getstatic java/lang/System/out Ljava/io/PrintStream; ldc "Hello" invokevirtual java/io/PrintStream/println(Ljava/lang/String;)V return .end method ``` --- - Java Virtual Machine compared to real machine - Computer system abstraction levels - Java Virtual Machine compared to real machine - Say hello - Typical transformation flow - Hello sources - **What's inside?**  --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - Java Virtual Machine architecture - **Execution engine** - Instruction set summary - Stack-oriented architecture - JVM stack frame demo - Method invocation and return - Native stack - Exception handling - Class file - Class/interface and instance lifecycle - Security sandbox - Object model - Multi-thread synchronization - HotspotVM support techniques --- ## Execution engine Ignoring exceptions, the inner loop of a Java Virtual Machine interpreter is effectively: ``` do { atomically calculate pc and fetch opcode at pc; if (operands) fetch operands; execute the action for the opcode; } while (there is more to do); ``` --- ## Instruction set summary - load and store: transfer values between locals and the operand stack - arithmetic - type conversion between numberic types - object creation and manipulation - direct manipulation of the operand stack - control transfer: conditional and unconditional jumps - method invocation and return - throwing exceptions - synchronization --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - Java Virtual Machine architecture - Execution engine - Instruction set summary - **Stack-oriented architecture** - JVM stack frame demo - Method invocation and return - Native stack - Exception handling - Class file - Class/interface and instance lifecycle - Security sandbox - Object model - Multi-thread synchronization - HotspotVM support techniques --- ## Stack-oriented architecture The Java Virtual Machine is stack-oriented, with most operations taking one or more operands from the **operand stack** of the Java Virtual Machine's **current frame** or pushing results back onto the operand stack. ``` +- - - - - - - - - -+ +----+ | method area | JVM stack | pc | | | +==========+ bottom +----+ +---------+ : : \ | iload_0 | | |==========| `------)iconst_3| | array of | c | | imul | | | locals | f u | ireturn | |----------| r r | +---------+ | .------ ptr | a r +-----------+ / |----------| m e | | per-class |(------^ | operand | e n | constant | | | stack | t | | pool | | | |==========| | +-----------+ | | | | +- - - - - - - - - -+ V stack f(i)=i*3 grows ``` --- ## JVM stack frame demo ```java public static int f (int i) { return i*3; // iload_0 iconst_3 imul ireturn } ``` ``` f(4) iload_0 iconst_3 imul +=====+ +=====+ +=====+ +=====+ local 0 | 4 | | 4 | | 4 | | 4 | |-----| |-----| |-----| |-----| : : : : : : : : : : : : : : : : |-----| |-----| |-----| |-----| operand | | | 4 | | 4 | | 12 | stack |-----| |-----| |-----| |-----| | | | | | 3 | | | |=====| |=====| |=====| |=====| ``` --- ## Method invocation and return ```java public static int f(int i) { return i*3; } public static void main(String[] args) { f(4); } ``` ``` public static int f(int); Signature: (I)I Code: 0: iload_0 1: iconst_3 2: imul 3: ireturn public static void main(java.lang.String[]); Signature: ([Ljava/lang/String;)V Code: 0: iconst_4 1: invokestatic #2; //Method f:(I)I 4: pop 5: return ``` --- ## Method invocation and return, cont. A new frame is created each time a method is invoked. A frame is destroyed when its method invocation completes. ``` f(4) main +=====+ +=====+ +=====+ +=====+ | | | | | | | | | | | | | | | | |-----| f |=====| |=====| |-----| | 4 | | 4 | | 4 | | 12 | |=====| |-----| |-----| |=====| : : : : |-----| |-----| | | | | 12 | | |-----| |-----| | | | | | | |=====| |=====| V stack grows ``` --- ## Native stack ``` call chain: #1, #2, #3, #4, #5 JVM stack native stack +----+ | | bootstrap |----| +====+ | #1 | |====| | #2 | |====| |----| | #3 | |----| | #4 | |----| |====| | #5 | |====| | | ``` --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - Java Virtual Machine architecture - Execution engine - Instruction set summary - Stack-oriented architecture - JVM stack frame demo - Method invocation and return - Native stack - **Exception handling** - Exception table and 'finally' inlining - Class file - Class/interface and instance lifecycle - Security sandbox - Object model - Multi-thread synchronization - HotspotVM support techniques --- ## Exception handling - Each method may be associated with zero or more exception handlers. - On exception, the system either jumps to proper handler, or rewinds frame and rethrows. ```java // f1 has no exception table public void f1() throws Exception { } ``` ```java // f2 has exception table public int f2() { int i; try { i=0; } catch (Exception e) { i=1; } finally { i=2; } return i; } ``` --- ## Exception table and 'finally' inlining ``` Code: 0: iconst_0 // try { 1: istore_1 // i=0 2: iconst_2 3: istore_1 // i=2 4: goto 20 // } 7: astore_2 // catch (Exception) { save exception 8: iconst_1 9: istore_1 // i=1 10: iconst_2 11: istore_1 // i=2 12: goto 20 // } 15: astore_3 // catch (*) { save exception 16: iconst_2 17: istore_1 // i=2 18: aload_3 // load exeption 19: athrow // rethrow } 20: return Exception table: from to target type 0 2 7 Class java/lang/Exception 0 2 15 any 7 10 15 any 15 16 15 any ``` --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - Java Virtual Machine architecture - Execution engine - **Class file** - Class file structure - Elements of structures - Hello.class anatomized - Hello.class disassembled - What does #nn mean? - A visual impression - Class/interface and instance lifecycle - Security sandbox - Object model - Multi-thread synchronization - HotspotVM support techniques --- ## Class file - what's inside?  --- ## Elements of structures ```c field_info/method_info { u2 access_flags; // OOP encapsulation, etc u2 name_index; // member name u2 descriptor_index; // type/signature u2 attributes_count; attribute_info attributes[attributes_count]; // definition etc } ``` ### Attributes - Code - Exceptions - Signature - SourceFile - RuntimeVisibleAnnotations - ... --- ## Hello.class anatomized ``` 00000000 ca fe ba be 00 03 00 2d 00 17 0c 00 14 00 16 01 magic...... minor major (constant pool 1~22 ... 000000e0 69 6f 2f 50 72 69 6e 74 53 74 72 65 61 6d 3b 00 ... constant pool) ac 000000f0 21 00 03 00 05 00 00 00 00 00 01 00 09 00 0a 00 c. this. super nintf nfield nmeth (acc. name. .. #3 #5 #10 main Hello java/lang/Object public static 00000100 02 00 01 00 09 00 00 00 15 00 02 00 01 00 00 00 ..signature natt. att.. length...... stack local code.... #2 #9 Code 00000110 09 b2 00 0b 12 11 b6 00 13 b1 00 00 00 00 00 01 ..length opcodes.................... etbl. natt) natt. 00000120 00 0c 00 00 00 02 00 07 name. length..... value #12 SourceFile #7 Hello.j ``` --- ## Hello.class disassembled ``` // javap -c -s Hello (edited) public class Hello extends java.lang.Object{ public static void main(java.lang.String[]); Signature: ([Ljava/lang/String;)V Code: 0: b2 00 0b getstatic #11; 3: 12 11 ldc #17; 5: b6 00 13 invokevirtual #19; 8: b1 return } ``` | mnemonic | instruction | description |:--------------|:-------------|:----------------------------------------| | getstatic | 178(0xb2) | push static field onto operand stack | | ldc | 18(0x12) | push item onto operand stack | | invokevirtual | 182(0xb6) | invoke instance method with objectref and args on operand stack | | return | 177(0xb1) | returns control to the invoker | --- ## What does #nn mean? An index into the **constant pool**, refers to a *symbol*. | index | symbol type | symbol | meaning |:------|:------------|:----------------------|:------------------ |-------|-------------|-----------------------|------------------- | #3 | class(7) | Hello | this class | #5 | class(7) | java/lang/Object | parent class | #10 | utf8(1) | main | method name | #2 | utf8(1) |([Ljava/lang/String;)V | method signature |-------|-------------|-----------------------|------------------- | #11 | field(9) | #8, #1 | (class, field) | #8 | class(7) | java/lang/System | class of the field | #1 | (12) | #20, #22 | | #20 | utf8(1) | out | field name | #22 | utf8(1) | Ljava/io/PrintStream | field type | #17 | string(8) | Hello | string literal | #19 | method(10) | #6, #13 | (class, method) | #6 | class(7) | java/io/PrintStream | class of the method | #13 | (12) | #15, #21 | | #15 | utf8(1) | println | method name | #21 | utf8(1) | (Ljava/lang/String;)V | method signature --- ## A visual impression (insert constant pool here) --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - Java Virtual Machine architecture - Execution engine - Class file - **Class/interface and instance lifecycle** - Garbage collection - reachability - Class loader architecture - Loading constraints - Load a class - java.lang.Classloader - A custom class loader - Linking and initialization - Security sandbox - Object model - Multi-thread synchronization - HotspotVM support techniques --- ## Class/interface and instance lifecycle ``` class/interface lifecycle object lifecycle +-------------+ | link | +------+ | | +---------------+ | load | --) | ( verify ) | .- -) | instantialize | +------+ | || | / +---------------+ | \/ | | | ( prepare ) | / | || | | | \/ | / V | ( optional | +------------+ +----+ | resolve ) | --) | initialize | - - - - --) | gc | +-------------+ +------------+ +----+ ``` --- ## Garbage collection - reachability ```java public class Example { public static void main (String[] args) { Example o = new Example; } } ``` ``` Example's Example's class data Class instance +----+ .--. +----+ .--> | | ------> ( ) -----> | | locals / +----+ `--^ +----+ +===+ .--. java.lang.Class | o |--> ( ) +===+ `--^ instance of Example ``` --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - Java Virtual Machine architecture - Execution engine - Class file - Class/interface and instance lifecycle - Garbage collection - reachability - **Class loader architecture** - Loading constraints - Load a class - java.lang.Classloader - A custom class loader - Linking and initialization - Security sandbox - Object model - Multi-thread synchronization - HotspotVM support techniques --- ## Class loader architecture ### parent-delegation model Any request for a class loader to load a given class is first delegated to its parent class loader *before* the requested class loader tries to load the class itself. ``` (JVM-supplied bootstrap class loader): core classes in rt.jar etc A | extension class loader: extention classes in jre/lib/ext/*.jar A | system class loader: tools.jar and user classes A by option -classspath or env CLASSPATH | URL class loader ``` --- ## Loading constraints - defining loader Ld: creates class C directly - initiating loader Li: initiates loading of class C At run time, a class or interface is determined *not by its name alone, but by a pair (N, Ld)*: its fully qualified name N and its defining class loader Ld. ### Loading constraint violation - N
Li
= N
Li
'
- (N, Ld) ≠ (N, Ld
'
) --- ## Load a class ### runtime linking ```java Example obj = new Example(); ``` ### dynamic loading ```java // use invoker's classloader Class.forName("Example"); // default parent is system classloader classloader = new URLClassloader(url); classloader.loadClass("Example"); ``` --- ## java.lang.Classloader ```java public synchronized Class> loadClass(String name) { Class c = findLoadedClass(name); if (c == null) { try { if (parent != null) { c = parent.loadClass(name, false); // delegates to parent } else { c = findBootstrapClass0(name); // bootstrap } } catch (ClassNotFoundException e) { c = findClass(name); } } return c; } protected Class> findClass(String name) throws ClassNotFoundException { throw new ClassNotFoundException(name); } ``` --- ## A custom class loader ```java protected Class> findClass(String name) throws ClassNotFoundException { byte[] classData = null; BufferedInputStream bis = new BufferedInputStream(new FileInputStream(name)); ByteArrayOutputStream out = new ByteArrayOutputStream(); try { int c = bis.read(); while ( c != -1 ) { out.write(c); c = bis.read(); } classData = out.toByteArray(); } catch {IOException e) { throw new ClassNotFoundException(); } // converts the byte buffer into an instance of class Class return defineClass(name, classData, 0, classData.length); } ``` --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - Java Virtual Machine architecture - Execution engine - Class file - Class/interface and instance lifecycle - Garbage collection - reachability - Class loader architecture - Loading constraints - Load a class - java.lang.Classloader - A custom class loader - **Linking and initialization** - Security sandbox - Object model - Multi-thread synchronization - HotspotVM support techniques --- ## Linking and initialization All references in the per-type run-time constant pool are initially symbolic. - verification * ensures binary representation is structurally correct * may cause additional classes and interfaces to be loaded w/o verification or preparation - preparation * creates the static fields and sets to their default values (zero, null, etc) * imposes loading constrants - resolution * dynamically determines concrete values from symbolic references in the run-time constant pool * class/interface, field, method, interface method, method handle, call site specifier - initialization * initialization lock per class or interface * explicit initializers for static fields --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - Java Virtual Machine architecture - Execution engine - Class file - Class/interface and instance lifecycle - **Security sandbox** - Object model - Multi-thread synchronization - HotspotVM support techniques --- ## Security sandbox - classloader and verifier, ensure internal application code integrity - security manager, mandatory access control of external resources --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - Java Virtual Machine architecture - Execution engine - Class file - Class/interface and instance lifecycle - Security sandbox - **Object model** - Example object model - Method table - Class and object manipulation - Instance.class - object creation and method invocation - Instance.class - constructor - Instance.class - instance method - Multi-thread synchronization - HotspotVM support techniques --- ## Example object model ``` +------------------+ each object has its own instance data | object reference | and method table +------------------+ | +- - - - - | - - - - -+ +- - - - - - - - - - - - - - - - - - --+ | heap | | | method area +------------+ | V | | .->| class data | | +---------------+ method table | +------------+ | | vptr --------------> +------------+ / | |---------------| | | | ptr --^ +------------+ | | instance data | |------------| | method | | |---------------| | | | method ptr ----->| definition | | | instance data | |------------| +------------+ | |---------------| | | | method ptr --. +------------+ | | instance data | +------------+ `->| method | | +---------------+ | | | definition | | | | | +------------+ | +- - - - - - - - - - - -+ +- - - - - - - - - - - - - - - - - - --+ ``` --- ### Method table Object-Oriented Programming: polymorphism ```java public class Example { public String toString() { return "Example"; } } ``` ``` Example's method table +-----------------------+ | ptr to clone() |-------> Object's definition |-----------------------| A | ptr to equals(Object) |---------^ |-----------------------| | ... | |-----------------------| | ptr to toString() |-------> Example's definition +-----------------------+ ``` --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - Java Virtual Machine architecture - Execution engine - Class file - Class/interface and instance lifecycle - Security sandbox - Object model - Example object model - Method table - **Class and object manipulation** - Instance.class - object creation and method invocation - Instance.class - constructor - Instance.class - instance method - Multi-thread synchronization - HotspotVM support techniques --- ## Class and object manipulation ```java // Instance.java public class Instance { int m; public Instance(int x) { m = x; } public int f(int i) { return i*m; } public static void main(String args[]) { new Instance(4).f(3); } } ``` --- ## Instance.class - object creation and method invocation - **<
init>**: special method for instance initialization ``` public static void main(java.lang.String[]); Code: 0: new #3; // uninitialized instance of Instance 3: dup 4: iconst_4 5: invokespecial #4; // intialize by "
":(I)V 8: iconst_3 9: invokevirtual #5; // invoke intance method f:(I)I 12: pop 13: return ``` --- ## Instance.class - constructor - *putfield*: set field in object ``` int m; public Instance(int); Code: 0: aload_0 1: invokespecial #1; // super constructor // java/lang/Object."
  --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - HotspotVM support techniques - Hotspot generational garbage collection - **Thread dump analysis** - Hotspot multi-threading model - Typical threads in a Java EE container VM - Acquiring a thread dump - Hotspot thread dump structure - Thread stack trace - Heap dump analysis - Gc performance - Process limits - Java EE support patterns - Performance tracking - Just-In-Time compilation --- ## Hotspot multi-threading model - preemptive multithreading based on native threads - kernel-level threading (1:1) ``` $ ps -p 23901 PID TTY TIME CMD 23901 ? 00:19:27 java $ ps -p 23901 -L PID LWP TTY TIME CMD 23901 23901 ? 00:00:00 java 23901 23902 ? 00:00:05 java 23901 23903 ? 00:00:00 java 23901 23904 ? 00:00:00 java ... ``` --- ## Typical threads in a Java EE container VM - performing raw computing tasks such as XML parsing, IO / disk access etc. - waiting for some blocking IO calls such as a remote Web Service call, a DB / JDBC query etc. - involved in garbage collection at that time e.g. GC threads - waiting for some work to do (typically in wait() state) - waiting for some other threads work to complete e.g. threads waiting to acquire a monitor lock (synchronized block{}) on some objects --- ## Acquiring a thread dump A JVM thread dump is a snapshot taken at a given time which provides you with a complete listing of all created Java threads. ``` $ jstack
> stack.tdump ``` --- ## Hotspot thread dump structure 1. full thread dump identifier and Hotspot version 2. application thread pools 3. main thread 4. VM thread (internal hotspot operations) 5. GC threads 6. JNI global reference counts, heap breakdown Each individual thread gives: ``` (thread name) (thread type and priority) (Java thread id) (native thread id) (thread state) (thread state detail) (Java thread stack trace) ``` --- ## Thread stack trace A Thread stack trace provides you with a snapshot of its current execution, read from *bottom-up*. - identify the originator (Java EE container Thread, custom Thread ,GC Thread, JVM internal Thread, standalone Java program "main" Thread etc.c) - identify the type of request the thread is executing (WebApp, Web Service, JMS, Remote EJB (RMI), internal Java EE container etc) - identify your application module(s) involved - top ~10 lines: identify *the protocol or work the thread is involved* with e.g. HTTP call, Socket communication, JDBC or raw computing tasks such as disk access, class loading etc. - the *first line* usually tells a LOT on the thread state --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - HotspotVM support techniques - Hotspot generational collection - Thread dump analysis - **Heap dump analysis** - Acquiring a heap dump - Heap dump analysis tools - Gc performance - Process limits - Java EE support patterns - Performance tracking - Just-In-Time compilation --- ## Acquiring a heap dump - get heap dump on an OutOfMemoryError ``` -XX:+HeapDumpOnOutOfMemoryError ``` - manually trigger a heap dump ``` $ jmap -dump:format=b,file=
``` --- ### Heap dump analysis tools - visualvm - jhat ``` $ jhat heap.hprof Started HTTP server on port 7000 ``` * /oql * /oqlhelp ``` select
[ from [instanceof]
[ where
] ] ``` - Eclipse Memory Analyzer (MAT) --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - HotspotVM support techniques - Hotspot generational collection - Thread dump analysis - Heap dump analysis - **Gc performance** - Process limits - Java EE support patterns - Performance tracking - Just-In-Time compilation --- ## Gc performance - gc logging ``` -verbosegc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/tmp/gc.log 0.437: [GC [PSYoungGen: 262208K->43632K(305856K)] 262208K->137900K(1004928K), 0.1396040 secs] [Times: user=0.45 sys=0.01, real=0.14 secs] 1.188: [Full GC (System) [PSYoungGen: 43632K->0K(305856K)] [PSOldGen: 296856K->340433K(699072K)] 340488K->340433K(1004928K) [PSPermGen: 1554K->1554K(16384K)], 0.4053311 secs] [Times: user=0.41 sys=0.00, real=0.40 secs] ``` - interactive view ``` $ top -p
$ jstat -gcutil
1s S0 S1 E O P YGC YGCT FGC FGCT GCT 74.97 0.00 18.87 9.09 99.95 50 6.939 0 0.000 6.939 ``` --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - HotspotVM support techniques - Hotspot generational collection - Thread dump analysis - Heap dump analysis - Gc performance - **Process limits** - Process address space - Java EE support patterns - Performance tracking - Just-In-Time compilation --- ## Process limits ``` $ cat /proc/
/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 10485760 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes<PHONE_NUMBER>64 processes Max open files 1024 1024 files Max locked memory 32768 32768 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals<PHONE_NUMBER>64 signals Max msgqueue size<PHONE_NUMBER>00 bytes Max nice priority 0 0 Max realtime priority 0 0 ``` --- ## Process address space ``` $ cat /proc/
/maps # also: pmap
00400000-00401000 r-xp 00000000 08:01 262167 java 00600000-00601000 rw-p 00000000 08:01 262167 java 01219000-0123a000 rw-p 00000000 00:00 0 [heap] ... 62f250000-759000000 rw-p 00000000 00:00 0 759000000-7fffe0000 rw-p 00000000 00:00 0 ... 7f5875992000-7f5875993000 r--p 0001f000 08:01 2883936 /lib64/ld-2.12.so 7f5875993000-7f5875994000 rw-p 00020000 08:01 2883936 /lib64/ld-2.12.so 7f5875994000-7f5875995000 rw-p 00000000 00:00 0 7fff55216000-7fff5522b000 rw-p 00000000 00:00 0 [stack] 7fff55349000-7fff5534a000 r-xp 00000000 00:00 0 [vdso] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] ``` --- - Java Virtual Machine compared to real machine - Inside the Java Virtual Machine - HotspotVM support techniques - Hotspot generational collection - Thread dump analysis - Heap dump analysis - Gc performance - Process limits - **Java EE support patterns** - Performance tracking - Just-In-Time compilation --- ## Java EE support patterns - hanging thread * blocking I/O call * heavy I/O contention * waiting to acquire a lock * forced to go in wait() state * infinit looping * deadlock or lock contention * GC overhead limit - out of memory * heap leak * busy gc * thread locals - pool depletion --- ## Performance tracking ``` -Dcom.sun.management.jmxremote.port=
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false ``` - realtime view * jconsole, visualvm - history * jmxtrans with graphite ![heap usage](jvm-intro/heap-usage_400x225.png) --- ## Just-In-Time compilation - fast traditional compiler translating the Java technology bytecodes into native machine code on the fly. - hotspot optimization v.s. full optimization - default on, disable with -Djava.compiler=NONE - hotspot detection: -XX:CompileThreshold=10000 --- ## Resources 1. http://en.wikipedia.org/wiki/Java_virtual_machine 2. Java™ Platform Standard Edition 6 Overview, http://docs.oracle.com/javase/6/docs/technotes/guides/ 3. The Java HotSpot Performance Engine Architecture, http://www.oracle.com/technetwork/java/whitepaper-135217.html 4. Java Language and Virtual Machine Specifications, http://docs.oracle.com/javase/specs/ 5. http://en.wikipedia.org/wiki/X86 6. Assembly language, http://en.wikipedia.org/wiki/Assembly_language 7. John R. Levine, Linkers and Loaders (October 25, 1999), http://www.becbapatla.ac.in/cse/naveenv/docs/LL1.pdf 8. Bill Venners, Inside the Java 2 Virtual Machine (January 6, 2000) 9. Jon Meyer and Daniel Reynaud, Jasmin - an assembler for the Java Virtual Machine (2004), http://jasmin.sourceforge.net/ 0. Java 6 try/finally compilation without jsr/ret, http://cliffhacks.blogspot.com/2008/02/java-6-tryfinally-compilation-without.html 1. Hotspot Group, http://openjdk.java.net/groups/hotspot 2. Java HotSpot VM Options, http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html 3. Pierre-Hugues Charbonneau, Java EE Support Patterns, http://javaeesupportpatterns.blogspot.com 4. Eclipse Memory Analyzer, http://help.eclipse.org/indigo/topic/org.eclipse.mat.ui.help/welcome.html 5. Oracle Java archive, http://www.oracle.com/technetwork/java/javase/archive-139210.html Powered by [remark.js](http://gnab.github.io/remark/)


Questions?
Recap
Custom Elements
HTML Imports
Templates
Shadow DOM
Is Web Components ready for production?


Notoane pleased with SA U-23’s collective effort
Cape Town - Amagluglug head coach David Notoane says he is pleased with the manner of his side's 1-0 victory against the Ivory Coast at the U23 Cup of Nations (AFCON).
Notoane's side dictated matters from the start when threatening their opponent's goal from as early as the second minute.
The only thing missing from an impressive performance was goals with the deadlock broken eventually in the 78th minute.
SuperSport United midfielder Teboho Mokoena stepped up to hit an unstoppable free-kick from around 35 yards out to give his side their first win in Group B.
"We are very happy to get our first win of the tournament, especially against a strong side such as Ivory Coast," Notoane said.
"This was both a tactical and physical battle which needed a special moment to determine the end result, and I am glad that we are the ones who managed to come up with it.
"Mokoena was a pleasant surprise for us when he stepped up to take the free-kick," Notoane added. "We have a number of players such as Luther Singh, Sipho Mbule and Kobamelo Kodisang who could normally take free-kicks for us on any given day, however, Mokoena felt pretty confident about this one.
"If you ask me, I would not have been happy to have drawn in my second group match - following the 0-0 draw against Zambia - and I am truly happy that we were able to push for this winning result in this tie."
As it stands, South Africa are top of Group B with four points after two matches played.
They will face second-placed Nigeria who are a point behind in their final group clash on November 15 at the Al Salam Stadium.
Notoane said his side will prepare accordingly to fight for another winning result in their last group game.
Kick-off is at 20:00.
Compiled by Baden Gillion


Leave the math to us and enjoy your shopping!!
You are out shopping and trying to find the best deals!!  Well now you can leave the math to us and get back to finding the cutest clothes and best deals! All you have to do is put in the amount of the item you wish to purchase, the percentage that it is on sale for and we will tell you how much it will cost! It's that easy!!


|
Bosch XDK110 Solace MQTT App
2.0.1
MQTT Reference Application for the Bosch XDK110
|
#include "XDK_SNTP.h"
#include "FreeRTOS.h"
#include "task.h"
Go to the source code of this file.
Data Structures | |
| struct | AppTimestamp_T |
| Timestamp structure. More... | |
Functions | |
| Retcode_T | AppTimestamp_Init (void) |
| Initialize the timestamp module. Does nothing at the moment. More... | |
| Retcode_T | AppTimestamp_Setup (SNTP_Setup_T const *const sntpSetupInfoPtr) |
| Setup the timestamp module. Calls SNTP_Setup(). More... | |
| Retcode_T | AppTimestamp_Enable (void) |
| Enable the module. More... | |
| AppTimestamp_T | AppTimestamp_GetTimestamp (const TickType_t tickCount) |
| Returns the timestamp of tickCount. More... | |
| char * | AppTimestamp_CreateTimestampStr (AppTimestamp_T appTimestamp) |
| Returns the formatted timestamp string for the timestamp. More... | |


Money play. How should Red play 43?
pips Red=66 White=168
(CorrectAnswer= 0/0, ErrorScore= 0)
This is simply question of knowing the correct technique for bearing off. Once Red has cleared his 6-pt he reduces his chances of being hit by about 30%. Here the gammon is virtually guaranteed if Red can bear 0ff safely.
Therefore, Red should bring in his last outer board checker and move the spare checker of his 6-pt, hoping to clear it next roll. He has the choice of 8/5, 6/2 or 8/4, 6/3.
Now the interesting point. The rollout gives 8/4, 6/3 as better than 8/5, 6/2, despite that play leaving Red odd on the two highest points. I think the difference is because Red’s 44 plays much better after 8/4, 6/3. XG actually rates 8/5, 6/2 as an error. From now on I will be carefully checking to see how 44 plays when I am bearing in checkers!
Therefore, Red should bring in his last outer board checker and move the spare checker of his 6-pt, hoping to clear it next roll. He has the choice of 8/5, 6/2 or 8/4, 6/3.
Now the interesting point. The rollout gives 8/4, 6/3 as better than 8/5, 6/2, despite that play leaving Red odd on the two highest points. I think the difference is because Red’s 44 plays much better after 8/4, 6/3. XG actually rates 8/5, 6/2 as an error. From now on I will be carefully checking to see how 44 plays when I am bearing in checkers!
1. Cubeful 2-ply 8/4 6/3 Eq.: +1.223 0.809 0.577 0.095 - 0.191 0.001 0.000 2. Cubeful 2-ply 8/5 6/2 Eq.: +1.192 (-0.032) 0.798 0.576 0.088 - 0.202 0.001 0.000 3. Cubeful 2-ply 8/4 3/off Eq.: +1.147 (-0.077) 0.784 0.558 0.093 - 0.216 0.000 0.000 4. Cubeful 2-ply 8/5 4/off Eq.: +1.117 (-0.106) 0.775 0.553 0.092 - 0.225 0.000 0.000 5. Cubeful 2-ply 8/4 5/2 Eq.: +1.104 (-0.119) 0.774 0.548 0.084 - 0.226 0.000 0.000


Name:
Start date:
End date:
City:
Postal code:
Box number:
Street:
Start date: 2016-04-21
End date : 2016-04-22


Cluster Serving
API Guide
Python
class InputQueue
The class Input
defines methods allowing you to input data into Cluster Serving Input Pipeline.
init
__init__()
sets up a connection with configuration in your Cluster Serving configuration file config.yaml
.
return: None
enqueue_image
enqueue_image(uri, img)
puts image img
with identification uri
into Pipeline with JPG encoding. img
can be either a string (which represents the file path of the image), or an ndarray of the image (which should be returned by cv2.imread() of opencv-python package)
return: None
uri
: a string, unique identification of your image
img
: path or ndarray
of your image, could be loaded by cv2.imread()
of opencv-python package.
Example
from zoo.serving.client import InputQueue
input_api = InputQueue()
input_api.enqueue_image('my-image1', 'path/to/image1')
import cv2
image2 = cv2.imread('path/to/image2')
input_api.enqueue_image('my-image2', image2)
class OutputQueue
The class Output
defines methods allowing you to get result from Cluster Serving Output Pipeline.
init
__init__()
sets up a connection with configuration in your Cluster Serving configuration file config.yaml
.
query
query(uri)
query result in output Pipeline by key uri
return: string type, the output of your prediction, which can be parsed to a dict by json.
Format:
{
"class_1": "probability_1",
"class_2": "probability_2",
...,
"class_n": "probability_n"
}
where n
is top_n
in your serving config, the result is sorted by output probability.
Example
from zoo.serving.client import OutputQueue
import json
output_api = OutputQueue()
d = output_api.query('my-image')
tmp_dict = json.loads(d)
for class_idx in tmp_dict.keys():
output += "class: " + class_idx + "'s prob: " + tmp_dict[class_idx]
print(output)
dequeue
dequeue()
gets all result of your model prediction and dequeue them from OutputQueue
return: dict(), with keys the uri
of your enqueue, string type, and values the output of your prediction, string type, which can be parsed by json.
Format:
{
"image1": {
"class_1": "probability_1",
"class_2": "probability_2",
...,
"class_n": "probability_n"
},
"image2": {
"class_1": "probability_1",
"class_2": "probability_2",
...,
"class_n": "probability_n"
}
...
}
where n
is top_n
in your serving config, the result is sorted by output probability.
Example
from zoo.serving.client import OutputQueue
import json
output_api = OutputQueue()
d = output_api.dequeue()
for k in d.keys():
output = "image: " + k + ", classification-result:"
tmp_dict = json.loads(result[k])
for class_idx in tmp_dict.keys():
output += "class: " + class_idx + "'s prob: " + tmp_dict[class_idx]
print(output)


recocam provides robust tools for extracting and processing information and annotations that have been stored in image EXIF data. This package was built to support ecologists who have to deal with large numbers of images from camera traps and to prepare them for analysis with the camtrapr packahe, but it can work with all sorts of images as long as they contain annotation that have been stored in the keywords EXIF attribute field. This package was developed by the Sydney Informatics Hub, a Core Research Facility of the University of Sydney.
 Current processing speed for the main importing function gather_images() is around 100 images a second.
This package allows users to generate a data frame of information contained in image EXIF data, and can adapt to different tagging schemes as long as they follow a structure (see below). The other functions in the package are designed to enable users to use their image data with camtrapr’s data exploration tools.
Before you can install and use recocam, you must install one program (ExifTool, a free and open source program for extracting image metadata) and a few R packages (notably exifr to enable efficient use of ExifTool, with reshape2 and Tidyverse providing some important functions).
The method for installing ExifTool on your computer varies depending on if you are using MacOS/Linux/Unix or Windows. You can find out more about ExifTool and download the software here.
On MacOS/Linux/Unix, simply follow the steps provided on ExifTool’s website. For Windows, you will have take a couple extra steps to ensure that R is able to utilize ExifTool. Once you have downloaded the stand-alone executable, unzip the file and rename the .exe file to “exiftool.exe”. Then place this file in your primary windows directory (C:/Windows in most cases). Once you have done this, R should be able to find ExifTool.
To make sure that you have correctly installed ExifTool: ```{r exif tool stuff}#Check if your system is able to find ExifTool Sys.which(“exiftool”)
#This is what you would see on MacOS. On Windows, you should see “C:\WINDOWS\exiftool.exe” ```
To install recocam, you can download it from the Sydney Informatics Hub’s github.
{r installing packages, eval=FALSE} library(devtools) install_github("https://github.com/Sydney-Informatics-Hub/recocam")
If you have any questions about this package, run into any issues, or simply want to see what is going on with development of recocam, check out the repository’s issues page.


Updating the database¶
If you look back at the verifying step of the database, you may notice that the first item we have indexed has the word ‘compass’ spelled incorrectly, which means that we will need to either update just that document, or to re-index the entire database.
Reindexing the database can be done immediately using the index1.cc script
we used for the initial indexing; this is because we are using an external
ID for each document we add to the database, taken from the id_NUMBER
field from the original data set. We then pass this to the Xapian::Database::replace_document()
method, which updates if there’s already a document under that external ID,
or adds a document to the database otherwise.
In fact, because of this, index1.cc can update just part of the database. Just give it a file with only the rows that correspond to documents that need updating. Everything else in the database will be left untouched.
Deleting documents¶
It is also possible to delete documents from the index using the
Xapian::Database::delete_document()
method on a
Xapian::WritableDatabase
object. This can be done either by Xapian docid
or using unique ID terms, as with Xapian::Database::replace_document()
.
A copy of this code is available in code/c++/delete1.cc.
Then we just run our deletion tool, giving it identifiers taken from the id_NUMBER field in the data set:
$ g++ `xapian-config --cxxflags` code/c++/delete1.cc code/c++/support.cc -o delete1 `xapian-config --libs`
$ ./delete1 db 1953-448 1985-438
After that, we expect to see two fewer documents in our database using xapian-delve:
$ xapian-delve db
UUID = 1820ef0a-055b-4946-ae73-67aa4ef5c226
number of documents = 98
average document length = 100.041
document length lower bound = 33
document length upper bound = 251
highest document id ever used = 100
has positional information = true


The Hadopelagic Zone
The Hadal Zone
Beyond the abyssopelagic zone lies the forbidding hadolpelagic zone. This layer extends from 6,000 meters to the bottom of the deepest parts of the ocean. These areas are mostly found in deep water trenches and canyons. The deepest point in the ocean is located in the Mariana Trench off the coast of Japan at 10,911 meters. The temperature of the water is just above freezing, and the pressure is an incredible eight tons per square inch. That is approximately the weight of 48 Boeing 747 jets. In spite of the pressure and temperature, life can still be found here. Invertebrates such as starfish and tube worms can thrive at these depths.


Shatta Wale goes after popular Ghanaian blogger for discrediting his Grammy award nomination
by Nana YawGhanaian dancehall King, Shatta Wale has descended heavily on Ghanaian blogger, Ameyaw Debrah for personally discrediting his Grammy award nomination.
Wale who is known for his outburst went vulgar on the celebrity blogger for attempting to discredit him over his technical Grammy award nomination.
Following the release of the nominations list for the 62nd Grammy Awards, a lot of media personalities have tried to discredit the ‘My Level’ hitmaker as a nominee after Beyonce’s Lion King: the Gift album which he was featured on was nominated.
With this, many have argued that Shatta Wale cannot be regarded as a nominee since the ‘Already’ track was not nominated; whilst others are of the view that since the album which contains the track has been nominated, Wale automatically qualifies as a nominee.
In a response to all the ongoing debate, a fumed Shatta Wale in a self-recorded video asked media houses and personalities in Ghana to stop the ‘foolery’ as they are always interested in painting a certain picture of how artists should look like making a particular reference to how Ameyaw Debrah.
According to Wale, the blogger asked UK based Ghanaian Grammy winner Fuse ODG how he felt for winning a Grammy’s with Ed-Sheeran without been given a plaque whiles the former was given a plague; a disrespect to the entertainment industry and a backbiting attitude.
See Shatta Wale’s video below:


Use the links above to jump to your issue
Always get approval from an L2 before escalating a case
Options
→ Preferences
→
Advanced
Enable debug-level logging
and press OK
%programdata%
, and press EnterLogMeIn
folder → Send to
→ Compressed
(zipped) folder
LogMeIn.zip
file to
your machineIAM Sage Advanced
Options
→ Preferences
→
Advanced
Enable debug-level logging
File Manager
within your Rescue session/
→ Library
→ Logs
→
LogMeIn
LogMeIn.log
, stderr
, and
stdout
IAM Sage Advanced
View
→ Options
→
Enable debug-level logging
Win
+ E
)%localappdata%
LogMeInIgnition
Send to
→ Compressed (zipped)
folder
IAM Sage Advanced
LogMeIn Client
→
Preferences...
Debug level logging
Terminal
appNote! Terminal may instead be white; this is normal.
IAM Sage Advanced
Options
→ Preferences
→
Advanced
Enable debug-level logging
and press OK
Note! The tool will run silently (you won't see it doing anything)
It will place a zipped folder on the customer's desktop
%programdata%
, and press EnterLogMeIn
folder → Send to
→
Compressed (zipped) folder
LogMeIn.zip
file
to your machinesupporttoolXXXXX.zip
from their desktopIAM Sage Advanced
.M"""bgd `7MMF' `7MMF' db `7MMM. ,MMF'`7MM"""YMM OO ,MI "Y MM MM ;MM: MMMb dPMM MM `7 88 `MMb. MM MM ,V^MM. M YM ,M MM MM d || `YMMNq. MMmmmmmmMM ,M `MM M Mb M' MM MMmmMM || . `MM MM MM AbmmmqMA M YM.P' MM MM Y , `' Mb dM MM MM A' VML M `YM' MM MM ,M ,, P"Ybmmd" .JMML. .JMML..AMA. .AMMA..JML. `' .JMML..JMMmmmmMMM db `7MMF' `7MMM. ,MMF'`7MMF' db `7MMF' `7MF' MM MMMb dPMM MM ;MM: `MA ,V MM M YM ,M MM MM ,V^MM. VM: ,V MM M Mb M' MM MM ,M `MM MM. M' MM , M YM.P' MM MM AbmmmqMA `MM A' MM ,M M `YM' MM MM A' VML :MM; .JMMmmmmMMM .JML. `' .JMML..JMML. .AMA. .AMMA. VF `7MM"""Yb. .g8""8q. `7MM"""YMM .M"""bgd `7MN. `7MF' .g8""8q. MMP""MM""YMM `7MMF' A `7MF' .g8""8q. `7MM"""Mq. `7MMF' `YMM' MM `Yb. .dP' `YM. MM `7 ,MI "Y MMN. M .dP' `YM.P' MM `7 `MA ,MA ,V .dP' `YM. MM `MM. MM .M' MM `Mb dM' `MM MM d `MMb. M YMb M dM' `MM MM VM: ,VVM: ,V dM' `MM MM ,M9 MM .d" MM MM MM MM MMmmMM `YMMNq. M `MN. M MM MM MM MM. M' MM. M' MM MM MMmmdM9 MMMMM. MM ,MP MM. ,MP MM Y , . `MM M `MM.M MM. ,MP MM `MM A' `MM A' MM. ,MP MM YM. MM VMA MM ,dP' `Mb. ,dP' MM ,M Mb dM M YMM `Mb. ,dP' MM :MM; :MM; `Mb. ,dP' MM `Mb. MM `MM. .JMMmmmdP' `"bmmd"' .JMMmmmmMMM P"Ybmmd" .JML. YM `"bmmd"' .JMML. VF VF `"bmmd"' .JMML. .JMM..JMML. MMb. .g8""8q. `7MN. `7MF' `7MMM. ,MMF' db .g8"""bgd .g8"""bgd .g8""8q. `7MMM. ,MMF'`7MM"""Mq.`7MMF' `7MF'MMP""MM""YMM `7MM"""YMM `7MM"""Mq. .M"""bgd .dP' `YM. MMN. M MMMb dPMM ;MM: .dP' `M .dP' `M .dP' `YM. MMMb dPMM MM `MM. MM M P' MM `7 MM `7 MM `MM. ,MI "Y dM' `MM M YMb M M YM ,M MM ,V^MM. dM' ` dM' ` dM' `MM M YM ,M MM MM ,M9 MM M MM MM d MM ,M9 `MMb. MM MM M `MN. M M Mb M' MM ,M `MM MM MM MM MM M Mb M' MM MMmmdM9 MM M MM MMmmMM MMmmdM9 `YMMNq. MM. ,MP M `MM.M M YM.P' MM AbmmmqMA MM. MM. MM. ,MP M YM.P' MM MM MM M MM MM Y , MM YM. . `MM `Mb. ,dP' M YMM M `YM' MM A' VML `Mb. ,' `Mb. ,' `Mb. ,dP' M `YM' MM MM YM. ,M MM MM ,M MM `Mb. Mb dM `"bmmd"' .JML. YM .JML. `' .JMML..AMA. .AMMA. `"bmmmd' `"bmmmd' `"bmmd"' .JML. `' .JMML..JMML. `bmmmmd"' .JMML. .JMMmmmmMMM .JMML. .JMM.P"Ybmmd"
C:\Windows\ServiceProfiles\LocalService\AppData\Local\LogMeIn
Hamachi
View
→ Hidden items
(click the checkbox)C:\Windows
and click each folder in the pathServiceProfiles
→ LocalService
→ AppData
→ Local
→ LogMeIn Hamachi
Note!
You will likely receive admin prompts clicking on each of these folders—just
click
OK
Now, locate the file that says h2-engine
or h2-engine.log
IAM Sage Advanced
File Manager
in LogMeIn Rescue/
→ Library
→ Logs
→
LogMeIn Hamachi
h2-engine.log
, stderr.log
, and
stdout.log
IAM Sage Advanced
Right click the downloaded file and select Extract All...
GoToLogFiles
file to run itCheck off any item that says "GoToMyPC"
Archive logs to ZIP
Collect the GoToLogFilesXXXXX.zip
file from the customer's desktop using
Rescue's file-transfer option
IAM Sage Advanced
GoToLogFiles.app
Open
GoToMyPC
and GoToOpener
if
applicableOK
GoToLogFiles_########.tgz
file on the customer's desktop,
similar to belowIAM Sage Advanced
Lazy like me? Check out the Escalation Formatter
(No, seriously, use the Escy Formatter)
1) Description of Issue: 2) Expected Results: 3) Troubleshooting Steps Taken: 4) Additional Details: - Does it work in Safe Mode? - Is the issue impacting a single user or multiple? - When did the problem start? - Does it happen every time or intermittent? - Can you recreate? - Did the user (or you) find a workaround? What is it? - Anything else important involving this issue? 5) MAH Email: -User Email: 6) Date/Time/Time zone: 7) OS (Host): OS (Client): - Web Browser(s): 8) Did you make sure to Attach Logs to the Case? (Ask SME how to enable and gather Debug logs if its for LMI Pro/Central or Gather HAR Logs):


Summary
Introduces four different forms using a repeat
keyword.
It also demonstrates how to use a callback parameters.
repeat as a keyword
Let’s begin with an example.
> python -m ideas -a repeat --show
Ideas Console version 0.0.38. [Python version: 3.9.10]
ideas> repeat 3:
... print('Hello')
...
===========Transformed============
for _9e4a6946f8d44ffca90dc9475537d39a in range( 3):
print('Hello')
-----------------------------
Hello
Hello
Hello
ideas>
As you can see, repeat n
, where n
is an integer,
is converted into a for loop, with a randomly named
variable, guaranteed not to have a name used for another
object in the program. This works well in practice.
However, suppose we wish to do some repeatable tests,
ensuring that the variable names are always the same
for all tests: we can do this using a ‘callback parameter’.
This is a parameter that is given to the add_hook
function used to create the import hook.
add_hook
must use Python dict to pass all required
callback parameters to create_hook
, so that they
can be passed back to the function used to transform the code.
Here’s a second example using it.
>>> from ideas.examples import repeat
>>> from ideas.console import start
>>> from ideas.session import config
>>> config.show_changes = True
>>> repeat.add_hook(predictable_names=True)
<IdeasMetaFinder object for ideas.examples.repeat>
>>> start()
Ideas Console version 0.0.38. [Python version: 3.9.10]
ideas> repeat 3:
... print('Hello')
...
===========Transformed============
for _1 in range( 3):
print('Hello')
-----------------------------
Hello
Hello
Hello
ideas>
As you can see, the name of the for loop variable, _1
,
is much simpler … and predictable.
You will need to have a look at the code for repeat.py
to
fully understand how to use such callback parameters in your
own import hooks.
Adds repeat
as a keyword to write loops. The four constructs supported
are:
repeat n:
# code
repeat while condition:
# code
repeat until condition:
# code
repeat forever:
# code
For example:
repeat 3:
a = 2
repeat a*a:
pass
is equivalent to:
for unique_variable_name_1 in range(3):
a = 2
for unique_variable_name_2 in range(a*a):
pass
- exception ideas.examples.repeat.RepeatSyntaxError[source]
Currently, only raised when a repeat statement has a missing colon.
- ideas.examples.repeat.add_hook(predictable_names=False, **_kwargs)[source]
Creates and adds the import hook in sys.meta_path.
If
predictable_names
is set toTrue
, a callback parameter passed to the source transformation function will be used to create variable loops with predictable names.
- ideas.examples.repeat.transform_source(source, callback_params=None, **_kwargs)[source]
This function is called by the import hook loader and is used as a wrapper for the function where the real transformation is performed.
It can use an optional parameter,
callback_params
, which is a dict that can contain a key,"predictable_names"
, to indicate that variables created as loop counters should take a predictable form.


Use the slider, mouse or keyboard to scroll the ContentfFow gallery.
Buttons for Slideshow
Previous Image - Go To First Image - Play/Pause - Go To Last Image -Next Image
Under Image Icons
Image Info - EXIF Info - Shopping Cart - Print Full Size Image
Click on any image to open it in a LightBox popup.
ContentFlow is a flexible CoverflowTM / ImageFlow like flow written in javascript, which can handle any kind of content. It supports all new and old major and not so major browsers. It's distributed under the MIT License. With ContentFlow it is now possible to have any number of flows within one web-page. Each separately configurable, satisfying different visual needs.
ContentFlow can handle different kinds of control, like keyboard and mouse, and can be used with and without a reflection. For a complete list of features and compatibilities take a look at the feature list.


Press n or j to go to the next uncovered block, b, p or k for the previous block.
| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| DateTime.js | 66.67% | 4/6 | 100% | 0/0 | 50% | 2/4 | 66.67% | 4/6 | |
| DateTimeCore.js | 23.58% | 25/106 | 10.67% | 8/75 | 80% | 4/5 | 23.58% | 25/106 | |
| Dates.js | 78.95% | 15/19 | 100% | 12/12 | 50% | 4/8 | 78.95% | 15/19 | |
| GlobalEvent.js | 73.53% | 25/34 | 70% | 14/20 | 75% | 3/4 | 78.13% | 25/32 | |
| IndexManager.js | 75% | 24/32 | 50% | 10/20 | 57.14% | 4/7 | 75% | 24/32 | |
| MediaControl.js | 34.07% | 46/135 | 20.34% | 12/59 | 37.04% | 10/27 | 34.07% | 46/135 | |
| Move.js | 12.09% | 22/182 | 8.7% | 8/92 | 31.25% | 5/16 | 12.29% | 22/179 | |
| PopupManager.js | 78.26% | 18/23 | 50% | 2/4 | 100% | 5/5 | 78.26% | 18/23 | |
| Time.js | 51.72% | 15/29 | 50% | 11/22 | 44.44% | 4/9 | 51.72% | 15/29 | |
| TipManager.js | 25.41% | 46/181 | 11.9% | 10/84 | 25% | 10/40 | 25.7% | 46/179 | |
| TriggerManager.js | 32.18% | 28/87 | 15% | 12/80 | 35.71% | 5/14 | 34.15% | 28/82 | |
| standardDate.js | 100% | 4/4 | 100% | 0/0 | 100% | 0/0 | 100% | 4/4 |


{% extends "static/templates/base.html" %} {% block title %}Contact{% endblock %} {% block content %}
If you have any suggestions/feedback we'd love to hear from you.
You can mail us at<EMAIL_ADDRESS>or submit suggestions, or even a GC logfile via the below form
{% endblock %}


Click the middle menu item to see the effect.
Hey, dreamypie, wake up!
Yo, sleepyhead! What's up?
Ho ho, honey! What's the matter?


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/tactic.20wishlist.html ---
Not sure if there's something like this in another stream - apologies if there is. What tactics would you like to see written? (By tactics I also include broader metaprogramming constructs, not necessarily those which you would use to discharge proof obligations.)
@Seul Baek told me he wanted to see a tactic to list lemmas in your current file which are unused by other lemmas. This helps in building theories which avoid spurious lemmas.
The big missing tactics for me are metis
and omega
. metis
is important for sledgehammer like operation, and is also useful as a standalone tool for fiddly goals. For omega
there are various versions of cooper
by Seul that can fill this role, but there is some work to be done to make them usable without a complicated setup and/or a PhD
Most of the little tactics I can think of are already written and in mathlib
Simon and I have been discussing the possibility of global analysis for linting and things, which could address your unused lemmas example
but we are somewhat limited by what lean will give us here, unless we use an external tool like the olean viewer
How about documentation generation? Is there something for that?
I'm not entirely sure what the story is there. @Sebastian Ullrich Lean has some support for a leandoc tool but it's not all there; do you know what the commandline option actually does currently? Is lean 4 any different here?
I've never used it. This should really be an external tool written in Lean in Lean 4.
How about a tactic to convert term-style proofs into tactic style proofs?
The recent move of mathlib removed the old community-wiki on github. I don't know where to find it now, but it contained a couple of such wishlists.
Are you referring to this: https://github.com/leanprover-fork/mathlib-backup/wiki
I think we could move it to leanprover-community
Aaah, yes that's it. Should we just copy-paste it? Or is there some history that can/should be preserved?
It can be preserved, I don't know if we want to. @Mario Carneiro You seem to have authored a wiki page with nothing on it on leanprover-community/mathlib
. Do you mind if we overwrite it with the one we have in the backup?
That's news to me. Go ahead and overwrite it, I don't think I have touched the wiki
Thanks! I just did. @Johan Commelin you should be able to see what you had before. Let me know if there's anything else to move from the old leanprover-community/mathlib
(now located at leanprover-fork/mathlib-backup
) to the new leanprover-community/mathlib
(formerly leanprover/mathlib
)
Here are another idea:
symmetry at H
— replace the equality H
with H.symm
in the context
I know this can be done with replace
, but I think that it is intuitive to try this with symmetry
, and it might be nice for beginners.
This one is a really nice exercise for you: read the tactic writing tutorial and write it
I agree. So let me try it once I finish my bureaucracy tomorrow.
Hmmm, I guess there is a little bit of trouble, namely that symmetry
is locked into core.
 end end tactic.interactive example (H : 1 = 3) : true := begin symm at H, end
now make it work with arbitrary loc
s
what does that mean?
potentially several assumptions at the same time, and also the goal
oh man
it's not difficult
I always felt bad that I could not teach Chris and Kenny (or indeed anyone at Imperial) tactics, but they seem to have picked it up for themselves. Chris PR'ed a tactic last week :D
I wouldn't say I've picked it up that well. It was a very straightforward tactic. I hope to do something less trivial at some point.
and I basically copied my tactic from the original one and modified it a tad
That's how these things start.
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC