12 External Term Format
12.1 Introduction
The external term format is mainly used in the distribution mechanism of Erlang.
As Erlang has a fixed number of types, there is no need for a programmer to define a specification for the external format used within some application. All Erlang terms have an external representation and the interpretation of the different terms is application-specific.
In Erlang the BIF erlang:term_to_binary/1,2 is used to convert a term into the external format. To convert binary data encoding to a term, the BIF erlang:binary_to_term/1 is used.
The distribution does this implicitly when sending messages across node boundaries.
The overall format of the term format is as follows:
| 1 | 1 | N |
| 131 | Tag | Data |
When messages are passed between connected nodes and a distribution header is used, the first byte containing the version number (131) is omitted from the terms that follow the distribution header. This is because the version number is implied by the version number in the distribution header.
The compressed term format is as follows:
| 1 | 1 | 4 | N |
| 131 | 80 | UncompressedSize | Zlib-compressedData |
Uncompressed size (unsigned 32-bit integer in big-endian byte order) is the size of the data before it was compressed. The compressed data has the following format when it has been expanded:
| 1 | Uncompressed Size |
| Tag | Data |
As from ERTS 9.0 (OTP 20), atoms may contain any Unicode characters and are always encoded using the UTF-8 external formats ATOM_UTF8_EXT or SMALL_ATOM_UTF8_EXT. The old Latin-1 formats ATOM_EXT and SMALL_ATOM_EXT are deprecated and are only kept for backward compatibility when decoding terms encoded by older nodes.
Support for UTF-8 encoded atoms in the external format has been available since ERTS 5.10 (OTP R16). This abillity allows such old nodes to decode, store and encode any Unicode atoms received from a new OTP 20 node.
The maximum number of allowed characters in an atom is 255. In the UTF-8 case, each character can need 4 bytes to be encoded.
12.2 Distribution Header
As from ERTS 5.7.2 the old atom cache protocol was dropped and a new one was introduced. This protocol introduced the distribution header. Nodes with an ERTS version earlier than 5.7.2 can still communicate with new nodes, but no distribution header and no atom cache are used.
The distribution header only contains an atom cache reference section, but can in the future contain more information. The distribution header precedes one or more Erlang terms on the external format. For more information, see the documentation of the protocol between connected nodes in the distribution protocol documentation.
ATOM_CACHE_REF entries with corresponding AtomCacheReferenceIndex in terms encoded on the external format following a distribution header refer to the atom cache references made in the distribution header. The range is 0 <= AtomCacheReferenceIndex < 255, that is, at most 255 different atom cache references from the following terms can be made.
The distribution header format is as follows:
| 1 | 1 | 1 | NumberOfAtomCacheRefs/2+1 | 0 | N | 0 |
| 131 | 68 | NumberOfAtomCacheRefs | Flags | AtomCacheRefs |
Flags consist of NumberOfAtomCacheRefs/2+1 bytes, unless NumberOfAtomCacheRefs is 0. If NumberOfAtomCacheRefs is 0, Flags and AtomCacheRefs are omitted. Each atom cache reference has a half byte flag field. Flags corresponding to a specific AtomCacheReferenceIndex are located in flag byte number AtomCacheReferenceIndex/2. Flag byte 0 is the first byte after the NumberOfAtomCacheRefs byte. Flags for an even AtomCacheReferenceIndex are located in the least significant half byte and flags for an odd AtomCacheReferenceIndex are located in the most significant half byte.
The flag field of an atom cache reference has the following format:
| 1 bit | 3 bits |
| NewCacheEntryFlag | SegmentIndex |
The most significant bit is the NewCacheEntryFlag. If set, the corresponding cache reference is new. The three least significant bits are the SegmentIndex of the corresponding atom cache entry. An atom cache consists of 8 segments, each of size 256, that is, an atom cache can contain 2048 entries.
After flag fields for atom cache references, another half byte flag field is located with the following format:
| 3 bits | 1 bit |
| CurrentlyUnused | LongAtoms |
The least significant bit in that half byte is flag LongAtoms. If it is set, 2 bytes are used for atom lengths instead of 1 byte in the distribution header.
After the Flags field follow the AtomCacheRefs. The first AtomCacheRef is the one corresponding to AtomCacheReferenceIndex 0. Higher indices follow in sequence up to index NumberOfAtomCacheRefs - 1.
If the NewCacheEntryFlag for the next AtomCacheRef has been set, a NewAtomCacheRef on the following format follows:
| 1 | 1 | 2 | Length |
| InternalSegmentIndex | Length | AtomText |
InternalSegmentIndex together with the SegmentIndex completely identify the location of an atom cache entry in the atom cache. Length is the number of bytes that AtomText consists of. Length is a 2 byte big-endian integer if flag LongAtoms has been set, otherwise a 1 byte integer. When distribution flag DFLAG_UTF8_ATOMS has been exchanged between both nodes in the distribution handshake, characters in AtomText are encoded in UTF-8, otherwise in Latin-1. The following CachedAtomRefs with the same SegmentIndex and InternalSegmentIndex as this NewAtomCacheRef refer to this atom until a new NewAtomCacheRef with the same SegmentIndex and InternalSegmentIndex appear.
For more information on encoding of atoms, see the note on UTF-8 encoded atoms in the beginning of this section.
If the NewCacheEntryFlag for the next AtomCacheRef has not been set, a CachedAtomRef on the following format follows:
| 1 |
| InternalSegmentIndex |
InternalSegmentIndex together with the SegmentIndex identify the location of the atom cache entry in the atom cache. The atom corresponding to this CachedAtomRef is the latest NewAtomCacheRef preceding this CachedAtomRef in another previously passed distribution header.
12.3 ATOM_CACHE_REF
| 1 | 1 |
| 82 | AtomCacheReferenceIndex |
Refers to the atom with AtomCacheReferenceIndex in the distribution header.
12.4 SMALL_INTEGER_EXT
| 1 | 1 |
| 97 | Int |
Unsigned 8-bit integer.
12.5 INTEGER_EXT
| 1 | 4 |
| 98 | Int |
Signed 32-bit integer in big-endian format.
12.6 FLOAT_EXT
| 1 | 31 |
| 99 | Float string |
A float is stored in string format. The format used in sprintf to format the float is "%.20e" (there are more bytes allocated than necessary). To unpack the float, use sscanf with format "%lf".
This term is used in minor version 0 of the external format; it has been superseded by NEW_FLOAT_EXT.
12.7 REFERENCE_EXT
| 1 | N | 4 | 1 |
| 101 | Node | ID | Creation |
Encodes a reference object (an object generated with erlang:make_ref/0). The Node term is an encoded atom, that is, ATOM_UTF8_EXT, SMALL_ATOM_UTF8_EXT, or ATOM_CACHE_REF. The ID field contains a big-endian unsigned integer, but is to be regarded as uninterpreted data, as this field is node-specific. Creation is a byte containing a node serial number, which makes it possible to separate old (crashed) nodes from a new one.
In ID, only 18 bits are significant; the rest are to be 0. In Creation, only two bits are significant; the rest are to be 0. See NEW_REFERENCE_EXT.
12.8 PORT_EXT
| 1 | N | 4 | 1 |
| 102 | Node | ID | Creation |
Encodes a port object (obtained from erlang:open_port/2). The ID is a node-specific identifier for a local port. Port operations are not allowed across node boundaries. The Creation works just like in REFERENCE_EXT.
12.9 PID_EXT
| 1 | N | 4 | 4 | 1 |
| 103 | Node | ID | Serial | Creation |
Encodes a process identifier object (obtained from erlang:spawn/3 or friends). The ID and Creation fields works just like in REFERENCE_EXT, while the Serial field is used to improve safety. In ID, only 15 bits are significant; the rest are to be 0.
12.10 SMALL_TUPLE_EXT
| 1 | 1 | N |
| 104 | Arity | Elements |
Encodes a tuple. The Arity field is an unsigned byte that determines how many elements that follows in section Elements.
12.11 LARGE_TUPLE_EXT
| 1 | 4 | N |
| 105 | Arity | Elements |
Same as SMALL_TUPLE_EXT except that Arity is an unsigned 4 byte integer in big-endian format.
12.12 MAP_EXT
| 1 | 4 | N |
| 116 | Arity | Pairs |
Encodes a map. The Arity field is an unsigned 4 byte integer in big-endian format that determines the number of key-value pairs in the map. Key and value pairs (Ki => Vi) are encoded in section Pairs in the following order: K1, V1, K2, V2,..., Kn, Vn. Duplicate keys are not allowed within the same map.
As from Erlang/OTP 17.0
12.13 NIL_EXT
| 1 |
| 106 |
The representation for an empty list, that is, the Erlang syntax [].
12.14 STRING_EXT
| 1 | 2 | Len |
| 107 | Length | Characters |
String does not have a corresponding Erlang representation, but is an optimization for sending lists of bytes (integer in the range 0-255) more efficiently over the distribution. As field Length is an unsigned 2 byte integer (big-endian), implementations must ensure that lists longer than 65535 elements are encoded as LIST_EXT.
12.15 LIST_EXT
| 1 | 4 | ||
| 108 | Length | Elements | Tail |
Length is the number of elements that follows in section Elements. Tail is the final tail of the list; it is NIL_EXT for a proper list, but can be any type if the list is improper (for example, [a|b]).
12.16 BINARY_EXT
| 1 | 4 | Len |
| 109 | Len | Data |
Binaries are generated with bit syntax expression or with erlang:list_to_binary/1, erlang:term_to_binary/1, or as input from binary ports. The Len length field is an unsigned 4 byte integer (big-endian).
12.17 SMALL_BIG_EXT
| 1 | 1 | 1 | n |
| 110 | n | Sign | d(0) ... d(n-1) |
Bignums are stored in unary form with a Sign byte, that is, 0 if the binum is positive and 1 if it is negative. The digits are stored with the least significant byte stored first. To calculate the integer, the following formula can be used:
B = 256
(d0*B^0 + d1*B^1 + d2*B^2 + ... d(N-1)*B^(n-1))
12.18 LARGE_BIG_EXT
| 1 | 4 | 1 | n |
| 111 | n | Sign | d(0) ... d(n-1) |
Same as SMALL_BIG_EXT except that the length field is an unsigned 4 byte integer.
12.19 NEW_REFERENCE_EXT
| 1 | 2 | N | 1 | N' |
| 114 | Len | Node | Creation | ID ... |
Node and Creation are as in REFERENCE_EXT.
ID contains a sequence of big-endian unsigned integers (4 bytes each, so N' is a multiple of 4), but is to be regarded as uninterpreted data.
N' = 4 * Len.
In the first word (4 bytes) of ID, only 18 bits are significant, the rest are to be 0. In Creation, only two bits are significant, the rest are to be 0.
NEW_REFERENCE_EXT was introduced with distribution version 4. In version 4, N' is to be at most 12.
See REFERENCE_EXT.
12.20 FUN_EXT
| 1 | 4 | N1 | N2 | N3 | N4 | N5 |
| 117 | NumFree | Pid | Module | Index | Uniq | Free vars ... |
- Pid
-
A process identifier as in PID_EXT. Represents the process in which the fun was created.
- Module
-
Encoded as an atom, using ATOM_UTF8_EXT, SMALL_ATOM_UTF8_EXT, or ATOM_CACHE_REF. This is the module that the fun is implemented in.
- Index
-
An integer encoded using SMALL_INTEGER_EXT or INTEGER_EXT. It is typically a small index into the module's fun table.
- Uniq
-
An integer encoded using SMALL_INTEGER_EXT or INTEGER_EXT. Uniq is the hash value of the parse for the fun.
- Free vars
-
NumFree number of terms, each one encoded according to its type.
12.21 NEW_FUN_EXT
| 1 | 4 | 1 | 16 | 4 | 4 | N1 | N2 | N3 | N4 | N5 |
| 112 | Size | Arity | Uniq | Index | NumFree | Module | OldIndex | OldUniq | Pid | Free Vars |
This is the new encoding of internal funs: fun F/A and fun(Arg1,..) -> ... end.
- Size
-
The total number of bytes, including field Size.
- Arity
-
The arity of the function implementing the fun.
- Uniq
-
The 16 bytes MD5 of the significant parts of the Beam file.
- Index
-
An index number. Each fun within a module has an unique index. Index is stored in big-endian byte order.
- NumFree
-
The number of free variables.
- Module
-
Encoded as an atom, using ATOM_UTF8_EXT, SMALL_ATOM_UTF8_EXT, or ATOM_CACHE_REF. Is the module that the fun is implemented in.
- OldIndex
-
An integer encoded using SMALL_INTEGER_EXT or INTEGER_EXT. Is typically a small index into the module's fun table.
- OldUniq
-
An integer encoded using SMALL_INTEGER_EXT or INTEGER_EXT. Uniq is the hash value of the parse tree for the fun.
- Pid
-
A process identifier as in PID_EXT. Represents the process in which the fun was created.
- Free vars
-
NumFree number of terms, each one encoded according to its type.
12.22 EXPORT_EXT
| 1 | N1 | N2 | N3 |
| 113 | Module | Function | Arity |
This term is the encoding for external funs: fun M:F/A.
Module and Function are atoms (encoded using ATOM_UTF8_EXT, SMALL_ATOM_UTF8_EXT, or ATOM_CACHE_REF).
Arity is an integer encoded using SMALL_INTEGER_EXT.
12.23 BIT_BINARY_EXT
| 1 | 4 | 1 | Len |
| 77 | Len | Bits | Data |
This term represents a bitstring whose length in bits does not have to be a multiple of 8. The Len field is an unsigned 4 byte integer (big-endian). The Bits field is the number of bits (1-8) that are used in the last byte in the data field, counting from the most significant bit to the least significant.
12.24 NEW_FLOAT_EXT
| 1 | 8 |
| 70 | IEEE float |
A float is stored as 8 bytes in big-endian IEEE format.
This term is used in minor version 1 of the external format.
12.25 ATOM_UTF8_EXT
| 1 | 2 | Len |
| 118 | Len | AtomName |
An atom is stored with a 2 byte unsigned length in big-endian order, followed by Len bytes containing the AtomName encoded in UTF-8.
For more information on encoding of atoms, see the note on UTF-8 encoded atoms in the beginning of this section.
12.26 SMALL_ATOM_UTF8_EXT
| 1 | 1 | Len |
| 119 | Len | AtomName |
An atom is stored with a 1 byte unsigned length, followed by Len bytes containing the AtomName encoded in UTF-8. Longer atoms encoded in UTF-8 can be represented using ATOM_UTF8_EXT.
For more information on encoding of atoms, see the note on UTF-8 encoded atoms in the beginning of this section.
12.27 ATOM_EXT (deprecated)
| 1 | 2 | Len |
| 100 | Len | AtomName |
An atom is stored with a 2 byte unsigned length in big-endian order, followed by Len numbers of 8-bit Latin-1 characters that forms the AtomName. The maximum allowed value for Len is 255.
12.28 SMALL_ATOM_EXT (deprecated)
| 1 | 1 | Len |
| 115 | Len | AtomName |
An atom is stored with a 1 byte unsigned length, followed by Len numbers of 8-bit Latin-1 characters that forms the AtomName.
SMALL_ATOM_EXT was introduced in ERTS 5.7.2 and require an exchange of distribution flag DFLAG_SMALL_ATOM_TAGS in the distribution handshake.


Quiz All About ME!
Question One: My name is Aaron Blake Ferris. Is this true? Yes or no?
Answer: Yes.
Question Two: I am the oldest of three children. Is this true? Yes or no?
Answer: No. I am the youngest of three.
Question Three: My two older brothers are named Drew and Reed. As my father and grandmother are both teachers, I was almost named 'Wright'. Is this true? Yes or no?
Answer: Yes. Thank goodness they decided otherwise, which kept me from much childhood teasing. Now Key and Peel have opened that can of worms for my name
Question Four: I have played ultimate at a competitive level, known as club. I also currently enjoy giving back to the ultimate community by coaching teams my alma mater at Eckstien Middle School. Is this true? Yes or no?
Answer: No. Unfortunatly life gets in the way. Codefellows is busy enough that I do not have the time to commit to something like that during the school day. You should know that!
Question Five: I play Dungeons and Dragons! I prefer to play hack and slash fighting characters to make things as simple as possible. Is this true? Yes or no?
Answer: No. If you know anything about me, I am a glutton for punishment! I enjoy playing magic-users, as knowing and managing your spells is often more complex and difficult. However dumb characters can be played in VERY fun ways.


Our websites and mobile sites use cookies to give you the best online experience. By using our website and agreeing to this policy, you consent to our use of cookies in accordance with the terms of this policy.
Cookies are short pieces of data that are sent to your computer when you visit a website. On future visits, this data is then returned to that website to help identify you and your site preferences.
Is enabling cookies safe? Yes. Cookies are just small pieces of data which cannot perform any operation by themselves.
How do I change my browser setting so I can shop on the site? The Help portion of the toolbar on most browsers will tell you how to set your browser to accept new cookies, how to have the browser notify you when you receive a new cookie, or how to disable cookies altogether.
Performance cookies collect information about how you use our website e.g. which pages you visit and if you experience any errors. These cookies don’t collect information that identifies a visitor, although they may collect the IP address of the device used to access the site. All information collected is only used to help us understand how our visitors use our website, what interests our users, and to measure how effective our pages are so that we can improve how we present our content to you. These cookies help to improve the performance of the website, providing a better experience for you.
Third Party Cookies. Some of the cookies used on our website are set by third party organisations that we use for different services. For example, we use external analytics services by specialist suppliers and these suppliers may set cookies on our behalf in order to report back to us. We may also sometimes embed video or other content from websites such as YouTube and these sites may set their own cookies.


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/.23911.20refactor.20group_hom.html ---
For some reason #911 seems to hang on field_theory/splitting_field.lean
I have no clue why.
On your local machine too, or just travis?
Travis reports no output. On my machine it also seems to hang
Didn't report a deterministic timeout.
The offending lemma is splits_mul
Does anyone know how to debug this? Lean is just not giving any feedback to me at all. It just hangs.
Is it because it's getting map_mul
confused with polynomial.map_mul
?
Maybe that's it...
I got this on the command line
➜ mathlib git:(is_group_hom) ✗ time nice leanpkg build configuring mathlib 0.1 > lean --make src /home/jmc/data/math/mathlib/src/field_theory/splitting_field.lean: polynomial.splits_mulexternal command exited with status 137 nice leanpkg build 7274.20s user 11.87s system 330% cpu 36:41.78 total
Does that status code mean anything?
It's weird though... because is_group_hom
isn't open. I don't understand where the confusion could come from.
And there was a is_group_hom.map_mul
before.
Anyway, I changed the map_mul
to polynomial.map_mul
and that does seem to work...
Let's see if Travis is also happy.
Good catch @Chris Hughes !
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Home
Trees
Indices
Help
Eyetracking
[
hide private
]
[
frames
] |
no frames
]
Identifier Index
[
A
B
C
D
E
F
G
H
I
J K
L
M
N
O
P
Q
R
S
T
U
V
W
X Y Z
_
]
A
Avotec
(in
PupilFindingMethod
)
AvotecFile
(in
Eyetracking.EyetrackingUtilities
)
C
CalibrationOrder35
(in
EyetrackingCalibrator
)
CalibrationOrder70
(in
EyetrackingCalibrator
)
Copy()
(in
EyetrackingCalibrator
)
E
EstimateCalibrationPointPositions()
(in
EyetrackingCalibrator
)
Eyetracker
(in
Eyetracking.Eyetracker
)
EyetrackingCalibrator
(in
Eyetracking.EyetrackingCalibrator
)
Events
(in
AvotecFile
)
Eyetracking
EyetrackingUtilities
(in
Eyetracking
)
Eyetracker
(in
Eyetracking
)
EyetrackingCalibrator
(in
Eyetracking
)
F
FilterPupils()
(in
PupilFinder
)
FindPupils()
(in
EyetrackingCalibrator
)
Fit()
(in
EyetrackingCalibrator
)
FilterPupils()
(in
TemplatePupilFinder
)
FindPupils()
(in
PupilFinder
)
flats
(in
VideoTimestampReader
)
FindOnsetFrame()
(in
VideoTimestampReader
)
FindPupils()
(in
TemplatePupilFinder
)
G
GeneratePoints()
(in
EyetrackingCalibrator
)
GetTimeStampForFrame()
(in
VideoTimestampReader
)
GetVideoInfo()
(in
VideoReader
)
GeneratePupilTemplates()
(in
TemplatePupilFinder
)
GetTimeStampForFrames()
(in
VideoTimestampReader
)
GetGazeLocations()
(in
Eyetracker
)
GetTraces()
(in
PupilFinder
)
H
History
(in
AvotecFile
)
Hough
(in
PupilFindingMethod
)
I
i
(in
VideoTimestampReader
)
InitFromOther()
(in
TemplatePupilFinder
)
InitFromOther()
(in
VideoTimestampReader
)
InitFromOther()
(in
PupilFinder
)
InitFromOther()
(in
VideoReader
)
int
L
Load()
(in
EyetrackingCalibrator
)
Load()
(in
TemplatePupilFinder
)
Load()
(in
VideoTimestampReader
)
Load()
(in
PupilFinder
)
Load()
(in
VideoReader
)
LoadFrames()
(in
VideoReader
)
M
MatchDigit()
(in
VideoTimestampReader
)
maxRadius
(in
TemplatePupilFinder
)
minRadius
(in
PupilFinder
)
maxRadius
(in
PupilFinder
)
median2way()
(in
Eyetracking.PupilFinder
)
minRadius
(in
TemplatePupilFinder
)
N
numberTemplates
(in
VideoTimestampReader
)
O
outliers2nan()
(in
Eyetracking.PupilFinder
)
P
parallelize()
(in
Eyetracking.EyetrackingUtilities
)
ParseRecordsForEndTTLs()
(in
Eyetracking.EyetrackingUtilities
)
PupilFinder
(in
Eyetracking
)
ParseEventsForTTLs()
(in
Eyetracking.EyetrackingUtilities
)
ParseRecordsForStartTTLs()
(in
Eyetracking.EyetrackingUtilities
)
PupilFinder
(in
Eyetracking.PupilFinder
)
ParseHistoryForTTLs()
(in
Eyetracking.EyetrackingUtilities
)
ParseTimestamps()
(in
VideoTimestampReader
)
PupilFindingMethod
(in
Eyetracking.EyetrackingCalibrator
)
R
ReadNPY()
(in
Eyetracking.EyetrackingUtilities
)
RecenterFrames()
(in
Eyetracker
)
ReadPickle()
(in
Eyetracking.EyetrackingUtilities
)
RecenterFramesToVideo()
(in
Eyetracker
)
S
Save()
(in
EyetrackingCalibrator
)
Save()
(in
VideoReader
)
SavePickle()
(in
Eyetracking.EyetrackingUtilities
)
Save()
(in
PupilFinder
)
Save()
(in
VideoTimestampReader
)
SearchAndFit()
(in
EyetrackingCalibrator
)
Save()
(in
TemplatePupilFinder
)
SaveNPY()
(in
Eyetracking.EyetrackingUtilities
)
SECONDS_SYMBOL
(in
Eyetracking.VideoTimestampReader
)
T
TemplatePupilFinder
(in
Eyetracking
)
Templates
(in
PupilFindingMethod
)
TimeToSeconds()
(in
Eyetracking.EyetrackingUtilities
)
TemplatePupilFinder
(in
Eyetracking.TemplatePupilFinder
)
templates
(in
VideoTimestampReader
)
TransformToScreenCoordinates()
(in
EyetrackingCalibrator
)
V
VideoReader
(in
Eyetracking
)
VideoTimestampReader
(in
Eyetracking
)
VideoReader
(in
Eyetracking.VideoReader
)
VideoTimestampReader
(in
Eyetracking.VideoTimestampReader
)
W
Worker()
(in
TemplatePupilFinder
)
WritePupilVideo()
(in
PupilFinder
)
WriteVideo()
(in
VideoReader
)
WriteFramesWithGazePosition()
(in
Eyetracker
)
WritePupilVideo()
(in
TemplatePupilFinder
)
WriteVideoWithGazePosition()
(in
Eyetracker
)
WritePupilFrames()
(in
PupilFinder
)
WriteSideBySideVideo()
(in
Eyetracker
)
_
__init__()
(in
Eyetracker
)
__package__
(in
Eyetracking.EyetrackingCalibrator
)
__warningregistry__
(in
Eyetracking.Eyetracker
)
__init__()
(in
EyetrackingCalibrator
)
__package__
(in
Eyetracking.EyetrackingUtilities
)
_member_map_
(in
PupilFindingMethod
)
__init__()
(in
PupilFinder
)
__package__
(in
Eyetracking.PupilFinder
)
_member_map_
(in
AvotecFile
)
__init__()
(in
TemplatePupilFinder
)
__package__
(in
Eyetracking.TemplatePupilFinder
)
_member_names_
(in
PupilFindingMethod
)
__init__()
(in
VideoReader
)
__package__
(in
Eyetracking.VideoReader
)
_member_names_
(in
AvotecFile
)
__init__()
(in
VideoTimestampReader
)
__package__
(in
Eyetracking.VideoTimestampReader
)
_value2member_map_
(in
PupilFindingMethod
)
__package__
(in
Eyetracking.Eyetracker
)
__package__
(in
Eyetracking
)
_value2member_map_
(in
AvotecFile
)
Home
Trees
Indices
Help
Eyetracking
Generated by Epydoc 3.0.1 on Mon Nov 9 17:54:29 2020
http://epydoc.sourceforge.net


Table
On the table we have data on every county of California. You will be able to adjust it according to your preferences.
Recommendations
Fill this quick survey to get a recommendation of three suitable counties with our powerful algorithms.
Map
Empowered by Google Map, you will see all counties' geographic locations and find out where suits you the most.
What we do: It'll blow your mind.
We built a web page that will allow you to find the perfect county to live in. We got data from the best sources and made it available here so that you can find everything easily. You can start your search by completing our survey, or you could use our table to look for whatever information you find interesting!


{% extends base %} {% block preamble %} {% endblock %} {% block inner_body %}
This tool creates pivot charts from csv files. An example csv and widget configuration is shown on the left. The widgets of each section may be expanded or collapsed by clicking on the blue headers. For pre-configured axes, series, and explode widgets, select None to free up the column for use in the other widgets. Changes to widgets will automatically trigger plot updates, except for Filters, for which you must press the Update Filters button to apply your changes.
Chart Type (Dot, Line, Bar, Area) is in the Plot Adjustments section, along with many more plot adjustments. Click the Download csv button at the bottom to download the data you are viewing to a timestamped csv in the downloads/ folder, and the Export Config to URL button to save your current widget configuration to a URL in the address bar that you can use to load the same view immediately.
Try pointing to your own csv file in the Data Source widget at the top, and make sure to select required X-axis and Y-axis to see a chart. More information/features are described in README.md.


JOHN CARPENTER'S GHOSTS OF MARS A film review by David N. Butterworth Copyright 2001 David N. Butterworth
*1/2 (out of ****)
John Carpenter makes B-movies. Always has ("Halloween," "Escape from New York," "The Thing") and, by the looks of it ("They Live," "Escape from L.A.," "Vampires"), always will.
Carpenter's latest horror opus with a science fiction bent (or science fiction outing with a schlock horror bent) is the aptly-titled "John Carpenter's Ghosts of Mars" (in case, I suppose, you went looking for someone else's "Ghosts of Mars"). Like all those films prefixed by the very possessive "John Carpenter's," "Ghosts of Mars" is an unashamed B-movie punctuated by a B-movie plot, B-movie actors, and B-movie special effects.
In category one, above, we have a storyline that borders on idiotic (and, at times, chaotic). Dormant Martians (i.e., swirling red gases) awakened by meddling humans possess the souls of hapless mining colonists rendering them testy Marilyn Manson lookalikes. All this explained (in flashback) to some grand Pooh-Bah counsel by Martian Police official Melanie Ballard (Natasha Henstridge, from the sub-"Species" films), the only returnee on a silly-looking train. Officer Ballard went in to bring back incarcerated felon James "Desolation" Williams; what she found was not a pretty picture.
In the second category we have Ms. Henstridge, her blonde hair pulled back tightly and awkwardly into a ponytail, Ice Cube (as the appropriately-named "Desolation"), Pam Grier (briefly, oddly--who wanted to work with whom I wonder?), and a host of extras all assuming that the story and special effects were going to carry this film and therefore they didn't need to try too hard.
In category number three we have, in addition to those swirling red gases and the silly-looking train, a couple of bird's-eye-view shots of a sprawling Martian metropolis (reddish also). State-of-the-art special effects have never been a Carpenter trademark and once again the writer/director (who seems to have no problem finding work, however) doesn't waste any of the film's budget in that department.
"Ghosts of Mars" is lock, laughing stock, and barrel all your standard Carpenter fare: dingy interiors, cluttered exteriors, inane dialogue, lots of leather, scarred, crazed-looking aliens, and lots and lots of weaponry. The film often and always explodes into warfare without warning--spontaneously, stupidly. Carpenter might like to think he's made a western here but it's a western without any real heroes, villains, or border conflicts. It's just the shootouts minus a hissing Snake Plissken. I never thought I'd miss the guy but I do.
It's not *all* the same, however. Dubbed the "one-note wonder" for his minimalist music soundtracks, Carpenter seems to have graduated from simplistic (yet effective) scoring by highlighting his action with loud, screeching guitar work. Fortunately this drowns out a lot of the dialogue. The final exchange between Henstridge and, er, Cube though is both audible *and* priceless.
Mars has proven an infertile breeding ground for Hollywood in the last year or so, what with the stillborn "Mission to Mars" and "Red Planet" (with Val Kilmer). "Ghosts of Mars" sadly adds to those disappointing returns (in its opening weekend it was overshadowed by a bunch of sequels, among them "American Pie 2" and "Rush Hour 2"). The irony is that the Mars in Carpenter's film feels sadly absent. There are occasional references to the red planet, of course, but the film might as well have been set in Perth Amboys than on earth's closest neighbor.
Two things keep "John Carpenter's Ghosts of Mars" from getting a huge slap upside the head. 1. Henstridge keeps her top on (miraculously), and 2. the film doesn't pretend to be anything it's not. What that means, however, is that fans of superior, intelligent, grade A sci-fi/horror are singularly out of luck.
-- David N. Butterworth<EMAIL_ADDRESS>Got beef? Visit "La Movie Boeuf" online at http://members.dca.net/dnb
========== X-RAMR-ID: 29356 X-Language: en X-RT-ReviewID: 246511 X-RT-TitleID: 1109551 X-RT-SourceID: 878 X-RT-AuthorID: 1393 X-RT-RatingText: 1.5/4
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Class for managing csv files. More...
#include <csv.h>
Public Types | |
| typedef std::map< int, std::string > | map |
| typedef boost::tokenizer< boost::char_separator< char > > | t_tokenizer |
Public Member Functions | |
| Csv () | |
| Csv (const int max_invalid_ids) | |
| bool | csv2map (const std::string &filename, const int col1, const int col2) |
| Parses csv file given with the filename to a map (int-string). More... | |
| void | delete_disabled_urls (map &id_url_map) |
| const std::unique_ptr< map > & | getId_url_map () const |
| Getter. More... | |
| void | match_values () |
Private Attributes | |
| std::unique_ptr< map > | _id_url_map |
| const int | _max_invalid_ids |
Class for managing csv files.
A simple class for read/write operations on csv files.
| typedef boost::tokenizer<boost::char_separator<char> > Csv::t_tokenizer |
| bool Csv::csv2map | ( | const std::string & | filename, |
| const int | col1, | ||
| const int | col2 | ||
| ) |
Parses csv file given with the filename to a map (int-string).
Takes name of the csv file and numbers of the columns in the csv that will be used respectively as keys and values od the map. Keys should be type compatible with ints and values with strings.
| filename | name of the csv file |
| col1 | csv column number holding keys for the map |
| col2 | csv column number holding values for the map |
| void Csv::delete_disabled_urls | ( | map & | id_url_map | ) |
| void Csv::match_values | ( | ) |


Having trouble deciding where to go out to lunch?
?
Well the lunch picker has got you covered!
Just un-check any options that you really don't want to eat at today, click the green button and let
the lunch picker make the hard decisions for you!!
.
{{eliminatedMessage}}
Congratulations! You are eating at {{finalChoice}} today for lunch!


playdo
CDN Basics
Traffic Control Overview
Administrator’s Guide
Developer’s Guide
APIs
FAQ
Glossary
playdo
Docs
»
Index
Index
Symbols
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
L
|
M
|
O
|
P
|
Q
|
R
|
S
|
T
Symbols
(traffic ops) extension
302 content routing
A
astats (stats_over_http)
B
Bulk Upload Server
C
cache
Cache Control Header
Cache Updates
cachegroup
CDN
Change Log
consistent hashing
Content Delivery Network
Content Routing
content routing
coverage zone map
D
delivery service
Delivery Service regexp
Delivery Service Type
E
edge (tier or cache)
Edge Health
F
Forward Proxy
forward proxy
G
Generate ISO
geo localization or geo routing
Global Profile
H
Header Rewrite
HEADER_REGEXP
Health
health protocol
Health Tab
HOST_REGEXP
HTTP
HTTP 304
http/1.1
I
Invalidate Content
ISO
L
localization
Log File Analysis
M
mid (tier or cache)
O
origin
P
parent (cache or cachegroup)
PATH_REGEXP
profile
Purge
Q
Queue Updates
R
Regex Remap Expression
Revalidation
Reverse Proxy
reverse proxy
S
Server Assignments
Signed URLs
Snapshot CRConfig
Static DNS Entries
T
Token Based Authentication
Traffic Monitor - Overview
Traffic Ops - Default Profiles
Traffic Ops - Installing
Traffic Ops - Migrating from Traffic Ops 1.x to Traffic Ops 2.x
Traffic Portal - Overview
Traffic Router - Overview
Transparent Proxy


Home
Report
Visualization
IP Geodecode
Obtain localization information from IPs
Query
Geodecode
Address
City
Organization
Longitude
Latitude
Visualization
Beta


Smriti Gupta
Smriti has over 12 years of experience leading enterprise applications teams and projects. She graduated from Delhi University with a bachelor of science in mathematics and post graduate in computer applications. Smriti is highly process-oriented, having spent years as a project manager in structured organizations before joining CoLab.
As a project manager, Smriti was responsible for many milestones for Nokia Siemens Networks, including a rebranding initiative and GSM customer documentation. Her attention to detail and love of process, combined with an effective communication style, make her an indispensable asset to the CoLab project management team.
Smriti was drawn to the work flexibility afforded by CoLab's collaborative model, a concept she is glad she explored. In her spare time, Smriti enjoys expanding her project management skills and playing guitar.


FlexyVcard is an impressive and professional online vcard, a beautiful portfolio with sliding effect, resume and contact information with Google map.
It’s simple! Just download and install in a few minutes, you can show your online card to your friend, customer or employer in an interview by phone or tablet. Because FlexyVcard is a responsive template, you can view your website on pc as well as handheld devices. You can also link to your social profiles, display your portfolio in many media format such as image, youtube video, flash...


{% from 'macros.html' import footerContent with context %} {% from 'macros.html' import userDropdown with context %}


Launching Project LEDS in
Be the first to experience the POWER of true Machine Learning
Machine learning has long since been a quest of man to truly harness the power of modern technology. While some consider the application of modern technology as a “tool” as a certain mastery, we challenge that idea. We ask you to ask yourselves, is true mastery of anything something that still requires effort? We think not! Thus, project “LEDS” was born. We have taken FOREX data and cracked the code. By building a machine that could rival the mind of Magnus Carlsen, we have found a way to accurately predict and buy/sell FOREX currency in real time, faster than any human could dream of doing. The LEDS machine can take in past and present FOREX data and cross reference it with current news articles (by gathering a sentiment score) and then predict the movement of a pair of currencies on the FOREX market in real time!


Toggle navigation
The Band
Sounds
Pictures
Videos
Gigs
Bookings
Reviews
Merchandise
Licensing
The Band
Sounds
Pictures
Videos
Gigs
Bookings
Reviews
Merchandise
Licensing
This page is Devoid Of Funk
Get back on The One


{% from 'forms/_form.html' import form_header, form_footer, form_rows %}
{% from 'message_box.html' import message_box %}
{{ form_header(form) }}
{{ form_rows(form) }}
{{ message_box('info', message=_('The registrations will be filled with personal data only. Additional fields will be left blank.')) }}
{{ form_footer(form) }}


--- layout: archive title: Zulip Chat Archive permalink: /stream/144837-PR-reviews/topic/.23835.20hyperreals.html ---
@Abhimanyu Pallavi Sudhir Currently you PR doesn't compile: https://travis-ci.org/leanprover-community/mathlib/jobs/527893658
Could you please take a look?
Apparently it doesn't recognise mono
. Did something happen to the mono
tactic lately?
@Simon Hudon :up: :question:
double check the imports
Simon recently PR'd a change to the import structure, so it's possible mono was being imported transitively and isn't anymore
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


I'm an aspiring web developer. I want to make amazing things that will rock your socks. I'm a vegan with a passion for animal rights. I'm a college football fanatic (Go Hawkeyes!). I can spend hours at flea markets searching for vintage pieces to restore and repurpose. I love a really good soy latte, vinyl records, and photography.


Mode
Building-to-Building Paths
Gate-to-Building Paths
Building Details
Gate
Entry Points
Points of Interests
Building
Floor
Type
Main Gate
Gate 4
Gate 5
Gate 6


Notifications and Dialogs
Action
Beep Once
Beep 3X
Vibrate
Show Alert Dialog
Show Confirm Dialog
startActivity
stopActivity
Back


I'm in the midst of Prang and it's still not going well. I've retreated from trying to understand the algorithm, and am now trying to just translate it into Python. A bit like Searle's Chinese Room. I know there must be a mistake in my translation somewhere because my translation doesn't pass the tests. Therefore I'm breaking the translation down into individual steps and testing each of those. If that doesn't work I'll have to think again. I've said to myself that I'll give up if I haven't cracked it by midnight tonight.


Public jQuery events
What events will Select2 trigger?
Select2 will trigger a few different events when different actions are taken using the component, allowing you to add custom hooks and perform actions.
- change
- Triggered whenever an option is selected or removed.
- select2:close
- Triggered whenever the dropdown is closed.
- select2:closing
- Triggered before the dropdown is closed. This event can be prevented.
- select2:open
- Triggered whenever the dropdown is opened.
- select2:opening
- Triggered before the dropdown is opened. This event can be prevented.
- select2:select
- Triggered whenever a result is selected.
- select2:selecting
- Triggered before a result is selected. This event can be prevented.
- select2:unselect
- Triggered whenever a selection is removed.
- select2:unselecting
- Triggered before a selection is removed. This event can be prevented.
Does Select2 include extra information in these events?
{% include options/not-written.html %}
How can I attach listeners for these events?
{% highlight js linenos %} $('select').on('select2:select', function (evt) { // Do something }); {% endhighlight %} {% include options/not-written.html %}
What events does Select2 listen for?
Select2 will listen for the
change
event on the
<select>
that it is attached to. If you make any external changes that need to be reflected in Select2 (such as changing the value), you should trigger this event.
{% highlight js linenos %} $('select').val('US'); // Select the option with a value of 'US' $('select').trigger('change'); // Notify any JS components that the value changed {% endhighlight %}
Can I trigger an event other than
change
to notify Select2 of changes?
It's common for other components to be listening to the
change
event, or for custom event handlers to be attached that may have side effects. Select2 does not have a custom event (like
select2:update
) that can be triggered other than
change
. You can rely on jQuery's event namespacing to limit the scope to Select2 though by triggering the
change.select2
event.
{% highlight js linenos %} $('select').val('US'); // Change the value or make some change to the internal state $('select').trigger('change.select2'); // Notify only Select2 of changes {%
endhighlight %}
What events can be prevented? How can I prevent a selection from being made?
{% include options/not-written.html %}


Hello, I'm Olivar
I'm a student studying computer science and trying to specialize in a full stack developer in
" Both"
"fornt-end and back-end "
Find Your Forever Friend
live project
Event Listener
link to project on Heroku app
Generate Password App
link to project
Previous
Next


HBPreferences Class Reference
| Inherits from | NSObject |
|---|---|
| Declared in | HBPreferences.h |
Initializing an HBPreferences Object
+ preferencesForIdentifier:
Creates an instance of the class for the specified identifier.
+ (instancetype)preferencesForIdentifier:(NSString *)identifier
Parameters
identifier |
The identifier to be used. This is usually the same as the package identifier of the tweak. |
|---|
Return Value
An autoreleased instance of HBPreferences for the specified identifier.
Declared In
HBPreferences.h
– initWithIdentifier:
Initializes an instance of the class for the specified identifier.
- (instancetype)initWithIdentifier:(NSString *)identifier
Parameters
identifier |
The identifier to be used. This is usually the same as the package identifier of the tweak. |
|---|
Return Value
An autoreleased instance of HBPreferences for the specified identifier.
Declared In
HBPreferences.h
identifier
The preferences identifier provided at initialisation.
@property (nonatomic, retain, readonly) NSString *identifier
Declared In
HBPreferences.h
Synchronizing Preferences
– synchronize
Synchronizes preferences data to prevent race conditions.
- (BOOL)synchronize
Return Value
YES
if synchronization was successful, NO
if an error occurred.
Discussion
On iOS 8.0 and later, waits until all communications between the cfprefsd
daemon and the current process have completed, preventing race conditions
and guaranteeing no data will be lost. Prior to iOS 8.0, writes all pending
changes to preference data to permanent storage, and reads latest preference
data from permanent storage.
Do not use this method directly unless you have a specific need. HBPreferences will synchronize automatically when needed. For further information on what this method does and when to use it, refer to NSUserDefaults in Practice § “Sharing Defaults Between Programs”.
Declared In
HBPreferences.h
Getting Preference Values
– dictionaryRepresentation
Returns a dictionary that contains all preferences that are set.
- (NSDictionary<NSString*,id> *)dictionaryRepresentation
Return Value
A dictionary containing all keys and values.
Discussion
This does not include default values.
Declared In
HBPreferences.h
Registering Default Preference Values
defaults
The default preferences to be used when no value has been set by the user.
@property (nonatomic, copy, readonly) NSMutableDictionary<NSString*id> *defaults
Discussion
You may modify the values of this dictionary directly.
Declared In
HBPreferences.h
– registerDefaults:
Adds the contents of the specified dictionary to the defaults property.
- (void)registerDefaults:(NSDictionary<NSString*,id> *)defaultValues
Parameters
defaultValues |
The dictionary of keys and values you want to register. |
|---|
Discussion
Merges the provided dictionary with the mutable dictionary found on the
defaults property. Provided as a convenience for converting code from using
NSUserDefaults
.
See Also
Declared In
HBPreferences.h
– objectForKey:
Returns the object associated with the specified key.
- (id)objectForKey:(NSString *)key
Parameters
key |
The key for which to return the corresponding value. |
|---|
Return Value
The object associated with the specified key.
Discussion
If the preference is not yet set, returns the default. If no default is set,
returns nil
.
Warning: You must manually synchronize preferences or use registerObject:default:forKey: for this value to be updated when running on iOS 7 or older.
Declared In
HBPreferences.h
– integerForKey:
Returns the integer value associated with the specified key.
- (NSInteger)integerForKey:(NSString *)key
Parameters
key |
The key for which to return the corresponding value. |
|---|
Return Value
The integer value associated with the specified key.
Discussion
If the preference is not yet set, returns the default. If no default is set,
returns nil
.
See Also
Declared In
HBPreferences.h
– unsignedIntegerForKey:
Returns the unsigned integer value associated with the specified key.
- (NSUInteger)unsignedIntegerForKey:(NSString *)key
Parameters
key |
The key for which to return the corresponding value. |
|---|
Return Value
The unsigned integer value associated with the specified key.
Discussion
If the preference is not yet set, returns the default. If no default is set,
returns nil
.
See Also
Declared In
HBPreferences.h
– floatForKey:
Returns the floating-point value associated with the specified key.
- (CGFloat)floatForKey:(NSString *)key
Parameters
key |
The key for which to return the corresponding value. |
|---|
Return Value
The floating-point value associated with the specified key.
Discussion
If the preference is not yet set, returns the default. If no default is set,
returns nil
.
See Also
Declared In
HBPreferences.h
– doubleForKey:
Returns the double value associated with the specified key.
- (double)doubleForKey:(NSString *)key
Parameters
key |
The key for which to return the corresponding value. |
|---|
Return Value
The double value associated with the specified key.
Discussion
If the preference is not yet set, returns the default. If no default is set,
returns nil
.
See Also
Declared In
HBPreferences.h
– boolForKey:
Returns the Boolean value associated with the specified key.
- (BOOL)boolForKey:(NSString *)key
Parameters
key |
The key for which to return the corresponding value. |
|---|
Return Value
The Boolean value associated with the specified key.
Discussion
If the preference is not yet set, returns the default. If no default is set,
returns nil
.
See Also
Declared In
HBPreferences.h
– objectForKeyedSubscript:
Returns the value associated with a given key.
- (id)objectForKeyedSubscript:(id)key
Parameters
key |
The key for which to return the corresponding value. |
|---|
Return Value
The value associated with the specified key.
Discussion
This method behaves the same as objectForKey:.
See Also
Declared In
HBPreferences.h
– objectForKey:default:
Returns the object associated with the specified key, or if no user preference is set, the provided default.
- (id)objectForKey:(NSString *)key default:(nullable id)defaultValue
Parameters
key |
The key for which to return the corresponding value. |
|---|---|
defaultValue |
The default value to use when no user preference is set. |
Return Value
The object associated with the specified key, or the default value.
Declared In
HBPreferences.h
– integerForKey:default:
Returns the integer value associated with the specified key, or if no user preference is set, the provided default.
- (NSInteger)integerForKey:(NSString *)key default:(NSInteger)defaultValue
Parameters
key |
The key for which to return the corresponding value. |
|---|---|
defaultValue |
The default value to use when no user preference is set. |
Return Value
The integer value associated with the specified key, or the default value.
See Also
Declared In
HBPreferences.h
– unsignedIntegerForKey:default:
Returns the unsigned integer value associated with the specified key, or if no user preference is set, the provided default.
- (NSUInteger)unsignedIntegerForKey:(NSString *)key default:(NSUInteger)defaultValue
Parameters
key |
The key for which to return the corresponding value. |
|---|---|
defaultValue |
The default value to use when no user preference is set. |
Return Value
The unsigned integer value associated with the specified key, or the default value.
See Also
Declared In
HBPreferences.h
– floatForKey:default:
Returns the floating-point value associated with the specified key, or if no user preference is set, the provided default.
- (CGFloat)floatForKey:(NSString *)key default:(CGFloat)defaultValue
Parameters
key |
The key for which to return the corresponding value. |
|---|---|
defaultValue |
The default value to use when no user preference is set. |
Return Value
The floating-point value associated with the specified key, or the default value.
See Also
Declared In
HBPreferences.h
– doubleForKey:default:
Returns the double value associated with the specified key, or if no user preference is set, the provided default.
- (double)doubleForKey:(NSString *)key default:(double)defaultValue
Parameters
key |
The key for which to return the corresponding value. |
|---|---|
defaultValue |
The default value to use when no user preference is set. |
Return Value
The double value associated with the specified key, or the default value.
See Also
Declared In
HBPreferences.h
– boolForKey:default:
Returns the Boolean value associated with the specified key, or if no user preference is set, the provided default.
- (BOOL)boolForKey:(NSString *)key default:(BOOL)defaultValue
Parameters
key |
The key for which to return the corresponding value. |
|---|---|
defaultValue |
The default value to use when no user preference is set. |
Return Value
The Boolean value associated with the specified key, or the default value.
See Also
Declared In
HBPreferences.h
Setting Preference Values
– setObject:forKey:
Sets the value of the specified key.
- (void)setObject:(nullable id)value forKey:(NSString *)key
Parameters
value |
The object to store in the preferences. |
|---|---|
key |
The key with which to associate with the value. |
Discussion
You should only call these methods if you are certain that the process is
running as the mobile
user.
Exceptions
HBPreferencesNotMobileException |
Thrown when the method is called
by a process not running as the |
|---|
Declared In
HBPreferences.h
– setInteger:forKey:
Sets the value of the specified key to the specified integer value.
- (void)setInteger:(NSInteger)value forKey:(NSString *)key
Parameters
value |
The integer value to store in the preferences. |
|---|---|
key |
The key with which to associate with the value. |
Discussion
This is a convenience method that calls setObject:forKey:. See the discussion of that method for more details.
See Also
Declared In
HBPreferences.h
– setUnsignedInteger:forKey:
Sets the value of the specified key to the specified unsigned integer value.
- (void)setUnsignedInteger:(NSUInteger)value forKey:(NSString *)key
Parameters
value |
The unsigned integer value to store in the preferences. |
|---|---|
key |
The key with which to associate with the value. |
Discussion
This is a convenience method that calls setObject:forKey:. See the discussion of that method for more details.
See Also
Declared In
HBPreferences.h
– setFloat:forKey:
Sets the value of the specified key to the specified floating-point value.
- (void)setFloat:(CGFloat)value forKey:(NSString *)key
Parameters
value |
The floating-point value to store in the preferences. |
|---|---|
key |
The key with which to associate with the value. |
Discussion
This is a convenience method that calls setObject:forKey:. See the discussion of that method for more details.
See Also
Declared In
HBPreferences.h
– setDouble:forKey:
Sets the value of the specified key to the specified double value.
- (void)setDouble:(double)value forKey:(NSString *)key
Parameters
value |
The double value to store in the preferences. |
|---|---|
key |
The key with which to associate with the value. |
Discussion
This is a convenience method that calls setObject:forKey:. See the discussion of that method for more details.
See Also
Declared In
HBPreferences.h
– setBool:forKey:
Sets the value of the specified key to the specified Boolean value.
- (void)setBool:(BOOL)value forKey:(NSString *)key
Parameters
value |
The Boolean value to store in the preferences. |
|---|---|
key |
The key with which to associate with the value. |
Discussion
This is a convenience method that calls setObject:forKey:. See the discussion of that method for more details.
See Also
Declared In
HBPreferences.h
– setObject:forKeyedSubscript:
Sets the value of the specified key to the specified value.
- (void)setObject:(nullable id)object forKeyedSubscript:(id)key
Parameters
object |
The value to store in the preferences. |
|---|---|
key |
The key with which to associate with the value. |
Declared In
HBPreferences.h
Removing Preference Values
– removeObjectForKey:
Removes a given key and its associated value from the dictionary.
- (void)removeObjectForKey:(NSString *)key
Parameters
key |
The key to remove. |
|---|
Discussion
Blocks are called after HBPreferences’ cache of values is updated. The block will also be called immediately after calling this method. See registerObject:default:forKey: for details on how to set up callbacks.
Declared In
HBPreferences.h
– removeAllObjects
Removes all stored preferences.
- (void)removeAllObjects
Discussion
This method acts in the same way as discussed in removeObjectForKey:.
Declared In
HBPreferences.h
Registering Variables
– registerObject:default:forKey:
Register an object to be automatically set to the user’s preference.
- (void)registerObject:(_Nullable id __strong *_Nonnull)object default:(nullable id)defaultValue forKey:(NSString *)key
Parameters
object |
The pointer to the object. |
|---|---|
defaultValue |
The default value to be used if no user preference is set. |
key |
The key in the preferences property list. |
Discussion
If the preference is not yet set, the object will be set to the provided default.
You must post a Darwin notification after updating preferences for this to
work. In particular, it must be set to the value of identifier, followed by
/ReloadPrefs
- for instance, ws.hbang.common.demo/ReloadPrefs
. In a
Preferences specifier property list, you can use the PostNotification
key
on your specifiers to achieve this:
<dict>
...
<key>PostNotification</key>
<string>ws.hbang.common.demo/ReloadPrefs</string>
</dict>
See Also
Declared In
HBPreferences.h
– registerInteger:default:forKey:
Register an integer value to be automatically set to the user’s preference.
- (void)registerInteger:(NSInteger *)object default:(NSInteger)defaultValue forKey:(NSString *)key
Parameters
object |
The pointer to the integer. |
|---|---|
defaultValue |
The default value to be used if no user preference is set. |
key |
The key in the preferences property list. |
Discussion
If the preference is not yet set, the object will be set to the provided default.
See Also
Declared In
HBPreferences.h
– registerUnsignedInteger:default:forKey:
Register an unsigned integer value to be automatically set to the user’s preference.
- (void)registerUnsignedInteger:(NSUInteger *)object default:(NSUInteger)defaultValue forKey:(NSString *)key
Parameters
object |
The pointer to the unsigned integer. |
|---|---|
defaultValue |
The default value to be used if no user preference is set. |
key |
The key in the preferences property list. |
Discussion
If the preference is not yet set, the object will be set to the provided default.
See Also
Declared In
HBPreferences.h
– registerFloat:default:forKey:
Register a floating-point value to be automatically set to the user’s preference.
- (void)registerFloat:(CGFloat *)object default:(CGFloat)defaultValue forKey:(NSString *)key
Parameters
object |
The pointer to the integer. |
|---|---|
defaultValue |
The default value to be used if no user preference is set. |
key |
The key in the preferences property list. |
Discussion
If the preference is not yet set, the object will be set to the provided default.
See Also
Declared In
HBPreferences.h
– registerDouble:default:forKey:
Register a double value to be automatically set to the user’s preference.
- (void)registerDouble:(double *)object default:(double)defaultValue forKey:(NSString *)key
Parameters
object |
The pointer to the double. |
|---|---|
defaultValue |
The default value to be used if no user preference is set. |
key |
The key in the preferences property list. |
Discussion
If the preference is not yet set, the object will be set to the provided default.
See Also
Declared In
HBPreferences.h
– registerBool:default:forKey:
Register a Boolean value to be automatically set to the user’s preference.
- (void)registerBool:(BOOL *)object default:(BOOL)defaultValue forKey:(NSString *)key
Parameters
object |
The pointer to the Boolean. |
|---|---|
defaultValue |
The default value to be used if no user preference is set. |
key |
The key in the preferences property list. |
Discussion
If the preference is not yet set, the object will be set to the provided default.
See Also
Declared In
HBPreferences.h
Preference Change Callbacks
– registerPreferenceChangeBlock:
Register a block to be called when a preference change is detected.
- (void)registerPreferenceChangeBlock:(HBPreferencesChangeCallback)callback
Parameters
callback |
A block object called when the specified key’s value changes. The block object takes no parameters and returns no value. |
|---|
Discussion
Blocks are called after HBPreferences’ cache of values is updated. The block will also be called immediately after calling this method. See registerObject:default:forKey: for details on how to set up callbacks.
See Also
Declared In
HBPreferences.h
– registerPreferenceChangeBlock:forKey:
Register a block to be called when a specific preference is changed.
- (void)registerPreferenceChangeBlock:(HBPreferencesValueChangeCallback)callback forKey:(NSString *)key
Parameters
callback |
A block object called when the specified key’s value changes. The block object’s parameters are the key and its new value. |
|---|---|
key |
The key to listen for. |
Discussion
Blocks are called after HBPreferences’ cache of values is updated. The block will also be called immediately after calling this method. See registerObject:default:forKey: for details on how to set up callbacks.
See Also
Declared In
HBPreferences.h


Step 0) Get a domain name from NameCheap.
NameCheap This is a pretty great registrar and they don’t support LGBT hating causes like GoDaddy.
Step 1) Setup a Github Account and Organization.
It’s pretty simple - you signup, create an organization, and then create a new git repository under that github organization.
If this is truly your first time ever using github you’re going to have to create an ssh key-pair, which is used to authenticate you so you can push up your code.
Step 2) Start blogging locally with Hugo.
Hugo is a more modern, much faster, version of Jekyll.
The main advantage I see for using Hugo over Jekyll is that Hugo makes it much easier to build static websites that are not blogs, and you don’t need ruby to build website - you simply need a static Go binary.
Follow this introduction and within two minutes you should be well on your way to setting up a blog.
Side funny note: Don't use Wordpress, ever. Unless you want to pay to host it
with wordpress.com.  (Feel free to email and ask about this)
Step 3) Create an AWS Account.
AWS is a great way to serve up your website for pennies in the first year. You get a free tier.
But for now simply create a new account, and figure out away to get yourself some admin keys (AWS_ACCESS_KEY and AWS_SECRET_KEY) because you will need these to setup your AWS account to host this blog.
You will need to install aws-cli
in order to run aws configure
and maintain
your keys locally correctly. Please see the [Changin Times] entry from 04-15-2017.
Step 4) Use a Terraform script to setup your AWS account for the blog.
I built you out a simple Terraform script which you can use to create all the required things to host a website in S3.
I personally use us-west-2
, Oregon’s AWS region, because it is the cheapest and
you get all the shiny new products.
Here is the script:
provider "aws" {
access_key = "AWS_ACCESS_KEY"
secret_key = "AWS_SECRET_KEY"
region = "us-west-2"
}
variable "domain_name" {
default = "domain.com"
}
resource "aws_s3_bucket" "blog" {
bucket = "${var.domain_name}"
region = "us-west-2"
acl = "public-read"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::${var.domain_name}/*"
}]
}
EOF
website {
index_document = "index.html"
error_document = "error.html"
}
}
resource "aws_s3_bucket" "wwwblog" {
bucket = "www.${var.domain_name}"
region = "us-west-2"
acl = "public-read"
website {
redirect_all_requests_to = "${var.domain_name}"
}
}
resource "aws_route53_record" "blog" {
zone_id = "${aws_route53_zone.primary.zone_id}"
name = "${var.domain_name}"
type = "A"
alias {
name = "${aws_s3_bucket.blog.website_domain}"
zone_id = "${aws_s3_bucket.blog.hosted_zone_id}"
evaluate_target_health = true
}
}
resource "aws_iam_user" "blog_deploy" {
name = "${var.domain_name}_blog_deploy"
path = "/s3/"
}
resource "aws_iam_access_key" "blog_deploy" {
user = "${aws_iam_user.blog_deploy.name}"
}
resource "aws_iam_user_policy" "blog_deploy_rw" {
name = "${var.domain_name}_rw"
user = "${aws_iam_user.blog_deploy.name}"
policy = <<EOF
{
"Statement": [{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"
],
"Resource": "arn:aws:s3:::${var.domain_name}",
"Condition": {}
}, {
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectAclVersion"
],
"Resource": "arn:aws:s3:::${var.domain_name}/*",
"Condition": {}
}, {
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "*",
"Condition": {}
}]
}
EOF
}
Before you can use this you’ll need to substitute out AWS_ACCESS_KEY
,
AWS_SECRET_KEY
, and domain.com
with the appropriate values.
If you really are against using Terraform to setup this configuration you can of course always use the guide from Amazon directly.
Don’t worry, we’ll have more blogs about Terraform and other AWS + CM tools.
Step 5)
Step 6) Get a Travis CI account.
You might want to follow this guide to get your feet wet with Travis CI.
Step 7) Add a .travis.yml to your blog repository.
Here is a basic .travis.yml
you’ll want to use which will publish your blog
upon every push to your repository.
language: go
install: go get -v github.com/spf13/hugo
script:
- hugo
- python --version
- sudo pip install s3cmd
- s3cmd sync --delete-removed -P -M -r public/ s3://thehar.com/
notifications:
email:
on_failure: always
Then, as described here,
you will want to add the AWS_ACCESS_KEY
and AWS_SECRET_KEY
keys of the S3 user,
which was created via the Terraform script, as build environment variables in the
Travis CI project.
The keys can be found in the *.tfstate
file created when the Terraform script
was applied.
Note, we chose to use s3cmd because the provided Travis CI S3 deploy step doesn’t allow you to actually ‘sync’. Meaning if files are removed from your blog, their deploy step doesn’t remove them, and all files are always uploaded to the bucket, even if they haven’t changed, slowing down the deploy, and costing you money.


Steve's Utilities
By Stephen H
With Help From The
JΛS
Team
Home
Web pages
Games
Employ
Emojis
Downloads
About
Mobile Site
Old Site
JΛS Team Employment Form
Loading...
Orangey Employment Form
Loading...


MniObjParser is a parser of mniobj surface files. This version is an atempt of making a free from dependency independant module. It is based on the code witten by Nicolas Kassis and Tarek Sherif for BrainBrowser (https://brainbrowser.cbrain.mcgill.ca).
Since mniobj file can be huge, it may be a good idea to call that froma worker.
#_arrangeData
[PRIVATE] Rearange the data from _tempResult to _shapeData
[PRIVATE] Rearange the data from _tempResult to _shapeData
#_parseColors
[PRIVATE] Parse the color from the raw data.
[PRIVATE] Parse the color from the raw data.
#_parseEndIndices
[PRIVATE] Not sure how useful endIndices are, it was used in BrainBrowser so I kept them. (is that useful?)
[PRIVATE] Not sure how useful endIndices are, it was used in BrainBrowser so I kept them. (is that useful?)
#_parseIndices
[PRIVATE] Reads the vertices indices to use to make triangles.
[PRIVATE] Reads the vertices indices to use to make triangles.
#_parseNormals
[PRIVATE] Parse the normal vector from the raw data.
[PRIVATE] Parse the normal vector from the raw data.
#_parseRawData(objString)
Parse a obj string
Parse a obj string
String
objString
:
content of the obj file
#_parseSurfProp
[PRIVATE] Parse surface properties from the raw data.
[PRIVATE] Parse surface properties from the raw data.
#_parseVertices
[PRIVATE] Parse the vertices from the raw data.
[PRIVATE] Parse the vertices from the raw data.
#_popStack
[PRIVATE] pop the raw data (big string file)
[PRIVATE] pop the raw data (big string file)
String
#_unrollColors
[PRIVATE] From a single color, make a typed array (Uint8) of colors.
[PRIVATE] From a single color, make a typed array (Uint8) of colors.
#constructor
Constructor of the MniObjParser.
Constructor of the MniObjParser.
#copy(MniObjParserInstance)
Copy an existing MniObjParser instance. This is particularly usefull in the context of a worker, if an MniObjParser is returned, it is using a JSON format to transfer, meaning all the methods are lost and only remains the data. This is to rebuild a proper MniObjParser.
Copy an existing MniObjParser instance. This is particularly usefull in the context of a worker, if an MniObjParser is returned, it is using a JSON format to transfer, meaning all the methods are lost and only remains the data. This is to rebuild a proper MniObjParser.
MniObjParser
MniObjParserInstance
:
the instance to copy the data from.
#getErrorMessage
Get the error message if any
Get the error message if any
String
:
the error message, or null if any
#getRawColors
Get the colors encoded like [r, g, b, a, r, g, b, a, ...]

Float32Array
:
of size 4 or of size 4xnumOfVertices
#getRawNormals
Returns the normal vectors as a typed array.
Returns the normal vectors as a typed array.
Float32Array
:
of normal vector encoded like [x, y, z, x, y, z, ...]
#getRawVertices
Returns the vertice position as a typed array.
Returns the vertice position as a typed array.
Float32Array
:
of points encoded like [x, y, z, x, y, z, ...]
#getShapeData
[DEBUGGING]
[DEBUGGING]
Object
:
the entire shapeData object.
#getShapeRawIndices
Returns the index of vertices to be used to make triangles, as a typed array.
Returns the index of vertices to be used to make triangles, as a typed array.
Uint32Array
:
Since triangles have 3 vertices, the array contains index such as [i0, i1, i2, i0, i1, i2, ...].
#getSurfaceProperties
The surface properties contains transparency info about specularity transparency and other nice light-related behaviour thingies. May be used when building a material, but this is not mandatory.
The surface properties contains transparency info about specularity transparency and other nice light-related behaviour thingies. May be used when building a material, but this is not mandatory.
Object
#getType
Get the type of mesh.
Get the type of mesh.
String
:
"polygon" or "line"
#isLine
Get wether of not the output is a line type
Get wether of not the output is a line type
Boolean
#isPolygon
Get wether of not the output is a 3D polygon type
Get wether of not the output is a 3D polygon type
Boolean
#isValid
Get if the file is valid, after an atempt of parsing
Get if the file is valid, after an atempt of parsing
Boolean
:
true if valid, false if invalid
#parse(objString)
Parse the nmiobj string.
Parse the nmiobj string.
String
objString
:
This string is obviously taken out of a obj file