General discussion about Komodo. For useful links and more info click the pinned messages to the right. DON'T DM @jl777
100 messages
Before 05-Dec-19 12:00 AM
gigamesh08-Sep-19 11:07 AM
@ComputerGenie 👴👴👴 Permit me to clear a few things up:
1. If you think that me "begging" as you call it is easy, it isn't. Coming on bended knee and encouraging people to tip you is not an enjoyable pastime.
2. If I wasn't persistent I would get much less by way of tips
3. I have never known (with one exception) what bounty I would receive for my longer format reviews before I publish them. I ask the client to pay what they think it deserves.
4. I am not remunerated in any way for shorter format articles like the one in question, save for community tipping
5. The state of crypto-journalism is a total mess since 90% of all content is cheerleading puff pieces sponsored by the project they review
6. You making comments like "encourages but doesn't tip" is entirely unhelpful, and comparing me to a beggar is a foul and malicious insult.
ComputerGenie 👴👴👴08-Sep-19 11:12 AM
I ask the client to pay what they think it deserves.
Then whatever you got should be sufficient.
You making comments like "encourages but doesn't tip" is entirely unhelpful
Your unedited comment was "encourage me and tip me".
I don't tip writers, but offered encouragement, I can't help that you're offended by encouragement
and comparing me to a beggar is a foul and malicious insult.

4. I am not remunerated in any way for shorter format articles like the one in question, save for community tipping
ComputerGenie 👴👴👴08-Sep-19 11:14 AM
You can continue to take this personally and we can go on until someone bans one/both of us or you can accept that I offered encouragement and found mutiple requests for funds from the community to be uncouth
gigamesh08-Sep-19 11:15 AM
Youre an NN operator right?(edited)
ComputerGenie 👴👴👴08-Sep-19 11:15 AM
and that has what to do with what?
gigamesh08-Sep-19 11:18 AM
1. you provide a service for which you are paid? 2. you look for community support in the form of votes during elections, yes?
that you are in fact akin to a crypto-politician?
trying to win a popularity contest?
yet you call me beggar?
ComputerGenie 👴👴👴08-Sep-19 11:20 AM
you look for community support in the form of votes during elections, yes?
Did you actually see any of my vote solicitations? They were ludicrous. Do you think I took that spam process seriously? If so, then you might want to scroll back to the plethora of comments I made about it last year.(edited)
gigamesh08-Sep-19 11:21 AM
the fact remains crypto-journalism is in a poor state and sponsored arttcles dont help "truth". If you have a better solution for remuneration by all means DM me
ComputerGenie 👴👴👴08-Sep-19 11:22 AM
trying to win a popularity contest?
 If so, how dafuq did you come up with that silly idea?
gigamesh08-Sep-19 11:23 AM
you play the surly miserable yet affable `blank` - it works for you
anyway ive wasted enough time arguing with you. still cant believ you trolled me
ComputerGenie 👴👴👴08-Sep-19 11:25 AM
you play the
I ain't playin' fekall
This is who I am
still cant believ you trolled me
having mentioned me in your solicitation, you might want to rethink who trolled whom(edited)
mrtzmp308-Sep-19 11:40 AM
Sirs
ComputerGenie 👴👴👴08-Sep-19 11:44 AM
It's 2 barely paragraphs, 2 quotes, and 3 "borrowed" images
Fek me, it's not like he broke open the Watergate scandal
mrtzmp308-Sep-19 11:47 AM
HahahaA
You guys crack me up
I click this link and binance froze and shows now only the word ,,penis,,
Thx for virus
@Deleted User
In better hands
Lol
2
ComputerGenie 👴👴👴08-Sep-19 11:56 AM
@Deleted User Let me ask you this:
Other than the single sentence about the "borrowed" phone app screenshots (and swapping the words "RICK and "MORTY" for "BEER" and "PIZZA"), what' in there that's "journalism" (more specifically that wouldn't actually be better if it were a copy/paste article about BarterDEX over a year ago)?(edited)
There's literally multiples more words defending asking for coinage for the article than the article contains
gunner37508-Sep-19 11:59 AM
Hey everyone, I just came across Block DX for the first time today, an atomic swap dex from Blocknet. Does anything know of an article or comparison of it vs AtomicDex? Would be interesting to see the differences, pros and cons of each..
2
ComputerGenie 👴👴👴08-Sep-19 11:59 AM
The new needs friends
I'm asking as a reader:
Other than the phone app, what's different about it than the entire time I've been a member of the community?
According to that article, like nothing (edited)
gunner37508-Sep-19 12:01 PM
it's a genuine question
Big fan of KMD and AtomicDex
mrtzmp308-Sep-19 12:04 PM
@gunner375 good idea can you do it
gunner37508-Sep-19 12:04 PM
One big difference I can already see is that Block Dex don't have an android / iOs app
mrtzmp308-Sep-19 12:04 PM
We won't tip tho
ComputerGenie 👴👴👴08-Sep-19 12:04 PM
is there any package in the npm basket that block-dx doesn't use?
mrtzmp308-Sep-19 12:05 PM
Oh shit
ComputerGenie 👴👴👴08-Sep-19 12:06 PM
i didn't understand your question.
You said "the new needs friends", I'm saying that that article tells me nothing of the new
If I read that as a non-active community member, I'd merely think it was a shill for the phone app and that nothing else is new(edited)
SHossain08-Sep-19 12:07 PM
another day in Komodo discord
1
1
ComputerGenie 👴👴👴08-Sep-19 12:08 PM
then let him earn it like the rest of us
was new once, and took his share of lumps in the process(edited)
1
1
Having had a prominent member, literally, announce publicly at one point that he refused to work with me on any project ever, I find it a little difficult to find sympathy in this conversation
I offered my encouragement and somehow that was offensive
fwiw, I've gotten tips and prizes here and there but have only ever actually gotten paid directly for 1 thing the entire time I've been here. So, it's not like I'm without empathy
don't confuse sympathy and empathy...
1
1
1
KMD TipBotBOT08-Sep-19 12:27 PM
TipBot
@Unknown (Emmanuel#5426)
You tipped @gigamesh5 KMD
ComputerGenie 👴👴👴08-Sep-19 12:33 PM
since we're around the subject, is there a GUI for folks with adult sized PCs?
1
1
for the new dex
KMD TipBotBOT08-Sep-19 01:04 PM
TipBot
@Unknown (Emmanuel#5426)
You tipped @ComputerGenie 👴👴👴7.77 KMD
ComputerGenie 👴👴👴08-Sep-19 01:05 PM
tnks
1
DP will likely be added to chickenpool long before I had expected, I'm in the process of consolidating and updating all of my poos to the same base code (this coming week freed up unexpectedly)
1
1
gigamesh08-Sep-19 01:47 PM
It's 2 barely paragraphs, 2 quotes, and 3 "borrowed" images
@ComputerGenie 👴👴👴
If those paragraphs had appeared in this Washington Post technology section (assuming there is such a thing) would you still make that remark? Perhaps. I take your point but short format with key info and links to the app is also of service. Instead it appeared on a popular crypto news network. I have no idea how many engagements or impressions TDC got or how many people linked to the app from the story. But I do know that tweet I made from my account of only 250 followers managed this (updated): https://i.imgur.com/wm9aABY.png(edited)
1
ComputerGenie 👴👴👴08-Sep-19 01:49 PM
would you still make that remark? Yes!
I care not where it posts or who posts it, that which I find lacking in content is that which I find lacking in content
gigamesh08-Sep-19 01:50 PM
anyway Im still working out how to make money from from this writing gig (without becoming a horrible shill), and Id like to continue. bare with me while I feel my way through. never heard of begware before - cant say i care for the term much! As I said before I am open to suggestions(edited)
1
ComputerGenie 👴👴👴08-Sep-19 01:55 PM
Im still working out how to make money from from this writing gig,
Step 1) Don't take comments, rejections, and/or dislikes personally
Step 2) Create content that fully informs users (the use of some external links is good, but fully engage the reader and shy away from having it feel like an ad)
Step 3) Have patience and followers will come if you follow the above steps(edited)
A #KMD #cryptopuzzle for @KomodoPlatform users or any crypto users out there. There is 7.77 KMD available in this address R9zY5Uk3CUHZRtbiy43WXWN6pQVNvDz7BW. Find the seed from this #AtomicDEX Mobile article https://t.co/L9HY5h9wH5
1
Decker08-Sep-19 04:25 PM
There is additional 7.77777777 KMD sent to puzzle above ) So, now reward is more than just 7.77 )
@techloverhd @KomodoPlatform @0xca333 @gordonkomodo @satindergrewal @MrKomodoWorld @HyperDEXApp @KMD_Platform_ES @ru_komodo @DeckerSu It was me But now the Balance is 25 $KMD and 250 $HUSH RTwM8z3ssWEoJhvXD7asU32GdUatxKgK5g Can someone help me to find the Seed ...
2
#Seedchallange
SHossain08-Sep-19 05:57 PM
It would be interesting to see who will be the next winner for even bigger pot
1
ComputerGenie 👴👴👴08-Sep-19 06:13 PM
if only there were a channel just for this sort of thing, maybe even called #cryptopuzzle
SHossain08-Sep-19 06:19 PM
@ComputerGenie 👴👴👴 retweet
maybe the next solver can put more funds with a different harder puzzle and let the contest continue
Latest preview of $HUSH SilentDragon Android!
A full node remote control in your pocket.
https://t.co/Vvdm0YRrai
gigamesh09-Sep-19 10:16 AM
Yesterday I had a dispute with a community member, an NN operator, who gave me a hard time. He compared me with a beggar and then had the temerity to have a dig about my atomicDEX article in TDC being short, and thus unworthy of recognition.
I come back here today to inform you that the anger this community member caused me has been fuelled in a creative way. I noted that @KomodoPlatform on twitter got 90 RT's for its atomicDEX public beta tweet, and that mine was lagging behind with 58 RT's.
I added a 100 ARRR bounty if I could garner 100 RT's. That target should be met shortly and in the meantime I am proud to say my tweet has now exceeded the official Komodo twitter account in terms of RT and Likes. I out-Komodo'ed KOMODO.
I did not come here today to "beg". I came here to run my victory lap and to send a message.https://twitter.com/ggmesh/status/1170101983090565121https://i.imgur.com/rZSwFrG.png(edited)
"Komodo’s Long-Anticipated AtomicDEX Goes Public Beta"
@KomodoPlatform
"The Holy Grail of the industry" is here
$BTC $BCH $KMD $QTUM $RVN $DASH $DGB $BAT $VRSC $ZILLA $ETH $LTC $USDC $BAT $RFOX $DOGE all supported at launch!
https://t.co/DlI4A9HN1O
Likes
191
@Deleted User I hope this pleases you
Daniel CP09-Sep-19 10:21 AM
Thanks a bunch for the support and help with marketing @gigamesh
It is appreciated
Although I don't think this gloating is warranted. Komodo retweeted your tweet, which is how it got so much exposure in the first place
The metrics are nearly identical(edited)
I guess what I'm trying to say is, we are all on the same team here. No need for this sort of comparing and bragging(edited)
1
gigamesh09-Sep-19 10:25 AM
I will run my victory lap. it would be rude to not allow me my 15 minutes int the sun (edited)
PTYX09-Sep-19 10:25 AM
Run it in silence please.
1
gigamesh09-Sep-19 10:29 AM
@PTYX I rather feel that defeats the purpose of a 'victory lap'. I turned my anger to something positive. that is a good thing.
I will have the good grace to thank Genie for making me angry and fueling this.


UseTIFFImageDecoder()
Syntax
UseTIFFImageDecoder()Description
Enables the TIFF image support for the CatchImage(), LoadImage(), CatchSprite() and LoadSprite() functions.
Parameters
None.
Return value
None.
Remarks
The TIFF format is very complex and internally supports several sub-compression formats such as: JPEG, LZW, etc. All forms of the TIFF format are supported, using this format will result in programs which are quite large.
See Also
LoadImage(), CatchImage(), LoadSprite(), CatchSprite()
Supported OS
All


Gestures in ConnectBot allow a user to do several things for which there's no keyboard equivalent. If the gestures seem backward, then imagine that you're grabbing the text and moving it with your finger.
Swiping your finger up and down on the left third of the screen will send a page up and page down key to the remote host. Many programs map this to scrolling back into history such as irssi or tinyfugue.
Page Up gesture
Page Down gesture
Swiping your finger up on the right side of the screen allows you to scroll backward and forward in the local terminal buffer history.
Scroll back gesture
Scroll forward gesture
Swiping your finger from one side of the screen to the other will switch between currently connected hosts.
Previous host gesture
Next host gesture


#crumbname_districts
{crumbname_districts_text}
#view_districts
{view_head}
{beige}
{main_head}
{districts_head}
{table_districts}
{districts_data_description}
{main_datainvestigators}
{view_tail}
#districts_data_description
{districts_data_description_title_text}
{districts_data_description_text}
{read_more_text}
#districts_head
Where does the money go to (Geography)?
#table_districts
{table_districts_row_head}
{table_districts_rows}
#table_districts_rows
{table_districts_row}
#table_districts_row_head
|
TRANSACTIONS |
BUDGET |
| DISTRICT |
2012 |
2013 |
2014 |
2014 |
2015 |
#table_districts_row
| {location} |
{t2012} |
{t2013} |
{t2014} |
{b2014} |
{b2015} |


Presents a keypad with from 4 to 16 buttons. There are two outputs. The bus output (top) is the most recently pressed button value. The clock output (bottom) is true when the button is pressed.
When configured as a Phone keypad, the * key outputs a value of 10 (0xa) and the # key outputs a value of 11 (0xb).
The bus output is configured as 4 bits for the 16 button, 10 button, and phone configurations, 3 bits for the 8 button configuration, and 2 bits for the 4 button configuration.


You do not need to know what data structures are used to store objects and classes; understanding them can make programming GEOS much easier, however.
Each object is implemented in two parts: the instance data chunk and the class definition. Although both are integral parts of the object and they are interconnected, they are stored in different places.
An object's instance data is stored in an instance chunk. This instance chunk is sometimes referred to as the object itself, but this isn't quite accurate--the instance chunk contains only the object's data along with a pointer to its class structure. The structure of the instance chunk is given in Instance Chunk Structures .
An object's class structure contains all the code for the class. Since the class code may be accessed by many objects, the class definition resides in a geode's fixed memory resource. Every class (except the root,
MetaClass
) has a pointer to its superclass so it can inherit that class' methods and structures.
All objects of a given class use the same code--the class' code--for their functions. They dynamically access this code so the code blocks need to be in memory only once, no matter how many objects are actively using them. Additionally, each class dynamically accesses its superclass' code, so any class may be accessed by all the objects of the subclasses as well. Class structures are shown in Class Structure and Class Trees .
Each object's instance data is stored in a Local Memory chunk. Several chunks are stored in one memory block, called a local memory heap. (See the Local Memory chapter.) This local memory heap, containing objects, is known as an object block .
Each object block has a special header type that distinguishes it from normal local memory heaps. After the header in the block is the chunk handle table: a table containing offsets to each object in the block. Following the chunk handle table are the objects.
Each object is referenced by an object pointer, or optr. The optr contains two items: the global memory handle of the object block and the chunk handle of the object. Note that because the optr is made up of handles, an object must be locked before its instance data can be accessed. The GEOS kernel takes care of this automatically when executing methods.
Only the object's instance data is stored in the chunk pointed to by the optr; the method table and code used by the object are stored in the class' data structures, not the object's. To reconcile this separation of code and data, every object's first four bytes of instance data are a pointer to the object's class definition. This pointer is traversed by the kernel automatically and should not be altered or accessed by applications.
Included in an object's instance chunk are certain fields generated and filled by either Goc or the kernel. Following these fields is the object's instance data, grouped by master part. It's unlikely you'll ever have to know the actual structures used in the instance chunk because the kernel automatically calculates the proper offsets to individual instance data fields. However, understanding the underlying structures may help in understanding how the object system of GEOS works.
Instance data within an instance chunk is stored in "master parts" or "master groups." A master group is simply a number of instance data fields grouped according to their appropriate master class levels. Master classes are detailed in Master Classes .
A class designated as a master class resembles a normal class in all respects save one: it determines how instance data is grouped in a chunk. Each master class is the head of a class subtree; all the classes below it in the class tree (down to the next master class) are considered to be in that master class' group. Instance data for all classes in the master group are lumped together in the instance chunk; each master group's instance data within the chunk is accessed via a special offset stored within the chunk.
The first four bytes of an object's chunk contain a pointer to the object's class structure. The class structure (described in Class Structure and Class Trees ) resides in fixed memory. (A variant-class object has a slightly different structure; this is detailed in Variant Classes .)
An object that has no master classes in its class ancestry (unusual) has its instance data directly following its class pointer. Objects belonging to master classes or their subclasses, however, are somewhat more complex. This distinction can be mostly ignored by application and library programmers (with the exception of deciding which classes should be master classes and which should not).
Each master part of the chunk is located by an offset inserted directly after the object's class pointer in the chunk. The position of the word containing this offset is then stored in the master class structure so the class can find its instance data later. The combination of the class pointer and the various master offsets make up the object's "base structure." When a typical object is instantiated, the base structure is all that is created.
Each master part is left unallocated (for efficiency) until it is first accessed via a message sent to a class in the master group. When a class in the master group receives its first message, the entire master part of the chunk is allocated and initialized. This means that an object's chunk remains as small as possible until it absolutely must grow larger. Some classes even detect when a master part of the object will no longer be needed and actually remove (shrink to zero) the unwanted instance data from the chunk (
GenClass
does this by shrinking the Vis master part to zero size when a gadget is taken off the screen).
Any object may have "variable data" instance data fields; these are fields that may be added or removed dynamically to keep from having unused space in the instance chunk. Generic UI hints are "variable data" (also called vardata )--if an object has the hint, it appears in its instance chunk, if the object does not have the hint, the chunk does not have unused space in it.
Vardata entries are stored all together at the end of the instance chunk, regardless of their master groups. An object with two master groups and three variable data fields, for example, would look like that shown in the figure below. Variable data and its use are discussed in full in Defining and Working With Variable Data Fields .
A master class provides a conceptual break between levels within a class tree. Each master class is the head of a class subtree, and all its subclasses are considered to be in its "master group."
The purpose of making a class a master class is to separate its instance data from that of its superclass. Each master group's instance data is lumped together in one section of the object's instance chunk and is not initialized until a class in the master group is accessed. The initialization (allocation of extra memory within the instance chunk) occurs automatically.
As shown in the figures below, an object of
RookClass
would have an instance chunk with two master groups, one for the
PieceClass
master class and one for the
GamePcClass
master class. The first of the two master parts represents the instance data for
PieceClass
only; the second master part represents the object's instance data for all of
GamePcClass
,
ChessClass
, and
RookClass
.
The functionality of master classes is required to implement GEOS variant classes (see Variant Classes ). A variant class allows a single class to have a version of "multiple inheritance" in that it can have different superclasses depending on the system context.
For the most part, you won't ever need or want to know the internal structure of a class as implemented in memory. The class structure is created and partially filled by the Goc preprocessor and Glue linker; the remainder is filled by the kernel when the class is loaded. It's unlikely you will need to know the actual class structures; you won't ever have to manually build a class unless your program dynamically creates it (not a common procedure for typical applications).
This section will describe how the class is implemented and how class trees are structured and managed. However, it will not discuss creating new classes during execution.
Classes are implemented with special data structures and code blocks. Each class is defined within and exported by a particular geode; when the geode is loaded the class definition and its code are loaded into the geode's fixed memory. All references to the class are then relocated by the kernel into pointers. For example, if a class is defined by a library, that library's "core block" (the special information kept about it by the kernel) contains an absolute pointer to the class' definition in a fixed memory resource owned by the library. Any applications then using that class load the library. The kernel examines the library's core block for the proper pointer and uses it each time the application references that class.
Because of this, each class is loaded into memory just once; all objects that use the class use the same class structure and code. Each object has a pointer in its instance chunk directly to the class structure; each class contains a pointer to its superclass' class structure. Using these pointers, the kernel can travel up an object's class tree to access any appropriate code.
A class is a combination of data structure and code. The data structure (
ClassStruct
) contains information about the class, its superclass, its methods, and the structure and size of its instance data. The code consists of methods (message handlers). A diagram of the data structure is given below.
Every class has as its first four bytes a pointer to its superclass. This points to the superclass'
ClassStruct
structure in all cases except two: The root of any class tree has a null superclass pointer, indicating that the root has no superclass.
Variant classes have the integer 1 (one) always, indicating that the superclass is determined in a special manner. For more information on variant classes, see Variant Classes
.
Class trees are constructed when classes are defined; a new class is created as the subclass of some existing class, and its
Class_superClass
pointer is automatically set to point to the superclass. There is no need to point down the tree; messages are always passed to superclasses and never to subclasses.
Class_masterOffset
stores the offset indicating how far into the instance chunk the object's offset to this class' master part is. Note that use of this offset is entirely internal; individual classes do not have to figure out where their instance data is within the chunk (they may, however, have to know what master level each class is).
The master offset is used primarily because an object can have some of its master parts initialized and others uninitialized. If only one master part of the object had been initialized, the location of the instance data in the chunk may be different than if all master parts had been initialized.
Class_methodCount
stores the total number of methods referenced in the class' method table. This is the total number of methods defined for this class only; other methods defined in other classes (even in the same master group) are stored in the method tables of those classes.
Class_instanceSize
holds the number of bytes to be allocated whenever an object of this class is instantiated. If the class is a master class or a subclass of a master class, this is the size of the master part. If the class has no master class above it, this is the number of bytes to allocate for the entire object (including superclass pointer).
Class_vdRelocTable
is a near pointer (16 bit offset) to the variable-data relocation information. The relocation information contains the type of relocation to be done for each data type. There is one entry in the variable data relocation table for each relocatable field in each particular variable-data type. Variable data (also called
vardata
) is described in full in Defining and Working With Variable Data Fields
.
Class_relocTable
is a near pointer (16 bit offset) to the relocation information for the non-variable data instance fields of the class. The relocation information contains the type of relocation done for each relocatable instance field (other than variable-data entries). A relocatable instance field is one which must be updated when the object is loaded--pointers, offsets, etc. The entry in the relocation table is defined with the
@reloc
keyword, described on @reloc <iname>, [(<count>, <struct>)] <ptrType>;
.
Class_flags
contains seven flags (shown below) that determine the characteristics of the class. Declarers for these flags are used in the
@classdecl
declaration (see Defining a New Class or Subclass
).
hasDefault
.
master
.
variant
(all variants must also be declared as masters).
discardOnSave
.
neverSaved
.
hasReloc
.
Class_masterMessages
contains a number of flags set by Goc indicating whether this class has methods for messages defined within a given master level. It is used to optimize the search for a method to handle a message. These flags are internal and should not be used by programmers.
Every class has a method table, a table that indicates the location of the code to be executed when a certain message is received. The method table is in three parts and begins at the byte labelled
Class_methodTable
(this is simply a label, not a specific data field).
The first part of the method table is a list of messages the class can handle. Each entry in this list is two bytes and contains the message number of a message handled by the class.
The second part of the method table is a list of pointers to methods. Each entry in this list is a pointer (four bytes) which points to a specific routine in a code block. If the code is in a fixed block, the pointer will be a far pointer; if the code is in a moveable or discardable block, the pointer will be a far pointer containing a virtual segment . (A virtual segment, something you do not need to know about, is a handle shifted right four bits with the top four bits set. Since this represents an illegal segment address, GEOS recognizes it as a virtual segment and will take the necessary actions to lock the block into memory before access and unlock it after access. Manipulation of the bits in the virtual segment is completely internal to GEOS.)
The kernel searches the message list until it comes across the appropriate message number and notes the message's position in the table. It then looks at the corresponding position in the pointer list. If the pointer there is a virtual segment and offset, it will load the appropriate code block, lock it, and execute the code. If the pointer points to fixed memory, the code will be executed immediately. (If the message number is not found in the table, the kernel will either execute the class' default handler or pass the message on to the class' superclass.)
A variant class is one which has no set superclass. The variant's superclass is determined at run-time based on context and other criteria. Note that
objects
may not be variant--only classes may be variant. An object always has a specific class to which it belongs, and its class pointer
always
points to that class'
ClassStruct
structure. In addition, every variant class
must
also be a master class.
A variant class, however, may have different superclasses at different times. This functionality provides a form of "multiple inheritance": the class may inherit the instance data and functions of different classes depending on its attributes and desired features. Note, however, that a variant class may have only one superclass at any given moment.
The most visible example of a variant class is
GenClass
and how a generic object is resolved into its specific UI's appropriate representation. Each generic object (for example, a GenTrigger), is a subclass of the master class
GenClass
. All the instance data belonging to
GenTriggerClass
and
GenClass
, therefore, is stored in the Gen master part of the instance chunk.
GenClass
, however, is a variant class, meaning that it does not know its superclass when the object is instantiated. Each generic object's class will be linked directly to another class provided by the specific UI in use: the specific UI's class provides the visual representation while the generic UI class provides the object's functionality. In this way, the object can actually perform many of its generic functions without having a visual representation.
The resolution of the superclass comes when the generic object is displayed on the screen: the kernel sees that the object has no superclass and looks into its instance data and class structure. The kernel then determines what the appropriate specific UI class will be for the object's class and provides the superclass link necessary. It also then initializes the superclass' master part of the object (in this case, the master part belonging to
VisClass
), updating all the master part offsets in the instance chunk's master offset fields.
You can see from the above discussion that
GenClass
must know at least something about its potential superclasses. In fact, all variant classes must know at least the topmost class of all its potential superclasses. The definition of
GenClass
is
@class GenClass, VisClass, master, variant;
The
@class
keyword declares the new class,
GenClass
.
GenClass
is to be a variant class and therefore must also be a master class. All the superclasses of
GenClass
will be related to
VisClass
; this means that all specific UI classes which may act as Gen's superclass must be subclassed from
VisClass
. (Another way of looking at the definition is that
GenClass
is an
eventual
subclass of
VisClass
--you have no way of knowing beforehand how many class layers may be between the two, however.)
The variant must specify an eventual superclass so the kernel knows how many master offset fields it must allocate when an instance of the variant is created. For example, a GenTrigger has two master groups: that of
GenClass
, and that of
VisClass
. Because the
GenClass
master group is necessarily below the
VisClass
master group in the class hierarchy (after the superclass link has been resolved), the
GenClass
master offset in the instance chunk must be after the
VisClass
master offset. If the definition did not specify
VisClass
as an eventual superclass, no master offset field would be allocated for it, and the
Class_masterOffset
field of
GenClass
' Class structure would not be able to hold any particular value.
As stated at the beginning of this section, there are no "variant objects." Every object belongs to a specific class, and the object's class can never change. All instances of a variant class, however, can be resolved to different superclasses due to the way the superclass of each variant is resolved. One example of this is the generic-to-specific mapping of the GenInteraction object.
All GenInteractions are of class
GenInteractionClass
; this never changes.
GenInteractionClass
, however, is a subclass of
GenClass
, a variant class. This means that the class tree of the GenInteraction object is only partially completed; before the GenInteraction is resolved, it looks like the simplified diagram below.
The GenInteraction object may be resolved into one of several different specific UI classes. For example, the
motif.geo
library has several classes for GenInteractions; among them are the classes that implement menus, dialog boxes, and grouping interactions. These classes are all specialized subclasses of
VisClass
, the eventual superclass of
GenClass
.
The class tree of the GenInteraction is not complete. A class tree must have links all the way back to
MetaClass
for it to be complete; this only goes to
GenClass
.
GenClass
has a special value in its
Class_superClass
field, 0001h:0000h. This represents a reserved "pointer" that indicates to the kernel that the class is a master class.
The superclass of the variant can be different for every instance because the superclass pointer is actually stored in the object's instance chunk rather than in the class'
ClassStruct
structure. This also allows a class tree to have more than one variant class in its hierarchy; for example, one variant could be resolved to be the subclass of another variant. The tree must always be headed by
MetaClass
.
The superclass pointer for the variant is stored in the variant's master group instance data. Not all master groups have superclass pointers; only those for variant classes. After the GenInteraction is resolved, the pointer (the first four bytes of the Gen master part) points to the proper superclass for this object (in this case,
OLMenuWinClass
). The object, with its full class tree, is shown in the figure above.
This section gives an example of a GenTrigger object after its variant part has been resolved. This example provides in-depth diagrams of the class and instance structures for those programmers who wish to understand them. There is no need to know them, however; you will not likely ever need to access the internals of either a class structure or an instance structure.
The GenTrigger taken as an example is the "New Game" trigger of the TicTac sample application. This trigger is the only child of the Game menu GenInteraction; it is shown below. The code defining the trigger is given in TicTac's New Game Trigger .
Code Display 5-4 TicTac's New Game Trigger
/* The TicTacNewTrigger has a moniker and an output. All its other instance data * is set to the GenClass defaults. The content of these fields is not important * for this example, however. */
@object GenTriggerClass TicTacNewTrigger = { GI_visMoniker = "New Game"; GTI_destination = TicTacBoard; /* Send the action message to the * TicTac game board object. */ GTI_actionMsg = MSG_TICTAC_NEW_GAME; /* The action message. */ }
The GenTrigger object has two master parts, just like the GenInteraction object shown in Variant Classes
: the Gen master part holds the instance data for
GenClass
and
GenTriggerClass
. The Vis master part holds the instance data for
VisClass
and
OLButtonClass
. The
MetaClass
instance data consists only of the object's class pointer and has no master part.
The trigger's instance chunk's basic structure consists of the class pointer (four bytes) followed by two words of offset into the chunk. The first offset gives the location of the Vis master part, and the second gives the location of the Gen master part. After the offsets are the master parts themselves, and if the trigger had any variable data, it would appear at the end of the chunk.
Each master part has the master class' instance fields first, followed by those of its subclasses. All the fields that belong to
VisClass
begin VI_..., all those that belong to
OLButtonClass
begin OLBI_..., etc.
Notice also the first four bytes of the Gen master part: they contain a pointer to the "superclass" of
GenClass
for the trigger. Although the trigger typically does not have different forms in any given specific UI (as the GenInteraction does), it will have a different class for each specific UI it encounters. For example, the OSF/Motif class is
OLButtonClass
; another specific UI will use a different class for GenTriggers.
Since
GenClass
is a variant, it has a superclass pointer of 0001h:0000h. This special value (with an illegal segment address) indicates to the kernel that this object's
GenClass
superclass is stored in the instance chunk itself. The superclass is stored in the first four bytes of the Gen master part, as shown in the previous section.
Because all classes have the same class structure, only
GenTriggerClass
will be examined here. The class structure and the instance chunk structure are closely linked in several ways.
As shown in the diagram, the instance chunk points directly to the class. The class points to its superclass, thereby providing inheritance of all the methods and structures of classes higher in the class tree such as
GenClass
.
The class structure contains some information about the instance chunk's format, specifically
Class_masterOffset
and
Class_instanceSize
.
Class_masterOffset
gives the offset into the instance chunk where the offset to the master part is stored.
Class_instanceSize
contains the size of the master part so the kernel can quickly allocate the needed space when the master part is initialized.
The method table resides at the end of the class, and it has entries for each message handled by the class.
GenTriggerClass
handles seven messages (stored in
Class_methodCount
); any message received by this trigger and not recognized by
GenTriggerClass
is passed up the class tree for handling. Thus, a MSG_GEN_SET_NOT_ENABLED sent to the trigger will be passed on to
GenClass
and will be handled there.
The method table has two parts: The first part is a listing of message numbers, and the second part is a listing of pointers to the method code. When the object receives a message, the kernel scans the first part to see if the class handles the message. If it does, the kernel then scans the second part of the table to get the pointer to the code. It then executes the code there as if that code were a function called by the object's code.
Most aspects of messages and messaging are described in the following section. This section, however, describes how the kernel finds and executes the code when a message is sent to the GenTrigger. The message is
MSG_GEN_SET_USABLE
(handled by
GenClass
).
Messages are sent directly to an object using its optr.  Since the object's optr uniquely identifies the location of the object's instance chunk in memory, the kernel can quickly access the code for the handler.
When
MSG_GEN_SET_USABLE
is sent to the TicTacNewTrigger, for example, the kernel looks in the object's instance chunk for its class pointer. It follows this pointer and then looks in
GenTriggerClass
'
ClassStruct
structure. It scans the first part of the class' method table for
MSG_GEN_SET_USABLE
. If the message is not there (and it isn't), the kernel will then follow the class'
Class_superClass
pointer and look in
GenClass
'
ClassStruct
structure. It then scans the first part of
GenClass
' method table for the message.
GenClass
has an entry for
MSG_GEN_SET_USABLE
, and therefore the kernel checks the second part of the method table for the code pointer. It follows this pointer to the method's entry point and begins executing the code there.


An increasingly popular summer tourist destination, especially for the "gulet" trips to Phaselis and Olympus.
This is a good port to use for airport transfer.
For the full details on Turkey Formalities go here.
Kemer is a port of entry and all the officials are within the marina vicinity. The formalities will be completed by the marina office staff with no service charge.
It has been reported that Immigration Officials here insist that a yacht departs immediately passports have been stamped, which means leaving after 0830hrs and before 1700, whether or not this is suitable for the passage planned.
The marina here is one of the most popular in Turkey, especially with long-term cruisers and live-aboards. The winter period is a whirlwind of social activity! It is advisable to book in advance.
It is also possible to anchor with both good holding and shelter on the east side of the headland.
Good shelter in the marina.
Within the marina.


Hot-keys on this page
n s m x c change column sorting
100% Coverage of files tested, files below are supporting files for whats above
No items found using the specified filter.


!/usr/bin/env python3 Import cards to use in deck.
import random
import card
Deck class.
class Deck:
Create empty list to store cards in.
def __init__(self):
self.deck = []
self.suits = ["Clubs", "Spades", "Hearts", "Diamonds"]
Build the deck using a nested for loop to avoid duplicates.
def build_deck(self):
for suit in self.suits:
for value in range(2, 15):
self.deck.append(card.Card(suit, value))
Return deck attribute.
def get_deck(self):
return self.deck
Switch positions of the iterator index and the random num index.
def shuffle_deck(self):
random.shuffle(self.deck)
Distribute deck evenly.
def deal_deck(self):
player1 = []
player2 = []
for _i in range(0, int(len(self.deck)/2)):
player1.append(self.deck.pop())
player2.append(self.deck.pop())
return player1, player2


BeaconScanner
public final class BeaconScanner : NSObject
Layer of abstraction for CoreLocation
ranging & monitoring iBeacons. This is build using Singleton principle. There will never be a need to use more than one instance of BeaconScanner
to work with wingu beacons. By default regions to monitor and ranging are equal and default wingu regions apply if not specyfied otherwise.
-
Time offset for notification. Whenever end-user rediscover the same beacon this will be check against last stored beacon. If passed more than time defined here it will send notification.
By default this value is 1 hour (RediscoverNotificationTime.hourly). SeeRediscoverNotificationTime
to see predefined values, but any value greater than 0 can be applied to this variableDeclaration
Swift
public var rediscoverNotificationTime: RediscoverNotificationTime { get set }
-
Property that prevent your beacons on the edge of discovery to jump back to lost state.
Defined in seconds, for predefined values checkBeaconLostTime
.
Value needs to be greater thanBeaconLostTime.instant
(2 seconds). In case of settings below this limit minimum limit will apply.Declaration
Swift
public var beaconLostOffset: BeaconLostTime { get set }
-
Variable is default content caching time.
Note that setting this value low will cause extense battery and network data usage. When this value is set to 0 (.always) it will ask for content of a beacon every time whenever beacons is in range. That means every second when
CLLocationManagerDelagate
returns new beacons.It’s recommended to use it as high as possible depending on use-case.
By default it’snormal
(60 seconds).Declaration
Swift
public var beaconFetchDataTime: BeaconFetchDataTime { get set }
-
Property that indicates if you should monitor for beacons in background. Default is
.sameAsRanging
.
This property will be overriden by direct callstartMonitoringBeacons(regions: [CLBeaconRegion], locationManager: LocationManager?)
and will be set to.custom
whenever custom regions will be passed. It will be set to.none
every time stop monitoring action will be performed.Declaration
Swift
public var shouldMonitorForBeaconsInBackground: BeaconScanner.MonitoringState
-
Scanning state of
See moreBeaconScanner
. To get familiar with ranging and monitoring concept please visit Official Apple documentation that cover this topic.Declaration
Swift
public enum ScanningState
-
State of monitoring. Defined in a variable
See moreshouldMonitorForBeaconsInBackground
Declaration
Swift
public enum MonitoringState
-
Scanning state, default is
ScanningState.idle
Declaration
Swift
public var scanningState: BeaconScanner.ScanningState


{{invoice.customer.first_name}} {{invoice.customer.last_name}} ({{invoice.customer.company}})
- {{invoice.customer.address.street}}
- {{invoice.customer.address.city}}
- {{invoice.customer.address.state}}
- {{invoice.customer.address.zip}}
Invoice Date: {{invoice.createdAt}}
Status: {{invoice.status}}


juicy-display-router
For API see the
README.md
Sample usage
Below links change the page using HTML5 History API (they don't exist really):
Home Page
About Us
Contact Page
Page output
This is my Home Page text
This is my About Us text
This is my Contact details


|
|
|
List not found |
|
|
|
|
|
|
|
The listname you have specified, ~p1, cannot be found on this system, or cannot be accessed at this time. Please make sure that you have spelled the list name correctly and try again. If the problem persists and you believe you are typing the name correctly, please contact the administrator of this system. |
|
|
|
|
|
Click here to return to the subscription login screen. |


no snap
snap 4
snap 8
snap 16
snap 32
snap 64
Add (a)
Select (s)
Texture (t)
New/Clear
Load Graph
Set Tiles
Report
messages go here
Node file:
Texture file:
Inputs:


This app is built in Ruby on Rails using the sqlite3 and pg gem for database communication. In developement I used sqlite3 and then postgres for production do to the hosting requirements. It is password protected with basic HTTP Authentication with the username: demo and the password: cs405g.
This is a web app that tracks multiple Services and their payments. Each service is composed of a few attributes:
These are up to the user to input, but a name and amount are required. In addition there are three additional attributes for each service created by Rails and the database: Service_id which is used by the database as the primary key, created_at and updated_at timestamps.
NOTE: I chose to not have any tables dropped. This is because if you drop a service it will no longer appear on the reports. If it's a one time bill it will not be charged again so it stays in the database for reporting purposes. In case of reoccuring charges there is the option to deactivate it, because dropping it would remove it from the year to date and monthly reports.
In addition to services it also tracks payments for each services. Payments are comprised of:
This is the only thing the user has control of. The database handles the other attributes:
The app provides validation so that no Service can be created without a name or amount and a Payment cannot be created without an amount.
The app also provides the user with a number of Reports on payments a services. In the Reports section the user can find three main reports:
All active services that are unpaid. It gives each service name and the amount owed followed by the total amount owed.
Lists all the payments paid this year thus far. It includes the service paid, the amount, and when the payment was made. It also gives a total amount of all the payments.
Allows the user to search for payments in a specific month. "How much did I spend in October?". The format is much like the Year to Date report with the services paid, amounts, specific dates, and a total for that month.
To access the app all one needs to do is vist the website.
The source code to the app is all on GitHub.To install the app ruby and rails must be installed. Then do the following:
Run bundle install to make sure all dependencies are available
bundle install
Then start the Rails server locally
rails server
The app will be available at the default localhost:3000
The code submitted herewith is an original work performed by me expressly in fulfillment of requirements associated with the Project 1 of the class CS405, Fall semester 2011, possibly except the gems used and the Rails framework itself.
Copyright (c) 2011 Blake Hall
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Hello and welcome to the Chuck Norris quote and movie generator
What would you like to receive from Chuck?
Would you like a random quote or filter on a specific catogory?


This course runs from June 2nd to August 22nd, 2014.
Monday - Thursday
9am - 12pm will be lecture time. We will have a break halfway through. Depending on the topic covered we may end early.
1pm - 5pm will be lab time.
Friday
9am - 5pm will be lab time.
During lab time either your instructor or a T.A. will be available to assist you with any problems you run into. Keep in mind that often the best way to learn is to work through the situation by yourself, but we will be available to assist.
From time to time your instructor and/or T.A will have a meeting and will be unavailable. If this is the case, we will try to let you know ahead of time.
There is also a chance we will be available via HipChat or Screenhero in the evenings or weekends. If we are and can help we will do so, but don’t plan on this. Make sure to ask any questions you have before you leave for the day.
July 4th falls on a Friday. We will have no class on July 4th. In addition, July 3rd will be a lab day.


perfectly clean, creative and minimal design offering numerous sections to create a great website which is suitable for personal portfolio, creative studio. This brilliant and minimal design was fine-tuned the smallest elements to ensure a free-from-flaws template which is suited for all engaging creative sites.


Tracking
Posture Statistics
Shoulders
Good Posture!
Head
Good Posture!
Legs
Good Posture!
Sitting Time
You are sitting.


I'm currently a student at Stanford University, USA, pursuing Master of Science degree in Mechanical Engineering. At Stanford, my aim is to gain a lot of hands-on experience in Robotics and I plan to specialize in Robotics and Artificial Intelligence.
I completed my undergraduate studies at Indian Institute of Technology Kanpur, India where I pursued Bachelor of Technology in Mechanical Engineering. I completed my Bachelor degree project with Prof. Kamal Kar at IIT Kanpur, studying a prototype that functioned similar to bi-VAD (Ventricular Assist Device). During summer of 2019, I worked with Prof. Dilip Kumar Pratihar at the Center for Excellence in Robotics, IIT Kharagpur, and developed an algorithm for real time detection and prediction of gait events. During summer of 2018, I interned at Euphotic Labs, Bengaluru, a startup working on developing a robotic kitchen and redesigned one of their automated cooking machines.
For a year between my undergraduate and graduate studies, I worked as a Software Engineer exploring the field of application development at Bajaj Finserv Limited, a leading Non Banking Financial Institution in India.
Download my full CV here.M.S. in Mechanical Engineering: Robotics (Ongoing)
Stanford University, USA
B.Tech. in Mechanical Engineering, 2020
Indian Institute of Technology Kanpur, India
For more details, kindly have a look at my CV or reach out to me.
Developed a rule-based algorithm that detects gait events on different terrains using data from IMUs. See project publication for details.
Part of the student team that worked on development of AUV. For more details, visit the team page.
Developed a game as a part of course projectc for ME218A - Mechatronics at Stanford. For more details, visit page.
Implemented autonomous exploration, A-Star, TSP, gmapping SLAM on a Turtlebot using ROS (Python) for navigation in a mock environment. For more details, visit page.
Worked with a Bengaluru based robotic startup as a Robotic Engineer Intern and redesigned one of their cooking machine. To know more about the company, click here.
Worked as a application developer with one of the leading financial instituion in India, Bajaj Finserv Limited. To know more about the company, click here.
Developed a ROS compatible implementation of Kanade’s stereo matching algorithm as a solution to assign window size for block matching in stereo vision using SSD. For code click here.
Please feel free to reach out!


Work Our
Amazing
Products
You are your own BOSS
Deliver,Earn on your schedule
Lorem Ipsum is simply dummy text o
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s