AngularJS Websocket Service
Hello {{name}},
You have {{friends.length}} friends. They are:
{{friend}}


--- layout: default ---
Hello there, and welcome to my homepage! My name is Biplab Paul, and I am a postdoctoral fellow at Massachusetts General Hospital and Harvard Medical School. I work in Dr. Alan Mullen's group primarily on the gene expression of liver tissue. My goal from this postdoc fellowship is
to map the variation of gene expression accross different regions of the human liver tissue. This will ultimately help us to understand how changes in the gene
expression across different regions of the liver tissue leads to diseases.
I maintain a list of my publications, previous research projects under the Research tab, and a list of other non-research projects under the Projects tab. You may also check out my Github profile.
To get a better insight on my life so far, you can have a look at my curriculum vitae. I blog and pin them down here. Feel free to read a bit more about me.


| The Data Warehouse Lifecycle Toolkit 2nd Edition |
978-0470149775 |
0470149779 |
Wiley; 2nd edition (January 10, 2008) |
672 |
Ralph Kimball |
Margy Ross |
Warren Thornthwaite |
Joy Mundy |
Bob Becker |
| T-SQL Window Functions: For data analysis and beyond (Developer Reference) 2nd Edition |
978-0135861448 |
0135861446 |
Microsoft Press; 2nd edition (November 4, 2019) |
352 |
Itzik Ben-Gan |
| Microsoft Power BI Quick Start Guide: Build dashboards and visualizations to make your data come to
life |
978-1789138221 |
1789138221 |
Packt Publishing (July 30, 2018) |
200 |
Devin Knight |
Brian Knight |
Mitchell Pearson |
Manuel Quintana |


Why Telkom is getting killed
by Staff WriterTelkom’s share price has plummeted from around R100 per share to just over R50 per share over the last five months, which points to the investment community losing trust in the company.
There are many reasons for the lack of trust, including a rapid decline in fixed-line customers, lower enterprise voice and data revenue, increasing debt, and Telkom’s plan to buy Cell C.
Jean Pierre Verster from Protea Capital Management highlighted that Telkom’s free cashflow generation is negative and that the decline in fixed-line revenue is severe.
While Telkom’s mobile unit is growing, the company is spending a lot of money on this part of the business and is taking on a lot of debt to fund it (its net debt increased to R12 billion).
Stakeholders highlighted that Telkom’s debt is reaching worrying levels and are questioning whether the company accurately assessed the finance charges related to this debt.
Telkom losing fibre market share
Telkom CEO Sipho Maseko said the company will increasingly focus on its mobile services, which comes at the detriment to its fixed-line operations.
Maseko, however, does not seem concerned about losing large numbers of fixed-line and fixed-broadband subscribers.
Telkom’s fixed-line broadband subscribers – which include ADSL, VDSL, and fibre-to-the-home customers – declined from 974,181 in September 2018 to 781,255 in September 2019.
Instead of doubling down on its fibre network investment, Telkom has cut capital expenditure on its fibre network by 36.3% over the last year.
Telkom is focussing its spend on fibre-to-the-base-station to support its mobile operations instead of fibre-to-the-home.
The company said it has a strong focus on fibre-to-the-business and fibre-to-the-base-station because they have significantly higher ARPU than FTTH passed.
This means that Telkom is allowing other fibre network operators like Vumatel, Octotel, and Frogfoot to eat into its fixed-line market share, where it used to be completely dominant.
Questionable strategy
Wayne McCurrie from FNB Wealth and Investments questioned Telkom’s strategy, saying the company is trying to compete in a saturated environment.
He said Telkom relies on its roaming agreement to offer a decent service, which means its only competitive advantage is price.
This “race to the bottom” is good news for consumers but puts tremendous pressure on Telkom’s bottom line.
Excelsia analyst Mark Narramore also questioned Telkom’s strategy, saying it was spending money with cashflow which it does not have.
Narramore highlighted that Telkom’s share price has been declining over the last four months and that he anticipates the company to be downgraded.
Telkom’s plan to buy Cell C
Commenting on Telkom’s plan to buy Cell C, Verster said these two mobile operators are not great businesses on their own as the number three and four mobile operators in a saturated and mature market.
“When you put them together it is even worse,” said Verster. It is like having a concrete boot on the left foot, and then putting a concrete boot on the right foot as well.
Verster said he hopes there is a good strategy behind Telkom’s plan to buy Cell C and that they have access to the “real numbers”.
“There was an accounting opinion [related to Cell C’s results] which was withheld, and Cell C has still not issued its own audited results,” said Verster.
He added that there is no private company which made higher cumulative losses than Cell C in South Africa.
Telkom performance
The graph below shows Telkom’s share price decline in recent months.
Telkom share price
This is an opinion piece.


Shop
Products
My Account
Support & Help
Keep up with the best shows out there.
Let's Try It
Featured Products
Offshore Box Wireless
Backshore Box 2
Shoreline Router
Share with friends and family from any location.
Now playing
Game Of Thrones
.
Need to get connected?
Schedule an appointment with one of our Coastal Field Agents.
Let's book it
Log out


API Basejump: Timestamp microservice
This microservice implements next user stories:
- I can pass a string as a parameter, and it will check to see whether that string
contains either a unix timestamp or a natural language date (example: January 1, 2019)
- If it does, it returns both the Unix timestamp and the natural language form of that date.
- If it does not contain a date or Unix timestamp, it returns null for those properties.
https://tranquil-coast-90658.herokuapp.com/2019-01-01
https://tranquil-coast-90658.herokuapp.com/1546300800
https://tranquil-coast-90658.herokuapp.com/January%201,%202019
Output
-
{
"unix":1546300800,
"natural":"January 1, 2019"
}


OK
Example
Example
Example
Example
OK, because of constant URL
Example
Example
Example
OK, because of constant prefix
Example
Example
Example
NOT OK, because of dynamic URL
Example
Example
Example
NOT OK: mailto is not fine.
mail somone
OK: template elements after # or ? are fine.
Example
Example
Example


Data of Class _typelib_InterfaceMethodTypeDescription
- aBase
- typelib_InterfaceMemberTypeDescription aBase;
- Summary
- inherits all members of typelib_InterfaceMemberTypeDescription
- pReturnTypeRef
- typelib_TypeDescriptionReference * pReturnTypeRef;
- Summary
- type of the return value
- nParams
- sal_Int32 nParams;
- Summary
- number of parameters
- pParams
- typelib_MethodParameter * pParams;
- Summary
- array of parameters
- nExceptions
- sal_Int32 nExceptions;
- Summary
- number of exceptions
- ppExceptions
- typelib_TypeDescriptionReference * * ppExceptions;
- Summary
- array of exception types
- bOneWay
- sal_Bool bOneWay;
- Summary
- determines whether method is declared oneway
- pInterface
- _typelib_InterfaceTypeDescription * pInterface;
- Summary
- the interface description this method is a member of
- Since
- #i21150#
- pBaseRef
- typelib_TypeDescriptionReference * pBaseRef;
- Summary
- the inherited direct base method (null for a method that is not
inherited)
- Since
- UDK 3.2.0
- nIndex
- sal_Int32 nIndex;
- Description
- if pBaseRef is null, the member position of this method within
pInterface, not counting members inherited from bases; if pBaseRef is
not null, the index of the direct base within pInterface from which this
method is inherited
- Since
- UDK 3.2.0
Top of Page
Copyright © 2012, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


ACTIVITY AND SERVICE FEE BUDGET REQUEST FORM RESERVE FUND SUMMARY AND DETAIL FOR THE FISCAL YEAR ENDING June 30, 2019
A&S SUPPLEMENTAL BUDGET REQUEST DOCUMENTATION 2018-2019


I once sat across from a doctor and stated that the only safe way to manage archival health data is in the cloud. As a consultant physician, I did not expect her retort to be but what about the Patriot Act? The Patriot Act is a now-replaced piece of American legislation that had far-reaching effects, with the US Department of Justice laying claim to data stored by American companies?even overseas.
In Australia we are bound by myriad privacy acts spanning States, Territories and the Commonwealth, and no more resoundingly can their implications be felt than in the health community. And rightly so. We are privy to sensitive information, the disclosure of which can range from banal to destructive to the individual. The impact of even that which we see as trivial, through desensitising exposure, is highlighted by television such as Embarrassing Bodies.
My spy-wary conversationalist sparked a fervent exploration on my part. From a technical standpoint I was certain that prior encryption of health data would suffice for compliance with privacy legislation. But what about the Patriot Act?
Australian privacy requirements are based upon what are known as "privacy principles" - see this quick reference guide. Beyond the protection of data from unauthorised disclosure or modification, we have an obligation to adequately protect against loss of data. I argue that the most feasible means by which we can quantify the risk of data loss is in the cloud.
Cloud storage vendors are akin to insurance companies. They, respectively, spread the risk of data and financial losses across their pool of clients. When Amazon advertises 11-nines data integrity (1-in-100-billion probability of loss) it is founded in historical data much as that used by an actuary in determining your insurance premium [1]. Can any Australian hospitals provide this same level of precision?
Even with such motivation to migrate data to the cloud we are still met with security concerns. Borrowing from guidelines published by the Australian Signals Directorate - the agency tasked with our Government's information security - I have produced a primer in cryptography with a focus on compliance with the specific wording of Australian privacy legislation. Despite the genomic bent, it is relevant to every Australian tasked with the protection of health data.
Disclaimer: I am not a lawyer and neither this post nor the publication should be construed as legal advice. The purpose of this text is to provide the reader with an adequate technical understanding of data security such that they can, in consultation with their lawyer, make informed decisions regarding data-management policy.
[1] Amazon Web Services Inc. "Amazon Simple Storage Service (S3) - Object Storage". Available from: https://aws.amazon.com/s3/. [Last accessed on 2016 Feb 7].


MicroCanvas
MicroCanvas is a JavaScript library aimed at enhancing the HTML5
<canvas>
with a few nifty features to make it easier
for someone to create self-contained, retro-style pixelart games, while
keeping the original canvas functions and development experience intact.
Getting started
The easiest way to start using the MicroCanvas library is to simply include it from the Clouduboy site or GitHub CDN:
<script src="//clouduboy.github.io/microcanvas/microcanvas.js"></script>
or
<script src="//s.clouduboy.org/microcanvas.js"></script>
Including the MicroCanvas script in the webpage like this will create a
new MicroCanvas
global object on the window -- you can use
this global object to access the functionality provided by MicroCanvas
NOTE:
You may also include MicroCanvas as an ES6 module. This feature is work-in-progress, but allows you to avoid having to expose the MicroCanvas object as a global on the window object.
After you have included the MicroCanvas library in your game script file, you create the MicroCanvas global instance that you will be using throughout the rest of the code to refer to the game canvas:
const game = new MicroCanvas();
You may choose whatever name you want for your MicroCanvas instance, but
game
is a frequently used and straightforward choice, we
recommend sticking with it.
MicroCanvas files, by convention, are built of 3 main parts:
globals, the
setup
function and the
loop
function. The
setup
function sets up the game, the
loop
function updates the game and keep the action going,
and globals are used to store the game state as well as resources (like
sounds and graphics) required for the game. Learn more of each of these
in their respective documentation pages.


class Redcarpet::Render::StripDown
Markdown-stripping renderer. Turns Markdown into plaintext Thanks to @toupeira (Markus Koller)
Public Instance Methods
header(text, header_level)
click to toggle source
# File lib/redcarpet/render_strip.rb, line 43 def header(text, header_level) text + "\n" end
image(link, title, content)
click to toggle source
# File lib/redcarpet/render_strip.rb, line 34 def image(link, title, content) content &&= content + " " "#{content}#{link}" end
link(link, title, content)
click to toggle source
Other methods where we don't return only a specific argument
# File lib/redcarpet/render_strip.rb, line 30 def link(link, title, content) "#{content} (#{link})" end
paragraph(text)
click to toggle source
# File lib/redcarpet/render_strip.rb, line 39 def paragraph(text) text + "\n" end
table(header, body)
click to toggle source
# File lib/redcarpet/render_strip.rb, line 47 def table(header, body) "#{header}#{body}" end
table_cell(content, alignment)
click to toggle source
# File lib/redcarpet/render_strip.rb, line 55 def table_cell(content, alignment) content + "\t" end
table_row(content)
click to toggle source
# File lib/redcarpet/render_strip.rb, line 51 def table_row(content) content + "\n" end


{% include meta.html %}
Cops and Robbers
Toggle navigation
How To Play
Blog
Meet The Team
{% include svg/open_in_new.svg %} Documentation
{{ content }}


DyeVC
Copyright (c) 2013 Universidade Federal Fluminense.
Dye over Version Control is an open project. The source code is available at https://github.com/gems-uff/dyevc.
The application help is available at the https://github.com/gems-uff/dyevc/wiki.
Authors
Cristiano Machado Cesario -<EMAIL_ADDRESS>Leonardo Gresta Paulino Murta -<EMAIL_ADDRESS>Included software
JUNG
Copyright (c) 2003-2004, Regents of the University of California and the JUNG Project.
All rights reserved.
JGit
Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors.
All rights reserved.
Information Usage
DyeVC collects non-private information to be used solely for experimental purposes. No file contents are collected nor analyzed by the application. The following is a list of the information collected:
License terms
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.


List manager sample application for AWS Lambda
The list manager sample application demonstrates the use of AWS Lambda to process records in an Amazon Kinesis data stream. A Lambda event source mapping reads records from the stream in batches and invokes a Lambda function. The function uses information from the records to update documents in Amazon DynamoDB and stores the records it processes in Amazon Relational Database Service (Amazon RDS).
Clients send records to a Kinesis stream, which stores them and makes them available for processing. The Kinesis stream is used like a queue to buffer records until they can be processed. Unlike an Amazon SQS queue, records in a Kinesis stream are not deleted after they are processed, so multiple consumers can process the same data. Records in Kinesis are also processed in order, where queue items can be delivered out of order. Records are deleted from the stream after 7 days.
In addition to the function that processes events, the application includes a second function for performing administrative tasks on the database. Function code is available in the following files:
-
Processor – processor/index.js
-
Database admin – dbadmin/index.js
You can deploy the sample in a few minutes with the AWS CLI and AWS CloudFormation.
To download, configure, and deploy it
in your account, follow the instructions in the README
Sections
Architecture and event structure
The sample application uses the following AWS services:
-
Kinesis – Receives events from clients and stores them temporarily for processing.
-
AWS Lambda – Reads from the Kinesis stream and sends events to the function's handler code.
-
DynamoDB – Stores lists generated by the application.
-
Amazon RDS – Stores a copy of processed records in a relational database.
-
AWS Secrets Manager – Stores the database password.
-
Amazon VPC – Provides a private local network for communication between the function and database.
Standard charges apply for each service.
The application processes JSON documents from clients that contain information necessary to update a list. It supports two types of list: tally and ranking. A tally contains values that are added to the current value for key if it exists. Each entry processed for a user increases the value of a key in the specified table.
The following example shows a document that increases the xp
(experience points) value for a
user's stats
list.
Example record – Tally type
{ "title": "stats", "user": "bill", "type": "tally", "entries": { "xp": 83 } }
A ranking contains a list of entries where the value is the order in which they are ranked. A ranking can be updated with different values that overwrite the current value, instead of incrementing it. The following example shows a ranking of favorite movies:
Example record – Ranking type
{ "title": "favorite movies", "user": "mike", "type": "rank", "entries": { "blade runner": 1, "the empire strikes back": 2, "alien": 3 } }
A Lambda event source mapping read records from the stream in batches and invokes the processor function. The event that the function handler received contains an array of objects that each contain details about a record, such as when it was received, details about the stream, and an encoded representation of the original record document.
Example events/kinesis.json
{ "Records": [ { "kinesis": { "kinesisSchemaVersion": "1.0", "partitionKey": "0", "sequenceNumber": "49598630142999655949899443842509554952738656579378741250",
"data": "eyJ0aXRsZSI6ICJmYXZvcml0ZSBtb3ZpZXMiLCAidXNlciI6ICJyZGx5c2N0IiwgInR5cGUiOiAicmFuayIsICJlbnRyaWVzIjogeyJibGFkZSBydW5uZXIiOiAyLCAidGhlIGVtcGlyZSBzdHJpa2VzIGJhY2siOiAzLCAiYWxpZW4iOiAxfX0=",
"approximateArrivalTimestamp":<PHONE_NUMBER>.615 }, "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000000:49598630142999655949899443842509554952738656579378741250", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::123456789012:role/list-manager-processorRole-7FYXMPLH7IUS", "awsRegion": "us-east-2", "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/list-manager-stream-87B3XMPLF1AZ" }, ...
When it's decoded, the data contains a record. The function uses the record to update the user's list and an aggregate list that stores accumulated values across all users. It also stores a copy of the event in the application's database.
Instrumentation with AWS X-Ray
The application uses AWS X-Ray to trace function invocations and the calls that functions make to AWS services. X-Ray uses the trace data that it receives from functions to create a service map that helps you identify errors. The following service map shows the function communicating with two DynamoDB tables and a MySQL database.
The Node.js function is configured for active tracing in the template, and is instrumented with the AWS X-Ray SDK for Node.js in code. The X-Ray SDK records a subsegment for each call made with an AWS SDK or MySQL client.
The function uses the AWS SDK for JavaScript in Node.js to read and write to two tables for each record. The primary table stores the current state of each combination of list name and user. The aggregate table stores lists that combine data from multiple users.
AWS CloudFormation templates and additional resources
The application is implemented in Node.js modules and deployed with an AWS CloudFormation template and shell scripts. The application template creates two functions, a Kinesis stream, DynamoDB tables and the following supporting resources.
Application resources
-
Execution role – An IAM role that grants the functions permission to access other AWS services.
-
Lambda event source mapping – Reads records from the data stream and invokes the function.
View the application template
A second template, template-vpcrds.yml
Infrastructure resources
-
VPC – A virtual private cloud network with private subnets, a route table, and a VPC endpoint that allows the function to communicate with DynamoDB without an internet connection.
-
Database – An Amazon RDS database instance and a subnet group that connects it to the VPC.


Elements¶
Basic elements in IDA are all refered by an ID. This can be the address of the element in the database or a particular ID. For allowing to access easily the correct element from its ID Bip defines a tree of classes with each leaf classes in charge of a particular element.
Three abstract classes are defined in Bip:
BipBaseElt
: is the parent class of all element in Bip, in particular it is in charge of making the interface withGetElt()
andGetEltByName()
.BipRefElt
: is the parent class of all elements which can be referenced by xref in IDA. This includeBipInstr
,BipData
,BipStruct
andBStructMember
.BipElt
: is the parent class of all elements with an actual address as ID and provide a lot of common API for thoses elements, this is the parent class ofBipInstr
andBipData
.
For getting a correct element from an ID it is enough to call the
GetElt()
and GetEltByName()
function. As those functions can
return diferent types of objects it can be convenient to use isinstance
for checking the return type of the object.
Internals¶
Recuperation of the correct element¶
For being able to return an object GetElt()
(GetEltByName()
is simply a wrapper in top of GetElt()
) must
be able to tell which class should be used. This is done by recursivelly
checking the child classes of BipBaseElt
, each child classes should
implement the class method BipBaseElt._is_this_elt()
which take an ID
in argument. If this method return True iteration will continue on child
classes of this class, if it return False it will stop. When all child classes
return False or a leaf as been reach an object of this element is created and
returned.
If two subclasses return True at one level of the recursion, one of them will be ignored.
All classes which inherit from BipBaseElt
are expected to take only
their ID in argument for being able to be instantiated by GetElt()
.
Element Functions API¶
-
bip.base.
GetElt
(ea=None)¶ Return an object inherithed from
BipBaseElt
which correspond to the element at an id.Internally this function parcours subclasses of
BipBaseElt
and call the_is_this_elt()
and return the one which match.Warning
There is a problem if two functions of a sublcass level can return True on the same element.
Parameters: ea (int) – An address at which to get an element. If None
the screen address is used.Raises: RuntimeError – If the address correspond to the error value. Returns: An object (subclass of BipBaseElt
) representing the element. If the address is not mapped aBipElt
will be returned.
-
bip.base.
GetEltByName
(name)¶ Same as
GetElt()
but using a name and not an address.Parameters: name (str) – The name of the element to get. If a “dummy” name ( byte_xxxx
, …) is provided the database is not consulted.Returns: An object representing the element or None
if the name was not found.Return type: Subclass of BipBaseElt
.
BipBaseElt API¶
-
class
bip.base.
BipBaseElt
(idelt)¶ Base class for representing an element in IDA which is identified by an id, this should be used as an abstract class and no object of this class should be instantiated.
This is a really generic class which only support the constructor taking an id and the
BipBaseElt._is_this_elt()
for used in conjonction withGetElt()
. Child classes should reimplement theBipBaseElt._is_this_elt()
and call this constructor.Todo
make list of subclasses in this doc. Add to doc a descision tree for which classes should be return by the GetElt.
-
__init__
(idelt)¶ Consctructor for a
BipBaseElt
object.Note
There is no reason to use this constructor, the
GetElt()
orGetEltByName()
functions should be used.Parameters: idelt (int) – The id for representing the IDA element. In most case this will be the address of the element.
-
_idelt
= None¶ The id which represent the element in IDA, this will typically be an address.
-
classmethod
_is_this_elt
(idelt)¶ Class method which allow the function
GetElt()
to know if this the correct type for an address. Only subclasses of an element which return True will be tested byGetElt()
,BipBaseElt
return always True except ifidelt
is not of the correct type.Parameters: idelt (int) – An id representing the element, typically an address. Returns: True if this is a valid class for constructing this element.
-
classmethod
iter_heads
(start=None, end=None)¶ Class method allowing to iter on all the element defined in the IDB. This means elements which are not defined (considered to not heads) will not be returned by this function.
Note
Internally this function iterate on all the
Heads
and create the object if the class which is used for it match the element. For example callingBipData.iter_heads()
will return only the heads which areBipData
object or their children.Note
This function will work only on mapped object, it is not possible to use it for getting
BipStruct
for example.Parameters: - start – The address at which to start iterating. If this parameter is None (the default) the minimum mapped address will be used.
- end – The address at which to stop iterating. If this parameter is None (the default) the maximum mapped address will be used.
Returns: A generator of object child of
BipBaseElt
allowing to iter on all the elt define in the idb.
-
__eq__
(other)¶ Compare the id of 2
BipBaseElt
and returnTrue
if they are equal.
-
__ne__
(other)¶ x.__ne__(y) <==> x!=y
-
__weakref__
¶ list of weak references to the object (if defined)
-
BipRefElt API¶
-
class
bip.base.
BipRefElt
(idelt)¶ Class which represent element which can be reference through a xref. This include data, instruction and structures. The
BipRefElt
class provide methods for accessing the references to and from the element represented by the object.-
xFrom
¶ Property which allow to get all xrefs generated (from) by the element. This is the equivalent to
XrefsFrom
from idapython.Returns: A list of BipXref
with thesrc
being this element.
-
xTo
¶ Property which allow to get all xrefs pointing to (to) this element. This is the equivalent to
XrefsTo
from idapython.Returns: A list of BipXref
with thedst
being this element.
-
xEaFrom
¶ Property which allow to get all addresses referenced (by a xref) by (from) the element.
Returns: A list of address.
-
xEaTo
¶ Property which allow to get all addresses which referenced this element (xref to).
Returns: A list of address.
-
xEltFrom
¶ Property which allow to get all elements referenced (by a xref) by (from) this element.
Returns: A list of BipBaseElt
(or subclasses ofBipBaseElt
).
-
xEltTo
¶ Property which allow to get all elements which referenced this element (xref to).
Returns: A list of BipBaseElt
(or subclasses ofBipBaseElt
).
-
BipElt API¶
-
class
bip.base.
BipElt
(ea=None)¶ Base class for representing an element in IDA which have an address. This is the basic element on top of which access to instruction and data is built.
-
__init__
(ea=None)¶ Consctructor for a
BipElt
object.Note
There is no reason to use this constructor, the
GetElt()
function should be used.Parameters: ea (int) – The address of the element in IDA. If None
the screen address is taken.Raises: ValueError – If the address given in argument is a bad address (idc.BADADDR)
-
ea
= None¶ The address of the element in the IDA database
-
__eq__
(other)¶ Equality comparator with another
BipElt
. ReturnNotImplemented
if the argument is not aBipElt
.
-
__ne__
(other)¶ Inequality comparator with another
BipElt
. ReturnNotImplemented
if the argument is not aBipElt
.
-
__lt__
(other)¶ Lesser than comparator with another
BipElt
. ReturnNotImplemented
if the argument is not aBipElt
.
-
__le__
(other)¶ Lesser or equal comparator with another
BipElt
. ReturnNotImplemented
if the argument is not aBipElt
.
-
__gt__
(other)¶ Greater than comparator with another
BipElt
. ReturnNotImplemented
if the argument is not aBipElt
.
-
__ge__
(other)¶ Gretter or equal comparator with another
BipElt
. ReturnNotImplemented
if the argument is not aBipElt
.
-
__hash__
()¶ Compute a unique hash for this ida element. The produce hash is dependant of the type of this object and of its address. This allow to create container using the hash of the object for matching an object of a defined type and with a particular address.
Calculation made is:
hash(type(self)) ^ self.ea
, in particular it means than child classes will not have the same hash as a parrent classes even if the compare works.Returns: An integer corresponding to the hash for this object.
-
flags
¶ Property for getting the flags of the element. Those flags are the one from ida such as returned by
ida_bytes.get_full_flags
.Returns: The flags for the element Return type: int
-
size
¶ Property which return the size of the elt.
Returns: The size in bytes of the element. Return type: int
-
bytes
¶ Property returning the value of the bytes contain in the element.
Returns: A list of the bytes forming the element. Return type: list(int)
-
original_bytes
¶ Property returning the value of the bytes contain in the element before their modification. This still use the size of the current element definition.
Returns: A list of the original bytes as integer forming the element.
-
name
¶ Property which allow to get the name of this element. An element do not always have a name.
Returns: The name of an element or an empty string if no name. Return type: str
-
demangle_name
¶ Property which return the demangle name of the element.
Return str: The demangle name of the element or None if there is no demangle version of the name.
-
is_dummy_name
¶ Property for checking if the current name of this element is a “dummy” name (a name set by default by IDA when it does not know how to call an element) with a special prefix. This function will not recognize the
aSTRING
naming, seeis_auto_name()
, andis_ida_name()
.Returns: True
if the element has a dummy name,False
otherwise.
-
is_auto_name
¶ Property for checking if the current name of this element is an “auto-generated” name, those are the default name generated by IDA but without a special prefix (see
is_dummy_name()
) such as the one for the string. See alsois_ida_name()
.Returns: True
if the element has an auto-generated name,False
otherwise.
-
is_ida_name
¶ Property for checking if the current name is a default name as generated by IDA. This is an OR condition of
is_auto_name()
andis_dummy_name()
.This is still not perfect and name put some names put by IDA will not be recognize by this function (for example the global for the CFG and probably others).
Returns: True
if the element has a name provided by IDA,False
otherwise.
-
is_user_name
¶ Property for checking if the current name is a “user name”. In practice this check a flag that the API can avoid setting, so there is no garantee it is an actual user name. See
is_ida_name()
for checking if a name was generated by IDA.Returns: True
if the name is marked as set by a user,False
otherwise.
-
color
¶ Property which return the color of the item.
Returns: The coloration of the element in IDA. Return type: int
-
comment
¶ Property which return the comment of the item.
Returns: The value of the comment or None
if there is no comment.Return type: str
-
rcomment
¶ Property which return the repeatable comment of the item.
Returns: The value of the comment or None
if there is no repeatable comment.Return type: str
-
has_comment
¶ Property which allow to check if the item as a comment (normal or repeatable.
Returns: True if the item as a comment, False otherwise
-
is_code
¶ Property indicating if this element is some code. Wrapper on
idc.is_code
.Returns: True if current element is code, False otherwise. Return type: bool
-
is_data
¶ Property indicating if this element is considered as data. Wrapper on
idc.is_data
.Returns: True if current element is data, False otherwise. Return type: bool
-
is_unknown
¶ Property indicating if this element is considered as unknwon. Wrapper on
idc.is_unknown
.Returns: True if current element is unknwon, False otherwise. Return type: bool
-
is_head
¶ Property indicating if the element is an head in IDA. An head element is the beggining of an element in IDA (such as the beginning of an instruction) and can be named. Wrapper on
idc.is_head
.Returns: True if the current element is an head, False otherwise. Return type: bool
-
has_data
¶ Property which indicate if an element has a value. If an element has no value a default value of
0xFF
will be returned in general. This correspond to element in IDA which are marked with a?
in value. Wrapper onidc.has_value
.Returns: True if the current element has a value, False otherwise.
-
goto
()¶ Method which allow to move the screen to the position of this element. Wrapper on
ida_kernwin.jumpto
(oldidc.Jump
).
-
classmethod
iter_all
(start=None, end=None)¶ Class method allowing to iter on all mapped elements of the IDB.
This will return only the elements which are handle by the class or one of this subclasses. For example calling
BipData.iter_heads()
will return only the heads which areBipData
object or children of that class. This useGetElt()
for determining the correct object to return.Parameters: - start – The address at which to start iterating. If this parameter is None (the default) the minimum mapped address will be used.
- end – The address at which to stop iterating. If this parameter is None (the default) the maximum mapped address will be used.
Returns: A generator of object child of
BipBaseElt
allowing to iter on all the elt in the idb.
-
static
is_mapped
(ea=None)¶ Static method which allow to know if an address is mapped or not.
Parameters: ea – The address to test for being mapped or not. If None
the screen address will be used.Returns: True if the address is mapped, False otherwise.
-
static
next_data_addr
(ea=None, down=True)¶ Static method which allow to find the address of the next data element.
Parameters: - ea – The address at which to start the search. If
None
the screen address will be used. - down – If True (the default) search below the given address, if False search above.
Returns: The address of the next data or None if the search did not find any match.
- ea – The address at which to start the search. If
-
static
next_data
(ea=None, down=True)¶ Static method which allow to find the next data element.
Parameters: - ea – The address at which to start the search. If
None
the screen address will be used. - down – If True (the default) search below the given address, if False search above.
Returns: An object which ibherit from
BipBaseElt
orNone
if the search did not find any match.- ea – The address at which to start the search. If
-
static
next_code_addr
(ea=None, down=True)¶ Static method which allow to find the address of the next code element.
Parameters: - ea – The address at which to start the search. If
None
the screen address will be used. - down – If True (the default) search below the given address, if False search above.
Returns: The address of the next code or None if the search did not find any match.
- ea – The address at which to start the search. If
-
static
next_code
(ea=None, down=True)¶ Static method which allow to find the next code element.
Parameters: - ea – The address at which to start the search. If
None
the screen address will be used. - down – If True (the default) search below the given address, if False search above.
Returns: An object which ibherit from
BipBaseElt
orNone
if the search did not find any match.- ea – The address at which to start the search. If
-
static
next_unknown_addr
(ea=None, down=True)¶ Static method which allow to find the address of the next unknown element. An unknown element is an element for which IDA does not know the type.
Parameters: - ea – The address at which to start the search. If
None
the screen address will be used. - down – If True (the default) search below the given address, if False search above.
Returns: The address of the next unknown element or
None
if the search did not find any match.- ea – The address at which to start the search. If
-
static
next_unknown
(ea=None, down=True)¶ Static method which allow to find the next unknown element. An unknown element is an element for which IDA does not know the type.
Parameters: - ea – The address at which to start the search. If
None
the screen address will be used. - down – If True (the default) search below the given address, if False search above.
Returns: An object which ibherit from
BipBaseElt
orNone
if the search did not find any match.- ea – The address at which to start the search. If
-
static
next_defined_addr
(ea=None, down=True)¶ Static method which allow to find the address of the next defined element. An defined element is the opposite of unknown, meaning or a data with a known type or code.
Parameters: - ea – The address at which to start the search. If
None
the screen address will be used. - down – If True (the default) search below the given address, if False search above.
Returns: The address of the next defined element or None if the search did not find any match.
- ea – The address at which to start the search. If
-
static
next_defined
(ea=None, down=True)¶ Static method which allow to find the next defined element. An defined element is the opposite of unknown, meaning or a data with a known type or code.
Parameters: - ea – The address at which to start the search. If
None
the screen address will be used. - down – If True (the default) search below the given address, if False search above.
Returns: An object which ibherit from
BipBaseElt
orNone
if the search did not find any match.- ea – The address at which to start the search. If
-
static
search_bytes_addr
(byt, start_ea=None, end_ea=None, down=True, nxt=True)¶ Static method for searching a sequence of bytes. This will search for the bytes which ever the data type is.
This is a wrapper on the
ida_search.find_binary
(previouslyFindBinary
) function from IDA with a radix of 16.The byte should be represented in hexadecimal seperated by space. A
?
can be put for replacing a byte, for example:41 8B 44 ? 20
.Parameters: - byt – A string representing a sequence of byte.
- start_ea – The address at which to start the search, if
None
the current address will be used. - end_ea – The address at which to stop the search, if
None
the maximum or minimum (depending of searching up or down) will be used. - down – If True (the default) search below the given address, if False search above.
- nxt – If True (the default) the current element will not be included in the search.
Returns: The address at which the byte sequence is present or
None
if no element were found during the search.
-
static
search_bytes
(byt, start_ea=None, end_ea=None, down=True, nxt=True)¶ Static method for searching a sequence of bytes. This will search for the bytes which ever the data type is.
This is a wrapper on the
ida_search.find_binary
(previouslyFindBinary
) function from IDA with a radix of 16.The byte should be represented in hexadecimal seperated by space. A
?
can be put for replacing a byte, for example:41 8B 44 ? 20
.Parameters: - byt – A string representing a sequence of byte.
- start_ea – The address at which to start the search, if
None
the current address will be used. - end_ea – The address at which to stop the search, if
None
the maximum or minimum (depending of searching up or down) will be used. - down – If True (the default) search below the given address, if False search above.
- nxt – If True (the default) the current element will not be included in the search.
Returns: An object which inherit from
BipBaseElt
representing the element at the address at which the byte sequence is present orNone
if no element were found during the search.
-
static
search_str_addr
(s, start_ea=None, end_ea=None, down=True, nxt=True)¶ Static method for searching a string. In practice this perform a search_bytes on the binary by encoding correctly the string passed in argument and returning only reference to data elements.
Warning
This is different from idapython
FindText
method as this will only search for bytes in the binary (and more precisely the data)! It should also be way faster.Todo
this should allow to handle encoding.
Parameters: - s (str) – The C string for which to search. If the string is NULL terminated the NULL byte must be included.
- start_ea – The address at which to start the search, if
None
the current address will be used. - end_ea – The address at which to stop the search, if
None
the maximum or minimum (depending of searching up or down) will be used. - down – If True (the default) search below the given address, if False search above.
- nxt – If True (the default) the current element will not be included in the search.
Returns: The address at which the string was found. It will always be data. If no matching element was found None will be return.
-
static
search_str
(s, start_ea=None, end_ea=None, down=True, nxt=True)¶ Static method for searching a string. In practice this perform a search_bytes on the binary by encoding correctly the string passed in argument and returning only reference to data elements.
Warning
This is different from idapython
FindText
method as this will only search for bytes in the binary (and more precisely the data)! It should also be way faster.Todo
this should allow to handle encoding.
Parameters: - s (str) – The C string for which to search. If the string is NULL terminated the NULL byte must be included.
- start_ea – The address at which to start the search, if
None
the current address will be used. - end_ea – The address at which to stop the search, if
None
the maximum or minimum (depending of searching up or down) will be used. - down – If True (the default) search below the given address, if False search above.
- nxt – If True (the default) the current element will not be included in the search.
Returns: An object which inherit from
BipBaseElt
representing the element at the address at which the string was found. The element will always haveBipElt.is_data()
as True. If no matching element was found None will be return.
-


Ghost of Adventurer:
I remember now! I hid the book about him in this well.
The heads of those accused of following demons were thrown into it.
If you enter the well, they'll attack you
!
"Is there no other way?"


This is the “BB” page.
val bb2 = Seq("b" * 2, 2).mkString
<bb3>42</bb3>
curl https://financialcryptography.com # uses cacert.org as a CA


At The Epicenter: What if all Covid‑19 deaths in the United States had happened in your neighborhood?
Find out what would happen if your address was at the epicenter of the Covid‑19 pandemic in the U.S.
Published on .
Data updated on ...
As of yesterday, thousands of people had died of Covid‑19 in the United States.
It can be difficult to comprehend the loss of all these lives in a country so large. The pandemic’s heaviest tolls have occurred in clusters, and many Americans don’t know anyone who has died. But the disease has killed people in all 50 states, the District and the territories.
What if all those deaths had happened near you?
To better understand these losses, this simulation shows what would happen if all reported Covid‑19 deaths in the country happened around your address.
After you start this experience, you will see a circle drawn around your location: in this scenario, everyone who lives in that area would have died.
How far would this emptiness go?
How does the simulation work?
The death radius displayed around you depends on your location and on the number of people who live near you.
In order to determine the size of the radius, we use data from the 2018 American Community Survey, which estimates people living in small tracts such as neighborhood blocks, for every location except Guam, the Virgin Islands, American Samoa and the Northern Mariana Islands. In those places, we use 2010 decennial census data.
Some tracts are buildings in a city. Others, blocks or neighborhoods. The simulation sums the population of all the tracts around you until it reaches a total that is close to the total Covid‑19 deaths in the country.
The full methodology involves drawing increasing radiuses, calculating intersections and making statistical estimates.
Skip to to the the address search fieldTeam
The original project was made in partnership by Agência Lupa and Google News Initiative.
The U.S. version was also a partnership, between The Washington Post and Google News Initiative. All the professionals involved worked remotely.
- Art direction
- Alberto Cairo
- Data and storytelling
- Rodrigo Menegat
- Design
- Vallery Nascimento, Vinicius Sueiro
- Development
- Tiago Maranhão, Vinicius Sueiro
- Google News Initiative
- Simon Rogers, Marco Túlio Pires


Fight Against Corona
Please fill the following details and
Click on
Register
to continue
Name of Patient:
*Name required*
Father's Name:
*Father's Name*
Age of Patient:
*Patient's Age*
Gender:
Male
Female
Others
Permanent Address:
*Patient's Address*
Email Address:(optional)
Aadhar Number:
*Aadhar Number*
Upload Test Reports:
*Input test Reports*
Contact Number:
*Contact Number*
Username of Hospital:
*Username of hospital*
Type of worker:
*Enter Occupation of Patient*
Patient's SID Number:
*Enter SID Number*
REGISTER
CANCEL
This website is meant for Corona Pandemic.Copyright © IndianGovernment.Found use of it in any other activities will be considered as a breach of copyright and the guilty will be punishable under law.


{% extends 'layout-lab-2.html' %} {% block pageTitle %} Mental health - NHS.UK {% endblock %} {% block beforeContent %} {{ breadcrumb({ items: [ { href: "/lab-2/home", text: "Home" } ], href: "/lab-2/a-to-z", text: "Health A to Z" }) }} {% endblock %} {% block content %}
If you're feeling stressed, anxious or depressed, or just want to feel happier, we're here to help.
There's separate information on dealing with a mental health crisis or emergency.


Detailed course offerings (Time Schedule) are available for
UGARIT 201 Ugaritic I (5) VLPA
Introduction to the Ugaritic (Canaanite) language of ancient Ugarit (modern Ras Shamra, circa fourteenth century BCE). Introduces the cuneiform alphabet and distinctive grammatical features; proceeds to an inductive reading of the Ugaritic tablets. Texts include the Epic of Aqhat, the Baal Epic, and the Epic of Kret. First in a three course sequence. Prerequisite: either ARAB 103, ARAB 105, MODHEB 103, or MODHEB 105.
View course details in MyPlan: UGARIT 201
UGARIT 202 Ugaritic II (5) VLPA
Introduction to the Ugaritic (Canaanite) language of ancient Ugarit (modern Ras Shamra, circa fourteenth century BCE). Introduces the cuneiform alphabet and distinctive grammatical features; proceeds to an inductive reading of the Ugaritic tablets. Texts include the Epic of Aqhat, the Baal Epic, and the Epic of Kret. Second in a three course sequence. Prerequisite: UGARIT 201.
View course details in MyPlan: UGARIT 202
UGARIT 203 Ugaritic III (5) VLPA
Introduction to the Ugaritic (Canaanite) language of ancient Ugarit (modern Ras Shamra, circa fourteenth century BCE). Introduces the cuneiform alphabet and distinctive grammatical features; proceeds to an inductive reading of the Ugaritic tablets. Texts include the Epic of Aqhat, the Baal Epic, and the Epic of Kret. Third in a three course sequence. Prerequisite: UGARIT 202.
View course details in MyPlan: UGARIT 203
UGARIT 521 Ugaritic I (5)
Introduction to the Ugaritic (Canaanite) language of ancient Ugarit (modern Ras Shamra, circa fourteenth century BCE). Introduces the cuneiform alphabet and distinctive grammatical features; proceeds to an inductive reading of the Ugaritic tablets. Texts include the Epic of Aqhat, the Baal Epic, and the Epic of Kret. First in a three course sequence. Prerequisite: either ARAB 513, ARAB 515, MODHEB 513, or MODHEB 515.
View course details in MyPlan: UGARIT 521
UGARIT 522 Ugaritic II (5)
Introduction to the Ugaritic (Canaanite) language of ancient Ugarit (modern Ras Shamra, circa fourteenth century BCE). Introduces the cuneiform alphabet and distinctive grammatical features; proceeds to an inductive reading of the Ugaritic tablets. Texts include the Epic of Aqhat, the Baal Epic, and the Epic of Kret. Second in a three course sequence. Prerequisite: UGARIT 521.
View course details in MyPlan: UGARIT 522
UGARIT 523 Ugaritic III (5)
Introduction to the Ugaritic (Canaanite) language of ancient Ugarit (modern Ras Shamra, circa fourteenth century BCE). Introduces the cuneiform alphabet and distinctive grammatical features; proceeds to an inductive reading of the Ugaritic tablets. Texts include the Epic of Aqhat, the Baal Epic, and the Epic of Kret. Third in a three course sequence. Prerequisite: UGARIT 522.
View course details in MyPlan: UGARIT 523


Search
Duration
Workout
Calories Burned
Log today's workout
Your exercise has been logged.


Input Types and Value Binding Examples
Input-Elements for Text or Number
Select-Elements for Option Lists
Textarea-Elements for Large Text


This is a headline.
This is the first paragraph.
This is the second paragraph
This, third paragraph has text that's emphasized for effect.
This is the first paragraph.
This is the second paragraph
This, third paragraph has text that's emphasized for effect.


{% load hotkeys %}
{% setup_hotkeys %}
First Page
Resume Submit
Requirement Submit
Search
Report Management
Requirement Management
help
Sign Out
Date of Opening
Client
Primary Skill
Number of Position
Open Position
Minimum Experience
Location
BD POC
{% for result in getBDPOC %}
{{result}}
{% endfor %}
Status
{% for result in list %}
{{result}}
{% endfor %}
Description
Note
{{msgRed}}
{{msgBlue}}
{{msgGreen}}
{{msg}}


Enable map-drawing by checking "Drawing Mode." Then start drawing on the map by clicking at any location. Draw any shape by clicking on other locations on the map and the points will automatically be connected. When finshed selecting all points, click the starting location (red marker) to complete the region. To edit the shape or position of the region simply drag the vertices or region, respectively. If you want the timeseries to display tweets within a region, select the region by clicking on it once. Note that the shape can be dragged but not modified once it has been selected. To remodify the shape, reclick the region. Note that the timeseries will not display tweets when a region is being remodified. Right-click on a region to delete it. Multiple regions may be utilized at any time. To disable "Drawing Mode," uncheck "Drawing Mode". This will only hide the drawn regions until reuse.


ZXing TypeScript Examples
ZXing ("zebra crossing") TypeScript is an open-source, multi-format 1D/2D barcode image processing library ported to TypeScript from Java.
The library can be used from browser or from node. Below are links to browser demo & examples.
More information can be found in GitHub project home page.
Scanning Examples
- Multi-format (1D/2D)
- 2D
- 1D
View source code on GitHub.


Perceptron Algorithm Teaching Tool
Main
Correct Demo
Incorrect Demo
Interactive Perceptron
Perceptron Guide
About
Interactive Perceptron
"> Your browser does not support the canvas tag. Please upgrade your browser.
Add Input
Remove Input
Learning Rate:
Set Learning Rate
Delta Value:
Set Delta
Change Threshold 1
Change Threshold 2
Training set:
Add to Pattern 1
Remove from Pattern 1
Add to Pattern 2
Remove from Pattern 2
Weights:
Start Perceptron
Next
Iterations:
Errors:
Perceptron Output:
Graph of Results:
The Data on this graph is random, it is only intended as an example, to see how the finished graph will look.
It has been created using the open source
Chart.js
and extended by the
scatter
class.
Created by Edward Stansfield : U3ES
Local Time:


Business Card Organizer makes it easy to create, edit, and organize your contacts. Never forget your business cards again.
We value your time
Enjoy more efficiency built into your day
Make quicker connections with our QR Scanner
You've got great ideas. We love from you. You told us you wanted a better way to connect after conferences and business events. Introducing Event Create. Now you can create an event to organize your contacts, you can even have business cards scanned in to an event catalog for your particpants to access. Keep the bright ideas coming.
Someone change positions, or move companies?
Edit or Delete, with BCO you can easily keep your contacts up to date


[§194-7 Rules.] The invasive species council may adopt rules pursuant to chapter 91, to effectuate this [chapter]. [L 2003, c 85, §8; am L 2004, c 10, §16; am L 2006, c 109, §2]


Move License
Please select a license key
License Key:
xxxx-xxxxxxxx-xxxxx-xxxxxxxx
Expiration Date:
xxxx-xx-xx
Product and Type:
DBR Development License
Note: Network mandatory


august 23, 2015
My first impressions of JavaScript are mixed. Ruby spoiled me with many shortcuts. She carries out many processes "under the hood," and doesn't need a lot of step-by-step instruction. JavaScript is a much more literal language. You must spell out exactly what you want from it.
This can be illustrated in the simple case of iterating over an array. Ruby has numerous methods for iteration, but the most basic and commonly used is each. each calls a given block of code once for each element in the array. The code below will print the double of each number in the array (on separate lines, thanks to puts).
a = [1, 2, 3, 4, 5]
a.each {|i| puts i*2}
JavaScript doesn't have as many looping functions as Ruby has looping methods. This JavaScript for loop has the same result as Ruby's each method above:
a = [1, 2, 3, 4, 5];
for (var i=0; i < a.length; i++) {
console.log(a[i]*2);
}
Comparing the two, Ruby looks more like English, while JavaScript looks like what flashes by the screen when a hacker is mad-coding in the movies. Using a for loop to iterate means defining 3 things between the parentheses:
1. Defining a counting variable and giving it a value
2. Similar to a while statement, this section defines the condition of the loop. In this case, looping will continue while our counting variable is less than the number of values in the array.
3. Incrementing our counting variable. This is done after each loop has been executed.
After the parentheses, whatever is between the curly brackets is the code block that will be executed upon each loop, same as in Ruby.
Ruby didn't need a counting variable or to be told how many loops to make. Basically everything that's between the parentheses in JavaScript's for loop is what Ruby is doing for you implicitly in the each method.
Ruby makes iterating easy with a lot of built-in methods that automate processes for you, while JavaScript likes to explicitly be told what to do. For me, this means Ruby is more convenient, but JavaScript makes sure I fully understand what each and every piece of my code is doing. Ding, ding! I'm declaring this round a tie!


| Statement: | Explained in: |
|---|---|
int A::b(int c) { } | Classes |
a->b | Data structures |
class A: public B {}; | Friendship and inheritance |
|
|
20 10 |
main
declares two pointers to Polygon
(named ppoly1
and ppoly2
). These are assigned the addresses of rect
and trgl
, respectively, which are objects of type Rectangle
and Triangle
. Such assignments are valid, since both Rectangle
and Triangle
are classes derived from Polygon
.ppoly1
and ppoly2
(with *ppoly1
and *ppoly2
) is valid and allows us to access the members of their pointed objects. For example, the following two statements would be equivalent in the previous example:
|
|
ppoly1
and ppoly2
is pointer to Polygon
(and not pointer to Rectangle
nor pointer to Triangle
), only the members inherited from Polygon
can be accessed, and not those of the derived classes Rectangle
and Triangle
. That is why the program above accesses the area
members of both objects using rect
and trgl
directly, instead of the pointers; the pointers to the base class cannot access the area
members.area
could have been accessed with the pointers to Polygon
if area
were a member of Polygon
instead of a member of its derived classes, but the problem is that Rectangle
and Triangle
implement different versions of area
, therefore there is not a single common version that could be implemented in the base class. virtual
keyword:
|
|
20 10 0 |
Polygon
, Rectangle
and Triangle
) have the same members: width
, height
, and functions set_values
and area
.area
has been declared as virtual
in the base class because it is later redefined in each of the derived classes. Non-virtual members can also be redefined in derived classes, but non-virtual members of derived classes cannot be accessed through a reference of the base class: i.e., if virtual
is removed from the declaration of area
in the example above, all three calls to area
would return zero, because in all cases, the version of the base class would have been called instead.virtual
keyword does is to allow a member of a derived class with the same name as one in the base class to be appropriately called from a pointer, and more precisely when the type of the pointer is a pointer to the base class that is pointing to an object of the derived class, as in the above example.Polygon
was a regular class, of which even an object was instantiated (poly
), with its own definition of member area
that always returns 0.Polygon
class in the previous example. They are classes that can only be used as base classes, and thus are allowed to have virtual member functions without definition (known as pure virtual functions). The syntax is to replace their definition by =0
(and equal sign and a zero):Polygon
class could look like this:
|
|
area
has no definition; this has been replaced by =0
, which makes it a pure virtual function. Classes that contain at least one pure virtual function are known as abstract base classes.Polygon
could not be used to declare objects like:
|
|
|
|
|
|
20 10 |
Polygon*
) and the proper member function is called every time, just because they are virtual. This can be really useful in some circumstances. For example, it is even possible for a member of the abstract base class Polygon
to use the special pointer this
to access the proper virtual members, even though Polygon
itself has no implementation for this function:
|
|
20 10 |
|
|
20 10 |
ppoly
pointers:
|
|
Polygon
", but the objects allocated have been declared having the derived class type directly (Rectangle
and Triangle
).| Previous: Friendship and inheritance | Index | Next: Type conversions |


{% for msg in msgs %}
{{msg}}
{% endfor %} {% for err in errors %}
{{err}}
{% endfor %}
This is a list of runs that have already been imported. To import additional runs, use the box to the right, or check the
files
tab.
Run ID
Script
Overall Time
{% for run in runs %}
{{run.runId}}
{{run.scriptName}}
--
{% endfor %}
Upload *.xhprof File
Manage Run Groups
Run Group Name


Enforce best practices for JavaScript promises.
You’ll first need to install ESLint:
$ npm i eslint --save-dev
Next, install eslint-plugin-promise
:
$ npm install eslint-plugin-promise --save-dev
Note: If you installed ESLint globally (using the -g
flag) then you must also install eslint-plugin-promise
globally.
Add promise
to the plugins section of your .eslintrc
configuration file. You can omit the eslint-plugin-
prefix:
json
{
"plugins": [
"promise"
]
}
Then configure the rules you want to use under the rules section.
json
{
"rules": {
"promise/always-return": "error",
"promise/no-return-wrap": "error",
"promise/param-names": "error",
"promise/catch-or-return": "error",
"promise/no-native": "off",
"promise/no-nesting": "warn",
"promise/no-promise-in-callback": "warn",
"promise/no-callback-in-promise": "warn",
"promise/avoid-new": "warn",
"promise/no-return-in-finally": "warn"
}
}
or start with the recommended rule set
json
{
"extends": [
"plugin:promise/recommended"
]
}
| recommended | rule | description |
|---|---|---|
| :bangbang: | catch-or-return |
Enforces the use of catch() on un-returned promises. |
| :bangbang: | no-return-wrap |
Avoid wrapping values in Promise.resolve or Promise.reject when not needed. |
| :bangbang: | param-names |
Enforce consistent param names when creating new promises. |
| :bangbang: | always-return |
Return inside each then() to create readable and reusable Promise chains. |
no-native |
In an ES5 environment, make sure to create a Promise constructor before using. |
|
| :warning: | no-nesting |
Avoid nested then() or catch() statements |
| :warning: | no-promise-in-callback |
Avoid using promises inside of callbacks |
| :warning: | no-callback-in-promise |
Avoid calling cb() inside of a then() (use nodeify instead) |
| :warning: | avoid-new |
Avoid creating new promises outside of utility libs (use pify instead) |
| :warning: | no-return-in-finally |
Disallow return statements in finally() |
| :seven: | prefer-await-to-then |
Prefer await to then() for reading Promise values |
| :seven: | prefer-await-to-callbacks |
Prefer async/await to the callback pattern |
Key
| icon | description |
|---|---|
| :bangbang: | Reports as error in recommended configuration |
| :warning: | Reports as warning in recommended configuration |
| :seven: | ES2017 Async Await rules |
catch-or-return
Ensure that each time a then()
is applied to a promise, a
catch()
is applied as well. Exceptions are made if you are
returning that promise.
js
myPromise.then(doSomething).catch(errors);
myPromise.then(doSomething).then(doSomethingElse).catch(errors);
function doSomethingElse() { return myPromise.then(doSomething) }
js
myPromise.then(doSomething);
myPromise.then(doSomething, catchErrors); // catch() may be a little better
function doSomethingElse() { myPromise.then(doSomething) }
allowThen
You can pass an { allowThen: true }
as an option to this rule
to allow for .then(null, fn)
to be used instead of catch()
at
the end of the promise chain.
terminationMethod
You can pass a { terminationMethod: 'done' }
as an option to this rule
to require done()
instead of catch()
at the end of the promise chain.
This is useful for many non-standard Promise implementations.
You can also pass an array of methods such as
{ terminationMethod: ['catch', 'asCallback', 'finally'] }
.
This will allow any of
js
Promise.resolve(1).then(() => { throw new Error('oops') }).catch(logerror)
Promise.resolve(1).then(() => { throw new Error('oops') }).asCallback(cb)
Promise.resolve(1).then(() => { throw new Error('oops') }).finally(cleanUp)
always-return
Ensure that inside a then()
you make sure to return
a new promise or value.
See http://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html (rule #5)
for more info on why that’s a good idea.
We also allow someone to throw
inside a then()
which is essentially the same as return Promise.reject()
.
js
myPromise.then((val) => val * 2));
myPromise.then(function(val) { return val * 2; });
myPromise.then(doSomething); // could be either
myPromise.then((b) => { if (b) { return "yes" } else { return "no" } });
js
myPromise.then(function(val) {});
myPromise.then(() => { doSomething(); });
myPromise.then((b) => { if (b) { return "yes" } else { forgotToReturn(); } });
param-names
Enforce standard parameter names for Promise constructors
js
new Promise(function (resolve) { ... })
new Promise(function (resolve, reject) { ... })
js
new Promise(function (reject, resolve) { ... }) // incorrect order
new Promise(function (ok, fail) { ... }) // non-standard parameter names
Ensures that new Promise()
is instantiated with the parameter names resolve, reject
to avoid confusion with order such as reject, resolve
. The Promise constructor uses the RevealingConstructor pattern. Using the same parameter names as the language specification makes code more uniform and easier to understand.
no-native
Ensure that Promise
is included fresh in each file instead of relying
on the existence of a native promise implementation. Helpful if you want
to use bluebird
or if you don’t intend to use an ES6 Promise shim.
js
var Promise = require("bluebird");
var x = Promise.resolve("good");
js
var x = Promise.resolve("bad");
no-return-wrap
Ensure that inside a then()
or a catch()
we always return
or throw
a raw value instead of wrapping in Promise.resolve
or Promise.reject
js
myPromise.then(function(val) {
return val * 2;
});
myPromise.then(function(val) {
throw "bad thing";
});
js
myPromise.then(function(val) {
return Promise.resolve(val * 2);
});
myPromise.then(function(val) {
return Promise.reject("bad thing");
})
allowReject
Pass { allowReject: true }
as an option to this rule to permit wrapping returned values with Promise.reject
, such as when you would use it as another way to reject the promise.
no-return-in-finally
Disallow return statements inside a callback passed to finally()
, since nothing would consume what’s returned.
js
myPromise.finally(function(val) {
console.log('value:', val);
});
js
myPromise.finally(function(val) {
return val;
})


KAFKA A film review by Frank Maloney Copyright 1992 Frank Maloney
KAFKA is a film by Steven Soderburgh with a screenplay written by Lem Dobbs. The film stars Jeremy Irons, Theresa Russell, Joel Gray, Ian Holm, Alec Guinness, Jeroen Krabbe, Armin Mueller-Stahl. Rated PG-13 for brief violence, mature themes.
KAFKA is the brilliant follow-up to Steven Soderburgh's debut film SEX, LIES, AND VIDEOTAPE. It is like its predecessor only insofar as it too is a chance-taker, a long-shot project, this time based on a ten-year-old script by Lem Dobbs (THE HARD WAY). It is also a film that is inevitably going to be compared both to Terry Gilliam's BRAZIL and David Cronenberg's NAKED LUNCH; however, the other film that I was reminded of, and which almost certainly influenced Soderburgh, was THE WIZARD OF OZ. More about this later, however.
First, you should clearly understand that the conceit of KAFKA is like that of the film HAMMETT, namely that a famous author in the days before his fame becomes involved in a situation that is a pastiche of his most famous, or most typical, works. In the course of the story, the necessarily literate viewer is invited to pick out references to the author's stories. In HAMMETT, for example, the title character has table lamp the base of which looks just like the black Maltese falcon in the Bogey movie. In KAFKA, there are references to "Metamorphosis," "The Trial," "The Castle," at a minimum. However, this is a fantasy on the theme of Kafka, not a biopic, not film version of a Kafka story, and it is most certainly not that tired old cliche Kafkaesque, and it sure as heck ain't Merchant and Ivory quaint.
Instead, what we have is Jeremy Irons is a wonderful performance. Of course, Irons is one of our very best film actors, but it is always surprising to be once again reminded of his range and versatility. Some critics think the Irons is merely walking through the role, but I think they are underestimating how much skill is involved in the kind of nervous, intense, withdrawn-from-life characterization with which Irons delineates his Kafka.
Irons is supported by an amazing cast: Theresa Russell as Gabriela, the seductive revolutionary; Joel Gray as the office-messenger Burgel, who seems to have a lot more power than your average messenger ("Aha! Away from your section, without cause!"); Alec Guinness as the Chief Clerk, who advises Kafka "You should find a more athletic hobby -- put some color in your cheeks"; Armin Stahl-Mueller (lately in Barry Levinson's AVALON) as Inspector Grubach; the slapstick team of Ludwig and Oscar (Keith Allen and Simon McBurney) who are assigned to be Kafka's assistants at the soul-killing Accident and Insurance Compensation Association where he's been clerking for nearly nine years. About his job, he asks a co-worker: "You've never felt it was a horrible double life from which there was no escape but insanity?" And then there's Ian Holm as Dr. Murnau, the name being a sly reference to the legendary German director F. W. Murnau. Not to forget, Jeroen Krabbe as the stonecutter who admires Kafka's writing and who supplies clues to the Castle that dominates the storyline as it does the skyline of Prague.
Dobbs has complained that Soderburgh mangled his script, but whatever the truth the fact that remains that filmed script does an elegant and intelligent job of drawing on Kafka's life and works to make its absurdist points, at least until it detours into horror-movie mode. It is in this part of the movie that Soderburgh invites comparison, and a pale one, with BRAZIL. However, a more favorable comparison of the two movies would mention the sly and sometimes hilarious humor of much of the absurdism, especially Kafka's lines.
Just as witty at times are the photography and sets. Soderburgh and his cinematographer Walt Lloyd make superb use of the Prague locations. Most of the film is shot in black and white. Some of this actually started my heart racing with its beauty. The section of the story transpiring inside the Castle is shot in color, and Kafka's entry into this world of color, horror, and surreality has got to be modeled on the moment Dorothy opens the door of the house and reveals Munchkinland. The color is what I (in my lamentable ignorance of film technology) think of as supersaturated like what I believe is called the three-strip color of old Technicolor, that unnaturally rich, jewel-like, painterly color of Errol Flynn's ROBIN HOOD, especially.
The fantasy reaches its climax in this color sequence, but when Kafka returns to the black and white world of Prague outside the Castle there is a new look of unreality to this "real" world. I don't know if it was just me, or if the cinematography was different in the last b-and-w segment than in the first, maybe focused slightly differently. But I had the same reaction when Dorothy wakes up back in Kansas: those people are quite as real; Kansas isn't quite as real as Oz. Once you've been vouchsafed a vision, the quotidian world is changed forever. Certainly Kafka's character is different in the last morgue scene than in the comparable scene earlier in the movie.
Have I told you I loved Steven Soderburgh's KAFKA? See this film, do yourself a real treat. It may not, as some critics say, have the "lyrical perfection of SEX, LIES, AND VIDEOTAPE" (Michael Upchurch, Seattle Times), but it is a stunning performance both by this still new director and his wonderful cast. KAFKA will certainly achieve some kind of cult status, for good or ill, and it will certainly be paired in revival houses with NAKED LUNCH, with which KAFKA shares some creative sensibilities and motives. But see it now while it's still a fresh, invigorating, stand-alone experience. And the cost be hanged.
-- Frank Richard Aloysius Jude Maloney .
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


dinner party
Create a New Party!
Choose the topic(s) of the party:
interest
Write a description for your party!
Cancel


THE GOOD, THE BAD, AND THE UGLY (1966) A Film Review by Ted Prigge Copyright 1997 Ted Prigge
Director: Sergio Leone Writers: Argenore Incrocci and Furio Scarpelli (from a story by Sergio Leone and Luciano Vincenzoni) Starring: Clint Eastwood, Eli Wallach, Lee Van Cleef
The classic American western, we have John Wayne, the totally, all-around good guy, being tough, beating up the outlaws, and then perhaps having a wholesome fling with some chick at the end. But in the world of the spaghetti western (a name given to the Italian-made westerns), pretty much everybody's an asswhole.  Of course, a lot of them suck, but the ones by one particular director stand-out for their amazing style, interesting stories, wild characters, and, of course, the music. That would be Sergio Leone, and the music was by Ennio Morricone, second greatest film composer to ever live.
"The Good" is, of course, Clint Eastwood, returning to his role he has played, The Man With No Name, who was in the previous two Leone flicks, "A Fistful of Dollars," and "For a Few Dollars More." The Man With No Name is dubbed "Blondie" by another character in this one, so they could actually call him something. Of course, he is in no way a good man. He's more of the anti-hero of the story. He's good in a sense, but he's also an amoral crook who sometimes double-crosses partners, but with good reason. With his three-day beard, his squint (that Seagal would rip-off, but not to the cool effect of Eastwood), his hushed speech, the eternal cigarette in his mouth, and the occasional mexican rug around him, the presents one of the most interesting looks and characters I've ever seen.
"The Bad" is Lee Van Cleef, also called "Angel Eyes," due to his bizarre stare. He's a totally amoral bounty hunter who screws over two different employers of his in the beginning, and goes on to screw some more people over as the film goes on. He's actually not in a lot of the film, turning up here and there, and there for the breathtaking finale.
"The Ugly" is classic actor Eli Wallach, also called "Tuco." Tuco's a ranting, raving, somewhat neurotic in a way, and kind of incompetent bandit who is working with Blondie in the beginning but keeps on going between partner and enemy throughout the film. He's one of the more interesting characters, and is even one who gets some real depth when he runs into his priest brother. He's also the loudest, in what is pretty much an almost silent film, with sometimes mechanical dialogue and one-liners. He gets to shout out obscenities to other characters, and is all around loud. He's also the funniest, of course.
The whole motivation in the storylines of all three Man With No Name films is money. Leone sees the west as a place where everybody's amoral and they're all greedy as hell. The film's plot (which takes about an hour or so to really get started) deals with a chest of gold buried in a grave at a faraway graveyard. Angel Eyes knows of it. Blondie knows which grave it's buried in. Tuco knows which graveyard. What results is a plot-twisting, satirical, and stylishly entertaining film.
The film takes place during the Civil War, so it takes a kind of satirical stance towards it.  Blondie and Tuco run into an army fighting over a bridge, suffering many casualties.
What's cool about this film is the style. Leone makes a film that is rich in substance, and rewards us with some bitching stylistic scenes. The editing and the music combines to create tense scenes, filled with humor, irony, and some deaths. The film is almost all full of his style, prohibiting some characters to speak in certain scenes, so the film creates tension.
And, by God, the closeups! Leone is famous (and sometimes infamous, which does NOT mean more than famous) for nearly ODing on the close-up. There are scenes where, to build tension, he shows us literally hundreds of close-ups on the characters' faces.  But the thing is that they start out slowly, and speed up as the tension increases. Filmmakers ever since have been ripping off of Leone, for this is just one cool-ass effect, and his finale is one of the all-time greatest scenes.
The music is also brilliant. Ennio Morricone (who also did such mainstream films as "Wolf" and "Bugsy," as well as all of Leone's films) has created a soundtrack that is gorgeous and barbaric. He has one underline theme going throughout which is instantly memorable: starting off with what sounds like a screaming hyena, we get then get a high-pitched phrase, repeated, and launching into a barage of high-pitched trumets, which sounds like Dick Dale's "Miserlou." Leone uses this throughout the film, especially in some of the more perfectly ironic parts in the story. His theme, like the squealing knife sounds in "Psycho," is something that is hummable (it was a big hit on Top 40 radio), and has been recycled over and over and over and over and then even over and over and over again.
The film runs about two hours and forty-five minutes, but is absolutely absorbing, and goes by quickly and smoothly. Leone's scenes are drawn-out with sometimes no dialogue until a burst of it nearly three-quarters of the way through the scene, creating a film that is fascinating to watch as it unfolds in front of you. His gunfights are classic scenes, even if they're not always bloodbaths. Sometimes you don't even see the action (i.e. the first scene). But his scenes are well-directed, and are filled completely with a kind of hypnotic draw.
I don't even LIKE westerns. I mean, I liked "Rio Bravo," but I usually don't dig those kinds of films. But Leone's films are so well-directed, with such an odd quality to them, that you just have to adore them. Even if you hate westerns, you'll agree that this is one bitching film, and what I think to be the greatest Western ever made.
MY RATING (out of 4): ****
Homepage at: http://www.geocities.com/Hollywood/Hills/8335/
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


It's so hard to be what it's all about! When your outsides in. Insides out and your downsides up. Yea! Don't you want to twist and shout when you're inside out.
The Travelling Wilburys
The Wilburys know what it takes to stringify Maps, Sets, ArrayBuffers, and DataViews. They have to be turned inside out. A stringification algorithm, which transverses subobjects/subproperties in a preorder transversal, only naturally deals with external properites, not internal properties. So the internal properties are turned inside out to become external properties that the algorithm can deal with.
We invite the clever reader to show how to turn an ArrayBuffer inside out.
If you want to attempt to understand the source code at Stringify.js, then the article Deep Copies with Circular References is a prerequisite since it introduces The Basic and Powerful Preorder Transversal which is used in Stringify.js, parseDataString.js, deepCopyData.js, and deepCopy.js. It's a general technique that should be studied by the sorts of programmers who study those sorts of things.
The title and following paragraphs are shameless promotion. But it needs to be made clear that you should be excited because our serialization/deserialization goes way beyond JSON into actually serializing objects that are class instances in such a way that deserialization produces a deep copy of the object with equivalent but separate internal state.
The mundane level also goes way beyond JSON. JSON is rather limited in the types of objects that can be serialized. We serialize all* built in data types with infinite complexity. E.g., Sets whose members are Maps whose keys are ArrayBuffers and values are typed arrays. The Set can also have properties that are DataViews whose properties are Maps whose properties are Sets whose properties are ArrayBuffers.
(*) It is impossible for any system to serialize symbols, WeakSets, and WeakMaps because there is no way for the programmer to read their internal state.
Serialization is built on stringification. In our system, stringification is just for display/dumping. Our stringification, not originally intended for serialization, was easy to modify for serialization. Our dtype() function wasn't designed for serialization either, but its detailed design gave it an automatically small but important role in checking that certain objects are suitable for serialization.
Both serialization/deserialization and stringification handles circular and duplicate references. Stringification and hence serialization encodes such references so that deserialization can decode them and reproduce the circular and duplicate references.
Two nodes in the object tree of x that are equal are circular references if one is the ancestor of the other. Otherwise they are duplicate references. Naive algorithms for various tasks will loop infinitely with circular references, but not with duplicate references.
Serialization/Deserialization preserves property descriptors by encoding/decoding them. For example if Y is a deep copy of X through serializtion/deserialization then the property descriptor of Y.a.b.c in Y.a.b is the same as the property descriptor of X.a.b.c in X.a.b.
The following sections discuss stringification. However, after that, be sure to read the serialization appendix because it introduces terms necessary in two subsequent articles. One is the article on parseDataString(), which is our deserialization function. The other is the article on serializing classes.
Defalt values are underlined and the question mark indicates existence is optional.
If false, then the value returned by the getter is written and processing continues for any of its child nodes.
There's actually more attributes that param can have, but they are for internal use in our library.
First top referes to the top node, in this case z.
We first read that dtype(top) is "Object". This doesn't mean that top can be any old object. It precisely means that the internal prototoype of top is Object.prototype. top is one degree away from Object.prototype. Likewise top.M, top.M.a, and top.N all have "Object" as their dtype() and hence all are one degree away from Object.prototype.
The @ symbol indicates a circular reference. The right side of top.M.a.b indicates that top.M.a.b is a circular reference to top.M an "Object" named M two levels up. That is top.M.a.b and top.M are the same.
The # symbol indicates a dupiclate reference. top.N is a duplicate reference to top.M.a. That is top.N and top.M.a are the same.
The dtype of z is "Object(3)" meaning that z is an object three degrees from Object.prototype. That is z.__proto__.__proto__.___proto__ is Object.prototype.
Since it is impossible to read Symbols, we can only notate that z.g is a Symbol.
The elementary classes are Boolean, Number, String, Date, and RegExp. Stringifications of their class instances all behave the same.
We read that the dtype of a is Boolean. That means a is a Boolean class instance. That it has a value of true is indicated. Its properties are indicated inside braces. If there were no properties, the braces would be empty.
The dtype of b is Number, so b is a Number class instance. It has one property z which the the a we've seen before. To the right of z: is the stringification of a.
The dtype of c is String, so c is a String class instance. Its value is indicated as "cat". It has no properties other than the length, which we omit since it isn't needed for informational purpposes or for deserializtion.
The dtype of d is Date, so c is a Date class instance. Its value is indicated next. d has no properties.
The dtype of e is RegExp, so e is a RegExp class instance. Its value is indicated next. JavaScript gives e the lastIndex property. Our added property a is shown next.
The stringification of Arrays behave in a similar manner to stringification of literal objects.
The dtype of x is Array, so x is a class instance of Array. Of particular note, the stringification of x.a is shown. The dtype of x.a is "Boolean[Object(2)]" meaning that x is an instance of Boolean but not a class instance since it is 2 degrees away from Boolean.prototype. It follows type(x.a) = "Object", which is written for emphasis.
There are nine typed arrays: Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array. The stringifications all act the same so we look at Uint8Array.
By now the reader shouldn't have any trouble understanding the stringification of a Map.
It is not possible to properly stringify a WeakMap since there is no way to obtain its keys. Thus we stringify by notating that a WeakMap was found with no further details other than properties that were added.
OK! This is easy to read.
It is not possible to properly stringify a WeakSet since there is no way to iterate through its members. Thus we stringify by notating that a WeakSet was found with no further details other than properties that were added. Stringification behaves as it did with WeakMap.
There are four functions that wrap stringify()
The following code shows the first three in action. For serializeClassData() see the class serialization/deserialization article.
If the dtype of an element contains the symbol '[' then the element is not simple-data.
If x and every subobject of x is not a symbol, WeakSet, WeakMap or Function, then x is simple data exactly when dtype(y) does not contain the symbol '[', for y = x, and all subobjects y of x.
The author could not come up with a better term than FData.
Warning! The results of serializeFData() can only be deserialized by finding an approprite evaluator, which might be difficult when actually possible.
Well OK! See parseDataString Test.js file for serialization and deserialization of fdata. Go to the end of the file and look for TestCircularFunctions() and TestCircularGets().


GODDDAMIT by Richard Rust<EMAIL_ADDRESS>Well, the leaner meaner, lizard is out of the sewer and running across multiplexes all over America this night. Once again the City that Never Sleeps, is under attack and many landmark buildings will fall, people will become monster toe jam, military people will be flumaxed, reporters will steal a story and love will triumph.
But the monster movie fan (MMF), the geek in the back row that doesn't bathe often, has low social skills and can never get a date, what will the MMF do now?
Pity the poor MMF who has waited with baited breath (fish you know, Godzilla eats LOTS of fish) the MMF who watched Tokyo fall a dozen times in a dozen sequels, the MMF moaned to itself as it heard in the trailers, the clarion call Godzilla and thought, "YES!" Godzilla eats New York in digital .cgi, YES! Dolby sound, YES lots of F/X, no more tiny TV with black and white ads interrupting the mayhem.
But alas the poor dweeb of an MMF, walked limp from the octoplex from hell, not limp with post adrenalin rush malaise, but instead the MMF limps back to the halogen lit parking lot near the new WAL-MART and shoves its commemorative opening night ticket in its pocket and sighs, a regretful sigh.
Sadder than seeing the skyline of the Big Apple go up in fireballs, sadder than the endless shots of Matthew Broderick's waaay too winsome face, flicker in flashing lights, sadder still than this waaaaay too long movie (even at 120 minutes) even sadder than the light that fades from Godzilla's eye in the final reel, saddest of all is that this piece of over wrought bloated hokum is what Hollywood panders to the pasty faced crowd sucking down their $10 popcorn and medium soda (no ice).
It wasn't a badly made movie, it probably will even do business. It was just such a pro forma copy.  It just such a all hollow, empty, joyless exercise of a movie.
It's a movie that makes you feel sad when you leave, sad not only that you parted with $14 bucks for two tickets, but sad that this is as good as it gets.
The corporate Bozos(tm) who have calculators for hearts have run this dog and pony show through its oh so predictable paces and we like the slugs that we are stand in line, to sit in the dark and say, "oh, my!"
Sad really, very, very sad.
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


Man, 49, who stabbed girlfriend, 22, to death while she was tied to bed jailed
Jason Farrell will serve a minimum of 26 years behind bars for killing Sammy-Lee Lodwig after confessing to "slicing her up"
by Kelly-Ann Mills, https://www.facebook.com/dailymirror/A middle-aged man has been jailed for life after "mercilessly" stabbing his younger girlfriend to death while she was tied up on a bed.
Jason Farrell, 49, attacked 22-year-old Sammy-Lee Lodwig at his flat with a knife then confessed he had "sliced her up" after an argument on April 23.
Farrell planned the "savage and brutal attack" on Miss Lodwig at his home in Swansea because he had become "tired" of their relationship, Swansea Crown Court was told.
Judge Mr Justice Lewis said: "Whilst there were arguments between you, I am sure you were not provoked to any real extent.
"You had tired of the relationship, tired of arguing, and wanted to get rid of Sammy-Lee, and you did by killing her."
The judge said Miss Lodwig would have been "terrified" after Farrell gagged her with a dressing gown belt and told her he was going to kill her, before stabbing her three times in the neck and five times in the chest.
Mr Justice Lewis said: "You made sure she would not scream and that it was a slow death. It was a savage and brutal attack that resulted in death of a young woman.

"This was a savage and brutal attack that must have caused real suffering to her before her death. She must have been terrified as she tried to ward off blows with the knife. She must have been aware of her injuries before she died."
The court was told Farrell began a relationship with Miss Lodwig around November 2018, but had known her since she was four, having been in a relationship with her mother, Sarah Lodwig.
Mr Justice Lewis said the mother and daughter were regular visitors to his flat in Carlton Terrace, in the Mount Pleasant area of Swansea, to take drugs.
Farrell had become tired of seeing Miss Lodwig and he also became "jealous" that her mother was seeing another man.

Farrell was also found guilty of a "brutal attack" on Mr Maher days before the murder.
He denied murdering Miss Lodwig despite writing a "chilling" confession to police after his arrest.

"I did by repeatedly stabbing her in the face and throat."
Miss Lodwig, who was 5ft 1in and weighed six stone, was found by paramedics, lying on a bed at Farrell's flat on April 23 after he had alerted neighbours.
She was fully clothed, with cuts across her throat and forehead, and "severe bleeding" was found on the bedding.
It was estimated she died 20 or 30 minutes before emergency services arrived.
A black-handled kitchen knife covered in blood, with the tip of its 6in blade missing, was found next to the bed.
Forensic scientist Claire Morse said it appeared Miss Lodwig had been assaulted on the bed.
Prosecutor Michael Jones said knotted and bloodstained dressing gown belts with traces of Miss Lodwig's saliva were found nearby, suggesting they may have been in or around her mouth.
Injuries to her neck included damaged major arteries and veins, while wounds to her chest were deep enough to enter both lungs.
Cause of death was given as stab wounds to her neck and chest.


Narrative
IncyWincyWebApp stores some of its persistent data on MongoDB. On a not so
great day, Oliver, the Ops guy, issues an accidental query that updated the
profile collection in users database making status of private profiles
public. In his attempt to restore those documents to original state,
he contacts Adam, the Admin and describes what happened.
Adam: "Oliver, Do you know the time when this query was issued?
Oliver: "Around 1 o'clock today afternoon"
Adam: "Would it help if I did not restore the portion of log pertaining to that accidental update?"
Oliver: "Yes, that would work!"
| Given source replica set and target node are running |
| with configuration |
source {sourceNode} on port {sourcePort} , target {targetNode} on port {targetPort} |
1. Some CUD Operations were done
| run mongo command on |
source |
| use database |
users |
| run |
db.createCollection("profile") |
| run |
db.profile.insert({name:"One",type:"private"}) |
| run |
db.profile.save({name:"Two",type:"private"}) |
| run |
db.profile.insert({name:"Three",type:"public"}) |
| run |
db.profile.save({name:"Four",type:"public"}) |
2. Run Backup Utility
| Open terminal |
| and run |
backup -s {sourceNode} --port={sourcePort} -f {file} |
| and show |
stdout |
| and ensure |
stdout |
contains |
Process started |
3. Run Restore Utility
| Open terminal |
| and run |
restore -d {targetNode} --port={targetPort} -f {file} |
| and show |
stdout |
| and ensure |
stdout |
contains |
Process started |
4. Ensure Source and Target have same State
|
Ensuring target is consistent with source
|
| find documents for collection |
profile |
in database |
users |
where |
null |
and cleanup databases |
false |
| source value | destination value |
{ "name" : "One" , "type" : "private"} | { "name" : "One" , "type" : "private"} |
{ "name" : "Two" , "type" : "private"} | { "name" : "Two" , "type" : "private"} |
{ "name" : "Three" , "type" : "public"} | { "name" : "Three" , "type" : "public"} |
{ "name" : "Four" , "type" : "public"} | { "name" : "Four" , "type" : "public"} |
5. Some More CUD Operations were done and a Wrong update was made
| run mongo command on |
source |
| use database |
users |
| run |
db.createCollection("location") |
| run |
db.location.insert({place:"UK"}) |
| run |
db.location.save({place:"India"}) |
| run |
db.profile.update({type:"private"},{$set:{type:"public"}},{multi:true}) |
| run |
db.profile.insert({name:"Five",type:"private"}) |
| run |
db.profile.save({name:"Six",type:"private"}) |
| run |
db.profile.insert({name:"Seven",type:"public"}) |
| run |
db.profile.save({name:"Eight",type:"public"}) |
6. Run Backup Utility
| Open terminal |
| and run |
backup -s {sourceNode} --port={sourcePort} -f {file} |
| and show |
stdout |
| and ensure |
stdout |
contains |
Process started |
7. Run Restore Utility With Dry run to analyze the corrupt data
| Open terminal |
| and run |
restore -d {targetNode} --port={targetPort} -f {file} --dry-run |
| and show |
stdout |
8. Run Restore Utility to exclude corrupt data after analysis is done
- Dry-run indicates that wrong update query was fired at 6th document from last.
So we adopt a strategy to first restore all documents before it.
-
Further ignore the two documents containing wrong update, and then restore
excluding them, i.e. restore last four documents.
8a. 1st Restore all correct documents until error.
| Open oplog for node |
source |
and travel |
7 |
documents back in time |
| Open terminal |
| and run |
restore -d {targetNode} --port={targetPort} -f {file} --sUntil={Until} |
| and show |
stdout |
| and show |
stderr |
| and ensure |
stdout |
contains |
Process started |
8b. 2nd Restore all correct documents after error.
| Open oplog for node |
source |
and travel |
5 |
documents back in time |
| Open terminal |
| and run |
restore -d {targetNode} --port={targetPort} -f {file} --sExclude --sUntil={Until} |
| and show |
stdout |
| and show |
stderr |
| and ensure |
stdout |
contains |
Process started |
9. Ensure Target does not contains corrupt data
|
Ensure source and target has
|
| find documents for collection |
profile |
in database |
users |
where |
null |
and cleanup databases |
false |
| source value | destination value |
{ "name" : "One" , "type" : "public"} | { "name" : "One" , "type" : "private"} |
{ "name" : "Two" , "type" : "public"} | { "name" : "Two" , "type" : "private"} |
{ "name" : "Three" , "type" : "public"} | { "name" : "Three" , "type" : "public"} |
{ "name" : "Four" , "type" : "public"} | { "name" : "Four" , "type" : "public"} |
{ "name" : "Five" , "type" : "private"} | { "name" : "Five" , "type" : "private"} |
{ "name" : "Six" , "type" : "private"} | { "name" : "Six" , "type" : "private"} |
{ "name" : "Seven" , "type" : "public"} | { "name" : "Seven" , "type" : "public"} |
{ "name" : "Eight" , "type" : "public"} | { "name" : "Eight" , "type" : "public"} |
|
Ensuring target is consistent with source
|
| find documents for collection |
location |
in database |
users |
where |
null |
and cleanup databases |
true |
| source value | destination value |
{ "place" : "UK"} | { "place" : "UK"} |
{ "place" : "India"} | { "place" : "India"} |


This is a port of binarymuse's shouldComponentUpdate demo for React.
Using IncrementalDOM.skip method we can let an element act as a root which descendants don't need to be diffed for updates. Simply set a { skip: true, ... } attribute on such element. Generation of the descendants JSONML can be saved as well as it becomes irrelevant, though this is not mandatory.
Animation updates state for head item plus another random item, several ticks are batched before the next animationFrame collects them, this would be impossible to run at high fps without skipping the diff (the head is always animated to keep chrome's fps stats refreshing).
NOTE: since Chrome 46 creating more than 100 range inputs on touch enabled devices will destroy performance (interesting info about this here), to restore smooth performance "touch-action: manipulation;" is applied to the body in this demo.